April 2008 Archives

Todd Ogasawara

AddThis Social Bookmark Button

Microsoft’s Sam Ramji posted a blog innocuously titled…

Managing Towards Open

Honestly, I might have passed over reading it except for the fact that I read this item over on Information Week first…

Microsoft Uses Open Source To Extend Systems Management To Linux

They’re doing this by taking Open Source (MIT License variety) code from the OpenPegasus project that describes itself as open-source implementationof the DMTF CIM and WBEM standards. This alphabet soup translates to: Distributed Management Task Force, Common Information Model, and Web-Based Enterprise Management.

In a recently posted blog fellow ONLamp blogger Noah Gift called it Microsoft Trojan Horse Part Duex: System Center Operations Manager 2007 Cross Platform Extensions and Connectors. I’m taking a more wait-and-see approach to it to see what comes of out this effort to interoperate in the enterprise environment. I am curious what the OpenPegasus project members think of this and whether or not they are directly involved in this effort.

Noah Gift

AddThis Social Bookmark Button

After reading a recent press release about System Center Operations Manager 2007 being able to “manage Unix/Linux”, the first thought that goes through my head is WTF? Who in their right mind would touch that product?

After thinking for a bit, I then realize this is the exact same corporate strategy Microsoft has pursued with Active Directory. Release a trojan horse into a corporation by making an inferior, arguably broken, operating system, Windows, that won’t work with anything else, or follow the same standards, and then release a steaming pile of bandages, duct tape, glue, and well…poo, and make everyone authenticate against it while charging an expensive licensing fee.

We have active bot nets that rival NASA in pure computing power due to boneheaded Operating System design, yet Corporate America should have Microsoft manage Unix and Linux. Ha, ha, ha, I am rolling on the floor laughing. For anyone has had the “pleasure” of dealing with Active Directory and the politics that goes on with that, I shudder to think of this product. May God have mercy on your souls.

References:

Botnet
Botnet pandemic

Post Script: This is a FACT, of the 600 million computers on the internet 100-150 of them have been a part of a botnet at one point. These are primarily Windows computers. This is a complete failure by Microsoft of Epic proportions.

“Operating systems like Microsoft Windows, meanwhile, still made it too easy for criminals to infiltrate them, the experts said.”

AddThis Social Bookmark Button

Well, this is nifty. A start-up named Kickfire has released a MySQL appliance. There is nothing “nifty” about a network appliance of course; that is, unless the appliance has specialized hardware and software to outperform a similarly configured in-house configured server.

And that is the point behind Kickfire.

They have designed a specialized processor for SQL servers and integrated this with MySQL using customized code. Apparently, the box screams.

I first read about this on Jason Perlow’s blog, and he goes into greater detail, including notes about how this may set a trend for appliance based SQL servers running PostgreSQL, Oracle, and even Microsoft SQL Server. MS-SQL on an appliance? Now that would really be nifty.

Todd Ogasawara

AddThis Social Bookmark Button

Bryan Kirschner (Microsoft Director of Platform Community in their Open Source Labs) talks about three groups of people in relation to their Open Source efforts in a blog entry titled…

Open Source Day + 30 …

His group 3 includes pretty much anyone at Microsoft whose primary job does not necessarily include Open Source but touches on it. I’m really concerned with the direction Microsoft’s virtualization effort is taking since Virtual Server 2005 R2 SP1 came out and the upcoming production release of Hyper-V. The Virtual Machines team appears to be ignoring everything except for Suse Linux. While that is a fine Linux distro, there are a bunch of other important distros too (especially the ones I use :-). Virtual PC 2007 and Virtual Server 2005 R2 SP1 both have problems with Red Hat Enterprise Linux versions starting with RHEL5 (this includes CentOS 5) and Ubuntu starting with version 7.


Supported Guest OS on Windows Server 2008 Hyper-V

I’ve been tracking the various workarounds that people have figured out for RHEL5, CentOS 5, Fedora 7 and 8, and Ubuntu 7 and 8. You can find my current collection of installation workarounds in the links below to my personal blog.

Red Hat 5/CentOS 5.1 and Microsoft Virtual Server 2005 R2 SP1

TechNet Blog: Fedora 8 on Virtual PC 2007

Ubuntu 8.04LTS vs. Microsoft Virtual PC 2007

