Ted Leung on the air: Open Source, Java, Python, and ...
- Multiple very large Chinese meals in restaurants and homes of relatives. As Julie put it, "we haven't eaten breakfast, lunch, or dinner in the same place all week"
- Michaela slipped on a rug and hit her head on a metal railing. We had a quick trip to the local hospital for stitches. Michaela is a *tough* kid. The ER doc barely gave the local anesthetic a chance to work before he started on the stitches -- she barely reacted at all (she said "oowee", and that was it, no moving, thrashing, etc).
- Meeting my nephew/cousin Eliot in person, and having a chance to chat about computers, school, etc.
- The kids now know the names of all the fast food chains available on I-5 from Seattle to LA. Elisabeth has learned to say "Burger King", the clear favorite.
I'll be down in San Francisco from Nov 1 through Nov 4 for a visit to the OSAF home office. The days are pretty full, but I have a few evenings free, so if people are interested in getting together, leave a comment or send e-mail.
I read Merlin's tip on using QuickSilver's append to file command to manage a Getting Things Done inbox list. My lists are outlines in OmniOutliner, but I wanted to be able to do the same thing. Below is an AppleScript that you can invoke from QuickSilver, which will take the contents of the clipboard and append it to the children of a topic named "@Inbox". I've installed it in a directory that is part of my QuickSilver catalog, and the activation is as follows:
- Trigger QuickSilver
- Hit "." and type the text of the new inbox item into the text input window
- Do Command-A Command-C to select that text and paste it onto the clipboard
- activate the script to create the new inbox item.
Here's the code for the script:
-- can copy to clipboard and have script get from there on appendClipboardToRow(doc, t) tell application "OmniOutliner" repeat with r in rows of doc if topic of r is t then exit repeat end if end repeat -- set r to row 1 of doc set l to last child of r set n to make child at after l -- really want to do after set topic of n to the clipboard end tell end appendClipboardToRow tell application "OmniOutliner" set d to document "Next Actions.ooutline" end tell appendClipboardToRow(d, "@Inbox")
It's not ideal that I have to load the text into the clipboard but I couldn't figure out how to hook up the text in the QuickSilver input box and the AppleScript. In an ideal world, I could enter text into the text box, hit tab to select the "run shell script with standard input" command which would use the text as the standard input to a script (you could tab one more time and supply script arguments to be fancy). Unfortunately no such command exists.
So here's a question for the group/web mind. Is there a better way to do this?
I first discovered The Command Post from the DNC and RNC bloggers pages. Alan one of the founders gave a speech to the AP Managing editors which does a really good job of explaining the significance and potential of blogs to non-bloggers. Command Post is interesting because it's a group blog, but you can obtain the same effect by just diversifying the set of blogs that you read.
One of the great things about NetNewsWire 2.0 is the new tabbed browser, which (at least for me) can open more tabs than Firefox and saves tabs between application sessions (and crashes). NetNewsWire saves the list of open tabs in the file ~/Library/Application\ Support/NetNewsWire/Tabs.plist. I've made use of this because the current version of NetNewWire occasionally loses tabs when you restore the session (like if a site is temporarily down).Another thing that I miss from the tabbed browser is the ability to use bookmarklets. I particularly miss the one for posting to del.icio.us. Fortunately, there are alternative solutions. Here's an AppleScript to send the current tab in the browser to del.icio.us -- you need to change USER to your del.icio.us user name. You drop this into NetNewsWire's Scripts folder
-- a modification of http://www.macosxhints.com/article.php?story=20040929145251144 -- tab scripting logic courtesy of Rob Jorgensen on the NNW beta list tell application "NetNewsWire" set tab_num to ((index of selected tab) + 1) set url_ to (item tab_num of (get URLs of tabs)) set title_ to (item tab_num of (get titles of tabs)) set u to url_ & "&title=" & title_ end tell tell application "System Events" activate open location "http://del.icio.us/USER?noui=yes&jump=close&url=" & u end tell
A. M. Kuchtling reports that the dates for PyCon 2005 have been set for March 23-25, 2005 in Washington D.C. His post has more details about the sprints and so on. PyCon is the best conference that I've been to all year (still have ApacheCon to go), and I'm definitely planning to get there again next year.
LL4 (Lightweight Langauges 2004) is a conference that I'd love to go to, except that I'm not doing language work, so it's kind of hard to justify. But I think it would be super fun.
Last summer our reading group here on Bainbridge went through Bruce Schneier's Secrets and Lies: Digital Security in a Networked World. I found the introduction, to be one of the most useful parts. Here Schneier discusses the economic reasons that led him to convert Counterpane into a security service company. Aside from that there's a lot of high level stuff that is very education for lay people (but too light for people with some background). That material also serves to show how bad the computer security picture is. The other parts that I found interesting were chapters 19 and 21 which deal with threat modeling and attack trees.
If you don't have a security background, this book is a good introduction. If you do have a security background, you should keep this book around to give to your non-technical friends and co-workers. Schneier now has a blog where he's posting the contents of his excellent CRYPTO-GRAM newsletter, as well as other content.
Jon Udell has been chronicling his adventures now that there's a Rhino based implementation available.
Meanwhile [ via Lambda the Ultimate, via Chris Double ] Micheal Walter showed how to create an very E4X like XML embedding for Lisp using (character) macros. Why invent a whole new language for a new problem domain?
ApacheCon 2004 will start 5 weeks from today, so if you haven't registered yet, procrastination time is coming to an end.
ApacheCon is a relatively small and highly technical conference. I really like the atomsphere, the opportunity to sit down and spend time talking with people. PyCon and ApacheCon are my favorites among the tech conferences that I've actually attended. (I still haven't made it to an O'Reilly Emerging Technology Conference, or a SuperNova, two conferences that I think would end up high on the list if I ever make it to them. The recently concluded Web 2.0 also looks to have been above average.)
If you interested in cornering the people working on Apache projects, then ApacheCon is the place for you. Here are a few posts by people who attended last year:
- Rod Chavez's trip report
- Doug Kaye (of IT Conversations) posted a comparison of COMDEX, cdXpo, and ApacheCon
- Doc Searls liked it (he gave a great keynote)
- Scott Johnson of Feedster.com learned some stuff that helped out on Feedster
I'll be giving my XML Overview talk again this year, and looking forward to talks on Lucene, ReST, continuations in web apps, Scott Johnson's case study on Feedster, and more.
Those of you already using Quicksilver probably already know this, but the latest version of Quicksilver is out, and it can auto upgrade itself without launching a browser. I wish that more app would do this. I know there was a rumor that Apple was going to open software update to third parties, but that it got quashed. It would be great if a bunch of folks got together and pooled their resources to do a software update service and supply an open source library that developers could include in their apps....
Once again, I will not be going to BloggerCon. But this time I'm very happy about it, not because I can't go, but because Julie is going to be one of the discussion leaders. Her session is titled the "The Emotional Life of WeblogThe Emotional Life of Weblogs". This topic runs in and out of her blog, and is something that is close to both our hearts. I'm excited to hear what happens.
Fortunately (or not), that means that you will be treated to liveblogging of DaddyCon II, which coincides with BloggerCon. We'll see if we can't get you some commentary from some of the shorter attendees.
Julie's let the cat out of the bag: she's set up a blog for the girls. This makes us a total blogging household, which is kind of scary. At the same time, I've heard a number of comments about wanting to take a picture to go on the blog or wanting to write about something on the blog. It's a great motivation for them to see some of their own creative work come into being. Next thing you know they'll be podcasting...
Yesterday's East side blogger meetup was a particularly good meetup for me. I enjoy the Seattle meetup because it's a chance to meet bloggers that I don't normally read, but who are quite familiar with Julie. The east side meeting is definitely Microsoft heavy. The benefit is that lots of interesting people come to visit MIcrosoft, so there's a high likelihood of de-virtualizing relationships at the east side meetup. This happened a bit for me last night. I finally met jeanniecool from #joiito in person, something that we've been trying to do for quite some time now. Actually I think that the girls found that jeanniecool lived up to her nick last night. Liz Lawley and Buzz Bruggeman were both in town for the Microsoft search meetings, and stopped by. Liz spent a while talking with Julie, which I was very glad for. I'm happy that her circle of blogger friends is both expanding and de-virtualizing. Buzz was mobbed by people who were interested in ActiveWords, so I only got into a brief chat with him. Scoble and I did end up talking about the information overload problem, mostly from a technology point of view -- there were some fun ideas shooting around. It'll be a shame to miss his BloggerCon session. Dare stopped by and we discussed the ideas that he wrote about last night in his piece "Social Software is the Platform of the Future".
Kudos as always to Anita Rowland for her role in facilitating both the logistical and social aspects of the meetup. Double kudos to her husband Jack William Bell for taking my girls to the carousel along with R---.
My friend David Temkin over at Lazlo has an important announcement: The Lazlo platform is going to be offered under an open source license (the CPL). This is a really interesting development. People interested in building rich internet applications would do well to give this release a close look. David and I have been talking about this for quite some time now, and I"m glad that the time has come for this information to become public.
As Julie has already mentioned, tomorrow we'll be heading over to the Eastside blogger meetup. Perhaps Scoble and I can sit down and talk about Information Overload. I've been pondering this topic since he posted on his BloggerCon session of the same name. Philip Greenspun posted what is essentially the reverse opinion, that reading the news is of little benefit. It's an interesting question. I definitely tend towards keeping up and having lots of information pass through my brain. RSS Aggregators provide the machinery that allows lots of content to pass into my brain. Weblogs provide a source of good quality information. The combination is a treat for infovores.
There are many interesting discussions that one can have about using technology to increase the signal to noise ratio of one's personal RSS cloud. All of those conversations are predicated on the notion that higher quantities of higher quality information is good. But is that really true?
I've been watching the whole iPodder/podcasting thing with interest. On the one hand, the jump from text to rich media is obvious. On the other hand, the impact on information overload is tremendous. I can't watch a Channel9 video and be cutting through my RSS feeds at the same time. Even the audio turns out to be distracting for me, which means that podcasting isn't going to help much either. Audio and video take advantage of temporal relationships in the audio and video. You can only accelerate that a small amount before the communication is garbled. Try to compute the number of hours during a week that are potentially available for information grazing. Then add up the number of audio/video posts that you might want to consume and face reality. Podcasting (and it's obvious and imminent followon, video podcasting) are a way of providing on demand delivery of audio/video (just not controlled by big media). In some ways that's going to turn out to be pretty powerful. (I can imagine my ice skating channel coming to life if venue attendees are allowed to do DV recording and rebroadcast of events)
Hmm, that personal RSS cloud just became a personal media cloud. But it still won't be as efficient as text. And there's still the question of whether this is a good thing.
- AB-FOAF Export your address book to FOAF
- OnMyCommandCMshop Add more actions to your command (control-click) menu
- Adium The best (such as it is) multiprotocol IM client for the Mac. Jabber support is horrible
- Paparazzi A neat little utility for taking perfectly sized screenshots of web pages
- Download comment for Safari Store the url of a download in the Finder comments of the downloaded file
- Unicode Checker A useful tool for dealing with Unicode. Also makes itself available via the services menu
- Growl A system wide notification service with command line tools and Python bindings. Supported by Ecto, Adium.
- svnX A standalone installable subversion
- cscreen Set the screen resolution and refresh rate from the command line
- chatmaster Manage iChat and Adium archives
- AntiRSI A very nice app that forces you to take those RSI breaks
- Getting to hidden folders in open/save dialogs
- You need to know how to do this!
- Using iChat to send SMS's to a cell phone
- The advantage of doing this is that the SMS reply goes to the iChat window, not your e-mail mbox
- How to launch a GUI app as root
- If you must, you must
- Nicer separators for Safari Bookmarks
- I'm using Safari a bit more
- Rebuilding the Launch Services Database
- These sorts of hints remind me of Windows...
- How to solve Mail.app index problems Because Mail.app does hang/crash.
- Getting to the console from the login panel
- This is handy when troubleshooting your machine
- You can pipe the output of a shell command to "open -f" to get that output into TextEdit [via Macworld 10/2004 p. 87 ]
- Some of this type of stuff can be done with Quicksilver
- Docklet folders
- Put commonly used folders into the dock for easy access
- Turn on the Safari Debug Menu
- There are a few useful items in the Debug menu - like import/export of bookmarks
OSAF has an opening for a hot shot Python hacker to work in the services group. The services group is working on various kinds of infrastructure support for Chandler. One of the big projects in this group is the definition of the content models for the Personal Information Manager. This is an important task because the PIM schemas are a large part of the "API" that makes Chandler data available for use by Chandler modules (called parcels). We'd really like to hire someone with a lot of experience working on Pythonic API's. If you're interested, the posting describes how to apply.