February 2007 Archives

brian d foy

AddThis Social Bookmark Button

The mini-CPAN, a smaller version of the Comprehensive Perl Archive Network that includes just the latest versions and excludes a few big things, is now about 700 MB on my machine. That means that it can’t quite fit onto a single CD, at least without removing parts of it. What should go though?

I’ve been playing with GrandPerspective, a Mac OS X utility to show a tree map of a directory to easily show where the big files are. Here’s the map for my /MINICPAN:

GrandPerspective-minicpan.png

The big files represented by the tan section in the lower left are BioPerl, Most of the other big boxes are parrotin various releases, but from different authors (so maybe my minicpan script needs to recognize the multi-author situations to remove old versions.). This would probably be a cool movie of an animated window, but I don’t know how to do that just yet. :) Now it’s easy to find the big files and remove them (although a du -s can do this too, but it doesn’t have the pretty picture).

Jeremy Jones

AddThis Social Bookmark Button

I’m trying to dig into C# a little more at work, so I decided to do something really easy and write a little code to grab an RSS feed and pull the enclosure data out of it. Before you look at the code, let me say that I don’t have an objective point to make with this. I’m not trying to make sweeping judgments based on number of lines of code or anything else. I do have some subjective remarks to make at the end, however.

Here is the C# code:

using System;
using System.Xml;

namespace RssGrabber
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            string rssUrl = "http://geekmuse.dreamhosters.com/wp/?feed=rss2";
            XmlTextReader reader = new XmlTextReader(rssUrl);
            while(reader.Read())
            {
                if ((reader.IsStartElement()) && (reader.Name == "enclosure"))
                {
                    while (reader.MoveToNextAttribute())
                    {
                        System.Console.WriteLine("{0} => {1}", reader.Name, reader.Value);
                    }
                }
            }
        }
    }
}

Here is the Python code:

from elementtree import ElementTree as ET
import StringIO
import urllib

rssUrl = "http://geekmuse.dreamhosters.com/wp/?feed=rss2"

et = ET.parse(StringIO.StringIO(urllib.urlopen(rssUrl).read()))
for elem in et.findall("//enclosure"):
    for items in  elem.attrib.items():
        print "%s => %s" % items

Now, on to the subjective. Python just feels more manageable than C#. It feels friendlier. It didn’t feel tedious to try to get data out of. That’s it. That’s my point. If your opinion varies from that, then that’s OK. I’m not here to change your mind. And I’m definitely not here to try to offer up comprehensive language comparisons. I’m just expressing a little piece of an experience I just had which I thought was worth noting.

Todd Ogasawara

AddThis Social Bookmark Button

Microsoft CodePlex logoPort 25’s MichaelF collected another bunch of Microsoft CodePlex project updates.

CodePlex Update

One of my long time techie-passions has been playing with Windows Mobile based Pocket PCs and Smartphones (now called Professional, Standard, and Classic). So, the CodePlex project in Michael’s list that caught my eye is…

SMS Notifier

Its project page describes it like this: SMS Notifier watches for incoming calls that are missed (i.e. not answered). Depending on configuration settings it does the following things: 1) Send an SMS message to the caller (configurable contents), possibly containing also the end time of current appointment (configurable). 2) Adds an item to calendar (containing the caller info).

Check out Michael’s blog to read through the rest of the CodePlex project updates.

Andy Oram

AddThis Social Bookmark Button

In the financial world, the big news today is the worldwide drop in stock prices, including the worst performance in the United States since the aftermath of the September 11 attacks. But there seems to be an interesting computer story too. During the tense afternoon in the U.S., Dow computers fell behind and failed to reflect the full extent of stock declines. Apparently, Dow brought some new computers online about 3:00 PM, and within a few minutes the Dow caught up and registered an extra 200-point fall. This, in turn, increased the panic among investors and led to an exaggerated sell-off, although this was probably mitigated by the end of the day.

I can’t find much information about this yet, and am relying on a few snippets of online news reports plus an NPR radio broadcast. It will be interesting to hear more details. It sounds as if the Dow computer administrators (who are highly paid, well-trained, and dedicated) had a back-up plan in place and implemented it successfully. But it must have been a horrendous day for them, and the jolt that investors received on seeing the sudden drop could not have contributed to good financial planning.

When we hear more about the computer systems, it may provide lessons for emergency management in a number of areas, including local and national government responses to disasters. The incident shows that information systems are at their most strained–and in the hardest ways to anticipate–just at the times when the public asks the most from them, and needs information most urgently.

AddThis Social Bookmark Button

I had a friend tell me a funny thing today. He suggested that good software would put IT admins out of basis. “The depend on bad software for their jobs,” he laughed.

While he was obviously joking, there’s some truth to his comment. If software worked perfectly, there would be no need for vendors to support it (write once, runs forever), or for IT workers to manage it.

