2011
10.10

The title says it all. To-Do lists I don’t get along, period. I know they’re helpful, I know they’re the best way to Get stuff done, I know the hundreds of examples and studies that prove that they help. I just can’t bring myself to use them with any consistency. I’ve tried a physical notebook, whiteboards, and post-its. I’ve tried dozens of software solutions. Gmail tasks, Emacs Org-Mode, text files, notepad, and a bunch of other solutions. I’m currently trying Astrid Tasks, which has the added benefit of harassing me on my phone with massive doses of guilt, in the form of ‘helpful’ messages, when I don’t get to the things I promise myself I’ll do.

It always starts out so innocently. I make lists, and for a few days I manage to knock the items off, one by one. “I’m awesome at this, look at how much I’m getting done.” Then comes the inevitable letdown and crash. I think it stems from optimism really. “I got to everything yesterday, I’ll just add one more item today.” The scope creep starts, one or two items slide, and start the endless chain of bouncing from day to day, until the daily ritual becomes dreading having to move the “due date” up to tomorrow. This pattern continues until the accumulated psychic stress from the pile of undone items reaches the breaking point and I take the inevitable action. I delete to TODO application and forget about the whole thing, and go back to managing my TODO list in my head.

Until the next time hacker news links to some TODO app, then the cycle starts all over again. I think I have a problem.

2011
09.28

I was taking stock of this blog and realized that it was pretty quickly becoming a one dimensional discussion of programming and tech.  While there’s plenty to say about tech, it’s a pretty narrow topic and I’d prefer not to sink into someone who does nothing but programming all day long. So, without further ado:

 
_MG_6101

Oooooo shiny. But on a more serious note I was discussing the other day how much having a “fun” car brings me in the way of stress relief. Leaving the office every day, it’s like an automatic disconnect for everything on my brain. For me, anyway, driving a car that is engaging to drive turns something that most people find boring (commuting) into an escape.

_MG_6119

I think this is the thing that people who don’t “get” car guys don’t understand. For a tech guy like me, it’s not about the having the shiniest toy, or the status icon, or even the fastest. It’s about the theory meeting the real world. It’s about technology married to engineering and design, creating art out of power and speed. Transforming a pedestrian part of life into something exciting.

_MG_6114

Driving, is an activity that lets me live in the moment, to focus my attention utterly on the task at hand. It gives my subconscious a chance to work through things that I didn’t even know were bothering me. It’s the best place for me to solve a complicated programming issue.

_MG_6136

This is my therapy couch. What’s yours?

2011
08.29

Up until a few weeks ago I had a water cooled pc at home.  Given the relatively exotic nature of water cooling I thought it might be interesting to consider after a year has passed I thought it might be interesting to do a little retrospective on the whole thing.

I started out this adventure with a cobbled together machine with roughly these parts:

CPU Core2 e6600 CPU
GPU Radeon 3870 GPU
RAM 4 Gigs Crucial DDR 2

The CPU clocked in at an anemic 2.66ghz. I didn’t feel like spending the money to jump up to an i7 rig at the time. With the large CPU cooler I had purchased I achieved a pretty reasonable overclock but between the CPU cooler, case fan, graphics card fan, and the power supply fan the system was annoyingly loud.

I picked up an asetek waterchill water cooling kit for about $120 shipped. As far as I can tell it was the best deal around, at the time. I priced out the individual components to build a custom kit and the asetek was far, far ahead. The loop included the CPU, north-bridge, and the GPU with a large radiator and three cooling fans. Setup was relatively straightforward, You measure and cut the tubing, assemble the pc and attach the loop, then test it with the power supply jumpered and disconnected from the motherboard. If it runs overnight with no leaks you can take the never wracking step of testing it with the machine connected and powered up.

The main components, minus wiring and mounting hardware are show below:
Water Cooling Kit

The performance increase was pretty much as expected.  I got a very stable overclock of about 1 GHz without over-volting.  The biggest win, was the overall decrease in noise.  For surfing/video I could easily crank down the pump and fan speed and the system would run whisper quiet.  Under full load, it was noisy, but the system would run under maximum CPU/GPU load and just barely crack 40 ℃.  Typically when the system was under that kind of load I had the sound turned up so high the fans weren’t even noticeable.