I haven’t tried these distros with VMware ESX 3.x. However, none of them cause installation problems for VMware Workstation 6 for Windows, VMware Fusion for Mac, or Parallels Desktop for Mac. I really hope that the Microsoft Virtual Machine teams takes a hard look at their product direction and add support for the current versions of major Linux distros like RHEL5 and Ubuntu. Failure to do so simply makes it easier for people to move to VMware ESX and avoid buying Windows Server 2008 with Hyper-V.

Nitesh Dhanjani

AddThis Social Bookmark Button

The Cloud Computing buzz is everywhere. The concept of grid computing on the Internet to provide elasticity and virtualization of resources is quite appealing, and hence there has been a lot of academic brain-storming going on recently that has given rise to abstract ideas on how cloud computing is destined to change the way technology resources are deployed and used.

Amazon’s EC2 isn’t abstract - it’s real. And it’s very impressive.

Doug Hellmann

AddThis Social Bookmark Button

The functools module includes tools for wrapping functions and other callable objects.
Noah Gift

AddThis Social Bookmark Button

I am going to make an effort to solve classic computer science problems in Python on a regular basis, and blog about them. It seems like a good way to have some fun. This may be a regular blog series.

Because I am going to implement a Coin Changing Restful Web Service using Google App Engine for a presentation I am doing for PyAtl next month, I thought I would show three approaches that I could think of. In doing a google search for “Python Greedy Coin Change”, I didn’t find anyone that had written one and posted the code, so I figured I would make one easily googable. The full source code is here, along with unittests:

Python Greedy Coin Algorithm Source

Approach one was to just use conditional statements, which was pretty tedious to write. Approach two used a while loop and was much shorter. Approach three used recursion, which was also quite a bit shorter. My friend Toby beat me to the recursion solution, so I have to thank him for that one. It would be interesting to see how many other ways I could solve the problem, I think trying to use only functional programming could be a fun twist for example.

I put all three in a commandline tool which make it easier to run and test things out. A couple interesting things to point out about Greedy Coin Changer.

1. You need to get rid of decimals and only work with whole numbers. int(amount*100)
2. Divmod is a wonderful built in function that divides and returns the number and a remainder as a tuple.

Method 1: Conditional Statements


def make_change_conditional(self):
        """Greedy Coin Match with Conditional Statements

        Return both number of coins and remainder

        >>> c = Change(.71)
        >>> c.make_change_conditional()
        (2, 21, 2, 1, 0, 0, 1)
        >>>

        """

        quarter, qrem = divmod(self.convert,25)

        #initialize values
        dime, drem = 0,0
        nickel, nrem = 0,0
        penny = 0

        #if remainder is dime or higher
        if qrem >= 10:
            dime, drem = divmod(qrem,10)
            if drem >= 5:
                nickel, nrem = divmod(drem,5)
                if nrem >= 1:
                    penny = nrem
            elif drem < 5:
                    penny = drem

        #if remainder is nickel or higher
        elif qrem >= 5:
            nickel, nrem = divmod(qrem,5)
            if nrem >= 1:
                penny = nrem

        #if remainder is penny or higher
        elif qrem > 0:
            penny = qrem

        return quarter, qrem, dime, drem, nickel, nrem, penny

Method 2: While Loop


def while_loop_change(self):
        """Greedy Coin Match with While Loop

        >>> c = Change(.71)
        >>> c.while_loop_change()
        2 quarters
        2 dimes
        1 pennies

        """
        coin = self.coins.pop()
        num, rem  = divmod(self.convert, coin)
        self.printer(num,coin)
        while rem > 0:
            coin = self.coins.pop()
            num, rem = divmod(rem, coin)
            self.printer(num,coin)


Method 3: Recursion


def recursive_change(self, rem):
        """Greedy Coin Match with Recursion
        >>> c = Change(.71)
        >>> c.recursive_change(c.convert)
        2 quarters
        2 dimes
        1 pennies
        [1, 0, 2, 2]

        """
        if len(self.coins) == 0:
            return []
        coin = self.coins.pop()
        num, new_rem = divmod(rem, coin)
        self.printer(num,coin)
        return self.recursive_change(new_rem) + [num]

Feel free to point out corrections, or alternate solutions

Summary of Problem

Given an arbitrary amount of change, say 1.34, determine the correct amount of change to give using a greedy match, which uses the highest coins first. With US coins, 25,10, 5,1, greedy match will lead to the lowest coins possible.

