Source: radio.weblogs.com/0100001/categories/code/rss.xml

George Herndon: Code


(no title)
Tools like this really show the strength of opensource. I've recently upgraded my perl to 5.8 as well. Perl and CPAN for the Unknowing. Perl and CPAN for the Unknowing

For those who haven't ever done more than a few lines of Perl (and, amazingly, that's most people seemingly), Perl remains this cryptic, bizarre language that often looks rife with "comic book cursing" --- from all the regular expression syntax.  And I'd have to agree with that.  Perl is cryptic but it also has one of the single best assets in the history of programming, CPAN.  CPAN or Comprehensive Perl Archive Network is a giant distributed source code repository where you can find just about anything.  And the only way to illustrate it is to really post my daily CPAN mailing from Pudge.  Here's what was new yesterday. 

New CPAN Distributions for October  1, 2002
posted by pudge on Tuesday October 01, @18:30 (modules)
  Link              |
  * [0]Apache-ASP-2.41 -- Active Server Pages for Apache with mod_perl
  * [1]Apache-iTunes-0.06 -- control iTunes from mod_perl
  * [2]Benchmark-Thread-Size-0.03 -- report size of threads for different
    code approaches
  * [3]CGI-SpeedyCGI-2.21 -- Speed up perl scripts by running them
    persistently.
  * [4]ConfigReader-Simple-1.14 -- Simple configuration file parser
  * [5]Decision-Markov-0.02 -- Markov models for decision analysis
  * [6]EasyTCP-0.16 -- Easily create secure, bandwidth-friendly TCP/IP
    clients and servers
  * [7]Encode-compat-0.03 -- Encode.pm emulation layer
  * [8]Graphics-RGBManipulate-0.01 -- HSV adjustment tool for RGB colours
  * [9]HTML-TagReader-0.12 -- Perl extension module for reading
    html/sgml/xml files by tags.
  * [10]HTTP-Size-0.4 -- Get the byte size of an internet resource
  * [11]Log-Agent-0.303 -- logging agent
  * [12]Log-Dispatch-Jabber-0.2 -- Log messages via Jabber
  * [13]Mac-iTunes-0.7
  * [14]Net-DNAT-0.07 -- Psuedo Layer7 Packet Processer
  * [15]Netscape-Cache-0.45 -- object class for accessing Netscape cache
    files
  * [16]PDF-Report-1.00 -- A wrapper written for PDF::API2
  * [17]PersistentPerl-2.21 -- Speed up perl scripts by running them
    persistently.
  * [18]Petal-0.74 -- Perl Template Attribute Language
  * [19]Scraper-2.26 -- framework for scraping results from search
    engines.
  * [20]Set-IntRange-5.1 -- Sets of Integers
  * [21]Test-Data-0.6 -- test functions for particular variable types
  * [22]Test-Data-0.7 -- test functions for particular variable types
  * [23]Test-Manifest-0.8 -- interact with a t/test_manifest file
  * [24]Test-Prereq-0.07 -- check if Makefile.PL has the right
    pre-requisites
  * [25]Thread-Conveyor-0.13 -- transport of any data-structure between
    threads
  * [26]Thread-Conveyor-Monitored-0.09 -- monitor a belt for specific
    content
  * [27]Thread-Exit-0.04 -- provide thread-local exit(), BEGIN {} and END
    {}
  * [28]Thread-Pool-0.28 -- group of threads for performing similar jobs
  * [29]Thread-Pool-Resolve-0.08 -- resolve logs asynchronously
  * [30]Thread-Rand-0.04 -- repeatable random sequences between threads
  * [31]Thread-Serialize-0.05 -- serialize data-structures between
    threads
  * [32]Thread-Signal-1.06 -- deliver a signal to a thread
  * [33]Thread-Status-0.03 -- report stack status of all running threads
  * [34]Thread-Tie-0.08 -- tie variables into a thread of their own
  * [35]Thread-Use-0.03 -- use a module inside a thread only
  * [36]Tk-DateEntry-1.34 -- Drop down calendar widget for selecting
    dates.
  * [37]dbMan-0.25
  * [38]load-0.02 -- control when subroutines will be loaded
  * [39]load-0.03 -- control when subroutines will be loaded

 That's right -- everything from thread code to PDF creation to database routines to iTunes stuff to an ASP compatible page interpreter written in Perl for Apache so you don't have to run IIS if you don't want to and more.  And that's just one day worh of updates.  I'm certainly not saying that Perl is perfect by any means or that even CPAN is perfect (it's not) but it is a tremendous resource that many folks just aren't aware of.  If you've ever wondered why people are so enthusiastic about Perl, CPAN's a large part of it.

