October 2002 Archives


| | Comments (0)

[pudge@bourque MacPerl]$ perl -Iblib/arch -Iblib/lib -MMacPerl -le 'print join "\n", MacPerl::Volumes()'
FF9B0000000 1:Bourque
[pudge@bourque MacPerl]$ perl -Iblib/arch -Iblib/lib -MMacPerl -le 'print join "\n", map { MacPerl::MakePath($_) } MacPerl::Volumes()'
/Volumes /Bird


Goings On

| | Comments (0)
Slashdot is moved to the West coast; use Perl; is on a temp machine while its box is packed up along with Slashdot's old boxes; Matthias finished up some MacPerl patches; I am nearing completion of the first phase of Mac::Carbon (all those base modules except for Mac::AppleEvents almost done); I am working toward cleaning it all up and releasing MacPerl 5.6.1r2; I will then turn my attentions to Mac::Carbon for awhile, and begin moving MacPerl 5.8.0 to beta; Riley is going to be walking soon; the Bruins haven't lost in their last 8 games.

I think I should take the night off.

Now Playing: Blame It On Me - Barenaked Ladies (Gordon)


Temporary Home

| | Comments (0)
use Perl; has moved to its temporary home, a box on the same network as the old box. The old box is being packed up and shipped to Exodus West from Exodus East. use Perl also has DB boxes; those are staying in Exodus East for now, which made the move easier (I just needed to install Slash, move the static files, over, and do some configuration changes).

When we get to the West coast, we'll need to set up new DB boxes, sync the data from the old DB box, copy the static files back over, update configs. We might see some downtime at that point, since we'll need to shut down the DBs, and then there's the issue of DNS (which might not be a big deal, since we have some tunnelling thing going on for stale DNS entries to be handled).

So good news: no real downtime now, and hopefully minimal in a week or so.