Alas, the it didn’t have the long life it should have.  After running the machine for about a year with not a hint of trouble I needed to fill up the water level.  I never appropriately mounted the radiator to the case and ended up dripping a little bit of water from the CPU block onto the PCI-E port on the motherboard, toasting both the graphics card and the PCI-E port.  Some quick mental math gave the sad numbers that repairing the system wouldn’t be worth the overhead, and so I’m parting the system out and saving towards an i7 build in the in near future.

I have to say that, if I was building a machine with up to date hardware I wouldn’t bother with water cooling.  Yes, it’s possible to get a significant performance boost, but unless the machine is loaded with a RAID array of SSD’s most applications and games are going to bottleneck at the hard-drive, GPU, or network.  When you consider the risk of totally frying the entire system, and combine that with the difficulty of replacing and testing for failure individual components in the loop, water-cooling isn’t worth the trouble.  Intel Sandybridge chips have been reported to easily overclock to 4GHz and beyond on air cooling and it seems that PC hardware has outraced performance demand for now. Still, they say the measure of any endeavor is “Would you make the same choice again, if you had the chance”  In this case I’d have to say a definite yes.  If you’re looking to keep an aging system limping along, or trying to cut the noise level of your gaming rig, water cooling might be the way to go.

2011
08.26

I work in a .NET shop which means Visual Studio is the editor of choice. I’ve been on the platform for several years now and have come to know it relatively well. I wouldn’t declare myself to be anywhere near expert level but I know my way around enough to feel like I’m running in to some rough edges.

First the obligatory compliments before I start trashing Visual Studio. As far as hitting the ground running being productive in a new language it’s really hard to beat Visual Studio. The “intellisense” auto completion is generally excellent and works really well even with the more dynamic pieces of the supported languages. At the beginner stage it lends itself well to figuring out what you’re doing. Throw in the code analysis and the environment does a pretty good job WTF proofing an even moderately skilled programmer moving in to the Microsoft Platform.

With the niceties out of the way, the more I work on the .Net platform, the more I feel like all the “helpful” features in visual studio are getting in my way. Particularly a lot of pretty common tasks , such as opening new files, or moving a tab into another vertical window, essentially force the use of the mouse. Granted, some of these tasks can be accomplished with the visual studio command line, but often doing a simple tasks have awkward syntax. I’m usually relegated to grabbing plugins to patch the most egregious of these holes.  Other tasks, like starting debugging on the most recently run project cannot be accomplished at all from the command line, short of writing unstable macros.

It feels like there is a pretty start choice in editors out there. IDE’s like Visual Studio and Eclipse,  for example, which make it easy to explore a platform and to discover new features and editors like emacs and vim which are infinitely flexible but have a steep, steep learning curve and don’t support all the platform specific niceties that you get in a more language specific IDE.  I’d love to see the Visual Studio Team at Microsoft put some serious thought into making it easier to control the IDE from the command line and/or via shortcuts.  Ideally one could slowly make the transition from using everything via that mouse to running everything via the command line.  Short of this, I’d love to see the intellisense features of visual studio, and maybe a formal spec for the project formats so these features could be used in another editor, an Emacs.Net if you will.

Given how good the tool-chain is in most modern programming languages, this is a pretty minor gripe, but as a programmer and keyboard junky, it drives me absolutely crazy to have an IDE force me to use the mouse for things like “run the most recently run project”.

2011
06.18

My fiancé is a graduate student in neuro-science and a good one. Talking with her about her work, I get a really good look at just how much a research scientist generates in duration of one experiment, and just how much of her time is spent managing and analyzing the data she produces. Nothing makes the programmer part of my brain wince more than when I hear about her having to spend hours painstakingly transferring or transforming data from one spreadsheet or file into another by hand. On several occasions, I’ve volunteered, or been asked,  to write simple scripts to automate some of the repetitive tasks, like aggregating some data from multiple spread sheets into one cohesive whole.

That got me to thinking.  As a programmer, it’s obvious to me to look at every process and look for places I can automate to save time in the long run.  Having graduated from CMU, my fiancé has had an introductory programming class, at the time taught in java. I don’t think, however, the course gave her anything that really met her needs.   One introductory, programming-focused course doesn’t really build the skills to quickly handle a problem like the I see her facing on a day to day basis.  The class certainly taught fundamentals of control flow, loops, etc but it didn’t properly teach how to identify problems where writing a program can be worth the time invested.  It didn’t teach the mindset of looking for places to automate, something that is second nature to most programmers.

