April 2007 Archives

Andy Oram

AddThis Social Bookmark Button

We’ve all suffered from lost time and lost connections because of false positives from necessary spam filters. Just this morning, board members of a non-profit I volunteer for were complaining to me that email to board members gets trapped as spam, and while working on this blog I nearly lost an email that was treated as a false positive.

But some businesses lose more than time. Open source advocate Ryan Bagueros, who does consulting around web developer and open source (his firms are northxsouth and Linefeed) told me lots of promising social networking companies are stymied because the emails they send members and prospective members get trapped by spam filters–especially at the major email hosting sites.

I find this ironic, because the social networking sites are structured networks that promise ultimately to be a replacement for email: richer with identifying information, more secure, and full of features to build relationships and communities. Yet to get off the ground, the sites depend on email, the only universal online medium, in all its primitiveness. And the sites suffer because of it.

James Turner

AddThis Social Bookmark Button

I mentioned a new ONLamp feature in last week’s Linux Newsletter (and if you don’t get the newsletter, full of my sparkling wit and charm, as well as a summary of the articles and blogs for the week, why don’t you?). The ONLamp Ombudsman will work to resolve those pesky questions to the Ombudsman (which is my secret identity…), and he’ll work to track down the answers.

Had an annoying PHP bug that no one on the mailing list seems to have an answer for? Been trying to figure out how to do something in MySQL, but no one has a clue? Tired of rhetorical questions? Send those problems to the ONLamp Ombudsman (in care of turner at oreilly.com, with OMBUDSMAN in the subject, guess it’s not much of a secret identity, eh?), and I’ll… I mean he’ll try to find the answers to a select few. Let the awesome power of the ONLamp Ombudsman, second only to the Israeli Army, work for you!

chromatic

AddThis Social Bookmark Button

Perl 5.8.x pumpking Nicholas Clark has more thoughts on recruiting good Perl programmers in London. I still keep hearing that plenty of companies want to hire good Perl programmers in places such as Los Angeles and London and much of western Europe, but they can’t find enough applicants.

Maybe it’s time to dust off your Camel book, grab any of Catalyst, Jifty, Maypole, or CGI::Application, and renew your career.

brian d foy

AddThis Social Bookmark Button

It’s time to nominate recipients for the White Camel award, which recognizes non-technical achievement in Perl. Coding is easy, but the people who make the hard slog to support the community and the continued usefulness of Perl are rare and valuable, just like white camels.

I invented the White Camel Award in 1999 as a part of Perl Mongers, and it’s now handled by The Perl Foundation. To submit a name (and the reason for the award), send email to whitecamel-suggestions@perl.org . The deadline is May 31, and TPF will present the awards at OSCON.

Jeremy Jones

AddThis Social Bookmark Button

Doug Napoleone has just posted an update on his progress with the audio and video of PyCon 2007. It looks like much, if not all, of PyCon will be available starting “real soon now” (my quote, not Doug’s). You can read Doug’s full post here.

Mike Hendrickson

AddThis Social Bookmark Button

I did some analysis of our audiences who purchase books. This is a time-oriented graph. If you notice the spikes on the “Consumer” trend line, those represent the end of each year. Consumer purchasing reaches a peak at the end-of-the-year holiday period. Consumer means people who buy computer-oriented books like Ipod, Digital Photography, etc. Books that are not for software developers or system administrators or other computer science types.

audience_changes.jpg

So look at the slow erosion of the System Administrator audience. That is certainly interesting to me. Could it be that there are no really new IT admin tools or technologies to explore? I’d be interested to hear what you think.

James Turner

AddThis Social Bookmark Button

Two useful indicators of the increasing viability of Linux on the desktop; one personal, one public. The public one is the imminent announcement of preinstalled Linux on Dell Desktop machines, combined with the news that Vista is foundering enough for OEMs to fall back to XP.

The other, more personal, is what happened when I went into CompUSA last night to buy a new laptop. Because I do Linux product reviews, it had to be able to dual-boot Linux well, and specifically support Beryl. I had resigned myself to the usual buy-and-pray approach, looking at the several dozen laptops on display, since even a quick web search on my PDA didn’t offer much guidance.