[The FuzzyBlog!]

(no title)
Brent Simmons at Ranchero has been busy today: TigerLaunch 1.0b1. Here’s the deal:

I don’t like having lots of apps in my dock: I like to keep just the half-dozen very important apps in my dock.

But pretty often I have to launch a non-dock-worthy app. I don’t like having to hunt for it. Is it in the Applications folder? Is it in a sub-folder? Is it in the Developer Applications folder? Where is it?

So a while ago I created a little utility app that lists my apps in a flat menu, in alphabetical order by name. This way it’s super-easy to launch these non-dock-worthy apps. No hunting, no digging through folders.

Today I cleaned it up and released it as TigerLaunch 1.0b1. It’s an open source (BSD license) Cocoa app.

Even if you don’t use the app, the source may be useful—it shows how to create NSStatusItems, how to add icons to a menu, and how to create a table with icons and checkboxes.

Here’s a screen shot of the Apps menu it provides. Here’s a screen shot of the configure window.

Note: the app really needs a new application icon. Right now it’s a picture of my cat Papa flying through the air. If you create a cool app icon for it, please email it to me (to brent at ranchero dot com). I’ll credit you in the About box and on the TigerLaunch page, including a link to your website. [inessential.com] [Mac Net Journal]

(no title)
I've been testing anti-spam add-ons to my email server recently. I'm looking at spamassassin and a few others that are procmail based. The following story is an example of technology falling victim to poor business practice and very poor customer service. Ed Felten, spam-vigilante martyr. Ed "Tinkerer" Felten sent out a notice of his new blog to a mailing-list and got fingered as a spammer with the Lord-of-the-Flies crew at SpamCop, who blackballed his email address with no appeal, and as a consequence, his ISP shut down his account -- it was that or have their mail-relays on everyone's blacklist. I recently set up a web site at www.freedom-to-tinker.com. It's a weblog containing my commentary on various issues. Earlier this week, my ISP shut off the site, because the site had appeared on a list of "spammers" published by an outfit called SpamCop.

Apparently, this happened because one person, whose identity I was not allowed to learn, had sent SpamCop an accusation saying that he had received an unwanted e-mail message, which I was not allowed to see, that did not come from me but that did mention my web site. On that "evidence" SpamCop declared me guilty of spamming and decreed that my site should be shut down. Never mind that I had never sent a single e-mail message from the site. Never mind that my site was not selling anything.

Naturally, I was not allowed to see the accusation, or to learn who had submitted it, or to rebut it, or even to communicate with an actual human being at SpamCop. You see, they're not interested in listening to complaints from spammers.

With help from my ISP, I eventually learned that the offending message was sent on a legitimate mailing list, and that the person who had complained was indeed subscribed to that list, and had erroneously reported the message as unsolicited. Ironically, the offending message was sent by someone who liked my site and wanted to recommend it to others. Everybody involved (me, my ISP, the person who filed the complaint, and the author of the message) agreed that the report was an error, and we all told this to SpamCop. Naturally, SpamCop failed to respond and continued to block the site.

Why did my ISP shut me down? According to the ISP, SpamCop's policy is to put all of the ISP's accounts on the block list if the ISP does not shut down the accused party's site.

Note the similarities to the worst type of Stalinist "justice" system: conviction is based on a single anonymous complaint; conviction is based not on anything the accused did but on favorable comments about him by the "wrong" people; the evidence is withheld from the accused; there is no procedure for challenging erroneous or malicious accusations; and others are punished based on mere proximity to the accused (leading to shunning of the accused, even if he is clearly innocent).

Note also that the "evidence" against me consisted only of a single unsigned e-mail message which would have been trivial for anyone to forge. Thus SpamCop provides an easy denial of service attack against a web site.

The only bright spot in this picture is that our real justice system allows lawsuits to be filed against guys like SpamCop for libel and/or defamation. My guess is that eventually somebody will do that and put SpamCop out of business. Link Discuss (Thanks, Bruce!) [Boing Boing Blog]



(no title)
I'm Microsoft-neutral, but I don't like things like this at all: New XP/2K EULA.