References:
Google App Engine Version
Greedy Algorithm
Coin Changing Algorithm
Greedy Coins

AddThis Social Bookmark Button

So, Hyper-V is ready to be released with Windows 2008. More or less. Hyper-V is the “next generation” of virtualization for Microsoft and the Windows platform (at least as far as Microsoft sees it), and includes some enhancements of Virtual Server.

Technically, it doesn’t appear that Hyper-V is going to really frighten the current VM players like VMware and others, but there is an interesting trend that Hyper-V’s inclusion in Windows 2008 highlights: virtualization out-of-the-box.

As of Windows 2008, virtualization will be a “click and run” operation. Linux distributions are doing this as well. For example, Red Hat comes pre-packaged with Xen now and some management tools for Xen VMs.

Jeez, with the move toward application virtualization, server virtualization, and whatever virtualization, the whole argument of Windows vs. Linux or Windows vs. Anything just seems to be slowly fading away. At what point does Windows or Linux as the OS stop being a factor?

Todd Ogasawara

AddThis Social Bookmark Button

The US government’s GSA (General Services Administration) manages many billions of dollars of purchases and operations for government agencies. So, it was interesting to see this quote from the following article in GCN (Government Computer News)…

GSA makes the case for open source

While Coleman [the GSA’s CIO] saw many advantages to using open source software, she mentioned that, somewhat counter-intuitively, saving money may not be one of them.

“If you are looking at open source because of perceived cost benefits, you should know there is no guarantee it will be cheaper,” she said. “Open source does not mean free.”

It turns out that the GSA Open Source toolbox inclues JBoss, Bugzilla, JUnit, JMeter, and Eclipse. And, more importantly, the initial acquisition cost (free) is not necessarily the driving factor.

The article’s author makes the classic mistake of thinking Open Source software cannot be commercial software: Not having sunk costs in a commercial software program also means the agency can move to a new program more quickly should its needs change. So, we still have to educate mainstream journalists a bit more about Open Source. However, the main point is that more and more people understand that the value of Open Source software is not tied to the often (but not always) free procurement cost.

AddThis Social Bookmark Button

Okay, I’m confused. I just read a blog about using Microsoft Access as the database back-end for a website. I think. Well, heck, I’m not sure. Is she saying you should convert to a true client/server database model or you should use Access itself as the database back-end?

To be honest, I think there is little value in Microsoft Access outside of its insanely easy development front-end for programmers. That’s why Access is popular: It is very easy to create a database application from scratch using Access. Even with web programming languages such as PHP you have a steeper learning curve, especially since you need to setup Apache, PHP, and MySQL (well, those are usually running on a Linux server these days anyway, although that of course brings up an obvious security issue).

Matthew Russell

AddThis Social Bookmark Button

This column provides a lightweight demo of Dojo’s increasingly popular data grid and demonstrates it serving up a million records. The intent of this little demo is to demonstrate the basic pattern for putting the grid to work and save you from spending so much time trying to grok the source code.

Todd Ogasawara

AddThis Social Bookmark Button

It used to be a lot easier to understand the closed source and open source worlds in the old days. Microsoft, Sun, Oracle, and the like were closed source and wore black hats. The GNU/LAMP people were Open Source and wore white hats. This world was simple and clean. When I started looking beyond the source code and newsgroups in the early 2000s, I was surprised to see firms like Zope with a combination of Open and Closed Source products. I was a little confused by MySQL’s dual license. And, Red Hat threw me for a loop when they stopped providing free downloads after Red Hat 9 (this is before the Fedora Project emerged). JBoss’ professional Open Source idea seemed like a good idea me but seemed to be drawing some barbs now and then.

The Open Source community-industry has been undergoing a lot of growing pains over the past few years as it transforms from the community-contributer model to a full business model with employees, health plans, boards of directors and the like. Perhaps the Open Source business looked at Microsoft and figure their closed source model has made them a bit of money and that closed source is not that evil if it pays the biils. Personally, I was hoping that Open Source services (consulting, packaging, etc.) would be enough to keep FOSS firms afloat. But, at the moment, it looks like some closed sourcing for value added features is going to be the norm. The EnterpriseDB Postgres Plus effort looks similar to what MySQL is doing but seems to be mostly flying under the radar for the moment. And, as I mentioned, Zope has had this business model for years.

