Recently in Technology Category

Steve Yegge Makes You Smarter

I worked "near" Steve while he was Amazon. We were on interview loops together and occasionally sat in meetings together etc. I also started reading his blog when it was just an internal company blog.... I never had the chance to work on his team, but every time he says something publicly I regret that.

In his most recent rant he tackles the "problem" of code-base size. I've done my fair share of refactoring in Amazon's massive code base, and after having been working in Ruby for the past couple years it's crystal clear how VALUABLE concision is. It's really amusing all of the commenters on the post who say "the number of lines isn't a problem when you have nicely modularized code...." They have a point when they argue that Steve doesn't count the number of lines of code in the kernel's of our OSes, etc. but generally I think they miss the general point that he's making which I would characterize as "your language and the expressiveness of that language affects how much code you'll be responsible for" and "the more code you have the less possible it is to keep it in your head" (reconsider his point about 1M lines of code with 50 lines per "page" being equivalent to a 20,000 page manual. He seems to echo some of what Paul Graham has said.

Either way, if you're into software. Steve is well worth reading and thinking his thoughts.

Kindle Review

A couple of weeks ago I bought Amazon.com's latest product offering, the Kindle. I got it primarily to experiment with a new technology but secretly my hope would be to consolidate all of my reading into one little device. I'm typically reading 3 or 4 books , several magazines, the Bible, the Book of Common Prayer, and a dozen PDF papers at any given time (obviously not all at once). The prospect of having them all available simultaneously in a little form factor was pretty cool. If my experiment didn't work then I was planning to sell it on Ebay and take a loss if necessary. I haven't sold it and I'm not sure that I plan to however it's far from perfect. Here's what I like:

  1. I love the fact that I can e-mail myself documents and they appear in the device (e.g. send something to aharbick@kindle.com). It takes PDF, DOC, HTML, and a bunch of other formats. Many people complained about apparent lack of support for PDF, but it's just not true.
  2. Shopping on the Kindle is pretty flawless though selection isn't amazing (particularly in periodicals).
  3. The screen provides a great reading experience.
  4. I love the fact that it's about the size of a paperback.
  5. The search, clipping, and highlighting functionality are great.

Here's what I don't like:

  1. There is no way to match a page in a physical book with a "Kindle location" If you have a friend reading the same thing and they say "could you believe page 25!!" you're out of luck unless you respond "can you tell me a phrase from that page" and then you search for the phrase.
  2. Similarly it's incredibly hard to tell where you are in a book. There's the little meter at the bottom of the page that records general progress through the book, but there are no indicators for chapter, etc. This is particularly hard in reading something like the Bible. You turn to Genesis chapter 8 and start reading... The only clue that you've moved into chapter 9 is a tiny little "9" and the fact that the verse numbers have recycled back to 1,2,3...
  3. Also related is navigation... Again, this is mostly related to reading something like the Bible where you jump around a lot. If you're lucky the thing you're reading has a Table of Contents. So from any given page you click the scroll wheel and choose the "Table of Contents" navigate through a couple of pages of ToC, choose one of the chapters and navigate to it. It's about 6 clicks and scrolls to jump around and as far as I can tell there are no "Next Chapter", "Previous Chapter" functions.
  4. The display is pretty weak for anything but text. It's grayscale which would be OK, but in a PDF (that you mailed to yourself) graphics are often stripped presumably because they're vector-based and the Kindle can only do pixel-based images.
  5. The digital edition of Time has absolutely NO GRAPHICS. It's all text. This makes reading the magine pretty hard when the text refers to a chart, etc. It's a pretty poor experience. That said, reading it made me in the "know" for my other Time-addicted friends.
  6. There's a bunch of lame hardware things. a. The battery life isn't amazing. You get at most 7 days if you never turn it off. b. There is no "lock" feature to disable buttons (big pain if you leave it on while it's in a bag). c. the power button is awkwardly located on the back of the unit which makes it very difficult to shut off it it's in the supplied carrying case. d. the previous button should be the entire left-side so that right click is next and left click is previous. Instead the previous button us only the top left and there is duplicate next functionality at the lower left side. e. It's WAY to easy to click the paging buttons while handling the device. f. the navigation wheel is hard to use... too easy to scroll and too hard to push (makes it incredibly hard to click precisely). g. the menuing system is pretty lame. h. The iPhone is a game changer and not having a touch screen feels the same psychologically as using a 28k modem to get on the Internet now.
  7. The selection of materials isn't that great. Of the books I'm currently reading I could only get about 25% on the Kindle. I read a bunch of "theology" books, but even books like "Emergence" or "Cub's Nation" or "The World Is Flat" can't be found. The periodical selection is really poor. There are only 10 papers and not a whole lot more magazines. Basically, I'll have to carry a Kindle and a book for the foreseeable future.
  8. It's proprietary... Once there's a better device than the Kindle how do I port my content? This problem isn't possible with physical books.

So... Now that I look at it, I should probably sell mine ;)

