Blog: 2005-03

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

Chana Dal

I am rapidly becoming a fan of chana dal, despite my normal aversion to legumes and to anything that can't be prepared in 5 minutes. One good resource is David Mendosa's chana dal page.

MBTA Telescreens

The MBTA is considering putting TV displays in subway cars.

Under a similar network now being installed in Atlanta, the subway and commuter trains are being fitted with five 15-inch flat-screen televisions per car. The televisions on the Metropolitan Atlanta Rapid Transit Authority, or MARTA, will carry a 30-minute loop consisting of 20.5 minutes of local news from an ABC affiliate there and 9.5 minutes of advertising. The programming is updated throughout the day. For advertisers, the transit televisions offer a relatively captive audience, in an age when consumers can find ways to skip commercials through technology such as TiVo and satellite radio.

—Mac Daniel, "T may install TV network to raise funds," Boston Globe, 2005-03-30

Shoving increasingly intrusive advertisements and inane 'news' into the faces of subway riders is just abusive. Many people ride the subway because they cannot afford to operate a private car in Boston, and/or because riding the T is more responsible than driving a car. The T experience is miserable enough as it is without riders being force-fed commercial video.

If the MBTA goes through with this, I would like to see an assault on the displays, including credible boycotts of all businesses advertising on the displays.

My suggestions on what we should instead be doing with public transit: The city and state should fund public transit at reasonable levels. Fares should be reduced as an incentive to ride rather than drive. Drivers should be taxed to cover their actual costs to society, rather than being subsidized by everyone including non-drivers. Finally, we should appoint public transit officials who are capable of fixing the many problems with the MBTA rather than dreaming up quick money-making schemes.

Just one MBTA problem for which inadequate funding should not be an excuse, given the Homeland Security hype: I was in the Central Square station last week, and announcements over the PA speakers are still unintelligible. If think that, were they ever to announce emergency instructions during a terrorist attack, nobody would be able to understand.

Title IX

The fourth Google hit for "title ix" just now is, a women's clothing retailer.

ccnum.scm 0.2

Version 0.2 of the credit card utilities Scheme library ccnum.scm has been released. I made a small enhancement prompted by a credit card number in The Onion. (The output says that the check digit was valid, but the issuer would be American Express rather than MasterCard, and the count of digits was wrong.)

Lossless Date Formatting in iso8601.scm

ISO8601 has three general date formats (calendar, ordinal, and week) each with basic and extended variants. In each of these formats, fields can be truncated (i.e., century, decade, year, and format-specific fields) and/or the precision of the date can be reduced.

When converting the semantic representation of these dates to text, the desired format must be specified. However, truncation and reduced precision means that we can't always express a given representation in the desired format without loss of precision. For example, a representation of "3rd month of the year 2005" cannot be represented as an ISO8601 ordinal date without loss of precision, since the day of the year cannot be determined. For another example, "3rd week-day of the 1st ISO8601 week in week-year 05 of an implied week-year century" cannot be encoded in calendar- or ordinal-date format, since an absolute week-year must be known to adjust to Gregorian year.

So, the Scheme library iso8601.scm now has a set of procedures for dispatching in the preferred semantic format with fallback to other formats when the preferred format would result in loss of precision. These procedures are used by text-formatting procedures such as date->string/calendar*. For example:

(define (f s)
  (let ((d (string->timepoint s)))
    (list (date->string/calendar* #t d)
          (date->string/ordinal*  #t d)
          (date->string/week*     #t d))))

(f "---11")      ⇒ ("---11"      "---11"      "---11"))
(f "--11")       ⇒ ("--11"       "--11"       "--11"))
(f "--11-11")    ⇒ ("--11-11"    "--11-11"    "--11-11"))
(f "--1111")     ⇒ ("--11-11"    "--11-11"    "--11-11"))
(f "-111")       ⇒ ("-111"       "-111"       "-111"))
(f "-W-1")       ⇒ ("-W-1"       "-W-1"       "-W-1"))
(f "-W11")       ⇒ ("-W11"       "-W11"       "-W11"))
(f "-W11-1")     ⇒ ("-W11-1"     "-W11-1"     "-W11-1"))
(f "-W111")      ⇒ ("-W11-1"     "-W11-1"     "-W11-1"))
(f "-1-W11")     ⇒ ("-1-W11"     "-1-W11"     "-1-W11"))
(f "-1-W11-1")   ⇒ ("-1-W11-1"   "-1-W11-1"   "-1-W11-1"))
(f "-1W11")      ⇒ ("-1-W11"     "-1-W11"     "-1-W11"))
(f "-1W111")     ⇒ ("-1-W11-1"   "-1-W11-1"   "-1-W11-1"))
(f "-11")        ⇒ ("-11"        "-11"        "-11"))
(f "-11-11")     ⇒ ("-11-11"     "-11-11"     "-11-11"))
(f "-1111")      ⇒ ("-11-11"     "-11-11"     "-11-11"))
(f "11")         ⇒ ("11"         "11"         "11"))
(f "11-111")     ⇒ ("11-111"     "11-111"     "11-111"))
(f "11-11-11")   ⇒ ("11-11-11"   "11-11-11"   "11-11-11"))
(f "11-W11")     ⇒ ("11-W11"     "11-W11"     "11-W11"))
(f "11-W11-1")   ⇒ ("11-W11-1"   "11-W11-1"   "11-W11-1"))
(f "11111")      ⇒ ("11-111"     "11-111"     "11-111"))
(f "111111")     ⇒ ("11-11-11"   "11-11-11"   "11-11-11"))
(f "11W11")      ⇒ ("11-W11"     "11-W11"     "11-W11"))
(f "11W111")     ⇒ ("11-W11-1"   "11-W11-1"   "11-W11-1"))
(f "1111")       ⇒ ("1111"       "1111"       "1111"))
(f "1111-111")   ⇒ ("1111-04-21" "1111-111"   "1111-W16-5"))
(f "1111-11")    ⇒ ("1111-11"    "1111-11"    "1111-11"))
(f "1111-11-11") ⇒ ("1111-11-11" "1111-315"   "1111-W45-6"))
(f "1111-W11-1") ⇒ ("1111-03-13" "1111-072"   "1111-W11-1"))
(f "1111111")    ⇒ ("1111-04-21" "1111-111"   "1111-W16-5"))
(f "11111111")   ⇒ ("1111-11-11" "1111-315"   "1111-W45-6"))
(f "1111W111")   ⇒ ("1111-03-13" "1111-072"   "1111-W11-1"))

In practice, users of this library will usually call date->string or timepoint->string:

