{"id":1001789,"date":"2009-01-01T08:08:10","date_gmt":"2009-01-01T13:08:10","guid":{"rendered":"http:\/\/www.elharo.com\/blog\/?p=1001789"},"modified":"2009-01-01T14:00:56","modified_gmt":"2009-01-01T19:00:56","slug":"2008-new-years-resolution","status":"publish","type":"post","link":"https:\/\/www.elharo.com\/blog\/software-development\/2009\/01\/01\/2008-new-years-resolution\/","title":{"rendered":"2009 New Year&#8217;s Resolution"},"content":{"rendered":"<p>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&#8217;ll have a little room to take on one more hobby project this year, but what should it be? They&#8217;re a few ideas I&#8217;m kicking around, and I&#8217;m wondering which would b the most interesting\/lucrative\/fun. Here are a few ideas:<\/p>\n<h3>1. GPS tracking software for Android<\/h3>\n<p>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.<\/p>\n<p>In fact, far and away the major feature I use on my Garmin eTrex is simple measurement of how far I&#8217;ve walked, along with occasional downloads of paths. I wouldn&#8217;t have to reimplement the entire Garmin stack for the Android, just the one or two pieces I actually use.<br \/>\n<!--more--><\/p>\n<p>Disadvantages: Would have to learn a new programming environment. High risk. Might fail.<br \/>\nAdvantages: Obvious market need. Would learn a new programming environment.<\/p>\n<h3>2. Birder&#8217;s Notebook<\/h3>\n<p>Rather than taking 3&#215;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.<\/p>\n<p>Disadvantages: Would have to learn a new programming environment. Low risk. Almost certainly could be done.<br \/>\nAdvantages: Limited market need. Very useful personally (scratches an itch) but unclear if anyone else would use this. Would learn a new programming environment.<\/p>\n<h3>3. The Brooklyn Bird Report<\/h3>\n<p>Something I <a href=\"http:\/\/www.elharo.com\/blog\/software-development\/web-development\/2005\/11\/27\/birds-on-rails-part-1\/\">toyed with a year or two ago<\/a>: I&#8217;d like to reimplement the now defunct <a href=\"http:\/\/www.nycbirdreport.com\/\">NYC Bird Report<\/a> on top of  a portable, maintainable framework and then generalize it to other locations. Possibly it could be integrated with eBird.<\/p>\n<p>This is not especially cutting edge, but I know there&#8217;s an audience. If I do it, I should probably use the technologies I already know: MySQL and PHP. <\/p>\n<p>Medium risk, medium impact. Large contribution to birding community. Negligible contribution to software development community. Might require significant amounts of time.<\/p>\n<h3>4. Convert Cafe au Lait and Cafe con Leche to WordPress<\/h3>\n<p>Boring, but straight-forward, simple, and doable.  Probably the easiest suggestion here. It would <em>finally<\/em> 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.<\/p>\n<p>Disadvantages: Limited impact. Almost no effect beyond the two sites.<br \/>\nAdvantages: Low cost. Almost guaranteed to work. Might enable me to farm out more work on these sites to contributors.<\/p>\n<h3>5. Convert Cafe au Lait and Cafe con Leche to XQuery<\/h3>\n<p>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&#8217;s ass.)<\/p>\n<p>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.<br \/>\nAdvantages: 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.<\/p>\n<h3>6. Fix Firefox<\/h3>\n<p>Firefox is great, but there are some bugs that just don&#8217;t seem to be going anywhere. Why, oh why, can&#8217;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?<\/p>\n<p>Disadvantages: Would have to learn a new language and programming environment. Requires committer&#8217;s approval.<br \/>\nAdvantages: small, separable tasks; large impact when integrated across many users. Would learn a new programming language and environment.<\/p>\n<h3>7. Fix Ciphsafe<\/h3>\n<p>In particular I want to enable <a href=\"http:\/\/cafe.elharo.com\/ui\/autosave-considered-helpful\/\">autosave<\/a> instead of confirmation. This is a really useful, nice free product. It just has that one annoying bug.<\/p>\n<p>Disadvantages: Would have to learn a new language and programming environment. Requires committer&#8217;s approval.<br \/>\nAdvantages: Quite small project. Actual coding work is likely minimal. Medium impact when integrated across all users. Would learn a new programming language and environment.<\/p>\n<h3>8. Tether Android<\/h3>\n<p>If I&#8217;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. <\/p>\n<p>Disadvantages: Would have to learn a new language and programming environment.  Might run afoul of <acronym title='Terms of Service'>ToS<\/acronym> issues. Likely others more qualified and equipped to do this than me are working on it already. Might not succeed.<br \/>\nAdvantages: Very useful. High demand. Would learn a new programming language and environment.<\/p>\n<p>These are things I&#8217;ve been noodling with. I should finish up XOM 1.2 and get it out the door. But once that&#8217;s done, it will be time to start on something new. Mobile phone or Web? Java, PHP, or C++? MySQL or eXist?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#8217;ll have a little room to take on one more hobby project this year, but what should it be? They&#8217;re a few ideas I&#8217;m kicking around, and I&#8217;m wondering [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1001789","post","type-post","status-publish","format-standard","hentry","category-software-development"],"_links":{"self":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts\/1001789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/comments?post=1001789"}],"version-history":[{"count":10,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts\/1001789\/revisions"}],"predecessor-version":[{"id":1001890,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/posts\/1001789\/revisions\/1001890"}],"wp:attachment":[{"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/media?parent=1001789"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/categories?post=1001789"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elharo.com\/blog\/wp-json\/wp\/v2\/tags?post=1001789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}