I think that Apple could totally clean Amazon's clock at least hardware-wise. If they launched an iTablet computer similar in functionality but larger in size than an iPod touch it would be vastly superior from a hardware standpoint. Perhaps this is the whole end-game of Amazon? Amazon could be jump-starting a market. Get people talking about the "future of reading"... Get people passionate about it... Apple swoops in a builds a GREAT device and Amazon is there to sell content because they already have the relationships with the publishers.... Hmmm

First Leopard Complaint

I installed Leopard yesterday with an "Acrhive and Install" installation (it basically moves everything over to a /Previous System folder and then does a clean install). Everything went pretty smoothly and I'm more or less up and running as before except with the new features.

Here's my first big beef... There is a new feature to the dotmac integration that synchronizes system settings/preferences. That new feature adds a little "rotating arrows" icon to the menu bar and periodically trys to sync with your dotmac account. I don't have a dotmac account and I didn't particularly want one. HOWEVER there doesn't appear to be a way to get to the configuration options for dotmac without first entering in account information. So I ended up having to get a dotmac trial account so that I could get to the "Sync" tab in the dotmac configuration which allowed me to make synchronization only manual and to remove the icon from the menu bar. Now I'm stuck with this bogus dotmac account that I'm sure I'll be pestered to upgrade.

As I wrote this, I've uncovered a second big beef... I used a "PC keyboard" hooked in through USB to my MacBook. It appears that Apple apps like Mail, iCal, etc. no longer recognize the Backspace key as "delete on character backwards" and the "Delete" key does what it traditionally does on a PC ("delete one character forwards"). I'm gonna have to fix this (or get an Apple keyboard)...

Quick Tips on Moving to EC2

I should really spend time documenting all of this, but instead I’ll just do a quick dump:

  1. First you’ll need a “Dynamic DNS” provider. Currently there is no guarantee that your EC2 instance will have the same IP address forever. I chose ChangeIP They have a plan that is $6/year/domain once you’ve listed the first domain at $15.
  2. If you’re already locked into a registrar like http://register.com don’t worry. Just change their DNS settings to point to ns1.changeip.com That’s how I’ve got it setup. register.com is my registrar and changeip.com is my DynDNS.
  3. If you want to do SMTP on your new domain don’t forget to setup MX records for the domain. Otherwise you get “relaying not permitted” errors.
  4. There’s no guarantee that the instance will remain available. It could die at any moment and because it’s a virtual instance it’s more likely to die than even physical hardware. So BACKUPS are essential. I’ve got two scripts one for a full backup and one for incremental backups of e-mail and databases etc. You can use the former to quickly spin up a new instance (which is the instance exactly as is was up to 24 hours ago) and then user the later to recover the most recent changes to e-mail, etc. One caveat about the full backup one… EC2 has a image-size limit of 10GB so if your instance has lots of data this strategy won’t work (not the SMS notification on filesystem size error)
  5. Webmin is great for system administration.
  6. Don’t forget that you need to permission ports in your EC2 instance for everything you wish to have access.
  7. The EC2 Firefox plug-in is great!
  8. I’m using Exim for SMTP/mail… It does a nice job with e-mail aliases and “catch-all” addresses like andy-is-clever@aharbick.com
  9. Exim may solve this, but I don’t know… I’ve got a dozen+ domains on the machine and the e-mail is tied to a user account so aharbick@fivepints.org is the same as aharbick@aharbick.com is the same as… I kinda like that. Though the way that I handle is is with procmail rules to move messages based on the domain they were sent to. Here’s my .procmailrc