Having spent the 1990s working for a telephone company (good ol’ GTE) I watched a similar transformation in the Computer Telephony and VoIP industry. The Computer Telephony Expo in the early 1990s consisted of a bunch of engineers and startups showing their wares to potential customers (often phone companies like the one I worked for). There weren’t many marketing-critters in the midst. And, the only person wearing a suit and tie was usually Harry Newton (who coined the term Computer Telephony and organized the conference). By the end of the decade, the complexion of the conference had changed, I think the conference grew from 2,000 to something like 30,000 in the years that I attended. And, there were a lot more marketing critters and people in suits. In fact, I recall noting with some distaste that I had decided to wear a suit for the day I was a panel moderator there (it seemed like the right thing to do at the time). The Computer Telephony industry had grown during the decade to the point where people actually had to figure out how to make money and not just show cool IP comm gear. And, then, of course, there were the bigger companies buying the small cool ones. Intel, for example, bought Visual Voice (a very cool software firm) and Dialogic (a very cool hardware firm). Microsoft, Intel, and GTE co-sponsored the TAPI Bakeoff (an Interoperability event for vendors) for several years. As one of the event coordinators, I had a ringside seat to watch the development going on. Most of that technology is now invisible and is simply part of the infrastructure now. It is not something I actively think about unless something goes wrong (very rarely if you think about it).

I think we are seeing something very similar happening to Open Source. Sun’s purchase of MySQL has set off a lot of heated discussion as Sun and MySQL tries to find a business model that can simultaneously keep the Open Source community happy while building a revenue stream. They may have found a model, but it is not exactly making everyone happy quite yet. Personally, I am watching this all with some anxiety as I depend on MySQL for a lot of projects. In the meantime, we are seeing blog titles like:

Just announced: MySQL to launch new features only in MySQL Enterprise: So, in effect, they will be giving their paying customers real, true, untested code. How is this supposed to work? In addition, this means that they are changing their internal development model, splitting the relationship between the two trees, and overall going even further down the path of getting the RHEL/Fedora model backwards.

The whole story about online backup: The business reasoning behind the decision to reserve the native modules for paying customers is that only the most demanding users have an urgent need of this feature, and I can see the value of this assessment.

Thoughts on the Fuss: I doubt that this little scheme of charging for these features ever actually takes place. It is pretty much diametrically opposed to the what Sun says they want for MySQL. I think that by the time server version 6.0 is GA that every feature will be fully available for anyone. And that is why I have not taken the time to sharpen a pitchfork and join the mob. Because in the end I don’t think this will ever happen.

The Ingres Vultures Descend: In a despicable business practice, I received a message from a PR Firm representing Ingres. Now, I even wrote about the controversy that seems to have swept the open source community; but even my writings were not completely factually correct — I wrote that even if online backups were closed it was not necessarily the worst thing in the world. The actual parts of the online backup that are not open source and free are compression and encryption — that is all. (FYI: I received a similar email from Ingres but didn’t think it was despicable - just a PR firm doing its job).

The Closed-Open Source industries are in a state of extreme flux. And, it will probably take another decade to sort this all out along with web/mesh services, SaaS (Software as a Service), and service subscriptions. If the various blog reactions to various changes are any indication, it will probably be a bumpy ride. But, let’s hope it all works out for the best for all parties involved in the end.

Is closed sourcing inevitable? I sure hope not. But, we’ll see it play out one way or another over the next couple of years.

chromatic

AddThis Social Bookmark Button

I promised to explore the theme of Free-loading Adoption of F/OSS in more detail. Alan Rimm-Kaufman’s Why Small Businesses Should Support Open Source is a great place to start:

It doesn’t matter if your donation is large or small. It doesn’t matter if you give money or code.

What does matter is this: if you’re benefiting from the Open Source Movement, try to give something back.

It makes good business sense. And it is the right thing to do.

Before I joined O’Reilly, I worked in a small consulting company. As I joined, the company was migrating away from proprietary platforms to open platforms. We saved a tremendous amount of money and gave our customers far better service. Being able to use, modify, and redistribute free software let us finish jobs we’d never have been able to do otherwise.

In return, we submitted bug reports. We occasionally submitted patches, both on and off the clock. We knew that we owed a great deal of our business to a healthy commons of free and open source software… and now I know that keeping that commons free, open, and healthy was vital to the business.

