How many years have you been making the tedious stretch for Ctrl and Esc keys? Maybe you’ve gone so far as choosing workflows that don’t require them much, maybe without even realizing it. That would be sad. You just can’t use vim or emacs (or even web browsers) without them.* I stopped the stretching a long time ago. If you haven’t fixed this yet, you’re either crippling yourself, or being sub-optimally productive. There are various ways to this and eliminate the stretching — I’ll touch on a couple so you can relieve your aching left wrist. Read the rest of this entry »
They say you should learn a new programming language every year. I don’t necessarily agree, but it’s happening this year for me with R. Here are the steps I have found over the years to make it go smoothly. If you’re a perl, C++, or Java zealot, it’s been nice knowing you… Read the rest of this entry »
Tags: languages, optimization, qop
I just started in on the Kauffman Foundation’s TechVenture program, being facilitated by Steve Morris at OTBC to about 10 of us entrepreneurs. This was the first session, with a really useful focus: why, not what — at least that’s how I digested it. I’ll try to record my learnings here from the class over the next few months. There was a nice lecture from a source I’ll keep anonymous; details are irrelevant for this. It was the long personal story of a 12-year business experience, summed up into a single lesson: we shouldn’t be focusing on what we build, but rather on why it benefits customers. Read the rest of this entry »
Tags: customers, elevator pitch, entrepreneurship
It’s quite an investment to pick up a new programming language (syntax, semantics, types), along with all its periphery: tools, libraries, interfaces, environment, documentation, culture, user groups, history, idioms, and quirks. I’m not trying to force myself to learn a new language every year, though looking back it’s pretty much turned out that way. I actually think there’s a skill-diluting effect in going shallow and trying to memorize syntax for a breadth of languages without knowing much about those other necessary peripheral pieces. You really need a native language as a foundation by which you judge the others. That may consist of a few, but I think there must be a small core. Over the years my primary foundation has become Python. I actually tend to steer away from the majority of new languages (especially since I rarely get into a situation where Python won’t handle the job), though the temptation of the new is sometimes great. This year I’m having an especially hard time holding back the urge for the new. It’s R. I’ve spent the last month telling myself I can’t make the commitment now given how critical my development momentum is to survival. Well, R keeps taunting me, showing up everywhere I look. I’ve got to figure out why it won’t leave me alone. So here are the compelling pieces I’ve discovered thus far about R, that have me tinkering in its REPL, wanting to buy book after book, and even having some strange dreams. I’m trying to compare to Python to evaluate the investment in learning another new language. Read the rest of this entry »
I’m getting pretty excited for the first meeting of the PDX-visualization group (which I convinced Ed to expand his R Language Study group into). One of the topics we’ll be going over is Graphviz. It’s old as dirt (ChangeLog goes back to 2000 at v1.7, but I’m guessing it’s at least a decade older) and has long been the de facto UNIX tool chain for creating graphics with code; i.e., without needing a graphics editor. I believe it has only recently adopted a true FOSS license, which may really help its cause. Graphviz use is pervasive in journals and books, and even shows up in wikis (c2, Mercurial). It’s such a simple graphics package to make use of, but a couple early steps might not be obvious to first-timers. I’ve done a bit of exploring to get off the ground — here are some good resources I’ve found. Read the rest of this entry »
Tags: graphviz, howto, python, visualization, wiki
Apparently, we’re very close to having a low-power, affordable Linux media (er, audio) center, driven by a tiny wall-wart. It should only need to support networking, USB, ssh, external storage, and audio output. The candidate is called the Marvell ShivaPlug, and it features some of those, and maybe the rest can be satisfied. Read the rest of this entry »
Tags: automation, backup, multi-media
Some webhosts make it a bit tedious to send email from your shell, and even harder inside your scripts or web apps. But setting up Django properly enables this to become a one-liner whenever you need it. Read the rest of this entry »
We’re getting ready to incorporate our business. Part of the expectations-setting process on my team was fleshing out the personal reasons for wanting to commit to building a new business. Here are my reasons.
Our front-end guru wants to take the plunge and get to know more about our middle and back (and way-back) ends. There are more than a couple steps down the road to mastery, but the essentials are enough to get you well on your way. This is a brief (link-farm) guide for someone with some programming experience, but new to Python/Django — heavy on my biases. Have fun, Tim!
2009 is a very important year for me. It’ll be the first where I am completely independent, in (nearly) complete control of my (earthly) destiny, i.e., not answering directly to a corporate authority. This is the year I lay the groundwork for a successful business or lose a lot of material things (or both, but I’m ready). Business failure could mean having to go back to work in another corporate sweat-shop just to survive. But that failure is really not an option since I think it would destroy me. There are other options, but I’m too optimistic about the business to think about them today.
Read the rest of this entry »



