Subscribe: George Herndon: Code
Added By: Feedage Forager Feedage Grade C rated
Language: English
based  don  guy  isp  libraries  mac  net guy  net  new  people  perl  radio  scripting news  site  spamcop  test  thread 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: George Herndon: Code

George Herndon: Code

Last Build Date: Thu, 27 Feb 2003 14:34:49 GMT

Copyright: Copyright 2003 George Herndon

Wed, 02 Oct 2002 20:21:50 GMT

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, 2002posted 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 -- 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 loade[...]

Thu, 12 Sep 2002 15:58:04 GMT

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. []
[Mac Net Journal]

Tue, 20 Aug 2002 13:47:36 GMT

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 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]

Mon, 05 Aug 2002 18:25:07 GMT

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]

Mon, 05 Aug 2002 13:22:23 GMT

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. []

Thu, 13 Jun 2002 15:11:04 GMT

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: 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]

Wed, 05 Jun 2002 21:03:32 GMT

Slashdot: Mozilla 1.0 released(image) [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.

Mon, 03 Jun 2002 14:32:09 GMT

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.

Tue, 07 May 2002 02:27:54 GMT

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.” []

Tue, 07 May 2002 02:21:46 GMT

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]

Tue, 07 May 2002 02:17:18 GMT

Back and Forth We Go... :-).

Whee! Indented italics is me, non-indented italics is Justin. (Clearly I need to bring back my comments system...)

It'll be hard (politically) for companies to choose libraries that aren't in general use, because it'll be hard to find engineers that are familiar with those libraries.

So for the next few months, no one is going to use .NET because no one knows it?

You left off the part where I spoke of standards. People are learning .NET even moreso because it's Microsoft new sanctioned way to write software than they are because the libraries rock, I guarantee it.

...but really, if you have people choosing a variety of languages based on skillset...

Do you honestly see this happening?

All the time. Any company of any size is going to have software engineers with varying skills and skill levels. Very few of them are going to be capable of consistently high quality unmanaged C++.

But the original argument was the its not the language its the BCL and the productivity you gain.  I say that I am almost as productive with C++ and the right libraries as I am with .NET.  I say almost because I haven't found a good C++ library for data access.

Not all the gains in .NET are about the BCL, but many of them are. Simplifications of the platform are reflected into languages like C# (I'm not agreeing with Joel, who claimed it was "all about the syntax", either, because clearly the ability to use {} isn't a big gain in productivity). Interoperability, easier memory management, standardized libraries, and easy cross-language support are all very important to .NET.

[The .NET Guy]

Tue, 07 May 2002 02:15:34 GMT

More Joel Comments.

I agree with Sam that .NET gives you a lot for your 20MB. [...] But (you knew there was a but right?), I'm starting to see the same type of productivity increase in C++. The trick is to find class libraries and frameworks that make your life easier. [Justin Rudd's Radio Weblog]

I both agree and disagree. On the question of libraries, I do agree (partially) that you can get much of the benefit of using the BCL. However, you'll probably have to invest a lot more time "auditioning" libraries, trying to find the right fit. It'll be hard (politically) for companies to choose libraries that aren't in general use, because it'll be hard to find engineers that are familiar with those libraries (as great as Boost is, I've never seen its on a resume anywhere). Using the .NET libraries means you have this massive thing that saves you time on research, but also gives you a standard that you'll start to see on resumes.

But there are things that you just don't get in the unmanaged world that you get with .NET. I know most of the "language independent" stuff is guff, but really, if you have people choosing a variety of languages based on skillset, the integration work is a lot harder in the unmanaged world. IDispatch-based COM stuff is -- let's be honest -- hideous for us C++ people. And of course, as soon as you go cross-language in the unmanaged world, all those great C++ libraries become unavailable to the VB programmers. But perhaps the largest problem of all is that C++ (and COM) are just ludicrously complex compared to C#. You have to have extremely talented, highly productive, highly disciplined people to write great C++. In my experience, this is a pretty big deal-breaker for any large group.

So, yeah, it's possible for a small team of extremely good people to do themselves equal to the .NET world by using unmanaged C++. Hell, I used to be where you are about 18 months ago, but even as one of the largest proponents of C++ around (save perhaps Chris Sells), I still immediately recognized the value of .NET. I really don't want to have to live in the unmanaged world any longer than I have to.

Assuming we get generics soon, anyway. ;)