(define (date->string date)
  (date->string/calendar* #t date))

My Current .mzschemerc

As an update to 2005-01-22, my current ~/.mzschemerc:

;; $Id: mzschemerc,v 1.11 2005/03/26 17:19:05 neil Exp $

(require (lib ""))

(read-case-sensitive #t)

(error-print-width 1000)

(define .p pretty-print)

(define (.e expr)
  (pretty-print (syntax-object->datum (expand expr))))

(define (.e1 expr)
  (pretty-print (syntax-object->datum (expand-once expr))))

(define (.es expr)
  (pretty-print (.ss (syntax-object->datum (expand expr)))))

(define .ss
  (letrec ((doit
            (lambda (sod head?)
              (if (syntax? sod)
                  (doit (syntax-object->datum sod))
                  (cond ((pair? sod)
                         (let ((head (car sod)))
                           (cond ((eq? head '#%app)
                                  (map doit/nohead (cdr sod)))
                                 ((equal? head '#%datum)
                                  (doit/nohead (cdr sod)))
                                 ((equal? head '#%top)
                                  (cdr sod))
                                 (else (map doit/head sod)))))
                        (else sod)))))
           (doit/head   (lambda (sod) (doit sod #t)))
           (doit/nohead (lambda (sod) (doit sod #f))))
    (lambda (sod)
      (doit/head sod))))

.ss makes a PLT syntax expansion look more like Scheme code and less like syntax objects.

The (read-case-sensitive #t) will no longer be necessary, if this morning's switchover from PLT 209 to 299.100 goes well.

Converted to PLT Scheme 299.100

I've successfully converted my computers from PLT Scheme 209 to 299.100. Most of the required changes were to exception-related code. Some I/O buffer code had to be changed to use byte strings, and rename had to be renamed to rename-super.

I had to download and build PLT from source, since 299 is not in Debian.

If you're migrating your own code from PLT 2xx to 3xx, you might find the documentation in plt/notes/mzscheme/MzScheme_300.txt very helpful.

Chana Dal

Finally cooked some of the chana (channa?) dal (daal?) mentioned on 2004-04-04.

Rinsed, soaked for over an hour, rinsed, brought to boil, cooked over low heat for over an hour, rinsed. Added salt, olive oil, various seasonings, nuked frozen "oriental stir-fry" vegetables, diced Boca fake chicken disc. Ate like a thick, chunky soup from a bowl with a spoon.

This stretches the limits on my lazy bachelor cooking investment.

Public Advisory & Vegan Challah

I don't want to alarm anyone, but I bought some Easter Special sweet bread today at Central Bakery (Portuguese-speaking stretch of Cambridge St. in Cambridge/Somerville), and— it contains eggs. Not eggs as an ingredient mixed thoroughly into the dough, but intact eggs, still in the shell, sitting in the middle of the loaf.

I was actually craving challah, which reminds me to ask: does anyone know where to buy vegan challah in Boston? (The last person I asked was taken aback by the question.) I've found recipes on the Web before, but am not up to rolling my own, so to speak.

Some silly people at Google reminded me of, a mothballed project to satirize manipulation of online network sites.

I'm planning to just let the domain expire. Unless someone has a good use for it.

ISO 8601 Weeks

;;; END "J.R. Stockton wknotest.txt" TESTS: all PASSED
;;;     (Total: 520  Passed: 520  Failed: 0)

Yesterday I added week calculations to iso8601.scm, but I'm not 100% confident in their correctness. It seems everyone gets ISO 8601 week calculations wrong, including Microsoft quite recently:

When determining the week number of a date according to the ISO 8601 standard, the underlying function call to the Oleaut32.dll file mistakenly returns week 53 instead of week 1 for the last Monday in certain years.

Microsoft KnowledgeBase article 200299, 2004-06-24

Then other people come along and use those incorrect ones as models for new incorrect ones...

("ISO 8601 Weeks" could be a heading for a personals ad: a "9 1/2 Weeks" for the long haul.)

CraigsList and Open Source Video Drivers

i have: 64MB GeForce2 AGP card, you have: ATI Radeon
Date: 2005-03-14, 2:23PM EST

I have a GeForce2 video card that I'd like to trade for a somewhat less powerful Radeon card.

(Open source software purist.)

Just had one of my better CraigsList experiences (among literally hundreds of mostly bad ones). There were no good open source drivers for my nVidia card, so I posted a barter ad. In less than a week, I met a nice person who was willing to trade a 32MB Radeon 7000. A bonus is that the Radeon card has DVI out.

Debian r5rs-doc

Users of both Scheme and Debian: the Debian r5rs-doc package, which provides R5RS in very convenient Info format, is no longer available in Debian testing. The package can be downloaded and installed (via dpkg -i) from: r5rs-doc_20010328-6_all.deb

Incidentally, Quack will probably soon default to R5RS lookups from Info.

Fujitsu Comes Through

Kudos to Fujitsu for overnighting the replacement hard drive to me. Most of Wednesday was spent configuring the new disk, and I'm mostly back in business this morning.

The drive sounds a little funny, with a knock sound after every disk activity, sometimes one knock roughly every two seconds. That might be due to the different mechanical operations of ext3 journaling, compared to ext2 before. I'm hoping it's not abnormally loud mechanics (i.e., shortened MTBF) or a realignment behavior. Linux and SMART report no problems.

Once I'm confident the laptop is fully reconfigured, I'll put up a "GNU/Linux on the IBM ThinkPad X20" Web page, so that — when this disk dies — I don't have to manually reconstruct the custom kernel .config that wasn't included in backups. (As with my GNU/Linux configuration pages for the IBM ThinkPad 560E and the Toshiba Satellite 4005CDS, my motives are not purely altruistic.)


In one of my server backup schemes, I've replaced rsync with Ben Escoto's rdiff-backup, to give me versioned incremental disk-to-disk backups. I tend toward the paranoid end of the spectrum when it comes to elements of backup schemes, but rdiff-backup was recommended to me by a highly clueful network admin.

My new rdiff-backup scheme saves enough space over my old rsync-based scheme that I didn't need to buy the new server disk that I bought last week.

Also interesting is a related tool, Duplicity, which looks like it could be used to do encrypted backups to disks over the net.

No-Confidence in Photo Editor

Looks like Harvard University president Lawrence H. Summers, having received a vote of no-confidence from the faculty, is being forcibly escorted off the property.

Block on .wmv Lifted Temporarily

I've provisionally lifted the block on .wmv files from my Privoxy actions file, since I'm now able to play some of those well with an open source codec. I still strongly discourage use of .wmv format.

Dead Fujitsu MHT2020AT Hard Drive

Sunday night, at approximately 9pm, my laptop's hard drive spontaneously died horribly. I'd gone to bed early, and the noise of the laptop hard drive self-destructing was loud enough to wake me up.

Dead is the Fujitsu drive that I bought less than 6 months ago, after the IBM Travelstar drive died. (See 2004-10-05.) The abrupt failure of the drive is a bit odd, especially since my laptop has been mostly a desktop the entire time I've had the drive.

Fujitsu's online RMA process for the MHT2020AT warns you after you've submitted the RMA application that Fujitsu might take 30 days or longer to ship a replacement after they've received the dead drive.

I'm having a little difficulty getting a callback from a Fujitsu supervisor on whether or not they'll cross-ship me a warranty replacement (secured by my credit card), like Fujitsu does for some of their other models. Fujitsu's handling of this warranty replacement will determine whether or not they join IBM/Hitachi on the hard drive blacklist. (See 2004-10-28, 2003-11-24, and 2003-11-22.)

sigbegone.el 0.11

Released sigbegone.el version 0.11. Just some rules additions.

Emacs follow-mode

While my laptop with 1024x768 display is out of commission, I'm using a computer with a 1600x1200 display, which permits a lot more of an Emacs buffer on screen at once.

To get even more buffer on screen, I'm finally trying out Emacs follow-mode. It does snaking columns across a vertical window split.

C-x 3 M-x follow-mode RET

Fujitsu Scores Points

Regarding the Fujitsu warranty issue mentioned earlier today, I just now phoned them again, and the supervisor approved the warranty replacement for shipment today.

Also in Fujitsu's favor is that, of the three times I've called the their warranty replacement line, each time I've gotten through within a few seconds.

DrScheme and Fvwm

If you use DrScheme under Fvwm, and have ResizeOpaque on in your .fvwm2rc, you need:

Style "mred" ResizeOutline

The Word Is "Propaganda"

Read this story from the Sunday NYT:

It is the kind of TV news coverage every president covets. "Thank you, Bush. Thank you, U.S.A.," a jubilant Iraqi-American told a camera crew in Kansas City for a segment about reaction to the fall of Baghdad. A second report told of "another success" in the Bush administration's "drive to strengthen aviation security"; the reporter called it "one of the most remarkable campaigns in aviation history." A third segment, broadcast in January, described the administration's determination to open markets for American farmers.
To a viewer, each report looked like any other 90-second segment on the local news. In fact, the federal government produced all three. The report from Kansas City was made by the State Department. The "reporter" covering airport safety was actually a public relations professional working under a false name for the Transportation Security Administration. The farming segment was done by the Agriculture Department's office of communications.

—David Barstow and Robin Stein, "Under Bush, a New Age of Prepackaged Television News," New York Times, 2005-03-13

As a kid, there was a time when I had a voracious appetite for nonfiction books on interrelated topics like US law, international espionage, and the societal abuses of the USSR. We in the US were the good guys, we knew all the tricks of the bad guys, and we even had some laws designed to keep us from becoming bad guys ourselves. Considering all that the Bush administration has done in the last four years to destroy America, dismantling or ignoring many of our nobler laws, this government propaganda is one of the relatively benign check-off items on the totalitarianism checklist.

(See also 2005-02-19 "Propaganda Handslapped".)


Edwin Abbott Abbott, Flatland: A Romance of Many Dimensions, second edition, 1884

Testeez 0.2

Testeez 0.2 has been released. This version adds support for multiple-values and additional equivalence predicates.

Videodrome and Reality Bites

Soon, all of us will have special names — names designed to cause the cathode ray tube to resonate.

I wouldn't say that and the like resonate all that well.

"Videodrome" was tolerable, but it had the flavor of a campy sf/horror B-movie that I should've picked up on a 3am local broadcast, not paid good money to rent. Death to "Videodrome," I say. A friend who actually studies these things says that the film was rife with symbols, and something about humans being the genitalia of machines, so I'll take her word for it.

"Reality Bites" was good. Love triangle involving Gen-Xers as hip as they are disenchanted. As usual, I disliked Ben Stiller's character. The next film I direct and co-star in, I'm definitely casting an early-20s Winona Ryder as my romantic interest. The problem with Winona back then was that she was so preciously beautiful that she dwarfs the plot. Sadly, the ten-years-later Winona interview clips on the DVD bonuses are depressing: she sounded and looked terrible, compared with the her of the film. I hope she just had the flu that day.

I should be getting my first Netflix DVDs in a couple days (I sorta have the flu myself, and am feeding it light DVDs) and shall endeavor to have further highbrow review commentary.

Cocoa Powder

Followup to 2005-02-24. Got some Valrhona cocoa powder from Christina's. Good, though I think I prefer the Dutchness of the Bensdorp (natch), at least when used in rice milk.

Galaxy Quest and Tape

"Galaxy Quest" is a good choice for situations like recovering from a bad flu or a wisdom tooth extraction. The blonde thing was a different look for Sigourney Weaver.

"Tape" was a good film in the end, but much of it was tedious to watch. At the conclusion, you share the relief of at least one of the characters.

Some of the Tape camera work during back-and-forth dialogue struck me as artfully inebriated unnecessarily. I would've thought that a simple head close-up two-shot, or even rapid cutting, would've worked better, trusting the dialogue and delivery.

"The Spectre of Bioterror Holocaust Makes Me SO Hot!"

An example of why I have a disproportionate wealth of friends who are lesbians:

You were a guest lecturer.... - w4w
Date: 2005-03-01, 3:48PM EST

A -
You spoke in one of my grad classes about bioterrorism and how Boston is preparing itself for a hypothetical attack. I thought you were cute. Just wanted to let you know.
- S

this is in or around SPH

Earlier to... 2005-02

© Copyright Neil Van Dyke      Contact