The owner of the company allowed the Portland Perl Mongers to meet in our offices once a month. He rented chairs for the meeting. Maybe it’s not a big thing, but it was a way to pay back part of one of the communities which had produced so much great software integral to our business.

You don’t have to hire a core developer. You don’t have to release your own (non-derivative) source code. You don’t have to donate money to a foundation, or host a conference or a meeting.

You don’t have to contribute back to the communities which produce software you rely on… but if you rely on it now, aren’t you interested in its healthy future as well?

Nitesh Dhanjani

AddThis Social Bookmark Button

insecuremaginterview.jpg

Issue 16 of [IN]Secure Magazine is available. Mirko Zorz interviewed me in this edition (Page 41). If you decide to read it, I’d be delighted to hear your thoughts and feedback. The magazine edition of the interview is much better looking and highly recommended (as are the other articles), but for the sake of convenience, the interview session is below.

Andy Oram

AddThis Social Bookmark Button

Four days ago, the FCC held a widely publicized hearing at Stanford about bandwidth regulation on the Internet. In my summary analysis and background explanation of an earlier hearing at Harvard, I referred to the oft-criticized Brett Glass, whose experience running a rural wireless ISP radiates a different perspective from all other commentators. Glass got to speak at the Standford hearing, and his brief remarks offer a readable explanation of a key technical issue–the effects of file-sharing on bandwidth–as well as an appreciation for the worries on all sides.

Small ISPs such as Glass’s (and yes, they do exist, even today) have none of the incentives that network neutrality advocates attribute to major carriers to discriminate against voice, video, or other content. In fact according to Glass, new applications such as VoIP are great because they provide new business. “This week we hooked up a VoIP company which was dissatisfied with the quality of service it was getting from the incumbent in our area. We deployed a low-latency, high-bandwidth radio link just for them, at a cost (parts and labor) of about $1,000. We can justify the cost because we will be paid for the service. It’s cost-shifting without compensation that’s the big issue for all ISPs–large and small.”

Glass has a stake at least as precarious in the current Internet economy as the media companies using peer-to-peer transmission as part of their business plans. Laws or regulations that fail to take economics into account, in his view, could put small ISPs out of business. He defends his position fiercely, and gets plenty of flak in return. I consider Glass a friend and have even planned to tap him as an author on some projects. So I want his view heard as a balance to the “just throw more bandwidth at it” proposals.

That said, I wonder whether the problem is really peer-to-peer protocols, which Glass focuses on, or high-volume media such as video. What architecture could handle the video experiences Internet users want. Compression can achieve impressive quality at reasonable bandwidth, but the sheer volume of everybody sharing the network stresses current transmission systems.

AddThis Social Bookmark Button

I was recently doing a somewhat random Google and found a note from someone about whether there is a “market for LAMP consulting”. Ha. Perhaps. The whole Linux thing may just be ready to get off the ground. ;)

Seriously though, I do wonder about this comment: “may be some market for MySQL work - optimizing adn [sic] so on”. Hmm. I know for a fact that there IS a market for MS-SQL specific consulting, e.g., performance tuning, security, installation, etc. However, I rarely see a need specifically for MySQL consulting. Generally, “MySQL” is thrown in with the overall need for a PHP developer.

Not that this should be the case.

A database administrator is a very important role in any organization, but it seems like MySQL administration is often bundled in with the software development. That’s not so typical with MS-SQL, Oracle, and DB2 work though.

To me, this ties back into the original roots of MySQL and its popularity: LAMP. LAMP breaks out into “Linux Apache MySQL PHP”, and is the development platform of choice for many people and organizations.

But is this limiting the growth of the “MySQL profession” in some ways?

chromatic

AddThis Social Bookmark Button

Matt Asay kicked up a small controversy in MySQL adoption: Deep and wide when he wrote:

Now the only thing missing in that conversation is the enterprise stepping up to pay for some or all of its free-loading adoption of MySQL. This is what is prompting MySQL to consider new licensing models. It would be very easily resolved by enterprises for owning up to and paying for the value they derive from open source, very little of which comes down to a lower price tag.

I’d like to extend that to projects beyond MySQL and to a definition of “contribution” far beyond opening a checkbook. Here’s my thesis: if your organization derives some benefit from a community-driven software project, you have a moral obligation to contribute to the health of that community in some way.

