Personal Blog


Five insightfull thoughts on the Oracle-Sun Acquisition

Big news this week regarding the Oracle-Sun Acquisition. Its been interesting to see the wide range of opinions that have formed as part of this acquisition. Here are five thoughts from technology leaders and journalists that all have a lot to do with Sun, Oracle, MySQL or Java:

1. Matt Mullenweg, Founder of WordPress:
Blog post: Oracle and Opensource

“Today our servers are running various versions of MySQL, tomorrow they’ll be running the same thing, and if need be ten years from now they can run the exact some software. Because of the GPL every WordPress user in the world is protected — we’re not beholden to any one company, only to what works best for us. Today that’s MySQL, tomorrow that’s MySQL, a year from now we’ll see.”

2. Jeremy Zawodny, Ex-Yahoo MySQL Guru, Current employee of Craigslist:
Blog post: Oracle Buying Sun: Gets MySQL

“One one of the biggest threats to Oracle’s core database business (at the low end, at least) for a while now has been MySQL. And now they’re poised to own MySQL after Sun bought it not long ago.”
Also Read: The New MySQL Landscape

3. Erick Schonfeld, TechCruch:
Blog post: Oracle Wants To Be The Apple Of The Enterprise, But It Just Became IBM

“Like Apple, Oracle wants to take away complexity for its customers and bundle the entire IT stack neatly together so that it works without hassles and is optimized for Oracle’s software. With this deal, Ellison has come full circle from his early-1990s mantra of “best-of-breed” systems, which he abandoned long ago. Rather than look like Apple with its dedication to making the perfect product, Oracle just became IBM.”

4. Rod Johnson, Founder Spring Source:
Blog post: Oracle Adds New Exhibit to Java Technology Museum

“Oracle’s business strategy may be smart—acquiring distressed vendors and milking their revenue stream while cutting costs is certainly helping them post good numbers. But it’s not a strategy about innovation….Thus far, Oracle has neither enjoyed nor seemed to seek open source success, even as open source becomes more and more important. (Unbreakable Linux was quickly recognized by the market as a clumsy attempt to capitalize on the open source efforts of others.) Serious commitment to MySQL could change this. However, it also potentially competes with Oracle’s flagship database product. The same issue applies to GlassFish and WebLogic.”

5. Michael Widenius, Author of the original version of MySQL, founding member of the MySQL AB company:
Blog post: To be (free) or not to be (free)

