May 2004 Archives

brian d foy

AddThis Social Bookmark Button

Related link: http://yapc.org/America/

This year’s Yet Another Perl Conference is at the University of Buffalo from June 16-18, but you need to register by Friday, June 4 to make it onto the caterer’s count. Otherwise you’ll have to walk into town to find your own genuine Buffalo Wings (yeah, that Buffalo!).

Too bad I can’t make it: I’ll be on my honeymoon, with no computers allowed.

Derek Sivers

AddThis Social Bookmark Button

From 1988 to 2000 I made my full-time living making music. I used to spend a huge amount of my time writing songs. Lyrics, melodies, grooves, tracks, arrangements, etc.

As I get more and more into programming, I’m constantly struck with how similar it feels to songwriting.

I’ll name a few ways that come to mind so far, and then maybe some other musician/programmers can contribute some more to the list.

  • It starts with a vague concept of something that could/should exist, then is slowly crafted towards that vision, like a sculpture.
  • Both songwriting and user-interface design make you constantly put yourself in the audience’s shoes - to make sure they understand what you’re trying to express. Will they understand your turn of phrase? Will they know where to click to complete the form?
  • Both songwriting and user-interface design need to hold the audience’s attention all the way through, knowing that one wrong decision might lose them forever.
  • One big problem really wraps around dozens of little problems. Finding the right chord, the right query, the right phrase, the right page-layout. These little problems are the addictive potato-chips that keep me going.
  • Every person on earth would solve these problems (both little and big) a little bit differently.
  • Even trying to imitate someone else’s creation will make your own unique version of it. Imitation is a great way to learn. Humans are imperfect mirrors.
  • I resist starting. I’ll make 1000 distractions for myself. But once I start, and get into it, it’s the best thing in the world and I don’t want to stop.
  • It makes me jump out of bed at 2 AM wanting to try the ideas in my head to see if they work.
  • Too much repetition, and it’s boring. Not enough repetition, and it’s hard to understand. (in programming’s case this means the code, not the final product)
  • Once you’re done you want to show off your creation to the world.
  • Some people work best in collaboration like a day job. Others work best all alone, creating late into the night.
  • Some like to draw charts on paper, analyze, discuss. Others like to just shut up and do it, letting the creation speak for itself.
  • Both start with an initial flash of inspiration, then take a hell of a lot of work to make it into reality.
  • Being the programmer in the company is like being the songwriter in the band. You’re the one that creates the thing that the rest of the organization is there to promote and support.
  • It’s best to keep the "suits", the business-folks, away from the creative process, until you have something you’re ready to show them.
  • Your creation is often judged by how much money it could make, though that’s another way of saying "how many people will like it enough to pay money to have it".
  • … though if even a few people’s lives are made better by your creation, that’s satisfaction enough.
  • Most real songwriters and programmers would be doing this even if they never made a dime.
  • The sly programmer or musician puts little things in the final product that the general public will never notice, but a few peers in-the-know will catch the subtle trick and laugh out loud in admiration. (Or even if nobody else notices, it’s an immense sense of self-satisfaction.)
  • Some of your worst songs or programs had a brilliant idea inside, that you can re-use many times.

Please contribute more, below…

A great essay on a similar subject is "Hackers and Painters" from Paul Graham’s O’Reilly book by the same title.

YOUR TURN - what are some other ways programming is like songwriting?

brian d foy

AddThis Social Bookmark Button

Last week I was on the road, and pleased to find out that my hotel, the Hampton Inn, has free wireless access. I only needed a username and password which I got from the front desk.

image

I happened to be working at the same place Eric Meyer was that week, but he was staying at a slightly more upscale hotel. He had high-speed, but wired, access.

All of a sudden the less expensive hotels have a huge advantage over the fancier ones. The cheaper hotels never laid out the money to wire all their rooms with cables and ports and all of the tangible stuff that it takes to create a wired network. A third party company adds wireless access to the hotel for much less expense.

On the other hand, the hotels with the cash wired themselves, and now they are stuck with a huge sunk cost. They already spent the money for the wires, so why spend even more money for the wireless?

The little guys get to leapfrog the big guys by skipping a generation, much like how some countries avoided the mess of a land-line phone market by embracing cellular (and even going for the more advanced cellular technologies, too).

(You can check other hotels through Plugged Inns which tracks which hotels have wireless access.)

brian d foy

AddThis Social Bookmark Button

Related link: http://www.levenez.com/unix/history.html

A friend passed me this link.

Éric Lévénez put together a time line of the history of Unix, showing its various branchings, mergings, and other developments, starting in 1969 and ending this month (so it is almost current). You can download the chart in various formats. I printed the 17 pages and taped them together.

brian d foy

AddThis Social Bookmark Button

This month last year, New York State Attorney General Elliot Spitzer announced the arrest of Howard Carmack, a spammer operating in Buffalo.

Last month, a jury convicted the “Buffalo Spammer”, but not for spamming: he had stolen identities, falsified business records, and forged documents: the things that spammers tend to do. He was not charged with sending unsolicited mail. Maybe existing law can take care of spammers if the government, like Elliot Spitzer, has the courage to enforce it.

Last Thursday, Howard Carmack was sentenced to 7 years in prison (no press release available as I write this). Huzzah for good guys!

Curiously, reading about this case in online news sites, I ran into my constant frustration: news that does not reference anything. Most news sites are really just branded versions of Associated Press, United Press International, or Reuters, and add no value. Even those sites which do some of their own reporting rely on a wire service, and pass its stories directly into production with no changes. These sites should be able to add at least some value by linking to all of the relevant documents: for instance, the press releases from the Office of the Attorney General, which I had to find for myself. So much for the potential of hypertext.

The news is not about information, and everything about making money and shaping opinion. Letting people read the original documents for themselves would spoil that.