However, this has not proven to be the case in the real world. As IT has become easier to use (and cheaper), it has expanded the market, not killed it. Take a look at Microsoft if you don’t believe me.

Lower Costs Grow Market

Microsoft, in a very real sense, is all about taking the heavy lifting out of IT. Microsoft has a range of products that are designed to interact seamlessly with each other. They don’t always live up to this promise, but that is the promise of Microsoft: IT solutions for the average person, as I’ve written before.

Some scorn Microsoft for this. Others, like me, chide Microsoft for locking customers in and competitors out with its end-to-end solutions. I’m sure there’s truth to what I’ve written on the subject, but I also believe that Microsoft genuinely sees huge market opportunity in making IT easier to use. Microsoft, as I once heard Jason Matusow say, bakes solutions into its software, removing (as much as possible) the most expensive part of the software purchase: consulting to make it useful.

Interestingly, he has also pointed out that open source has historically focused on islands of functionality that don’t necessarily work well together without consulting. This is changing, but it’s a valid criticism if you look at the past open source market.

On this note, I believe we in the open source world have a lot to learn from Microsoft. It’s important to recognize that most developers and IT administrators aren’t Linus Torvalds. They’re average, like you and I. The biggest market opportunity is in serving the needs of the average person, as Microsoft has learned. Open source needs to learn this same lesson. I believe that we are, but Microsoft may well show the way forward.

chromatic

AddThis Social Bookmark Button

Sure, it’s an oldie, but I use GNU bash every day and have no idea how I’d get my work done without it.

Not only do I have a reliable stable of shell scripts (my favorite is xt, which fills my screen with appropriately-placed XTerms in the current directory–it’s great for programming !), but I use bash completion to make the tab and space keys more powerful.

When a full shell script is too much, Damian Conway’s realias trick has saved me an immense amount of time.

Simon Myers’ Power Shell Usage is full of wonderful bash tips and tricks. I’m a big fan of Ctrl-r and $!, for example.

There are dozens of bash features I’ve never even heard of and might one day use. The level of customization and flexibility from a really good command line makes it almost painful to use a GUI sometimes. Fortunately, I don’t even have to think about what I’m doing. Yes, bash is that good.

Thank you to all of the shell developers and documenters and contributors who keep the command line flexible, powerful, and useful.

AddThis Social Bookmark Button

I had a conversation with Bill Hilf not long ago. We were talking about the Microsoft-Novell deal, but the conversation ended much more broadly, discussing the US patent system. It’s the same conversation I’ve had with Jason Matusow, and a range of others both inside and outside of Microsoft.

The conversation goes like this: we don’t like the patent system, but we’re forced to work within it. That means both licensing patents (to and from others). It means occasional sabre rattling (when you think someone is infringing your patents). And it means (very) occasionl patent suits. (Microsoft, for its part, has almost never actually ligitigated its patent portfolio, to its credit).

Funny enough, these were the same sorts of things I spent my Masters degree working on. The degree was in International Conflict Analysis, which basically boils down to, “It’s a cruddy world, but we have to make do.”

I’m not naive. I don’t think Microsoft can afford to lay down its patent portfolio and hug and kiss everyone. Others certainly don’t seem to be willing to do the same for Microsoft.

I do wonder, however, if there’s a better way to leverage it; one that doesn’t require the occasional FUD bomb.

Part of the GPL’s genius is that it allows you to have a copyright and exercise control with it, but transparent (and, I would argue, benevolent) control. You grant rights, but you don’t give up any in the process. I wonder if there’s a way for Microsoft (and others) to make their patents available in such a way that they can be used, but not easily used against the holder. I haven’t thought this through (just thinking out loud here), but it seems like this is the sort of aggressive move that would speak well to Microsoft’s competitive inclination, without making it prey to others who opted to horde their own patent portfolios.

Again, just thinking out loud. I suggest this for Microsoft because for all the grief I give the company, Microsoft has generally been an innocuous holder of intellectual property, whatever its other faults. The company has rarely sued anyone. It has a comparatively anemic licensing business from its patents. Etc.

So maybe Microsoft could afford to take a “patent-left” approach to its patents. Or maybe it’s late and someone left the gas on…. :-)

AddThis Social Bookmark Button

I’m not at the HIMSS Conference today, but Steve Ballmer was, and delivered the opening keynote. Scott Shreeve was there and captured some of Ballmer’s more notable statements:

  1. Healthcare is “the greatest opportunity that Microsoft has ever had in its 30 years of existence.”

  2. Microsoft plans to “leverage ALL their hardware, software, and creativity toward solving healthcare related problems”. He promised that Microsoft would “apply” itself fully to solving this problem.
  3. Azyxxi, a proprietary enterprise Electronic Health Record company that Microsoft purchased last summer, is “the most exciting software that Microsoft is working on” right now. Ballmer described Azyxxi as a “unified healthcare information technology platform”.