Now Playing: Brighter Day - Randy Stonehill (Can't Buy A Miracle)



| | Comments (0)
I just started wearing headphones regularly at my desk at home. The baby sleeps when I don't. :-) I picked them up at the Sony outlet when I got the DVD player a couple of weeks ago.

Anyway, a good set of headphones are great and all, but they really do expose some of the low bitrate MP3s for the crap that they are.

Now Playing: Then I Met You - The Proclaimers (Sunshine on Leith)



| | Comments (0)
I just had an idea for a story about musicians selling their soul to the devil for a hit song, but it turns out that so many musicians sell their soul for a hit song that the market is oversaturated, and the songs don't all become the big hits that the devil promised. I don't have an ending, but maybe the musicians could sue for their souls back (though that would be a little too Dan'l Webster-ish), or perhaps it could turn out that an industry executive, who is controlling which songs get airplay, is really the devil. Oooooo. use.perl.org
ualarm() in GUSI (the POSIX library we use for MacPerl) accepts microsecond intervals, as one expects, but converts positive intervals into milliseconds, and negative intervals into positive microseconds (well, ualarm() doesn't do it, but the Restart() method it calls does).

Apparently, this is an old Macintosh Time Manager convention, so you can specify in either milliseconds or microseconds. So ualarm() is going to be fixed, but it caused for some odd behavior in the meantime: Time::HiRes::alarm(1, .5) would not alarm in one second and then for every .5 seconds following, it would alarm 1 second and then for every 500 seconds after. Oops! No wonder the ualarm(10_000, 10_000) call in HiRes.t took so long to complete.

Now Playing: Tears In Heaven - Eric Clapton (Unplugged)


RSS Validator

| | Comments (0)
Validate your RSS. Validate our RSS.

Now Playing: Into My Life - Men At Work (Brazil)

BTW, I always think this song says, "I still can't light up your farts from waiting on you." It's s/farts/fire/, apparently. use.perl.org

Hand Signals

| | Comments (0)
I can never figure out the hand signals used by the military personnel in TV and movies. I found an interesting and entertaining web site with some information about such things. Warning: many B&W images ahead! use.perl.org

Daylight Savings Time

| | Comments (0)
DST sucks, in case you didn't know.
  • America doesn't entirely follow it (see Indiana).
  • Europe does it on different days, and at 1 a.m. instead of 2 a.m.
  • Australia has it reversed from Europe (being down under), but at 2 a.m., and not all the country follows it: apparently there is an Australian Western Daylight Time, but it is not actually used.
  • New Zealand's DST -- which started the beginning of October, not the end -- is GMT +1300h. Note that the date line is +1200h and -1200h. Freaks.
  • Israel doesn't follow any specific calendar date for DST, but changes it every year by law.
  • Iraq follows their own calendar, one I can't be bothered to figure out.
Oh, and there is a lot more, of course, but that's some of the more interesting points to me right now. I've coded up DST-adjustment stuff for Slash, which involves:
  • Removing all daylight savings timezones from the list you may select from, and adding them as separate fields to the standard timezones (so you may not select EDT, only EST). Also, a script to move people from old timezones to new ones (some changed names, some were consolidated, etc.).
  • Adding a new table for dst "regions", which currently are America, Europe, Australia, and New Zealand. These comprise a set of numbers that describe when DST begins and ends for that "region." Each timezone with a corresponding daylight savings timezone may have a DST region, so DST may be automatically adjusted for users with that timezone.
  • Adding a new preference to select that DST is adjusted Automatically, or is Manually On, or is Manually Off. So for you people in Israel, you can just select Eastern Europe time and then adjust Manual On/Off for yourself.
  • Then there's the code, that on authentication, will check the current time against the timezone and region you are in and see if you should be in DST, and if so, adjusts your offset and timezone accordingly (EST/-18000 -> EDT/-14400) .
  • For selected timezones that have no "region," DST will not be set automatically, but may be set manually. If the timezone has no corresponding daylight savings timezone, and Manual On is selected, then a default of +3600 is used for the offset adjustment.
This will be going live today, and hopefully will kick in this weekend for those of us in Australian, European, and American timezones.

Now Playing: Sports & Wine - Ben Folds Five (Ben Folds Five)



| | Comments (0)
I want Police Chief Moose to get in front of the camera at a press conference and say, "Mr. Sniperman, I have made it my MISSION in LIFE to DESTROY you!," with his head-veins bulging, and a wild look in his eyes.

And then regain his composure and remark, "Ha, I'm just screwing around. I mean, don't get me wrong, I want to catch him, but I'm just screwing around. Tension breaker, you know how it is."

Now Playing: Won't Last Long - Tom Petty & The Heartbreakers (Echo)



| | Comments (0)
I was looking around for fsetfileinfo on Apple's site, and came up with some release notes for CarbonStdCLib from last year that mentioned it being added to stdio.h, and also mentioned a function ConvertHFSPathToUnixPath(). But I cannot find any mention of this function anywhere else on the Internet, just in these release notes. Weird. One would think it would be in a header file somewhere, or documented in other release notes, or *gasp* in some documentation somewhere.

Now Playing: Without You (Bonus Track) - Lenny Kravitz (5)


PowerBook Combo Drive Woes

| | Comments (0)
For the weird notification thing I was getting, I found out the problem. I had STDERR messages such as

## Component Manager: attempting to find symbols in a component alias of type ...

any time I tried to look up a new component from the Component Manager, including just using osascript from the command line (which needs to look up the generic scripting component). I merely removed Toast Video CD Support.qtx from /Library/QuickTime/. Bad Roxio, Bad!

But worse, last night (coincidentally, while burning a Video CD as a test for my new DVD player), I discovered that my PowerBook will no longer eject discs. Somehow there is some sort of blockage. To get the VCD out I had to open up the whole PowerBook case. This is extraordinarily frustrating. I think this is all a plot to make sure PowerBook users purchase AppleCare.

Now Playing: My Old School - Steely Dan (Countdown to Ecstasy)

So I've got Mac::MoreFiles essentially working under Mac OS X. I need to get the MacPerl package working, for many reasons, not the least of which is that %Application requires MacPerl::Volumes(). I have most of MacPerl done, including DoAppleScript:

[pudge@bourque]$ perl -MMacPerl=:all -le '$x = DoAppleScript(q{tell app "Finder" to get version}); print $x || $@'
## Component Manager: attempting to find symbols in a component alias of type (regR/carP/x!bt)

I wonder if there is any way to not have that "Component Manager" notification printed? I can redirect it to STDERR, but still, it's annoying. It's new, I've never seen it before today, and it even happens with a simple osascript(1). What the heck?

Anyway, so I needed to get Apple's MoreFiles sample code working, which required a few minor changes, basically just editing out a few lines, and making sure O_FILES was added to OBJECT. Because there is a MoreFiles.c in the sample code, MacPerl had made MoreFiles.xs into MF.xs, so there was no conflict. This caused some problems for me, so screw it, I made MoreFiles.c into MoreFilesOrig.c and MF.xs is now MoreFiles.xs. It's mostly happy for now, though I still need to figure out implementations for GUSISpecial2FSp, fsetfileinfo, and fgetfileinfo. Next up: Mac::AppleEvents! use.perl.org

use Perl Downtime

| | Comments (0)
use Perl may have some downtime coming up (ha! down, up ... sigh). The machine is being moved to a new colo facility across the country in about a week, and worst case is that it is down for as many as seven days. Well, the worst case is that it is down for a lot longer, because something goes horribly wrong. But it is likely that we will instead move the web server temporarily to another machine until the new box is up, and the downtime in that case should be only a few hours. When I know more, I'll post it, and I'll post the final plans to the home page if it will mean significant downtime. use.perl.org

Blogs Do Not Exist

| | Comments (0)
I was reading Doc Searls this morning and he was wanking off regarding some nonsense about how blogging is this new experiment, we're just learning how to do it, relating it to "big-J journalism," wank wank wank wank wank. Blogging as is known here is nothing different than an old BBS. Nothing different at all. Someone posts their thoughts, others respond. This is the same old stuff over and over again. Blogging is not new. Blogging is not interesting. Blogging does not exist, because "blog" is one of the stupidest-sounding words ever invented and I am never going to use it again, because I feel like a moron just typing those four letters in succession.
</rant> use.perl.org

DVD Player

| | Comments (0)
I went to a Sony outlet in Massachusetts and found a refurbished DVP-NC655P DVD player. It plays CD-R/CD-RW/DVD-R/DVD-RW, MP3 CDs, and VCDs. It has coax and optical digital outs. It has a 5-disc changer. It has some nifty video features for sharpening the picture, plenty of controls and display options (showing all angles at once), and a decent remote. It has progressive scan output. It's fast and works well. I'm happy with it.

The only thing that sucks about it is that it has a volume control, but only has codes for about eight brands of receivers; so I can't change the volume with the remote control (please don't tell me about all the great universal remotes out there, I know :-).

So I went to Radio Shack to buy a coaxial cable for the digital audio, and the 40-something-ish manager asks if he can help. I don't want to spend time looking (it takes me a few minutes to get my bearings in the cable section), and I know what I want, so I say I need a coaxial cable for digital audio. Simple, right?

He asks what length, I say six feet. He hands me a six-foot coax cable such as for cable TV. No, for digital audio, I say. It's slightly different, and has a different connector. He says oh, the only way to get a true digital signal is with optical cable. No, I assure him, the coax connection sends exactly the same signal. He assures me that no, the DVD player will convert it to analog first, and then send the audio signal.

I literally laughed at him (not intentionally) as I tried to explain that he was incorrect, that this was not a regular RCA audio cable, but a coaxial cable with an RCA connector, and it transmits the pure digital signal, but he wasn't budging.

But I do like my new DVD player. use.perl.org


| | Comments (0)
Just now I turned on the World Series, Game 1, to see the score. Noting it was 0-0 in the second, I almost turned back to the other show I was watching, until I saw Barry Bonds was at the plate. The count was 2-1. I decided to watch for the home run. It came on the next pitch.

Go Giants. use.perl.org

Mac OS X Backups

| | Comments (0)
I need a backup solution for Mac OS X. Nothing fancy: just back up my files and programs, via FTP or file server or somesuch, to a remote server, and be able to restore individual files or directories.

Backup from Apple is a nice solution, but works only with .mac. I have a .mac account, but I have gigabytes to back up. I need it to be a local remote, not a remote remote. :-) I like Retrospect, and Retrospect Express would work for me, but it is $50 for a single client.

Are there any other solutions out there?

Now Playing: Mama I'm Strange - Melissa Etheridge (Breakdown)


Mixerman Documentary

| | Comments (0)
This is hilarious. Mixerman documenting the recording of an album with a nameless band and producer.

Now Playing: Pretty Little Angel - Stevie Wonder (For Once In My Life / Uptight)


I Need a DVD Player

| | Comments (0)
My current DVD player is dying. I need a new one, but I am a bit ignorant about DVD players. I'd prefer to get one now rather than later, though I could wait if something new is around the corner. Some considerations:
  • Progressive scan. I want this, as I want to be able to use the player with a digital TV eventually, but can I use a progressive scan player with an analog TV, too?
  • Video DAC. Should I care about the specs of video digital-to-audio conversion, '10-bit 54mHz Video D/A Conversion with Super Anti-Alias Filter' and whatnot? Anything else related to video (number of scan lines, etc.) I should care about?
  • CD-R, DVD-R, etc. This site lists player compatibility with various writable media, which is helpful; I want it to play all the major media types (MP3 not really necessary, as I have a networked laptop hooked up to the same stereo that has access to my entire MP3 collection).
  • Coaxial digital out. My amp has two digital ins, one for optical (which is already in use by the DirecTiVo) and one for coaxial.
  • Multidisc. It would be nice, but is not necessary. Hm, what about one of them 100 disc units?
  • Lasers. Should I care about the number of lasers? Is this related to whether a multilayer disc will have a pause or not?
Thanks for any input you may have. :)