Uche Ogbuji

AddThis Social Bookmark Button

Related link: http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=mailman.238.108543367…

Alternate (non Google-groups) link

When Paul Prescod holds forth on a subject, wise developers pay attention. His recent thread on byte versus character strings in language design is IMHO required reading for language users as well as designers.

The immediate context is Paul’s advice to designers of Prothon, a Python derivative language, to get the character/byte string distinction right from the start, and also to enshrine other good practices such as making encoding and locale important first-class constructs. The lessons, however, are limited to neither Prothon nor Python, and are expressed clearly enough for users of other languages to follow.

Paul references Joel Spolsky’s important article “The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)”, and if you haven’t read this, do so right away. The rest of the thread is filled with important insight and expansions.

I think I’ve learned these hard lessons in many of the same battles as Paul. I can confirm that you really do pay if you are guided by the accidental conveniences of speaking a language whose character repertoire happens to fit into a computer byte. Don’t cut corners when it comes to computer representations of text.

Have you been keeping up on your character-fu?

Nitesh Dhanjani

AddThis Social Bookmark Button

I was careless enough to let my Powerbook sit on a slightly sloped surface, causing it to fall to the floor just as I turned my back on it. Thanks to a dent near the latch, it wouldn’t latch shut. Unlike, Dell’s extended warranty, Applecare doesn’t cover accidents. I was able to hammer out the dent and everything works fine now, but a slight dent still exists. I can’t decide if I want to buy a new bottom cover from a parts retailer, or just let it be… what a bummer.

By the way, now that I use my T610 phone with the Powerbook via Bluetooth, the latest OS X update (10.3.4) includes a caller id feature which pops up information about the person calling, and relevant addressbook info. It is also possible to send SMS messages through the Addressbook now. Very cool! Found this via this post.

Derek Sivers

AddThis Social Bookmark Button

So we’re going to be converting and archiving decades of amazing interviews with Bob Dylan, Paul Simon, Joni Mitchell, and many other songwriting legends - previously only available on paper.

But what’s the most permanent way to store these so they’ll be just as usable in 1000 years?

Roll our own method, or is there some XML kinda standard set up for this already?

The Criteria:

  • all interviews are question-answer, so need to mark each as such
  • each question and answer can have multiple paragraphs
  • often mentioning album names and song titles, that need to be italicized or have quotes around them
  • will need to be marked-up by HTML to make a presentable website archive of interviews

A weak mock-up I’m considering:

<intro>
I met with Bob Dylan today. Let’s see what he has to say.
</intro>
<interview>
<question>
So Bobby, what are your favorite chords?
</question>
<answer>
The ones that sound like <quote>Eeeeee</quote>. You know like B C D and E. But not A and F.
</answer>
<question>
Is that how you wrote <quote>Blowin’ in the Wind?</quote>
</question>
<answer>
Huh? How’d you know that was me?
</answer>
</interview>

Obviously I’m not the first person on earth to archive interviews for web-presentation and long-term use. But I couldn’t find any info or recommendations on how to do it.

ANY advice or URLs appreciated. Anyone?

ANY advice or URLs appreciated. Anyone?

Derek Sivers

AddThis Social Bookmark Button

At CD Baby, our "songs" database table has a list of every song on every album. (Albums are identifed by their sku we call "albumcode")

As we digitize each CD into the FLAC format, we add an "f" into the field called "encoded".

The problem:
I want to find all albums where we have SOME of the FLAC files now, but not all. (The problem albums - I want to re-do these.)

The answer:
Tell MySQL, "show me all albums where encoded has f AND encoded does NOT have f".


SELECT DISTINCT(s1.albumcode)
FROM songs s1
LEFT JOIN songs s2 ON s1.albumcode=s2.albumcode
WHERE s1.encoded LIKE '%f%'
AND s2.encoded NOT LIKE '%f%'

I haven’t had a query make me smile in a while. :-)

Other examples of this? Or was there a better way to solve this problem?

brian d foy

AddThis Social Bookmark Button

I am consulting for a big university this week, and it turns out that Eric Meyer is leading some training in the same department. I had not met him before, but a lot of people have been recommending his books to me lately.

We are both travelling stag, and staying in hotels across the parking lot from each other. Last night we went looking for dinner together and finally settled on a little Thai place.

We talked a bit of shop, during which I admitted that I knew next to nothing about CSS, although I told him I had just picked up “the fish book”, and I think it looks pretty good despite having read nothing of it other than the table of contents. Those of you a bit more in touch with reality probably already realize that is really “the Salmon book”, Cascading Style Sheets: The Definitive Guide and Eric wrote it. D’oh! I guess I missed that when I picked it up at Borders because it was not on the same shelf with all the other books he has written.

Andy Oram

AddThis Social Bookmark Button

I’m totally fed up with the Democratic National Convention. Boston’s Democratic mayor and Senator Kennedy apparently wanted the Hub to prove itself a world-class city by hosting the convention (and the Republican governors did little to stand in his way) but now we’re coming out looking more like the cowtown we’ve traditionally been.

Due to the same lack of planning that racked up fourteen and a quarter billion dollar charges for our recent (and still uncompleted) road construction project, the city had to announce that they were closing this very road plus other key traffic arteries during the convention–essentially closing the downtown part of the city for most of a week. I’m not even sure how I’ll reach the airport so I can get the hell out of here and make it to the saner city of Portland, Oregon for O’Reilly’s Open Source Convention.

Costs to businesses and the city as a whole could reach fifty million dollars. And now John Kerry is even saying he might not even go through the one formality for which the convention is suited–the ritual of accepting the nomination. We’d all be better off without the convention. The main thing holding up the Massachusetts economy now is what most politicians fought like dogs against: the legalization of gay marriage, which has increased tourism, celebrations, and receipts to luxury retailers.

