David J. Sokol

Oct 16

An Excellent Rebuttal of Paul Graham

I saw this a few years ago, but I’m re-reading it because it’s good. Also Paul Graham is kinda meh. It was written in response to Hackers and Painters, which was decent at best. A sample, from dabblers and blowhards:

The whole genre reminds me of the the wooly business books one comes across at airports (“Management secrets of Gengis Khan”, the “Lexus and the Olive Tree”) that milk a bad analogy for two hundred pages to arrive at the conclusion that people just like the author are pretty great.
Lines like that make a great post.

Oct 11

Fixing Rocketfish Bluetooth Keyboard on Vista/Win7 x64

When I originally upgraded to Vista and Windows 7, I could not get my Rocketfish Bluetooth keyboard to connect. This was incredibly annoying as the keyboard decently expensive (~$100) and pretty nice. I ended up reverting back to the crummiest cheapest $3 keyboard I could buy at Microcenter, and it sucked. Eventually, I grew sick of it and spent today figuring out how to make my Rocketfish keyboard work. After going through the usual bluetooth device connection wizard and making it hang, I ran across this thread on technet. Buried past all of the double-posts from MSFT employees was this gem, by KAMOTEQ:

When you go to add a device, right click on the keyboard icon and click on properties. in the services tab check the box that says Drivers for keyboard, mice, etc (HID). The keyboard will install automatically.
This fixed up my keyboard super-fast and everything is wonderful. I just wanted to repost it because it’s hard to find (buried in a Technet thread) and I know other people will be looking for the fix.

Oct 08

My Own Personal λ

I updated my main website, dsokol.com with an approximate update frequency. This λ value is the exacted number of updates per day, sampled from the last one year period. Given that my blog has had eight or so updates, over the past 365 days, my future frequency is calculated to be 0.02192. (λ = 8 / 365)

This is not an accurate prediction of frequency, as data for the past 11 of 12 months is missing. In reality, it should be sampled as (8 x 12) / 365, which gives λ = 0.2630 . This is a more accurate model for my blog posting frequency. The same goes for my github frequency, which has only been gathered for the last week or so. My twitter, reddit, stack overflow, zune profile and resume are all accurate, though the reddit number is a lot of guess work.

These λ values should be supplemented with a confidence figure; I’m more confident that my zune and twitter frequencies are around the given λ then my blog or github status. If I were to build a model to simulate my next year of internet activity (which I plan to do, after another month of data is gathered), the lack of background data for these two data series will have to be accounted for.

Why did I even post frequency? I believe it shows certain parts of my character you wouldn’t otherwise see. The fact that my resume is updated very infrequently (λ = 0.00274) shows that I’m pretty happy with my job and not looking. I listen to a lot of music. I’m a pretty steady poster on twitter (unless i spammed certain days, a weakness in my analysis), and I’m decently active in a few communities specific to programming. More importantly, it shows you where to find the most up to date me, which is what the end goal.

Oct 02

Show Me Your Desktop

Last week, @shanselman started a tag stream on twitter called #showmeyourdesktop.  He seemed to be somewhat miffed that everyone he knew had nice, clean desktops with a pretty background image and very few icons.  About 10 submissions in, I decided to post my own work desktop, which you can see in a prior post.

This is apparently not how must programmer desktops look.  At all, period, ever.  From the photostream, it would appear that programmers put a high emphasis on an empty desktop and pretty background pictures, either nature or architecture.  I personally never ran a desktop background until Vista, and that was the default because I was too lazy to change it.  (The WinXP one immediately got axed after changing the theme to ‘Classic Windows’.)  The same goes with Windows 7, which I run at home.  I simply don’t understand why everyone has pretty high-resolution, memory intensive images for their background.

It is my firm belief that if you see your desktop, you’re doing it wrong.  And by ‘it’, I mean your basic task workflow.  Now a large number of programmers who posted images might never see their desktop; they just Win+Ded it down for the sake of the chat.  Why is everything so clean?

My desktop is cluttered with mostly temporary objects.  My typical workflow:

  1. QA files a bug.  I get an email.
  2. I read the bug through Quality Center (a horrid piece of shit program, btw)
  3. I notice it’s with our Excel Import functionality.  They provide a file.
  4. I download the file to the quickest place I can access:  my desktop.
  5. I start our application, hit import, and navigate to the easiest place to find:  my desktop.
  6. I import the file.  It fails.  Crap.
  7. I fix the bug.
  8. I notice their test case doesn’t cover a few other  boundary conditions that I just introduced.  I open the excel file by Win+D and grabbing the latest file, which in is in the far bottom right.
  9. I make the changes.
  10. Start our app again to reimport.  Open -> Desktop -> Select file.
  11. Hooray!  Everything is fixed.  I go back into QC to log my new test cases, sing the ActiveX to attach the file.  Easiest place to get to?  My Desktop.

