Since it’s been almost a year since the last Spark 360 release, now seems a good time to mention my future plans with the app. Since releasing its source, my goal has been to maintain it in a workable state, if not occasionally add features. While there haven’t been any new features lately, I have tried to keep the application workable – if a defect persists for an unusual length of time, there’s a good chance that I’m not aware of it (in which case it’d be a good idea to file a new issue at GitHub).
As for longer-term plans for the app – it’s probably a safe bet that I won’t be able to make any more large scale changes (and there are many to make). I was hoping that open sourcing the app would create an influx of third-party contributions, but that has not been the case, and I have since moved on to other projects.
Xbox One is now a little more than two weeks away, and chances are the web interface will change dramatically to accommodate the console’s new features. If that does occur, work on the app will likely cease – I don’t get a chance to play as much as I used to, which also limits my interaction with the app.
Of course if the changes are minor, I will continue to do my best to keep the app functional.
While grr did fine for a while initially, after a while it became painfully obvious why relational databases perform so poorly with quickly growing data. As the application’s storage footprint grew, application navigation started becoming more and more sluggish – switching subscriptions sometimes would take 3 to 6 seconds (in all fairness, the database is on a shared host), and after spending several weeks attempting to optimize data queries, I decided that the undertaking was probably futile.
So I decided to do something that a friend of mine recommended I do all along – write a feed reader for Google App Engine. Somewhat encouraged by the success of goread.io and using bits from grr’s concurrent updater and client-side code, a little less than two months later, the result is Gofr - a feed reader for the cloud, written in Go.
A live version of the app is available at http://www.gofr.io/, with the source code hosted at GitHub. Since service currently costs me very little, registration is free – at least for the time being.
The fallout from Google’s imminent discontinuation of Reader has been interesting, to say the least. A surprising number of individuals (myself included) have created Google Reader knock-offs; a staggering number of startups/hopefuls have sprung up offering similar/same services and experiences. Which (if any) will actually survive remains to be seen, but from what I’ve seen, Feedly seems to have the largest following.
In the three months that passed since the discontinuation was announced, my re-implementation of Reader called grr has gotten to a usability level of a fairly solid Release Candidate – albeit with some missing features. Even in terms of visual appearance, I’ve taken questionable pains to make grr as similar to Reader as possible:
For the last month or so, I’ve been chipping away at (what started as) a small pet project to replace Google Reader, since Google announced plans to discontinue one of my favorite services. A little over a month later, it’s almost in a beta state, so I’m making it available on Github: https://github.com/melllvar/grr.
It’s certainly not completely on-par feature-wise (or perhaps even in terms of scalability), but it’s close enough to support my daily routine, with features such as
Feed hierarchy (nesting feeds inside folders)
Marking as read/unread (single articles as well as entire views)
It’s been a while since I last wrote anything here – I’ve been writing chunks of stuff at Google+, mostly regarding my current project, CocoaMSX.
I’ve migrated vast majority of my PSP emulators to Google Code – PSP’s SVN repository seems to be one of the most frequently accessed parts of my site, so I figured it’d make sense to make it a lot more widely accessible, as well as allow me to eventually retire my repository. All binaries have been migrated – including past releases and both 1.50 and 2.00 variants. Source is available as well, but since the original repository contained all the projects, I ended up discarding the revision history, in order to ease the transition. The only repository that has not been migrated is NeoPop, because RACE PSP made it unnecessary.
A while back, I wrote about receiving a note from Google regarding the Federal Government taking up interest in sites that hosted pirate Android apps. I’ve since received official confirmation that indeed, the wheels of justice are turning – if only a bit slowly. If piracy did harm the sales of the app (and I have reasons to believe that it did), it did so at the worst time possible for me – at a time when no official client was yet available. While it’s too late for Spark 360, I hope it will improve the commercial landscape for current and future Android developers, and not drive them away.
I will finally be attending Google IO this year – after trying to secure attendance unsuccessfully in 2011 and 2012 – although I did attend an Extended session at one of Google’s campuses. It should be interesting to see what Google has coming this year – especially after the poorly received Google Q, and the disturbingly Orwellian Google Glass of last year. There has been a lot of speculation about a new Android-based watch from Samsung – something to which I’m particularly looking forward.
A new version of Spark 360 is out today. Version 6.16 fixes minor bugs with PSN support, specifically:
PSN Blog viewer crash
Friends list showing “null” when no details are available
Given that I don’t usually have much to say that requires a full-on weblog post, from now on you can find update/release-related posts on my Google+ profile page, which will also include updates on a new project I’m working on – a port of blueMSX to OS X, called CocoaMSX.
For the new users who receive an “account already exists” message, even though the account creation failed the first time around – please uninstall the application, and install it again – the original error will have left the app in an inconsistent state.