Now Playing: The Last DJ - Tom Petty & The Heartbreakers (The Last DJ)



| | Comments (0)


| | Comments (0)
Seen in IRC.

11:44:43: jamie: ooh, today is World Standards Day... and there's a POSTER!
11:44:45: jamie: http://www.iso.org/iso/en/commcentre/wsd/2002wsdindex.html
11:45:16: jamie gets to work on a competing poster design

Now Playing: Swingin' - Tom Petty & The Heartbreakers (Echo)



| | Comments (0)
I purchased Watson today. You should too.

It's sorta like Sherlock for Jaguar, though this belies the fact that Watson preexisted Sherlock for Jaguar. It's faster and has a lot more tools than Sherlock does, and it has an open architecture for making more tools. I like Sherlock's AppleCare, Dictionary, and Yellow Pages tools better, but Watson is, overall, a superior product. Additional features I like: Football Scores tool, TV tool, Google tool, Amazon.com tool, Package tracking tool, Weather tool. There's a lot more, but those are the additional ones I use often.

FWIW, I don't think there's much to the Watson claim that Sherlock stole from them. There are some places where perhaps Sherlock stole from Watson, but most of Watson is based on standard Mac OS X look-and-feel, standard web services, and obvious designs. I love Watson, but a lot of it seemed fairly obvious to me.