Wow. That’s a lot of superlatives to find in one place. It’s especially intriguing because Ballmer isn’t any ordinary speaker - he knows that everything he says is carefully noted and will be remembered. As such, he can’t afford to waste superlatives.

His recent comments that he worries more about disruptive business models than specific competitors (a sentiment I suggested back in the first half of 2005), and that open source is one of its biggest threats (though I think it’s an opportunity), added to these healthcare statements make you wonder:

If Microsoft’s biggest threat is open source, and it’s biggest opportunity is health care, then wouldn’t an open source healthcare company be its biggest competitor?

Like, maybe, MedSphere?

Hmmm….

Jeremy Jones

AddThis Social Bookmark Button

Chris McAvoy just announced that PyCon 2008 will be held in Chicago. Congrats, ChiPy folks!

Todd Ogasawara

AddThis Social Bookmark Button

Just a quick note that…

Mono 1.2.3

…was released last week and that it includes two interesting new feature additions.

Mono is a clean room port of Microsoft’s .NET architecture that lets you build and run .NET applications on other OS platforms such as Linux and Mac OS X.

You can find a video interview with Mono project leader Miguel de Icaza on Microsoft’s Port 25 site at…

Talking Mono with Miguel de Icaza

Jeremy Jones

AddThis Social Bookmark Button

Yesterday brought PyCon 2007 to a close. Well, sort of. There are sprints going on for the next few days, but the formal sessions are over. This was a great experience for me and I’m already looking forward to next year. I’ll try to put my thougts together for a “PyCon 2007 as a whole” blog post later.

The first session was a keynote by Robert M. Lefkowitz entitled “The Importance of Programming Literacy”. This talk was humorous, engaging, thought provoking, and almost bizarre at times. As a speaker, Lefkowitz is energetic and connected well with the audience. (At least, what he was saying connected well with me.) He challenged the thought of “computer literacy” being “ability to work the applications on a computer”. He also challenged the thought of “programming literacy” being “knowledge of ‘the classic texts’ of computer science such as SICP, Kernigan and Ritchie, Stevens (network programming), and Knuth”. He proposed an analogy of programming literacy to prose literacy. If prose literacy is knowledge and familiarity with classic works of prose, so programming literacy is knowledge and familiarity with classic works of programming by way of the source code. Taking the analogy further, he proposed that our works of programming could (and maybe should) work more like works of literature. Why is it broken up into multiple files? Why do we spend as much time (sometimes more) writing spoken/written language explanations of what the code does rather than let the code speak for itself? He hinted that perhaps the future of programming would include some multimedia file format for source code which would include requirement specifications, coding reasons why an algorithm is implemented a certain way, and the kitchen sink to boot. I thought this was insightful, but I don’t have a clear picture of what a programming environment would have to look like.

The next talk I attended was “You vs. The Real World: Writing Tests With Fixtures” by Kumar McMillan. He expressed the importance of testing applications in as real world of a sense as possible. The main focus of the talk was to walk through such cases using the “fixture” package.

Next, Kevin Dangoor gave a talk entitled “The Wonderful World of Widgets for the Web”. Basically, Kevin gave an overview of the new ToscaWidgets toolkit which was recently spun off from the TurboGears project. These widgets provide a standard way of including “things” in a page (such as a forms) which include CSS for styling, JavaScript for a richer experience, and can also perform validation.

After Kevin’s talk on widgets, I attended “The Essentials of Stackless Python” by Christian Tismer. I had attended another Stackess talk on day 1 by Andrew Dalke. Christian’s talk delved a little deeper into how things actually work and he even tied some things in to PyPy.

I attended two testing sessions next. The first was “twill, scotch, and figleaf — tools for testing” by Dr. C. Titus Brown. Titus walked through using his tools (twill, scotch, and figleaf) with TurboGears and Django. This was a really informative talk and showed how easy it is to get started testing. The next testing talk was “Pybots: Testing Python Projects in Real Time” by Grig Gheorghiu. While interesting, this talk seemed slightly less applicable to the typical user. The idea of PyBots is that it allows you to automatedly test a Python application against various versions of Python on various OS and hardware platforms.

The final session that I attended was “Weaving Togethehr Women and IT” by Anna Martelli Ravenscroft. Anna discussed the disproportional ratio of women to men in the IT industry and tried to give some insight into the reasons for this. A lot of the reason seemed to be “we don’t know for sure”. But there seemed to be good indicators that much of it is specifically cultural. She brought up a topic that seemed to pop up quite a bit in the conference: basically computer classes in elementary and middle school are mostly worthless. They focus on “tools” such as MS Word, Powerpoint, etc. Her point on this was that such basic courses are relevant if you’re interested in becoming a secretary, but not much more. I think it’s always good to think about such things as her topic which challenge thoughts you may not even know you had.

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