Repeat for a few dozen bugs, and you get a lot of crap on your desktop.  And it doesn’t bother me.  They’re all throw-away files that are logged in other systems.  The code changes are made are logged in source-safe and the test-case is logged in quality center.  The mess that is my desktop never goes into any of these systems; it’s simply just a temporary storage heap.

Why would I use my desktop for anything else?  It’s simply part of a tool (a computer/OS) that I use to do my job.  I do believe in taking pride in ones toolset (sharpening the saw, so to speak), but this seems to be a bit like the glowing see-through PC cases everyone grew out of after freshmen year.  You’re cool and all, but I’m going to be more impressed with what you do with your tools then what they look like.

Sep 30

I made a graph.  I make a lot of graphs.

I made a graph.  I make a lot of graphs.

Sep 25

#showmeyourdesktop

#showmeyourdesktop

Sep 23

“When trying to make a point involving business never interject your own politics.” — Me

Sep 21

Things Every Programmer Must Do

Go Hard

A programmer without passion is pretty much useless.  As this poster quotes, Productivity Stems From Passion. (Scroll down, the website sucks for product linking.) If you don’t have passion for your creations, you’re pretty much doomed. Notice that I didn’t say code or design; products are the lifeblood of any developer. Thousands of lines of source or amazing designs are useless if they aren’t, well, used in projects. If you are not passionate about the end result of your work, you’re going to end up writing an uninspired invoice system that barely allows printing without an annoying dialog box.

Put in Work

There are too many sources to quote, but programmers who don’t program are essentially useless. You must create, and you must code. Writing a solution reveals the subtle logic flaws in your implementation and forces you to think deeper about the problem. I’m not endorsing going out there and coding something up cowboy style, but there is a point when the only thing that can be done is code. Great programmers write a lot of code. Practice makes perfect.

Rep Your Set

In this sense, “set” is essentially your community or project. This doesn’t essentially mean that you need to run out and start religious wars about your chosen technology stack (LAMP [linux, apache, mysql, php], WINS [windows, iis, .net, sql server]), but to be proud of the software you produce. Products without developer pride are counter-productive; if you aren’t proud of what you’re doing, take a step back and re-evaluate your solution or design. You can only code a lie for so long.

Sep 15

So the Zune Uses IE6 for Mobile

Sep 14

New Computer Part I

I recently built a new computer.  My previous machine was garbage (destroyed by Vista and my choice of super-cheap computer parts) and doing even the most minor disk or cpu intensive activities sucked.  To deal with the situation, I just shifted to doing most of my work at Work, and just did simple web browsing and chatting at home.  I finally got frustrated with the six-minute bootup time and purchased the parts to build a new machine.

 My new computer is decently high end, especially compared to previous models.  When you build computers in college, everything is based solely on price.  An extra gig of RAM for $40?  Not happening.  Having this real job helped out quite a bit, and I was able to put something together for around $800.   This (to me) seemed to be a bit pricy, so I lied a little to myself to justify the cost: Well, if I get a new PC, I’ll code at home more, write more, and generally be a more awesome person. Okay, I lied a lot.

Intel Q9400S 65W (which was 35% of the cost, actually.)
WD Raptor 74GB
2x 4GB DDR2 SDRAM
ASUS p5N7A-VM LGA 775 Motherboard
Antec Mini P180 Black Steel MicroATX Mini Tower
Antec Earthwatts 380W PSU
XFX GeForce 7300GT (Salvaged from old PC)
3 19” LCDs (Already had)
1 52” Samsung TV (Also already had)
 
Assembly was a lot more difficult then I imagined.  The last computer case I bought was in high school (2003), and the last computer I built was in 2006.  The cases for do-it-yourself PCs are a lot more advanced now, and I didn’t understand a lot of how to put the new case together.  There was a seperate power supply area and paths for running cables behind the motherboard.  Reading the manual (which was translated poorly) cleared up my problems, and once everything was up and running, i decided to install Windows XP x64.  Almost all of my hardware installed fine, except my second graphics card and the HDMI conneciton to the 52” Samsung.
 
Thats where the troubles began.