Now Playing: Born In The 50's - The Police (Message In A Box)



| | Comments (0)
Today was Loot the Old Office Day. I got three chairs and a whiteboard. I didn't get the pool table; I didn't want to pay to haul it away. Nor did I get the fax machine, which someone else snagged. use.perl.org

GUSI Emulation

| | Comments (0)
I did some more work on GUSI emulation, and with the help of Dan Sugalski on some, um, good practices with C, and a few words from Matthias, I was able to get most of it done. I have GUSIPath2FSp, GUSIFSp2FullPath, and GUSIFSp2Encoding being emulated properly (more or less), and have GUSIFSpUp and GUSIFSpDown yet to do.

There are a few functions that do not pass their paths through GUSI routines before sending them to Carbon. For now, these routines (such as NewAliasMinimalFromFullPath) will require Mac-style paths; all other routines will accept Unix-style paths, and return Unix-style paths. Witness the bizarre:

$ perl -MMac::Files -le 'print scalar ResolveAlias NewAliasMinimalFromFullPath("Bird:tmp:perl:macos:" );'

On the relative path front, it's interesting to note that by switching to Unix-style paths, I went with FSPathMakeRef, which seems to automatically handles relative paths, aliases, etc. Nifty.

I played around more with Notification; it is a little bit hampered, I think, in that it is designed to work with the current application. perl is not an application. It doesn't have an icon in the Dock to bounce. It'd be nice if I could find a way to bounce the icon of an arbitrary application, or maybe the parent application.