I think a much better class would be “Scripting and Data Management 101:  Practical programming data management for non-programmers ”  Basic scripting would obviously be a must, in an easy teaching language.  There are plenty to choose from but python already has good traction as a scientific language so it would seem like a natural choice.  I can see other topics dovetailing nicely into the class, maybe a quick intro into a simple database system, how to design and query tables.  Assignments could be case studies where the goal is not to simply produce a working program, but rather analyze a process and look for places were writing a program might be the right solution.

I feel like some variant of the class above should be taught at most research based graduate programs.  It might be my programming-centric views talking but I feel like such a class would be of immense value.  I’ll certainly stand by the fact that the amount of data a researcher is generating is only going to increase with time.  Maybe this way they can spend more brain cycles thinking about solving cancer, and less about how to deal with their piles of data.  All I know is, I’ve won over at least one convert.  My fiancé is rapidly picking up python.

Anyway, wordy post. Here’s something funny and relevant from xkcd:

2011
01.07

Bandwagon Time

It’s a brand new year, so I guess it’s the traditional time to make a giant list of promises that we pledge ourselves to, and then forget by mid January. In no particular order, my list is as follows.

  • Write More: I used to write a lot, and I’ve gotten out of the habit. This post is my first step towards this resolution. Maybe this time I won’t fall off the wagon and not write anything for a year.
  • Get Back Into Reasonable Shape: I don’t think this one requires explanation. I’m already about 6 lbs in the right direction. Hopefully 5k’s and better swimming time to follow.
  • Build Something Useful and Sell/Open Source It: I write code all day for other people. I’m feeling a real itch to try my hand at something micro-entreprenurial. I’m already doing some side work in machine learning but that isn’t for sale. This will also help me avoid my nasty habit of procrastination through learning frameworks/programming language. My source repository is littered with half baked ideas for started projects. I’d like to finish a project this year
  • Help Plan My Wedding: I don’t think this one is optional anyway.
  • Get My Life Organized: Last year was pretty chaotic. I bought a house, got engaged, changed teams at work, etc. A lot of organizational cruft has built up around the house. I’m notoriously bad at this kind of thing anyway, so I have a feeling this will be a hard one to accomplish
  • Take Some Vacation Time For Myself Last year I didn’t take a single day of vacation that wasn’t purposed for a comittment/travling/etc. I’d like to take a few days just to relax this year.

So that’s my list, and I’m sticking to it. Maybe. We’ll see how Jaunuary goes, I guess.

2009
12.21

I got a Christmas gift from w00t on Friday, well, a gift for myself. The desktop I built in early march was about out of harddrive space. Cue the woot off $40 500 gig harddrive. I figured it would be pretty simple to get all my data and my windows 7 partition moved across to the bigger disk. That was a big miscalculation. I must have tried six or eight disk cloning tools. I know I tried ShadowVolume, HDClone, Clonezilla among others. I also tried just using the Windows 7 backup tool to make an image file which I loaded off another machine on my network. All were met with frustration, swearing and failure. The files would transfer fine Windows 7 boot loader/ boot manager is apparently very touchy and didn’t like my attempts at recreating it on the new disk.

It was a good exercises in things NOT to done when doing tech projects. At first I was quite careful to make sure I always had at least one working partition, but by the second day of the process I eventually got in a hurry when I thought I saw success and ended up reducing to a completely broken computer. Fortunately, I still had my backed up image (see, see, I’m not completely irresponsible) on my netbook. I managed to get that restored back on the original harddrive. Then I gave Easeus’s free Disk Copy software a try. It turned out to be quite a pleasant experience compared with some of the others, which required booting off of a CD or a USB key. It went right to work and made a perfect transfer right from windows. The only minor caveat I’d throw in if anyone is considering it is you need to have three active drives going for it to work while windows is running, one for the source, one for the target, and one to use as swap space. I used a USB key, but another SATA drive might be faster. Needless to say I am back up and running with plenty of space for photos etc.