The Republican Convention may not have such a negative effect (it would be even better had they followed through with their original idea and held it on a boat) but political conventions are emerging as an extravagent and unproductive relic of the days before modern media. Thousands of massed observers mindlessly heil-ing it up in front of cameras is so uncool. Heightened security concerns make conventions even more outmoded.

Let’s stop holding conventions in person. Let’s do them online instead. The medium is ideal for that. People will tire of hoopla and rah-rah quickly, so they’ll have to do what the politicians and mass media spend so much effort preventing: a discussion of the issues.

An online convention would air the party’s platform as well as the divisions among the party faithful. People viewing the debates would have a chance to find out the party actually is. Since the candidate could not participate in every debate, campaign aides would have to show their mettle and expose their personalities and capabilities to the public. Since campaign aides turn into Cabinet staff, this opportunity to be judged by the public is valuable in itself.

Physical conventions draw protesters outside (usually with negative results, of which the 1968 Democratic convention is only the most obvious trauma), but online conventions would have protesters inside.

The debacle of the Democratic Party Convention could become a chance to re-examine what politics is all about. See E-Democracy for more ideas.

What is politics all about?

Andy Oram

AddThis Social Bookmark Button

Related link: http://www.securitypipeline.com/showArticle.jhtml?articleID=20800218

I’m glad Security Pipeline published the news so explicitly. After the company Symbiot published a white paper suggesting that it was time to turn against network intruders and launch denial of service attacks from the white hats against the black hats, I haven’t been able to find anyone in the traditional computer security community to back it. A typical response is to go over to the wall and put one’s head up to it in despair–and that’s one of the more polite responses I’ve gotten. Some experts withhold judgement, but they don’t seem to think the proposal was serious.

Now Security Pipeline ran a poll and found (probably to everyone’s surprise) that a strong majority of readers like the idea of counter-attack. And this is what Symbiot is telling me when they approach customers–even government agencies. There’s a positive response to the idea.

As an interview I published with Symbiot shows, their concept of returning fire is more sophisticated than most people realize. And their product features much more than counter-attack; that’s probably a minor feature of the overall approach. Further confounding people who make snap judgements, Symbiot is going to open source much of their solution. I’m not an adherent to their cause yet, but I’m keeping in touch with them and expect this approach is not going to go away.

Chris DiBona

AddThis Social Bookmark Button

yum search Java?

No packages found.

yum search JVM?

Some stuff found, but no JVMs….

Hmm, okay….I looking at what it takes to get a JVM loaded on my fedora core laptop…I’m looking to write some routines that allow java programs to authenticate off of a gforge user database. I’ve written these same routines in python already, so a part of me wants to try the jython route, as it might be fast and fun to do so, but either way I’ll need a JVM on this laptop, so I download the SDK from sun.

Additionally, I want to hack up some j2me stuff for the game, sooner or later, to run on phones like my Treo and other phones (and yes, my head is in the sand regarding midp quality and such, but allow me my illusions, okay?), but for now I’m sticking with regular old j2se for the gforge project.

Gforge project leader Tim Perdue keeps threatening to switch from php to Java for gforge 4.0. Although most people don’t think it will happen that way, it is worth my time to look into it. Tony Guntharp and I service Real Network’s helixcommunity.org site, HC.org runs Gforge, means we care about the future directions of the codebase. Gforge is currently written in PHP and since mailman is so fundamental to its mail operation, some python.

Which brings up an interesting point, python is scary fast….and while I’m not looking to revive the java is slow debate, python, speed wise, is to php what php is to mod_perl and that is saying something. All three are pretty terrific scripting languages, so don’t read too much into that, but the speed differences are really something. Mind you this is based on php 4.x numbers and not 5.x which I haven’t installed yet.

Of course this brings up Java Server Pages and such, but for now, I just want to write some routines to query against gforge. The download, which is some 33 megabytes or so, is almost complete, Now Installing (timing it for our information)…

It would be really worthwhile for sun to provide packages in a yum or apt repository, but its probably pretty obvious that I feel that way, it’s how we do things, I wonder why they don’t do that, or for that matter where is IBM and the other JVM shops? It’s so much easer to keep up with security patching on the rest via these kinds of systems, anyhow…

I’m probably missing something, likely someone has a yum repository up for java, but as I mentioned in an earlier post, I’m a java neophyte by any real measure, and I’m writing on LJN because of my Linux background, so much of this will be very beginner to some readers..

Oh, and while it is downloading, one more thing…. For shame, JBoss, that’s really lame, I didn’t mention this before, but for shame. When I worked at Slashdot, we’d see these kinds of campaigns all the time, and that’s why moderation was developed. But super lame. Ah, looks like the download is done (yay DSL!)!

Do I agree? Again? Didn’t I agree when I downloaded? “yes” … Extracting rpm… rpm -Uvh etc…. done…

K, lets test the install a little bit…helloworld works… excellent…total time to install to this point: 15 minutes or so, not so bad, of that most was hacking about on suns site and such, I think the actual install time post download could have been around 3 minutes if it were properly integrated into yum/apt/etc…

It is fair to compare these against PHP and python, which can be loaded very easily via the various package mangers like yum and apt, including extra features like MySQL (yum install php-MySQL) and imap (install php-imap). Java would benefit from this kind of installation procedure:

yum install j2se
yum install j2me

You get the point, yum and those tools will even add paths properly for you and the rest that you must do by hand with sun’s downloads, but all in all it went smoothly enough, no segfaults on my strangely updated fedora core laptop, so I’m happy. When deploying linux machines into data centers, I can say with confidence that I’d rather use a decent, updating package management system like yum than have to download things like java seperately from those processes.

Anyhow, next time: Querying against MySQL & PostgreSQL, how fast and easy is it to make that work, and maybe a little jython.

