I wanted to run two concurrent Firefox profiles — essentially a professional and a personal version. There’s lots to read on using Firefox profiles but my case was unique in that I wanted 1) Two profiles running at once. 2) An easy way to distinguish between the two profiles in my Windows Taskbar.
My name is James Bigler. I am a software developer. This blog is mostly a collection of links related to software programming and technology.
Search This Blog
Tuesday, December 20, 2011
Multiple Firefox Profiles with Custom Icon Packs - Ken Yarmosh
Thursday, December 15, 2011
Crosspile Week 5 and 6
Wednesday, December 14, 2011
Introducing Siesta: A Testing Tool for Ext JS
For us, about midway through our upgrade, we realized that we badly needed a tool to help us verify that what used to work in the Ext JS 3 version still worked in the Ext JS 4 version. Doing the testing manually for each feature and API method would simply have taken way too much of our time. After evaluating a few popular options, we realized that none really fit our needs, so we started to design and write our own tool: Siesta
Thursday, December 8, 2011
New RSS Feed URLs
Here are my new RSS feed URLs
New Posts Feed:
Atom 1.0: http://bigleroncode.blogspot.com/feeds/posts/default
RSS 2.0: http://bigleroncode.blogspot.com/feeds/posts/default?alt=rss
Comments-only feed:
Atom 1.0: http://bigleroncode.blogspot.com/feeds/comments/default
RSS 2.0: http://bigleroncode.blogspot.com/feeds/comments/default?alt=rss
Sunday, December 4, 2011
Crosspile Week 4
Saturday, December 3, 2011
SpecFlow Integration - Matt Ward
The SpecFlow team recently released version 1.7 and with it they included support for SharpDevelop 4.0. SpecFlow is an open source framework that you can use to do Behaviour Driven Development (BDD) on .NET. It allows you to bind business requirements to the code. Let us take a look at how SpecFlow integrates with SharpDevelop.
Monday, November 28, 2011
Customers learn as well as Developers as product moves along
For customers and end users, the experience is worse. The process of building a system forces them to look at their organization more closely than they have before. They’re often left to negotiate and codify processes that, until now, have been based on convention and experience.
Sunday, November 27, 2011
Crosspile Week 3
Sunday, November 20, 2011
Crosspile Week 2
- Finished up the blog import tool I was working on which was taking up most of my free time
- Created a project to test to see if I could use sharpkit to translate from C# to javascript
- Figured out how to write and run nUnit tests in MonoDevelop
- Starting writing a test to convert an JsDuckJson class to a Crosspile class
Thursday, November 17, 2011
Introduction To Composite JavaScript Apps | ThoughtStream.new :derick_bailey
Not a big fan of the module pattern, but I like that he separating the different UI pieces into separate pieces of code that can be reused. I also like the way he binds the events together. It reminds me a little of the event stuff they have in DM
Sunday, November 13, 2011
S#arp Lite: The Basics - NHibernate blog - NHibernate Forge
S#arp Lite is an architectural framework for the development of well-designed, custom-built, ASP.NET MVC applications using NHibernate for data access.
Might be some cool ideas in here to use in our project.
Open source application to import Shared Items from Reader to Blogger
Unfortunately Google removed the Note In Reader functionality from Google Reader. To replace this this functionality I am using the Blog This bookmarklet and adding my shared items to my blog. I created googleReaderShares2Blogger to allow you to import the shared items you created in reader before google turned this functionality off.
I basically downloaded the Google C# API and modified their sample application. The code is pretty rough but it works for what I needed. I coded this on my mac using MonoDevelop, but it should work on Windows too.
Crosspile Week 1
So I decided to spend some of my spare time creating a tool that will allow me to do this. This is what I got done in Week 1
- Sent email to my boss and got approval to do this.
- Bought a new macbook since mine was super old.
- Setup my laptop to run MonoDevelop.
- Created test project googleReaderShares2Blogger to see if I want to use MonoDevelop or Visual Studio
- Created Git repository and uploaded my test project code.
- Used Boot Camp to setup Windows 7 on my mac and installed Visual Studio
- Downloaded sharpkit and started a test project to see if I can use this tool.
- Came up with the snazzy name Crosspile for my project.
- Cleaned up blog a little.
- Read through Git tutorial.
Wednesday, November 9, 2011
Monday, October 31, 2011
Nikhil Kothari's Weblog : Getting Started with Script#
Hello World with Script# - a 101-style walkthrough on authoring and deploying scripts compiled from c#, while using the HTML DOM APIs, XMLHttpRequest, and jQuery.
Friday, October 28, 2011
Tuesday, October 25, 2011
I Broke Your Code, And It's Your Fault
Early in my career, I was afraid of making changes that could affect unexpected aspects of the system. My first job out of college, whenever I made changes, I'd read lots of code and was extra careful. Of course, nobody can ever be careful enough with this methodology, so I'd wind up breaking things. I'd feel awful for this, completely embarrassed. I'd panic and try to fix the code as quickly as possible, assuming my co-workers thought I was an idiot.
Today, I take the exact opposite approach: fearless refactoring. I refactor code without even the slightest bit of concern about the ramifications. If I break something, a test will let me know. If no test lets me know when I broke something, I don't feel embarrassed. I feel like someone else should be embarrassed.
Wednesday, October 19, 2011
How To Produce Bug-Free Software
Many are resigned to the fact that all software is destined to contain some “bugs”, but did you know it’s possible (and arguably pretty easy) to always produce “bug-free” software?
Thursday, October 13, 2011
edren-baton » Jsm – Another C# to JavaScript translator
Technical Overview : Dart : Structured web programming
Friday, September 30, 2011
NHibernate Built-in Code Based Mapping instead of using Fluent NHibernate - Kazi Manzur Rashid
Personal blog of Kazi Manzur Rashid
Friday, September 16, 2011
ExtJS code in CSharp
Tuesday, September 13, 2011
What Is Technical Debt?
His definition of TD includes frustration The fucking XYZ module needs HTML support, but it turns out the entire thing generates images instead of text so I've got to go back and rip all of the image generating bullshit out of the thing and replace it XML generation so that I can translate it to HTML, plus I've got to fix the code we've already got to work with the XML format instead of the images it's expecting. So, yeah, I initially thought it would only take a day, but it looks like it's going to take all week now, Jesus Christ.
Friday, September 9, 2011
Book Review: The Clean Coder
Earlier this week I finished reading Uncle Bob’s latest book The Clean Coder. Robert C. Martin is a great writer and I very much enjoyed reading his previous books. His latest work is no exception and I found it to be yet again a fascinating read.
This book is all about professionalism. This is something that is very much needed in the field of software development. It describes how a professional software craftsman behaves, how he deals with tight schedules, irrational decisions made by managers (for those rare occasions that this happens), conflicts and so forth.
The preface of the book takes you right by the throat, talking about the Challenger disaster. This has been applied to the field of software engineering many times already (check out this blog post from Gustavo Duarte which is one of my all-time favorites), but still, it definitely never wears off.
The book is filled with stories and anecdotes from the rich career of the author and the lessons he learned during these 40+ years in the IT industry. Some of the ideas in there are definitely challenging (like staying out of the zone and building up focus instead), but nonetheless they put a very interesting perspective on things.
Don’t let yourself get carried away by some of the hard statements but try to focus on the underlying ideas and try to think back on some of the good and bad situations that you ran into during your own career. Trying to reflect on those moments and considering how we could act more professionally lies at the heart of improving ourselves. I definitely learned a lot while reading this book and I encourage you to pick up a copy as soon as possible and take some time to read it.
Two thumbs up!
Tuesday, August 9, 2011
In Memory Testing with NHibernate 3.x & SQL Server 4.0 Compact
Tuesday, August 2, 2011
Pure Dot Net Coder: Return parents based on a child filter with QueryOver
HunabKu: Improving ADO exception management in NHibernate
Monday, July 25, 2011
When To Work On Technical Debt
One problem I encounter constantly is this: "We don't have time to address our technical debt!"Every company I've ever worked for has had this problem to some degree. The development team realizes that there are some parts of the system that need to be cleaned up, but for a wide variety of different reasons, they feel like they don't have the time to actually work on improving those areas of the system.
Friday, July 22, 2011
A Better Team: Arrogance And Accepting Your Own Strengths
I’ve spent years fighting my own arrogance. I constantly struggle with it. I have to make concious efforts to recognize that every person I come in contact with is more experienced and more intelligent than I am given the right scenario.
Saturday, July 16, 2011
Tuesday, July 12, 2011
Using NHibernate With Stored Procedures - Ayende @ Rahien
Monday, July 11, 2011
A Sample Format for a Spreadsheet-Based Product Backlog
I want to show a real easy way to put user stories in a spreadsheet-based product backlog. I wrote this after seeing someone tweet a screen capture of a product backlog I made 9 years ago and thought to myself, “Yikes, that’s out of date for how I do it today…”
As you probably know I’m a big fan of writing the product backlog in the form of user stories and of writing user stories in the form, “As a , I so that .” An example being, “As a frequent flyer, I really want to be able to connect to the internet while flying so that I can update my blog while traveling rather than having to save this as a text file and updating my blog later.” (Can you guess where I am while writing this?)
What I’ve found makes a user story in this format very easy to work with in a spreadsheet is to take the boilerplate parts and put them into column headings. So we’ll have column headings like “As a” and “I” and “so that”. The meat of each story is then clearly visible in each row. Additional columns can be added for things like a unique identifier, notes, status and such. In this example, I’ve also included a column for the theme or grouping of which the story is a part. You can see this in the screen capture below. You can click the image for a larger view.
Monday, June 27, 2011
Jetty Startup Problems Due to Entropy
On the MMO I’m working on, we do quite a bit of service monitoring via jetty. Things like having a URL that reports back version information for a component, or a page full of statistics showing recent activity, or a way to trigger a self-check in a component to determine if the component is sane and healthy or not.
For certain components we run multiple instances of the service on the same box. In development environments, it’s a pretty small number of instances. On a production environment it’s a much bigger number. Typical stuff. However Operations noticed that startup times for a server full of instances jumped from seconds to over 20 minutes when the number of instances was increased from 3 to 12. Ouch.
So, something is blocking on startup. After some digging, I came across this post explaining how jetty uses a secure random number generator for session ids, which is based on the pool of entropy generated by the system. Sure enough…
$ cat /proc/sys/kernel/random/entropy_avail
128(On development cluster machines that value is upwards of 3000)
Since we don’t care if the jetty session IDs are securely generated or not, switching the generator from secure to not-secure took us back to a few seconds to start up 20 instances.
Tuesday, June 21, 2011
A Different Kind of Technical Interview
Based on how much candidates and interviewers both seem to enjoy this, I hardly see any reason to do a whiteboard interview at all anymore. Personally, I don't even look a resume before I do a pairing exercise with a candidate. I don't feel the need to know anything about someone going into it, and I feel like I learn all I need to spending two hours with them on a task.If you're having trouble hiring good programmers, give it a shot. Replace part of your interview process with a pairing exercise and see if it makes a difference.
Sunday, June 19, 2011
Stream(SQL) Event Processing with Esper
What if we turn the problem on its head: instead of storing data and then executing batch queries over it, what if we persisted the query and ran the data through it? That is the core idea and insight behind Event Stream Processing (ESP) systems: store queries not data, process each event in real-time, and emit results when some query criteria is met.
Thursday, June 16, 2011
Wednesday, June 15, 2011
Monday, June 13, 2011
There’s I(ntelligence)Q, and then there’s I(nfluence)Q
People who work in software are smart people who take pride in their abilities to understand complex information and solve difficult problems. But much of the work isn’t only about smarts. Creating most software requires the help and cooperation of other people. Telling, convincing, and winning arguments won’t work to bring people along, change their minds, or help them help you. That requires influence.
Thursday, June 9, 2011
Tuesday, June 7, 2011
Best at argument != Best ideas
Bob may have the best ideas on the team. We don’t really know if that’s the case. No one else’s ideas are fully considered. We do know he doesn’t have a perfect record. Some of his fixes don’t work the first time. Some of his fixes break something else. If the team had a process to consider and refine ideas, that might not happen as much.It may sound like it will take more time to separate generating ideas from explaining, exploring, and evaluating them. It may seem like a lot of effort to find more than one idea and test the ideas for soundness and test the level of support for a given idea.
But in years of observing teams, I find that slowing down and separating the steps of the choosing a solution helps the team speed up. A mashup process forced by a dominant individual may appear to save time in the very short-term. That’s seldom true if you account for all the time costs and other effects incurred.
Friday, May 20, 2011
NHibernate 3.0 SQL Logger - Home
NH3SQLLogger is a lightweight NHibernate 3 SQL Logger, with SQL Formatting, Caller methods loggings and Syntax highlighting.
Wednesday, May 18, 2011
Logging NHibernate’s SQL-queries to screen with ASP.NET MVC 3 and Glimpse
By following this tutorial you can enable your ASP.NET MVC application to output the NHibernate’s SQL-queries into the web browser, in real-time. If you have an existing application, no coding is required, this is all about configuration.
Saturday, May 7, 2011
Generate better NHibernate logs - NHibernate blog - NHibernate Forge
The official NHibernate community site. Download NHibernate. Read blogs. Contribute to the NHibernate Wiki. Find reference documentation.
Wednesday, April 27, 2011
Will Beattie's Blog: SharpKit C# to Javascript Convertor
Thursday, March 24, 2011
Friday, March 11, 2011
Tuesday, March 8, 2011
Thursday, February 24, 2011
Get/Load Polymorphism in NHibernate 3
Nothing gets an OO zealot hot under the collar the way the term polymorphism does. You probably have three questions right now… What does polymorphism have to do with object-relational mapping? How does it relate to NHibernate? And why should I care?
Sunday, February 20, 2011
XP Practice: Whole Team | Agile Software Development
Generalizing Specialists: Improving Your IT Career Skills
InfoQ: Do Specialists Outperform Generalists on an Agile Team?
An Agile team is mostly a cross functional team comprising of generalists and specialists. Jurgen Appelo, challenges this concept and suggests that having just specialists on an Agile team adds more value. The post tries to correlate various view points on team composition by other members of the Agile community.
InformIT: Agile Processes and Self-Organization > Resources
SteveDenning.com |Radical management | Cross-functional teams that aren't: high-end knowledge firms
InfoQ: Organizing Self-organizing Teams
Rashina Hoda is a PhD researcher who has been examining how self-organization actually happens on teams. She has studied teams in New Zealand and India and identified six distinct roles that emerge when teams effectively self-organize. She spoke to InfoQ about her research, which will be published at the International Conference on Software Engineering (ICSE2010) to be held in Cape Town in May.
Thursday, February 17, 2011
Wednesday, February 16, 2011
James Shore: Proficiencies of Planning
James Shore consults and writes about high performance software development for teams who are willing to be great.
Friday, February 11, 2011
Agile Commentary: Snake on the wall!
Thursday, February 10, 2011
Agile Engineering - Atlanta GA - March 1 | Summary | powered by RegOnline
When: Tuesday, March 01, 2011 9:00 AM - 5:00 PM (Eastern Time). Where: Regus Atlanta - Terraces, 400 Perimeter Center Terrace, NE Suite 900 Atlanta, Georgia 30346 United States. Phone: 1-888-3.PILLAR Email: afuqua@pillartechnology.com
Wednesday, January 26, 2011
Team Trap #5: Withholding Information
I’m not talking about information related to the task and context, here, though that can damage a team. Withholding that sort of information is unacceptable, and probably pathological. I’m talking about a different sort of information: information about your internal state .
Sunday, January 23, 2011
Why Your Employees Are Losing Motivation - HBS Working Knowledge
c# - What 'additional configuration' is necessary to reference a .NET 2.0 mixed mode assembly in a .NET 4.0 project? - Stack Overflow
Friday, January 21, 2011
Countdown to Ext JS 4: Data Package - Sencha - Blog
Sencha. Build amazing web apps built on web standards. Sencha Touch, HTML5 mobile app framework. Ext JS, cross-browser JavaScript framework. Ext GWT, Java library for building apps with GWT.
Saturday, January 15, 2011
Headless Testing for Continuous Integration with Git and Jasmine
Our WebKit Team lead, Ariya Hidayat, walks you through creating a Continuous Integration setup that will run on Windows, Mac and Linux.
Wednesday, January 12, 2011
Saturday, January 8, 2011
NHibernate Mapping Generator
A simple utility to generate NHibernate mapping files and corresponding domain classes from existing DB tables. It currently generates one mapping file (.hbm.xml) and the corresponding Domain class (*.cs) from oracle or sql server.
Tuesday, January 4, 2011
Transformation Priority and Sorting - Uncle Bob's Blog
I got a kick out of reading this.
Bookmark this on Delicious - Saved by joesegars to computer - More about this bookmark
How TDD Works Its Magic (2): Multiplying Intent
Did you ever see a half-dozen lines of code, stare at it fixedly, and say “What the hell is this about?”