Blog: 2002-02

Latest  2014  2013  2012  2011  2010  2009  2008  2007  2006  2005  2004  2003  2002  2001
-12  -11  -10  -09  -08  -07  -06  -05  -04  -03  -02  -01

Netgear has an Ebay Store, with some good prices on refurb equipment with 30-day warranty (e.g., RT314 for $49.99 BuyItNow + $11.99 S&H). My little metal FS105 is the cutest thing — not like those dorky plastic Linksys boxes.

Started writing an HTTP proxy in Guile today. Will be useful for research prototyping and also for a more powerful and easily extensible filtering proxy. Initially using Serveez to manage the network I/O, which may move bits faster than can be done in pure Guile. It's still unclear how much development effort Serveez will save me, after considering the additional effort involved in learning their framework abstractions, but Serveez does look well-designed in many respects.

The Security Systems Standards and Certification Act (SSSCA) is just one more step in the ongoing process of erosion:

To provide for private sector development of workable security system standards and a certification protocol that could be implemented and enforced by Federal regulations, and for other purposes.
[...]
SEC. 101. PROHIBITION OF CERTAIN DEVICES
(a) IN GENERAL.—It is unlawful to manufacture, import, offer to the public, provide or otherwise traffic in any interactive digital device that does not include and utilize certified security technologies that adhere to the security systems standards adopted under section 104.

Released rfcview.el 0.4. I really don't mean to spend any time on that kludgey package, but the change was quick.

To their credit, CNN.com supports the three most popular streaming video tools. However, those are all closed formats, and CNN.com does not support MPEG-1 or other relatively open video format. Given the success of Ogg Vorbis, I wish Ogg Tarkin was ready.

Ebay writes in an email, "In our continuing commitment to improving your experience at eBay, we have made a few modifications in our User Agreement and Privacy Policy. These changes are based upon suggestions from our users and will accommodate future site improvements.," followed by nine long, intimidating-looking URLs that the user is instructed to go to for more information. On closer look, all nine URLs turn out to be identical. Does anyone actually click these?

All I have to say about the matter is that either Ellen or Carol is a goshdarn plagiarizer.

Google in a 1U.

Beneficial side-effect of not hardly sleeping before 9AM Monday dentist appointment is that you can go home and nap through the worst of the discomfort as the local wears off.

Free, not as in beer, but as in association.

There can be only one!

Inadvertently won a medical evaluation on Ebay. Fortunately, it didn't seem to include a prostate exam.

Lesson for today: If ever you need a root canal, don't attempt to defer the crown work for after you've finished grad school. Occasionally, grad school takes longer than it should, and teeth are impatient.

Noticed rfcview.el was showing all the CR characters when viewing one RFC in Emacs 21, so quickly patched it and released version 0.2. Released 0.3 a few hours later after user suggestion.

The latest Debian Sid changelog entry for gpm reminded me to uninstall it from my laptop:

gpm (1.19.6-10) unstable; urgency=critical
  * The fuck it all to hell release.
[...]

While looking for a part, I found that surplus electronic component reseller All Electronics had a bunch of these motors in. Now, that kind of offset weight generates a lot of vibration (cellphone vibration motors are a small fraction of the size and power), and the 3V rating and battery contacts shown suggest that it was manufactured to to be powered by two conventional cylindrical batteries put end-to-end inside of a sufficiently elongated plastic assembly. But what possible application could that have?!

Used Google to try to find cluefulness, and it sent me to this "Behind the Curtain: A Day in the Life of We Bloggers" page, on which she writes, "Saturday night, late. Or Sunday morning, very early. Working. Working on the CD-ROM for this damn Bryce book..." Is there something Bryce has not been telling us?

The Wrong Thing is often compute-intensive.

Oregon Chai on sale; bought one box of each variety.

Reinstalled Netscape 4.x so that I could try out the SqueakLand stuff. When I looked at Squeak 2-3 years ago, it had a flavor of Smalltalk-80 with some direct-manipulation graphical objects that reminded me of the morph world that was layered atop one version of Self. But the SqueakLand site looks more like a return to the original PARC Smalltalk group's interest in children's education.