yum install java? Not so fast…

Kevin Bedell

AddThis Social Bookmark Button

Related link: http://jboss.org/jbossBlog/blog/

I was complaining about this practice just yesterday (see Giving honesty ‘Arun’ for it’s money?). Now Marc Fleury, CEO of JBoss Inc., is publically stating that he’s banned the practice at JBoss Inc.

According to Marc, “Let’s put the professional back in professional open source. ‘Astroturfing’ is hereby banned at JBoss, starting with me.”

I guess it’s one thing to be a wildcat when you’re an open source project only concerned with great code. If you don’t have customers (and potential customers) to worry about offending, it’s not that big a deal to get caught and lose community respect.

Maybe this is like graduating from college or university. While you’re a student you can have your hair long, have a tongue piercing, wear nerdy t-shirts with holes in them and do/say pretty much whatever you want (ah, those were the days!). But once you’re out ‘in the real world’, most people find themselves changing and adapting to meet the expectations of the people who give them a paycheck. I’ve heard that this is called ‘growing up’.

Is JBoss (the company, not the product) ‘growing up’? Let’s hope so. Open Source as a technical and social movement will only be fully accepted by executives and corporate managers once they perceive that it’s a low-risk option.

Changing this practice is just one sign that Open Source is now ‘growing up’.

brian d foy

AddThis Social Bookmark Button

The author avers that the use of one vowel, out of all of them, before
the names of programs for the Mac, have made the order of my programs
almost as bad as the names that all start “The”. The author used to know
that these programs came from Apple, as part of a group of programs, but
now lots of vendors, some for PCs even, have these sorts of names.

Those who ponder whether that vowel has become overused need not worry.
The author has not used that vowel here.

Kevin Bedell

AddThis Social Bookmark Button

Recently it’s been confirmed that employees of the JBoss Group have been for some time been making anonymous and/or fake posts on the The Server Side and other Java community sites.

They’ve been aggressively promoting their platform by pretending to be people who are using JBoss and like it — and just as aggressively they’ve been attacking people who speak against them or their products.

They even used fake names while loudly accusing people who posted against their views of being imposters themselves.

When fakers like this pollute the knowledge space we all share and count on to help move technology and innovation forward, we all lose. It’s time to stand up and demand better.

Another example of this is the annual ballot stuffing that occurs in the voting for the Java Developer’s Journal (JDJ) Reader’s Choice Awards. It seems every company that has a product nominated sends out e-mail blasts to their employees encouraging them to vote for the company’s products.

Some companies raise this ballot stuffing to an art form. Their mottos seem to be, “Vote early, vote often, and write a perl script to keep voting for you after you leave for the day”.

As a member of JDJ’s advisory board and Editor in Chief of its sister title, LinuxWorld Magazine, this really bothers me. We really want to be a great resource for the community, but we know that the fakers compromise everything.

As a community we need to demand better of ourselves and our peers; and as individuals we need to have more integrity. If we keep our shared knowledge space clean and reasonably trustworthy, we’re all better off.

(JDJ this evening posted a similar editorial from Rickard Oberg and Cameron Purdy, two people who worked hard to help expose and publicize the details behind the fake JBoss postings.)

Andy Lester

AddThis Social Bookmark Button

An open letter to Charles Babcock (cbabcock@cmp.com)


In the May 17, 2004 issue of InformationWeek, you made a serious, yet
all-too-common mistake.


Extreme programming… pairs up two developers, one to produce code
and the second to review the coder’s work, ask whether it meets
business requirements, and work closely with business employees.


What you’ve described is not extreme programming, but pair programming,
which is only one facet of XP, but is not in itself XP. Unfortunately,
pair programming is the practice that people seem to latch on to
first, probably because it’s the most radical and easiest to dislike.
XP’s other principles and practices include simple design, continuous
integration and testing, writing tests before code, closer interaction
with customers, group code ownership, code reuse, shorter release cycles
and incremental delivery.


There are number of excellent resources on the web and in print to
help gain a more thorough understanding of XP. Three great places to
start include:


  • Extreme Programming Pocket Guide

    by chromatic (O’Reilly)


    An excellent, inexpensive overview of XP. This should be called
    “Extreme Programming: The Manager’s Briefing.”

  • Extreme Programming Roadmap

    http://www.c2.com/


    A Wiki maintained by Ward Cunningham, one of the big daddies of XP.
    Constantly updated by folks in the trenches making XP work.

  • Extreme Programming Installed

    by Ron Jeffries, Ann Anderson, Chet Hendrickson (Addison-Wesley)


    There are about a dozen XP books from Addison-Wesley, but I like
    this one best, as it focuses on making XP happen in practice.



This misconception is especially distressing in a magazine like
InformationWeek (”Business Innovation Powered By Technology”) read by
IT managers for whom your article might be their only exposure to XP.
I’d hate to think of the number of IT managers who hand-wave XP as
“that thing where you have twice as many developers writing the code,”
or something similarly short-sighted. Perhaps a followup article touching
on the less flashy aspects of XP would help your readers out by pointing
out the other, more obviously valuable concepts.


Thanks,

Andy Lester

What other misconceptions of XP get propagated?

Uche Ogbuji

AddThis Social Bookmark Button

A few weeks ago as summer signs established themselves in gorgeous Boulder, Colorado, I started having stability problems on my workhorse desktop, a PC computer running Linux on Athlon 2400+. I installed the lm_sensors module and saw a CPU temperature report of about 65C with just GNOME running, and over 70C upon compiling Python or the kernel. These compilations would inevitably crash with a GCC your-hardware-is-hosed-buddy error. Just to verify the lm_sensors readings I sacrificed my uptime and rebooted to check the PC Health reading on the BIOS setup screen. The CPU was reading 60C and the overheat alarm was shut off. I fixed the settings and resigned myself to addressing the CPU and case cooling.