[The .NET Guy]

Mon, 06 May 2002 14:04:17 GMT

This is a fair history of what's happened in the NeXTstep - OpenStep - OSX world since the early 90s. Steve Jobs and the History of Cocoa, Part One. O’Reilly: “In this first part of a two-part series, Simson Garfinkel and Michael Mahoney explain why Cocoa and Mac OS X aren’t nearly as revolutionary as they are evolutionary—and still in the process of refinement. The story begins with Apple’s genesis in the 1970s and takes you through key events up through 1993, when NeXTSTEP began to flounder.” []

Tue, 09 Apr 2002 16:44:58 GMT

This is a test post from Radio Poster v1.0 which allows non-Radio users to post to a Radio Userland blog [like this one :-)]. For me this is a great utility that I'm thinking of using to allow my kids to post to their own areas of the site.

Thu, 28 Mar 2002 02:45:49 GMT

okay! now, i just need to find the port supporting OSX. Rotor is Released!. Rotor, Microsoft shared source CLI implementation, is released. [The .NET Guy]

Tue, 26 Mar 2002 02:28:47 GMT

Speak In Your Own Voice and check out some other Voices while you're at it. [Russ Lipton Documents Radio]

Thu, 21 Mar 2002 17:19:42 GMT

Yep, I'm up to date. Radio UserLand 8.0.7(image) [Scripting News]

Tue, 19 Mar 2002 19:46:43 GMT

Oooh, I want this....will have this Yeah! The new version of the ODBC Extension has been released! The primary change from previous versions is support of OS X. I also fixed some old bugs along the way, too. The ODBC Extension works with Frontier and Radio on Windows, Mac OS 8/9, and Mac OS X. As an example of Radio utilization, this post includes a very simple macro that retrieves a bestseller list from a local MS SQLServer database. It is a simple query that gets the top ten selling books for the previous 7 days. And the query happens at publish time. (The Radio client is OS X and the database is on Win2k Server) Here goes: 1. Quiet Spaces
2. Selecting Church Leaders
3. In the Shadow of God's Wings
4. Forgiveness, The Passionate Journey
5. Servants, Misfits, and Martyrs
6. Inner Healing for Broken Vessels
7. Cost of Living, The
8. Upper Room Disciplines 2002, The
9. Under Her Wings
10. Invitation to Presence
[Stephen Tallent's Radio Weblog]

Tue, 19 Mar 2002 01:58:44 GMT

The Wrong Way to Use CSS in Page Layouts. “Unfortunately, many people are still using WYSIWYG packages to do their web development, and many of them are trying a table-free approach in their attempts to ride the wave of the CSS flood. What some of these developers tend to forget is that pixel-precise layouts are anything but, especially when you consider all the custom settings users may have on their systems.” []

Tue, 19 Mar 2002 01:50:25 GMT

Seth, this looks great. I'll keep tabs here for a while, and can test a little if time allows :-) Seth Dillingham is working on a search engine that plugs into the CS. This is a key feature for private workgroups whose weblogs can't be indexed by Google. (image) [Scripting News]

Tue, 19 Mar 2002 01:45:01 GMT

Wow! Userland does it again. It is my honor to present: Radio Community Server 1.0(image) [Scripting News]

Thu, 14 Mar 2002 17:58:31 GMT

I finally got around to implementing the currently subscribed to macro on my homepage today. That's a pretty good feature. I haven't seen any symptoms of the OSX .DS_store bug, but I'll keep an eye out.

Wed, 13 Mar 2002 02:05:44 GMT

New feature: Automatically Generated Links. This is the feature Julian Bond has been patiently waiting for. (image) [Scripting News]

Wed, 13 Mar 2002 02:04:38 GMT

Gary Secondino takes me up on the OPML Coffee Mug puzzle. Pretty close, except it's simpler, but it can do all the things you say, and more. (image)  (image) [Scripting News]

Wed, 13 Mar 2002 02:03:11 GMT

Building with Ant: Introduction. Earthweb: “The more interesting your application becomes, the more complicated your build process. In this article, I will sketch out a framework for how to use simple tools (like Ant and JUnit) and a simple directory structure to avoid many of the common growing pains of application development.” []