Days Since Widget - v17

The Days Since widget just got its first update since Monday. Google caches your copy of the widget, so the changes may take a while to propagate. Most of the changes are as planned from the previous post:

  • Switch to an easier-to-understand calendar day (counters turn over at midnight). The widget previously used a 24-hour day for each reminder. But since hours/mins are not visible, that created a guessing game as to when the counters would turn. Refreshing your page at midnight (plus or minus a few leap seconds since 1970) should show incremented counters.
  • The widget now has smaller icons and text, to get more reminders in the space (closer to a normal 1 line spacing). This is also more calibrated to other widgets (which tend to select small fonts).
  • Get Firefox and IE, at least, to look nearly identical. The main differences affecting this widget are differences in how they render tables, especially with a span inside that has its own padding/margins. Firefox expands the size of the cells to fit, IE needs a little push.
  • Fix pluralization on the screenshot, and author’s email in metadata

Did not make any change to detect “enter” in the reminder textbox. You still have to hit the “add” button.

Please let comment here if you see any problems, or have additional feedback on features, etc. Especially cool would be any interesting and/or funny uses for it. The lifehacker thread has a good one…

Days Since widget - planned updates

Days Since was written over the weekend, and then had the good fortune to hit lifehacker’s front page on Tuesday (in one day, it went from near-zero to over 3000 pageviews, and 1000 unique visitors using the widget). But that means there’s some obvious opportunities for refinement. Thanks for all the comments and suggestions!

Here’s what’s planned for an update.

  • The widget currently uses a 24-hour day for each reminder. But since hours/mins are not visible, that creates a guessing game as to when the counters will turn. Switch to an easier-to-understand calendar day (counters turn over at midnight).
  • Shrink the reset button and counter down, to get more reminders in the space (closer to a normal 1 line spacing).
  • Get Firefox and IE, at least, to look nearly identical
  • Fix pluralization on the screenshot.
  • Look at getting “enter” in the reminder textbox to submit the “add” form
  • Fix author’s email, as it currently goes to a black hole — bug or feature? ;)

And I’ve got one call for testing help: Two people reported loosing data when moving the widget.

Because Days Since stores all its data in the widget settings, if you remove it from iGoogle and re-add it, it’s expected to loose any data you have there. But moving the widget on the iGoogle page should be fine (and I’ve and seen no problems in my testing). I’m looking to find out if it’s something expected (like browsers with cookies turned off) or something more insidious (lost data with particular steps or particular browsers). If anyone has used Days Since and lost reminders when you’ve moved it around on the page, please drop a comment with detail on how you got it to happen.

Somewhat separately, as pointed out by SeT over on the lifehacker thread, it also makes sense to have a sister widget with “Days Until”. Basically like Caleb’s existing Countdown widget, but with this codebase — several reminders per widget. Everything needed is there, except fitting calendar date entry into the UI.

Days Since iGoogle gadget v0.16

If you’re like me, perhaps you

  • Forget how long it’s been since you actually bathed your little ones?
  • Forget to water those poor, thirsty plants?
  • Would like to track how long you’ve stayed away from something bad (like caffeine)?

If you’re an iGoogle user, here’s a widget to help you. It’s in beta form right now. Feedback (especially browser compatibility reports or message file translations) are very welcome!

screenshot
Add Days Since to your own iGoogle page!

The basic idea and usage model behind Days Since has affinity with Getting Things Done and other time management techniques. Get the noise of remembering your recurring todos out of your head, and onto paper — or in this case, your iGoogle dashboard.

Interested? See more at Days Since

Google Gadget “creator page” and lists datatype

Feedsparks uses the new (as of Jan 17th) “list” datatype which google added to their gadget API. It enables a simple but nicely designed interface for configuring a gadget like this one. But the UI for the new datatype has confirmed problems outside of adding the gadget to your google homepage (which works flawlessly). Hopefully google will fix this shortly. Until then, the prior post describes a workaround you can use.

You can read some background (the dialog with google) at the google group for gadgets.

Configuring Google Gadgets for your page

google modules form screenshotGoogle gadgets on a Google property are easy to configure — Google provides a nice UI, and the user can just select the arrow in the upper right corner to configure it.

But to put a gadget on any old site, you need to first generate a javascript snippet, which has all the configuration in it.

Unfortunately, when generating this script for Feedsparks, Google’s form for configuring the script has a problem: Notice anything missing in the screenshot above? There’s no UI to configure the list of feeds!

This may be something to do with the newness of the gadget list datatype, or something fixable in how Feedsparks is written.

So, until the mystery of this problem is resolved, if you want to install the feedsparks gadget into any web page … and actually be able to configure it to display your feeds … you’ll need to add this snippet like this in the middle of the script line generated by Google.

&up_feeds=BernieThompson|Haikupedia

Careful .. it goes right there alongside the other parameters to the gadget (you could put it after up_days). An example of the full, modified script line is…

<script src="http://gmodules.com/ig/ifr?url=http://bernie.thompson.googlepages.com/feedsparks.xml&amp;up_days=30&amp;up_feeds=BernieThompson|Haikupedia&amp;up_attribute=circulation&amp;up_userid=&amp;up_password=&amp;synd=open&amp;w=288&amp;h=81&amp;title=FeedBurner+Trends&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>