Remember that the European Perl Hackathon will be held next weekend, from 2-4 March, 2007 in Arnhem, the Netherlands. Registration is open until Thursday, 1 March. For more information, please look at the hackathon website.

Allison Randal and Jonathan Worthington will be coordinating the Parrot/Perl 6 portion of the hackathon.

Jeremy Jones

AddThis Social Bookmark Button

Yesterday, I described the first keynote, which was about the OLPC project, as “inspiring”. Today’s first session was a keynote by Adele Goldberg entitled “Premise: eLearning does not Belong in Public Schools”. I would describe her talk as disturbing and challenging but hopeful. The condition of public schools in the United States is troubling. It seems that attempts to use computers in public schools to help better educate the children are destined to fail. This is a gross generalization, to be sure. If memory serves me from the session (because my notes certainly have failed on that item), computers are already in the majority of public schools. That doesn’t sound like a failure. But they don’t appear to be an efficacious means of accomplishing their desired goal. That’s what I mean by failure. Now that I’ve given the disturbing part, let me move on to the challenging and hopeful part. There have been some studies which indicate that computers (programming specifically!) can have a positive result on the educational development of children. But, just like most things, it’s hard to do right. But not impossible. Adele offered some suggestions by way of techniques that work in educating children well. I am not going to rely on computers to educate my children, but I certainly will allow them to play a role in their development. I am already, in fact.

The next session I attended was an overview of SQLAlchemy by Mark Ramm. I had heard of SQLAlchemy and browsed some of the docs, but I hadn’t taken the time to study it. SQLAlchemy is an amazingly flexible ORM which is totally different from anything I’ve ever seen before. You don’t have to just map a class to a table and attributes to columns. It sounds like you can do some crazy complicated stuff with it. I hope Django builds in support for SQLAlchemy soon.

After SQLAlchemy, I attended a talk on IronPython by Jim Hugunin. Jim gave an overview of where IronPython is and where it is going. It is currently at version 1.0, which is 2.4 compatible. Version 1.1 should be coming out in April and will provide partial Python 2.5 support and more standard library modules working. 2.0 should ship early 2008 and will provide 2.5 support and still more modules working. Jim mentioned the excellent IronPython Community Edition. For anyone not familiar with the history of IPCE, it was created because Microsoft would not accept patches from non-Microsoft folks and would not bundle IronPython with other applications which have LGPL, BSD, etc. licenses. I was glad to see him directly address the issue in the middle of his talk rather than waiting to be asked about it. I was further glad to hear a straight forward answer on this subject. And while it is sad that Microsoft is unwilling do what IPCE has done, I can appreciate their hesitance to do so. And I appreciate Jim for his candor in discussing it. All in all, IronPython is an exciting project. I’m glad to see Python gain a potential community boost by way of the host of .NET developers across the world.

Next was the keynote by Guido van Rossum on Python 3000. I can’t possibly give even a succinct summary of his talk in a short space. Python 3000 should be out in June of 2008. Some changes include discontinuation of classic classes, dictionary views, all strings will be unicode strings, a new I/O library, signature annotation, abstract base classes (maybe), and a switch statement (maybe). Actually, he took a poll of the audience for the switch/case statement and the response was overwhelmingly “no”.

The next talk I attended was “Embedding Little Languages in Python” by Dan Milstein. Basically, Dan gave an overview of how he had switched from using an imperative approach to writing certain pieces of code to using a more declarative approach.

After that, I attended two IPython sessions back to back. The first was “IPython: getting the most out of working interactively in Python” by Brian Granger. This was an excellent overview of using IPython in debugging, interactive coding, and working with GUI apps without getting stuck in the main event loop. There are definitely some new tricks available since I wrote an IPython article some time back. The next IPython session was entitled “Interactive Parallel and Distributed Computing with IPython”, again, by Brian Granger. He showed how he had built a distributed application using IPython which allows users to send work to a number of “drone” processes which run on other servers.

The last session I attended on day 2 was “A Program Transformation Tool for Python 3000″ by Jeremy Hylton. Jeremy went over a couple of tools which are currently in development which allow users to analyze their own source code and get a hint if it will have problems running under Python 3.0.

I think my head is ready to explode now.

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

“> Errrr … I’m the one who needs the tutorial, not the one to write it.

“That makes you a prime person to capture the questions it needs to answer! You can’t evade the Responsibility Ponies that easily.”

– chromatic, responding to James E Keenan in ‘What Skills Do We Need to Finish Parrot?’

Andy Oram

AddThis Social Bookmark Button

Like so many Internet abuses–spam, artificial measures to boost search engine rankings, and most recently, anonymous postings by businesses or political campaigns that pretend to be unaffiliated–click fraud is an Internet war that undergoes constant metamorphosis.

