Blog the web

… and anything ‘2.0′

Saturday
Jun 13,2009

For my OpenAustralia.org Hackfest project I picked up a task Matthew had in the queue for a possible OpenAustralia wordpress plguin.

The purpose of the plugin is to allow a blogger to quote speeches from members of parliament from the OpenAustralia API using their WordPress blog. The Task: A WordPress plugin.

Here is a sample of what has been done thus far:

Get a specific speech
If you know the GID (Global ID) of an Open Australia Speech you can write this in Wordpress:
<openaustralia gid="2009-06-16.43.1">
And it will return the following:

Gavin Marshall

My question is to the Minister Assisting the Prime Minister for Government Service Delivery, Senator Arbib. Can the minister inform the Senate of actions the government has taken to invest in infrastructure across Australia in order to cushion our economy from the blow of the worst global recession in 75 years? In particular, can the minister update the Senate on infrastructure investments that are being made across the country and how these projects provide an economic stimulus to our economy and support jobs? How does this compare with the levels of infrastructure investment from previous governments?

- Gavin Marshall (Australian Labor Party)
Read context

Mark Arbib

I thank Senator Marshall for that question. I know he is a big supporter of the infrastructure projects that the government is putting forward. He is also passionate about education and about Building the Education Revolution. In Victoria, I am happy to tell you, Senator Marshall, all 2,273 schools will be getting upgrades out of the Building the Education Revolution funding in infrastructure, which for the other side of the chamber was too hard.

- Mark Arbib (Australian Labor Party)
Read context

Eric Abetz

Even the ones that have been closed.

- Eric Abetz (Liberal Party)
Read context

Kim Carr

Do you support it or not?

- Kim Carr (Australian Labor Party)
Read context

John Hogg

Order! It is disorderly for both sides to be injecting across the chamber when Senator Arbib is answering the question.

- John Hogg (President)
Read context

Mark Arbib

Infrastructure is something that really was in the too-hard basket for the Liberal Party over the 12 years. We now know the fact that there was a 20 per cent fall in investment in infrastructure as a share of national income during their time in power. Looking at infrastructure, there were 20 Reserve Bank warnings about capacity constraints in the economy. Where was the former Treasurer then? Infrastructure was on the backburner.

When the global recession hit, the government acted and acted decisively, and at the forefront of what the government was doing was infrastructure—the largest school modernisation project in the country’s history. Every school across the country will be getting funding. Every school will be getting upgrades. Every primary school will be getting new buildings—new libraries and new halls. On top of that, we are rebuilding roads. Senator Bushby raised Tasmania. In terms of Tasmania, let me tell you that one of the first projects that came out of the stimulus package was the Brighton bypass. How many jobs will that support? Three hundred and seventy jobs. Three hundred and seventy jobs will be coming out of the stimulus package in Tasmania—the largest road project in Tasmania’s history. (Time expired)

- Mark Arbib (Australian Labor Party)
Read context

Gavin Marshall

Mr President, I ask a supplementary question. I thank the minister for that comprehensive answer. As the minister is aware, there will be around 35,000 individual construction projects across the country when the stimulus package gets up to full steam in about 12 months time. Could the minister please inform the Senate how these projects create work opportunities for small businesses, tradespeople and suppliers across the country? Will these projects be delivered in every community in Australia? How do these construction projects support local economies in general? And is the minister aware of any examples he could provide the Senate to illustrate how these projects support jobs and small businesses, not just directly but also indirectly?

- Gavin Marshall (Australian Labor Party)
Read context

Mark Arbib

As Senator Marshall has said: in about 12 months there will be 35,000 individual construction projects—individual building sites—across the country. The effect that is going to have on the economy in terms of the multiplier effects is endless. Can I just mention one project. Last week I went to Queanbeyan with the Parliamentary Secretary for Employment, Jason Clare. At one site, a community housing project, I spoke to the project manager and there were 95 jobs. Those 95 jobs are new jobs. How will that help stimulate the Queanbeyan economy? Firstly, those 95 workers will all go to the local service station, they will all get their petrol from that service station and that will help to protect the jobs there. They are all going to go to the local hardware stores to get their materials and their supplies, supporting jobs there. This will stimulate the economy. And it goes through to the department stores— (Time expired)

- Mark Arbib (Australian Labor Party)
Read context

Gavin Marshall

