Wednesday, May 4

Single-threaded developers in a parallel world

I screened a candidate yesterday with a background in web dev. ASP.NET, MVC, basic webservicess experience. When I asked him if he had ever used .NET's new Parallel object, or any of the more conventional multithreading facilities, his reply was, "No, I've never done multithreading, I've only done web development."

Once upon a time, I thought multithreading was pointless in webdev myself ... but that had to be 6-7+ years ago now at the least. I came up in the software world through "basic web design" back in '95-'96, n-tier web & database work starting in '98, then started adding getting into service-heavy stuff some five years ago now. This gentleman got his start some 16 years ago writing assembly, and at some point working in the embedded world. If anything, I'd think his perspective on efficient utilization of CPU resources would be even sharper than mine.

Any kind of iterative/enumerative operation can benefit from multithreading. Any kind of process that does not require synchronicity from the client/viewer/browser side of things can be done in an asynchronous fashion on a throwaway thread, giving the end user a perception of greater performance/responsiveness.

I found it a bit shocking that in 2011, someone with over a decade and a half of experience in the software world could, or would, be so dismissive of multithreading, even if doing "only" web development type work.

In .NET, it's so easy! The Asynchronous Programming Model has been around since .NET 1.1 and the async delegate and BeginInvoke/EndInvoke methods. The BackgroundWorker dispatch model has been available since .NET 2.0. Now in .NET 4.0 we have the Task Parallel Library (TPL) which allows simple-to-write inline asynchronous task execution and similarly easy parallel for/foreach operations against enumerables, as well as PLINQ which gives us parallel execution of LINQ queries.

Tuesday, May 3

Missed opportunity

On the drive home from work today, a car cutting the perpendicular light a bit close ends up stalling out just as they got through the intersection. I'm in one of two left turn lanes, and my first thought is, "Man, I'm two minutes from home, are you serious?" -- assuming that drivers in the other lane, the one blocked by the stalled car, would be cutting people off in my lane.

So, intent on driving through the mess and getting home, I was focused on not bumping cars from the other lane. However, there was no jostling -- the first person in that lane waited for our lane to pass, then carefully passed the stalled car and immediately pulled off into a parking lot entry, stopping near the road, not in a spot. I'm assuming they stopped to help the person push their car.

If I'd had my eyes open, I could have pulled over there too, and helped out. But no, my first, and almost only, thoughts were of myself. Secondarily it occurred to me, "Man, that has gotta SUCK to be that driver!" But my first thoughts, my predominant thoughts, were selfish ones only.

As soon as I noticed the driver pulling over to help, I regretted not doing so myself. If I'd been more concerned about the other person's situation, rather than getting my own butt the last two minutes home, I, too, probably could have pulled over.

I regret this missed opportunity.

Monday, April 4

Review: Verizon Android 3G Mobile Hotspot

Due to some unforeseen travel complications, I had to reschedule my Comcast install. As such, I'm relying on my HTC Droid Incredible and the Verizon 3G Mobile Hotspot feature for a few days.
Point one: DHCP & Verizon-assigned DNS is horrendous -- they make the feature unusable. Use a static IP address and Google or OpenDNS or other known reliable third-party DNS servers. Once I switched over to this configuration, connectivity has been flawless -- zero interruptions.

Point two: Still can't use voice + data at the same time. If you receive an incoming call while using the Mobile Hotspot feature, you will lose data connectivity for the duration of the call, just like using the plain old handset.

Point three: While it is better than some hotel WiFi I've dealt with, this feature does not appear to be a speed demon. With 3/4 bars, from a Chicago suburb, I performed a Speakeasy speedtest against Chicago-based target servers with the following results:


Conclusion: while having some connectivity on my laptop is certainly better than no connectivity, or smartphone-only, I absolutely cannot see multiple users using this as a hotspot simultaneously. USB dongles and ad hoc networks, or MyFi type devices, in my experience, provide much better performance, if you, or your boss, can pony up the cash for them -- plus you are not then forced to choose between voice or data.

Wednesday, March 23

Interesting: (Goldstein) Subaru vs. (Cortese) Mitsubishi

While I've always known Mitsubishi was not an owner-focused company, I had a still somewhat startling experience this week at a 5K service for my Subaru Legacy before I drive to Chicago next week.

When trying to service or buy parts for my Mitsubishi Eclipse around 2000-2004, in Rochester, when I was doing a lot of work on that car, it was always a huge pain in the ass -- you could only get parts through the dealer, markup was outrageous, labor was outrageous, hours were never estimated long enough, everything always broke or was about to break or wear out, and needed to be replaced.

Forward to Albany, 2011. I had a new set of tires put on my Subaru by the guys down the road I've been going to for years: LaBarge's. They noted I might need new rear brake pads sometime soon, but weren't trying to sell me anything -- they've been great for all three vehicles I've taken them. I'd heard what might have been some scraping while braking in the Subaru, so I was concerned.

I took the Subaru over to Goldstein for its 5K service, paid for as part of a prepaid service package when I bought the car back in October. I mentioned the pads to the gentleman at the desk; part of the 5K service is to check them anyway, but I noted it to be sure, given the amount of driving I have ahead of me. The guy looks at me quizzically, saying, "Shouldn't be the case, but we'll certainly take a look." (I picked the car up with 23k or 24k miles; I've only put 2500 or so on it, no idea if the pads were done by Goldstein before I bought it, perhaps that was the case.)

The promised hour later (despite the crowd) I get the car back, guy tells me I'm all set. No pads needed. No other service needed. No hard sell, no soft sell -- no sell, period. It was refreshing.

Thank you Subaru, and thank you Goldstein Subaru.

Friday, March 18

Moving - not free, not cheap, but ... !

In the process of packing up a 2BR apartment for an out-of-state move, I've been shocked by some of the price estimates I've received to move the majority of my possessions.

I got rid of my garage, I have no basement, no storage locker, just a ~1500sqft 2BR apartment, three pets, me. PODS wanted something like $2800; full-service mover numbers along the lines of Allied or United were $4000 and up. PODS offered a too-small and a too-large container option for out-of-state moves -- not a lot of granularity, which added to the cost. As did the forced storage fee. I suspect their heavy marketing adds to the cost there too.

A good friend in Chicago offered to drive a Penske truck out for me, but the apartment complex I'm moving out of doesn't prorate (though they screwed up the lease and I might actually have leverage as far as that goes, but not worth the hassle) and the 31st is a Thursday, which, with two cats and a dog that make staying in a hotel difficult if not impossible, makes getting packed and moved out without incurring another month's rent a bit complicated. Cost would have been $350+ airfare, $1200 truck, fuel/tolls for truck, for about $1800 total.

Though I've seen ABF trucks before, I'd never heard of UPack until my old Meridian colleague from Rochester Darren Swartzendruber and SmAlbany acquaintance Angelos Tzelepis educated me via Twitter on the topic. Two "ReloCube" container gives me what seems to be the appropriate amount of space to pack a washer/dryer, queen-size bed, full-size futon, a few desks, tables, chairs, kitchen appliances & dishes, pet stuff, books, a few electronics and computer items. Total cost? About $1290, with a $50 discount via the "TWEET" code that ABF provided after observing me talking with Darren and Angelos on Twitter. If I end up needing storage, (I still don't have a house to move to!) it's an option with ABF, unlike PODS, where it seemed to be mandatory.

Thanks again Darren & Angelos for the heads up!