2009 New Year’s Resolution
I finally pushed Jaxen 1.1.2 out the door, and my resolution (singular) for 2008 is to finally finish XOM 1.2 as well. Then maybe, just maybe, I’ll have a little room to take on one more hobby project this year, but what should it be? They’re a few ideas I’m kicking around, and I’m wondering which would b the most interesting/lucrative/fun. Here are a few ideas:
1. GPS tracking software for Android
The screen on my Garmin handheld unit cracked two days after I got an unlocked Android phone to play with. Coincidence or fate? Some folks are already working on Android GPS apps. Maybe I could contribute to their efforts.
In fact, far and away the major feature I use on my Garmin eTrex is simple measurement of how far I’ve walked, along with occasional downloads of paths. I wouldn’t have to reimplement the entire Garmin stack for the Android, just the one or two pieces I actually use.
Disadvantages: Would have to learn a new programming environment. High risk. Might fail.
Advantages: Obvious market need. Would learn a new programming environment.
2. Birder’s Notebook
Rather than taking 3×5 notebooks into the field, maybe I could just take my Android? Observations could be entered directly into the phone, tagged with GPS coordinates, summed and uploaded to eBird when done. The user interface design would be a challenge, but done right this could be really hot.
Disadvantages: Would have to learn a new programming environment. Low risk. Almost certainly could be done.
Advantages: Limited market need. Very useful personally (scratches an itch) but unclear if anyone else would use this. Would learn a new programming environment.
3. The Brooklyn Bird Report
Something I toyed with a year or two ago: I’d like to reimplement the now defunct NYC Bird Report on top of a portable, maintainable framework and then generalize it to other locations. Possibly it could be integrated with eBird.
This is not especially cutting edge, but I know there’s an audience. If I do it, I should probably use the technologies I already know: MySQL and PHP.
Medium risk, medium impact. Large contribution to birding community. Negligible contribution to software development community. Might require significant amounts of time.
4. Convert Cafe au Lait and Cafe con Leche to WordPress
Boring, but straight-forward, simple, and doable. Probably the easiest suggestion here. It would finally add comments to these sites. In some ways it would make them easier to edit, but in other ways it would make them harder to maintain.
Disadvantages: Limited impact. Almost no effect beyond the two sites.
Advantages: Low cost. Almost guaranteed to work. Might enable me to farm out more work on these sites to contributors.
5. Convert Cafe au Lait and Cafe con Leche to XQuery
Screw the easy way. Instead I could build my own bog system from scratch based on eXist or maybe DBXML. This is likely the largest project I could take on, and would take the longest, but might have the largest impact. Ultimate goal: world domination (or at least kicking WordPress’s ass.)
Disadvantages: High risk. Might flop. Large amounts of time required. Would likely delay updates on at least one site as work progressed in dogfood mode.
Advantages: High reward. Could be colossally important. Uses technology I already know pretty damn well. User interface design would be negligible. (That is, I could just copy what already works.) Could likely implement in small pieces, one feature at a time.
6. Fix Firefox
Firefox is great, but there are some bugs that just don’t seem to be going anywhere. Why, oh why, can’t the page up and page down keys scroll the main window instead of the location bar? Why does Firefox 3.0 have no AppleScript support?
Disadvantages: Would have to learn a new language and programming environment. Requires committer’s approval.
Advantages: small, separable tasks; large impact when integrated across many users. Would learn a new programming language and environment.
7. Fix Ciphsafe
In particular I want to enable autosave instead of confirmation. This is a really useful, nice free product. It just has that one annoying bug.
Disadvantages: Would have to learn a new language and programming environment. Requires committer’s approval.
Advantages: Quite small project. Actual coding work is likely minimal. Medium impact when integrated across all users. Would learn a new programming language and environment.
8. Tether Android
If I’m really feeling ambitious I could try to figure out how to connect a laptop to Android to wirelessly access the Internet using the data plan.
Disadvantages: Would have to learn a new language and programming environment. Might run afoul of ToS issues. Likely others more qualified and equipped to do this than me are working on it already. Might not succeed.
Advantages: Very useful. High demand. Would learn a new programming language and environment.
These are things I’ve been noodling with. I should finish up XOM 1.2 and get it out the door. But once that’s done, it will be time to start on something new. Mobile phone or Web? Java, PHP, or C++? MySQL or eXist?