connolly is currently certified at Master level.

Name: Dan Connolly
Member since: 2000-07-11 16:05:27
Last Login: 2008-05-14 15:41:27

FOAF RDF Share This

Homepage: http://www.w3.org/People/Connolly/

Notes:

I deal in open source and open standards. At work I do Web Architecture, HTML, HTTP, XML, URIs and the like. I hold a degree in Computer Science from U.T. Austin, but I started hacking when I was 13, and I think USENET (esp. comp.lang.*) was where I learned most of the good stuff... perhaps my favorite article is Re: Python, Tcl and Perl, oh my! (was Re: tcl vs. perl) from 1996, which argues that the community around a language has more impact on code quality than the intrinsic features of the language.

I learned perl from tchrist in about 1990 while working at Convex. Hi kbob! I'm a pretty big fan of python, and I leaned a lot studying scheme, and I'm a fan of the smalltalk culture... my WikiWiki bio tells more of the story.

see also: family web site, including notes on the PerfectOffice.

I hang out in #swig when I'm hacking. The swig scratchpad is our weblog.

Projects

Articles Posted by connolly

Recent blog entries by connolly

Syndication: RSS 2.0

25 Oct 2007 (updated 25 Oct 2007 at 01:16 UTC) »

Remembering Modula-3

Systems Programming with Modula-3 has been on my wishlist for years, but after reading the feedback from Tim Bray's Wide Finder project, I finally got my very own copy.

One of the reactions, Finding Lisp, observes:

Most popular programming languages have the same simple threads+locks paradigm that was popularized with pthreads and Java.

But Java made everything a monitor.

I learned pthreads while working on a big horrible C++/DCE project, Dazel (later bought by HP). One of the guys there (Jim W?) loaned me his copy of Systems Programming with Modula-3, where chapter 4 is a copy of An Introduction to Programming with Threads by Birrell. It's probably a good thing that we never followed thru on our dreams to rewrite the whole project in Modula-3, but it was good to know about partial orders on locks and such while taming the pthread libraries (... and the C++ exception runtimes; what a nightmare!)

And anybody who had studied the Modula-3 Thread and IO design would know better than to make everything a monitor.

A lot of good stuff from Modula-3 lives on in python, and some in Java, but DEC got bought by Compaq which got bought by HP, and a lot of the DEC SRC goodies seem to be disapearing from the net.

The wikipedia article on Modula-3 has a "This article does not cite any references or sources" tag since July 2006. That looks silly, since a number of books and articles are listed. I can see some unsupported claims, though, so I ordered my own copy of SPwM3 so I can separate some of the verifyable claims from the speculation.

I'd also really like to find a host (other than the wayback machine) for the hypertext version of the SRC Modula-3 sources; it's a gold-mine of software engineering theory and practice; for example, from Fingerprint.m3:

The original fingerprint interface offered at SRC did not include the procedure Combine. The Vesta configuration management project built a system that cached intermediate results for large software builds. Abstractly, this is a special case of the common subexpression problem mentioned previously, and the project used fingerprints as keys in the cache. It is instructive to learn what happened.

You might think that a simple way to solve the common subexpression problem without Combine would be to fingerprint the texts that result from printing the expressions represented by the nodes of the DAG. But if the DAG is not a tree, this is a serious error, since the length of the strings produced by printing a DAG can grow geometrically with its size, and therefore the probabilistic guarantee becomes useless even for quite small DAGs.

Avoiding this error, the Vesta group computed the fingerprint of a node by concatenating the node's label with the {\it fingerprints} of its children---treating these fingerprints as 8-byte texts--- and fingerprinted the resulting text. With this strategy, the number of texts fingerprinted is proportional to the number of nodes of the DAG, and the total length of these texts is proportional to the number of edges of the DAG. Thus the method appears efficient and sound.

Alas, the method is not sound. Recall that the probabilistic guarantee is valid only if the strings being fingerprinted are independent of the magic number. But fingerprints themselves are dependent on the magic number, so the probabalistic guarantee is invalid whenever fingerprints are fingerprinted. The Vesta group was soon debugging an unexpected collision.

The moral is simple: the procedure Combine is a convenience, but it is also much more than a convenience. It should be the only way that you ever generate a fingerprint from another fingerprint. In particular, never treat a fingerprint as text to be passed to FromText.

Maybe the python foundation would like to host it? I'm pretty sure Guido has a fondness for Modula-3.

23 Oct 2007 »

I just discovered SocksiPy - A Python SOCKS client module via a httplib2 - 0.4.0 announcement.

I wonder how SocksiPy relates to the socksForPython module that I hacked together back in 1994. I suppose the clue Guido gave me might have been our first meeting.

27 Jul 2007 »

Package management is a blessing when there’s integrated QA and support. apt-get is only one half of the equation; the Debian Bug Tracking system (and the people behind it) is the other.

Case in point: fink adds apt-get to the Mac OS, but the result is that updates from Apple and updates from fink compete/collide, and when there’s a problem, the natural result is finger-pointing rather than integrated QA.

Debian/ubuntu have scaled amazingly well, but they rely on quite a bit of trust. The MS Windows marketplace includes lots of mutually distrustful players, as does the Mac OS X marketplace. It’s not at all clear how apt-get and the debian bug tracking system (or ubuntu’s launchpad) can scale to support that sort of marketplace.

This is a comment I left on How package management changed everything by Ian Murdock, spotted in a Tim Bray tab sweep.

tags pending: software installation quality

22 Jun 2007 (updated 22 Jun 2007 at 21:25 UTC) »

Music Collections and Office Organization