I’ve always been happy to leave cooling to the case and mobo manufacturers, but clearly Athlon pushes Joules at a rate that makes this unrealistic. I suffered the same drafting into the ranks of PC enthusiasts over power supplies (my current power supply is an upgrade from the stock 280W that came with the case to a 360W unit I’d installed).

I checked the case and saw that I had only a CPU heat sink/fan combo, the power supply unite intake and outtake fan and a rear exhaust fan (on another, less stressed computer I checked for reference, I didn’t even have a rear exhaust fan). So the way I saw it, the PSU was radiating heat onto the CPU, which was itself no slouch at generating heat, and that the PSU was drawing away a little of that heat and the exhaust fan somewhat more of it. But I didn’t see where cooler air might be coming into the vicinity of the CPU in order to improve the forced convection of the exhaust fan and the conduction of heat from the CPU surface onto the heat sink.

At this point I went to the local PC Club to see what they had for cooling. I happened to mention my problem to a salesman and he immediately indicated some creatively cryogenic units retailing from $50 to $80. He insisted that for users of well-known Joule-pushers such as Athlon CPUs, there was no other way to get adequate cooling. But I kept coming back to what I saw as a very simple heat transfer problem.

My Dad taught heat transfer in college in Nigeria, and I made the mistake asking him for help with the notoriously failure-prone thermodynamics and fluid mechanics courses I had to take in my Electrical Engineering curriculum. Boy did he work me like a drill seargent. I’ve never been one to think that half of what one learns in college will never be applied in real life, and I’ve used my heat transfer training before. Now the training was telling me that someone was trying to get me to spring extra bucks for an over-engineered solution.

I kept going back to the fundamental problem that I probably had enough exhaust convection going on but that cool air was not being brought into the vicinity of the CPU to impart a useful heat gradient to complement the exhaust. The efficiency of cooling by conduction (i.e. from CPU to heat sink) and forced convection (i.e. radiated from heat sink into exhaust air flow) is proportional to the temperature differential, which is why cryo-coolers are indeed quite effective. But it doesn’t take a huge amount of temperature differential to do the trick. My room is nowhere near 70C (it’s closer to 30C) so if I could just get air flow from the room to the CPU without its being excessively heated en route, I should be able to make a dramatic boost in the efficiency of the exhaust system.

So I started by grabbing a $5 case fan that I could install in the lower front of my case. This would draw room temp air into the case, and natural air flow would tend to draw it up to the CPU to replace the air being exhausted away. I did worry, however, that this air would be heated by the PCI cards which it passed en route so I asked whether they had units focused on cooling the PCI slots area. The salesman first pointed out a fan unit that pulled air directly in a horizontal line from the front area of the case and exhausted it out of the back. But I worried that this would draw air flow from the front of the case away from the CPU and defeat the whole purpose. I did find a $10 unit that drew air vertically, from the bottom of the case, and blew it out of the case hole for the PCI slot.

As an experiment I tried with just the front case fan and then adding the PCI slot fan. The first config resulted in colling by over 12C across the board (BIOS, idle GNOME and kernel compile) and adding the PCI slot fan bumped it up to about 15C cooling improvement across the board. Classic diminishing returns where the first $5 I spent yielded a 12C return, the next $10 I spent gave an additional 3C return, and based on the salesman’s claims, I might have paid $50 - $80 for an overall 5-10C return.

So I end up wondering how often all those mega cryo units are really necessary. To be fair I don’t overclock, so my problems don’t measure up to those of hard-core enthusiasts, but I got the impression from the PC Club salesman and some stuff I’ve read on the Web that these super coolers are even marketed to non-OC users of the latest CPUs.

Really, you don’t need to have had a drilling in fluid mech and heat transfer to figure out how to spend the least amount of money on cooling your CPU. Just think of all the sources of heat in your system. If you’re brave and careful, feel some of the surfaces and areas to get a visceral sense of the hot and cool zones. Think of how air is moving around to provide efficient overall cooling, and think of how cool this air is to begin with, and what could be heating it up as it moves.

Incedentally, I happened to see some of the slick, newer mini “appliance” form factor (SFF) PCs at the PC Club, but they sported Athlon 64s and P4s and I wondered how they could possibly provide adequate cooling. I do like that small form factor for aesthetic reasons, so I may have to find out some day.

Side question 1: does anyone know how well all those special knobs and slick displays on SFF computers play with Linux?

Side question 2: does anyone know how to flash/update the BIOS on an EPoX 8RDA3+ from Linux? Recent BIOS changelogs seem to indicate that I should upgrade in order to address AGP issues and the like, but I can’t find any way to flash the BIOS except for the Windows utility that comes on the driver CD. I’ve checked the EPox site and a variety of gambits of Google (Web and groups) and Yahoo searches.

Have you tried cheaper cooling methods before having to resort to an expensive cryo-cooler?

Uche Ogbuji

AddThis Social Bookmark Button

Related link: http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115980

In response to my recent article on problems booting a Wndows XP partition after installing Fedora Core 2 a couple of the Fedora developers wrote me. They defended the choice of not treating the bug as a show-stopper and also scolded me a bit for possibly giving others ammunition to use FUD against the Fedora project. Their thoughtful response deserves the same forum as my warning and complaint, so with their permission I’ve posted relevant excerpts.

Jack Aboutboul responded:

I was alerted of this blog entry just a short time ago, and after reading it, I was pretty shocked at what was posted. I just wanted to send you some information regarding the bug you talk about and hope that you can somehow update this blog entry with the correct information, so as not to cause confusion.