I thank the minister for his answer. Given the previous government’s neglect of Australia’s rail infrastructure and major roads, which are vital not only to the safety of Australian motorists but also to our nation’s productivity, is the minister able to provide details of any infrastructure projects that are currently under way in these two important areas?

- Gavin Marshall (Australian Labor Party)
3 comments | Read context

Mark Arbib

These projects are not on the drawing board; these projects have started now. Stimulus projects are underway and people are in jobs right now. I just want to give you a couple of examples. In May, at Singleton, the first sod was turned on the Hunter Valley to Newcastle $135 million rail track. That is 150 jobs in the Hunter region. In South Australia work has begun on the line between Maroona and the South Australian border and in Victoria the line between Albury and Seymour. That is more jobs. That is two rail projects and more than 240 jobs. More than 200 jobs are being supported by the increased demand for concrete rail sleepers. There are 200 jobs there: 50 jobs in Geelong at Austrak’s factory, 65 people at Austrak’s Wagga Wagga factory, 60 people at the Rocla Sleepers Mittagong factory and 60 people at their Grafton factory. They are real jobs. There are 200 jobs from the F5 freeway upgrade; 140 jobs at the Alstonville bypass in the north and— (Time expired)

- Mark Arbib (Australian Labor Party)
Read context

You can get the GUID of a speech by copying it out of the “link to this” link on an OpenAustralia link:

Multiple Speeches within the same blog post
We can have multiple debates within the same page, here is another:

<openaustralia gid="2009-06-02.29.38">


No OpenAustralia Speech Found

Search Speeches
You can also return results of a search. For example, lets say I did a post on the NBN. I could display related topics about the NBN by writing the following:
We can also do searches for “related topics” to a post:

<openaustralia search="nbn">