Not expecting much help, I lassoed a salesdroid to try to at least get some advice on which one would run Vista Aero best, and mentioned that Linux and Beryl were a major concern. I was surprised to hear that the droid ran Ubuntu at home, and more surprised when he told me he’d grab the ‘Linux Expert’ from the back of their tech support / repair area.

Within a few minutes, they had gone off to do some research on which models would meet my needs best. 30 minutes later (!), they returned to announce that my best bet would be a Core2 Duo HP with an Intel graphics chip. I was skeptical, but decided to give it a go. I took it home, shrunk the Vista partition (nice new feature in Vista…), and installed Feisty Fawn. True to their word, not only did the Wifi work with WPA right off the bat, but the AIXGL support for the Intel graphics processor did as well, and Beryl came right up.

Now, to keep this from being a total love fest, I should mention that the salesperson also tried to convince me that installing Linux would void the HP warranty, something I sincerely doubt. But this was in the context of trying to sell me an extended warranty, which is when all the FUD and half-truths come out. Overall, I was hugely impressed by the degree to which they both knew, and were willing to assist me with, Linux.

Both of these events tell me that, while this might not be THE year of Linux on the Desktop, it’s going to be a major step forward.

James Turner

AddThis Social Bookmark Button

I’m probably not saying anything that hasn’t been said before here, but I thought I’d share a few thoughts on why people seem to be drawn to the Microsoft Way. I recently did something at the ‘day job’ that I’ve thought about doing for a long time, but never quite worked up the steam to follow through on, I signed up to participate in a a Microsoft-centric project, and to learn .NET.

I have made abortive stabs in the past to learn to code in the Microsoft Universe. I made a stab back in the bad old COM days, but the number of hoops I was being asked to jump through was more than I wanted to bite off at that time. Since then, I’ve carried that bad taste in my mouth, and resisted adding any Microsoft skill sets to my repertoire, even though it was sometimes a gap in my resume.

I’ve worked frequently in environments where there was the one Microsoft Guy, the evangelist who would constantly tell you how much easier it would have been in .NET. I’ve written them off as Kool-Aid drinking Gates worshipers. But, at the end of the day, I felt that if I was going to criticize them, I really needed to understand where they were coming from. Know thy enemy, and all that.

I spent last week learning in order C#, .NET and VSTO (that’s Visual Studio Toolkit for Office, if you’re not familiar with Microsoft’s alphabet soup.) I used the O’Reilly ‘Learning C#’ book, and did something I rarely do, went through it pretty methodically (at least the first half or so.)

Guess what? Microsoft has a pretty good development suite on their hands. To be honest, C# is largely what I’d do if I could rewrite Java from scratch with no concerns for backward compatibility. It has a couple of really cool features, like the virtual, override and new keywords that let you specify what should happen when you cast a class to it’s base class and then call a method on it that’s defined in both.

Visual Studio is a slick tool that really does let you bang out applications (and with VSTO, plug ins for Office) is very little time. ADO.NET is no worse then JDBC, and is pretty seamlessly integrated into Visual Studio. I was able, by the end of the week, to develop both stand-alone applications and Office plug ins that could talk to back-end databases, having written very little code. From what I’ve seen, ASP.NET does the same for MVC web applications.

So what’s good about a monoculture, and why does Microsoft win so often when people make a decision about platforms? Largely because what the open source community sees as a strength, people trying to get a job done in the real world see as a weakness. We celebrate the diversity of choices available to solve a problem and call it freedom. IT managers and CIOs look at it and call it chaos, confusion and uncertainty.

Should I use iBatis or Hibernate? XFire or AXIS? Perl, PHP or Ruby? Debian, Fedora, Ubuntu or Suse? Make the wrong decision, and you can waste a ton of time, as we found out on a recent project when we wasted a week try to make AXIS2 work for a web service project, only to find out that XFire was the right choice.

For the Microsoft Guy, no such confusion. You use ADO.NET, ASP.NET, C# and Windows. They all work, they’re all well documented from the perspective of a developer’s needs, with nary a disparaging ‘go look at the source’ blow-off. Every time I thought I was going to be stuck, there were a dozen articles explaining how to do exactly what I needed to do, with sample code that was up to date with the versions of the software I was using, and that actually related to the problem I was trying to solve.