In between trying to clean my apartment and yelling at my computer I went out to poke around at some Christmas shopping.  As I was poking around, curiosity caught me when I saw the grand opening of a new pawn shop on Sam Rittenberg Blvd.   Pawn shops in general are a new thing for me, they weren’t very common at all in Pittsburgh, or at least the parts of it I frequented.  They seem to be everywhere in Charleston.  I thought I might snag something for a Christmas gift so I poked around when this caught my eye:

New Sax

New Sax

New Sax

New Sax

Curiosity got the better of me.  It’s a tenor horn, silver and it seemed pretty solid but I really wasn’t familiar with the brand.  Still, I wrote down the serial number and the branding info and took it home.  A little bit of internet poking and I turned up a lead to this sales article from 1922! The sax was made actually manufactured by Beuscher one of the major manufacutures, before they were bought out by selmer and turned into a stencil themselves. Apparently it was pretty common for music stores to buy instruments form major manufactures and to have them stenciled with the store brand. The serial number is 4xxx which, if the internet is to be trusted, and the serial number on the stenciled horns were consistent with that on the native horns means it was manufactured in 1905 or earlier!

I went back in today and play tested it. She was repadded somewhere along the way, and still plays like new, or, at least as well as I can given how long it’s been since I played. I admit I felt a twinge of guilt at bringing it home when I was supposed to be Christmas shopping but some things are too pretty to pass up. If anyone has any more information about Beuscher’s of that vintage, send it my way. I’d be interested in the lineage.

That being said. Merry Christmas to me! Happy Holidays to everyone if I don’t talk to you before Christmas!

2009
10.25

Odds and Ends From the Past Month

Broadband Solutions?

I’m moving by the end of November which means I get to deal with the joy of dealing three or four customer service departments to transfer my utilities. Most of them are an easy switch but I’m getting a little frustrated with my hunt for suitable internet. I’m currently in a Comcast area. I’m have their fastest package which is 16 megabits per second down, 2 megabits per second up. Leaving aside the megabit versus megabyte trickery that every ISP seems to indulge in today, I’ve been reasonably satisfied with Comcast’s service.

Unfortuantely my most likely relocation spot is in North Charleston, in a Time Warner “RoadRunner” cable area. The best package they offer is 10 megabits down (up to 16 with “power boost”) and 512 kbps up. DSL is through AT&T and caps out at 6 mbps down and 512 kbps up. Frankly these speeds are pathetic. Particularly when there’s no technical reason upload speeds should be slower than download speeds. These are caps imposed by the providers because they figure most people download far more than they upload, and that heavy uploaders are engaging in illicit actives.

I wouldn’t go so far as to call myself a heavy user (read: no bittorrent of movies/music) but I do have several uses that are relatively upload intensive. Skype, remote desktop/ file upload to work, and archiving RAW images to flickr. I also play the occasional online game so I can’t totally ignore latency/ping.

I’ve tried calling the business internet group at Time Warner and didn’t get much traction. Has anybody else gotten their provider to bump their bandwidth for a fee? The only other solution I can think of is buying a dual WAN router and getting Cable AND a DSL line and using the connection together. It wouldn’t increase any individual transfer but it would raise my overall throughput. It seems like a suboptimal way to go about it but it might be my only option at this point.




The DMV and Security Theater

This xkcd pretty much sums up my feelings about the general populations parking skills.

parking

http://xkcd.com/562/

I went to the DMV a couple weeks ago to swap out my Pennsylvania licenses.   The DMV was in a shared building with the department of public safety, health department, and the magistrates office.  Upon entrance they had a metal detector.  I proceeded to dump my cell phone, my pocket knife and my trusty, if a little worn leatherman into the little “metal objects collection bowl”.  I was immediately told I’d have to return and leave the leatherman/pocketknife in the car.

On the return trip it really struck me was that this was a blatant case of security theater, something that seems to be a huge part of our society in the past few years.  I understand that the DMV can be a stressful place, but a full sized walk through metal detector, additional small hand detectors, and an armed officer seem like overkill to protect the entrance to that building.  I’m not really bothered by the minor inconvenience of having to walk back to my car, but there are more troubling aspects to this growing scenario.