The bug you speak about in the article stems [from] a few subtle,yet key feature changes that have happened within the 2.6 kernel. For 2.6 the kernel developers pulled out certain functionality from within the kernel related to Hard Disk geometry. In 2.6 the developers though that it may be wiser to have user space take control of things such as HD geometry. There is still discussion as to whether or not this was such a bright idea.

In addition to that, it is noted in the bugzilla report that the cause of this bug seems to be a CHS geometry problem. This problem most likely stems from an error within the parted utility, addressing bios incorrectly. In fact, many users with this bug reported that it disappeared after updating their bios to newer versions. Other than that, exhaustive testing has been done on this bug and newer machines did not seem to have this problem. It was almost totally non-reproducible.

I hope that I have been able to shed some light on this issue. You do very great work, and we salute you for trying to bring to the surface what seems like a stop-ship bug. However, I hope that the information I have provided you with will help you further investigate this problem so that you can update your blog, and spare the Fedora Project some great amounts of nonsensical FUD, that will undoubtedly be spread around by many unknowing readers of your blog.

Mr. Aboutboul in a later message said:

It is an issue that people should know about. The truth of the matter is, that almost none of the developers dual boot, and hence,no testing. Even the few that did try it, did so on IBM laptops and desktops, and didnt have any problems.

How do you think distributions should handle elusive bugs that may not be their fault, and could be wrongly used as fuel for FUD?

Jono Bacon

AddThis Social Bookmark Button

Come with me, close your eyes, and imagine a world filled with excitable programmers and software users who love free software. One such user, we will call her Bertha, loves to write software, and has always dreamed of writing the one true weather reporting panel applet. Bertha sits back, stretches her fingers, shaking with excitement, ready to jump into the world of free software, and, and…registers a Sourceforge account.

Bertha is wise to the ways of development. She knows she needs a CVS server, mailing list, website, bug tracking system, forums, feedback reporting systems, download repositories and more. All of these services are available to her and she has seen her favourite projects with such ample resources. Bertha wants her panel applet to be the queen of panel applets, reputed for weather reporting accuracy and an exquisitely designed configuration dialog box, so she sets forth to hunting out documentation on each of these resources. She explores the joy of patches, creating CVS branches, handling mailing list subscriptions, developing a careful revision system and other fun filled aspects to her project. Unfortunately, it is all a bit much and after a few commits to her CVS account, Bertha rapidly gets bored and her legendary spectacle of weather reporting joins the other poor unmaintained souls that wretch in Sourceforge hell. Damn.

The moral of this story is one of overreaching the potential of a project. When Bertha had the idea for her software, she also had a clear idea of how she was going to run her development environment and handle input from other hackers. The problem with her approach was the fact that she expected user input from the community when little or no code was produced initially. She also created a number of resources and discussion mediums for a project that essentially did not need them. There are a great many dead mailing lists, chat rooms and forums that have been exhausted from the over-excess of resources. If you go to a forum community with ten forums available, you are likely to have a little conversation in different parts of the site. If you visit a discussion site with a single forum, the discussion is concentrated better and given the opportunity to flourish and develop relationships between the members, with a sense of peer review and aspiration.

The problem we face is an excess of software consumption. I am certainly not exempt from this sordid story, and let me share with you an example. A while back I decided I wanted to do some XUL programming. I downloaded every possible XML editor I could find, documentation parsers, validators and other utilities and tools that were even loosely linked to XML. The same applies to GUI programming; debuggers, editors, GUI dialog designers, profilers, documentation generators, source highlighting tools and other things have clogged up my system over the years. Most of these tools were used in a context that only scratched the surface of their capabilities. There is a distinct feeling of potential and the security of being armed to the teeth with tools if you have everything available to you at your fingertips. This rapidly growing library of free software and documentation is resulting in less time for us to actually learn these tools in depth. I am certainly not unhappy with all of this choice of free software, but there is a certain level of understanding that can be achieved when you only have a single tool and you need to know how to make use of it well and in a number of contexts. As the old saying goes, “a jack of all trades, but master of only vi”. Oh, hang on…no.

The concern I have with this culture of padding ourselves with resources, utilities, tools and other fluff, is that we are putting projects up on a pedestal before they have had the opportunity to grow and develop. With the example of Bertha and her project, if she had simply worked on the code herself until she had something useful, she could have then simply put it on her website with an email address to send patches to. If Bertha started receiving patches, it would then warrant the possibility of setting up further resources. If on the other hand, Bertha did not get anything, or she lost interest, or didn’t have time to commit to the project, she has not lost a dot. By having yet another dead Sourceforge project we are reminded yet again of a free software failure that could have actually achieved something if the time was spent on the software as opposed to arranging CVS accounts and mailing lists for a project that would ultimately fail.

The same dilemma is really affecting advocacy of Linux and free software. There are so many organisations and schemes that are touted to further the software we all know and love in weird and wonderful ways. These organisations then get set up and begin discussing how their organisational systems should be set up and operate. Typically arguments about frivolous subjects such as whether they are going to use Perl or PHP as their website scripting language are argued, debated and ultimately thrashed out on a mailing list. All of this red tape then occupies up the precious time of volunteers who only have a certain amount of time that they can spare in between work and family commitments. This red tape not only wastes effort but can also hinder morale when little is achieved.

I am a believer of a practical hands on approach to software development and advocacy. I used to be of the opinion that every project, no matter how big or small, needs a full-on branding campaign to give it a professional and viable look and feel. This is valid for established large scale projects such as OpenOffice.org, KDE, GNOME and Mozilla, but for new projects such as Bertha’s little panel applet, this red tape and fuss is a lot of effort over nothing. I firmly believe that you should spend as much of the time you dedicate to free/open software and actually spend the time doing real, tangible, measurable and pragmatic things. If you are advocating Linux, instead of writing rules and regulations on how your advocacy project should manage its resources and how its official branding should be created, just get out there and call a person/charity/school/business and get on with it. The red tape will be needed at some point, but not until a stage when you are becoming a big noise in the advocacy world and when you are working on lots of different projects with different members.

