Jason Famularo

Medium-depth thoughts on programming

Page 3

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!

View →

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?

View →

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 question.

View →

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 months ago and came to the realization: I, a decent volleyball player in the later nineties and early “aughts”, am a shell of my former “glory”. I didn’t push myself exceptionally hard, and played how I would have normally played. I thought I played well for being away from the sport for few years, but came away extremely sore for days. That soreness was a shock.

As I discussed this painful situation with others and thought of how this could have come to be, I realized that our bodies and brains think we can do the things we...

Continue reading →

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 start to wear down after the same rigid process, repeated over and over.

View →

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 away” in the eyes of Google, old links, etc. Last time I set up 301 redirects. I did this as well, but couldn’t reuse blog.famularo.org. I ended up choosing jason.famularo.org, which is okay, I guess.

Also, done with tagging. I choose poor tags and I am terribly inconsistent between posts. Less is more!

View →

Lessons learned from changing blogging software and moving to a new host

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 did everything I needed, and more. I ran across Phalanger, which is PHP for .NET. In a few simple steps, I was able to install it and get my existing WordPress blog running on it. It was awesome. Decidedly less awesome was trying to get it to run on AppHarbor.

In the end, I decided to abandon the idea of running PHP on .NET. I’m pretty sure I figured out most of the hurdles that would have prevented it from running on AppHarbor, but it wasn’t worth the hassle and fragility of the whole thing. Instead, I...

Continue reading →

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 a room). All students incoming that year got free dial-up access (at 33.6kps speed). There was a (paper) form to fill out to “get online”. In addition, all students were encourage to claim their free “@garnet.acns.fsu.edu” email address. How memorable!

Being one of the few students to properly setup Eudora and dial-up in Windows 95 (oh, how I didn’t miss the PPP stack in Windows 3.1), I often got asked to setup email for my floor-mates. One such gentlemen was “Matty”, an out-of-state undergrad...

Continue reading →

Why you have to get a paper document signed to update the database

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 of the various problems that can occur.

One thing I’ve noticed at the “mature” organizations is the need for a signed piece of paper requesting a change to the database. For an outsider (I was a consultant in a former life), this seems absurd on the surface. Why do I need to sign a piece of paper? We work with computers! If you take a step back you’ll see the bigger picture. It’s a safe guard. The extra steps make multiple people put thought into what is about to happen, including the...

Continue reading →

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 soon as it is called. Instead, the query waits as long as possible before returning results.

My personal philosophy is to take advantage of that delayed execution. The following line, when called needlessly, causes that cringing feeling I spoke of earlier:

var results = (from o inobjects
    where o.something == "something"
    select o).ToList();

The ToList() forces LINQ to loop through all the items in that enumerable. That’s all fine if it will always be executed, but what if the next line...

Continue reading →