How fun!
https://bitbucket.org/dbenamy/devcron/changeset/a8555e317042
Wednesday, July 13, 2011
Tuesday, July 12, 2011
Saturday, May 21, 2011
Some Ideas I Like About Development
I read http://edweissman.com/53640595 and here are some bits I especially liked.
I work in 2 modes: (A) At the computer and (B) Away from the computer.
When I'm in Mode A at the computer, I'm cranking out lines of code, testing, revising, testing, revising, etc. This process must be very fast. Several hundred lines of code (or whatever) in less than an hour. A complete cycle in less than a couple of hours. My guideline is that if I'm not working that fast, then I must not be prepared to work that fast, so I don't deserve to be at the computer. I should be in mode (B).
Mode B is generally much slower. Reviewing code, specs, or notes. Refactoring code. Laying things out with pen and paper. When I have enough work clearly laid out, I know it's time to get back to the computer and return to Mode A.
The most important thing for me in Mode A is to see results, any results, quickly and often. It doesn't matter how correct anything is, just as long as it's progress (or sometimes, reverse progress). I like to think of programming as making incremental progress in micro jumps, evaluate where I'm at, and go for the next micro jump.
How do you stay productive?
1. Do not have access to the internet on your work machine. If you don't have 2 computers, get a netbook for < $300 and connect it to the internet. They should be in 2 different workstations, ideally in 2 different rooms. The thinking is that if you have to get up, you'll only do it if it's really necessary. It works pretty well.
2. You should have 2 modes: coding and not coding. For coding, you should be at your desk coding. For not coding you can be anywhere, but "not at your desk". One of my biggest problems is that I often find myself in one mode when I should be in the other. If you're having trouble writing code, then you probably don't know what to write. Grab source code listings, pen, & paper and "get away from your computer". Don't come back until you know exactly what you're going to be working on. Better yet, until you're "dying" to work on it. On the other hand, if your doing analysis and are stuck, stop. Go back to the computer and code something, anything small, just to get going.
3. End every day in analysis mode. Don't go to sleep until you have tomorrow's plan ready. You should wake up knowing exactly what you're going to be working on and excited to do it.
4. Never text or IM when working. Have the cell phone nearby only for emergencies. For email, go to the other computer once an hour (see #1 above).
5. Try 48 minutes on, 12 minutes off. For long coding sessions, this works pretty well for me:
http://successbeginstoday.org/wordpress/2006/09/the-power-of...
6. Ipod.
Where do you like to sit in your office?
I prefer to sit with my users. As you can imagine, this concept is met with a bit of resistance in corporate America.
I want to dwell with them and be a part of their lives. I want to hear them complain about their apps, their customers and vendors, their bosses, and each other. I want to know what they go through all day every day.
When I sit and suffer with them, the resulting software is "always" better. All the meetings, prototypes, demos, specs, etc., etc., etc. have never been able to deliver the same knowledge needed to develop their apps.
On the other hand, I "don't" want to sit with other programmers, unless we're working on the same thing at the same time. I don't care about your problems, I have my own.
Tuesday, May 17, 2011
Link: How to Quit Your Job, Move to Paradise, and Get Paid to Change the World
People often use Twitter to post links to interesting things, but I'm not a big fan of Twitter so I'm going to use my blog.
http://www.problogger.net/archives/2011/05/18/how-to-quit-your-job-move-to-paradise-and-get-paid-to-change-the-world/
http://www.problogger.net/archives/2011/05/18/how-to-quit-your-job-move-to-paradise-and-get-paid-to-change-the-world/
Saturday, May 14, 2011
A New Try at Blogging
(written on Wed)
Jason on the A Smart Bear blog wrote a post about how people and companies should have blogs so we're visible online. I can't help but agree with points, so I'm reviving my blog where I'll probably post about entrepreneurship, geeky technology, and my startup Exerdare. This may trail off into nothingness again due to my RSI, lack of time, or lack of motivation, but I have little to loose and much to gain by trying.
Speaking of Exerdare, I spent today working on the 3rd generation Exerdare bike prototype. For those who don't know what I'm working on, it's an exercise bike with built in multiplayer gaming to make working out more fun and competitive. The big remaining issue blocking "public" testing is that the data I'm reading from the sound card's line seems garbled. It looks fine when I record it in audacity so I'm probably doing something wrong with pyaudio. I'm writing this on the train on the way to the Columbia Venture Club Demo Night, where I'm presenting Exerdare.
That's it for now. More to come hopefully.
Jason on the A Smart Bear blog wrote a post about how people and companies should have blogs so we're visible online. I can't help but agree with points, so I'm reviving my blog where I'll probably post about entrepreneurship, geeky technology, and my startup Exerdare. This may trail off into nothingness again due to my RSI, lack of time, or lack of motivation, but I have little to loose and much to gain by trying.
Speaking of Exerdare, I spent today working on the 3rd generation Exerdare bike prototype. For those who don't know what I'm working on, it's an exercise bike with built in multiplayer gaming to make working out more fun and competitive. The big remaining issue blocking "public" testing is that the data I'm reading from the sound card's line seems garbled. It looks fine when I record it in audacity so I'm probably doing something wrong with pyaudio. I'm writing this on the train on the way to the Columbia Venture Club Demo Night, where I'm presenting Exerdare.
That's it for now. More to come hopefully.
Thursday, November 25, 2010
Another Thinkpad X61 Hard Drive Upgrade
After reading http://www.codinghorror.com/blog/2010/09/revisiting-solid-state-hard-drives.html, I did another hard drive upgrade on my Thinkpad X61 to the Seagate Momentus XT hybrid SSD drive. It's a little smaller than my last drive, but has enough space for my data. When I bought it it was $105 on newegg. In the few days since then it went up to $115 or maybe $130 and then back down to $100.
I'll spare you the suspense and say up front that it's much faster and seems well worth it. I did some rough measurements of speed on the old and new drives. I measured the time from power on to when the windows 7 login screen is visible, the time when the desktop icons are visible, and then click chrome as soon as I could and got the time when the chrome window appeared (before it showed any pages). These were done with a stopwatch and there will be a little variation based on how long it took me to type my password or click.
Ye Olde Drive:
Login screen 1:43
Desktop 2:53
Chrome 3:22
Yeah I know it's insanely slow to start up. Once it gets going it's plenty snappy. When I first installed windows it was much faster, but all the crap I've installed since then has bogged it down and I don't feel like spending the time reinstalling since I almost never restart.
Then I did the copy to the new disk. It involved shrinking the partition which may have affected the speeds. I booted up twice so it could install the new disk drivers, run scan disk, and get some stuff into the 4GB SSD portion of the disk. On the 3rd boot I measured:
Login screen: 1:13
Desktop 1:44
I didn't click chrome fast enough on this boot so I did it again:
Login screen: 0:57
Desktop 1:20
Chrome 1:29
Holy gajoly! I'm up and running in 44% of the time!
But the variation between the too runs was interesting so I did it once more:
Login screen 1:01
Desktop 1:30
Chrome 1:43
I got a little slower. I assume this has to do with what the disk decides to put in the SSD portion although I only made one baseline measurement on the old disk so I don't really know how much variation there is without that factor.
If you're interested in the details of how I did the copy this time, here they are:
I'll spare you the suspense and say up front that it's much faster and seems well worth it. I did some rough measurements of speed on the old and new drives. I measured the time from power on to when the windows 7 login screen is visible, the time when the desktop icons are visible, and then click chrome as soon as I could and got the time when the chrome window appeared (before it showed any pages). These were done with a stopwatch and there will be a little variation based on how long it took me to type my password or click.
Ye Olde Drive:
Login screen 1:43
Desktop 2:53
Chrome 3:22
Yeah I know it's insanely slow to start up. Once it gets going it's plenty snappy. When I first installed windows it was much faster, but all the crap I've installed since then has bogged it down and I don't feel like spending the time reinstalling since I almost never restart.
Then I did the copy to the new disk. It involved shrinking the partition which may have affected the speeds. I booted up twice so it could install the new disk drivers, run scan disk, and get some stuff into the 4GB SSD portion of the disk. On the 3rd boot I measured:
Login screen: 1:13
Desktop 1:44
I didn't click chrome fast enough on this boot so I did it again:
Login screen: 0:57
Desktop 1:20
Chrome 1:29
Holy gajoly! I'm up and running in 44% of the time!
But the variation between the too runs was interesting so I did it once more:
Login screen 1:01
Desktop 1:30
Chrome 1:43
I got a little slower. I assume this has to do with what the disk decides to put in the SSD portion although I only made one baseline measurement on the old disk so I don't really know how much variation there is without that factor.
If you're interested in the details of how I did the copy this time, here they are:
- Connected old and new drive to a linux machine (ubuntu).
- Shrunk system partition on old disk so it would fit on new one using gparted.
- Copied utility and system partitions to new disk. Grew system partition on new disk to use all available space.
- Set utility partition as hidden and system partition as bootable.
- Put new disk in laptop. The plugging in mechanics on the Thinkpad X61 don't work well. It probably took me 10 minutes of plugging in the disk, trying to boot, taking it out and adjusting something until the machine happily detected the disk.
- Booted windows 7 install disk and clicked repair. It detected some boot settings needing fixing so I let it do that and restarted. The drive didn't boot yet.
- Booted install disk again, went to repair, command prompt, and used bootrec /fixmbr and /fixboot (http://support.microsoft.com/kb/927392).
- It booted! Windows had to install some drivers and reboot. On the next boot it did a full scan disk.
- I don't seem to be able to boot the utility partition, but I pretty much never need it so I decided not to worry about that.
Tuesday, January 19, 2010
The Most Expensive Keyboard
I've tried a number of keyboards and keyboard setups to put less strain on my arms because of my RSI. My latest attempt is to take my Kinesis Advantage keyboard which I think has the best layout of any of the ones I've used, split it apart, and mount it on the super configurable base from the CK comfort keyboard. Here are some pictures of how it went. I've just started using it today and so far it seems to be working nicely. The kinesis keyboard was $160 refurbished and the comfort keyboard was $330. Plus the hours it took me to cut apart and solder the extension wires for the kinesis. But hey, being able to type enough is worth more than $500.
First I opened the Kinesis.
I added extensions to the 3 connections to the pcbs on one side. For the 2 that use flat flexible cable, Kinesis was awesome enough to send me some extra flat cable and the sockets so I built standalone extenders with a socket on each end and then connected them to the pcbs on either end using the short FFC cables. You can see this in the foreground. For the thumb buttons, I cut the jumper ribbon cable and soldered my extension cables straight to both sides. I used little pieces of insulation from thicker cable as sleeves that I covered the solder junctions with. Those are the yellow thing you see. I used heat shrink tubing to bundle the wires together. I mostly used very thin wire (don't know the gauge) but ran out before I was quite done so I used a bit of ribbon cable.
Subscribe to:
Posts (Atom)