Microsoft offers the certainty of no choices. Choice isn’t always good, and the open source community sometimes offers far too many ways to skin the same cat, choices that are born more out of pride, ego or stubbornness than a genuine need for two different paths. I won’t point fingers, everyone knows examples.

Now, least you think I’ve been turned to the Dark Side, there is one BIG problem with a monoculture, which is that you’ve essentially sold your soul for the stability of a clearcut set of choices. You go down the .NET path, you’re pretty much stuck there forever, Mono not withstanding. You’re always going to be running on a Windows platform. You got the pretty gold ring, but Sauron gets to pull your strings and make you dance. For many companies, ones that don’t need to worry about deploying into heterogeneous environments, that’s a deal they’re more than willing to make.

The takeaway I get from this entire line of reasoning is this: that somehow, someway, we need to start doing some winnowing. The 700 lb clue-bat has to be available to pound on the head of those who fork for no better reason than a disagreement over a license, or who should get to call the shots. When we hear about two or more projects that answer the same question, we should be asking ourself “Why don’t they pool their effort and produce one really good solution?”, rather than celebrating diversity for diversity’s sake alone.

Do we really need Ruby on Rails AND Groovy on Grails? When the April Fools’ announcement of Python on Planes came out, it took me a second to realize it was a hoax, because it’s just the kind of ‘doing something for the sake of doing it’ effort that fractionalizes the OSS community. There’s no way to stop people from starting new duplicative projects, nor should we want to, but please God, do we have to actively encourage it?

We spend a lot of time complaining about all the evil ways Microsoft uses to foist themselves on the world. By doing this, we automatically remove any blame that we ourselves may bear for their successes and our failures. The reality is that there are good, practical reasons that drive people into the arms of the Redmond tool set, and we need to accept that as a fact and learn from it, rather than shake our fists and curse the darkness. For we have met the enemy, and it is us, not Microsoft, at least not all the time…

chromatic

AddThis Social Bookmark Button

I attend more than my share of conferences. Because I travel for work, it’s important to take my laptop with me–and there’s little more convenient than open, unfettered wireless Internet access. (Wireless power that doesn’t cook my innards is the only thing that comes to mind.)

The easier it is to find an open wireless network and join it, the better my life is. (Good wireless support is one of two things I though Mac OS X did well; see Switching Back to Desktop Linux.) Fortunately, I found WiFi Radar and life is easy.

For example, I connected my System 76 laptop to the Portland airport’s free wireless several months ago and haven’t thought of it since. I had some free time before a flight yesterday, so I booted my laptop and went to connect to the network, only to find that my system had already joined.

The fewer pieces of infrastructure I have to keep in my head, the better. If selecting an ESSID and entering a key once is sufficient to let me update code and fetch and send e-mail, great. Thanks to all WiFi Radar developers and contributors for making that process easy.

Curtis Poe

AddThis Social Bookmark Button

Preface: if you love XML, that’s fine. I’ve nothing against the technology per se, but it’s not always the best tool for the job.

I’ll be in Copenhagen next weekend for the Nordic Perl Workshop giving a talk about multi-language test suites. This will be based on the work done with TAP::Parser and it will contain a brief discussion of TAP (the Test Anything Protocol), a protocol which is almost 20 years old and is gaining in popularity.

One question I’m sometimes asked by those not involved with TAP is why we don’t use XML for our test results. This is a brief attempt to answer that.

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

“The current pugs implementation is just translating to the old form underneath, so it’s not surprising it’s a bit off. That’s the sort of thing that happens when the language designer gives the language implementor whiplash. However, I rather suspect the interpersonal metaphorical meaning was lost on the physicist/comic who decided that the 3rd derivative of position should be called ‘jerk’. :)”

– Larry Wall, in ‘What should file test operators return?’

Andy Oram

AddThis Social Bookmark Button

I’d encountered a bunch of Nokia reps at the 2005 GNOME summit, so I’m not too surprised to see a press release for a GNOME Mobile & Embedded Initiative (GMAE). (Thanks to author Karim Yaghmour of Building Embedded Linux Systems for notifying me.)

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

“developers shouldn’t live in fear of $^O”