So, what do you think? Have you any experiences that preserve one view or another? Do you support an established system or prefer a freeform development route? Scribe your mumblings below…

Mark Finnern

AddThis Social Bookmark Button

Related link: https://www.sdn.sap.com/sdn/index.sdn?page=SAP_TechEd_04_Proposals.html

This is quite a steal: Propose a session [free registration] for SAP TechEd, get it selected by your peers on the SAP Developer Network and you will travel to both SAP TechEds in San Diego 5th-8th as well as Munich 12th-14th of October. SAP will pay your flight, hotel stay as well as TechEd fees.

What I really like is, that you can check out the proposals that have been submitted already, and they’re really interesting. I am very curious to see which ones will win. Currently the odds are quite good: 15 proposals for the 3 slots, means 20% will go, but I guess that will not stay that way.

Unfortunately SAP employees can’t compete, otherwise I would be all over it:
"How to run your Model Train using SAP NetWeaver" I’m convinced it would be a sure winner. Maybe someone else picks up the ball and fills in that clear void in the TechEd schedule.

Just don’t get your hopes up expecting to visit the Oktoberfest while at the Munich TechEd.That beer craziness ends on the 3rd of October and you will have to pack your bags for San Diego right about that time. But fear not, there will be the famous Munich beer gardens awaiting your thirst after your presentation.

Uche Ogbuji

AddThis Social Bookmark Button

Related link: http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=115980

UPDATE: A commenter kindly pointed me to the equivalent Mandrake 10 bug. From what I can read it seems the handling of this problem in Mandrake has been as worrisome as that in FC2. The bug is marked as “fixed” although comments make it clear that the mooted workaround is not sufficient for some users. As such I extend the same warning to those considering any version of Mandrake 10.0. Be very careful if you have a dual XP boot set-up.

UPDATE: See this article quoting a response from a Fedora developer.

I have used Red Hat since 4.2, and it has been my distro of choice. I’ve earnestly tried Debian, Mandrake, Gentoo and SuSE at various times, but I’ve always come back to Red Hat, probably not because of any of the silly reasons you see bandied about in flame wars, but rather because I’m already comfortable and familar with Red Hat. When the natural evolution of Red Hat took me to Fedora Core 1, I followed and have been very happy so far.

I’ve been eyeing the progress of FC2, which includes Kernel 2.6 and other goodies. I tried the third and final FC2 test release but had problems with the installer that were already listed in bugzilla and decided to try again upon the final release, scheduled for this week. Before doing so I browsed the mailing list to see what success others were having and came across this posting, from which I quote:


A very serious bug exists which can render dual-boot Windows XP
installations inoperable. The problem has been discussed in other
threads here on this list, and can be found in bugzilla, so I won’t go
over it in more detail. Please see bugzilla bugs 120128 and 115980.
This problem happens on my hardware even if the harddrive is wiped, and
a fresh Windows XP install is performed before FC2-test3.

Note: bug #120128 is a dupe of #115980.

This bug is still acknowledged as unfixed on the eve of the final FC2 release. On reading further, several things alarmed me:

  1. The attitude of many in the thread who violently flamed those who were raising the alarm
  2. The overall silence of core developers and release notes on a matter of such magnitude
  3. The very fact that such a major distribution does not treat a widely reproduced bug with serious consequences of data loss as a show-stopper, or at least a code-red priority

Before commenting further I do want to make sure I reiterate that people see the actual bugzilla item for the raw facts as they’re known. Also see this thread which is a bit more focused on solutions and narrowing down the problem than the flame war over whether the Fedora community is taking this bug too lightly.

There has been some discussion as to whether this is actually a bug in Grub, in Kernel 2.6 (some say they came across is in Mandrake 10), or in Windows XP. None of the uncertainty over root cause excuses a responsible distribution from treating any such issue with the utmost seriousness. This bug could cause a significant cross-section of users to lose data, and so at the very least it should be affixed with a clarion horn, bold letters and blink tags in the various release notes and announcements. Instead, the sorts of discussion I see about this situation include jibes at dual-booters and even snide suggestions that FC2 is doing users a favor by neutralizing their Windows paritions. I can be as spiky in a flame war as anyone else, but I’m very surprised at how a matter that could so seriously damage the reputation of Fedora is being treated with so little apparent seriousness by all but those who have themselves lost time and data.

Speaking for myself, I have two computers on which I’d planned to make the upgrade. One (my laptop) is a dual-boot to XP. Yes, I usually back up before such upgrades and installations, but I don’t have the time to go through the reinstall-XP-then-restore dance so I’m not taking the chance on my laptop and will leave it at FC1 until there is a fix for this issue. I shall upgrade the Linux-only box right away and, I hope, not run into an other unpleasant surprises.

The most important matter is fixing the bug. Do you have any new data that might be useful in doing so?

brian d foy

AddThis Social Bookmark Button

Related link: http://gmail.google.com/gmail

Is spam still spam if I ask for it? I would really like to take my Google Mail account for a test drive, but I am not getting any spam. Please send spam to brian.d.foy@gmail.com.

If you have a Nigerian banking scheme, a body part enlargement device, discount drugs, viagra, or any of the usual spam topics, I am soliciting your mailings, making them non-unsolicited. I have 1,000 MB of storage space, so send as much as you want as often as you want.

That being said, I have two things in mind:

  • Does the gmail spam filters catch most stuff?
  • Will the text ads shown for spam point to a competitor?

Remember to send that spam to brian.d.foy@gmail.com

brian d foy

AddThis Social Bookmark Button