Resulting in a gadget on your page which looks like this.

If there are other problems configuring Feedsparks, let me know.

Feedsparks 1.01

Feedsparks is a Google Gadget showing at-a-glance subscription and traffic trends for your FeedBurner feeds.

A previous Feedburner tracking gadget I’d been using on my google homepage stopped working, and I had wanted one with a few more features anyway, including a historical chart — but one that had to be small. Sparklines, which were originated by the father of data visualization, Edward Tufte, would be a perfect tool for a case like this. So that lead to developing this mashup of these various ideas.


Features and Notes

  • First things first: to see your own feed statistics, either turn on the Awareness API in FeedBurner for each of your feeds (preferred), or provide your FeedBurner userid and password to the gadget.
  • Uses compact, expressive sparkline chart for historical trend (showing 30 days by default, but configurable)
  • Shows current day’s number, with green/red arrow showing if it’s up or down from yesterday
  • Easily add an almost unlimited number of feedBurner feeds (FeedBurner’s Awareness API must be turned on from your FeedBurner control panel)
  • Choose to show statistics on FeedBurner’s circulation estimate (default), or feed hits
  • Built on FeedBurner’s Awareness API and Joe Gregorio’s sparklines service which serves over a million hits a week. All other work happens in javascript in the browser, so the Feedsparks gadget should be quite scalable and reliable.
  • In the sparkline graph, the blue dot is the point of highest traffic, red is the low point, and green is the current number

You can add this gadget to your personalized home page –or– add it to any web page.

Note that google’s form in the “add to any web page” link appears to have a problem adding feeds. You’ll have to add them to the generated javascript directly.

Let me know if you have any feedback or feature requests!

Ruby as an OS-independent application platform

I originally wanted to write a little post to help non-nerdy friends install filebydate, my simplistic picture organizer. This does that, but also covers some larger issues that were so well put in this email I got:


As I sit here building a new machine, I’m thinking of all the little shareware utilities I have and how long it takes to set them up. Last time I built a machine, I spent forever just finding installers for all these buggers. It strikes me there are three problems:

  1. Finding a useful utility
  2. Deploying utilities on any computers you have - not just installing a new utility, but having a list of your favorites and being able to say Set Me Up and it’ll install everything on your list.
  3. Keeping them up to date - I like to have the latest versions, but it takes forever to go to each site and check for an update - especially when several of these apps have plugins. (just getting a slimserver up to date with all its plugins can take a half hour).

‘twould seem like a niche begging to happen…

This email came from my friend Rob, a very computer-savvy guy. These kinds of problems are much worse for a novice user.

The trouble has been, although there are some good single-platform solutions to this kind of problem for open source software on Linux or Mac (which you can see below in the Ruby install steps), there hasn’t been a good, unified cross-platform solution. But working on my little ‘filebydate’ Ruby gem has got me thinking how the Ruby language, libraries, and runtime are getting tantalizingly close.

Even for a novice, it’s easy to install Ruby. Even if you never want to write a line of code, this can be nice, because Ruby includes its own package manager (rubygems) which makes finding and installing useful ad-ons easy. All this is cross-platform — it can work whether you’re using a Windows, Mac, or Linux box. Getting started can be summarized in one or two steps.

Windows

  1. One-click install (1.8.5 r21)

Mac

  1. Get DarwinPorts
  2. % port install ruby rubygems

Linux (Ubuntu)

  1. % sudo apt-get install ruby irb rdoc rubygems

Try it if you don’t already have Ruby! Once you’ve got this done, installing a ruby library or application on any of these three platforms is as simple as running

% gem install filebydate

on the command line. This command will go up onto the internet, see if this thing called ‘filebydate’ exists, download it, install it, and put any scripts (like ‘renwdate’) in your path so they’re also usable from the command line.

It’s like downloading a typical program installer, except that

  1. The installation process is standardized
  2. Upgrades are as simple as
    % gem update
  3. You can tell what’s previously been installed with a simple
    % gem list
  4. Gems build on each other, and are able to install what’s needed automatically (dependency handling)
  5. When you move to a new computer (even running a different OS), it’s easier to get the same programs re-installed

All this is nice, but it’s obvious that most normal computer users will simply say “you lost me at ‘command line’”. To make Ruby more viable as an OS-independent application platform, there’s a few things we Ruby developers have to do.

  1. Gems should provide a bit more consistency in supporting multiple platforms, or declaring any platform dependencies
  2. Gems should consider adding GUI frontend for any scripts (as I should do for filebydate)
  3. And some ideas for rubygems …
    1. Create a gui frontend for rubygems itself
    2. Add a section in the gemspec for some post-install, platform-specific processing for all supported platforms (e.g. to add shortcuts to start menu on Windows, etc.)

Is Ruby the only game in town? Not by a long shot. There’s ppm for Perl, pypan for Python, any of the Linux package managers, solutions like Macromedia Central (Flash), or any number of others — but most are either not multi-vendor, not multi-platform, or aren’t as well matched to the problem as Ruby and rubygems.

So are Ruby and rubygems ready for prime-time as an OS-independent application platform? Not yet, but they’re usable today and getting closer all the time.

Do you have a better, preferred set of technologies to start solving these problems?

Technorati tags: computers and Internet, software, ruby