<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" 
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
	<channel>
<title>CompCon Dev Blog</title><link>http://bitflung.com/index.html</link><description>maemo development</description><dc:language>en</dc:language><dc:creator>jared@bitflung.com</dc:creator><dc:rights>Copyright 2010 CompCon</dc:rights><dc:date>2010-06-07T11:25:19-04:00</dc:date><admin:generatorAgent rdf:resource="http://www.realmacsoftware.com/" />
<admin:errorReportsTo rdf:resource="mailto:jared@bitflung.com" /><sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<lastBuildDate>Mon, 07 Jun 2010 11:38:41 -0400</lastBuildDate><item><title>BEER&#x21;</title><dc:creator>jared@bitflung.com</dc:creator><category>None</category><dc:date>2010-06-07T11:25:19-04:00</dc:date><link>http://bitflung.com/compcon/./blog_files/7a54d88de5b4b80f0e963cc9bcc65cf7-4.php#unique-entry-id-4</link><guid isPermaLink="true">http://bitflung.com/compcon/./blog_files/7a54d88de5b4b80f0e963cc9bcc65cf7-4.php#unique-entry-id-4</guid><content:encoded><![CDATA[Well, we all have hobbies.  My hobbies, aside from writing software and procrastinating, include brewing beer.<br /><br />So I've been looking for a good beer brewing app, one with timers and logs - recipe calculators and suggestions.  There aren't any for Maemo (big surprise?).  Well, this just can't be!  So I'll just have to write one!<br /><br />Yeast - like the others, this is just a project name until I come up with something clever.  Maybe I'll never come up with anything more clever... doesn't matter.  This app will be free (as in Beer) because, well, I want to support homebrewers all over the world.<br /><br />Feature requests will be considered from anyone who also submits their favorite recipe.  If you're really hoping this app will have a particular look and feel to it, the best way to get that is to draw up a sketch and email it to me at: <a href="mailto:jared@bitflung.com" rel="self">jared@bitflung.com</a><br /><br />This app will initially be released with a very small feature set, trivial really, just enough to justify downloading it (or free remember).  Why?  Because I want to get it out there ASAP.  It will be a labor of love for years to come however, and I don't see any way that I'll ever stop adding features to it.  The first version will be a simple recipe calculator.  Then I'll add timers and alarms for aiding in the brew process.  After that I think should come some logging features, like entering in the temp of the fermenter as often as you like and having the app predict the specific gravity over time.  Maybe some ebay or craigs list integration for buying/selling parts like wort chillers, etc.  How about suggesting a recipe based on the varieties of hops and grains you have available to you?  Or helping you to care for your own hops/grains crop by tracking the weather in your area and warning you of heat/cold/drought/humidity?  Online databases?  Recipe trading with other users?  Guides for identifying and handling infections?  On and on my imagination tumbles.<br /><br />Got an idea?  Go ahead and send it in.  Otherwise wait a bit, my first app is nearing completion and this one won't take long to reach its first (oh so featureless) release.<br /><br />-bit]]></content:encoded></item><item><title>Summary of apps under development</title><dc:creator>jared@bitflung.com</dc:creator><category>None</category><dc:date>2010-05-13T11:14:00-04:00</dc:date><link>http://bitflung.com/compcon/./blog_files/2e724e948086dba0f891a8397041d001-3.php#unique-entry-id-3</link><guid isPermaLink="true">http://bitflung.com/compcon/./blog_files/2e724e948086dba0f891a8397041d001-3.php#unique-entry-id-3</guid><content:encoded><![CDATA[Just a quick note regarding my works in progress:<br /><br /><u>Grasshopper</u>:  Roughly 30% code complete, I expect to ship this app Q4/2010.  This app will be submitted to the Ovi Store and I have ever reason to expect it to be accepted quickly without issues.  Developed using Qt 4.x, the app will initially target the N900 and N8 with the potential to support many future Qt enabled devices.<br /><br /><u>Locust</u>:  Roughly 90% of the interface and control flow have been spec'd out.  Some features require device support for APIs that I have not found or fully understood quite yet; when device support for all the intended control flow is determined coding will begin.  I expect to enter this app into next year's Calling All Innovators competition.  This app will also be submitted to the Ovi Store and possibly other outlets related to MeeGo.<br /><br /><u>[UN-NAMED APP]</u>:  I've alluded to this app before, so here's the place holder.  This app will suffer from premature feature creep for quite some time before real work is started on it.  Unfortunately there is nothing I can say about this app without compromising my opportunity to be first to market with it.  I expect to focus on freezing the feature set and developing the UI and control flow shortly after completing Grasshopper and Locust, though small efforts are afforded to this pet project even before completing those other two.  It is too early to predict the proper distribution channels for this app.<br /><br /><u>Grub</u>:  Discussed in my last post, Grub is a project I've had several years to think about.  I had dismissed it some time ago, before starting on Maemo development, due to the expected difficulties in gaining raw hardware access to the GSM radios.  The idea came back to mind recently when a friend talking about Maemo development.  He said, "I saw a great iPhone app [...] we should make something like that".  This got me thinking on two parallel trains of thought: first that I'd rather implement original ideas; and second that it would be great if our apps utilized features of Maemo that could not be duplicated on iPhones and Android devices.  Then 'bingo' this idea resurfaced.  Of course Apple won't give you access to the raw hardware, and of course Android's sandboxed environment for 3rd party apps would be too constrained to do the same.  I expect to work on Grub from a theoretical perspective first, followed by research into how I might gain access to the raw hardware.  Grub will not possibly ship until at least late into 2011.  This app is expected to be exclusively available on the Ovi store and I hope it will serve as an example of innovative potential for Nokia devices much like Gravity (the fantastic twitter app I miss so much not that I don't have a Symbian device: http://mobileways.de ).<br /><br />So there you have it, 4 apps upcoming for the Maemo/MeeGo platform(s) - all from a one-man team.  Grasshopper should be done this year, followed by Locust early next year.  Grub and my otherwise un-named app would follow late in 2011 or sometime mid 2012.  As far as project size is concerned, Grasshopper is pretty small; Locust is considerably large while my un-named app is huge.  Project size for Grub will depend greatly on how much code is required to stimulate the raw GSM radio hardware and on the scope of my analysis procedures (currently not even developed mathematically, but expected to be run on the DSP which might introduce other hurdles: I've never written code to run on a DSP...).  Over all I expect Grub to require about the same amount of code as Locust, but with a lot more extensive algorithms work.  <br /><br />I've got a few more small apps in mind, but the ideas are not yet developed enough to commit to writing them.  The above apps I am fully committed to however, and you will one day be able to download and install each and every one of them.  # of the 4 will certainly be made available on the Ovi Store, with Grub being exclusively available there.<br /><br />Now back to work I go - I 've got a lot to do.<br />-bit]]></content:encoded></item><item><title>New app on the list: Grub</title><dc:creator>jared@bitflung.com</dc:creator><category>None</category><dc:date>2010-05-13T10:55:17-04:00</dc:date><link>http://bitflung.com/compcon/./blog_files/b2e734581bc90291d78c50876f13dc84-2.php#unique-entry-id-2</link><guid isPermaLink="true">http://bitflung.com/compcon/./blog_files/b2e734581bc90291d78c50876f13dc84-2.php#unique-entry-id-2</guid><content:encoded><![CDATA[So I've been toying with an idea for a few years now; I even suggested it as potential work in college for my team's senior design project (go Team Wolf @ UMass!).<br /><br />I'm not announcing the app just yet, but like my other works in progress I want to be able to talk about this publicly while working on it. <br /><br />Code-named 'Grub', this application will repurpose the GSM/UMTS air interface (radio) of the N900 to provide an augmented reality service that is both entertaining and useful.  It's usefulness will depend greatly on factors that I can't fully predict right now; but I saved my old 'Signals and Systems' text book, as well as the text for 'Communications' so I'll dive into those for a refresher and ensure that usefulness is at least theoretically possible.<br /><br />Implementing the app is another thing altogether; even if the app's usefulness would be proven so limited that no one would use it for professional reasons, the app would still be a lot of fun.  So no matter what my research show, I intend to write the app.  If the research shows that it cannot be truly useful then I'll put less effort into the signals analysis because the computed outcomes would be for entertainment purposes only.<br /><br />What truly sets this app apart from any others is that Maemo/MeeGo devices are really the only devices on which I think such an app is even possible.  Apple would freak out if a 'legit' app tried to muck around with the baseband, never mind that Apple forbids use of anything but the public APIs (which surely don't give undiluted hardware access to the radios).  Android apps actually run in a virtual environment, and the system as a whole is not fully open so developers aren't welcome to muck about with the baseband at runtime there either.  What about Maemo (MeeGo)?  It's possible that I won't have runtime access to the baseband, sure, but I can download the source and provide myself with an interface to it.  Having that in my development environment I can fully implement my code and push for community support for new baseband related APIs.<br /><br />Basically what I'm saying is that this project isn't feasible on Android or iPhone; there may be show stoppers even on Maemo/MeeGo, but at least there's a path to follow and a realistic possibility to get this app on the Ovi Store.]]></content:encoded></item><item><title>Progress begets progress</title><dc:creator>jared@bitflung.com</dc:creator><category>None</category><dc:date>2010-05-03T15:42:39-04:00</dc:date><link>http://bitflung.com/compcon/./blog_files/1c6bf253c6e36e1ac16d3f745de54c5d-1.php#unique-entry-id-1</link><guid isPermaLink="true">http://bitflung.com/compcon/./blog_files/1c6bf253c6e36e1ac16d3f745de54c5d-1.php#unique-entry-id-1</guid><content:encoded><![CDATA[With the Qt SDK beta becoming available, and mostly pen-and-paper work performed so far towards implementing my apps, I've migrated to Qt SDK for development.  Nokia's progress on Qt has in turn affected progress here on 'Grasshopper'.<br /><br />Sadly, the Qt SDK doesn't support Mac OSX (yet?) so I am left either using Windows or Linux.  I selected Windows, if only because I need to keep a working Windows virtual machine around for my day-job.<br /><br />What does this mean?  Well, I've made some significant head-way on 'Grasshopper':<br /><br />On paper, the design is complete.  I know every feature that I want to include in version 1 of the software and I have a usable and well thought-out interface designed for every feature.  Transitions between the interface elements (ie: how to navigate the app) have been drawn up in such a way that (hopefully) I'll be able to reuse a lot of the design elements for multiple parts of the app.<br /><br />Now that I'm using the Qt SDK, Im getting into actually coding the darn thing instead of just revising my visual state-machines.  The UI is roughly 30% complete and the back-end code stubbed out with a relatively clean interface for implementing the heavy-lifting code.  I do my coding over the weekends, and expect to have an initial version of my UI functioning (without back-end data loads and stores) by the end of this upcoming weekend.  That is very soon.  I went from a solid idea on paper to a partially working prototype in one weekend, and will have a fully functional demo of the UI in a second weekend of work.  Linking in the back-end data support will likely take a couple weekends as well, giving me an estimated one month before my first alpha release is compiled and running.<br /><br />Once I get to beta I'll post the project's real name and some teaser videos - and possibly distribute a version for testing and feedback before finalizing and posting the app to the Ovi store.<br /><br />Qt is fantastic - I'm really happy to be working with it.  If development proceeds this easily for 'Locust' I'll be very happy indeed :)<br /><br />-jared<br /><br />]]></content:encoded></item><item><title>Development setup</title><dc:creator>jared@bitflung.com</dc:creator><dc:subject>Home</dc:subject><dc:date>2010-03-23T18:14:25-04:00</dc:date><link>http://bitflung.com/compcon/./blog_files/1e8543cbbb002f73d8e8f8487a529357-0.php#unique-entry-id-0</link><guid isPermaLink="true">http://bitflung.com/compcon/./blog_files/1e8543cbbb002f73d8e8f8487a529357-0.php#unique-entry-id-0</guid><content:encoded><![CDATA[I've got several applications I'm working on; each of them are nearing the end of the planning stage and I'm now jumping into coding them.<br /><br />On a Mac.<br /><br />For years I've been musing about writing some software for mobile devices and about a year ago I worked up the motivation to get started.  On my Mac.  Back then I was targeting Symbian - I wanted to write some software for the touchscreen enabled Nokia devices then coming to market.  On my Mac.<br /><br />I was a leper.  A freak.  It wasn't that I felt unwelcome in the Symbian development community, but with every dammed download being a file ending in .EXE and having base requirements including some version of Windows... well I'll just say that it was more annoying than I had hoped.  <br /><br />Now I'm targeting Maemo/MeeGo.  Things are different.  Wonderfully different.  Instead Windows being the rule (with, of course, some exceptions) it is now Linux that is the rule (again, with some exceptions).  Linux; so much more flexible than Windows.  Hell I'm even willing to RUN Linux.  Still, I'd rather run MacOSX.<br /><br />So I'm getting my development environment setup.  Were I booting straight into Ubuntu, apparently, everything would be smooth sailing and more or less integrated.  I'm not.  I'm still somewhat off the mark of the 'ideal' developer.  This time though, I don't think the hurdles will be overpowering.  This time, I can see the light at the end of the tunnel and it's surely not so long of a trip to get there.<br /><br />I'm starting this blog off now, before I get everything setup, so I might document events as they pass: problems, decisions, solutions, and rationale.  The whole 9 yards.  <br /><br />And to put this whole process in context, I'll outline the basic requirements for the apps I'm working on.  I'm not ready quite yet to announce the apps or their feature sets, so "names have been changed to protect their identities":<br /><br />Secret App #1:  'Grasshopper"<br />- Standard GUI app with touch friendly controls<br />- Most UI widgets will be text boxes and lists<br />- Will provide at least one very dynamic graphical representation of data that changes over time, including visualization of filtered predicted data; I'm still working out exactly what sort of graphica elements to use here but simple may be best.<br />- Will use a SQL database for data storage if I find that tractable, perhaps text files if not<br /><br />Secret App #2:  'Locust'<br />- Will require a background daemon polling for location data<br />- Will require use of local sensors including the accelerometer to detect motion events<br />- May use a SQL database for data storage but will require significant work to prevent the data store from growing too large<br />- May include integrating location data with maps, with the goal of having the user draw on the map using their finger (stylus hopefully never needed)<br />- Will include integration with a task and event subsystem; hopefully the native calendar application<br /><br />There is a third app in the pipeline, but it will borrow a lot of code (or at least concepts) from both of these, so for now it has got to sit on the back burner until both of these apps are more or less code-complete.<br /><br />I'd love to develop both of these using Qt, but for now the Qt Mobility API is incomplete making development of a location aware Qt app using MacOSX rather, well, more of a steep learning curve than necessary otherwise.  Besides, I think working with the official SDK would be good for me.<br /><br />So I've downloaded the Maemo5 SDK (actually the virtual appliance development package - an Ubuntu virtual machine with everything neatly preinstalled for me).  This will be used for developing 'Locust' while the cross platform framework and tools will be used for developing 'Grasshopper'.  Using Madde to compile my Qt app for the N900 I've already got a basic UI stubbed out and working on my device.<br /><br />The moral of this blog post:  If you want to develop N900 apps on a Mac, you should first see if Qt provides all the APIs you want to use (today, not eventually, since we all know the goal is to eventually support a full development environment through Qt).  If you can get your project done in Qt, install Madde on your Mac along with Qt Creator and all the framework bits.  I started with a simple 'Hello World' example in Madde and have extended from there to what appears to be a fully functional app (until you try to enter data and find that nothing is saved and none of the computed values are ever computed).<br /><br />If Qt doesn't fit your needs, best bet is the Maemo 5 SDK in the form of a virtual applicance.  I'm quite glad I downloaded it and absolutely ecstatic that it was provided.]]></content:encoded></item></channel>
</rss>