The most obvious problem I see is cost.  Using admittedly unscientific methods and ballpark numbers I thought of some back of the envelope numbers for what that little checkpoint costs to run:

Full size metal detector, approximate $3,000
Hand metal detectors x2 $300-400
Police Officer Annual Salary $40,000
Training, Equipment, Weapon, Ammunition (estimated) $2,000

That seems like an awful lot of money to be spending for very limited security returns. Granted the magistrates office was in the same building but I feel like someone should have had the common sense to look at this situation and do something a little bit more cost effective. I know I would simply install keycard access doors to the more sensitive parts of the building (the DMV was accessible from the entry on the first floor, the other office were upstairs.) When someone needed access to the interior they could simply buzz in and have someone sweep them down with a handheld metal detector. It would free up an officer for doing police work and save the annoyance to the bulk majority of people simply trying to get in and out of the DMV with a minimum of fuss.

2009
09.27

Please leave any comments here http://infinityinyourhands.net

There are a lot of programming languages floating around.  Off the top of my head I can think of C, C++, C#, Visual Basic, Java, SML, Scheme, Lisp, PHP, Ruby, Pearl, Python, Haskell, Erlang, Javascript, Various Assembly languages, Cyclone, etc. That’s just the short subset that I happen to remember when writing this down.  There are way more languages on this list than I’ll ever manage to learn even passably well.

What I’d really like is a good set of programming sample problems to use to give hot-new-language-du-jour a run down and see if I should invest anymore time.  I feel like an upper limit on the total test should be about 12-24 hours (i.e. 2-3 Saturdays of part time work.)  The problems should ideally be a known problem (or an easily learned one) so that the implementation time and ease can be measured.  I’d like the list to be relatively general even if it means some problems can’t be solved in a particular language.  Ideally these would be problems that a reasonably skilled programmer could code in 30 minutes or less in his or her most familiar language.

An example problem set I’m conjuring out of thin air:

  • Read a “Hello World” message from a file and print it out (basics, file i/o)
  • Implement quicksort or mergesort  (functional style, recursion, iteration concepts)
  • Binary tree, add, delete, insert, and traverse
  • Consume a web service (REST, etc)
  • write and read from a database
  • Wire up a simple graphical UI
  • Create a math library (encapsulation, namespacing, built in libraries)
  • A test suit for one or more of the above projects (Reflection, etc)

It isn’t a complete list, and every language probably can’t easily handle even my short list.  What I’m interested in is coming up with a nice concise one, and any suggested problems people might have.  I think with a bit of revision I could develop a fairly good little test suite to figure out which languages are worth my time and investment to learn.   Some of the problems above could definitely get lumped into one bigger problem too.  Maybe something like “Use the flickr API to code a desktop application which pulls down all the photos in a selected photoset and write the data out into a mySQL database for local caching”

Anyone have any favorite programming problems they “goto” immediately when taking a new language out for a spin?

2009
08.10

This is a rant and probably isn’t terribly interesting but involves this ranking list in Forbes magazine. In the interest of being honest I need to preface this one with several disclosures.

    I am a former student of Carnegie Mellon University. I felt we got maligned by the list.
    Much of what I’m writing was brought to my attention through class I took at CMU last year. A good part of this post is retelling things from that class and hence many of the points are not entirely from my own original thought.
    I think all of the schools on the list are perfectly great places to get a quality education my gripe is with the method by which Forbes calculated their rankings.

With that out of the way I applaud Forbes for their goal of looking past the established names and trying to come up with some kind of objective list. Unfortunately their methods were sloppy at best, deliberately rigged to be inflammatory at worst. Certainly their ratings system doesn’t hold up to what one would expect from a news organization of their size and potential impact on people’s college decision.

Forbes calculations of rank, from their own site:

    1. Listings of Alumni in the 2008 edition of Who’s Who in America (12.5%)
    2. Salaries of Alumni from PayScale.com (12.5%)
    3. Student Evaluations from Ratemyprofessors.com (25%)
    4. Four-Year Graduation Rates (16.66%)
    5. Students Receiving Nationally Competitive Awards (8.33%)
    6. Faculty Receiving Awards for Scholarship and Creative Pursuits (5%)
    7. Four-year Debt Load for Typical Student Borrowers (20%)

