Whenever I see the name Ivan, a little voice in my head starts singing the refrain from "When Ivan Meets G. I. Joe" by the Clash from the album Sandinista!.
Joi Ito has written a brilliant little story that succinctly explains what goes on under the covers as an idea moves through the blogosphere. I've tried to explain these concepts to others before, but now I will be quite happy to simply point them at this story. In addition, his story has convinced me to finally go ahead and do the blogrolling thing.
Given my disturbing predilection for proofreading everything I read, including breakfast cereal boxes, I couldn't help but notice a couple minor typos. My favorite was the presumably accidental switch from BobsBlog to BlobsBlog. Even better would have been BlobsBog. If I went by Bob instead of Robert, I would be seriously tempted to change the name of my blog to BlobsBog.
Even if you are one of the tiny fraction of the public cursed with proofreader's disease (maybe I can get Sally Struthers to help save us), you need to read Joi's story.
Of course, just because I proofread everything I read doesn't mean I proofread everything I write, so please spare me the shame of pointing out the fact that I am throwing stones, albeit tiny little happy fun pumice pebble ones, in my own glass bloghouse.
In the last couple months, and especially the last few weeks, new news aggregators have been coming out of the woodwork like stolen credit card numbers out of Data Processors International. While there were plenty of browser-based (Radio, Amphetadesk, etc.) and three-pane desktop app (NetNewsWire, Straw, NewsDesk, NewsCrawler, Syndirella, spaces, etc.) aggregators, now we have tools that fit into Mozilla (NewsMonster), Outlook (NewsGator), and good ole nntp news readers (nntp//rss).
I primarily use the Radio Userland aggregator. It's pretty basic, but it's got the main features I want. I especially like being able to delete items that I have read or am not interested in, while allowing items that I want to eventually read to pile up at the bottom. The downside of this feature is the immense self-loathing that ensues when the list of items that I imagine I will find interesting grows at the rate of the US public debt.
Anyone want to place bets on how long it takes Microsoft to release Microsoft News? News will probably start out as a really nice news aggregator and will grab huge market share because it will ship as part of Windows. However, just like Internet Explorer, they will let it atrophy into a functional also-ran once it achieves high enough market domination. Hopefully, there will then be a rebirth in news readers, like we are seeing in browserville with Gecko and KHTML-based browsers, so that people won't be stuck with the mediocrity of an application like what IE has become.
Back to the aggregator parade - I recently tried NewsDesk, mainly to check out a .NET CLR app, but it was pretty disappointing. Not bad for a 1.0 release, but it failed to handle RSS feeds that worked with every other news reader I tried. I installed NetNewWire on Sandra's PowerBook, and I really liked it a lot. However, since I frequently move between Linux, Windows, and OS X, I need a cross platform reader. I checked out NewsMonster last night, and it stays on the short list with Amphetadesk, spaces, nntp//rss, and HotSheet.
If you find the usage of Java Web Start in the NewsMonster aggregator interesting, you might also want to check out HotSheet.
Well, now, I've gone and used up my daily quota of hrefs.
Update - August 16, 2003: RSSJobs has a convenient listing of RSS readers by platform, along with short descriptions.
So I'm not the only person who decided it would be cool to build a tool for blogging by phone. These guys are offering it as a commercial service, though. I hope they succeed with it.
My offer still stands to anyone who would like their own PhoneBlogger install. However, if you are just looking for a phone blogging tool that works out of the box, I recommend checking out Audblog. But, if you are willing to get your hands filthy with electrons, want total control over the blogging tool, and have plenty of free time to spare, let me know and I will help set you up.
Over an afternoon capuccino at Peet's, I read about SportsML in the final issue of New Architect magazine. When I invented a simple XML-based markup for SoccerPhone in around February or March of 2002, I didn't realize that a more general purpose XML-based markup language for sports was already being developed. The SportsML 1.0 draft was released in November 2002. But, then again, it's not like international news organizations regularly send me notices about their standards activities for my perusal and approval.
SportsML is an open, XML-based standard for interchange of sports data, such as scores, schedules, standings, statistics, and apparently any other word that starts with the letter s. Just what the heck is up with that? Anyway, SportsML was developed by the International Press Telecommunications Council. The IPTC also developed NewsML. I was pretty happy to see that SportsML has a large set of soccer specific tags, in addition to american-football, baseball, basketball, golf, ice-hockey, and tennis.
Ideally, I would be able to get SportsML feeds from MLS and Soccernet. Instead, though, I will probably just change SoccerPhone to generate SportsML rather than the markup I created. If it's not too much work, I'll probably change SoccerPhone to use SportsML sometime this year.
Apparently, not very. At least, not yet. And certainly not how I have it currently configured.
The two previous posts (1, 2) were not made by me. PB uses an XML-RPC API call to post to a weblog. That API call requires a valid password for a user on the blog. PB captures the password from the caller during the telephone call and passes it on in the XML-RPC call. The password is not stored as part of any configuration file.
Presumably, someone figured out my password, or at least the password I was using up until a couple hours ago. Since I don't have SSL set up for the domain where my blog is hosted, I am using an unencrypted HTTP connection. He/she might have sniffed the traffic on that connection. Or, he/she may have figured out how to retrieve my blog password from the MySQL database that I am using with Movable Type. Or, he/she might have just gotten lucky, as I can see about five failed attempts in the logs before the first successful post.
In case you're reading this, is this you?
195.7.12.11 - - [15/Feb/2003:10:40:04 -0800] "GET /blog/archives/2003/01/welcom\
e_to_phoneblogger.html HTTP/1.1" 200 3866 "http://www.google.com/search?sourcei\
d=navclient&ie=UTF-8&oe=UTF-8&q=phoneblogger" "Mozilla/4.0 (compatible; MSIE 6.\
0; Windows NT 5.0; .NET CLR 1.1.4322)"
Name: romsat011.fx.ro
Address: 195.7.12.11
While I would like to use a secure HTTP connection, that would cost me about $180 per year for the unique IP address with my webhost and a digital certificate from Geotrust.
This post was created with PhoneBlogger. Click to listen to the recorded message.
This post was created with PhoneBlogger. Click to listen to the recorded message.
Yet another "Which __ are you?" style quiz. I added it to my short list of similar quizzes that I found to be somewhat less than a complete waste of time. I am Slackware Linux.
My lust for the Apple Powerbook was sated today when a box showed up at my front door today containing a 1 GHz, 1 GB, SuperDrive, 15.2 inch TiBook. What a beautiful machine, what a beautiful operating system. Even though it's technically Sandra's computer, I plan on spending a significant amount of quality time with it.
I have a Dell desktop dual booting RedHat 8.0 Linux and Windows XP for personal use, an IBM ThinkPad T23 laptop running Windows 2000 Professional for primary work use, and a Dell workstation running Windows 2000 Server (with Red Hat 8.0 running in a virtual machine) for my web server, servlet engine, database server, and full J2EE app server at work. Each of these operating systems and computers absolutely pale in comparison to the PowerBook and OS X.
There are a couple downsides, though. The reception with the AirPort card sucks. There's no other word for it. My ThinkPad also has a titanium case, but it gets noticeably better reception. The distance from the access point in the office to the couch in the living room is about 50 feet, albeit through two thick lath and plaster walls with some bathroom tile. While the ThinkPad's card gets only a weak signal, it rarely drops out entirely. The AirPort card's signal drops out frequently at the same location. Now, I have to mess around with the antennas on the access point to see if I can improve the situation.
Also, I like the keyboard on the ThinkPad better, and I even like the eraser head mouse stick better than the Mac's trackpad, but that may just take some getting use to. I hated the mouse stick the first time I used it, but now it seems natural. Other than that, though, as a power user and a software developer, I think the Mac is a far better value for the money than an Intel-based laptop running Windows, or even Linux.
Safari is a pretty sweet web browser, too, but I miss tabbed browsing. Please, Apple, add tabs in the next release!
This is a fantastic article at Salon.com by John and Ben Snyder. John is president of Artist House Records, on the board of the National Association of Recording Arts and Sciences, and a 32-time Grammy nominee.
Although long stretches of the article consist of quotes from other people, he chooses great quotes from excellent articles by John Perry Barlow and Tim O'Reilly that many people at NARAS may not have read. These quotes provide powerful backup to his already compelling argument - the RIAA is inflicting significant harm on the entire music industry.
On that note, I'll include my favorite quotes from Snyder:
"In five years, record labels will be software companies and I don't think they know that yet."
"Music companies are more egregious in their abuse of consumers than the movie companies. Consumers don't hate movie companies, but they do hate record companies."
"The RIAA reached its conclusions, then looked for supporting arguments, all the while ignoring reality, opportunity and fact. They overstate their position, misinterpret their own data, and make dubious claims for artists' rights when the biggest abusers of artists' rights are their benefactors, the record companies themselves."
I don't use KaZaA, because I don't want their spyware on my computer. I don't trust KaZaA Lite, either. If you do a little research on just what KaZaA and a few of the other P2P networks install on your machine, I think you might come to the same conclusion. The record companies should be appealing to me with the argument that for a reasonable sum of money, they will provide me with a convenient, safe way to download music. Instead of positioning KaZaA as being risky, they position KaZaA as the tool that enables me to commit crimes.
I can't think of any other industry that mistreats its customers as badly as the record industry. Okay, maybe the airline industry, but look at what is happening to most of the airline carriers.
After the Major League Soccer season ended last fall, I forked the code for SoccerPhone so I could work on a version that downloads the live scores from SoccerNet and reads them to you over the phone. This was a much bigger challenge than automating the MLS live scores page. I now had to deal with scores from multiple leagues, new abbreviations, non-ASCII characters for the Spanish teams in La Liga, etc. I managed to get it mostly working before I ran into a stumbling point. I think I recently figured out how to get past it, but at the time I got distracted by ...
PhoneBlogger. Yes, work on PhoneBlogger consumed my bits of free time available for hacking over the last few months.
Yesterday afternoon, though, Sandra pointed out a thread on the BigSoccer forums about getting MLS scores on a cell phone. (Yes, I am Data ferret on Big Soccer. No, I don't own a ferret. The name makes about as much sense as WombatNation, though I usually am pretty good at ferreting out data on the Internet.) So, I checked SoccerPhone out to make sure it was still working. MLS had tweaked a couple things on their site, so it was partially broken. I decided to go ahead and merge the code forks and clean up and extend my PyUnit tests. This afternoon I finally got everything working again, at least for the MLS page, and managed to write about 30 automated tests.
This experience confirmed for me again just how miserable it is to code JavaScript for VoiceXML applications. Now, I'm wishing I had written nearly all the dynamic code in Python and just fed back completely rendered VXML documents rather than returning XML documents and using JavaScript to parse them from a static VXML document. But, no, I thought I would make it more generic so the XML documents could be consumed by some other application, too. But, what?
The biggest problem, at least on the TellMe hosted service, is that you can't step through your JavaScript code in a debugger while your app is running. You can't even use print statement equivalents in the JavaScript code. You have to set a JavaScript variable with the value you want to see, drop out of the script, and then use a VXML log tag to print it to the call log. It's really hideous.
Of course, I also can't easily debug the Python CGI script when it is called from the VXML app, but I can easily simulate the VXML app when calling a CGI script, thus allowing me to write a comprehensive set of automated tests. While mixing JavaScript with VXML is really nice at times, it is very difficult to write automated test code that makes you confident that what you wrote will work.