In Notification.t, the basic logic is to wait until the current process is not the front process. Well, similarly, perl is the current process, but is never the front process. The processLauncher parameter, though, tells us perl's parent (which in my tests, can be either Terminal or BBEdit), and then I can use that process number for the logic, and automatically grab the name (processName) of the process while I am at it. So when you run it, it'll say "Please switch $name to the background".

And now when I run Processes.t, I get Unix-style paths for the processAppSpec parameter. Wow. Blows my mind, man.

Now Playing: Doggin' around - Jackie Wilson (The Very Best Of Jackie Wilson)


A Little More

| | Comments (0)
OK, I wanted to do a few more, so I built Processes and Notification, too. Processes seems to work fine (once again, modulo the file spec issues); I can print out most of the information about each process (including PSN, but not yet the path), and I can launch an application by its full path.

And the notification thing is cool; I can bring up a dialog window with a notification message. I can get it to beep, too, but for some reason it won't play a sound from a resource right now. Oh well.

Now Playing: Smokescreen - Lost Dogs (Scenic Routes)


Carbon Moving Forward

| | Comments (0)
I've got a basic framework laid out now, I think. Right now my biggest problem is with file specs (a specific Mac type, FSSpec).
  • It's easy to convert a full path to a file spec, but it is more difficult to convert a relative path.

  • It makes little sense to use Mac paths, so on input, paths will need to be converted to POSIX, and on output the same.

  • The Carbon routine I found to convert a file spec to a path does output POSIX paths, so that helps. Although, I am having trouble making it not segfault. I need to pass in UInt8 for the pointer to the path, and the routine should return char *, and everything I try results in a segfault when it hits sv_setpv(). I hate C.

Anyway, that's the log for today. So far, I have Types, Resources, Gestalt, Memory all working fairly well, aside from the "must be asbolute path" caveat. Files is mostly working. MoreFiles is next, then Processes. "Last" will be AppleEvents -- the most difficult one, I still suspect -- although I likely will also do portions of MacPerl.pm.

("Last" meaning for the work needed for Mac::Glue; there are others possible, like InternetConfig, Speech, and a slew of GUI modules.)

Now Playing: To Forgive - Steve Taylor (On The Fritz)


Former Philadelphia Mayor Ed Rendell, now a candidate for governor of Pennsylvania, has been poking fun at his Republican opponent, Mike Fisher, for running an ad in which an actor posed as a cabbie. Rendell has cut an ad featuring actual cabbies.

Gar Joseph of the Philadelphia Daily News phoned one such cabbie. Here's part of the conversation:

"Did the Rendell people ask if you really support him."

"No, they told us what to say."

"Did they pay you?"

"50 dollars."

"Are you actually going to vote for Rendell?"

"I can't. I'm not a citizen yet."
-- Below The Fold, Fox News Sunday

Now Playing: Brand New Day - Sting (All This Time)


But as to the waistline ...

| | Comments (0)
There ain't no football loss that a five-pound bucket of cookie dough can't fix. use.perl.org


| | Comments (0)
It's the middle of the day, in the middle of the week, and I've been working a lot this week but feel like I've gotten not much done.

I don't know about you, but I blame Iraq.

Now Playing: Grey Street - Dave Matthews Band (Busted Stuff)

<pudge/*> (pronounced "PudgeGlob") is thousands of posts over many years by Pudge.

"It is the common fate of the indolent to see their rights become a prey to the active. The condition upon which God hath given liberty to man is eternal vigilance; which condition if he break, servitude is at once the consequence of his crime and the punishment of his guilt."

About this Archive

This page is an archive of entries from October 2002 listed from newest to oldest.

September 2002 is the previous archive.

November 2002 is the next archive.

Find recent content on the main index or look in the archives to find all content.