It worked this time. I wonder why.

I have been trying to rip Paul Simon's Graceland using debian stuff for years. I was sure the CD was mangled beyond recognition, but soundjuicer on Ubuntu on this new HP pavilion just gave me a bunch of .flac files that sound fine.

I listened to this album all summer as I wrote 80,000 lines of HyperTalk code back in 1989. I think my copy was on tape at the time.

I wonder if the CD I ripped today is the same on I failed to rip so many times earlier or if this is a different CD.

This task is in my queue today because the music shelf in my office is poorly organized and overfull, and when I took my worship music binder off the shelf, this CD fell off the shelf. Rather than put it back on the shelf last night, I put it in my "in" box, GTD-style.

This wakes up all sorts of long-swapped-out jobs involving organizing my multimedia collection.

Mostly I don't do back-ups; I just send email and check stuff in using source code control (CVS for ages, but more recently hg... that's another story [@@delicious scm bookmarks]...). And I use google to find it again. But I don't have license to redistribute these flac files, so I have to manage them myself.

Part of me says: don't bother. If I'm going to fill my iPod (shuffle) with things to fill my head, they should be things that glorify God, and while Paul Simon's music is nothing nasty, I'm not sure it glorifies God. Plus, the whole recorded music oligarchy is an unstable marketplace just waiting for a revolution. "If you're whining about iTunes DRM, you're part of the problem," said a slashdot commentor that hit home for me. (@@todo: look it up and link it) much like a conversation with AaronSw about how songs and musicians have been around for a long time, even before you could get rich selling records; if the bottom falls out of the recorded music industry, humanity will go on.

MusicBrains solves the shared metadata problem for CDs pretty well, but Rhythmbox doesn't seem to automatically link to it like it used to. It does show album cover art...

In trying to figure out why, I looked in the help menu which led me to launchpad which links to IRC channels; those irc: links Just Work in Ubuntu. Yay! Except that xchat didn't realize that I was already logged into the Freenode network. Odd.

Better get back to other things... everything is so intertwingled I could go on and on...

tags: digial+media, music, sysadmin, ubuntu, debian, gtd

5 Jun 2007 (updated 5 Jun 2007 at 17:16 UTC) »

Not only does the nv driver not do 3D acceleration, it doesn't seem to do 1600x1050 resolution either.

The nvidia module in the debian non-free section blanked the screen and locked up so badly it required a reboot. When investigating options, that gets old real fast.

In #debian, the channel bot said:

<dpkg> from memory, nvidia_post_etch is update-pciids
&&
apt-get install module-assistant nvidia-kernel-source
&& m-a
prepare && m-a a-i nvidia && apt-get install
nvidia-glx &&
depmod -a && modprobe nvidia &&
dpkg-reconfigure xserver-xorg

But that produced the same symptoms.

Besides... debian fonts are ugly, and they seem to be chosen by a zillion different configuration options; it seems to be a full-time job just finding them all.

So I'm running Ubuntu now. I'm not sure how I feel about that.

I replaced the amd64 installation with the stock (quicken-friendly) i386 stuff.

It comes with evolution 2.10, I think. Slightly more polished. I wonder if subscribing to password-protected calendars works.

My code to print MS Word docs to PDF fell over; something about templates. So I'm trying to use OpenOffice instead. I almost got it working. Let's see if ubuntu support will help me out with this...

Bug #118789: trouble using ExportFormFields in uno API; PDF form controls are exported even when set to False

tags: office, debian, ubuntu, linux, hardware,

52 older entries...

 

connolly certified others as follows:

  • connolly certified connolly as Journeyer
  • connolly certified jwz as Master
  • connolly certified gtaylor as Journeyer
  • connolly certified jg as Master
  • connolly certified jtauber as Journeyer
  • connolly certified fdrake as Journeyer
  • connolly certified robla as Journeyer
  • connolly certified ger as Journeyer
  • connolly certified aaronsw as Journeyer
  • connolly certified ndw as Master
  • connolly certified kbob as Master
  • connolly certified DV as Master
  • connolly certified ping as Master
  • connolly certified gstein as Master
  • connolly certified mikehearn as Journeyer
  • connolly certified dajobe as Master
  • connolly certified edd as Journeyer
  • connolly certified vdv as Journeyer
  • connolly certified Ankh as Master
  • connolly certified timbl as Journeyer
  • connolly certified djweitzner as Journeyer

Others have certified connolly as follows:

  • connolly certified connolly as Journeyer
  • jenglish certified connolly as Master
  • ger certified connolly as Journeyer
  • DV certified connolly as Journeyer
  • link certified connolly as Journeyer
  • jtauber certified connolly as Master
  • eikeon certified connolly as Master
  • aaronsw certified connolly as Journeyer
  • mnot certified connolly as Journeyer
  • robla certified connolly as Master
  • fxn certified connolly as Master
  • her certified connolly as Master
  • vdv certified connolly as Master
  • TheCorruptor certified connolly as Master
  • Uche certified connolly as Journeyer
  • jonb certified connolly as Master
  • danbri certified connolly as Journeyer
  • edd certified connolly as Journeyer
  • mdupont certified connolly as Journeyer
  • watete certified connolly as Master
  • Omnifarious certified connolly as Journeyer
  • pasky certified connolly as Journeyer
  • castagna certified connolly as Master
  • Ankh certified connolly as Master
  • mitsue certified connolly as Master
  • Bopon certified connolly as Master
  • olea certified connolly as Master
  • timbl certified connolly as Journeyer
  • presbrey certified connolly as Master
  • oshani certified connolly as Master
  • djweitzner certified connolly as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page