Unfortunately, some of the Squeak Etoy tutorials don't appear to work properly on my Web browser plugin setup. Some key graphical objects that should be displayed are not. It also appears the Squeak plugin may be getting a very large (over 3000x2000 pixel) X window that's clipped to the much smaller 1024x768 plugin window. The two problems may be related. I will have to skim the Squeak mailing list archives before posting a bug report.

Had better luck with the standalone Squeak system. Used the Squeak 3.0 Debian packages. There were definite flashbacks to the old Smalltalk-80 environment and the Self morph world, not to mention some psychedelic color schemes and animations. For full disorienting effect, go through the demos for a couple hours in a dark room.

Looked at the docs for Serveez this morning. Network server I/O framework implemented in C that can be used by Guile code. Might come in handy at some point, though for the low-volume I/O I need to do, the flexibility of a pure-Guile approach is better, and Guile provides all the socket API I need. Last year, as a small pilot project for evaluating Guile, I wrote an IRC bot that corrected people's spelling and did asynchronous DCC file transfers in pure Guile. Sockets and I/O worked fine. Only difficulty was hand-crafting the select-related code, which worked well but would require additional careful hand-coding every time the software would be extended with a new kind of concurrent activity. A standard generalized event loop or multithreading abstraction is really necessary for component modularity. (Last I checked, multithreading is poorly-documented and of questionable reliability in the Guile 1.6 release path, and I believe multithreading is to be redesigned for 1.8, so I've not bothered trying to use it.)

XSL has not the world's most economizing syntax:

cat /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/*.xsl | wc
⇒  15262   28450  511992

Media Lab students might be vaguely amused by the dumpster that's been up the street from MIT for a few days.

While using DrScheme 200alpha last week, I noticed disturbing growth of the process to the point it would get my workstation into heavy swapping. Bit the bullet this morning and spent a couple hours verifying the growth and filing a bug report (PLT bug 5271). Hoping they have a good solution. The growth isn't a showstopper for educational use, but the cause may be a serious problem for general research prototyping.

Someone mentioned odd behavior they were seeing with the Acrobat Reader. For the past few months, I've been using the GhostView viewer (version 3.5.8, Debian package gv) to view PDF files without problem other than occasional slowness, avoiding the various risks of closed-source media tools. Some GhostView X resource settings that make it match the default GTK color and generally be more presentable.

A simple test of the Web server in PLT 200alpha showed that repeatedlly retrieving the default home page causes the MzScheme process to slowly grow from 3868 KB to 4860 KB before holding at that size. Somewhat encouraging.

Fuzzy bunnies are nice.

Got up early this morning; sipped chai and wrote plt-cvs-buildscript to wake up. This script is for people who update from PLT Scheme CVS roughly once a day, who want to preserve their doc collections, and who want to recompile all the .zo files each time. Untested; season to taste.

What a wonderful world it would be:

cvs add history biology science\ books french\ i\ took
⇒
cvs server: nothing known about history
cvs server: nothing known about biology
cvs server: nothing known about science books
cvs server: nothing known about french i took

Someone pointed me at an article entitled "Newest Research On Why You Should Avoid Soy."

Light-headed from the paint fumes, I thought it would be a good idea to trek to Kmart and acquire Martha Stewart bed sheets. The kind I got appear to be new and never actually owned and used by Ms. Stewart, though I'm sure there's a niche market for ones that were.

The Kmart self-service checkout UI actually seemed reasonably well-designed, and worked fine and without confusion for me. However, the line for self-service checkout actually appeared to move more slowly than lines with human checkout clerks, taking around 15 minutes, and three people ahead of me had to call over an employee when the system wasn't doing what they expected. Another woman ahead of me had to be helped by the woman behind her in which buttons to push. I think she may have been overwhelmed and anxious to the point that she couldn't focus on the voice prompts and visual cues the system gave, whereas I, as a person who works with computers daily, approached it with an idea of how it probably worked. I overheard an older woman behind me ask the person next to her, "Oh, is this the self-service line? ... You'll have to be my 'self' — I get so intimidated by these things..."

I did notice one possible usability problem: One woman ahead of me had a pile of small items of identical clothing that she was trying to scan one by one, and the system recognized only the first. It may be that the system is designed to avoid scanning the same item twice when used by an untrained operator, and therefore needed a longer delay between items or for the woman to bag the items as they were scanned.

I didn't have time to study the on-screen UI, but there seemed to be some gratuitous graphics that could distract people who didn't know what to expect from the UI. Also distracting was the camera image they displayed, which presumably was there for the usual "loss prevention" psychology reasons. The physical setup of barcode scanner, control tag deactivator, bag rack, cash slot, LCD display, magstripe scanner, signature pad and pen, receipt printer, etc. was cluttered and didn't seem as intuitive or usable as it could've been. Perhaps the self-service setup was designed to be installed by retrofitting a store's existing normal checkout clerk station, rather than having a countertop designed specially for self-service.

Did I mention that waiting 15+ minutes in line at Kmart was really boring?

More domesticity, spending all morning and early afternoon painting. One trick I learned last time: remove masking and drop-cloths as soon as you're done applying the paint, to reveal erroneously-painted spots while they can still be unpainted with a damn cloth.

Tip for debugging parsing errors in code generated by the PLT parser-tools collection: uncomment the appropriate printfs in collects/parser-tools/private/parser-builder.ss.

I didn't fully get the point of DrScheme's "large letters" hack til I saw it in the "contour" view.

Remembered an old screenshot: in 1995 (as part of the same class for which I wrote SmallToons) I received an error from the Self system that the world crashed because the origin was not found. I dare not contemplate the theological implications.

Mike Loukides' article, "Will You See Open Source J2EE Implementations? Not Likely." points to a persistent Sun attitude that is costing them support.

Putting the SICP book into the DrScheme 200 help browser is useful, even though mixing PLT and MIT does seem vaguely sacrilegious toward both clans. Until a sicp.plt is available, something like the following yields everything except the special DrScheme indexing:

cd YOUR-PLT-DIRECTORY-HERE
wget -r -np http://mitpress.mit.edu/sicp/full-text/book/book.html
mv mitpress.mit.edu/sicp/full-text/book collects/doc/sicp
rm -r mitpress.mit.edu
cd collects/doc/sicp
ln -s book.html index.htm

If you're running DrScheme 200alpha, you probably shouldn't browse untrusted Web pages with it until a severe security vulnerability (PLT bug 5247) is addressed.

Alexander Larsson released FooCanvas, which might be an excellent pure-GTK alternative to GnomeCanvas. Haven't had a chance to try it out, but quoting from the README:

FooCanvas is a version of the Gnome Canvas that has removed several features in order to create a small, useful, working, maintainable canvas. The redraw mechanisms have also been changed so that it now works like any other Gtk+ 2 widget, using double buffering, idle redraw and 32bit window coordinates. I've also added some new functions and features. [...] Missing features are: antialiased mode, affines, microtiles and GnomeCanvasShape. In order to remove GnomeCanvasShape, several items have been backed down to the version before they were shape:ized. [...] The idea is to have a nice canvas for simple users that are not using the advanced (and somewhat broken) features of the full gnome canvas. Intended targer audience is e.g. The bar-charts in memprof, the icon view in nautilus, gnumeric, the canvas usage in the RH installer, gantt charts in MrProject, calendar in Evolution, icon-selectiors, fileselectors etc.

DirectFB does fast direct framebuffer access and will work with GTK. Though it is funny that, in a remarkable coincidence, the 3D gears in one of their screenshots obsure the actual memory utilization numbers.

Though it was Network Solutions who first opened the floodgates to domain name squatting by deciding that the namespace was theirs to sell rather than maintain, whois lookups on domains registered through Register.com now paint all their customers with the squatter brush:

You may be able to buy this domain name through http://www.afternic.com/offer

I don't think the Onion piece on GE was a paid brand placement.

Had to wake up way too early Monday morning for a meeting. Operating on 7 IQ points. Trying to remember what one does to wake up. Dialed some people with British news accents on the radio, since we know British people generally sound smart, and maybe some of that can rub off over RF.

Isn't interoperability the general raison d'être of XML?

To communicate my stance on Ximian's support of Microsoft ".NET": I think Ximian need only look at the last 15 years of Microsoft standard-operating-procedure wrt partnerships and standards to realize that Ximian has made a grave error in endorsing the latest Microsoft attempt to control the platform.

As evidenced on Slashdot and elsewhere (the most recent round triggered by a Register article), some of the "community" is starting to show skepticism of Ximian's judgement and/or intentions. But skepticism may now be moot, as Ximian already received the initial support it needed to get funding, Microsoft has already been able to point to joint FSF-Ximian press release as endorsement of .NET's purported non-proprietary nature, and Ximian is a funded commercial corporation that no longer needs to answer to the former community. For my part, I now regret the private support I gave to HelixCode/Ximian during its initial stages, and I publicly reject any GNU/Linux distribution that requires .NET. If Ximian uses its Gnome leverage to push GNU/Linux developers to .NET, then Gnome will be forked or abandoned. In other words: we have multiple interests that no longer have, in business terms, goal alignment.

Hopefully, core GTK developers, most of whom I believe are involved with Gnome, will reassert GTK's independence of Gnome. Ximian's actions with Gnome are the main political issue to which I alluded in a recent message to the guile-devel and guile-gtk email lists.

I also hope that Ximian sees enough backlash that they'll rethink their goals and approaches, and decide to publicly reject .NET and realign themselves with Free Software. If they don't, kudos to the first Ximian employee to have the cojones to walk away from their stock options.

Ebay's new Computer category page has an outside company tracking as you click on subcategories:

http://altfarm.mediaplex.com/ad/ck/SomeID?loc=↵
http://listings.ebay.com/aw/plistings/list/category3707/index.html

Junkbuster could be extended easily enough with a simple URL-rewriting rules mechanism to handle this particular class, but that won't work when they end up doing:

http://trackingco.foo/4A087A234A008FF72340878073B580C76873B6F5845

Google continues to fling smart technology at the Web, but we all know what drives technology adoption.

After posting my PSGML face tweaks last night, I adjusted them to emphasize start tags over end tags, which makes a lot of sense in autoindented XML. You can almost pretend they're s-expressions.

(defface nwv-sgml-end-face   '((t :foreground "gray65")) "")
(defface nwv-sgml-misc-face  '((t :foreground "gray40")) "")
(defface nwv-sgml-start-face '((t :foreground "gray40")) "")
(setq sgml-markup-faces
      '((comment   . font-lock-comment-face)
        (doctype   . nwv-sgml-misc-face)
        (end-tag   . nwv-sgml-end-face)
        (entity    . bold)
        (pi        . nwv-sgml-misc-face)
        (sgml      . bold)
        (shortref  . bold)
        (start-tag . nwv-sgml-start-face)))

Simon just pointed me to Paul Graham's essay, Taste for Makers.

Quick&dirty incomplete Tcsh complete rule of the day:

complete cvs \
  c%-d%'`sed -n "s@^.1 \(:pserver:[^ ]*\) .*@\1@p" < ~/.cvspass`'%

Emacs makes your context diffs pretty.

Installed PSGML for editing DocBook XML files. Used vanilla 1.2.4, since the Debian psgml package was for an older, heavily patched, version. For Emacs 21 under Debian Sid, I avoided conflicts with sgml.el by setting auto-mode-alist to start .sgml and .xml files in fundamental-mode, and also added:

(autoload 'sgml-mode "psgml" nil t)
(autoload 'xml-mode  "psgml" nil t)

(setq sgml-catalog-files
      '("catalog" "/etc/sgml/catalog" "/usr/lib/sgml/catalog"))
(setq sgml-ecat-files
      '("ECAT" "/usr/lib/sgml/ECAT"))
(setq sgml-auto-activate-dtd t)

When fontifying is enabled, PSGML will make all the SGML/XML tags boldface. To visually de-emphasize the tags so that the actual document text is more prominent than the tags, I did:

(when window-system
  (setq sgml-set-face t)
  (defface nwv-sgml-tag-face '((t :foreground "gray50")) "")
  (setq sgml-markup-faces
        '((comment   . font-lock-comment-face)
          (doctype   . nwv-sgml-tag-face)
          (end-tag   . nwv-sgml-tag-face)
          (entity    . bold)
          (pi        . bold)
          (sgml      . bold)
          (shortref  . bold)
          (start-tag . nwv-sgml-tag-face))))

No luck finding any photo at all of the Cray S-MP on the Web, and the marketing communications people at both Cray and Sun (who bought that line from Cray) claim to have no photos of it. Maybe a future Web-searcher has a photo they can share.

GNU/Linux developers should Just Say NO to binary drivers, binary and patent-encumbered codecs, Windows emulators, semi-proprietary technology plays, etc. If you wanted to run closed technologies or submit to lock-ins, just install Microsoft Windows and be done with it. Otherwise, it generally makes sense for developers to refuse to compromise, thereby preserving the demand for open equivalents and replacements, and keeping the badguys from getting more footholds in GNU/Linux.

MzScheme C API includes a Scheme_Needs_Wakeup_Fun.

Found the old photo of my name in lights (courtesy of Netscape Communications, 22 May 1996).

"In a town with only two barbers, go to the one with the bad haircut."

Picked up Belkin 50' Cat5 patch cable on sale for $4.97 at MicroCenter. The poor-man's 802.11b.

Partially diagnosed the cause of font weirdness in DrScheme 200alpha10... Turns out it was picking up the Cyrillic Koi-8 version of Helvetica (foundry cronyx rather than adobe), even though I'd explicitly specified adobe. I was bumping into this because I was using Helvetica rather than Lucida Sans, for which there is no odd Koi-8 version on my system. Rather than get further sidetracked trying to figure out the wxWindows code right now, I punted, and just uninstalled my Cyrillic fonts. Screen fonts are a serious matter.

Posted another update of Sample Junkbuster Blockfile.

"I think the young people enjoy it when I 'get down' verbally."

Woke 9am Saturday morning. Currently sipping Van Houten Cacao and skimming XML-related specs to fully wake up. Stirred with a fork, as my last spoon broke the other day, which suggests housewares shopping is in the cards for this weekend.

Walked to the Crate&Barrel housewares store in Harvard Square this afternoon, and was waiting for help with the open-stock flatware, but the sales associates must have detected my lack of yuppie J. Crew apparel or Hahvahd cufflinks, since they greeted and helped customers who came into that section after me, but not me. I could've asserted myself and charmed them easily enough, but I decided I no longer wanted to give them my business, and I walked out. During the summer in some parts of Central Square, I get spat at approximately every other day for looking white; in Harvard Square, I get ignored for not looking well-to-do.

The new 100 Tech Square building will physically embrace NE43, home of the MIT AI Lab, LCS, and W3C. You have to feel for the architects who no doubt sorely wished they could level both 200 and 500 — arguably the ugliest twins in Cambridge.

Shoot me if I ever buy another ViewSonic CRT. My E790 dimmed to black inside of a year, and the "like new" warranty replacement I received after paying to ship it back has episodes throughout the day when the image becomes staticy, shrunk, and bright, accompanied by arcing noises. It's been like this for months, but I haven't wanted to take another downtime hit of sending it back for replacement.

Supposedly the Second Chance Police Pouch Emergency Body Armor System is available in pink (artist's conception).

Not everyone knows that Google has acquired a rather large Usenet archive, going back to when the net was a much smaller place and when Usenet posts were believed to be semi-private, ephemeral conversations. If you've been on the net for a long time, search for your old articles and make a list of articles that you want hidden from Google's public interface.

For the ~/.emacs file of MzScheme programmers:

(put 'module 'scheme-indent-function 'defun)

Porting one of my Guile modules, HtmlSuq, to MzScheme today. Basically involved rewriting to R4RS plus MzScheme's module system and regexp library. Now to find the bug(s) introduced when rewriting lots of read-unread patterns as peek-consume.

On a different topic, I'm in awe of just how indecent bureaucracies can get.

Earlier to... 2002-01

© Copyright Neil Van Dyke      Contact