Both sides (those who wish to abuse the system and those who want to keep it clean) are always increasing their sophistication, pushing more and more criteria through more and more complex algorithms in an effort to outsmart the foe.

In these sorts of battles, the good guys are always attempting to reduce the burden on humans by automating their responses, and run up against the problems involved in anticipating a creative human foe. Also endemic to these situations are complaints about unfairness, inaccurate classifications, and other weaknesses suggesting a need for standardization.

What interests me about the company Click Forensics is the distributed, P2P-like strategy put into practice by their Click Fraud Network. It attempts to maximize the volume and variety of data available for sifting the good clicks from the bad.

The Network brings in a huge amount of input data and allows fast turn-around for results. The question is whether this technique will work for the domain of click fraud.

As in all the collaborative, Web 2.0 sorts of sharing that are currently making the news (or quietly making revolutions in various fields), the Click Forensics strategy reaches out to large numbers of affected users in an appeal to combine their power and try for ever-better results. The philosophy behind this strategy is intriguing; whether or not it proves successful, it is already yielding some interesting public results.

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

“: This mornings up date proposed

“Now the da rn spam fi1ters are chang.ng my spelling to look like sp*m. Yeah, that’s the 4icket… :)”

– Larry Wall, in ‘Enhancing array indices’

Jeremy Jones

AddThis Social Bookmark Button

Today was day 1 of PyCon 2007. It started with a talk by Ivan Krstić which I
can only describe as inspiring. Ivan works for the One Laptop Per Child (OLPC)
project and he described the focus of the project, its current state, and its
heavy reliance on Python. With the exception of a few low-level components,
the OLPC laptop is built entirely using Python. It was inspiring to hear the
desire of this group to provide such a tool and an opportunity to those who
would otherwise have missed out. It was also inspiring to hear Ivan speak of
overcoming “impossible” barrier after barrier. I would recommend anyone who is
able and willing to support this project with their time and talent to visit
the OLPC website and look for a spot to
fill.

The next session I attended was “Writing your Own Python Types in C” by Jack
Diederich. This was a good overview of porting Python code to C code and using
Python’s C API to do so.

Following the talk on Python types in C, I attended “Parsing revisited: a
grammar transformation approach to parsing” by Ernesto Posse. Ernesto walked
through his project aperiot.
From the website, “aperiot is a grammar description language and a parser
generator for Python. Its purpose is to provide the means to describe a
language’s grammar and automatically generate a Python parser to recognize and
process text written in that language. It is intended to be used mainly for
programming and modeling languages.” What I found particularly interesting in
this talk was Ernesto’s quest to trim back the parser to make it more
efficient while removing redundancy and ambiguity.

Next, I attended “Using Stackless” by Andrew Dalke. I would classify this talk
as enlightening. I knew very little about Stackless before attending this
session. The general idea is that stackless can be used to accomplish
concurrent programming without resorting to threads. Stackless tasklets
correspond to threads and Stackless channels correspond to queues. I’m looking
forward to Christian’s talk on Stackless on Sunday.

Next was a talk by Ian Bicking on WSGI. This is another topic which I’ve
learned a little about, but never dug into very deeply. Ian did a great job of
giving an overview of this protocol.

Following up the WSGI discussion was the much-anticipated Web Frameworks Panel.
On the panel were Kevin Dangoor of TurboGears, Jonathan Ellis of spyce, Robert
Brewer of cherrypy, Duncan McGreggor of nevow, Jim Fulton of Zope, Adrian
Holovaty of Django, Ben Bangert of Pylons, and James Tauber of pyjamas. There
were a few tense moments, but overall, these guys played very well together.

After the Web Frameworks Panel, I attended a talk on Sony’s use of Python in
their Imageworks division. It’s always interesting to hear how other companies
are using Python, especially when the result is as cool as Spiderman 3.

Jim Baker delivered the next talk I attended. It was entitled “Iterators in
Action” and it was fantastic. I wish Jim had been given another half hour to
get into some of the other topics he had prepared, but alas. Maybe next PyCon.

The last session I attended today was “The State of Python Advocacy” by Jeff
Rush. This talk showed the passion of the Python people to promote their
language of choice. This was clear both in Jeff’s presentation as well as the
questions and comments at the end of the session. It seems that things are
brewing to facilitate enlarging Python’s borders. I definitely welcome that.

I can’t wait for day 2. More later.

chromatic

AddThis Social Bookmark Button

The Parrot team has just announced the release of Parrot 0.4.9, “Socorro”, following the new monthly release cycle. This version has better Perl 6 rule support, lots of bugfixes, a PocketPC port, unified calling conventions between C and PIR components, better tools, plenty of language improvement (as always, Tcl and this time lots of Lua) and plenty of new features.

Additionally, Chris Yocum has just posted a great summary of starting to implement a new language with Parrot. He chose Dartmouth BASIC 1964 and the Parrot compiler toolchain. It looks like he had a lot of fun too.

