Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Ted Leung on the air: Open Source, Java, Python, and ...
Fri, 31 Oct 2003
What is integrated XML support anyway?
Kimbro Staken is wishing for XML support baked directly into a programming language. His criteria are:
[15:06] |
[computers/programming/xml] |
# |
TB |
F |
G |
4 Comments |
- Seamless XML support. Never having to explicitly parse an XML document
- XPath as a native language construct
- Dynamic conversion between text and parsed representations of the XML.
- XPath manipulation for XML modifications
eliminate the distinction between the string representation and the object representation of XML documents.Their approach generates classes for each of the elements in an XML Grammer (DTD or Schema) and allows for object literals that look syntactically like XML. XOBE also allows XPath expressions for querying the resulting object hierarchies. Erik Meijer and Wolfram Schulte's OOPSLA 2003 submission: Unifying Tables, Objects, and Documents takes a different approach. Meijer and Schulte show how to extend C# (it could just as easily be Java) to deal with relational and XML data. They set forth a number of design principles for their experimental language, but two of the most important are:
- Denotable values should be (easily) expressible
- Expressible values should be denotable
Eclipse Omnibus
Dave Johnson saw these screenshots of Whidbey and
despaired of having such an easy to use environment in a Java based toolset. I don't know if Dave has seen the IBM WSAD version of the HTML/JSP editor, but it can do a lot of what the Whidbey HTML editor can do. If you select rendered HTML and switch to source view, it highlights the tags responsible. It works backwards that way too. Of course, it costs $$$, but so will Whidbey.
In other Eclipse news, codesugar is a new plugin that generates equals(), clone(), toString(), and hashCode() methods.
[11:51] |
[computers/programming/java/eclipse] |
# |
TB |
F |
G |
1 Comments |
Thu, 30 Oct 2003
Walter Smith has a blog
Walter Smith has a blog. Walter was responsible for lots of good ideas in Apple's Newton, and is now part of the Windows Client User Experience Team...
[23:37] |
[computers/internet/weblogs] |
# |
TB |
F |
G |
0 Comments |
Wed, 29 Oct 2003
More Fun Python projects
Jeremy Hylton posted some cool ideas for
master's thesis level Python projects. Here's my suggestion:
[23:46] |
[computers/programming/python] |
# |
TB |
F |
G |
0 Comments |
- Write a type annotator for Python programs that would take a Python program as input and produce a version of the program annotated with as detailed type information for as many variables and functions as possible. The goal is to provide a tool that could be used on Python files to give some confidence that type unsafe operations were not going to happen.
The Essence of XML
Today I read Simeon and Wadler's POPL 2003 paper,
The Essence of XML, which should really be titled "The Essence of XML Schema". The paper points out that XML is not a good data representation because it isn't self describing or round-trippable:
[23:34] |
[computers/programming/xml] |
# |
TB |
F |
G |
0 Comments |
It is not always self-describing, since the internal format corresponding to an external XML description depends crucially on the XML Schema that is used for validation (for instance, to tell whether data is an integer or a string). And it is not always round-tripping, since some pathological Schemas lack this property (for instance, if there is a type union of integers and strings)They are assuming a strongly typed world, of course. The key observation in their work is that using a named typing model instead of (more commonly used) a structural typing model leads to a model where proving theorems about validation and erasure is very easy. The model in the paper only models a subset of XML Schema, but the remaining features are accounted for in the formal semantics for XQuery and XPath 2.0. For practitioners, the bottom line is that the subset of Schema described by the paper is roundtrippable (convert internal value to external and back -- output the value as XML and then parse/validate) except for simple types that are lists or unions. For the case of reverse-roundtripping (parse/validate then output), the only problems arise when a base type has multiple representations for the same value, like leading zeros or number bases.
Tue, 28 Oct 2003
Big Ball of Mud
Foote and Yoder have a paper in PLoP 4 called
Big Ball of Mud where they try to understand the forces that lead to the Big Ball of Mud (also known as spaghetti code) architecture, identify some patterns that lead to a Big Ball of Mud, and find ways to improve code that has become a Big Ball of Mud.
There are some interesting observations:
[16:35] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
When it comes to software architecture, form follows function. Here we mean "follows" not in the traditional sense of dictating function. Instead, we mean that the distinct identities of the system's architectural elements often don't start to emerge until after the code is working.From Brooks' 25th Anniversary Edition of The Mythical Man Month:
One always has, at every stage, in the process, a working system. I find that teams can grow much more complex entities in four months than they can build.On layers:
Most interactions in a system tend to be within layers, or between adjacent layers. Individual layers tend to be about things that change at similar rates. Things that change at different rates diverge. Differential rates of change encourage layers to emerge....
Slowly evolving objects are bulwarks against change. They embody the wisdom that the system has accrued in its prior interactions with its environment. Like tenure, tradition, big corporations, and conservative politics, they maintain what has worked. They worked once, so they are kept around. They had a good idea once, so maybe they are a better than even bet to have another one.
The Selfish Class
I've been reading Foote and Yoder's PLoP3 paper,
The Selfish Class. The title is taken from Dawkin's The Selfish Gene, and the authors are trying to articulate the genes that allow software artifacts to be reused.
The genes / patterns that they identify are good indicators for successful open source projects. There's nothing surprising, but the paper puts a number of things together in one place.
[15:46] |
[computers/open_source] |
# |
TB |
F |
G |
0 Comments |
Mon, 27 Oct 2003
LavaRnd
I spent some time today clearing my backup of Wired issues. In the August 2003 issue, there's an article on random number generation. The current technique uses a webcam (with a lens cap on) as a source of chaotic information -- the original used lava lamps. The inventors have developed an open source library for those who need really good random numbers.
[00:06] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
Linkers and Loaders
I just finished reading John Levine's Linkers and Loaders. It's one of the few books out there on the linking and loading phases. It covers the principles of how linkers and loaders works, using ELF, MS PEF/COFF, and OS/360 as examples. There's a fair amount of detail concerning the specifics of these systems, which helps if you are working one of those environments.
This book has been sitting on my shelf (along with a bunch of others), so I decided to move it from one pile to another. The last chapter is a summary of research in linking and loading up til 2000, when the book was written. There's still a bunch of stuff that hasn't made it into the linkers that you and I use every day (perhaps with the exception of the JVM and CLR, but even then it seems like there's room for improvement).
[00:05] |
[computers/operating_systems] |
# |
TB |
F |
G |
1 Comments |
Sun, 26 Oct 2003
One apt to rule them all, One apt to bind them...
Ars Technica is
reporting that Ian (the ian in Debian) Murdock's, Progeny has ported Red Hat's Anaconda installer to Debian. I was more interested in the news that Progeny is modifying apt to work with RPM packages.
If that weren't enough, the DebToo project is working to create tools to build Debian source packages using custom compile flags, just like Gentoo. In addition, Eric Wong has written APT-Fu, which can build packages using custom gcc flags.
Convergence is good.
[00:01] |
[computers/operating_systems/linux/debian] |
# |
TB |
F |
G |
0 Comments |
Sat, 25 Oct 2003
The death of computer hobbyists?
John Dvorak laments the decline of
computer hobbyists. Like John, I got involved with computers as a hobby. I do think that his definition of hobbyist is a bit narrow. According to him, if you aren't collecting oddball hardware, then you aren't a hobbyist. I've always been a hobbyist on the software side -- I learned to program by typinging programs from Byte, Creating Computing, and Dr. Dobbs Journal, learning how they worked as I typed. Today, I believe that the opportunity for software hobbyists is larger than ever. Hobbyists that want to program computers have more avenues that allow them to contribute to software that will be used by real people. The same avenues provide lots of source code that hobbyists can use to learn from. I am referring of course, to open source software in its various forms.
It may be true that there's not much excitement for the hardware side of computers as a hobby, unless you like lighting up the insides of your case. But on the software side, there's plenty of opportunities.
[23:44] |
[computers] |
# |
TB |
F |
G |
4 Comments |
We need some inspiration
A few days ago, Jon Udell posted about Apple's Knowledge Navigator video. I won't repeat his analysis of how close we are to realizing the vision set forth in the video. But I find it interesting that 16 years later (it was first shown in 1987), it it still setting forth a compelling vision for what the computing experience should be like. The Linux people aren't driving towards something like this, and Longhorn is focusing on graphics, task orientation, and WS-* but for me, that pales in comparison to the Knowledge Navigator. Scoble should be holding this up as the future of the Tablet PC. But saddest of all, even Apple is no longer ostensibly working towards this vision.
I don't think that the Knowledge Navigator video is perfect or definitive, but at this moment in the history of computing, it can provide renewed inspiration.
[23:32] |
[computers] |
# |
TB |
F |
G |
1 Comments |
Fri, 24 Oct 2003
ApacheCon Wiki
I was hoping that ApacheCon was going to have a wiki, and the planners have not disappointed...
[16:12] |
[computers/open_source/asf] |
# |
TB |
F |
G |
0 Comments |
Thu, 23 Oct 2003
Geek tricks
Danny O'Brien is giving an ETCon talk on Tech Secrets of Overprolific Alpha Geeks. I love talks like this. Danny is starting his research via this QuickTopic thread.
There are already some interesting ideas there, such as coating the back of your laptop with velcro. I can see this being useful in some situations, but not others. My laptop backpack has a nice pocket for the laptop, and a nice carry bag for all the cables. But lots of times I want to just carry the thinkpad and one or two items. This is when the velcro would be useful. But then you'd have to peel everything off to get it back into the pack/bag.
[12:19] |
[misc] |
# |
TB |
F |
G |
0 Comments |
Object-Oriented Style (revised)
[via Lambda the Ultimate] Apparently Dan Friedman has revised his paper on Object-Oriented style. So if you want to see an example of Scheme macros in action, you should definitely look at this.
[11:43] |
[computers/programming/lisp] |
# |
TB |
F |
G |
0 Comments |
Wed, 22 Oct 2003
OSBC 2004 and r0ml
[via mod_pubsub] Here's yet another Open Source conference, this time focused on business. There's a nice list of speakers, but no topics...
One tidbit of interesting information from the site. Some of you will remember my OSCON notes and my admiration for Robert Lefkowitz. It appears that the uncertainty around his employment situation has settled. He's now "Director, Open Source, AT&T Wireless". Which makes me kind of wonder, what exactly are they doing with open source at AT&T Wireless? After all, they're my current cellular carrier...
[23:47] |
[computers/open_source] |
# |
TB |
F |
G |
0 Comments |
EclipseCon
Eclipse is having its own convention. When you look at how many of the presentations are by IBM'ers, you have to wonder how successful Eclipse has been at attracting outside developers to the Eclipse core. Eclipse is definitely open source from a licensing point of view, but from a community point of view, the core still seems pretty closed. It takes time to build a community, and getting involved with such a big project is hard, so maybe I shouldn't be too hard on Eclipse just yet...
[22:46] |
[computers/programming/java/eclipse] |
# |
TB |
F |
G |
1 Comments |
UI Quickies
[22:41] |
[computers/programming] |
# |
TB |
F |
G |
0 Comments |
- Jon Udell points out the work of Ben Bederson at UMD - there are many unconventional UI ideas here.
- On the hardware side, PC Magazine tells us about the RoundPad
Redhat 9? Just say no.
I just read Don Park's evaluation of Red Hat 9. This jives with what I heard at last night's SeaJUG meeting, too. Mark Ashworth, the speaker last night, was running Suse, but he mentioned that more and more of his friends are running Debian. I run Debian for the package quality, not the politics, but it is true that there's no company behind Debian that will suddenly change the nature of the distribution.
The uptime on the machine that is {www,mail}.sauria.com is 271 days. It would have been longer, but I had to replace the UPS. This machine is regularly updated to Debian unstable. If you are less adventurous, you could set your apt sources list to use testing.
[00:35] |
[computers/operating_systems/linux/debian] |
# |
TB |
F |
G |
2 Comments |
Mon, 20 Oct 2003
Mail aggregators versus blog aggregators versus human aggregators
It seems that Dave Winer
had a chat with the human aggregator (Scoble) and came away understanding why you'd like to integrate an aggregator with e-mail. Dave's two takeways were:
[22:37] |
[computers/internet/microcontent] |
# |
TB |
F |
G |
2 Comments |
- Since it's integrated with email he can easily forward an item to people he works with via email.
- He has a folder where he drags items he wants to write about later.