I’ll write more about this tomorrow.

AddThis Social Bookmark Button

Recently, we were working to bring up a VMware installation for a client of Puryear IT and we hit a snag. To provide some background first though: We had decided to go with a GigE NAS based environment rather than a more traditional SAN. We had seen Dell’s NF500 in use already and were pleased with it overall, so we went with the NF500 with RAID-10 on a GigE switch and, of course, GigE on the Dell servers running VMware.

Great, right?

Alas, not so much. During our benchmarking, we found that the NFS performance on the NF500 across the GigE was pretty bad. This goes for every variation, including NFS over UDP and TCP, v2 and v3, rsize and wsize of everything from 4kb to 32kb, and so forth. Yes, we tried every performance tweak in the book, but just could not get the Linux servers to get good NFS performance against the NF500. Well, the performance is good enough if you were using the NAS as only a file server, but not if you want to run VMs off it.

That said, there is no real reason why you can’t or shouldn’t run VMs off a GigE network and a really fast NAS. It’s more than sufficient. Unfortunately, we didn’t have the hours to troubleshoot whether there was something going on with the Linux NFS implementation or the NF500, but we still had to get the problem solved.

Fortunately, we did find a solution that not only worked, but worked well: CIFS.

Everybody knows and loves CIFS. (Well, everybody at least knows CIFS. Oh, and hello Samba.) It’s just Windows Networking. Generally, we use NFS within Linux and UNIX networks where we can tighten down security enough on the network to make it reasonably safe to use (NFS is not, and has never been, a secure protocol.) But I am quite familiar with CIFS and was curious if using it would clear the problem up. And yes it did.

I found that mounting the VM shares off the NAS on the local Linux VMware servers let us transfer at near-wire speed. We were then able to run our VMs off the NAS; we have yet to see any performance issue or bug, and the whole thing just works like a champ.

Very interesting.

Todd Ogasawara

AddThis Social Bookmark Button

Microsoft’s Chief Software Architect Ray Ozzie (Bill Gates was their first CSA) delivered one of two keynotes at the Microsoft MVP Summit I attended last week. I was debating whether or not to get in line at one of the microphones during the Q&A session to ask him about Microsoft and Open Source. But, someone else decided much faster and was able to make a good statement and ask a good question. The entire transcript of Ozzie’s presentation and Q&A session can be found at…

Ray Ozzie: Microsoft 2008 Most Valuable Professional Global Summit

Here’s the section from that transcript regarding Open Source…

QUESTION: I have a question about the software as a service space that’s currently existing. If we look out at the Web now with all the providers and vendors, we see Open Source playing a very strong role with a large number of vendors, and it’s very different from the Microsoft platform what role Open Source plays as opposed to the other platforms. In fact, Java is Open Source now.

So, my question is, with the Microsoft vision, where do you see Open Source playing a part on the Microsoft platform, and what is your position towards it?

RAY OZZIE: Well, my position toward Open Source generally is that it’s a part of the environment. It’s very useful for developers to be able to get the source code to certain things, to modify them.

Microsoft fundamentally as a whole has changed dramatically as a result of Open Source in terms of as people have been using it more and more, the nature of interoperability between our systems and other systems has increased. And I can tell you from an inside perspective in terms of dealing with individuals inside, when you build a new product, immediately you start thinking of how shall this product expose its APIs, what type of developer is it serving, should there be SOAP or Web Services APIs, because it will be being used in system integration context within an enterprise, are the people who are going to be integrating with it going to be more of the Web community and should they exposed through REST-based technologies, should the results come back in XML or JSON or some other formats based on the type of consumer of the thing.

Open Source is a reality. We have a software business that is based on proprietary software. We tactically or strategically, depending on how you look at it, will take certain aspects of what we do, and we’ll Open Source them where we believe there is a real benefit to the community and to the nature of the growth of that technology in Open Sourcing it. The .NET Framework is a good example of it, and we’re working with Novell to make model work so that people don’t have to make this choice if they do want to do something with a Linux or UNIX back-end, and so that we can share tools and technologies.

But the bottom line is we believe very much in the quality of Microsoft products. We are an IP-based business. But we live in a world together with Open Source, and we have to make it possible for you to build solutions and for customers to build solutions that incorporate aspects of both.

Doug Hellmann

AddThis Social Bookmark Button

