Computers: April 2002 Archives
I found out why alarm/SIGALRM wasn't working. Safe signals! I needed to add a signal check to MacPerl's PERL_ASYNC_CHECK ... essentially just a if (PL_sig_pending) { despatch_signals() }. The signals were never being raised. I was about to define PERL_OLD_SIGNALS when I looked around and saw its mention in mg.c:Perl_csighandler, and followed the trail to Perl_raise_signal and beyond.
I was watching Law & Order: Criminal Intent, and a wife sees email on her husband's account from "SexyRita", and she immediately grows concerned, and reads it, and finds out it was in response to a personal ad ... but what are the chances that email from someone by that name is *real*, and not spam? PLEASE!
Last night I ran into trouble with the new Time::Local, at first thinking it made incorrect epoch assumptions. It didn't do that, but it did make incorrect assumptions about whether or not time_t was signed or unsigned, and whether or not time() was in seconds since the epoch in local time, or in GMT. Yowzers. However, Graham Barr was exceedingly patient and helpful in arriving at a resolution, and now it passes all tests for me.
So once that got fixed, I tried using MacPerl 5.7.3a1 to run my "compare_slash" program, which uses Mac::Glue (and a dozen other modules) to talk to Interarchy and BBEdit and compare my Slash source trees on my Linux dev box and my local Mac box. And it works just fine. No problems at all; Time::Local had been puking on me, but once it was restored, everything Just Worked. I am therefore fairly optimistic about getting MacPerl 5.8 out the door in what should be (to me :-) a reasonable amount of time. I still have a lot of work left to do on it, but far, far less than what it took for 5.6; mostly just a few more configuration tasks, and then the testing.
So once that got fixed, I tried using MacPerl 5.7.3a1 to run my "compare_slash" program, which uses Mac::Glue (and a dozen other modules) to talk to Interarchy and BBEdit and compare my Slash source trees on my Linux dev box and my local Mac box. And it works just fine. No problems at all; Time::Local had been puking on me, but once it was restored, everything Just Worked. I am therefore fairly optimistic about getting MacPerl 5.8 out the door in what should be (to me :-) a reasonable amount of time. I still have a lot of work left to do on it, but far, far less than what it took for 5.6; mostly just a few more configuration tasks, and then the testing.
Thanks to jhi and Schwern and gsar, I've got a good build of MacPerl 5.7.3, with all the extensions (except for Encode, which looks to be a lot of work to get to build), using all four compilers (MWC68K, MWCPPC, SC, MrC) and it's all committed to the new //depot/macperl/ branch on the perforce repository (MacPerl 5.6 is in //depot/maint-5.6/macperl/).
There were very few changes to make from the 5.6.1 sources. Some updates to inheritance in MakeMaker, updated xsubpp, updated Makefile and config.h, some new symbols to take care of in makedef.pl, and a few minor things not worth mentioning. That's it.
I did make changes in File::Spec::Mac and File::Copy so they would be able to run under miniperl, as they were require'ing Mac::Files and Mac::MoreFiles. But those are changes that [cs]hould have been made for 5.6.1 anyway. So now syscopy is regular copy and rootdir returns the empty string, if those modules are unavailable.
I still need to do a few more things, including rebuilding Errno, syncing config.sh (yes, it is a separate job from syncing config.sh), and, last but last, running all the tests (which will likely include another change to MacPerl's use of Unix paths in require/use/lib). Hopefully this will not uncover a big batch of things that need to be fixed. :-)
After I get this well underway, I will get back to MacPerl 5.6.1r2, a bugfix release. That's been pushed back a few weeks so I could work on 5.8, but I don't think anyone is going to be complaining much.
There were very few changes to make from the 5.6.1 sources. Some updates to inheritance in MakeMaker, updated xsubpp, updated Makefile and config.h, some new symbols to take care of in makedef.pl, and a few minor things not worth mentioning. That's it.
I did make changes in File::Spec::Mac and File::Copy so they would be able to run under miniperl, as they were require'ing Mac::Files and Mac::MoreFiles. But those are changes that [cs]hould have been made for 5.6.1 anyway. So now syscopy is regular copy and rootdir returns the empty string, if those modules are unavailable.
I still need to do a few more things, including rebuilding Errno, syncing config.sh (yes, it is a separate job from syncing config.sh), and, last but last, running all the tests (which will likely include another change to MacPerl's use of Unix paths in require/use/lib). Hopefully this will not uncover a big batch of things that need to be fixed. :-)
After I get this well underway, I will get back to MacPerl 5.6.1r2, a bugfix release. That's been pushed back a few weeks so I could work on 5.8, but I don't think anyone is going to be complaining much.
Nat has 100 friends on use Perl. A lot of people read his journal. However, far fewer people read your journal. Many more people read the front page than read your journal. If something interesting happens that might be of general interest to the Perl community, consider hitting that "Submit Story" link and submit it for general consumption.
It seems like there's not much Perl news these days. But that can't be the case. So submit your news stories. If you do, you'll get a cookie! Sure, it'll be an HTTP cookie, but if I meet you at a Perl conference, I might make it a real cookie, like something from Keebler.
Oh, and FWIW, the SOAP interface is working; this entry is proof. :-)
It seems like there's not much Perl news these days. But that can't be the case. So submit your news stories. If you do, you'll get a cookie! Sure, it'll be an HTTP cookie, but if I meet you at a Perl conference, I might make it a real cookie, like something from Keebler.
Oh, and FWIW, the SOAP interface is working; this entry is proof. :-)
People are already camping out to get Star Wars Episode II tickets. Some people have been camping out since New Year's Day. Why? So they can see it before anyone else.
I cannot understand why this is important to anyone. Who cares when someone else sees it? Will it significantly impact your life in any way to see it the second or third day? Oh, I suppose you won't be able to put "I Saw It First" on your resume or tell people at parties how cool you are, but if you need to do these things ... well, I guess this is why these people are almost universally labelled "losers".
I cannot understand why this is important to anyone. Who cares when someone else sees it? Will it significantly impact your life in any way to see it the second or third day? Oh, I suppose you won't be able to put "I Saw It First" on your resume or tell people at parties how cool you are, but if you need to do these things ... well, I guess this is why these people are almost universally labelled "losers".
I've put makeslides on SourceForge.net. In CVS and a real distribution, with README and everything, to boot! Thanks to Richard Dice for some recent patches for frames (I still look non-framed version better, which is still an option) and for the README. It has some bugs in it yet; file any more bug reports you have, or submit patches, at the site.
I took the demo Google API script and modified it to work to my needs. First, I made it pop up a dialog asking for search terms using MacPerl::Ask(). I reorganized it slightly, and added simple XML escaping (so I could search for "A&E"). Then I made a Template to output an HTML file, and used Mac::InternetConfig::GetURL() to open the file in my browser.
The result is this. A web page that looks how I want it to look. And since I can execute the script from any program with cmd-opt-shift-] (using OSAMenu), it is very convenient.
Sure, I could just have the script do GetURL("http://www.google.com/search?query=$searchterms"), but where is the fun in that? Plus, I could extend this to do a more elaborate dialog box, which would include a list of available search engines (using WWW::Search, perhaps), and a Google-like option to merely open the first returned site directly.
NOTE: MacPerl has a bug or two in it that prevents installing Template through normal means. Will be fixed in next release (necessary patches for MacPerl and for Template have been submitted).
The result is this. A web page that looks how I want it to look. And since I can execute the script from any program with cmd-opt-shift-] (using OSAMenu), it is very convenient.
Sure, I could just have the script do GetURL("http://www.google.com/search?query=$searchterms"), but where is the fun in that? Plus, I could extend this to do a more elaborate dialog box, which would include a list of available search engines (using WWW::Search, perhaps), and a Google-like option to merely open the first returned site directly.
NOTE: MacPerl has a bug or two in it that prevents installing Template through normal means. Will be fixed in next release (necessary patches for MacPerl and for Template have been submitted).
#!/usr/bin/perl -lwResults in:
use Digest::MD5 2.16 qw(md5_hex);
$a = "foo\x{100}";
chop($a);
print " : ", md5_hex("");
print "$a: ", md5_hex($a);
print "foo: ", md5_hex("foo");
__END__
: d41d8cd98f00b204e9800998ecf8427eDigest::MD5 changed to use SvPVbyte to get the value of the passed SV, instead of SvPV, and it totally broke in perl 5.6. For some reason, the fact that $a has UTF8 flag on makes it blow up. Fun fun fun! Gisle's looking into it; at the very least, maybe it can be changed to use SvPV for < 5.7, but still.
Use of uninitialized value in subroutine entry at Untitled #6 line 9.
foo: d41d8cd98f00b204e9800998ecf8427e
foo: acbd18db4cc2f85cedef654fccc4a4d8
The original test case was using the result of XML::RSS / XML::Parser. Should XML::Parser be flagging SVs UTF8 in the first place, especially if there's no high-bit characters in them?
Delivered-To: pudge@pobox.comAnd later:
Delivered-To: perlmail-pudge@perl.org
Date: Thu, 18 Apr 2002 02:26:55 -0400
From: "László L. Orosz" <lorosz@suffolk.lib.ny.us>
X-Accept-Language: en
To: pudge@perl.org
Subject: Re: [use Perl] use Perl user password for vulpes_aureus
Do not genrate more junks, please! My password is: xxxxxxxx. What is wrong whith that???
pudge@perl.org wrote:
Your new password is xxxxxxxxx. Your old password will still work until
this password is used. Go to the URL below to log in:
<http://use.perl.org/index.pl?op=userlogin& amp;upasswd=xxxxxx&unickname=vulpes_aureus& ;returnto%3D%2Fusers.pl%3Fop=changepasswd>
Make sure you then CHANGE YOUR PASSWORD!
If you have received this message without having requested it, it is
because someone attempted to use your username or e-mail address. It
was mostly likely an innocent mistake, and they are not getting your
password, so you can safely disregard this message.
Thanks.
=========================== ===========================================
You have received this message because you subscribed to it
on use Perl. To stop receiving this and other
messages from use Perl, or to add more messages
or change your preferences, please go to your user page.
http://use.perl.org/my/messages/
You can log in and change your preferences from there.
Delivered-To: pudge@pobox.comI have several things I could tell this person to help him. But I give my free time to this site, and there are so many other people who want things done on it who are polite. I don't need it. And so he won't get it.
Delivered-To: perlmail-pudge@perl.org
Date: Thu, 18 Apr 2002 02:44:20 -0400
From: "László L. Orosz" <lorosz@suffolk.lib.ny.us>
X-Accept-Language: en
To: pudge@perl.org
Subject: Re: [use Perl] use Perl user password for vulpes_aureus
No matter what I put in the password field your fricken machine rejekts me. Your system stinks, becouse it never veryfied the password! Other places, it has to be entered twice, and if no mach repeat it. You tell to chanege the password, but how can be change you give no clue!
pudge@perl.org wrote:
Your new password is xxxxxxx. Your old password will still work until
this password is used. Go to the URL below to log in:
<http://use.perl.org/index.pl?op=userlogin& amp;upasswd=xxxxxxx&unickname=vulpes_aureus&am p;returnto%3D%2Fusers.pl%3Fop=changepasswd>
Mak e sure you then CHANGE YOUR PASSWORD!
If you have received this message without having requested it, it is
because someone attempted to use your username or e-mail address. It
was mostly likely an innocent mistake, and they are not getting your
password, so you can safely disregard this message.
Thanks.
=========================== ===========================================
You have received this message because you subscribed to it
on use Perl. To stop receiving this and other
messages from use Perl, or to add more messages
or change your preferences, please go to your user page.
http://use.perl.org/my/messages/
You can log in and change your preferences from there.
So I have five Apple laptops of different models in my home currently. Four have internal AirPort, one has a WaveLAN PC Card. All work great, except for the most expensive one, the TiBook. In some spots in my home its signal strength is horribly weak.
I can use the WaveLAN PC Card under Mac OS 9, but there is no software to easily switch between the two cards. The Orinoco software which I thought would work (just let it handle the PC card, and let AirPort software handle the internal card!) won't, because the Orinoco driver now has a "feature" where it can work with the internal AirPort card. Hm. Maybe I'll see if I can disable that feature.
Anyone know about antennas for 802.11 cards, or better yet, internal AirPort cards?
I can use the WaveLAN PC Card under Mac OS 9, but there is no software to easily switch between the two cards. The Orinoco software which I thought would work (just let it handle the PC card, and let AirPort software handle the internal card!) won't, because the Orinoco driver now has a "feature" where it can work with the internal AirPort card. Hm. Maybe I'll see if I can disable that feature.
Anyone know about antennas for 802.11 cards, or better yet, internal AirPort cards?
cpan> i SOAP::LiteDarn, need to reload the index. OK, try again:
CPAN: Storable loaded ok
Going to read/root/.cpan/Metadata
Module id = SOAP::Lite
CPAN_USERID KULCHENKO (Paul Kulchenko <paulclinger@yahoo.com>)
CPAN_VERSION 0.51
CPAN_FILE K/KU/KULCHENKO/SOAP-Lite-0.51.tar.gz
MANPAGE SOAP::Lite - Client and server side SOAP implementation
INST_FILE/usr/local/lib/perl5/site_perl/5.6.0/SOAP/Lite.pm
INST_VERSION 0.51
cpan> i SOAP::LiteBetter! But
Module id = SOAP::Lite
CPAN_USERID KULCHENKO (Paul Kulchenko <paulclinger@yahoo.com>)
CPAN_VERSION 0.55
CPAN_FILE K/KU/KULCHENKO/SOAP-Lite-0.55.zip
MANPAGE SOAP::Lite - Client and server side SOAP implementation
INST_FILE/usr/local/lib/perl5/site_perl/5.6.0/SOAP/Lite.pm
INST_VERSION 0.51
cpan> install SOAP::LiteD'oh! No worries, I'll get it soon.
Running install for module SOAP::Lite
Running make for K/KU/KULCHENKO/SOAP-Lite-0.55.zip
Fetching with LWP:
http://cpan.mirrors.netnumina.com/authors/id/K/KU/ KULCHENKO/SOAP-Lite-0.55.zip
Scanning cache/root/.cpan/build for sizes
CPAN: MD5 loaded ok
Fetching with LWP:
http://cpan.mirrors.netnumina.com/authors/id/K/KU/ KULCHENKO/CHECKSUMS
Checksum for/root/.cpan/sources/authors/id/K/KU/KULCHENKO/SOA P -Lite-0.55.zip ok
Cannot unzip, no unzip program available
Perl 6 scares me.
What is Perl? Well, Perl is many things, not the least of which, at least in regard to the people on this site and others, is a community. And Perl 6, frankly, threatens that community.
I see all of this cool code that I and other people make, share, and use. When Perl 6 is out, how will this continue? I have no plans to use Perl 6, and I am not alone. And many people will use Perl 6 for all new projects.
Bottom line: what's going to happen to the community? It will fracture, but along what lines? Will use.perl.org grow into factions?
There are some existing examples that might be instructive. First, closest to me right now, is the split between Mac OS and Mac OS X. I still use Mac OS primarily (although at the moment I am in Mac OS X, using fink to compile bunches of thingys). In #macdev, few people discuss Mac OS anymore. Most of my Mac friends use Mac OS X exclusively now, and as a result, we have far less to talk about with each other. And as noted in a previous entry, my kind is a second-class citizen to Apple. Certainly Perl 5 is not going to be deprecated any time soon as Mac OS is being, but what about comp.lang.perl.misc? PerlMonks? perl5-porters? Will cries of "upgrade to Perl 6" become the average response to problems in Perl 5?* Will O'Reilly or Yet Another Society slowly -- or quickly -- phase out Perl 5 talks and sessions in favor of Perl 6?
There are other examples, of course. But all of them point to the same result: a fractured community. Will I cease to use Simon's code since it is all in Perl 6? Will I bother to read gnat's journal because it is mostly about what he is doing with Perl 6 books and conferences?
I don't want to tell people not to use Perl 6. But I fear losing those who migrate to it.
I don't want any of this to happen. But it will. The question is not whether or not the community will fracture, but what the final result will mean for the community as a whole and the respective pieces. Certainly, Perl is not a single community; PerlMonks is distinct from use.perl.org, comp.lang.perl.misc is distinct from #perl, perl5-porters is distinct from perl5-porters a few years ago. And we peacefully coexist. Perhaps the greatest damage to the community will be not on the macro level, but the micro level. Maybe the thing I fear the most is not the Death of the Perl Community, but the death of my involvement in it, as I currently know it, and further the death of Perl 5 itself, which I have come to love, with no signs yet of any amicable feelings toward the new beast in development.
Only time will tell, I suppose.
[* I don't want this journal entry to be about the specifics of Perl 5/6, but the effects the split between the two versions will have on the community; however, I think it is important to note that this happening will really cheese me. Perl 6 is not Perl 5, and there is no reason to expect anyone to "upgrade" to Perl 6 from Perl 5, as it will be no "upgrade" at all, but a migration to a new language. Flame me if you must, but Perl 6 is a completely different language, based on Perl 5. Some people compare Perl 5->6 as Perl 4->5. It's not. Perl 5 added quite a bit, but removed very little. Perl 6 is removing or completely changing a lot. I have no wish to use a completely different language. I have a wish to continue using what I like and what has worked well for me for many years.]
What is Perl? Well, Perl is many things, not the least of which, at least in regard to the people on this site and others, is a community. And Perl 6, frankly, threatens that community.
I see all of this cool code that I and other people make, share, and use. When Perl 6 is out, how will this continue? I have no plans to use Perl 6, and I am not alone. And many people will use Perl 6 for all new projects.
Bottom line: what's going to happen to the community? It will fracture, but along what lines? Will use.perl.org grow into factions?
There are some existing examples that might be instructive. First, closest to me right now, is the split between Mac OS and Mac OS X. I still use Mac OS primarily (although at the moment I am in Mac OS X, using fink to compile bunches of thingys). In #macdev, few people discuss Mac OS anymore. Most of my Mac friends use Mac OS X exclusively now, and as a result, we have far less to talk about with each other. And as noted in a previous entry, my kind is a second-class citizen to Apple. Certainly Perl 5 is not going to be deprecated any time soon as Mac OS is being, but what about comp.lang.perl.misc? PerlMonks? perl5-porters? Will cries of "upgrade to Perl 6" become the average response to problems in Perl 5?* Will O'Reilly or Yet Another Society slowly -- or quickly -- phase out Perl 5 talks and sessions in favor of Perl 6?
There are other examples, of course. But all of them point to the same result: a fractured community. Will I cease to use Simon's code since it is all in Perl 6? Will I bother to read gnat's journal because it is mostly about what he is doing with Perl 6 books and conferences?
I don't want to tell people not to use Perl 6. But I fear losing those who migrate to it.
I don't want any of this to happen. But it will. The question is not whether or not the community will fracture, but what the final result will mean for the community as a whole and the respective pieces. Certainly, Perl is not a single community; PerlMonks is distinct from use.perl.org, comp.lang.perl.misc is distinct from #perl, perl5-porters is distinct from perl5-porters a few years ago. And we peacefully coexist. Perhaps the greatest damage to the community will be not on the macro level, but the micro level. Maybe the thing I fear the most is not the Death of the Perl Community, but the death of my involvement in it, as I currently know it, and further the death of Perl 5 itself, which I have come to love, with no signs yet of any amicable feelings toward the new beast in development.
Only time will tell, I suppose.
[* I don't want this journal entry to be about the specifics of Perl 5/6, but the effects the split between the two versions will have on the community; however, I think it is important to note that this happening will really cheese me. Perl 6 is not Perl 5, and there is no reason to expect anyone to "upgrade" to Perl 6 from Perl 5, as it will be no "upgrade" at all, but a migration to a new language. Flame me if you must, but Perl 6 is a completely different language, based on Perl 5. Some people compare Perl 5->6 as Perl 4->5. It's not. Perl 5 added quite a bit, but removed very little. Perl 6 is removing or completely changing a lot. I have no wish to use a completely different language. I have a wish to continue using what I like and what has worked well for me for many years.]
The ADC newsletter for the first time rejected MacPerl as a news item. Why? Because: "My manager at Apple pulled it because it doesn't work with Mac OS X."
Sorry, I didn't realize that all Apple developers use Mac OS X exclusively now. SILLY ME. We wouldn't want to tell people about cool new software for Mac OS 9; that might make it look like people still use Mac OS 9! Even though we still support Mac OS 9! And still warranty computers that don't run Mac OS X at any reasonable speed!
Sorry, I didn't realize that all Apple developers use Mac OS X exclusively now. SILLY ME. We wouldn't want to tell people about cool new software for Mac OS 9; that might make it look like people still use Mac OS 9! Even though we still support Mac OS 9! And still warranty computers that don't run Mac OS X at any reasonable speed!
I've been listening to Béla Fleck and the Flecktones recently. Mmmmm, banjo-y goodness. His classical album is pretty cool too. I had almost forgotten about the Flecktones until I saw them recently on Sessions at West 54th, a concert show on Trio (that used to be on some other channel ... I think maybe A&E or something). Lots of great musicians on that show.
Trio's also been broadcasting a new series called The Score, which is where composers get together with other movie people (directors, actors, etc.) and talk about the music behind the movie. Danny Elfman and Marc Shaiman have been two of the great composers on there recently.
I've not been coding for the last week. YAY!
Trio's also been broadcasting a new series called The Score, which is where composers get together with other movie people (directors, actors, etc.) and talk about the music behind the movie. Danny Elfman and Marc Shaiman have been two of the great composers on there recently.
I've not been coding for the last week. YAY!