– Jerry Gay, in ‘Use of English pragma’

chromatic

AddThis Social Bookmark Button

I believe that a programming language should never crash, even given bad input. There may be cases where it reports obscure syntax errors that are difficult to understand, but crashing is unacceptable.

One way to make sure that there are no crashes is to feed your parser as much invalid input as you can imagine and check that you only ever get syntax errors. (I suppose another way is to write formal proofs for your parser, but even then you may have bugs in your implementation.)

To do that, you need a large corpus of valid programs and a way to generate a large corpus of mostly-valid programs that aren’t quite right.

I installed Algorithm::MarkovChain and set to work.

Jeremy Jones

AddThis Social Bookmark Button

Steve Holden posted an excellent blog post entitled “Python is Not a Religion” on the topic of Python advocacy the other day, laying out the need for common sense, passion, and planning. Python is a good answer for a large range of programming problems. However, it is not the only good answer for this same range of programming problems. Nor is it even an answer for another (albeit smaller) set of programming problems. I’m all for Python advocacy as anyone who frequents this blog can attest, but it needs to be done in the right way and for the right reasons. I think Steve helps get us closer to both of those. Great post, Steve!

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

“I don’t think that it’s possible to make this non-conformity a fatal heresy :-(
(gcc –spanish-inquisition)”

– Nicholas Clark in ‘[perl #42110] [PATCH] Returning values from void functions’

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

This week saw the introduction of the Perl 6 Microgrants. Read more about them in ‘Perl 6 Microgrants. Now accepting proposals.’

chromatic

AddThis Social Bookmark Button

My colleague Jim Shore and I have been working with BlueTech to explore exercises for professional software developers.

chromatic

AddThis Social Bookmark Button

One of the weirdest portability problems I’ve ever encountered is dealing with platforms with case-insensitive filesystems. Files I expected to be there mysteriously weren’t. Files I didn’t expect to be there mysteriously were.

Case-sensitivity in programming languages confuses novices too, especially on insensitive platforms. The capitalization of certain words matters within the language where it doesn’t on the filesystem.

Usually that only leads to mysterious error messages. Though a novice may not know enough about the language to decipher the message yet, there’s no silent failure. Unfortunately, there’s a case in Perl where there are silent failures: pragmata.

Jonathan Wellons

AddThis Social Bookmark Button

This Tuesday, I have the good fortune to give a presentation on N. Smith, A. Capiluppi, and J. Fernandez-Ramil’s classic journal paper “Agent-Based Simulation Of Open Source Evolution,” from Software Process: Improvement and Practice 2006; 11: 423-43. Well, if anything from 2006 can be a classic, F/OSS is the place.

Figuring out how Free Software evolves is a black art. There’s quite a bit of grant money in it and I’ve seen theories that do everything from trying to quantify the exact number of developers the core of a project must have to purporting to build a checklist of all features that define when you will be successful integrating Open Source into your organization.

In this case, Smith et al. have taken the CVS logs from the Gaim, Wine , Arla , and MPlayer projects, plotted how their complexity evolved over time, then tried to tweak a model of developer-agents until the virtual project’s complexity had the same shape as the real ones. They hope to use this to causal relationships between module fitness, complexity and other factors. You will have to make your own decision as to whether they succeeded.

chromatic

AddThis Social Bookmark Button

I feel awkward admitting that I don’t use primarily mutt as my mail client (I do use it when I ssh into various machines), but I’m a big fan of KMail.

I’ve never found a perfect mail client, but I’ve used KMail off and on as my primary client since 2000, and it’s definitely my favorite.

I strongly prefer IMAP, and only two clients I’ve tried have handled IMAP at all decently: Mail.app on Mac OS X (just about the only Mac OS X application I might reasonably miss) and KMail. My most recent flirtation was with Evolution, but as my mail folders grew larger and more numerous, its performance went from adequate to abysmal and, finally, unusable.

When I switched back to KMail, I set up my IMAP connections as cached IMAP connections, and my problems went away.

I have a few small gripes and questions that I really should ask on a #kmail or #kontact IRC channel sometime, but it’s only when something goes seriously weird that I even have to think about my mail program. That’s the sign of a quality program.

Thank you to all KMail and Kontact contributors and developers!

Jonathan Wellons

AddThis Social Bookmark Button

When I was a software developer for the O’Reilly Network (articles and blogs, like the one you’re reading now), I probably wrote about 3 to 5 times as much text as code. It was a lot of code, but in my role as an analyst, I sent a lot of email and IMs about the state of our systems and data.

I had a consulting job last summer where the ratio was more like 1 to 5: a lot of code as I built a website from scratch in Perl, and less text: status updates and discussion of features.

Now that I’m a Ph.D. student in Computer Science, it’s probably more like 50 to 1. I write essays, papers, reviews, exercise solutions, even comments on homework I grade. What do I code? Not much, only one of my 4 classes this semester involves programming, and it was all in Lisp where a little code goes a long way (oh, and also some Prolog).

I’ve always done plenty of coding on personal projects (where there may be little or no text at all), but I can say my text to code ratio for my primary job has gone from medium to low to high. Or something like that — I don’t know what’s normal.

What is your estimated text to code ratio? I’m thinking character-to-character comparision, but if you think time spent is better, feel free. It can be from your job, or your hobbies, or both, but please don’t mix them. And how would you count documentation?

Jonathan Wellons

AddThis Social Bookmark Button

If you’re a programmer, you may spend a lot of time figuring out how to make things faster. If you work with number-crunching, you’ve seen plenty of cases where you can greatly reduce a program’s runtime by some huge factor. You’re probably pretty good at it…

If you’d like to test your algorithmic wit, describe how to speed these calculations up (Ie., without actually adding up all the numbers):

What is the sum of the whole numbers between 1 and a trillion (10^12)?

What is the sum of the whole numbers between 1 and a trillion that have the additional property that they are divisible by 7? (7, 14, 21, …)

What is the sum of the whole numbers between 1 and a trillion that are divisible by 7 and when reversed are still divisible by 7? Numbers like 7, 168, and 1169 do this.

chromatic

AddThis Social Bookmark Button

Way back in December, Tim Janik wrote State of the Gtk+ Maintenance.

Like many large projects, Gtk+ is an essential part of many free software desktops. Like many projects, it’s also grown organically. Like many projects, it has far fewer core developers than you might expect.

It can be difficult to mentor new developers through the process of making a first contribution to becoming full-fledged developers. That doesn’t happen very often, in my experience. What I appreciate most about Tim’s message is that he explores all of the necessary issues to improve the Gtk+ project to the point of making that goal more reasonable.

I’ve long believed that having source code available under a free license is no guarantee of utility, much less attractiveness to potential contributors. Thoughtful project governance and management is, perhaps, an order of magnitude more likely to make one project more attractive and sustainable.

Jeremy Jones

AddThis Social Bookmark Button

I’m not a huge advocate of getting type checking into Python, but this is an interesting recipe. By applying a decorator, you can specify what types the input and output of a function/method should be. I like having the flexibility to be able to do this if I want to. (As an aside, one benefit for me of working with code that has explicit input and return types is knowing for certain what type of thing a method/function takes.)

The recipe can be found here. It’s not revolutionary and may be less relevant when signature annotations make it into Python 3000, but it’s really interesting to look at now. (Less relevant meaning in the immediate knowledge of what types something takes and returns by reading it in a Python 3000 signature-annotated method. I know that there aren’t plans for typechecking in py3k.)

Andy Oram

AddThis Social Bookmark Button

Unicon Systems has just announced a development kit for mobile devices based on Linux, boasting it as “the first and only” such kit. Unicon devices are meant for specialized embedded applications (”industrial, banking, medical,…appliances, entertainment…”).

The kit is apparently not open source, but is shipped with a device for $599.

They list a wide range of software features in a PDF comparsion sheet, including localization and support for various software development practices, such as rapid prototyping.

The device, built around a ARM9 S3C240A 266-MHz chip, offers such amenities as stereo audio inputs and outputs, Wi-Fi, and a color touch screen. Its graphics are based on Nano-X.

Jonathan Wellons

AddThis Social Bookmark Button

I was lucky enough to read J. Michaelson’s classic (well, 2004) magazine article entitled “There’s No Such Thing as a Free (Software) Lunch.”

He digs deep into the details of licensing and corporate acceptance of Free Software. He’s a lawyer so he doesn’t speculate, but I’ll connect the dots where he doesn’t. I’m going to reveal the dark secret of so-called “Free Software”.

Ignorance is Strength because if developers, corporate lawyers and corporations knew how complicated, varied and legally untested the licenses were, there would be much less innovation and confidence in Open Source.

Freedom is Slavery because code freedom is inversely proportional to developer freedom. The more “free” a piece of code is, the less a developer or corporation can do to integrate it into their products.

War is Peace because in the midst of flamewars, vicious IP lawsuits, and MS/Linux hate, the masses of Free Software users are productive, trusting, happy and idealistic.

You’ve seen this before, in George Orwell’s novel 1984 the three slogans of The Party are War is Peace, Freedom is Slavery, Ignorance is Strength! Big Brother anyone?

Jonathan Wellons

AddThis Social Bookmark Button

I don’t know if you’ve seen The Two Things Meme, but apparently if you ask an expert what the two things you really need to know in her discipline are, she’ll think for a minute and come up with them. But, other experts all come up with different pairs!

Glen Whitman maintains many pairs of The Two Things about Computer Science and programming in general (Jump Link to his Computer section), but nobody appears to have asked the question specifically about LAMP (0 results as of today).

So, what are The Two Things to keep in mind for LAMP?

chromatic

AddThis Social Bookmark Button

One area in which Perl falls behind other languages is in its lack of a usable Read-Evaluate-Print-Loop. (perl -de 0 just isn’t enough for me.) I’ve used Ruby’s irb and a handful of Python shells, and I’m starting to become a fan of ghci, but I fall back on perl -e far too often for my sanity.

Matt S. Trout, who you may remember from DBIx::Class and the Catalyst Framework, has written an article about Writing a Modern Perl REPL, using good design techniques and, of course, some of the most powerful CPAN modules available.

chromatic

AddThis Social Bookmark Button

Despite my best efforts, I occasionally have to perform system administration. This often means checking logs, reading man pages, typing commands, and editing configuration files–often on a remote system. I have a great little shell script that opens several Xterms in the appropriate way on my local machine under an X11 session, but that doesn’t always work on remote systems.

That’s just one reason to love GNU Screen. All of a sudden, one remote login can host a handful of command-line sessions. It’s easy to flip back and forth as necessary.

I used screen off and on for a few years, until someone (I forget whom, sadly) taught me the most useful trick of all. I use Ctrl-a and Ctrl-e to jump to the start and end of Bash lines, but screen uses Ctrl-a as its hotkey. At least, it does until you add one line to your ~/.screenrc:

escape \034\034

Now Ctrl-\ is my hotkey; I never type that by accident, and Ctrl-a does exactly what it should do. There’s no pain in using screen anymore, and I’m a convert. Thanks to all of the screen developers and contributors!

chromatic

AddThis Social Bookmark Button

I’ve been out of the music industry for a decade, but every so often I look into it again. The decision makers haven’t improved since I stopped caring ten years ago, and they’re not any smarter.

The current bugaboo isn’t the cassette tape anymore, but piracy.

There’s really an easy solution. If losses due to piracy are as high as industry organizations claim, the economics will eventually make this solution feasable.

Stop shipping physical products via the sea.

Now if I were in charge, I’d address the ease of digital distribution of music and the potential for copyright infringement, but apparently armed robbery at sea is more important.

chromatic

AddThis Social Bookmark Button

Andy Armstrong has strong-armed Google Co-op to make a custom search engine dedicated to the Perl world. That might help narrow down some searches I’ve performed lately.

Are there similar engines for other communities and projects?

Nitesh Dhanjani

AddThis Social Bookmark Button

twitter.png jott.png
Both Twitter and Jott authenticate users by their phone number. Twitter does this by validating users based upon the source of SMS messages sent to the phone number 40404 (US), and Jott does this by trusting the incoming Caller ID when someone calls 877-568-848. From a security perspective this means the following:

  • Anyone who knows your phone number can update your Twitter page by spoofing a SMS message, i.e. post a Twitter entry as you.
  • Anyone who knows your phone number can spoof his or her caller ID to send a Jott message as you.
chromatic

AddThis Social Bookmark Button

I’m working my way through Graham Hutton’s Programming in Haskell. Despite the fact that I’m not a mathematician (and I still believe that Haskell has syntax only a mathematician could love), it’s an accessible computer science text. It’s nicely clear, too, despite its relatively short length.

Most of the exercises are good too… except for one stumper in the list comprehensions chapter.

Todd Ogasawara

AddThis Social Bookmark Button

It just occured to me that Microsoft’s Port 25 site turned 1 year old on March 1. So, here’s a belated Happy Birthday to the site :-) The first official Port 25 welcome message was posted a bit later by Bill Hilf on March 28 (Welcome to Port 25). And, Jamie Cannon laid out the 10 point Port 25 Mission statement just a week earlier. So, perhaps I am not that late in my well wishes to the site.

Earlier this week Information Week’s David Strom attended the Microsoft Tech Summit and wrote…

Microsoft’s Tech Summit: Redmond Still Trying To ‘Get’ Open Source Software

One of Strom’s comments is: There is a growing emphasis on interoperability at Microsoft, and they are clearly spending a lot of resources on projects (such as Windows and other operating systems, new versions of Windows networking protocols, and new programming languages with older ones), but there is still room for improvement. You can never do too much interop testing. Interop is getting more attention, but still isn’t infused into the core culture yet.

This whole Open Source and Proprietary Software Interoperability movement is still very new. I still get odd looks in response to the tag on my business card that reads Open Source & Proprietary Software Can Co-Exist. In fact, the first person who did not produce an odd look on his face after seeing my card was Bill Hilf of the Microsoft Open Source Labs when I dropped by his office to introduce myself and ask for more information about what this Open Source Labs was doing at Microsoft nearly two years ago.

There’s a lot of business model experimentation going on in both camps. Red Hat probably led the way years ago when they stopped providing ISO files after Red Hat 9. Then, they embraced Fedora Core. And, now, well, I can’t figure out what Red Hat is doing with Fedora Core to be honest. SUSE moved in a nearly opposite direction after being acquired by Novell taking SUSE from for-fee only to providing an OpenSUSE edition with freely downloadable ISO files. And, well, of course, that partnership with Microsoft that generates a lot of heated debate. MySQL split their distribution to a free Community Edition and a for-fee Enterprise Edition that adds some interesting proprietary management applications to entice potential license purchasers. Marc Fleury cause a bunch of commotion a few years ago with the Professional Open Source initiative at JBoss (before being acquired by Red Hat) and paying lead programmers of Open Source projects (to be honest, it seemed like a good idea to me). Google, the openess poster child and acknowledged thought leader in the web space releases their client-side applications (Google Earth, Picasa, Google Desktop, etc.) as free but closed source applications. SUN moved both Solaris and Java into the Open Source space. And, there are, of course, many more examples of interesting movements in one direction or the other.

The “truth”, I think, lies somewhere between the shrillness of the cries of “Microsoft is evil” or “Open Source is evil” from opposing philosophical camps. But, “the truth”, as the X-Files fictional Agent Fox Mulder would say,” IS somewhere out there.”

This Inside Port 25 blog vehicle has been an interesting 10 week experiment for me. I was thrilled when O’Reilly Media contacted me to ask if I would be interested in really focusing in on Microsoft’s Port 25 site and provide reflective commentary as an interested outsider (I spend a lot of time talking about Open Source software for Windows and Mac OS X on my personal blog). This my last official blog item within the scope of this great 10 week reflection experiment. But, I’ve been talking about this in more general terms for years. So, I’m definitely going to continue this conversation on the various sites and sub-sites (such as WindowsDevCenter and MacDevCenter here in the O’Reilly Media blogging space). Thanks for the 10 week ride. I hope those of you who spent your valuable time reading Inside Port 25 items from either me or Matt Asay felt it was an interesting experiment too! See you out there!



Postscript: Speaking of seeing you out there… The nice folks at my day job are letting me attend the CMP/O’Reilly Web 2.0 Expo later this month. So, if you see an Attendee badge with my name on it, do stop me to say hello and let me know what you thought of this Inside Port 25 experiment.

chromatic