Taking them in order. The Who’s Who list is a debatable point. Forbes defends the inclusion by stating that many notable figures have appeared in the list. It is important to note though that Who’s Who is still a for profit service. It’s fairly questionable how relevant this service is the age of the internet. How many truly notable alumni are going to be willing to pay for, and go through the effort of applying to what is essentially a vanity book? If making a list of notable Alumni is an important factor in the rankings perhaps Forbes should consider counting the number of Alumni with Wikipedia articles, at least Wikipedia has a published set of standards for what makes up individual and academic notability.

Salary data from payscale.com is the newest entry to Forbes criteria. In my personal opinion it’s one of the worst. First and foremost payscale.com is a forprofit salary gossip site. Regardless of how many total records the site may index how many people per College/University truly participate in this program? Secondly the data is self reported and users are required to enter their own salary information to get the comparison information (i.e., the information they want). There is no real incentive to be honest in presenting your own information, particularly when that information could be perceived as being found and used against you by an employer. This is especially true of alumni working at smaller companies. This method of taking career information also discounts undergraduates joining or founding startups which is a fairly important factor in a schools with strong business programs. Finally this completely discounts undergraduate alumni who go on to further education. Forbes list seems to have neglected undergraduate programs which place students into top flight graduate, professional and medical programs, where starting salary data is completely meaningless.

Forbes actually addressed my primary complaint with RateMyProfessor.com on their explanation of the rankings. They mentioned that Dartmouth complained strongly that it had an internal professor tracking system. Forbes defended their decision citing the large number (4 millions rankings). Now I’m not a statistician but something is really fishy about this. Carnegie Mellon also has an internal professor ratings system. It makes much more sense for students to give honest feedback on that system where their feedback actually gets examined and studied by the various departments. Forbes cites that 86% of schools have an internal ranking system, but they do no analysis of how significantly that system is used, or encouraged by the university. If I were an enterprising CMU or Dartmouth student I might think of getting a bunch of people together and gaming the rankings since no one at CMU will use those rankings for anything worthwhile anyway. Even more bothersome is the fact that ratemyprofessor.com isn’t using any kind of CAPTCHA system to prevent a script from voting lots of times automatically….hmmmmmm this sounds like a job for the computer science department.

Four year graduation rate is probably a pretty valid metric to evaluate a college. There are some possible exceptions though. I know that at Rochester Institute of Technology (RIT) for example many, if not most students do a semester or yearly co-op. This means that the average student is finishing their education in five years by choice, not as a result of anything the school is doing. Schools with large concentration of architecture majors are also heavily penalized here.

Students receiving Nationally competitive awards is as valid a metric as you’re going to get. I don’t really have too much complaint about this one.

The faculty awards section is also a reasonable choice for evaluation but Forbes heavily weighted it in the favor of some programs and not others. For example, notably missing from the list are: Fields Medalist (Math), Turing Award Winners (Computer Science), ACM Fellows (Computer Science), Tony Award Winners (Drama), Pulitzer Prize (Journalism), etc, etc. Forbes also noted that they weighted the Nobel Prize more heavily than others by a factor of three owing to it’s competitive nature . Given that they only included Nobel Prize winners from 1997-2008 this represents a pretty small possible set of faculty members when considering all Colleges and Universities giving recent winners disproportionally high rankings, compared with older Nobel winners (who probably have more teaching experience to boot). Similarly their inclusion of faculty who won their prizes recently downgrades programs which are able to consistently attract prize winning faculty to their academic staff.

The debt ratio upon graduation is probably my favorite factor Forbes included. Again, kudos to them for including this metric and helping to point out the ridiculously high price of education. I don’t have much to complain about.

I recognize that rankings systems for colleges are always going to be contentious and are essentially entirely arbitrary. Forbes, however, has a duty to their readers to ensure that they are using the best information available and doing everything in their power to remove biasing factors. Their current rankings system does a really poor job of holistically approaching the various programs and giving each a fair shake. It’s particularly egregious because Forbes buries the methodology information within the article, and on a second page far from where most readers will end up. Their inability to consider the students not immediately entering the work force is also a big mark against their list.

Still, congratulations to all the West Point folk. West Point has been getting unfairly punished on the US News and World Report list for years so good for them for topping Forbes’s.