fognl

Get off my lawn.

Wednesday, March 31, 2010

Greed 2: Quick fix

A few people have been getting the dreaded "invalid token" error over the past day or so, so I pushed an update just now.

I added the "Clear Tokens" item in the main menu specifically for this problem. Trouble is, even though it cleared the tokens, it didn't actually log out of of Google Reader, so the only way to refresh the login was to exit the app. Oops! That's fixed now.

Also, unread counts are updated more aggressively, so they're more accurate as you read articles.

I also made a change to the background so "edit tag" tokens are re-used as long as possible, eliminating 50% of the web traffic related to read/write operations. So it's faster, basically.

Notifications should also be working now, informing you of new feeds on the interval you specify in the preferences.


Saturday, March 27, 2010

Greed 2: Weekend update!

This weekend's update of Greed 2 adds a few new things, and fixes a couple of ones that needed fixing.

Removed the fading "read/unread" panels from the tops of the Feed list, Folder list, and Article list. They were getting in peoples' way, and weren't as cool looking as I'd hoped. Those items are now safely out of the way, on the options menu.

Mark all as read: You can now mark all the articles in a feed or label as read. Pick the "Mark all as read" option menu item in the Article list.
Filtering for all/unread items in article list now works correctly.
Changes to request headers sent to Google Reader to get GZipped content. Download times should be quicker. It's very quick on my Nexus One. Then again, everything I've tried so far is. (I guess I could test this on my G1, but that would take away from the time I get to hold the sweet Nexus One in my hand.)
New "default share address" preference. Specify an e-mail address here, and when you share an article, the "to" field will be populated with this value by default. I could have (perhaps should have) tied this into the contacts on the phone, and probably will at some point. For now, it's a free-form text field. So if you don't feel comfortable typing a valid e-mail address into this space, well... Get a relative to do it or something.
Preferences for "follow links" and "scale articles." These options affect the appearance of articles in the viewer. By default, "follow links" is turned off, which means you won't accidentally follow a link when you're touching the article. You can long-press any item in the article viewer (e.g. picture, link) to toggle these settings on and off for the current session.

Next up, I've got an experiment I want to try with Google Reader requests, which should make Greed somewhat faster for some operations. Also, a few UI improvements and fulfilling some feature requests.

Have fun, and let me know what you think.

Wednesday, March 24, 2010

Gadget Lust

I got home this evening to find a FedEx package containing a new Nexus One.

Woo hoo!

I've bought Apple stuff before, and what impressed me about it (besides the shiny surface and the Apple logo on it) was the way it was packaged. Apple puts their stuff in boxes that are so nice, you almost feel bad opening them and taking the merchandise out. It makes you feel like you're getting your money's worth.

I've no doubt that Apple has a patent on the notion of putting merchandise in nice boxes. If that's the case, then I think Google's going to get sued. The N1 came in a very nice box, the same sort of packaging that makes you want to be as careful as possible when ripping it open. Not only that, but the little manuals inside the box seem to be made out of some kind of rubberized paper. Hard to explain unless you've seen it. It looks like paper, feels like rubber. It feels expensive. In any case, I was impressed with the box (and the paper, obviously).

Not as impressed, however, as I was with what came inside the box. This is a sleek phone. It does pinch-zoom, it's fast, the little track ball thing lights up when you get a new e-mail, and it has Live Wallpapers. I realize they don't actually do anything, but they're cool looking.

Anyway, Google sent me this as part of their Device Seeding Program. I guess the idea is that by sending free phones to Android developers, it will spur them into working on new and crazy ideas for Android apps. All I can say is, thanks Google, I'm on it! Seriously, this was a very nice thing of them to do.

What a cool thing this is. I've wanted a Nexus One ever since I saw one at work. Now I've got one. Dang.

If Google runs for President in '12, I'm voting for them.


Tuesday, March 23, 2010

Greed 2: Label articles, etc...

Just pushed another update to the Market. This update is pretty basic... It adds the ability to read all of the articles within a label from the Folders view instead of having to read the articles in the individual feeds. Eventually, this option will be more extensive, probably offering the option to replace the standard folder/feed arrangement with a list of "flat" folders, with no hierarchy.

Also, the article viewer scrolls to the top when loading a new article.

On the back end, Greed now logs in automatically when working in the background. (This is something I forgot to do earlier.)