The next release will be 20 March 2007. See you then!

Todd Ogasawara

AddThis Social Bookmark Button

PgAdmin IIII generally work in a LAMP environment. So, I was interested to read PostgreSQL on Windows: A Primer announced on Port 25. I had looked briefly at PostgreSQL about 3 or 4 years ago. But, MySQL had always suited my database needs well. It also seemed to my MySQL spoiled fingers that PostgreSQL required a lot more manual intervention to install on Linux (compared to MySQL). So, I haven’t revisited PostgreSQL since then.

The PostgreSQL server was not available for Windows back then (though I seem to recall some kind of client piece was). And, I had not realized that a version for Windows was now available. This was enough to pique my curiousity. So, I fired up a previously built and fully patched Windows Server 2003 R2 Enterprise Edition virtual machine in Virtual PC 2007, attached a shared folder pointing at a directory on the physical hard drive (for unpacking the installation files), downloaded PostgreSQL 8.2.3-1 for Microsoft Windows and followed along the instructions in the 11 page primer (9 pages of instructions with lots of nice screen captures). Chris Travers’ instructions were very easy to follow and understand. You’ll want to read it carefully though since some recommendations are not reflected in the screen caps (e.g., he recommends that character encoding be set to UTF-8 but the screen cap shows the default SQL_ASCII setting).

I fired up the bundled Pg Admin III GUI and it looks like PostgreSQL is running on my virtual machine. Nothing is as simple as installing MySQL from RPM files in Linux (one command line and set the root passwords). But, installing PostgreSQL for Windows was smooth and painless with Chris’ Primer as a guide.

Ann Barcomb

AddThis Social Bookmark Button

This week on the Perl 6 mailing lists

“Take the longest token, lie down and if the unease persists, write some code…”

– Brad Bowman, in ‘DFA/NFA context is non-local’

AddThis Social Bookmark Button

Microsoft is in the midst of oral arguments before the Supreme Court this week [Full transcript here] with interesting repurcussions possible for the entire software industry. The WSJ has a good synopsis of what’s at stake:

In general, patents are only enforceable in the country that issues them. Thus, it is no infringement for a foreign firm to manufacture and sell a rival’s U.S.-patented device abroad. To extend their monopolies overseas, U.S. companies must obtain a patent in each nation where they wish to protect their inventions. Under a special exception, though, it is an infringement to ship U.S.-made components of a patented device for assembly overseas.

AT&T Inc. holds a patent for voice-compression technology that makes it easier to transmit and store speech on personal computers and other devices. Microsoft Corp. concedes installing the technology on U.S.-built computers would infringe the patent. But it says it isn’t a violation to ship a master disk of the software overseas, where it duplicates the software for installation on computers assembled in Germany, Belgium and other countries.

Microsoft argues the “component” is a physical disk containing the software, and it is free to duplicate it overseas, much as it could duplicate any other patented device overseas. AT&T contends the software itself is the component, regardless of the medium.

So, what’s the big deal? Well, as InformationWeek reports,

It’s possible that in their decision, the justices could give broad opinions on the scope of patent law, how it affects innovation and even outsourcing….

That, despite the fact that Microsoft and its backers argue a victory for AT&T could put U.S. software developers at a disadvantage relative to foreign competitors, some of whom operate in countries with more lenient patent regulations. An AT&T win would “hinder software development in the U.S. and encourage companies to move their software development overseas,” says Roger Kennedy, who represents Oracle in the Coalition For Patent Fairness.

What’s most interesting in the case is what it means for the definition of a software product. Is it the software, or the disk that it ships on?

Justice Anthony Kennedy called it “odd” that Microsoft would be the party contending that a computer disk, rather than the software, is product. “I mean, Microsoft doesn’t say please buy our disc because it’s the prettiest disc in the business,” he said. “It says buy our program because the program means something,” he said.

“But the program is nothing until made into a physical manifestation that can be read by the computer,” replied former Bush Solicitor General Theodore Olson, representing Microsoft. “An idea or a principle…can’t be patented. It has to be put together with a machine and made into a usable device.” In this case, “the components that make the machines run that are produced abroad are not supplied from the United States.”

I’m trying to figure out the ramifications of Microsoft winning its suit on the definition alluded to above. Do we really want to tie code to physical media? Is that what Microsoft’s argument requires?

I’m not sure, but this is a case worth watching.

Jeremy Jones

AddThis Social Bookmark Button

I have everything (except for my laptop) packed up and ready to go to PyCon. I still haven’t nailed down which sessions I’m going to attend. I look forward to meeting everyone.

AddThis Social Bookmark Button

The Open Solutions Alliance launched the other day at LinuxWorld. If you read my InfoWorld blog, you know that I’m not a big fan of the OSA. But it’s not personal to the OSA. I just don’t believe these sorts of organizations provide any value to the industry, though they occasionally provide momentary value to their members.

