Annologger update: now with pretty templates

Post and publish a schedule of events for your friends, your readers, your fans, no matter who you are.

I’ve just released v0.3 of Annologger. Now it supports pretty templates, as well as tweaks on UI interface. There are lots of little things that I’ve changed here and there to facilate ease of use.

The templates are from These templates are all public domain, thanks to Chris Pearson, James Koster, and Pat Heard(template not shown) for submitting their fine work to OWD. Hopefully, the more people use annologger, the more exposure they’ll get as designers.

It’s been hard work in the past week, and I had lost track of all time. I had thought it was Weds when it was really Friday.

Announcing Annologger

Post and publish a schedule of events for your friends, your readers, your fans, no matter who you are.

I’m officially announcing Annologger. It is now up and running on beta. It’s free to join.

Annologger lets you post and publish a schedule of events to the web. Each schedule listing not only displays the events in an organized matter, but also facilitates interaction between you and your readers.

This is a sample of a live annolog that is generated by Annologger. Try it out, and give me feedback.

What sucked about getting your feet wet in J2ME

The last two days were spent on trying to get the JavaME Wireless Tookit from Sun up and working with EclipseME. It’s been a frustrating experience, to say the least.

I did find this webpage with a lot of information on hacking and modding your V3 RAZR. It’s got a neat little story on the history behind the RAZR.

But aside from the cute diversion, I found on a forum at MotoX, that RAZR V3 isn’t capable of upgrading its Java CLDC from 1.0 to 1.1, even if you flashed the firmware.

So it looks like I’ll have to go find a phone with CLDC 1.1 to get anywhere.

Patching tests for Salted Login Generator

It’s odd, but I was having problems with the SaltedLoginGenerator for Rails. I wasn’t able to run the tests at all with rake. I was getting:

/usr/local/bin/ruby -Ilib:test "/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test_loader.rb" "test/unit/entry_test.rb" "test/unit/user_test.rb" "test/unit/localization_test.rb" "test/unit/stencil_test.rb" "test/unit/publisher_test.rb" "test/unit/annolog_test.rb"
/usr/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:74:in `load_specification': undefined method `parse' for Time:Class (NoMethodError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems/specification.rb:307:in `date='

and then later on, after a fix (I’ll describe it later), I was getting:

/usr/local/bin/ruby -Ilib:test "/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake/rake_test_loader.rb" "test/unit/entry_test.rb" "test/unit/user_test.rb" "test/unit/localization_test.rb" "test/unit/stencil_test.rb" "test/unit/publisher_test.rb" "test/unit/annolog_test.rb"
/home/wil/proj/3cgworkspace/annologger/config/../test/mocks/test/time.rb:5: undefined method `cattr_accessor' for Time:Class (NoMethodError)

I think that problem was that I had an older version of rails and ruby, so I’ve updated to both ruby 1.8.4 and rails 1.1.4. And because I didn’t generate rails with the new version, I had to insert these two lines requiring both ‘rubygems’ and ‘time’ into my test_helper.rb under test/, before requiring the environment file in config

ENV["RAILS_ENV"] = "test"
require 'rubygems' # patch to fix undefined 'cattr_accessor'
require 'time' # a patch to fix undefined `parse'

require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require 'test_help'

class Test::Unit::TestCase
# Transactional fixtures accelerate your tests by wrapping each test method
# in a transaction that's rolled back on completion. This ensures that the

Finding easy-to-read web content

Finding easy-to-read web content: “Posted by T.V. Raman, Research Scientist

Like most of you, when I search the web, I want to find relevant information with a minimal amount of distraction. But because I can’t see and I use a device that converts web text to speech, I’m even more in tune with the distractions that can sometimes get in the way of finding the right results. If the information I’m after is on a visually busy page, I have to sort through that page to find the text I want–an extra step that can sometimes be very time-consuming.”

It’d be nice if this could be used for filtering out ads.

Something’s a twttr-ing in the morning

I was chilling out, thinking about going to sleep when the secret mail sent me this link to Om’s post on Twttr

There’s lots of ways to describe twttr, but at its simplest, it is a service that notifies your friends (people that care) about your presence and status. Technically, it’s very simple: it sends your SMS text messages to all your friends’ phones. On the flipside, you will receive txt msgs from those friends that you want to get msgs from. You can view the stream of text messages on the web, from yourself or all your friends. While this has the potential to spam your phone, I think they’re on the right track with development on mobile devices.

Thought of another way, it’s a more fine-grained blog that encourages short, and otherwise ethereal thoughts to be sent. Where as IM is presence on a computer or sidekick, and blogging is presence in a world of ideas, twttr encourages the idea of presence as “what are you doing at this moment” to bleed into real life.

Mobile devices have certain chacteristics unique to the platform. I think this application takes advantage of the unique characteristics of a mobile platform, unlike the boring applications that Verizon comes up with, like directions and video casting.

The uniqueness of mobile devices as a platform

About a year ago, I searched on the web for opinions on what are the killer apps of mobile devices. By its original definition, a killer app is a piece of software that someone would want so bad, they’d be willing to buy the hardware just to run it. But now, ‘killer app’ is used simply as a piece of software lots of people will use. I was curious about what people predicted.

I read all sorts of things; that mobile gaming, ringtones, web browsing were the killer apps. Others lauded that voice–being able to make calls–is the only killer app you need for mobile phones.

I beg to differ. I think with every new platform, people first make copies of what they could do in the old platform before really realizing what the new platform has to offer. From the paper platform to desktop platform, people first made spreadsheets and word processors before making web browsers. Same thing happened when we had the web platform.

Mobile devices has a unique set of characteristics. While other platforms may share some of the characteristics, they don’t have all of them.

  • They are mobile (obvious)
  • They are always connected
  • They can get location-based information
  • They are almost always on a person, and considered personal by the owner
  • They are the gateway to other people all the time

Verizon and other carriers currently offer boring services, such as ringtones, wallpapers, video casting, and weather. They might take advantage of the first three attributes, but I feel the real power of the mobile platform is its decentralized nature, and ability to create social spaces based solely on the fact that they’re always on a person. And in essence, other people, in whatever form, is what we like to interact with.

Dodgeball and Twttr are moving in the correct direction. But I think there can be much more done with it. Decentralized messaging that moves people to emergent actions would be something like a next step.

A more concrete example would be an application on your mobile device that tells you what everyone you care about is doing locally–either locally in time, in proximity, or in your social network. But this information would have to be presented in a way that creates a positive feedback, so that the more people are doing something, the more other people will do it.

I’m going to do some hand waving here, as I don’t know exactly what would compel people to participant. It could be something as simple as showing how many other people are doing it. However, the point is, if this positive feedback mechanism was in place, you could have Digg and Slashdot effects happening in the real world.

Imagine that.

But if it got out of hand, it wouldn’t be good. Mobbing is never good in real life, and I’ve warned about the tyranny of the masses in a previous post. But I think that’s the potential power of mobile devices.

Offline rdoc gem documentation in Ruby

I always forget how to do this one, even though it’s really simple. (Make sure that you have rdoc installed first) To view all the API documentation in gems, simple run:

gem server

from the command prompt. It will start a WEBrick server up on your local machine on port 8808. Therefore, if you browse to http://localhost:8808/, you’ll see a list of documentation of the gems on your machine.

It’s incorporated into the gem command now, so just do “gem server”