“What could be Oracle’s plan with MySQL? Three different plans come to mind:

  • They are going to kill MySQL (either directly or by not developing/supporting it fully)
  • MySQL will get sold of to another entity, either because Oracle doesn’t want it or becasue of anti-trust laws.
  • They will embrace MySQL and Open Source and put their technical expertise on it to ensure that MySQL continues to be the most popular advanced Open Source database.
  • I am putting my hopes to the third option, but for succeeding in that Oracle has to also learn a lot about open source development and working with the community.”

    Crontab issues with Nano on Ubuntu

    Spent a few minutes figuring this one out. I was trying to setup a new cron job. My default editor was nano (yes, that’s right – not VI!). Every time I tried to save my crontab, I kept getting this error:

    /tmp/crontab.nQGgD2/crontab"\:1: bad minute
    errors in crontab file, can't install.

    After a bit of investigation, it turns out because my cron command was quite long it spanned across two lines. Nano wraps these long lines by default, and this looks like it causes problems with the cron tab by inserting some funny new-line wrapper chracter.

    To fix this issue, I found out you can just turn of the line wrapping option for Nano. You can do this by editing your nanorc:

    sudo nano /etc/nanorc

    And then remove the comment from the following line, so it looks like this:

    set nowrap

    Go back and edit the crontab, and it should work fine now.

    Using PHP SimpleXML to get XML Namespace Elements

    PHP has a great SimpleXML library that converts XML to an object that can be processed with normal property selectors and array iterators. I’ve been using this quite a bit lately to process some XML documents.

    The library documentation isn’t that great when it comes to processing Namespace Elements within your XML document. An example of such use case is when you are parsing an RSS feed that has XML Namespace elements.

    Consider the following example:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
    ....
      <item>
        <title>My Title</title>
        <description>My Item</description>
        <dc:publisher>ABC</dc:publisher>
        <dc:creator>DEF</dc:creator>
        <dc:date>2009-02-12T16:53:25Z</dc:date>
      </item>
      ...
    </channel>
    </rss>

    For me to access things like the Title and Description elements, its as simple as:

    1
    2
    3
    4
    5
    6
    
    $feed = file_get_contents("http://linkto.my.feed");
    $xml = new SimpleXmlElement($feed);
    foreach ($xml->channel->item as $entry){
      echo $entry->title;
      echo $entry->description;
    }

    But what if I want to access my namespace elements such as dc:publisher or dc:creator? You would think it ‘could’ be as simple as this:

    1
    2
    3
    4
    5
    6
    7
    
    //This doesn't work
    ...
    foreach ($xml->channel->item as $entry){
      echo $entry->publisher;
      echo $entry->creator;
      ...
    }

    The code above doesn’t work because the publisher and creator elements sit inside different namespaces. So how do we do this? If you recall, the second line of our feed had this:

    1
    
    .... xmlns:dc="http://purl.org/dc/elements/1.1/">

    So we know from above that anything in the dc namespace refers this URL: http://purl.org/dc/elements/1.1. Now that we know this, we can easily do this:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    $feed = file_get_contents("http://linkto.my.feed");
    $xml = new SimpleXmlElement($feed);
    foreach ($xml->channel->item as $entry){
      echo $entry->title;
      echo $entry->description;
      //Use that namespace
      $dc = $entry->children(‘http://purl.org/dc/elements/1.1/’);
      echo $dc->publisher;
      echo $dc->creator;
    }

    That would work. Now a cleaner way is to read the namespace URI form the document itself using the getNamespaces method:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    ...
    foreach ($xml->channel->item as $entry){
      ...
      //Use that namespace
      $namespaces = $entry->getNameSpaces(true);
      //Now we don't have the URL hard-coded
      $dc = $entry->children($namespaces['dc']); 
      echo $dc->publisher;
      echo $dc->creator;
    }

    That’s it! I found this useful when getting an RSS feed using SimpleXML and wanting to parse the XML Namespace elements.

    Blog The Web: Most popular posts of 2008

    I’ve been going through Google Analytics to checkout what people are viewing on this blog. It’s been interesting to see what the most viewed posts are, and where they are coming from. Here are the top five:

    1. Why Mashups = (REST + ‘Traditional SOA’) * Web 2.0 (Over 9,000 views)
    A post I wrote about an overview of Mashups – what they are, what sources exist, how they work and what I think will be the future of Mashups.

    2. Get Gmail Mobile 2.0 to work on a Windows HTC Mobile (Over 4,000 views)
    How to get Gmail Mobile working on a Windows Mobile / HTC handset.

    3. Top 17 Essential Web Developer Firefox Extensions (Over 2,000 views)
    Must-have Firefox Extensions for web developers.

    4. How to speed up Windows Media Player in Vista (Over 2,000 views)
    Must be a lot of people facing the same problem I did when I got Vista! Most of these visits coming from Google searches.

    5. Seven wiki adoption techniques for the enterprise (Over 2,000 views)
    Last year I did quite a bit of work on our Corporate Wiki (Confluence), I posted what we observed, things that worked and didn’t work for Wiki adoption within the enterprise.

    Why ‘Browse’ is dead and ‘Search’ is king

    Search and Browse

    I like clean desktops
    So the other day I let my wife use my computer… I know, some of you are already cringing at that thought. Within 10 seconds, she looked at me with defeated frustrated look on her face, ‘Bah!’, She – “How do you find what you want on your computer?!”.”Easy”.. I said, “Search!”.

    See, my desktop is generally empty – it’s kept to around 5 icons and a few documents that I’m currently working on (left there temporary). In contrast, my Wife’s idea of organised is having all 50+ icons on her desktop sorted in an order which she remembers, for example so she roughly knows the program she wants sits in the bottom left corner. Which is fine – if it works for her…
    Read the rest of this entry »

    Live blogging from the Open Source Developers Conference in Sydney

    I’m looking forward to the Open Source Developers Conference (OSDC) kicking off Sydney tomorrow.

    I created a FriendFeed room for OSDC Sydney, in which Ill be posting live micro-blogs into it. Ive also added a Twitter stream for anything tagged #osdc, a feed for its Google Group and a few other related feeds.

    Kevin Rudd joins the Social Media revolution

    I posted a while ago about my thoughts on the growth of Australian Politics and their use of social media. Who would have thought that today Kevin Rudd would be following me on Twitter:

    Kevin already has a Facbook group and Profile, but good to see him on Twitter now. Be sure to say hello to @KevinRuddPM on Twitter.

    Why you should build your next web app with OpenID

    What is it?
    OpenID is a service that lets you share a single identity across many other websites. It allows you to use a single digital identity as a single sign-on for your web application. In summary – it helps reduce the amount of usernames and passwords you have to remember! OpenID is a decentralized, free and open standard that lets users control the amount of personal information they provide.

    The beauty about OpenID is that not only does it reduce the amount of logins one has to remember, but it also allows the end-user to choose the OpenID provider that best meets their needs or the one they trust the most…
    Read the rest of this entry »

    Get Gmail Mobile 2.0 to work on a Windows HTC Mobile

    So, I’ve been using the Gmail mobile client on my HTC mobile for a while now – running Windows Mobile. Gmail mobile is a native Java application that is not intended to directly run on a Windows OS – without some sort of MIDlet manager. Gmail Mobile is a great mobile client for Gmail giving you heaps of performance benifits, as well as caching some of your emails as well so you can access them offline.

    I noticed there are quite a few posts around on the web on people having difficulty in setting Gmail Mobile on a Windows Mobile device. In particular with HTC. I found the default Winodws Mobile MIDlet Manager doesnt work with Gmail Mobile on a Windows Mobile Operating System.

    So here is what I did:

  • Download and install the the IBM MIDP Emulator (v2.0) onto your Windows Mobile divice
  • Once downloaded, open it up and go to “Install” so you can specify a MIDlet you would like to install form a URL. Now enter in the URL of the latest version of the Gmail Mobile Jar. At the time of writing the latest is 2.0.6, and can be downloaded at http://gmail.com/app/v2.0.6/L1/gmail-g.jar. It appears the guys at Gmail are following a convention, so you can pretty much guess the URL to get older or newer versions as they come out
  • Now follow the instructions for install – and thats it!
  • This worked perfectly for me on a HTC, Windows Mobile device. Hope this helps.

    Google announces integration between AdSense and Analytics

    Great news for webmasters who are using Google Analytics for their webstats and Google AdSence for advertising on their sites. Today Google have announced that they have commenced a staged roll-out of integration between Google Analytics and Google AdSense. Google describes the change like this:

    By integrating your AdSense account with a new or existing Analytics account, you’ll have access to in-depth reports about user activity on your site. In addition to the wealth of metrics already available in Analytics such as unique visitors and visitor language, you’ll now have access to granular reports that break down AdSense performance both by page and by referring site. Armed with this new data about user behavior, you’ll be able to make more informed decisions on how to improve the user experience on your site and optimize your AdSense units to increase your revenue potential.

    You can watch a video overview of the features on YouTube:

    More Integration?
    This is great news for users who are already using both Google products. Taking it a step further, you would imagine Google will then be looking at integration for other products….
    Read the rest of this entry »