Why? Because customers don’t buy from committees. They buy from companies.

In many cases, they wish those companies’ products worked better with other products they buy. But what they really seem to want, if history shows anything, is for the market to naturally rally around a leader. Microsoft is a good example.

Microsoft makes some excellent products, and some that aren’t as good. (Just like anyone.) But on the balance, the company makes good software that a great deal of people want to buy. To maintain its leadership position, the company has enabled other companies to build on it as a platform and make money from add-on/tie-in/integrated products. The richer the ecosystem, the richer Microsoft’s bank account.

Only recently has the company awakened to its open source ecosystem (and the associated opportunity) with a lab set up specifically to enable interoperability, but even slow learners learn. :-)

This is the sort of interoperability that the market cares about. Not whether Alfresco is interoperable with Compiere or MuleSource - we have few customers in common at this point. It’s when customer counts dramatically increase that interoperability really matters to buyers, and at that point an industry organization set up to enable interoperability is somewhat pointless. Why did JBoss partner with Microsoft? Because more than 50% of its customers use Microsoft Windows. Same with SugarCRM. And MySQL. And Zend. And…you get the point.

But OSDL, OSA, and others may not, so I’ll restate it: the point that interoperability matters to customers is the point that an industry organization becomes immaterial.

Remember United Linux? It was an effort by the also-ran Linux vendors to counter Red Hat’s dominance. It never took off because customers didn’t want to buy from an industry organization. They clearly wanted to buy from Red Hat.

Customers interested in a full suite of software (for BI or whatever else) aren’t going to look to a disparate band of small-time open source vendors to provide it. They’re going to look to market leaders and a single company to provide it. That’s why it’s critical for open source vendors, as Microsoft learned long ago, to build a compelling product (or suite of products) and win. Everyone wants to be interoperable with a winner.

That’s the goal. To write history, not to be history. Love Microsoft or hate it, it’s writing history. Industry organizations…? You know what I think.

Todd Ogasawara

AddThis Social Bookmark Button

Microsoft’s Port 25 reports that Microsoft Virtual Server PC 2007 has been released. They have links to posts by the Virtual Machine team’s Ben Armstrong who provides tips on running Linux as a Virtual PC 2007 Guest OS. Note that both Microsoft Virtual PC 2007 and Virtual Server 2005 R2 are free products.

I’ve been running Fedora Core 5 & 6, CentOS 4.4, OpenSUSE 10.2, and Ubuntu 6.06LTS and 6.10 under Virtual PC 2004, 2007 Beta/Release Candidate, and now 2007 (production). I’ve also run Windows 2000, Windows XP, Windows Vista Beta-2, Windows Server 2003 R2 Enterprise Edition, and Longhorn Server Beta-2 as Guest OSes successfully. The most important Guest OS is Windows 98 Second Edition. Why? Because it is the newest version of Windows (I don’t count Windows ME :-) that runs LEGO Loco (see video clip below). LEGO Loco will not run on Windows NT or its descendents (2000, XP, etc.).

Be sure to install Virtual Machine Additions for any Windows version for a better virtualized experience. Happy virtualizing!



LEGO Loco is an old software toy that only runs in Windows 95, 98, and 98SE (and maybe ME). It does not run under Windows NT4, Windows 2000, Windows XP, or Windows Vista. This is a brief demo showing LEGO Loco running in Windows 98 which is hosted on a Windows XP PC running the recently released Microsoft Virtual PC 2007. This video is for a demo on the O’Reilly Media Inside Port 25 site found at http://www.onlamp.com/onlamp/port25/
chromatic

AddThis Social Bookmark Button

When I have to write in C, ccache makes it much less painful to rebuild software. I appreciate that Make handles dependencies, but its reliance on timestamps sometimes causes unnecessary rebuilds. If ccache fixed only that, it would be useful–but it does much more.

This is one development tool I would miss greatly if it did not exist. Thank you, ccache developers and contributors!

AddThis Social Bookmark Button

Venkatesh made a comment to a post on my InfoWorld blog which has been troubling me all weekend. He asserts that Microsoft’s dominance on the desktop has inhibited its ability to dominate the online world. I agree.

Microsoft has been struggling to live up to its means in the online world, as Ballmer himself has noted. What he didn’t address is why. He seems to believe that it’s just a matter of time and innovation.

What he may be missing is that by holding so tenaciously to the desktop, the company is ripe to be disrupted, not to do the disrupting. This is Clayton Christensen’s classic “innovator’s dilemma”.

I have a tremendous amount of respect for Microsoft, and believe the desktop as we know it (mostly “fat” client) will be around for awhile. But I also worry that Microsoft may be giving up its future to ensure the profitability of its past. It is starting to figure out open source - that is good. But to truly compete with Google, it needs to abandon its fetish for the desktop.

