Here's a few screenshots of my take on personalized meme-tracking:
My Memes: | ![]() |
Nik Cubrilovic: | ![]() |
Robert Scoble: | ![]() |
US Politics (Just to prove it isn't just a tech-blogger thing): | ![]() |
Here's a few screenshots of my take on personalized meme-tracking:
My Memes: | ![]() |
Nik Cubrilovic: | ![]() |
Robert Scoble: | ![]() |
US Politics (Just to prove it isn't just a tech-blogger thing): | ![]() |
Somewhat surprisingly, this is an actual quote from real Java job advertisment from a serious recruitement company:
This project has massive potential. It could be bigger than SMS.
I don't know what to make of it.. does it mean that it pays more than it costs to send an SMS? Or perhaps you will be required to write code using a phone keypad?
I was kind of disappointed to see that I couldn't buy stock in the company – I'm sure (to quote another recent email that ended up in my spam box for some strange reason):
It is only a matter of time before it is released out into the investment
community and they take it to the moon..
What is http://beta.bloglines.com?
So back in October, I began working on another little side project
involving personalized meme-tracking.
Basically, my software can take an OPML file and generate a clustered display similar to memeorandum. Over the last couple
of days a few other people have mentioned similar ideas – in particular Robert Scoble mentioned
Megite, and Dare Obasanjo asked to “able to provide it the OPML for blogs.msdn.com and have it show me what the hot topics were among Microsoft bloggers”.
So here's a screenshot, using http://blogs.msdn.com/Opml.aspx as a source:
It's not available to the public yet – I haven't had time to work on a few scalability issues yet.
If you'd like to discuss this, though, email works: nlothian at apache dot org.
My original Google IG/ Google Reader
module has proved quite popular. I have now updated it so it displays entries separately outside the module. I find this a lot easier to use than the old version.
Those of you with the old version installed will be upgraded automatically. Otherwise, the installation instructions are:
Update: Now availble via the Google Directory and approved for inline use. Just go to http://www.google.com/ig/directory?q=reader and add it.
Update (7 April 2006): Some recent changes to the Reader API broke my IG module. All is fixed now, so if you have been having problems give it another go.
I took over 200 pictures of the 2006 Tour Down Under Classic with my new camera.
I was pretty please with the results, in particular the picture below.
I’ve uploaded some more on FlickR.
Anyway – if you are in the market for a super zoom camera I’d highly recommend the Lumix FZ-5. The only downside is that the manual is somewhat engrishy.
The combination of Google's Reader API and the Google Homepage API (and some fun with reverse engineering the bits Niall didn't work out) gives the IG Reader Module:
Using the Reader API from the Google homepage is the simplest way of avoiding cross-domain XMLHTTPRequest issues – which in this case are complicated by the fact that Google Reader checks google.com cookies. This means that the reader module needs to be run as an inline module (since non-inline modules are served from a different domain).
The other problem I had was determining the Google Reader _USER_ID value which is required in the API calls. In the end I had to do a XMLHTTPRequest to http://www.google.com/reader/lens/ and parse the response. I also used the same technique to find the _COMMAND_TOKEN which is required to mark items as read.
There are still a few known bugs to fix before I submit it to Google for inclusion in their directory.
Firstly, there are some display issues in IE and secondly the “mark as read” functionality gets confused sometimes (updated: fixed, I think. update 2: Now works in IE). Patches are welcome!!
To install (if you'd like to alpha test it):
If you like it or have some ideas (or patches!) send me a note: nlothian at apache.org
10 Feb 2006: Updated
So I was mucking around with Niall's excellent reverse-engineering of the Google Reader, and I figured out that Google have some pretty must have some pretty funky (in a good way) framework to work with client/server interactions from Javascript.
The UI has a feature called the “Lens”, which allows one to scroll through blog posts. Posts are requested 20 at a time (and returned in an the Atom XML format). Once you scroll more than 20, another HTTP request is required. The usual way to do that would be to pass some kind of “start” parameter, but instead the Atom file contains a <gr:continuation> element which contains a unique ID (think of it as a session ID).
This id can be passed to the Google feed URL endpoint, and it will return the next 20 elements starting from where you left off.
EG:
1) request: GET /reader/atom/feed/http%3A%2F%2Fdel.icio.us%2Frss%2Fpopular%2F
2) response:
<feed>...<gr:continuation>COT3ruq0jYIC</gr:continuation>...</feed>
3) request: GET /reader/atom/feed/http%3A%2F%2Fdel.icio.us%2Frss%2Fpopular%2F?c=COT3ruq0jYIC
4) response: Contains the next 20 elements
I'd really love to see the framework that is doing this stuff.
More realistically, I'd like to know the best way to only show unread items for a specific feed. I know I can grab the feed for each label, then for the feed, and loop over the feed entries looking for ones marked as read in the label feed, but there are a number of problems with that and it seems like there should be a better way. Any clues Chris?
Hopefully there's a way to do that so I can fix the things I don't like about Google Reader myself.