This returns the following:


  • (,)
  • (,)
  • …. We all know that the eyes not just of the nation but of the world are on Tasmania in relation to this broadband project that has been announced. It will revolutionise our day-to-day lives. The NBN will be the largest nation-building infrastructure project in Australia’s history when it is complete. It is a long-term investment in communication infrastructure that will ensure that… (Collins,Julie)
  • …where private industry just could not because of the problems of geography and the population scale. So it is a very similar dynamic and similar scale of economy that we are talking about with the NBN plan and it is very welcome to see that investment move forward. Similarly, health has been such a critical issue in the bush. It is great to see the increasing investment, to cover the 12… (Kelly,Mike)
  • …end of 2008. Following a flawed $20 million taxpayer funded tender process, we now have a $43 billion proposal; however only $4.7 billion of that is contained in the budget. The now $54.2 billion NBN proposal will not deliver to towns with under 1,000 people. This effectively excludes many families and small businesses in my regional electorate. I have nearly 14,000 small businesses in… (Marino,Nola)

  • What Next?
    Still lots to do! Here is a quick brief
    1) Allow a user to paste a URL eg http://www.openaustralia.org/debate/?id=2009-06-04.136.1 and automatically display the speech
    2) Extend the Tag to have all API parameters
    3) Allow a user to configure their API key
    4) Display comment icon if there is discussion around the speech and link off to that
    5) CSS the skin
    6) Trackbacks
    7) Setup Wordpress Plugin for anyone to download! I’ll post it soon….

    Further Info
    For more information about the OpenAustralia.org hackfest checkout the Google Open Source blog post.

    Saturday
    Apr 25,2009

    I’m currently working in a rapid application development team. We essentially build web-based solutions for business users within our organisation. The work our team does is primarily development. In saying this, we often get a lot of requirements that are for problems where similar solutions may already exist.

    There are many ways to solve a problem - but whats the most efficient and effective method?
    As tempting as it is, you could build a custom application for almost anything - but we don’t. We try and avoid re-inventing the wheel where possible. How do we do this? Well, some of the solutions to our problems exist in the form of opensource software (Eg A blog - Wordpress, or a Forum - PHPBB…). Additionally, there are cases where other types of problems can be solved by using an existing ‘wokflow’ type of tool. In some of these instances, we have been using Jira (by Atlassian).

    Atlassian Jira
    Atlassian JiraJira is a bug and issue tracker, primarily intended for software development. We use Jira internally to track all engagements within our team, as well as track bugs and issues for the web apps we develop. Jira is a very customizable product. It has a built in field builder that essentially lets you choose what fields you want to capture for your project. You can configure Jira’s custom fields at a system-wide, project specific and/or issue type level. Jira’s reporting component (or ‘filters’) make it easy to extract the information you want out of the system in several formats. Finally, Jira’s workflow features make it easy to define screens based on business processes you might have.

    Jira use cases
    So how does Jira help us build our solutions? Well, we found if some of the problems our customers faced could be easily described into one of the use-cases listed below:

  • User enters data in a custom form, a custom workflow is kicked off
  • Users can ‘assign’ the item (issue/item/task) to other users
  • Users can watch for updates / comment on their issue/item/task that has been raised
  • Reporting - being able to view this data in a wide range of formats (eg Excel, CSV, XML/RSS)
  • The following post will look at some alternatives uses for Jira other than for software development. These use cases can be usually fulfilled in Jira.

    1. Project Management
    We had several requests for teams across the organisation that want to be able to track their larger projects as well as simple things - such as their internal initiatives. Some creative uses for Jira in a project-management context could be:

  • An “Issue” being a project, with all sub-tasks within the issue being milestones or tasks within the project. This would mean you can have one Jira Project (E.g For a team) and then track all the team’s projects by raising issues within that project.
  • A Jira “Component” being a project, allowing you to assign issues that relate to multiple projects.
  • Jira “versions” being used as milestones for a project deliverable
  • Manage Risks & Issues for a project by creating standard sub-tasks within each Issue raised. You could have a standard sub-task for a risk and another for an issue. This would allow you to track for each piece of work within the project - what are the risks and issues
  • Use Jira’s capability for “linking” issues to show dependent tasks and reporting on them in a nice way.
  • Use it with it’s out-of-the-box setup - Having a Jira project for every project you have, and then creating issues within each project to track tasks milestones
  • 2. Engagement Forms
    One of the challenges a large organisation faces is that each team can go going off and create their own processes and tools for various things. A classic example of this is a team’s engagement form. Each team has their own interests - and usually end up forking off another process for engagement. Engagement forms could be anything from an email to a dropbox, to a word or excel document, to an Access database sitting on someones desktop or even a custom web application built just for engaging a team within the organisation. Jira can help solve this problem as well as consolidate these satellite solutions into one.

    In terms of how you would use Jira as an engagement form: A Jira Issue = A New Engagement, Issue Type = Engagement Type, Component = Engagement Classification or System/Product the engagement is for. You could then specify your component lead’s as your subject matter experts for that engagement type.

    Using Jira to track your engagements is great as it allows you to:

  • assign engagements to leads,
  • track time for each engagement and lets you
  • receive flexible reporting functionality through the Jira issues filter.
  • 3. Task Management (GTD)
    Jira is also a great tool to get things done! This can be applied for a team or an individual. For teams, using Jira for this means that you can easily track your KPI’s. Your engagement form can easily become your team’s work tracing tool. So from engagement to tracking the actual work - you could use Jira as an end-to-end productivity tool within your team.
    Now, not all work your team will do would be project related - sometimes there are random jobs that need to be done. Jira can be great for tracking this. Personally, I use Jira to track all things I am working on and as a GTD tool.

    4. Ticketing System
    The last, and probably most obvious use alternative of Jira, is for some form of ticketing system. Atlassian eat their own dogfood with their customer support site - a classic example of Jira being used as a ticketing system.

    If you are considering using Jira for this purpose, you will want to look at the enterprise version of Jira. The enterprise version brings you ‘Issue Level Security’. This essentially allows you to set up different security levels for each customer. This is similar to having different projects, but allows the support team to manage the issues in just one project.

    To make reporting easier, you could setup a component for each one of the support ‘queues’. Or you could abstract it further, and have a project for each queue within your ticketing system.

    Conclusion
    I’m not suggesting that every form-based application is built in Jira. There are however good reasons where you might want to use Jira - these requirements generally fall under one of the use-cases defined above. Jiras flexible nature means that you can customise quite a bit. What happens if it isn’t right for you? Don’t worry - Jira has a powerful API, which means you can easily import or mashup your data with another system if need be - you haven’t looked yourself in!

    Further reading: Jira Use Cases (Atlassian)

    Wednesday
    Apr 22,2009

    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.”

    Tuesday
    Mar 24,2009

    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.

    Tuesday
    Feb 17,2009

    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.

    Saturday
    Feb 7,2009

    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.

    Friday
    Jan 30,2009

    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 »

    Monday
    Dec 1,2008

    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.

    Thursday
    Nov 13,2008

    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.

    Friday
    Oct 31,2008

    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 »

    Twitter Updates



      Meta