Microsoft is trying to slip by a EULA requirement in W2K SP3 and WXP SP1 that grants them administrative priviledges on your machine. I'm pro-Microsoft, but this kind of underhanded crap has got to stop somewhere. I don't care what the stated reason is. There's no way I'm going to let them do that to my boxes. And don't even get me started on Palladium.

How much is too much? Personally, I'm getting there. Quickly.

Link   Discuss

[The .NET Guy]

(no title)
Here's a great example of giving back....not only do we get great tools like Huevos and NetNewsWire, but we also get re-usable components like this and a similar RSS Class. Open Source OPML Class for Cocoa. The OPML class that I developed for NetNewsWire (so that it could import subscriptions files) is now available under the BSD license. The included test app shows not just how to parse OPML but also how to hook it up to an NSOutlineView. Here’s a screen shot. [ranchero.com]

(no title)
I saw Paulo's original post, and tried a few of my groups as well. My groups require authentication, so it's not soup yet :-(

Somehow I had totally missed this feature of Yahoo Groups. In the case that somebody else might have missed it too, if you submit: http://groups.yahoo.com/group/Group_name/messages?rss=1 to your aggregator, you will get all posts submitted to that group in your favourite news reader. [Paolo Valdemarin: Paolo's Weblog]

This is sooooo close to being useful. Unfortunately, most groups require you to be authenticated before they'll show you their messages, so the general case here just doesn't work. :-/

[The .NET Guy]

(no title)
Slashdot: Mozilla 1.0 released.  [Scripting News] It's been a long time since I've tried using a Netscape/Mozilla browser. When I installed the 1.0 release it was configured to use a vintage Netscape theme. This was a nice bit of nostalgia. Then, I tried to use the new version. It's slow. Slower than the real early 90s builds. Let's hope that a point release will address performance for those that want to run this new old browser. I'll stick with Omniweb and 'cough' IE for now.

(no title)

A timely article from BetaNews about the merits of each OS. Timely, because I'm in the thinking process of purchasing a laptop, and I promised my next machine would be a Macintosh. I've never owned a Mac, and to be honest, the power PC user in me could never deal with the Mac. With OS X (and the BSD core), that's all changed -- and apparently my thinking isn't unique, because this article seems to be directly addressed at people like me (the life-long Windows user who's contemplating the jump to OS X).

[The .NET Guy] Here's a potentially heavy endorcement of OSX from a wintel programmer that I've come to respect.

(no title)
Jaguar, next major Mac OS X update coming this summer. MacCentral: Jaguar will “come with Rendezvous, Apple’s proposed new industry standard for automatic discovery of computers, devices and services on IP (Ethernet, AirPort) networks. In other words, the technology will let Macs automatically recognize other computers on a wired or wireless network and share files with each other or, theoretically, with other digital devices. In his keynote, Jobs demoed streaming music files off of another Mac connected through an AirPort network.” [ranchero.com]

(no title)
Joel on .NET.

Your friend and mine Joel Spolsky has done the impossible: he's said something I disagee with.

But I hardly ever choose a language based on syntax. Yeah, I prefer the {}; languages (C/C++/C#/Java). And I have lots of opinions as to what makes a "good" syntax. But I wouldn't accept a 20 MB runtime just to get semicolons.

You're a smart guy, Joel, so it surprises me that you think much of this 20MB redistributable (especially coming from a world with an already large redistributable). Applications today already require large things to be installed: Internet Explorer, MDAC, VB runtime, etc. As time goes on, these things tend to become baseline in the OS. Heck, way back when you used to get Microsoft Windows redistributed with applications because you couldn't assume it was there! (see: Aldus Pagemaker in the Windows 2.x days). Let's also remember that Microsoft is pushing out the .NET redistributable via Windows Update. Yeah, 20MB isn't small, but these days, it isn't large, either. We regularly download 10+MB browser upgrades, a couple megabytes here, a few megabytes there. Personaly I think you're overreacting about the size.

More importantly, though, you've really missed the key point, which is the runtime. What you get inside that little 20MB bundle of joy is so valuable to the developer (and subsequently the end user, who reaps those benefits both directly and indirectly) that it's hard to believe that you'd boil it down to a question of semicolons.

You've already spoken at length about how much easier things are with ASP.NET, and believe me, you're just scratching the surface. So I wonder, what motivated this post? Would you care to share with the group? :-)

[The .NET Guy]

Newsfeed display by CaRP

Internet:
See Internet in Open Directory

Return to News Feeds Home Page
My Sites