Finally, you can configure the "gulp size", or the number of articles that are downloaded in a single request (e.g., each occurrence of the "Loading items..." event in the article list). I'll eventually change the name of this option.


Tuesday, March 16, 2010

Greed 2: Sharing, unread counts

Just put another update of Greed on the Market. This one fixes the "Share" menu item, an occasional force-close in the Article List, hooking up of the "cache" and "notify" icons in the feed and folder lists, and fixes unread counts not displaying correctly in the "Updated Feeds" screen. This update also adds a BOOT_COMPLETED receiver for scheduling the notifications on device startup. That's about it for this update!

Greed 2: Blank Folder List

If you downloaded last night's update of Greed 2, you might have noticed that the folder list comes up blank. This is due to a change I made in the Feed list.

"Folders" in Google reader are actually labels applied to feeds. Greed populates its folder list based on the tags applied to Feeds. Because of last night's change, the Folder list may appear blank or empty.

To fix this, go to the Feed list in Greed, and hit "Refresh" from the options menu. Then open the Folder list, and hit "Refresh" there. The folders should appear at that point.

Also, I noticed that the "Share" menu item in the article viewer isn't displaying a list of clients. Oops! I'll get that fixed at the earliest opportunity.

Monday, March 15, 2010

Greed2: Notifications

I just pushed an update to the Market for Greed 2, this one containing more complete notifications logic.

You should now be able to do the following:

  • Turn notifications on and off (in the preferences).
  • Get notified on any updated feed, or specific ones (in preferences, and selecting individual feeds' "light bulb" icon).
  • See a little green highlight on the left edge of feeds when they're updated since the last time the unread counts were checked.
  • Set Greed to notify you with sound, vibrate, or just the notification icon.
Next up, some updates to the article viewer, and more options for managing feeds and articles.

Sunday, March 14, 2010

Greed 2

I've had a pretty busy couple of months working on an Android application for a big company. It's due on the Market sometime next month. It's going to be a pretty cool application, I think. I'm kind of excited about it. It uses JNI to talk to a number of C/C++ libraries, and does some fairly interesting things. I think people in its intended audience are going to have a lot of fun with it. It's probably the first project I've worked on for a paying client or employer where the design specification mentions "fun" as one of the requirements!


I've been very busy as a result of this work, and unable to devote much time to Greed. But in the last couple of weeks, I've had some time to do something I've wanted to do for a while: Rewrite Greed.

Over the last year, Greed turned into a somewhat complicated beast. It was one of the first Android applications I wrote, and one of its main underpinnings was a library I had written very early for doing asynchronous requests (e.g. pulling items from RSS feeds, etc.). It was a pretty simple library. Too simple, actually. Applications using it had to do a lot of work in order to use it, and they would end up being more complex than they need to be. A Google Reader client isn't totally simple anyway, so using this library resulted in Greed getting big and unwieldy (not to mention slow, and a memory hog). On top of that, I had piled a lot of features on in a relative hurry, continuing to build on the complicated-library approach I mentioned earlier (which didn't help matters). Finally, I had essentially copied Greed Lite's source code to a new project and diverged from it in order to make Greed Full. Any maintenance I did on Greed Lite would have to be copied to Greed Full, which tended to discourage my doing working on both of them.


I'm happy to report that all of that has changed. Once I decided to take the leap and rewrite Greed, it only took about 8 evenings to get to where I was after 2 months the first time around. I reused the UI layouts, and the underlying API. Everything in the "app" layer is brand new. That part of the code is now about 1/5 the size (or smaller) of the original Greed Lite. It's faster, a little nicer-looking, and is going to be easier to work on.

Anyway, I would like to ask for testers. If anyone is interested in giving Greed Lite, please feel free to do so, and let me know what you think. I need to know how it runs on all possible Android phones. I've tested it on a G1 running cyanogenmod, and it's running well. I hope to try it on a Droid and a Nexus One in the next couple of weeks. I've run it on a phone I'm using that's not available on the market yet (also appearing sometime soon, probably in May), and it's really quick on that.

Bear in mind, there are still plenty of things to work on. For example, the notifications right now are unconditionally notifying on all updated feeds, instead of only the ones you specify. This is the next item on the list. If you'd like to contribute items to the list, I'd be glad to hear them.