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.
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:
- QA files a bug. I get an email.
- I read the bug through Quality Center (a horrid piece of shit program, btw)
- I notice it’s with our Excel Import functionality. They provide a file.
- I download the file to the quickest place I can access: my desktop.
- I start our application, hit import, and navigate to the easiest place to find: my desktop.
- I import the file. It fails. Crap.
- I fix the bug.
- 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.
- I make the changes.
- Start our app again to reimport. Open -> Desktop -> Select file.
- 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.
September 30, 2009 at 9:22am
0 notes
I made a graph. I make a lot of graphs.
September 25, 2009 at 1:10am
0 notes
#showmeyourdesktop
September 23, 2009 at 11:49pm
0 notes
When trying to make a point involving business never interject your own politics.
— Me
September 21, 2009 at 11:25pm
0 notes
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.
September 15, 2009 at 1:34pm
0 notes
So the Zune Uses IE6 for Mobile
PM: Alright team, we've been handed down an edict to use IE6 for mobile as the Zune's browser.
Developers: Fuck IE6, that shits garbage.
PM: Well, we have a very specific release date and we want to make sure we don't delay this.
Developers: We originally had a stiff release date and wrote our own WPF variant and it worked wonderfully!
PM: We did let you do that, and it looked pretty slick.
Developers: So let us write our own browser, we can get it done on time!
PM: We also let you write your own date calculation code.
Developers: IE6 it is :(
September 14, 2009 at 10:35pm
0 notes
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.
September 13, 2009 at 10:04pm
0 notes
Please Allow Me to Reintroduce Myself
My name is David Sokol. I am a Software Developer in the finance industry. I focus mainly on risk management and developing excellent software solutions. This site and it’s related content does not reflect the views of my employer.
The format of this site is a daily update containing hopefully decent content. Content will either be technical (.NET, Finance, Software Development theory, etc.), personal writings, or somewhere in between. I’m trying to take a Raymond Chen format of posting. Shorter, more regular posts and a queue of backlogged entries. I’ve been writing for almost two months now, so I have a fair amount of entries to keep things fresh.
My goal for this is threefold: an outlet for my poor creative side (writing), growth of my personal brand (aka David J. Sokol, aka DJ So-cool, aka jer, aka Louis Rich), and sharing my knowledge of computers and software development. Hopefully by posting about my life, my programming, and my actions, I’ll hit the top part of Maslow’s hierarchy.
2.