May 2007 Archives

Chris Tyler

AddThis Social Bookmark Button

Fedora 7 is about to be released (minutes), and it should prove to be one of the most interesting Fedora releases to date. The concept of Fedora Core and Extras — on-disc and off-disk package sets, maintained by Red Hat employees and a mix of Red Hat / non-Red Hat contributors respectively — has been abolished.

In its place is a single unified repository hosted, built, and distributed outside of Red Hat, with substantial contribution from Red Hat in employee time and financial resources.

So what software from the repository is ‘on-disc’? Whatever software you want. There will be some initial ISO ’spins’, but Fedora 7 provides tools to assemble any spin you want, either for installation or for use as a live disc. These spins can include any combination of Fedora and non-Fedora packages. So if you want a KDE-based live CD to give out at a seminar, or a server spin that includes your company’s PHP scripts, or a Gnome-based USB version, you can easily make it.

This is an exciting day for the Fedora project, and I look forward to seeing the results of this experiment unfold.

chromatic

AddThis Social Bookmark Button

My first patch to Perl 5 was a quick and dirty tiny feature enhancement. It also broke a couple of tests. That small act of public humiliation reinforced what I already knew was a good practice; automated testing is an important part of creating software that works.

I spent a couple of years chasing two goals. First, to create tools of such quality and ease of use that there’s no reason not to write good tests for Perl code. Second, to add tests so that we could immediately identify regressions and track them down to specific checkins.

Today, the core Perl 5 test suite (as of the most recent snapshot leading to Perl 5.8.9) has 121873 assertions. It could use more, but those tests cover the language and core libraries. Modern CPAN distributions are incomplete without tests written in the modern style, and test coverage and quality are topics of wider understanding and discussion.

I can’t imagine relying on a piece of software that I can’t verify with automated tests.

Analyzing the JRuby test suite, a recent weblog post from Christian Neukirchen stunned me. The most complete test suite for Ruby is the JRuby test suite and it has only 2747 assertions.

I know Ruby’s simpler than Perl, but it’s not that much simpler.

chromatic

AddThis Social Bookmark Button

Yes, this is a Movable Type weblog. Yes, I accessed it through Firefox. Yet I hate typing in little text input boxes.

I’m writing this (surprisingly post-modern) entry in Vim, a tool I find almost indispensible. It seems like every time I use a computer, I end up wanting to use Vim.

