December 03, 2002
Perl Advent Calendar

Here is a cool Advent Calendar for Perl.

So far we've opened three days and have received:

  1. URI::Find
  2. IO::AtomicFile
  3. DBD::SQLite
Posted by adam at 06:25 PM
November 28, 2002
Video Lectures
  • Structure and Interpretation of Computer Programs has been MIT's introductory pre-professional computer science subject since 1981. It emphasizes the role of computer languages as vehicles for expressing knowledge and it presents basic principles of abstraction and modularity, together with essential techniques for designing and implementing computer languages. This course has had a worldwide impact on computer science curricula over the past two decades.
  • Linear Algebra: Basic subject on matrix theory and linear algebra, emphasizing topics useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, similarity, and positive definite matrices. Applications to least-squares approximations, stability of differential equations, networks, Fourier transforms, and Markov processes.
  • Video Lecture Showcase: a site with a whole bunch of links to other online video lectures in lots of different subjects
Posted by adam at 10:58 AM
November 22, 2002
Web Services in Mac OS X

The Apple Developer Connection site has a good article on Web services frameworks in Mac OS X 10.2. It does a good job of defining web services and describing both XML-RPC and SOAP. Then it goes into explaining how to actually integrate web services into Mac OS X programs. Good stuff.

Posted by adam at 11:37 PM
November 21, 2002
Linkidy Link Link

kryogenix has a comment about links between other places and says:

"I remain unconvinced that we need yet another addition to the sprawling world of XML-based formats that are trying to make the semantic web happen."

