« March 2003 | Main | May 2003 »
April 30, 2003
Sprint Announces Bluetooth Phone
Until January, I'd been a long-time (over 5 years) Sprint customer. I switched to ATT because I wanted the Sony T68i phone, primarily because of its bluetooth capabilities. Overall, I've been pretty happy with it, but I liked the 1xRTT network better than I like the GPRS network. The speed was better and coverage seemed better. Yesterday, Sprint announced that they'll support the new T608 phone. I really like the T68i phone and ATT has been a reliable carrier, so I don't think I'll switch, but if Sprint had had this phone four months ago, I'd still be with Sprint.
9:10 PM | Comments () | Recommend This | Print This
Organizing Data: Whence Real Integration?
I was just answering an email and realized how far we are from real integration. There were two related emails. One with an attachment that I wanted to save to a folder. One of them turned into an appointment. Don't forget my reply. I also have two related URLs that I want to keep track of related to the emails. The emails are in a two email folders (received and sent), the attachment, now modified, is in a folder, and the URLs are in my bookmark list. I really want them all in one place. Furthermore I want managing them to be easy. Here's some workarounds:
- I can save the email messages as text to a folder and drag the URLs there as well. I can't attach that folder to the appointment, however, or store the appointment in the folder in any meaningful way.
- I could blog it all, but that seems like an unwieldy solution. And here again, there's no good way to tie it to the event.
Maybe the answer is something like David Gelernter's Lifestreams metaphor, but that seems like overkill. I liked hearing that in Chandler everything has a URL. Giving everything a name in a common namespace is the first and more important step to unification.
What I want is for Apple to realize that iLife should link the things in my life: appointments, email, documents, and URLs rather than my music, movies and pictures. I think Apple is in danger of focusing too much on the gee-whiz media stuff (witness their announcement of yesterday) and not enough on the stuff that will really make a difference in the lives of their customers. I like iTunes and iPhoto, but if they went away my life would go on. Not so with my email, appointments, files, and URLs.
5:19 PM | Comments () | Recommend This | Print This
The Hundred Year Language
From Patrick Logan's weblog, I found a pointer to an essay by Paul Graham called "The Hundred-Year Language." I don't know Paul well, but I have interacted with him on more than one occasion. A hundred-year language is one that people will still want to use in one-hundred years. Paul makes some very interesting points and, if you program, the essay is well worth the read---right to the end. Here's one quote I just can't resist repeating:
I don't predict the demise of object-oriented programming, by the way. Though I don't think it has much to offer good programmers, except in certain specialized domains, it is irresistible to large organizations. Object-oriented programming offers a sustainable way to write spaghetti code. It lets you accrete programs as a series of patches. Large organizations always tend to develop software this way, and I expect this to be as true in a hundred years as it is today.
The phrase "accrete programs as a series of patches" is so deliciously visual that it makes me smile.
8:04 AM | Comments () | Recommend This | Print This
April 29, 2003
Hydra and iStorm
Hydra caused quite a stir at ETCon last week. I thought it very helpful in getting a group to capture thoughts together. iStorm is a similarly positioned product. I looked into it and here's what I thought.
iStorm bills itself as "the worlds most innovative collaboration tool." iStorm is a collaborative editor like Hydra, but also comes with a drawing board and chat client. It can even understand LaTeX which could be really helpful for collaboratively doing math. Here's my one minute review:
- iStorm requires per-user licensing for more than two users. Collaboration takes place between like-licensed instances of the application. This would have made the kind of wild-fire experience that happened at ETCon impossible.
- The blackboard would be nice. iChat with Rendezvous seems to work just fine in most instances. LaTeX is handy if you need formulas.
- Unlike Hydra, iStorm allows only one person to edit the document at a time by means of a glowing ball that changes colors and acts like a semaphore. I think Hydra's free-for-all is much more interesting and more natural. In a conversation with a large group, people frequently step on each other.
Clay Shirky mentioned in his talk that he uses chats and wikis to help manage large conference calls. People use the chat to "get in line" for a turn to speak and do other administrative tasks. They can use the wiki to make notes on the agenda, and keep track of links, references, statistics, etc. Of course the problem there is that wikis don't allow real-time free-for-all editing like Hydra, so everyone can take notes in their own topic, but they can't take notes on the same topic (in the wiki technical sense). Combine these kinds of tools with the web for broadcasting slides and you've got a conferencing facility that is effective and relatively inexpensive.
11:29 PM | Comments () | Recommend This | Print This
Using Rendezvous with iChat and Hydra
I don't know how many OS X users there are in the class. If there's more than one, I'd encourage you to use Rendezvous to connect in class and make use of some tools to enhance your classroom experience.
- You can use iChat with Rendezvous to open up chat sessions with others in the class. I think this kind of back-channel communication can be helpful.
- Download and install Hydra, a Rendezvous enabled editor. You can use it to create a set of group notes. Once you use it, you'll be hooked.
11:06 PM | Comments () | Recommend This | Print This
Some Things to Know
Welcome to CS330. If you've made it here, you've found where I'll be posting occasional thoughts on the class. Feel free to take a few minutes to read the blog this is part of. Here are a few places of note:
- The course web site contains useful information including lecture notes, homework assignments, and policies. I encourage you to use it.
- Blackboard will contain grades.
- I've created a wiki for discussion, collaboration, and whatever else suits you. If you don't know anything about wikis, then here are some starting points.
- You'll probably want to get a copy of DrScheme for you computer. Once you download and install Dr. Scheme on your computer, it should ask you to choose a language when you run it for the first time. Make sure you set the language to "Essentials of Programming Languages (2nd ed.)." Ê
- You're going to need to know Scheme and the text no longer has chapters that introduce it. Fortunately, there are some handy online references.
11:00 PM | Comments () | Recommend This | Print This
April 28, 2003
Concepts of Programming Languages
Wednesday I start teaching a course for BYU called Concepts of Programming Languages. This is a course I designed 10 years ago when I first went to BYU and its still taught in much the same manner. The text, which is an excellent introduction to how programming languages work, is Essentials of Programming Languages. In many curriculums, this course is a survey course that simply becomes a "programming language of the week" sort fo thing. I try to avoid that. The primary concepts that the course tries to teach are:
- The interpreter architecture pattern
- How static structures (i.e. programs) give rise to dynamic behavior
The class uses Scheme (a dialect of Lisp) and the students build a series of interpreters for a variety of language features, including one that interprets and object-oriented language, and one that does type checking. The class calendar is online (updated automatically from my iCal, of course). There are copius class notes. In my class last semester I had quite a few students who had Macs, so I'm going to encourage collaborative note taking using Hydra. I am thinking of establishing a class Wiki as well to see what happens. I'll be blogging the course, but not to my homepage. I've set up a separate category on my blog, so if you're interested in following along, you'll have to visit that page or subscribe to that RSS feed separately.
5:26 PM | Comments () | Recommend This | Print This
April 26, 2003
Where Am I Going? Blog Events from iCal
Thursday while I was listening to Ben Hammersly's talk on the semantic something or other, I noticed that he had a box on his weblog that showed events he was planning to attend in the near future. I thought that was a good idea, so I put one on my weblog too. If you look to the right, you'll see a box labeled Upcoming Events that lists things I'm planning on going to in the next 90 days. I didn't really want to double enter this on my calendar and my blog, so I decided I'd link the box on my blog to the calendar I keep on my Powerbook. This is the story of how I did it.
You're probably aware, if you use iCal, that it stores its calendars in iCalendar format. What's more, it can display and create multiple calendars in a color coded way so that events can be conveniently categorized. My plan was pretty simple. I'd create a special calendar called Travel and put my travel related entries there. That would put them all in a single file called Travel.ics in iCalendar format. Then I'd parse the file and turn it into HTML. That would give me something to suck into my blog.
It turns out that there aren't any complete libraries for parsing iCalendar files in Perl, but there is a PHP application called PHP iCalendar that has a nice iCalendar parser. The application is designed to display iCalendar formatted calendars on a web site. One of the nice features is an RSS generator for calendars. Now, I've never written any PHP before, but I've written tens of thousands of lines of Perl, so I figured I'd be OK. Besides, it easier to learn a new langauge than to write a parser. :-)
My standard procedure for learning a new language is to just jump right in and start modifying some existing code to do what I want. The RSS code looked the closest, so I copied it to a file called events.php and got started. It turns out that it wasn't very close--by the time I was done, there wasn't much of the original file left. I wanted to display only the all day events for the next 90 days. I put things like airline departure times and hotel check-in info in my calendar as well and I didn't want those on my blog. I also wanted to link the event title to a blog entry describing it when one existed. The latter is not directly supported by iCal, so I store the link as a tagged entry in the Notes field like so:
link: http://www.windley.com/categories/speakingEngagements/2003/03/06.html#a478
The code accesses each of the all day events in the parsed calendar during the next ninety days in order. The parsed calendar breaks repeating events apart, so I had to collect them back together. Luckily, they're all on sequential days or it would be harder. The code also greps for any link: tags in the DESCRIPTION field (what the Notes become in the iCalendar file) and pulls the URL out. Finally it spits them all out in the HTML of my choice.
The PHP module is available on my local web server and I use a cron job (check out Cronnix for a nice GUI crontab tool) to copy the files over to where the PHP program can access it. The results are available for the price of a GET. This chunk of code pulls the resulting HTML into my Radio template
<%
local(s_str=string.urlEncode("XML"));
local(url="http://panther.local/phpicalendar/rss/events.php?cal=Travel");
local(s= tcp.httpReadUrl(url));
return(s)
%>
A few notes on the implementation:
- A more general events module would grab all-day events as an option, not just the only way its done. I should also handle repeating events in a more general way. My code, for example, will make a hash of overlapping repeating events. Luckily, I don't plan to travel to more than one place at a time.
- The file should probably spit out RSS or some other XML variant and then use an XSLT service to turn it into HTML so that its useful for more than just feeding my blog.
- This is my first PHP code, so if you promise not to make fun of me, I'll share it with you. If you make any improvements, please let me know.
- I wish the iCalendar format was an XML-based standard. That would have made this job easier.
XML or not, this is a great example of how having data freely available in a standard format frees it from the tyranny of the application.
6:34 PM | Comments () | Recommend This | Print This
April 25, 2003
What's in a Name: Social Software
Dave Winer argues that social software is hype. "Take something that exists, give it a fancy new name, and then blast at reporters and analysts about it." I have some sympathy for that position, I used to argue it myself. In some ways, Alan Kay made a similar argument in his "nothing new under the Sun" demonstrations yesterday. Maybe I'm just getting soft as I age, but I've come to rethink my position somewhat. Here's why...
In the 80's Object Oriented Programming was the hype that got my dander up. After all, it was nothing more than an effective linking of closures and sub-typing. But it was something more. The technology existed and the ideas existed in the minds of a few visionaries. What didn't exist were frameworks, libraries, books, and, most importantly, a broad-based understanding of what OOP was, how it could be used, and why it was beneficial. When I say "broad-based" I'm including random IT workers in various places, but also technical managers and others who are making business decisions.
A good example is the State of Utah. There are 900 IT workers. For the most part they're bright and hardworking. But many of them, including their managers, have also been working for the same organization for a long time, doing the jobs that need to be done, without the advantages of flitting off to conferences on the latest trends a couple of times per year. I doubt you could find many of them that wouldn't embrace OOP at this point. The hype, if you will, has sunk in and permeated even the farthest corner. Application server technology is just starting to seep in. I received an email from a Utah State IT worker just last week asking for my advice on some books to help him understand the difference between a web server and application server and how to use them effectively. XML is generating lots of heat, but not much fire. Web services aren't even on the radar screen yet and the only reason that they're being experimented with in a few forward looking places is because of the hype that surrounds them right now.
So, when I heard the term "social software" used as a way to categorize blogs, wikis, email, mailing lists, groupware, and what have you, I saw it for what it is. Its not some crass marketing gimmick, although it will certainly be used for that. Rather its the best way we have for helping an industry come to grips with trends that are unmistakable. We give it a name and start having conferences, writing articles, and arguing about it in blogs. :-) This gives people who haven't paid any attention yet a major clue that there's something worth looking at here. Until they get that clue, they're too busy with other things. To understand your privileged position in being able to see this struggle perched above the fray, spend some time in a large IT organization and see how difficult it is to get new ideas to take root there. I think you'd gain a new appreciation for the immensity of the task and the role that the "hype engine" plays in educating people and getting them to move.
9:15 AM | Comments () | Recommend This | Print This
April 24, 2003
Done at ETCon
I'm leaving the ETCon a day early. A good friend is graduating from college tomorrow and I need to be home for that. Its a shame all the nanotech stuff was scheduled for Friday. I really wanted to hear more about that. One of the great pleasures of the conference was meeting Doug Kaye in person and being able to spend some time getting to know him better.
6:33 PM | Comments () | Recommend This | Print This
Hertzfeld and Kapor on Chandler
Andy Hertzfeld (of Mac fame) and Mitch Kapor (of Lotus fame) are speaking about Chandler, an open source productivity tool that Kapor is funding out of his own pocket. The organization Mitch created to build it is the Open Source Applications Foundation. Why Chandler?
- email is the most important productivity tool
- there are gaps between what email is and what users want.
Mitch describes it as Lotus agenda meets the Internet. A rich ability to associate all kinds of thing and people in natural ways. Here are some features:
- Power email - managing large volumes of email
- Sharing and collaboration - share anything with anyone including browsing other people's repositories. Publish and subscribe to let you receive changes automatically.
Chandler is a platform (seems to be the mantra here). The UI is scriptable with a graphical font-end for doing the scripting. Andy says "the hard thing about being a programmer is keeping track of lots of abstract things." I disagree. The hard part of programming is creating static documents (whether textual or graphical) that result in correct dynamic interactions. This static to dynamic barrier is something most people don't cross with ease.
Beyond scripting, the program is designed to be extended in many different ways. All of the subsystems, including the UI, the object database, networking, sharing, and security, will be usable independent of the application.
The application uses wxWindows for cross-platform development and Python as a development language. There is a persistent object database for storage. The architecture allows for multiple front ends: GUI, PDA, cellphones, Web, etc.
I enjoyed the tour around the site and seeing how they've set it up for managing the open source development. They are using a WiKi.
OK, here is the coolest thing I've heard so far: every item in Chandler has a URL. This is totally the right thing. I want all of my items to have a unique address that i can reference. Its interesting that even though naming is very fundamental to Computer Science, we build do many applications that don't give names to things.
Chandler is available now as a 0.1 release. The early releases are not feature complete, although what's there now is interesting to play with. Mitch thinks that by the end of the year, 0.5 will be out and the most extreme early adopters will be able to start using it.
5:30 PM | Comments () | Recommend This | Print This
The Internet Bookmobile and Copyright Protection
One of the talks I didn't get to go to, but wanted to was on the Internet Bookmobile. This is a real vehicle (see the pictures on the link) that drives around printing books on demand. The books are all in the public domain (which lots of classics are). The bookmobile doesn't keep them on a harddrive, it downloads them as needed. The printer in the bookmobile can print and bind a book in two minutes, producing one every 30 seconds (pipelined). Cost is about $1. We could probably use one of these in Utah. This is a great example of society benefiting from material in the public domain after the author has enjoyed their monopoly. Congress is keep lots of good material out of the public domain by continuing to push out the copyright period everytime it comes up for a vote. Your grandchildren will suffer so that Sonny Bono's estate can accumulate more wealth. Great societal tradeoff, huh?
4:27 PM | Comments () | Recommend This | Print This
WarblogsWarblogging
We're talking, via phone, to Stu Hughes of the BBC from the UK. He created a blog before he left for Iraq as a way for him to communicate his experience with friends and family. He was in a land mine accident and now is recovering from surgery where part of his leg and his foot were amputated. . His blog talks about the experience and his steps (literally) to recovery. Xeni Jardin is interviewing him and doing an excellent job. Very touching story, but interesting from the standpoint of Stu using his blog to reach out to others, explore his new situation, and, I suspect, get a little therapy. He says something that is very true: you write for yourself and if someone else gets something out of it, then that's good too. You have to have that perspective if you want to keep blogging. Sometimes there's not much feedback.
Doc Searles commented about the community surrounding warblogs and the fact that there are two or three stars who are at the center of that community. I think that's an interesting idea. These people seem to have to exist in these communities. Doc says that he's chosen not to be political in his blog. I agree. I have tried to stay away from that as well. Part of my reason is that to do it justice, I'd have to spend much more time at the political stuff than I'm willing to do right now. Otherwise, you say some stupid things and you just get into trouble---people get very passionate about these things.
Stu is discussing being scared when he realized his blog was getting a lot of attention. He was scared because he hadn't thought about how public it was and wasn't sure he'd been as careful as he should have with what he said and scared that when his employer found out, they'd ask him to shut it down as he hasn't gotten permission first since he saw it as a personal way to communicate with his family.
3:26 PM | Comments () | Recommend This | Print This
Ben Hammersley on Semantic Urhmmmmm
RSS is extensible. Ben is showing RSS that contains contributor information (using Friend of a Friend data inside Dublin Core contributor tags), trackback data, and annotation references. All of this is added automatically by the system.
ThreadsML is based on RSS 1.0. It uses an Apache module called mod_threads and Dublin Core. Using ThreadsML, conversation happening in blogs, mailing lists, and IRC could all be merged together to form a threaded stream of the conversation.
The major problem with this is subject.
One answer might be ENT or Easy News Topics for RSS 2.0. ENT allows ontologies to be created on the fly. This takes away the cultural specificity and allows each person to define and publish their own classification systems. (Here are notes about a breakfast conversation on ontologies that I didn't take part in.)
To make this useful, there needs to be a way to link ontologies. There's a big question about whether this will scale or now. One test site called e-Kcollectors has five sites feeding ontologies and quickly reached 50 top levels. So we could see so many ontologies and categories that the diminishing utility is rapidly reached.
3:10 PM |
Comments () |
Recommend This |
Print This
Clay defines "social software" as software that supports group interaction. This is a radical concept given that most of the technology patterns prior to the Internet were point to point or broadcast. The best group interaction technology was the kitchen table. Clay's premise this morning is that social software is its own worst enemy.
W. R. Bion did research with groups of neurotics. He discovered that, as a group, the neurotics were taking actions that defeated efforts to help them. They were not acting individually, but there was not clear group consensus. Bion concluded that humans are fundamentally individuals and fundamentally parts of groups. Kind of like the wave-particle dynamic for electrons. Clay gives an example:
You're at a party and you're bored, but you don't leave. This is different than from a book store, etc. if you get bored -- you usually leave. That social stickiness is what Bion is speaking of. However, when one person leaves then everyone leaves. This triggering event (Gladwell's tipping point) pushes group over to action "Paradox of groups"
Bion identified some specific patterns of group interaction:
Group rules like Robert's Rules of Order protect groups from falling into these patterns and thus protect the group from itself. Clay gives an example of BBS systems in the 1970's that started out as "open access" and "freedom of speech" were "overrun" by teenage boys who wanted to talk about bathroom jokes, sex, etc. The group didn't have enough structure to fend off these "attacks" on the group. This was a social issue, not a technological issue. "An attack from within is the pattern that matters."
Clay just said "they formed a government because they needed a government." I think this is an important point. Groups of all sizes need not only rules, but meta-rules (like a constitution). The probability that any unmoderated group will get into a flame war over whether to have a moderator approaches one as time increases. Small groups can engage in patterns of interaction that large groups can't. We are now getting interesting ways (RSS, chat, etc) to experiment with this, and ways to do the experiments quickly and cheaply. When you lower cost, interesting new things happen.
We're seeing an explosion of social software. Clay asks "why now?"
There are some things that need to be understood to help make groups work:
There are some design features:
Overall, regardless of what the Register article claims, Clay is a forward thinking guy and his talk was thought provoking.
Note on how this blog entry was created. A lot of folks here have started using a Rendezvous enabled editor called Hydra to do collaborative note taking. I've been logged into the feed, making some contributions, and freely using the group notes to remind me of workings, organization, and other things that happened during the talk, as it happened and I blogged it. Actually very cool.
12:11 PM |
Comments () |
Recommend This |
Print This
Of course, standards like RSS and Web services are important to making this work. Kevin sees Central as the glue that can tie these things together. I call these kind of applications "type-2" Web services-based applications. Type-1 Web services applications are built using application networks like those being pioneered by Web services brokers like Grand Central. Type-2 Web services applications are those built using rich internet applications like Central. In that sense, Central is a Type-2 Web services application framework.
11:15 AM |
Comments () |
Recommend This |
Print This
To prove his point, Alan is going through four or five examples (all with live demos and video which is pretty cool) of really neat, revolutionary computer science breakthrough including Ivan Sutherland's Sketchpad and McCarthy's LISP 1.5 implementation for the PDP-1. He is now showing what is likely the first collaborative software system: Engelbart's NLS. Built in 1968, it had live full motion video conferencing and concurrent document editing with shared cursors.
Alan shows something called "end user computer literacy" which is a graphical LOGO-like environment where users draw things like cars and steering wheels and then connect them together using scripts they build from property panels. It doesn't sound dearly as impressive as it was to see. The goal is to get kids building programs and using it to do experiments. One of the examples is using the system to explore the notion of a gravitational acceleration constant.
The base system is called Squeak. Squeak is the programming language and the OS. Its a grand total of 2.8M of binaries. One interesting thing he showed was that his presentation was actually a sequence of desktops so that each slide was a fully functional view. This made for some pretty cool demos.
10:14 AM |
Comments () |
Recommend This |
Print This
Interested in reading other voices about ETCon? Here's a Wiki Directory of ETCon Blogs.
8:35 PM |
Comments () |
Recommend This |
Print This
Ignoring XML serialization, RDF is just a directed graph. The MUD bot allows you to tag locations with geodata. I think the idea is to build a virtual, RDF based map of a real place. Boy! I don't think you have to use Jabber since the system is based on GET and POST, any http enabled client should do. There's some reference here to something Hofstadter wrote in Godel, Escher, Bach. I'll have to go look it up. An aside: if you've never read GEB, buy it now and read it.
Possible uses:
The system uses OWL (web ontology language) to create taxonomic descriptions, properties, and logical constraints on the spatial model. The model is created us a similar manner by having a "conversation" using Jabber with an ontology bot.
You can use the RDF graph to do route finding traversal. OWL allows psychological factors to be encapsulated in the logical inference. The slide shows an SVG map of the London subway system that is inferred from the semantic model of London. With historical data, that is version control, you could flip back and forth in time inside the virtual world.
This would have some interesting uses in eGovernment and GIS. These people and the Earthviewer and OpenGIS people need to get together. Being able to overlay this data on Earthviewer would be cool. Even cooler would be to use Earthviewer as the interface to this for creating the data.
5:58 PM |
Comments () |
Recommend This |
Print This
Maciej Cegiowski from the National Institute for Technology and Liberal Education is talking about P2P semantic search engines. The Memex is an idea that Vannevar Bush wrote about in 1945 to catalogue and organize information. Maciej is speaking on semantic indexing.
Maciej claims that its possible to infer semantic relationships from document content. He uses a case study of Steven Johnson (author of the book Emergence). Steve had 1146 paragraph clippings from 15 books arrange in flat-file text. He shows a search on "photosynthesis" which returns the traditional keywork matches but also entries that talk about "chloroplasts" and "symbiosis." It works on the principal that related documents share words.
The most well-known algorithm, called LSI, is O(n3). Another method is called contextual network graphing.
Peer-to-peer search, which seems something of a misnomer to me searches multiple connections in parallel and then interleaves the results. The project uses contextual network graphs to link articles. Maciej envisions a search API that would allow users to plug various search engines into their own aggregator (think RSS, but RSS doesn't quite cut it for this app).
Semantic searching and document linking is popular area. When I was CIO, I talked to a lot of folks who had a better way to search. I talked to some folks, Steve Nieker and Martin Remy, at lunch who are from ThinkTank23 who do searching. Homeland security has pushed this topic to the fore, but large organizations have always had the problem of finding what they have.
3:55 PM |
Comments () |
Recommend This |
Print This
Here's the editorial filters that Tim uses:
Here are some things that are hitting Tim's radar:
2:43 PM |
Comments () |
Recommend This |
Print This
His first lesson is "the whole is more than the sum of its parts."
Eric spoke for a while about how Ants learn paths to food sources via pheromones and even find the shortest part in a robust way because pheromones evaporate. He's now showing how that can be used to solve the traveling salesman problem. This is biologically inspired since it makes several important departures from true ant behavior. The solution method compares well to other optimization techniques. I found a paper by Dorigo and Gambardella on this topic. Its being commercially applied by companies like Unilever.
The second lesson is "simple rules rule." Eric is describing how ants create bucket brigades organized by size with larger, more efficient ants closer to the nest. Simulation shows that this is the optimal way to organize labor. CVS Pharmacies was able to apply this rule to their distribution centers and saw a 34% increase in productivity.
The third lesson is "no one needs to be in control." He uses the example of collective transport where ants collectively try to carry something too large for any single one. They all push in random directions and make no progress until by chance more push in one direction and get them all going in a single direction. Another example is nest contruction in wasps and termites. He built a model based on a simple rule of brcks being deposited based on some stimulation in the environment. The only form of global communication is the structure itself.
The fourth lesson is "size matters." In small colonies, workers exhibit polyvalence, meaning all workers do all tasks. In larger colonies, specialization occurs. This is true, of course, in human organizations as well. Some organizations don't practice it well and that hurts their efficiency in significant ways. The State IT organization comes to mind.
12:55 PM |
Comments () |
Recommend This |
Print This
Clay Shirky on Social Structure in Social Software
Clay Shirky is giving the final talk of the morning. Clay was the subject of some controversy during the conference caused by this article in the Register. Tim O'Reilly bit back saying He got a complaint from a speaker who didn't get included, and made that complaint the basis for a rant. He didn't talk to anyone at O'Reilly. He didn't make any effort to get background or hear the other side. He wrote a flame, not a story. I told Tim that I'm not surprised at all. Anyway, here's what he said...
Kevin Lynch on Central, A Type-2 Web Services Application Framework
Kevin Lynch from Macromedia is talking about an upcoming macromedia product called Central (whitepaper in PDF). Central is an example of some of the rich internet applications that people are developing. Apple's Sherlock is another example. One way to think of Central is "internet as desktop" but done more much "right" than Microsoft's attempt to just turn the desktop into a browser. Central allows users to link chunks of data from various sources and tie Internet-based applications together. The following concepts are important to Central:
Alan Kay: The Computer Revolution Hasn't Happened Yet
The keynote for this morning is Alan Kay and is entitled "Daddy, are we there yet?" Alan is the inventor of SmallTalk, among other things and he has utah ties, getting his PhD from the Univ. of Utah in 1969. His primary complaint is that the last 20 years have been pretty darn boring because we're spending our time making better buggy whips in the form of better spreadsheets, better ways to write memos, etc. Alan quotes from a paper written in 1963 called "Man-Computer Symbiosis:" In not too many years, human being and computing machined will be coupled together very tightly and the resulting partnership will think as no human brain has ever thought before. he claims that this hasn't happened in large part yet, although I'd argue that networked computing has allowed some of us have made some progress in that direction.
April 23, 2003
ETCon Blogs
Semantic Mapping
Jo Walsh is talking about a semantic mapping model for geospatial information called spacewebspace. spacewebspace is a MUD world done using RDF in Jabber (I think). She's talking softly and quickly and its pretty far out there. This Friend of a Friend project is tied in somehow. Steve Fulling would love her slides---they're all in lowercase.
Building the Memex
The O'Reilly Radar
Tim starts off with a well-known quote from William Gibson: "The future is here, its just not evenly distributed yet." This leads to his "big hairy, audacious goal (otherwise known as a mission statement: Changing the world by capturing the knowledge of innovators. One of his key strategies for doing this is "leveraging alpha geeks."
Eric Bonabeau on Biological Computing
Eric Bonabeau is Chairman and Chief Scientific Officer at Icosystem. He apparently used to work for Microsoft Research. He's talking about social insects and what studying them can teach computer science. The chief question is "how do we shape emergence?" Less succinctly, "how do we define individual behavior and interactions to produce desired emergent patterns?"
ETechCon Photos
I have started an album of my pictures from the Emerging Technology Conference. Feel free to take and use them.
11:43 AM | Comments () | Recommend This | Print This
DRM Panel
Dan Gillmor is moderating a panel on DRM. First up is Joe Kraus. Joe used to be at Excite back in the day. He is best remembered, by me at least, for an interview with Morley Saffer from 60 Minutes where he said "this is not your father's company." He was right; my father's company lasted more than 3 years. :-) He's now a lobbyist on digital rights in Washington and is quite well informed. His organization is DigitalConsumer.org. His message is one I've said many times: Silicon Valley has to wake up and realize that politics is central to their business. Hollywood and the recording industry understand this very well. Technical companies typically don't.
Wendy Seltzer is an attorney with the EFF. She says that DRM is not digital rights management, but digital restrictions management since DRM isn't about rights, its about restrictions. Of course, rights and restrictions are just two sides of the same coin. She describes copyright in layers. There's a layer of copyright law that has certain rights and restrictions. Companies layer technology on top of that to try and enforce the law and to take away some of the rights of consumers that are granted in copyright law. DMCA is a layer on top of that that restricts technologists and consumers from tampering with that technology. In that light DMCA is not about copyrights, but about restricting technology.
Bunnie Huang is a former MIT student who figured out how to hack the XBox. The interesting point here is that DMCA doesn't attack this hack on the basis that Bunnie stole intellectual property, but on the basis of whether he has the right to run something on Microsoft's hardware, which he bought and paid for, other than Microsoft's OS. namely he put Linux on the XBox.
Lastly is Cory Doctorow, from the EFF. He mentions Napster as the largest collection of human creativity ever. What's more it was built in a matter of months without any central command and control and for very little money. He compares it to a library and the destruction of Napster was a virtual burning of the library. In the wake of Napster, more libraries sprung up in its place. The problem with Napster wasn't that it threatened the the recording industry. New technologies have always displaced existing distribution mechanisms. The problem is that we haven't figured out how to compensate artists in the new system. DRM takes a different approach, asking the question "How can we burn the library so that we never have to burn it again."
11:24 AM | Comments () | Recommend This | Print This
Howard Rheingold
This morning's keynote presentation is Howard Rheingold on "Technology Innovation and Collective Action." Howard is the author of many books. The book which really brought him to the attention of geeks was The Virtual Community about his experiences in the Well. The latest is a book that has had some popularity called Smart Mobs. I picked up a copy yesterday but haven't had a chance to start it.
Howard's message this morning is "You can create tools that amplify collective action: innovate our way out of the enclosures growing around us." His theme is collective action. He contrasts this with collectivism. Collective action is people voluntarily working together to create some common good and is the basis of civilization.
Howard mentions the use of social software and mobile technology in politics. He claims that technology played a major roll in turning around the recent electioins in Korea and in monitoring elections in Kenya. I would agree and take it beyond mere politics to the realm of eGovernment. I think that the transparency engendered by eGovernment can play a significant role in changing government and driving appropriate social behavior.
He has an interesting take on RIAA and DRM. He notes the change that took place with the PC wherein consumers of computing services became users of computing services. The result of DRM would be to turn us back into mere consumers and only people who worked at certain places would be allowed to be users.
Howard tells the story of having an iPAQ that was enabled to read bar codes. He pointed it at a box of prunes and the UPC was linked to information about the company, product, etc. Each of these was linked to a Google search. The top item in the search on the company that produced the prunes as a Supreme Court decision about them and their labor practices. His point is that every thing has a story. Howard asks the question "who will be allowed to read and write these stories?"
9:49 AM | Comments () | Recommend This | Print This
April 22, 2003
Biological Models of Computing and Self-Reconfiguring Robots
I'm attending the Biological Models of Computing session tonight. John Scott is the moderator. When I was at the University of Idaho, I was in a weekly seminar with two other CS faculty members and two faculty members from the Biology department where we read books and papers to explore this topic. I've been out of it for a long time, but it sounded like an interesting way to spend an evening.
We just played a game that shows emergent behavior. In the game, everyone picks two people at random and identifies one as the aggressor and one as the defender and when the moderator says "go" you try to position yourself so that you get behind your defender from the point of view of the aggressor. Then you make a simple change where you are the defender and try to position yourself between the aggressor and your other pick. Two very different kinds of behavior emerge. I won't say how it turns out so as to not ruin the game for you. Try it. The behavior is predictable if you've seen the game before, but not easy to predict without empirical data.
John works for Icosystem. The question of the day, because of the background of Icosystem is "what coherent behavior emerges from lots of independent actors each following their own set of rules. There are many other "biology inspired" computing models (viz. neural nets, genetic algorithms).
The USC CONRO project was mentioned in passing, so I looked it up. Very cool, self-reconfiguring robots. Check out the hardware prototypes and the movies on the software hormones page. The concept appears to be similar to what Rodney Brooks has been talking about, but in a cellular construction. These things are like Legos on steroids. Imagine being able to create 1000s of these kinds of things with self-contained power and good sensory equipment on each one. Who couldn't love playing with these?
8:28 PM | Comments () | Recommend This | Print This
Texts for My Enterprise Computing Class
I've selected the following texts for my CS426 class on Enterprise Computing at BYU for next Fall:
- MySQL and JSP Web Applications: Data-Driven Programming Using Tomcat and MySQL by James Turner
- Enterprise Java Beans (3rd Edition) by Richard Monson-Haefel
- Java and SOAP by Robert Englander
As I've mentioned before, I'm anxious to change the format a little and move a little more about Web services into the content and that will require removing some of the content we talk about now like CGI.
5:19 PM | Comments () | Recommend This | Print This
Office as a Web Service Platform
Charles Maxon from Office Zealot is speaking on using Office 2003, the XMLized version formerly known as Office 11, with Amazon Web services (AWS).Charles claims that Office 2003 solves a number of issues that have kept developers from viewing it as a platform:
- Distribution - Web services solve previous distribution difficulties
- Security - Security issues have been solved. Really...we promise!!!
- Captive data - XML make the data fungible. Its not trapped in proprietary formats.
- Sophistication perception - XML and Web services are cooler to work on that macros.
Charles showed an example of giving Excel the URL of the AWS service for a search and an XML Schema and then getting a custom view of the data. Pretty simple to do and let's you work with the data using charting, sorting, pivot tables, etc. The data can be published from the Excel document to a web share for use by others.
He also demoed the research and reference library feature that allows AWS data to be brought into the Word task pane and then easily included in a Word document. The task pane essentially becomes a web browser, but its being driven by XML and formatted using XSL. This is not default behavior, but something that Charles wrote to include Amazon functionality into Word.
SmartDocs takes the task pane functionality even further allowing developers to create context sensitive controls and content that uses and modifies the XML in the Office document. The coding is done using a COM (.dll) add-in that is based on Smart Tags. The manifest contains this code, XSL stylesheets, Schemas, and so on. Charles demonstrated this using a task pane that had been customized for creating consulting services proposals.
Regardless of how its used with Amazon, I believe that this kind of functionality, built-into a program that almost all companies have already decided to buy for their employees represents a big opportunity for enterprises to roll-out Web services in ways that are inexpensive and affect the bottom-line. For example, one could easily imagine a travel application that has been built-in Word and customized for a particular company. The travel application grabs relevant data from company and travel agent Web services but looks like a Word document to the user. Publishing to the company's travel web share would then submit it. Of course, all they'd see is the XML-delimited data and they could suck that into whatever legacy application they use to manage travel now. After the trip, the user would use a smart expense report document that would grab the application to fill-in a lot of the data. Additionally, the expense report could use other services from the company's Web services to ensure that expense report rules are followed. Again, publishing to the travel web share would file it. That's one small application out of hundreds or thousands of small enterprise applications that could be built. Microsoft obviously understands the idea of platforms being more valuable than applications.
3:52 PM | Comments () | Recommend This | Print This
AWS Features and APIs
Jeff Barr is the Amazon Web Services (AWS) evangelist. His presentation on AWS is online. Simplest Shop is an example of using AWS to create an alternative shopping experience for Amazon products. The site uses a comparison shopping model in contrast to the standard product view from Amazon. The site is pretty impressive when you think that the guts is all Amazon. Another demo site is the Amazon Lite site. Notice the browse mode on the left-hand side and the history box on the right.
Some Amazon information that needs to be understood:
- ASIN - Amazon Standard Identification Number. This is the basic key to each product on Amazon.
- Browse Node - Collections of items. ASINs can be in multiple browse nodes.
Amazon, as has been widely noted, has stayed out of the REST vs. SOAP debate by making their site compatible with both methodologies. I've used the site in a RESTian way and apparently so have a lot of others. Amazon handles more REST-type requests than SOAP-type requests. This probably shouldn't be surprising since if all you want is a simple "give me a listing and let me reformat it" kind of request, grabbing the XML from a search and using the built-in XSLT engine to format it is dead-simple. Even so, the Amazon Lite demo site is done in a RESTian fashion, showing that REST doesn't have to equate to "simple."
Greek Landscapes is another example of a RESTian use of Amazon. The site is all XSLT stylesheets and HTML. Click on a book link and note that the URL is Amazon, but the formatting is for Greek Landscapes.
Jeff describes three types of architectures for using AWS:
- Static architecture that uses only HTML and XSLT stylesheets. This is relatively easy to do and doesn't require any kind of sophisticated hosting.
- Dynamic architecture that uses server side code and a SOAP or XML interface. DevManagers.com is an example of this kind of site that is built using PHP.
- Pseudo-static architecture where you dynamically grab data on a regular schedule and create static pages from it for use by customers. ePinions.com is probably doing this. This kind of architecture scales well for large loads. Of course, data like availability won't be up-to-date in this model.
Jeff is talking about caching. Obviously, Amazon would prefer that users cache the data rather than hitting Amazon's servers every time. An interesting point: this is pretty easy to do in REST mode since the infrastructure of the Internet can already to this and there's lots of proxy code for HTTP already written and available for use.
Here is a tool for exploring the merchandising API. It doesn't work very well in Safari or Mozilla (i.e. its IE specific). Even so, the tool looks like a useful way to explore what kind of results you can get back and even play with the XSL transformation.
The Merchandising API allows a developer to get access to data about the products on Amazon in a variety of ways. There are two major modes: light and heavy. Light is more useful for simple indexes. Heavy is for creating fully functional product sites. I asked about URL longevity. No real answer except general agreement that stable URLs for things like images is "a good thing." The Merchandising API supports the "find" and "discover" legs of the Amazon "find, discover, buy" triangle.
The Shopping API provides the "buy" leg of the triangle by allowing users to add things to their shopping cart. The easiest way to do this, of course, is with a simple link to Amazon. This can simply take people to a page on Amazon, give them a "buy box" or even push the item right into the shopping cart. The more interesting AWS component, however, is called "remote shopping carts." The NBA Store is an example of a site that uses a remote shopping cart. The remote shopping cart creates a hidden cart on Amazon and then transfers that into the users actual Amazon cart and they're transfered into the order pipeline. A new feature announced today is that the order pipeline can be branded. Try it on the NBA Store. You'll see the NBA co-branding with Amazon throughout the order pipeline.
One of the things you've probably noticed when you use Amazon is that it now tells you that there are used items available when you search for something. Amazon does this by allowing other people to sell their stuff using Amazon's platform. The Seller API allows this to be managed through AWS. There are actually three different ways that this works: Marketplace is for Amazon products, zShops is for non-Amazon products, and Auction is for, well, auctions. The Seller API is batch oriented.
There are some external toolsets for using AWS. Rael Dornfest the "hacks" editor for Oreilly and he passed out an upcoming "confidential draft" of an "Amazon Hacks" book. Paul Bausch is the author of the book. Chapter 6 of that book will cover AWS. Here are some other toolsets:
- amazon.pl is a PERL library for using AWS from CGI scripts. Its not free ($99).
- Amazon Products Feed is a free chunk of perl code for putting an amazon products feed on your website.
- AquaNuke is a PHP-Nuke module.
More demo sites:
- Saturday Night Live People uses AWS to create a vertical niche site around Saturday Night Live and drive sales of books, DVDs and other merchandise related to the cast and guest hosts.
- Here are three power tool sites: Shop for Power Tools, NE Sales, and Tool Realm. Three different takes on the same product line that all use Amazon as their platform.
10:34 AM | Comments () | Recommend This | Print This
Amazon
Some facts about Amazon:
- 31 million people bought something on Amazon last year
- 21% of the transactions on Amazon are merchants other than Amazon
- The Amazon Web services API allows developers who are not Amazon employees to use the platform.
- Amazon has spent about $900 million on technology.
- Associates program is second most successful marketing program. There are 900,000 associates in the program (I represent two of those IDs).
The Amazon Web services platform comprises three APIs:
- Selling API
- Merchandising API
- Ordering API
For this to be more than just an interesting playground for geeks, Amazon has to provide an economic model that works for other business. That's the only way that they can use outside development effort to leverage their technology investment and encourage 3rd party innovation.
Amazon got into this through their "Amazon Recommends" program that they made available to associates. They found that many people were screen scraping the HTML and decided to just send them XML before they converted it to HTML. The associates program already had Amazon thinking that working with partners was a good way to do business, so Web services is just a way to enable that. I think its interesting to note that the desire to cooperate came first. If the associates program had fizzled, Amazon wouldn't have embraced Web services easily.
The key thing for Amazon goes beyond merely cooperating with partners, however. Amazon is the 800 pound gorilla, so what they're creating is a platform instead of an application. Tim Oreilly likes to say "a platform strategy beats an application strategy everytime."
9:52 AM | Comments () | Recommend This | Print This
Conference Start
One of the real treats of these OReilly conferences is getting to meet so many of the people I read everyday. This morning at breakfast, I was at a table with Glenn Fleishman, Tim Pozar, Cory Doctorow, Rael Dornfest, and Doug Kaye. I'm sitting in the Amazon workshop right now. From the schedule, it sounds like it will be an interesting day.
9:41 AM | Comments () | Recommend This | Print This
RSS for eGovernment
The State of Utah's Enterprise Development Group (eDG) has recently been working on RSS applications in Government. Ray Matthews and others at the Utah State Library has been educating people from all over on RSS. Its great to see some of it sticking in house. I think RSS has great applications in eGovernment. Press releases are an obvious application, but other applications include event notification for all kinds of things, but public meeting notices would be a great first start. Another example: I'd like to see the CommuterLink data available via RSS. What about court decisions? Someone ought to start a catalogue of all the things that you might want to do with RSS and eGovernment. I'd bet the list is long and that most of the applications are not all that expensive to implement.
9:06 AM | Comments () | Recommend This | Print This
April 21, 2003
Refactoring: Emerald Lake to Aspen Grove
Tim Bray is talking about refactoring, the process of rewriting code. Tim makes the point that it seems extremely painful to rewrite something that's more or less working but that it isn't as bad as it seems, having been through it once before. My personal experience leads me to agree.
When I was at iMALL, we built a multi-million dollar eCommerce system that allowed small merchants to set up a web-based storefront online. The system was code-named "Emerald Lake" or EL. We planned and implemented for months. We spent a lot of money. When we were done, we were severely disappointed. Performance wasn't good and there were some nasty problems with transactions that were hell to track down.
We almost immediately started a complete refactoring of the code that was code-named "Aspen Grove." Aspen Grove was completed, thanks in large part to our earlier experience, in a few months by a much smaller team and far exceeded our expectations in performance and ease of use.
Were we just inexperienced? That might explain some of it, but there were a number of seasoned people on our team. I chalk most of it up to the fact that refactoring is a real technique. I've always been a big fan of prototypes and while EL couldn't really be considered a prototype, Aspen Grove was certainly the beneficiary of its legacy. Tim quotes Fred Brookes from The Mythical Man-Month who said in 1975 "Plan to throw one away. You will anyway."
6:09 PM | Comments () | Recommend This | Print This
Off to Oreilly Emerging Technology Conference
I'm catching a flight this morning to San Jose to attend the Oreilly Emerging Technology Conference. It looks like a good program and Oreilly always does a great job. I'm looking forward to it. There will undoubtedly be Wi-Fi access so I'll be blogging some of what I hear. I'm sure lots of others will be as well.
8:28 AM | Comments () | Recommend This | Print This
April 18, 2003
Jabra Freespeak
I've got a bluetooth enabled t68i phone that I have a lot of fun playing with. I have an Ericsson HBH-20 bluetooth headset, but as you can see if you click out to the picture, its still got a wire and a little fob for the electronics that clips on your clothing. The other day, I picked up a