Or maybe not? After all, people like me predicted the end of bricks-and-mortar retailing during the height of the bubble. As it turned out, the Internet only partially supplanted traditional bricks-and-mortar retail. The best strategies may well combine the two.

What do you think?

Todd Ogasawara

AddThis Social Bookmark Button

I’m old enough to remember installing and using GNU EMACS, Perl, and even Linux before the term Open Source was coined. I remember patiently waiting for bunches of uuencoded installation files to appear slowly over USENET (I think GNU EMACS required something like 50 newsgroup postings). And, yes, I know RMS hates equating Free Software with Open Source. But, let’s put that aside for a moment.

So, when I saw the Slashdot item titled Has Open Source Lost Its Halo?, I felt compelled the read the Illuminata Perspectives blog item that prompted that item: Predatory Open Source? by Gordon Haff.

It hits on one aspect of the many changes we’ve seen in the Open Source community for the past five years or so. It seems like Open Source has become somewhat less of a community and more of an industry over the years. For me, the big event was when Red Hat stopped providing free ISO downloads and updates for Red Hat Linux (after RH9). Fortunately, the community was still strong and the Fedora Core project (later absorbed back into Red Hat) and CentOS distribution picked up the slack. More recently I watched MySQL fork their database into Enterprise and Community Editions. But, although the Community binary (RPM) distributions will be limited to twice a year releases, the source code seems to be flowing at its regular pace. And, it is very easy to configure and build MySQL from source. Let’s hope it stays that way.

In his blog, Gordon looks at the more recent Open Source phenomenon of firms Open Sourcing their (previously) proprietary code and ponders on possible hidden agendas. He says In effect Open Source has become a free pass for all sorts of competitive actions that would once have been–at a minimum–roundly criticized.

And, of course, the various proprietary-Open Source joint efforts (e.g, Microsoft, Novell, and Xen) and outright control by purchase (e.g., Oracle purchasing InnoDB) has raised all kind of eyebrows and questions.

One has to wonder if it is even possible to launch a new large scale Open Source project without major corporate support in today’s environment. The attorney fees alone would be daunting.

That said, I still support the cooperation and convergence of the proprietary and Open Source industries (community no more? I hope not). And, I still hope that someday one of the best lightweight operating systems built gets converted from proprietary to Open Source. Which one? Windows 98 Second Edition. It requires fewer resources (RAM and disk space) than most current Linux distros, has pretty good driver support, works with a lot of peripherals, and runs some great old games that won’t run in Windows XP or Vista. I’m looking at the Windows 98SE VHD file I use with Microsoft Virtual PC and note that it is mere 180MB (and runs comfortable in 64 or 128MB RAM)! Yep, you could burn it to a CD-R and have room to spare. Ok, I know it will never happen (see my tongue in cheek blog item from 2004 Microsoft should release Windows 98 SE as Open Source). But, it sure would be nice to have a bunch of FOSS developers take a swing at bringing Windows 98SE into the 21st century without making it too much bigger. :-)

And, as I said in my previous blog… I hope the new Microsoft-Novell Joint Interoperability Lab staff create a community around their work rather than just tell what will happen. Let’s hope the nice folks over at Microsoft’s Port 25 encourages the new joint teams in this direction.

AddThis Social Bookmark Button

Competition in the marketplace is a good thing right?

So now we have both jobs.perl.org and jobs.perl.com.

I’m about to start looking for a new Perl job - so let’s see which one of them is most useful. Currently the perl.com seems a bit light on jobs in the UK, but I’m sure that’s just because it’s early days.

Update: A couple of people have decided that the comments to this post is a good place to advertise jobs. Well, it’s not. Why not use one of the services mentioned above. If the perl.com service prevents you from posting UK jobs, then contact them to complain - I have nothing to do with that site.

It might also be worth mentioning a blog post I wrote a few weeks ago which contains some advice on finding Perl programmers in London.

Mike Hendrickson

AddThis Social Bookmark Button

Hunting for a Perl guru? Or maybe you’re one yourself and are ready for a “change of scenery.” Whether you’re on the prowl for great people or are looking to be found yourself, Perl.com can help.

We’ve just added jobs to Perl.com through our partnership with the folks at Simply Hired. If you want to reach a community of Perl gurus, you’ve come to the right place. Post your job now and land the kind of Perl talent that will make you dance in your cubicle.

Or perhaps you’re ready to give yourself a raise. We’ve got plenty of jobs to choose from with some pretty cool companies. Come on in and take a look.

If you have any suggestions or comments, leave them as comments here or send email to ideas {at} oreillynet.com.

Please do not post your links to other job boards, I’ll toast them if you do.

Here are the links:

Jeremy Jones

AddThis Social Bookmark Button

I’m planning on attending PyCon next week. I