(This is in response to Simon Willison's posting about wanting to have a way to indicate that two links are related besides just linking to both of them in a weblog post)

Well, I'm happy to report that we don't need another XML format, it already exists: XLink. People already have a name for this idea also, its called a Linkbase

Posted by adam at 08:38 PM
November 20, 2002
Lifestreams, Microsoft, and Aggregators

Every so often I go back and try to wrap my brain more tightly around the concept of Lifestreams.

We contend that managing one's own electronic world can be a frustrating task for most computer users, requiring too many separate applications, too many file transfers and format translations, the invention of too many pointless names and the construction of organizational hierarchies that too quickly become obsolete. What is needed is a metaphor and system for organizing the electronic ``bits of paper'' we all so easily collect, whether we create them ourselves or they come to us in the form of email, downloaded images, web pages, or scheduling reminders. Lifestreams is such a system.

Lifestreams uses a simple organizational metaphor, a time-ordered stream of documents, to replace conventional files and directories [3,4]. Stream filters and software agents are used to organize, locate, summarize and monitor incoming information. Lifestreams subsumes many separate desktop applications to accomplish the most common communication, scheduling, and search and retrieval tasks; yet its machine-independent, client-server architecture is open so that users can continue to use the document types, and viewers & editors they are accustomed to.

A lifestream is a time-ordered stream of documents that functions as a diary of your electronic life; every document you create is stored in your lifestream, as are the documents other people send you. The tail of your stream contains documents from the past, perhaps starting with your electronic birth certificate. Moving away from the tail and toward the present, your stream contains more recent documents such as papers in progress or the latest electronic mail you've received---other documents, such as pictures, correspondence, bills, movies, voice mail and software are stored in between. Moving beyond the present and into the future, the stream contains documents you will need: reminders, your calendar items, and to-do lists.

This idea seems right in so many ways, but we haven't gotten near making it a reality yet. Now Microsoft wants to get in on the action:

Engineers are working on software to load every photo you take, every letter you write - in fact your every memory and experience - into a surrogate brain that never forgets anything, New Scientist can reveal

It is part of a curious venture dubbed the MyLifeBits project, in which engineers at Microsoft's Media Presence lab in San Francisco are aiming to build multimedia databases that chronicle people's life events and make them searchable. "Imagine being able to run a Google-like search on your life," says Gordon Bell, one of the developers.

News Aggregators could get in on this also with a few properly placed advances in the tech.

  1. We need to snap out of the idea that aggregators are only for news, they can also be lists of the latest mp3s you've downloaded or orders placed on your e-store.
  2. I shouldn't have to go get feeds, feeds should come to me. When I launch my aggregator it should ping the feeds it is subscribed to telling them that it is listening. Then, when a feed generates something new it should nearly instantly tell my aggregator. Besides the effects of making aggregation a real-time task this also would greatly reduce bandwidth. You'd only be downloading the new item, not the whole feed, only when it was updated.
  3. Applications need to generate these feeds for events that take place, like receiving an IM or new mail in your inbox or a friend visiting your website.

This can all be accomplished with the existing technology, xml-rpc seems the logical choice for communication between applications (either web or local) and aggregators. Yea yea, I know I should get off my ass and do it myself but I can't make application authors implement it unless I stir up some interest so thats what I'm doing right now.

Posted by adam at 11:36 PM
I Want Your Text

GetContentSize is a cool utility that will tell you the percentage of a webpage that is text and the percentage that is markup. Info for this page:

Total page size: 40882 bytes (not including images, attached scripts or style sheets)
Text content: 10811 bytes
Text content percentage: 26.44 %

That means 73.66% of my page isn't text and thats not good. I think I might edit this program to also count the percentage that is urls because they provide vital information to a page. Maybe that will give a better representation of what's important and what's garbage

Posted by adam at 10:48 PM
When Good Interfaces Go Crufty

In Vernor Vinge’s sci-fi novel A fire upon the deep, he presents the idea of “software archeology”. Vinge’s future has software engineers spending large amounts of time digging through layers of decades-old code in a computer system — like layers of dirt and rubbish in real-world archeology — to find out how, or why, something works.

So far, in 2002, this problem isn’t so bad. We call such electronic garbage “cruft”, and promise to get rid of it someday. But it’s not really important right now, we tell ourselves, because computers keep getting faster, and we haven’t quite got to the point where single programs are too large for highly coordinated teams to understand.

But what if cruft makes its way into the human-computer interface? Then you have problems, because human brains aren’t getting noticably faster. (At least, not in the time period we’re concerned with here.) So the more cruft there is in an interface, the more difficult it will be to use.

Read the rest over at The Weblog of Matthew Thomas

Posted by adam at 10:31 PM
Recommended Reading

Mark Pilgrim is playing with automated recommended reading again. You can get your own recommendations here.

People I subscribed to this morning:

Posted by adam at 03:43 PM
November 19, 2002
No RSS Feed :( David McCusker, is now working for OSAF, which is cool. But his weblog doesn't have an RSS feed, which is 'not cool'.
Posted by adam at 10:26 PM
November 18, 2002
Cocoa Fun Stepwise has a good tutorial on building a Cocoa app using Project Builder and Interface Builder. The app is an HTML source editor. Part 1 teaches you how to start the application in Project Builder and build the basic editor while only having to edit about 5 lines of code. Part 2 shows how to add a preview feature that will open your document in a browser.
Posted by adam at 09:24 PM
November 17, 2002
XML On The Brain

I've been doing quite a bit of XML reading lately. First off is XML in a Nutshell (I only have the first edition, anyone know what's new in the 2nd edition/). Then I found the amazingly cool Annoted XML specification which I'm about 1/3rd through.

Once I make it through those two I'm going to try to grok this whole RDF thing. I might need to do a little reading up on URI's and other related things first.

Posted by adam at 11:30 AM
October 20, 2002
Advanced PHP Resources


HarryF on the SitePoint forums has compiled a fantastic list of Advanced PHP Resources, with links to sites covering object orientation, general application design, n-tier layering and using PHP with XML.

[from Simon Willison's Weblog]

I'm going to have to read this one carefully, I've learned how to write 'hello world' in tons of programming languages but I haven't delved deep enough into any of them to be really good and I think I want to do that with PHP.

Posted by adam at 03:28 PM