http://gdata.youtube.com/feeds/base/user s/communitychannel/uploads
You can also specify the order in which you want the videos. Note the "orderedby" parameter in the urls that follow:
http://gdata.youtube.com/feeds/base/user s/communitychannel/uploads?orderby=updat ed
http://gdata.youtube.com/feeds/base/user s/communitychannel/uploads?orderby=publi shed
So far, so great. Now, suppose you want to make a lifestream, and you want to include the videos that you've favorited. They've got a feed for that, too:
http://gdata.youtube.com/feeds/api/users/d avidblume/favorites
But it's not right. If you look at the data you get back, you see that it's not what you wanted. Those videos are going to be associated with the timestamp with which they were updated or published, not the time that you favorited them. And that's the time that matters to your lifestream! Given the way the programmatic feeds are organized, you'd think that there's a way to specify that, and that feed would be as follows, right? --
http://gdata.youtube.com/feeds/api/users/d avidblume/favorites?orderby=favorited
Nope. After living with a workaround in my lifestream for months, only today do I learn that YouTube did create the feed I needed, but calls it this: v=2. Yeah, like that jibes with their feed explanation.
Lifestream writers, the favorites feed (ordered by time favorited) that you want is constructed like this:
http://gdata.youtube.com/feeds/api/users/u sername/favorites?v=2
(Replace "username" with your username, of course.) Now I can go delete my workaround.
A couple of years ago, I'd already claimed to be a long-time fan of Dave's Quick Search Deskbar, especially because of its popup dictionary search.
Since then, though, Merriam-Webster has changed the layout of their site so much, that they made maintaining the DQSD mwd.xml prohibitively expensive. I needed to create a new search, and I did. (The definitions aren't as good as Merriam-Webster's, but at least they work.)
Here's what you do, if you already have DQSD installed:
- Download df.zip (2 kb), and extract df.xml into C:\Program Files\Quick Search Deskbar\searches.
- Modify localaliases.txt to include the following line:
:|df
And now, you can have an easy, non-intrusive, dictionary lookup available anytime again. Just type the word to lookup with a colon after it, and the definition will appear in a popup window that gets dismissed when focus changes elsewhere. (I mention a shortcut key recipe I use for looking up words.)
In case you didn't already know, DQSD excels at many other searches, too. It defaults to Google, but I use it for Wikipedia, image, maps, the imdb, and a calculator quite often, too. It's just the popup definition lookup that needed my TLC.
Anyway, in no particular order, here's what I want to get done:
Customize Twitter Friends Feed: I need to customize my twitter friends feed so that it won't spam my feed reader with @replies I don't care about. I need to set my preferences on a per-twitterer basis. I really enjoy all @replies from some of my friends, but not all. Maybe I'll break down and find an app that already has the feature, but I prefer having just one place aggregate all the feed activity I'm interested in. [Edit: Biz is going to do this himself!]Make a Dictionary Popup: I loved the DQSD mwd popup definition result. But merriam-webster.com has a history of changing the layout of their page so that maintaining the mwd.xml search became onerous. It's time to replace that popup definition with one from aonaware. Here's the API call I'm most interested in: DefineInDict, with "gcide" for the dictId. [Edit: Completed!]- iTunes library rsync with OpenTape: As originally hinted.
Here's an example:
Yuck. A fix for it is the following Custom Stylesheet code:
.asset-body ol { list-style: decimal inside; }
.asset-body ul { list-style: disc inside; }
If you customize Expressive with the CSS above, then your journal won't have list bullets that overlap the user icon. Here's a link to the corrected page in the picture above.
I like this look, because it's uncluttered. There are only two noticeable links when you hover over stuff. The text in the middle is a link to the original entry, and the little icon to the right takes you to my account at that site.
However, I decided it would be handy to be able to have lifestream pages that show only entries from livejournal, my family blog, delicious, or plurk, or any of the others. I made it so. Yay! There they are!
But now the problem: From where should I put links to them? It's the same issue as with the lifestream legend. The lifestream legend is meant to be just a little table to help the reader know which services are being tracked. It's a handy thing, but it doesn't belong on the lifestream page. So I left it out.
But it seems like I should be able to put links to the filtered pages somewhere. Hopefully from the lifestream itself, because that's the handiest. But a new link from that page will hurt the current design. Here are some examples that would put the link just to the left of the little icon at the end:
I don't know what I should do. In the picture above there's a picture of a funnel, which apparently is geek code for "filter." Below that is an icon of a page with a green "go" arrow (from famfamfam), and below that is a down arrow unicode character. Below that is a nebulous, mysterious box. I'm not really pleased with any of these. I like the feature, but just don't know how to expose it.
Do you have any ideas of what would look good? Should I leave those links out of the lifestream and put them in from the legend? Maybe I should change the link of the icon at the end to be to the filtered page instead of my account page at the remote service?
[Edit] Currently, I changed the link of the icon at the end to point to the filtered page. I'll see how that works.
I think I can be thought of as a late early-adapter. I thought I had a lot of original ideas as I made my lifestream, but it turns out that more often than not, somebody else had already implemented one of the ideas. Happily, no one seems to have made all the same decisions as me, so my effort wasn't wasted. For me, my lifestream really is the best lifestream ever! Here's why:
[Edit] I changed the icon link. Now they point to a filtered lifestream page.
The Best of Both Worlds
Jeremy implements his as an aggregation of RSS and Atom feeds with no persistent storage of previous entries. So, as newer entries are made, the oldest entries are lost forever. His lifestream is always only the most recent few entries. Jeff, on the other hand, implements his with APIs, so he has access to the complete history of entries for any account. I maintain mine with feeds, but I imported my entire history from many accounts. My lifestream is huge, and spans years, even though I just started it a couple of months ago.
Also The Best of Both Worlds
Jeremy's lifestream is handy, because it never becomes unwieldy. It'll always be about the same size. Jeff Croft's and Emily Chang's persist every entry and thus continuously grow. They paginate their lifestream. You can view page 234 out of 399, for example.
I decided that 98% of the time, I'm only interested in something I wrote down in recent memory. Say, the last four weeks. So I made that the index page of my lifestream. Just the 28 most recent days of my online activity. It make for a nice, small page.
But the other 2% of the time, I'm searching for something older, or I'm feeling nostalgic. So I put my entire lifestream on one page, too. Sure, it's big, and I'll never browse it from a phone, but modern web browsers are perfectly capable of downloading it and rendering it, and will be able to do so for years to come. The entire history really has the same appeal to me as being able to search through a diary.
Even if I decide to paginate it eventually, it'll be easy, the backend will facilitate that.
The Details Matter
Since I provide my entire lifestream on one page, I also made sure to include the year for dates that precede this year. (Eg., October 5th, 2006. Note that that uses the intra-page anchor, another important detail.)
My lifestream has a discoverable RSS feed too.
But you know what? Nobody'd want a feed of a lifestream that constantly updates for individual entries. That's one thing that really bothers me about sweetcron feeds. They're just too noisy. Update, update, update!
So the RSS feed for my lifestream only provides weekly updates. That's what I'd really want from a lifestream feed. Just some sort of nice regular overview of all the activity over a certain period of time. And its permalinks are intra-page links into the huge complete history page.
Some of the accounts that I include in my lifestream don't support user activity feeds. For example, YouTube's feed for each user's Favorited videos doesn't have "date-favorited" information associated with it. Since I wrote my own lifestream engine, I was able to work around that problem. I doubt that most lifestream services like FriendFeed would go to the lengths I did in ensuring that I get exactly the information I want, regardless of whether or not the site's feed or API supports it.
It Helps Me Find Things
Searching for things half-remembered turns out to be pretty successful at the lifestream. I sometimes don't know if I posted a link to delicious, or if I plurked it.
It Encourages Me To Write Better
I always think twice before I write a clever title to a tweet, plurk, or blog entry. I realize now that I may well be searching for that entry in the lifestream later, and the lifestream may only have the title. (The lifestream also contains actual content from the entries, but the content isn't presented in the web pages. So maybe the content will be searchable too, eventually.)
Cleverness is out. Accessibility and searchability are in when you have a persistant searchable lifestream. Now, I strive for clarity in my titles.
I also stopped services that cross-post from one service to another. Having the lifestream made the idea of cross-posting even more redundant. If my livejournal friends don't want to see my tweets, I won't force them to with LoudTwitter.
For the most part, Chrome delivers. It's a great first release of a beta into a mature commodity market.
But today, I returned to Firefox. Chrome has the following problems that I just can't get past:
- No native ATOM/RSS support. (Seriously- Are feeds not the most important modern feature of the web?)
- Immature Bookmarking system. (no plugins (Foxmarks/Delicious) to workaround this, either).
- Rare AJAX incompatibility with all other browsers. (Chrome doesn't support the AJAX drag-and-drop in Netflix's queues, for example.)
It seems like a good jumping off point. I'll improve it with various advanced features I've already implemented elsewhere like:
- Conditional GETs.
- Authentication, (cURL example)
- Accessing all feeds with a simplified interface.
Conditional GETs. Mark already did it.Authentication. Mark already did it.Content Normalization. (That's what I meant.) Mark already did it.
There's nothing left for me to do, but the stuff I can't do. Make it pretty.
I'm a big fan of classic mode. I don't want my add-ons in my face. (I do my syncing with Foxmarks, anyway.) For del.icio.us, all I want are the two toolbar buttons, "tag this" and "Delicious." It's fine if add-ins provides more options, but please don't change my user experience if I don't want you to.
This is how classic mode used to be, and how I remember my Bookmarks menu:
Yay! There's my little "Tag" tool right next to the Home button.
Yahoo decided to "improve" the Classic Mode by adding a handful of menu item to the Bookmarks menu like this:
What were they thinking? Don't they know the whole point of classic mode is not to do stuff like that?
That means I have to drag the mouse considerably further away to access my bookmarks. Those extra menu items were already available on the Navigation toolbar. So the new menu items are simply in the way, and make the menu harder to use. Ugh.
Downloader beware. If you want the clean, uncluttered UI, download version 2.0.64.
With a feed like that (with your own username and password), you can view your friends feed from Google Reader.
If you use Plurk, you know how fun the service is. It's one of the most addictive sites around. But I'm not here to convince you to try it. I'm here to help those who are already there.
Plurk utilizes a point system called Karma. It's a finely tuned system that appeals to those personalities that are competitive or like to collect. I love the reward system associated with karma. I despise the penalty system associated with karma. For example, if you're away from the service for a few days, you lose karma.
If you're already on Plurk, you need Karma Medic. Karma Medic's plurk user name is dblumebuddy. Karma Medic watches out for all her friends. If they're away from the service for too long, Karma Medic administers Karma in their absence.
Finally, you're allowed to leave Plurk and return to it without feeling like you've been unduly punished.
[Edit 07/28/2009] It's been over a year now, and Karma Medic has discontinued her distribution of karma. She's decided to continue singing, though. Many thanks to Plurk itself, for making the Karma system less punitive than it was a year ago.
Instructions
1. Friend (not Follow) dblumebuddy.
2. There is no step 2.
Karma Medic will* accept the friend invitation, and will begin watching out for you in about two hours.
What Happens
Karma Medic is a cron daemon that watches out for her friends every hour. She notices the following sorts of things.
- If you been plurking, that's great.
- If you Karma isn't going too far into the negative, that's OK, too.
- If she's helped you recently, she'll move along.
But, if you haven't been plurking, and your karma's going dangerously low, she'll administer a little karma love in the form of a plurk response.
Also, she likes to sing.
Leaving Karma Medic
There are two ways to leave Karma Medic's services.
- Unfriend Karma Medic. Karma Medic will forget everything she ever knew about you within an hour.
- Stop plurking. If you leave Plurk by just walking away for a few weeks, Karma Medic notices and stops watching out for you.
The Details
Karma Medic is a completely transparent service. You can see everything she knows. She was written in Python and uses YAML and JSON.
She can only see public plurks.
I intend to release Karma Medic as open source under the MIT license at Google Code. I just need some free time. She uses the Python variant of the Unofficial Plurk API.
*She's only accepting up to
So what are you waiting for? Go friend her! Help her help you!
It turns out the solution I needed was a one-liner cron job.
curl -u email:password http://twitter.com/statuses/friends_time line.rss > twitter_friends.rss::slaps head::
Now I can use Google Reader again. Thanks, Twitter API. We can be friends again.
There were already a couple Python scripts out there that connect to Plurk, but nothing that constituted anything like an API like Ryan Lim's PHP version.
It's only a partial port, and it's not documented yet. But it's pretty easy to understand and it's usable. If you use it, please conform to Plurk's Terms and Conditions.
Here are some examples:
import plurkapi
p = plurkapi.PlurkAPI()
## View some plurks
for plurk in p.getPlurks(your_userid):
print plurk['content']
## Retrieving Karma
p.login(nickname, password)
print "%s has %1.2f karma." % (p.nickname, p.uidToUserinfo(p.uid)['karma'])
Bugzilla's bug 434022 is annoying. When creating a link with LiveJournal's Rich Text editor in Firefox 3.0, it appears that the link was correctly inserted, but if you examine the actual link created by viewing it in HTML mode, you'll see that a nonsense placeholder link, like, "javascript:void(0);/*1215422220401*/", was made instead.
In the past, I've relished these vacations as an opportunity to fall off the grid. The worst that would happen would be that Google Reader would queue up too may unread articles. I don't mind simply marking all those as read and starting fresh. (Except for important feeds like XKDC and Penny Arcade, of course.)
Live Journal would queue up a few pages' worth of new content, but I could usually wade my way through that when I returned. I keep my friends list pretty tight.
This year is different. Quite a few of you are on plurk, and that's the stickiest site I've ever seen. I never thought plurk's silly little points system, "karma," would draw me in, but it did. I kept lusting after new cute plurk monsters (displayed in the top right corner) that cost more karma than I had.
Bouncing from conversation to conversation in plurk is like flitting between conversations at a party. And if you've hand-selected all your friends at that party, then most of these conversations are going to draw you in anyway. You never want to leave!
Something I hate about plurk? You get penalized for not posting (plurking). If you've been on the system long enough, the penalty for not plurking is greater than the reward for plurking. The positive motivation is great, but this penalty? Makes me consider giving up the service, because I just don't need that tension in my life. I don't like it.
So, do I fall off the grid during this vacation? I'd like to fall off. I'd also like to stay in touch with my online friends. I don't know what I'll do.
My plurk karma trends will reveal all, once this vacation is over. (Plurkers: Isn't that a cool tool? If you follow karma_trends, too, then you can graph your karma against others!)
- 23:07 I'm ferociously angry at twitter. They've removed my ability to follow you. tinyurl.com/5p2m6g This service is unusable. #
A little experimentation revealed how to change the icon. When I have no new items to read, the favicon is the usual level one. But if I have new items to read, then the favicon is tilted up, like a mailbox flag when there's outgoing mail in the box.
Could this be what the Google Reader team intended? It doesn't seem likely, because the tilted version is actually a 3D perspective version. But still, that's what my experience has been so far. It's a little mailbox flag for new articles!
I know what you're all thinking: Ooh, fascinating, David! Is this what you do in your spare time?
Twitter is damaging journalistic tendencies around the world.
I'm beginning to think that Hugh MacLeod got it right when he said he'd quit twitter. I don't think he kept that promise, though.
Kathy Sierra's Asymptotic Twitter Curve bears reading again.
I still think that that Alan Herrell's quip that twitter's a toy that "disguises motion as activity" has truth to it.
I lament that twitter's so powerful that I couldn't draw more friends into jaiku, instead.
I blog less because of twitter, and I'm not happy about that.
[Edit 2008-08-04] Michael Heilemann notices the effects of microblogging, too.
I followed him in reply. But he tweets too much, and I might unfollow him. A little part of me thinks, "What right do you have to unfollow the mightly Colbert?"
[Edit] Well, that makes sense.
So, all I did was forward my confirmation messages to plans@tripit.com, and it made this master itinerary. (It's a picture of a long webpage. Click on it to see it bigger.)
Awesome! It was really easy. I didn't have to make an account first, or anything.
(I love the way the itinerary is organized in the same order that I'm going to be addressing things. Plane, Car, Hotel. Then, Hotel, Car, Plane on the way back. The little bits about the weather, online booking, and the map are nice things to throw in, too.)
It just scraped info from the email it received, and sent me a reply back with a link. I added my trip's ical feed to my Google calendar, and it worked.
I am so pleased with this service. Makes me want to travel more!