Compare files and directories easily with the filecmp module.
chromatic

AddThis Social Bookmark Button

Parrot hacker Jerry Gay released Parrot 0.6.1 on Tuesday. Parrot is a virtual machine designed to run dynamic languages efficiently, to allow them to interoperate in the same process, and to provide great compiler tools for building and modifying these languages.

This release is interesting for a couple of reasons. First, the Lua and Perl 6 implementations continue to receive lots of attention. In particular, Rakudo (Perl 6 on Parrot) gets new features every week. This release includes basic IO, object delegation, basic multi-dispatch, and more. Second, we found some optimizations that speed up Rakudo (and almost every part of Parrot’s OO) by around 40%. That’s more features, faster, with less code and fewer bugs. What more could you want? (Oh yes, and parallel building works, so it even builds faster.)

The next release will be 20 May. I’m not sure what to expect yet, but we’ll probably have localization for error messages, hopefully some compiler improvements, and possibly even more speed improvements.

Todd Ogasawara

AddThis Social Bookmark Button

Some of the articles and blogs about Sun/MySQL’s growing Open/Closed Source forking has been pretty dramatic. ZDNet’s is one example…

Did Sun just my MySQL Closed Source?

MySQL was moving down this path by splitting features available in their Community and Enterprise editions long before Sun announced it was buying MySQL. So, I’m not placing the blame (if that is what it should be called) on Sun. I think it is just the reality of trying to stay in business in the Open Source world. It is tough to make money from a free product - even a great one like MySQL. If the model of selling services does not justify something like a billion dollar price tag, what then? For MySQL and Sun, the answer is to provide more value-added features for a price and closing the source.

Am I happy about this? Not hardly! But, I saw this coming and have been preparing for it. I’ve been looking at PostgreSQL since the day Sun announced buying MySQL. And, recently, it was pointed out to me that Ingres (which I used back in the 1980s) is now an Open Source product. I’m not going to suddenly stop using MySQL or recommend that people switch away from it. But, I think it is prudent to take a look at alternatives.

MySQL related blog entries at Microsoft Port 25

Todd Ogasawara

AddThis Social Bookmark Button

If you work with Microsoft adCenter to generate ads, you might find it interesting to read the PHP code samples collected in this blog entry by Walter Poupore.

Recommended Reading — php and Ad Groups

The code samples available there cover the topics listed below:

How to Check the Status of an Ad Group in PHP (V5)
How to Submit an Ad Group for Approval in PHP (V5)
How to Create Keywords in PHP (V5)
How to Create Ads in PHP (V5)
How to Create Ad Groups in PHP (V5)

For more PHP-Microsoft Windows related interop, here are the Port 25 blog items with a PHP tag.

Port 25 - PHP

Nitesh Dhanjani

AddThis Social Bookmark Button

There’s been some recent chatter and speculation on the upcoming enhancement to the PCI standard. Among the discussions, I’d like to publicize my opinion on one argument I’ve heard multiple times during the last few days. The argument goes something like this: The cost of performing security code reviews is too high, but the cost of performing black box reviews and/or implementing web application firewalls is lower. Therefore, the solution is to recommend that organizations rely on penetration assessments and/or web application firewalls.

chromatic

AddThis Social Bookmark Button

Remember Andy Lester’s rant about Can’t You Just…?. There aren’t often easy answers in any field.

I really like what Chris Cummer had to say in a comment on “All I Need is a Programmer”:

Every time you use “just” to describe a feature or a process it tells me you’ve made a gross assumption about what I’ll need to do.

(Of particular amusement is when non-contributors tell volunteers what to do in free software projects.)

Noah Gift

AddThis Social Bookmark Button

Jeremy and I are turning in the final draft of our book on “Python for Unix and Linux Systems Administration” on Monday, April 16th. But, if you are a sysadmin and have a really tricky problem you need solved shoot us an email ASAP and there is a chance we will solve it for you. Yes, this is free consulting, but you have to act very quickly!

Some examples could be:

1. Need to process 3TB’s of data everyday.
2. Need a solution to manage virtual hosting.

Tell us the specifics and we will do our best to tackle it as one of our case studies.

Andy Oram

AddThis Social Bookmark Button

A conference attendance that tops 2000 suggests that a technology involves a certain number of subtle angles. MySQL became a hit because installing it and manipulating tables were so simple–and yet when you get serious, the simple things start growing hair.

