February 2012
1 post
Running a JavaScript Function when Subscribed...
Maybe this is well-known to the JavaScript coding community — below is a simple technique I’ve found that runs a block of JavaScript when subscribed events stop firing. Full disclosure, I stole this from Hugoware. If he stole it from someone else… ;)
Use Case
A user is entering text into a text box. The user stops typing for a period of time, tabs or clicks out of the text box,...
January 2012
4 posts
Location Known, but Still Lost
A started a new job in late 2010. At first, it seemed like something that was too good to be true at the time. It had a lot of awesome perks (to me, in no particular order):
Wasn’t consulting
Was a product/service owned by the company and slowly built upon
Had a software team and manager that believed in a lot of those software principles you read about, but never truly see at your job...
Patching vs. Merging
One of those “fun” activities developers look forward to is merging code from one branch to another. The scenario I personal use most is merging changes from the trunk back to the branch that is about to be released.
For the last few releases I’ve deviated from my normal usage of the built-in merging capabilities of (Tortoise)SVN. Instead, I’ve made a patch of my changes...
How Reading User Reviews and Triaging Software...
User reviews saved e-commerce — the power of the Internet buying masses, crowd-sourced into a win-win situation for both retailers and consumers (B2C!).
The above is a lie (and also hard to read, filled with terrible e-buzzwords).
User reviews are difficult to parse, give a false sense of security to the buyer, and are one of the many profit-extraction tools that retailers employ. How many...
Inbox One, the Pragmatic Approach
The Getting Things Done methodology encourages behavior such as Inbox Zero, the concept of dealing with all the items in your inbox and keeping a zero count. In previous jobs, I’ve tried to do this, and struggled at times, having as many as 1000 items. Even when triaging my inbox regularly, I’d still end up with 50 items that needed some sort of attention.
Lately, I’ve been...
December 2011
7 posts
The Importance of Releasing
An “old” adage in development is “release early, release often”. This is a form of iterative development which allows for lack of functionality initially, and additional function in short releases afterwards. It’s helpful, because it gets your site in front of real people, quickly.
I recently tried this approach with machine2date and SharedBetween.Us
machine2date is...
If Nuget Won't Update, Try This
The newest version of Nuget, version 1.6, wouldn’t update on either of my computers from within Visual Studio. I’m not certain why, but the fix is simple. Run Visual Studio as administrator, go the Extension Manager, uninstall Nuget, restart Visual Studio, and reinstall. Don’t bother uninstalling from Add/Remove Programs, it’s a trap!
Removing IDE Distractions in Visual Studio
I’m not sure where I first read about “distraction free Visual Studio”, but it’s a thing, and I quite enjoy it. This article explains how to take to the extreme. At a minimum, I suggest turning off all your various toolbars. How often do you really use them?
Obvious Observations: Ask good questions
I was on a call with a client the other day and realized I wasn’t getting good answers. Instinctively, I wanted to blame the person answering the question. I’d never blame a client (coworkers are fair game ;) ), so I took a step back and thought about the situation. It was instantly obvious that I wasn’t asking a good question. If you want a good answer, you should ask a good...
Volleyball for Programmers
Reflecting on the year, I learned a valuable lesson about what I can and can’t do. The things I could do ten years ago, but haven’t really done since, are still doable, but very painful.
My “case-in-point”: volleyball. I played a lot of volleyball in high school and college, but haven’t really played consistently since. I had a chance to play in a tournament a few...
Waterfall Development, a Slow Dulling
I’m sure this comparison has been made before, but repeated use of the waterfall development model has a slow, dulling effect on software teams (and the systems they ultimately create). Stones at the bottom of a waterfall are far more likely to be rounded after years of wear by the falling water. Likewise, a developer, business analyst, QA tester, project manager, and (possibly) designer...
Changing again
Once again, I’ve decided to change blogging platforms. It’s a hassle I’m learning to not like, but this transition went a lot smoother than the last. This time I landed on Tumblr. It’s pretty good, custom URLs and all.
One thing I realized in changing to a service I don’t control completely from the web server level, is that all existing items would “go...
September 2011
1 post
Lessons learned from changing blogging software...
I recently decided to move my personal website to AppHarbor. (If you are a .NET developer and haven’t had a chance to check out AppHarbor, stop reading this and click on the link. Seriously. They are awesome.) The hardest part was moving my WordPress-based blog, which is based on the PHP scripting language. Don’t get me wrong, WordPress has been pretty awesome, is widely supported, and...
July 2011
2 posts
Matty and the upside-down mouse
Ah, Salley Hall, part of the prestigious suite of dorms at FSU that were voted top five “dorms like dungeons” during the late nineties. It was during my time in this fine residence that I became the unofficial tech support for the seventh floor. Computers weren’t yet a requirement for students, and were considered a luxury. Still, most of the rooms had at least one (we were four to a suite, two to...
Why you have to get a paper document signed to...
A term I’ve used to describe various IT organizations in the past is “maturity”. A more mature IT shop will have a standards, practices, and other safe guards to ensure that production, testing, and development environments are functioning at all times. A less mature IT shop will just “wing-it”, doing whatever it takes at that particular moment to put out the fire at hand. They’ve yet to see many...
May 2011
1 post
Finding unused CSS with Google Chrome
With the advent of jQuery and its selector engine, I’ve gotten a lot better at writing accurate stylesheets. But I’m never 100% sure if all of my CSS rules actually point to something. This tweet reminded me of my lack of CSS skills. And a few days later I stumbled upon a gem in Google Chrome.
Open the “Developer Tools” in Google Chrome by hitting “Control-Shift-I” (Windows, your OS may vary)....
April 2011
1 post
Can Any() of you Count()?
LINQ, which stands for Language Integrated Query, isn’t new anymore. It was introduced in .NET 3.5, which saw its release in November 2007. At this point, I feel it should be a core skill for any seasoned .NET developer.
But every now and then, I see LINQ that makes me cringe. Before you write a line of LINQ, you should understand that it has deferred execution. That means it’s not executed as...
March 2011
4 posts
Presentation Considerations
I’ve had the opportunity to give numerous presentations at work, and recently, have started giving presentations at the local .NET user group. I’ve gathered a few tips, some I’ve (painfully) figured out myself, and some graciously passed on from co-workers.
Be early
Ensure that you get to your presentation location early, especially if you are using the network or a projector. These two elements...
Simulating TFS Shelvesets in Subversion
Update: A proper SVN Shelve feature is tentatively scheduled for Subversion 1.8
Having worked with Team Foundation Server for version control for a few years, there was a slight adjustment for me when I started working with a team that used Subversion. A feature my previous team used was Shelvesets, designed to save code to the version control system but not commit against your daily work. This...
Learn a Foreign Language (and Spy on your Enemies)
Besides coming up with corny jokes and blog post titles, I spend a fair amount of time reading about new technologies. Recently I have found that I am reading more on languages outside the .NET world. It’s interesting to note the similarities and the differences. For example, the well-known and timeless design patterns tend to show up in all languages.
This got me thinking about a project I...
Programming with a Purpose
Often times, I find myself dabbling at home on a new technology. I usually run into one of two situations: I have a hard time getting started or I quickly run out of desire after a few sessions. Recently, it finally dawned on me how to overcome both scenarios: program with a purpose.
I’m a big fan of the pragmatic philosophy. I don’t want to get mired in needless effort, just for the...
July 2009
1 post
Word 2007 and em spaces
Developing custom solutions for Word 2007 over the last year, I’ve run across some bugs that are particularly nasty relating to em spaces. What’s an em space? It’s a typographical character that is the width of an “M” (em) in a proportional font. There’s also an em dashes (—) and en (“N”) spaces and dashes. The en characters are the width of an...