Grand Central

I just got a GrandCentral number:

Andrej was right. These guys have a VERY cool service and they were acquired by Google. I'm still trying it out, but if I decide that I like it (and if it makes it out of beta) I'll pass around my number.

I wish I could have back that time!

I just spent a couple hours debugging the XMLRPC interface for MovableType unnecessarily. Flickr started reporting that perhaps I had forgotten the username and password for my blog when I went to blog a photo. I had recently upgraded and moved my blog, but I went through all of the configuration several time and overlooked the web services password on the user configuration page. It totally gets lost in the major "Password" section just below. MT needs to move that configuration into the "Password" section or just have one password.

Ain't it purty

I've got an EC2 instance and am slowly migrating off my Server Beach machine (don't worry friends that are sharing the machine... I'll make it painless for you) because it's about $50/mo. cheaper (at my currently bandwidth levels). Part of that process, I decided was to upgrade MoveableType

Let me know if you run into anything broken.

So long bloglines

I finally got sick of bloglines' UI and opted in favor of google reader which colleagues have been peddling like crack dealers since it's inception. With increasingly sophisticated UIs hitting the web bloglines was starting to feel unwieldy (try to move a subscription to a different folder) and it was missing some nice stuff like the ability to review past postings from on a blog. So while I've been with bloglines for a few years now, it was time to split.

I also migrated away from my 43 People Subscriptions. I love the robots, but a. it wasn't always reliable, b. you are default opted into new feeds on a user (I don't really care what rdicker has tagged "cool") c. when a given user's feed dies it's not obvious (I have a bunch of people I watch who moved blogs and I didn't notice until I felt myself getting dumber) d. there's no way to get OPML so that you can export your feeds and that was worrying me for some reason (what if 43people dumps the subscription feature?)

New UnSpun Feature

We just added a couple new features to UnSpun which we think are pretty cool.

First you can embed an Amazon.com Associates ID in our widgets (so that you make a commission on any sales generated from your traffic)... You can also control the height a width a bit more:

Second, we have images for Amazon.com products on our lists. For example:

Serving With Code

As I thought about practicing my faith I wondered what my place was. We make good money and give generously. But is that all I'm supposed to be doing, or should I quit it all, cash out the equity in our house, move our family to a "poor neighborhood" and serve like Shane and The Simple Way. Sometimes I would lean towards the later, but then that doesn't seem the least bit feasible and would I really be using my gifts and abilities?

I have a friend who is the pastor of Redeemer Presbyterian in Indianapolis. Our family has been helping financially with a small and wonderfully unique congregation that he and Redeemer have helped to get off the ground called The New Deal. About once a year we get to see Jason and his family in Indy. We did again in August. While visiting, he introduced us to Tim Streett who founded Jireh Sports. Jireh is an inspiring organization dedicated to "meet the spiritual, physical, mental and emotional needs of urban youth...through significant relationships with mentoring adults developed around unique sports, recreation, and educational opportunities."

The reason I mention Jireh is because it got me thinking. I'm not a guy that could start a gym, but could I start a program to mentor underprivileged children about computers. Is it possible to have an aftershool program that teaches kids how to use computers, how to take them apart and put them together again, to learn about logic and math, to learn how to program them? I suppose the curriculum would have to have healthy doses of video games also ;) Perhaps more importantly would kids be interested in that, and would it make a difference in their lives? Perhaps this will be another idea in the list of many unimplemented ideas? But let's try anyhow, or at least act like we're trying....

I always start with naming a project. In this case, because I have another idea for how to start developing a curriculum that's gonna need a website. So audience; all five of you (thanks Mom)... What should I name such an endeavor? Here are a few ideas that I'm considering:

  • codeducate (or codeducator)
  • bit professor
  • code kids (I couldn't bring myself to use a 'k' for kode ;)
  • bits for kids (as in "silly rabbit bits are for kids")

What do you think?