AddThis Social Bookmark Button

I was reading a quick run-through of memcached and it occurred to me how absolutely simple and SIMPLISTIC memcached is. Really, it’s absolutely.. basic. Oh, but wait, what is memcached? memcached is really nothing more than a cache service for accessing data. Its origins are as a cache service for the RDBMS used by Facebook. Anyway, memcached is nothing more than a hash table in memory that is used to cache query results. That’s it.

“So what?” you ask.

Well, memcached is actually a pretty big deal. It’s used all over now. And if you monitor places In The Know, like the High Scalability blog, you’ll notice a trend: A lot of people use it or plan on using it Real Soon Now.

memcached was written to serve one basic role: cache database request. It wasn’t written to provide a massively redundant service. Or to distribute load across memcached nodes. Or to provide a secure proxy to a database service. It just takes a query and returns whatever is in the cache. And this is done using a simple hash, meaning that at its core memcached uses a set of algorithms that you’ll find on every second year Computer Science exam in college.

What I find so fascinating is that yet again we see a very simple but hugely effective service developed in the UNIX world. Why aren’t these things happening for Windows? With Microsoft’s forays into HPC, you would hope that people both in research and business would start fleshing out these genius little nuggets on the Windows platform, but I haven’t seen this happen yet. So, what’s the hold up?

Todd Ogasawara

AddThis Social Bookmark Button

IronRubyMeetup.jpg
I’m attending the Microsoft MVP (Most Valuable Professional) Global Summit in Seattle this week (I’m a Windows Mobile - Mobile Devices MVP). IronRuby was not on the Open Spaces meeting agenda this afternoon, so John Lam staged an impromptu meetup for people interested in talking about IronRuby. John is 4th from the right in the photo. And Jimmy Schementi (Program Manager - Dynamic Language Runtime) is 2nd from the left.

I found the nearly two hour long session very interesting even though, as I explained to John and Jimmy, I’m one of the people too lazy to build IronRuby from source (I compile nearly everything from source for Linux but nothing for Windows) and am waiting for the installable binaries.

John will talk about IronRuby on Rails at the upcoming RubyConf.

Port 25 — Blog entries tagged with Ruby

Todd Ogasawara

AddThis Social Bookmark Button

I often refer to blog entries over on the Microsoft Port 25 site. if you are interested in Open Source interoperability with Microsoft products, you definitely need to follow some of their product teams as much as you follow Open Source product information. Here’s a MSDN blog post by Tadd E. Dawson that collects and lists what looks like every Microsoft product team blog in existence.

Microsoft Product Team Blog Directory

chromatic

AddThis Social Bookmark Button

If you look at the CPAN test reports for Parrot, you’ll see that the pernicious and persistent problems relate to odd bits of not-quite-always-cross-platform math, specifically floating point numbers and not-a-numbers.

It’s reasonably easy to find and read the C89 and POSIX specifications. They’re well-published. Even if there are confusing parts and contradictions, you can look for them and find the specifications.

Now try to find current information about how various operating systems and the various compilers and major versions and minor versions and libc versions in all of those combinations interact. In short, if I want to figure out exactly what OpenBSD does in its C library in its standard configuration to return a negative floating point 0.0 (or not, as the case may be), where do I go, what do I read, who do I talk to, and — most importantly — how do I change the software I work on to deal with those platform-specific quirks such that the users of my software don’t even have to know that these quirks exist? Ditto GNU/Linux, Cygwin, FreeBSD, Mac OS X, et cetera.

I know that knowledge exists somewhere. Perl 5’s core encodes it somewhere. I suspect the same is true of Python and Emacs and Guile and Glib and kde-base or related projects. Yet the knowledge in code is only useful in two ways. First, in projects that use the code directly and only need to trust that it does the right thing. Second, if other people read the code.

There ought to be a third option: encapsulating that knowledge outside of code somewhere. Maybe this specific case is documented and I just can’t find it. The same goes for alignment concerns (64-bit Intel/AMD, PA-Risc, Sparc, ARM), pointer sizes, and other information.

Does this information exist in one or two good places, or does everyone have to track it down on his or her own? Worse, does everyone just hope these problems never come up?

Doug Hellmann

AddThis Social Bookmark Button

Handle Unix-style filename comparison with the fnmatch module.
brian d foy