Related link: http://www.apple.com/applescript/imageevents/index.html

Now that I have Panther, I can play around with Image Events. Prior to this, I used Perl to read in an image from my phone, scale it to 320×240, then add a black border around the image.

Now AppleScript makes this really easy. Cobbling together a couple of scripts from the Apple web site, I get the job done in a very Mac like way.

set this_file to choose file

try
	tell application "Image Events"
		launch
		set this_image to open this_file
		scale this_image to size 318
		pad this_image to dimensions {320, 240}
		save this_image with icon
		close this_image
	end tell

on error error_message
	display dialog error_message
end try

Although this script asks me to choose the file through a dialog, Apple also shows examples of automatically choosing every image in a directory, on the desktop, and so on. I want to set up a folder for incoming images for a moblog, then automically run an AppleScript on every new photo before it gets posted to the web.

At some point I also want to use Image Events with watch folder for iPhoto, so when I take screenshots I can automatically convert them from PDF to JPEG. I just wish I could automatically import the images, though.

Still, someone at Apple finally did something did something good for AppleScript.

Do you use image events?

Derek Sivers

AddThis Social Bookmark Button

Related link: http://www.oreillynet.com/pub/wlg/4863

In my previous post called Getting PHP to make the HTML for me - I mistakenly called what I was doing a template system. But I don’t want a template system. I want shortcuts, inside PHP, that output the HTML I need.

All good geeks know that repetition of information is usually a problem waiting to be solved. HTML (even in templates) is filled with SO much repetition I can’t help but try to optimize my use of it.

But first - here’s a couple examples why I don’t want to use templates for my web-making:

One template extreme: mostly static HTML with some variables:

<html><head><title>{$title}<title></head><body>
<table border="0" cellpadding="5" cellspacing="0">
<tr><td class="bgcolor1">
<h1 class="header">{$title}</h1>
</td></tr>
<tr><td class="navbar">
{$navigation_here}
</td><td>
<h2 class="title">{$article_title}</h2>
<p>{$article}</p>
</td></tr>
<tr><td>
&copy; {$year} {$author}
</td></tr></table>
</body></html>

My problem with mostly-static templates:

Why not just use PHP? In that sense PHP *is* a templating language. Why wrap a new language around something that PHP already does just fine? Better explained in Brian Lozier’s article on Template Engines. A great read.



Another template extreme: mostly display-logic and variables with some HTML inside:

{include file="pagetop.tpl"}
{if isset($invalid)}
Invalid edit option ({$edit})
{else}
{foreach key=fieldname from=$fields item=element}
{if $expert or !$element.expertonly}
<tr><td width="40%" align="right" valign="top">
<b>{$element.description}</b>
{if $element.subdesc}
<br /><span class="tiny">{$element.subdesc}</span>
{/if}
{strip}
</td><td width="60%" align="left" valign="middle" class="small"
{if $element.crucial} bgcolor="Yellow"{/if}>
{/strip}
{if isset($notype)}
<p>Not ready to upload yet</p>
{else}
{assign var="file" value=$element.type|concat:".tpl"}
{include file="Backend/Bits/$file"}
{/if}
</td></tr>
{/if}
{/foreach}
{/if}
{include file="pagebottom.tpl"}

My problem with mostly display-logic and variables templates:

Again - why not just use PHP? Look at that code example, above. 26 lines of code, and only 6 lines are actually HTML. Why even be in a template, then? Why not just stay in PHP and generate those occasional tidbits of HTML when you need them?

I disagree with the philosophy that tries to keep the "poor non-technical graphic designers" away from PHP, giving them an "easier" system like Smarty or any other template language. Again: why not let them use PHP for their template-logic? It’s much more documented and well-known than any special template-language you can throw at someone.

I make very interactive websites. Full of display-logic that will (for example:)

  • display different flags if an item is on sale
  • use different image sizes based on how many images are shown at once
  • totally change the look and feel if clicking from a partner site
  • show different languages and currency based on your settings

As you can imagine, using template files for this kind of on-the-fly display logic was getting ridiculous.

I decided I don’t want to leave PHP anymore to output the occasional HTML tags around my variables.

That’s where my head was at when I wrote the last post, "Getting PHP to make the HTML for me".

Read that, if you haven’t, then let’s move on to the next idea: basic HTML building blocks.

Your thoughts on this so far? Do you use and love templates for interactive sites? Am I missing the point, here?

brian d foy

AddThis Social Bookmark Button

Related link: http://www.auscert.org.au/render.html?it=4091

The Australian National Computer Emergency Response Team (AusCert) said today in “AA-2004.02 — Denial of Service Vulnerability in IEEE 802.11 Wireless Devices”

A vulnerability exists in hardware implementations of the IEEE 802.11 wireless protocol that allows for a trivial but effective attack against the availability of wireless local area network (WLAN) devices.

brian d foy

AddThis Social Bookmark Button

NetGrocer is the latest e-business which cannot ship to me on time, and perhaps one of the last hold-outs from the dot-com era of broken promises. The problem is that I keep believing the promises.

I am on the road with my wife, who is singing with Michigan Opera Theater this month. Performances are in the evening, and we stay up later than that, so we do not keep normal hours. We are often up late enough to catch breakfast in the hotel restaurant before we go to sleep. Detroit grocery stores do keep normal hours though, so that’s a problem.

I thought I would be slick: NetGrocer could send me groceries by FedEx. I could shop whenever I want, so I did. For some reasons I still believe in the promise of computers, easy living, and Tomorrow Land. I still think software and gadgets can make life easier, despite abounding negative evidence.

On May 7, around 2 am, I ordered a bunch of groceries. They said that delivery times were 1 to 4 days, but definitely by 3 pm on May 12 (yesterday). That would still give us a week at the hotel to eat everything I ordered. We could do that.

At 4