I’ve used Vim to write all of my articles and all of my books. (I’ve used Vim to edit all of the articles and books I’ve edited too. I even wrote a two-line wiki in Vim, which I use to, among other things, keep track of the list of free software projects that deserve my thanks.

Speaking of software, I don’t know how I’d program without Vim. I’ve tried a few IDEs here and there, and there are some nice features, but the ability to work with text rapidly and quickly, through powerful muscle memory, keeps me using Vim.

So to Bram and all of the other developers and contributors to Vim, especially those who’ve shared a few of their secrets which I’ve incorporated into my personal corpus of productivity, thank you. Your work is indispensible.

Andy Oram

AddThis Social Bookmark Button

Ignite Boston takes place in Harvard Square this coming Thursday. A first pass at the list of speakers is now up. The variety is just the kind of enjoyable mix you’d expect from an academically and culturally diverse place like Boston. There are straight tech talks, idea talks, and discussions of processes. The order apparently hasn’t been assigned yet, so I don’t know how long I’ll have to wait till I can finish my talk and start drinking.

Mike Hendrickson

AddThis Social Bookmark Button

Ignitelogo

Our first Ignite Boston is filling up fast. Since we have limited space at Tommy Doyle’s, please RSVP for the Thursday, May 31,[6 to 10pm] event by sending email to IgniteBoston [at] oreilly [dot] com. With your RSVP, your name will be entered into a drawing to receive $300 worth of O’Reilly books! (But you must be present to win!) We won’t use your name for anything other than this raffle. RSVPs are not required but appreciated.

The event’s location can be accessed via mass transit [Red Line, Busses] and is located at 96 Winthrop Street in Harvard Square, Cambridge, MA.

Here is a quick tentative agenda for the evening.

Time Activity
6:00-7:00pm Socialize, mingle and talk tech with your fellow FOOs, alpha geeks, and techies from the greater Boston area.
6:20-7:00Opm Join a MAKE challenge team and participate in building bridges
(how much weight can your bridge–made from less than 1K popsicle sticks–support?).
7:00-7:10 Brief intermission and set up
7:10-7:30 Ignite Keynote - Scott Berkun will kick off our Ignite night with a talk about myths of innovation.
7:35-8:40 First 12 Ignite talks. Five minutes each.
8:45-9:00 Judging the Bridges and awarding Raffle prizes
9:00-10:00 Final set of 12 presentations. Five minutes each
10:00-2:00am Drinks, conversations and socializing

We hope to see you there!

Want more information? Visit our Ignite Boston blog.


Technorati Tags: , , , , , ,

Andy Oram

AddThis Social Bookmark Button

The GNOME Users And Developers European Conference, a major European free software conference is open for registration for its seventh year. O’Reilly Media is a sponsor. The schedule lists a mind-boggling range of projects, some of which I’ve heard of and some of whose names I’m not sure I could pronounce, and even a couple that I wish I could attend because they’re relevant to another blog about desktops I put up recently. There are also talks and sessions–as you’d well imagine–and the organization of an open-source project and legal issues in open source.

chromatic

AddThis Social Bookmark Button

Perl has a long history of copious documentation through the Plain Old Documentation format. This applies to much of CPAN, not just the core modules and documentation.

The perldoc utility is the main way to view this documentation. It has more features than people imagine (it was worthy of Hack #2 in Perl Hacks), but it’s a command-line tool only. Even for a CLI fan like me, sometimes hyperlinks are nice.

Pod::POM::Web is a CPAN distribution which turns all of the POD on your system into browsable, linked HTML. I use perldoc all the time; could anything displace it in whole or in part?

chromatic

AddThis Social Bookmark Button

Rob Conery reports that Microsoft wants to expand the OSS landscape for .NET, so they’re recruiting people to lead open source projects built on .NET.

The carrot is an MSDN subscription. I suppose that could be useful.

If I had any interest in .NET F/OSS programming, I’d instead hold out for patent indemnification for all of the contributors to and users of the software.

Give this offer a miss until MIcrosoft can get its story straight.

Jeremy Jones

AddThis Social Bookmark Button

In case anyone missed it, I had the opportunity to interview Guido van Rossum at PyCon this year. The audio interview (stored in mp3 format) is embedded in this article entitled PyCon 2007 Wrapup. Just look to the left side of the page.

In addition, I have two other audio interviews and one conversation I have been sitting on and haven’t edited yet. One is an interview with Ian Bicking on WSGI. The other is an interview with Kevin Dangoor on TurboGears. I also had a non-interview conversation with Ron Stephens of the Python 411 podcast. As soon as I can get these edited, I’ll post them.

James Turner

AddThis Social Bookmark Button

I try to get out to the Consumer Electronics SHows (CES) in Las Vegas every January. As I’ve blogged about on other sites, there’s actually a ton of Linux-based devices there, almost anything with an embedded OS runs Linux. One of my standard activities has been to go to the major consumer PC vendors (Dell, HP, Gateway, Toshiba, etc) and ask if I can get their product with Linux preinstalled, or failing that, with no OS and not have to pay a Windows license fee. Until today, the answer has been no except for some of the server products.

You notice I said “until today.” As of 4PM CDT today, Dell will be offering 3 systems (2 desktops and a notebook) with Ubuntu preinstalled and supported. This is a red-letter day for Linux, one of the major reasons that we don’t see the Penguin on consumer PCs more is that Windows is already pre-installed when the box arrives. Now, at least, consumers will have a choice. Bravo to Dell for listening to the hhundreds of thousands of people who voted for Linux, and taking quick action

Jeremy Jones

AddThis Social Bookmark Button

In my last post on the topic of rewriting my podgrabber utility, I promised to post the rewrite-code-in-progress to a Bazaar repository. You can branch from here if you’re interested. In this post, I’m going to discuss the paradigm I’m following for getting files from a webserver, pulling them onto a computer, then onto a portable media device.

In the current version of podgrabber, there was a concept of a download manager which would take a URL and save the file to a particular directory. This download manager was built with a small amount of extensibility in a very clunky way. I looked at the URL in order to determine how to download the file. After getting the files from the webserver to my computer, a single function would synchronize files between my computer and my portable media device.

This approach works, but it doesn’t provide a cohesive approach to the problems. It also isn’t very extensible. In order to come up with new file sources (such as FTP) would probably involve a lot of cut and paste and an ever-growing download method. And synchronizing downloaded files to anything other than some MP3 player that shows up as a USB disk drive would prove quite painful.

chromatic

AddThis Social Bookmark Button

Hibernate’s Gavin King recently published A Defense of the RDBMS. He has several useful points about ORM and object databases and their as-yet lack of success. Perhaps the most salient point is in the conclusion, however.

Nitesh Dhanjani

AddThis Social Bookmark Button

Note: The following is based upon my experience with IT-Security oriented environments (i.e. feel free to replace ’smart’ with ‘extremely geeky’). I would think this should apply to non technology people as well, but I do not have the experience to confirm that one way or the other.

During the course of my professional career, I have been fortunate enough to work in some environments that attracted and retained smart people. I have also had the opportunity to analyze environments that simply could not retain smart people. A few of the ‘bad’ work environments managed to hold the good folks for a tad longer than I thought they could by offering higher than market value salaries - but ultimately the good people, including myself, ended up leaving.

There are dozens of ‘Top 10′ lists that attempt to identify do’s and dont’s on how to keep people happy. As a fellow geek, I can easily dish out a never ending list of dont’s based on my experience in environments that simply didn’t seem to get it, but that is not the goal of my quest which is simply the following: What are the one or two root-causes of executive or management level decisions that repel smart people in any given organization?

Andy Oram

AddThis Social Bookmark Button

I always enjoy a conversation with the folks from Splunk, which I wrote up at LinuxWorld Expo 2006. Three of the major enhancements to their 3.0 release, being announced today at Interop, demonstrate a very flexible, interactive–dare I say it? Web 2.0-style–approach to their model of collaborative system troubleshooting.

chromatic

AddThis Social Bookmark Button

The reasonable man adapts himself to the world. The unreasonable man persists in trying to adapt the world to himself. All progress, therefore, depends upon the unreasonable man.

— George Bernard Shaw

However, not all unreasonableness leads to progress.

That’s food for techie thought for dealing with other people in person and onlne.

Spencer Critchley

AddThis Social Bookmark Button

Drupal, one of the leading open source content management systems, is amazing. The more I learn about it the more impressed I am by the depth of thought (and amount of work) that’s gone into making it so powerful and flexible.

But, thanks to its complexity and to the large gaps and flaws in its documentation (poor documentation being a common problem with open source projects), Drupal can also be a huge time sink, frustration generator and spawner of traffic on the drupal.org forums. Now, though, comes relief: “Pro Drupal Development“, by John K. VanDyk and Matt Westgate, both of whom are key contributors to the Drupal project. If you’re thinking about doing anything beyond just installing Drupal and using its admin interface, get this book. It could quite likely save you weeks of trial and error.

Jeremy Jones

AddThis Social Bookmark Button

It is sometimes humbling to look back on code you’ve written. It is particularly humbling when you see a piece of your own code and wonder, “What was I thinking?” I’ve been going through this sort of programmer-introspection induced humiliation lately with my podgrabber project.

podgrabber began its life as a really simple Python script which would go through a set of RSS feeds, figure out what to download, then pull them in. I then decided to make it a little more interactive and allow the user to specify which of the undownloaded podcasts to download. A little coding, a little hacking and it was so. Somewhere along the way, I created a simple sync script to get the podcasts synced up on my MP3 player. (The MP3 player I had was a Sandisk Sansa e130 which showed up as a USB drive under Linux.) The final addition to podgrabber was a GUI (built in pyGTK) which would consolidate all of these features.

The GUI podgrabber has been pretty functional. I can add, remove, or update podcast feeds. I get a list of new podcasts and can select to either download all of them or just some of them. And I can go through a list of podcasts which are currently on my hard drive, delete them, and the next time I run “sync“, the old ones will be removed from my MP3 player and the new ones will be added.

chromatic

AddThis Social Bookmark Button

You can’t spend more than ten minutes at RailsConf without hearing the dreaded three-letter acronym DSL. They’re everywhere these days in the Rails and Ruby worlds. I think I ate one for lunch (either that, or it was a grilled portobello mushroom sandwich).

Confusingly, every example of a DSL I saw looked like something I would have called an API before my sudden immersive enlightenment.

If I’m confused about what a DSL is, you must be too. I took copious notes through the sessions on Friday and have devised a simple, ten-question test to help you determine whether a wad of code represents a DSL or an API.

Adriano Ferreira

AddThis Social Bookmark Button

Adrian Howard posted in his use.perl blog a text about antipatterns on writing jobs advertisements. It is a insightful piece of advice for those confronted with the need of writing a convincing call for new employers and entertaining for those wanting to know the mindset of well-intentioned people on the other side of the job interview desk.

Andy Oram

AddThis Social Bookmark Button

People in Eastern Massachusetts who are curious about what academics, computer programmers, and hackers are doing in our area should attend Ignite Boston on Thursday, May 31. This is not a serious academic conference; it’s a chance to meet interesting folks and be dazzled by the wide range of stuff your neighbors are inventing. It’s in a drinking establishment, presentations will be five minutes long–and there’s lots for the audience to do.

I’ll be giving the first public presentation of a mock-up of a quiz program I’m working on to help determine the quality of online documentation. Scott Berkun (author of two O’Reilly books, The Art of Project Management and The Myths of Innovation) will keynote. Some of the other people I’ve talked to, and who I know are presenting, are doing some really fun things–and useful ones too.

There’s still time to sign up if you’re working on a project you’d like to show the community. Tell all your tech-loving friends to come.

chromatic

AddThis Social Bookmark Button

On behalf of the Parrot team, I’m proud to announce Parrot 0.4.12 “Of the Caribbean.” Parrot is a virtual machine aimed at running all dynamic languages.

Mike Hendrickson

AddThis Social Bookmark Button

Boston Skyline-2-2 The first Ignite Boston will be on Thursday, May 31, from 6 to 10 pm at Tommy Doyle’s located at 96 Winthrop Street in Harvard Square, Cambridge, MA.

From 6-7, mingle and talk tech with your fellow FOOs, alpha geeks, and techies from the greater Boston area. Or, join a MAKE challenge team and participate in building bridges (how much weight can your bridge–made from less than 1K popsicle sticks–support?). After that, keynote speaker Scott Berkun will kick off our Ignite night with a talk about myths of innovation. There’s more! Guest speakers will give lightning-fast, five-minute presentations, catching you up on the cool, new, innovative stuff going on in technology today. During intermissions, get a cold beer and chat with speakers, sponsors, and O’Reilly’s editors and staff.

Join us Thursday, May 31, for a fun, energetic evening of talking, learning, making, collaborating (and drinking!).

Plan on coming? You can RSVP by sending an email to IgniteBoston [at] oreilly [dot] com. With your RSVP, your name will be entered into a drawing to receive $300 worth of O’Reilly books! (But you must be present to win!) We won’t use your name for anything other than this raffle. RSVPs are not required but appreciated.

Want more information? Or want to be a guest speaker? Visit our Ignite Boston blog.

See you there!

Technorati Tags: ,

chromatic

AddThis Social Bookmark Button

Bugzilla 3.0 came out, and with it a debate over whether it is possible to write maintainable Perl code.

That debate has now spilled over into Bugzilla’s wiki (see Bugzilla:Languages). When I viewed the page, the final requirement for a programming language amused me greatly:

7. Enforcement of Good Code: One place where Perl falls down is that it doesn’t enforce any good coding standards. A language that does would be welcome.
Adriano Ferreira

AddThis Social Bookmark Button

These days, the perl6-language@perl.org mailing list is haunted by some passionate discussions, spawning long (often too long) threads. Just yesterday, someone posted yet another “Why Perl 6 has not such and such features” message which sparked a lot of discussion. After a while, someone detached one of the points of the original message and asked why Perl 6 still goes with explicit line termination with the semicolon. And then came an answer by Larry Wall (and they are always worth reading).

These sorts of things are almost never for a single reason. Some of
it is my prejudice against dangling syntax, and perhaps prejudice
against anything resembling Fortran. Some of it is not wanting to
distinguish different kinds of whitespace any more than we already do.
Some of it is simplicity of parsing, both for the human reader as
well as for the computer. I think if I had to pick one reason,
though, it’s that it allows the parser to understand the intent of
the writer much better and hence give more useful diagnostics when
something seems to be going wrong. Much more than other languages,
Perl depends on the prohibition against two terms in a row as a kind
of “self-clocking” mechanism to disambiguate programmer intent, and
not requiring a semicolon between the final term of one statement
and the first term of the next statement would tend to weaken that,
especially when the term starts with a prefix operator that could be
mistaken for an infix.

chromatic

AddThis Social Bookmark Button

I spend a lot of my time in a web browser (my top applications are the terminal window, an e-mail client, a web browser, and a text editor, in random order). The fewer distractions, the better.

I use Firefox as my browser, in part because it has a few important extensions that are impossible to ignore. One stands out primarily in that I almost never notice it: NoScript. This extension blocks JavaScript, Flash, and Java code from executing automatically. If I need such code to run for a particular page, I can allow it temporarily. If I always need the code to run (such as on our site statistics reports), I can enable it permanently.

The rest of the web is blissfully quiet non-responsive to anything but my clicks. Thank you to all of the NoScript developers and contributors!

Jonathan Wellons

AddThis Social Bookmark Button

From The Mathematical Sciences Research Institute.

The hat problem goes like this:

Three players enter a room and a red or blue hat is placed on each person’s head. The color of each hat is determined by a coin toss, with the outcome of one coin toss having no effect on the others. Each person can see the other players’ hats but not his own.

No communication of any sort is allowed, except for an initial strategy session before the game begins. Once they have had a chance to look at the other hats, the players must simultaneously guess the color of their own hats or pass. The group shares a hypothetical $3 million prize if at least one player guesses correctly and no players guess incorrectly.

One obvious strategy for the players, for instance, would be for one player to always guess “red” while the other players pass. This would give the group a 50 percent chance of winning the prize. Can the group do better?

Don’t click the link unless you want the answer. Can you beat my time of 5 minutes?

James Turner

AddThis Social Bookmark Button

You know all those nice things I said about the Microsoft Development environment a couple of weeks ago? Well, I still stand by them as a realistic opinion of the quality of the platform for developers. However, today’s news brings the major reason you should run away from depending on Microsoft technology like it had a case of Ebola.

The murmurs and worries about Microsoft’s ongoing patent gossip campaign, which came to a roiling boil with the Novell deal, have ended. Yep, no more rumors, just the plain reality that Microsoft is going to take their portfolio of laughable patents and start sticking it to the open source community legally, as spelled out in the most recent Fortune.

I’m trying really hard to avoid descending into obscenities here. So where-ever you see the * character, feel free to insert your own vulgarities as you see fit. * Microsoft has proved what a * bunch of * they are, and shown their true colors yet again. All the * about their open source lab and the code they were releasing as open source was in the end, just * propaganda, as many of us had suspected. Faced with omens such as Dell selling Linux on the desktop, they drew their last major card from the FUD deck, and hope to steal the pot.

And this is why you should use Microsoft technologies only as a very last resort. Because they don’t play nice with others. Sure, all companies are competitive and will do pretty much anything they can do to make a buck, but Microsoft is taking things to a new level. What you as a customer are being told, in essence, is that if you use any technology but Microsoft’s (or those of a company paying blood-money to Microsoft), you are likely to be sued. I don’t know about you, but I don’t like to do business with people who threaten and extort me.

Jonathan Wellons

AddThis Social Bookmark Button

I spend a lot of time coding in a lot of languages, with a lot of libraries, with a lot of obscure error messages. I don’t check any language or platform’s “official online docs” and I haven’t touched a hardcopy manual in years. No, the resource I reach for first is Google. But I don’t aim for results that look topical so I can examine them more closely. For me a search for an API call or bug fix is truly successful if I can see what I need to know in the excerpts without clicking through any results at all.

Give it a try for a little while.

Jeremy Jones

AddThis Social Bookmark Button

Last night at the Atlanta Python Meetup, I became aware that there are folks who have been around Python for a while who are unaware of the Python Cheese Shop. The “Cheese Shop” (named after the Monty Python skit) is intended to be a central repository for libraries and applications written in Python. Couple this with easy_install and you have a quick, easy, and clean way to install libraries and applications to your Python installation. By issuing the single command `easy_install ipython`, you will have the latest IPython installed on your system.

Adriano Ferreira

AddThis Social Bookmark Button

What’s happening in the front of Perl 5 development? I bring you some rumours that cheer me up.

Andy Oram

AddThis Social Bookmark Button

Red Hat, which is holding a summit this week, announced plans for a new desktop that will seamlessly integrate local data and applications with remote data and applications accessed over the Internet.

We’ll have to see details before desktop users can determine how new this is. Many will say, “I already have several desktops that seamlessly integrate local and remote data and applications. One is called Firefox, one is called Konquerer, one is called Internet Explorer…” I assume Global Desktop offers a new level of collaboration we aren’t used to already.

And although quotes from Red Hat managers in a Vnunet article contrast the new desktop with what they consider an obsolete Windows model, my sense of what Microsoft is doing (from SharePoint through the new integrated Office features and onward) strives toward the same goal: letting everybody work on data stored on local corporate networks or the Internet, without regard for location.

But I’m optimistic; maybe this is big. Maybe a product modestly “intended for local government and small business customers” will turn out to be a paradigm shift.

Whether or not it’s significant, what I find most interesting is that the driving technology was borrowed from One Laptop Per Child, which Red Hat is heavily involved in developing. This would be just one more example of the oft-noted phenomenon that technologies developed for non-commercial purposes end up benefiting industry and taking off in new venues.

Adriano Ferreira

AddThis Social Bookmark Button

There are nice markup languages out there. One of these is Textile. When writing the basic stuff, it lets you write uncluttered code (even with attributes, classes, ids). And when needed, you can jump the gun and write raw HTML.

You find Textile implementations in many programming languages, including the four P languages: PHP, Python, Perl and Ruby (the P language with R :).

Textile looks to me like a stripped HTML variant, one that gets rid of all those angle brackets. It makes me feel lighter. Such a piece of text seems just right to me.

h1. Header

A paragraph with a *bold phrase* and an _italic phrase_.

"Nice looking quotes"! Pretty ellipsis... and beautiful rendering of 2 x 2, one(TM), two(R), and others. I also enjoy footnotes[1], @pieces of code
in monotype@, and %{color:red}more%. Try to paste that code into the "Textile development page":http://textile.thresholdstate.com/ .

fn1. Cool, isn't?

Who uses Textile? Do you feel the same as I do? Or am I wrong and these distinguishing features are just too common?

Update: fixed link mistake pointed by Tj.


And this is my first blog entry for O’Reilly. It’s such a horrible thing to do something for the first time. I wish I started it by the second one and I hope you enjoy the topics here. Maybe I even try an introduction some other time.

chromatic

AddThis Social Bookmark Button

Alligator Eggs is a very cute puzzle game with a surprising mathematical model beneath. I wish it explained how to indent my alligators, though. They keep going out of alignment.

Curtis Poe

AddThis Social Bookmark Button

On this blog, Dave Cross recently wrote about free Perl training the BBC is sponsoring in London (Dave will be the trainer) and chromatic wrote about recruiting Perl programmers and frankly, it’s a hot topic in the Perl community right now. There are, frankly, more jobs than there are programmers. At this point, many people automatically say “just don’t use Perl”, but that doesn’t work. Here’s a bit of history about how this problem came about and my predictions about what’s going to happen next.

Curtis Poe

AddThis Social Bookmark Button

Hey, it’s that time again. If you have an idea that you think would be beneficial for the Perl community, please check out our Call for Proposals. Get paid for open source work!

Andy Oram

AddThis Social Bookmark Button

Hong Feng is a software developer and passionate free software advocate of many talents. He’s based in mainland China (although he gets around a lot) and he has a mission to help Chinese programmers make great contributions to free and open source software. I got to know him after he founded O’Reilly’s Beijing office in 1997, although he is now independent.

He’s developed several courses and is working on a 500-page book, aimed at both beginners and graduate students, that is meant to help them develop the discipline to be competent hackers. I can’t read the poem, but he tells me explores not only the major topics in computer science but such intellect-building activities as GO playing and the I-Ching, which presents original thoughts on “how to think about ancient Chinese intelligence in conjunction with modern math and technologies.”

Hong Feng’s approach fascinates me for combining a wide swath of influences with a joy in Chinese culture and pedagogical practices. He’s even written his personal story of development up as a