Archive for the ‘OSSSoftware’ Category

Workbench on Linux

Saturday, September 20th, 2008

I had the pleasure of sitting right across the MySQL GUI Tools Team, and decided to try my hand at Workbench (Workbench for Linux, that is). Congratulations to the entire team for the great work! I am excited.

First up, the things you need on Ubuntu 8.04 (I created a fresh install, and installed all the updates), if you’re downloading the binary:

  • liblua5.1-0
  • libglitz1
  • libzip1
  • libmysqlclient15off
  • mysql-common
  • libglitz-glx1


Workbench on Ubuntu 8.04
Workbench on Linux

It works. It starts up. Its exciting. Of course, when I try to edit a table name or even create a table, it fails by segmentation fault. Segfaults are annoying… so the best way to debug it, is of course to run catchsegv. After running catchsegv ./mysql-workbench 2>&1 >crashlog, I sent it over to Alfredo for him to debug.

Of course, as luck would have it, the build ships stripped binaries, so the segfaults can’t be debugged. Grr. Nevermind, I decided its time to build it (warm thanks to the Workbench team for staying around till like 7.30pm at the meeting room). As a consequence, Alfredo managed to also update the Linux Build Instructions page as we had learned some things along the way.

I built glitz, pixman and cairo from freedekstop.org (when building cairo, remember to do it as such: ./configure –enable-glitz), but from what I gather, this is now available via Ubuntu 8.04 and is sufficient. So the build dependencies are all in Ubuntu, which is useful (in terms of building a shippable DEB). The only thing that isn’t available in a packaged form is Google’s ctemplate library. I notice the instructions now don’t mention installing a few more packages I installed on Ubuntu (I’m not even sure now if they’re a hard dependency or not, I’ll check later). But if something fails, install libproc-dev libXtst-dev libdnet libdnet-dev.

Like magic, I can now edit and create tables, draw them even. No crashes, its pretty stable for an alpha release (provided you’re using a version you build!). I expect a healthy continuos release cycle, so if you encounter a bug today, it might be fixed before you know it… Of course, this doesn’t discount you from being good friends with our bugs system at http://bugs.mysql.com/.

My short term plan to assist Workbench on Linux:

  • Get it building on Fedora
  • There’s a patch floating around for OpenSUSE, get it building there too
  • Package DEBs and RPMs
  • Try to include missing packages (like google-ctemplate) upstream

Oh, if you have issues, hop on to IRC on freenode, and join #workbench. Sure, there won’t be great answers in the next week or so (while we’re all busy at the developers meeting), but usually there’s always someone awake on that channel.

Buddy Pounce in AdiumX

Monday, September 1st, 2008

For a long time, I managed to use a feature in GAIM Pidgin that was known as the Buddy Pounce. Its described as:

When you set a pounce on someone, you can choose from a number of events, such as sign on or status change, and then you choose from a number of actions. These actions include everything from playing a sound (like an alert would do) to sending a message to the person, to executing a command. This action will occur the next time pidgin detects the event, i.e. the next time the person in your buddy list who you have pounced signs on.

I hardly use Pidgin any longer. I use its cousin, AdiumX, on the Mac (work IM? There’s skype and IRC). To do it in Adium, you have to right click on the contact, select Get Info, then set up a pounce in the Events tab.

Great, now you can hear when someone you care about signs in… With reference to ticket#921. Not very intuitive, but maybe I was seasoned to look for “Buddy Pounce”.

MAS saves millions with LAMP stack

Monday, August 11th, 2008

Malaysian Airlines has impressed me, yet again. Last week, in The Star, they reported that Sharul Isahak, a MAS employee, has helped save the airlines close to RM70 million (about USD$21 million), thanks to his use of open source software.

The software is meant to help airline maintenance, i.e. to keep track of parts and records of maintenance works. The web-based solution, is E-Promis (read the blog entry, its pretty interesting, as he takes you through the planning stages - it also seems like he’s still the only developer).

“This meant looking at open-source solutions. Instead of platforms such as Microsoft or Sun, we chose LAMP (Linux, Apache, MySQL and PHP)”

I couldn’t help but grin inside, a little. After all, Sun do own the M in LAMP ;-)

Next up, wonder if they will open source it, ala MyMeeting? After all, MAS services AirAsia and JetStar planes, I wonder who else will benefit from such software.

Some notes: Joomla! Day Malaysia 2008

Wednesday, August 6th, 2008

I would’ve written sooner about Joomla! Day Malaysia 2008, but I spent most of Sunday cringed in between the bed and the toilet. Here are a bunch of quick notes I took at the event, with some thoughts tacked on to it.

Overall impressions? It was good for a Joomla! beginner. While I would consider myself a Joomla! beginner, I’ve seen many a CMS and maybe am a tad bit jaded. There is a great amount of interest in Joomla! - about 200 people registered for a paid for event (not cheap either - RM70 for a Joomla! forum member, and RM150 for regular visitors). So there’s definitely money to be made in Joomla! and CMSes in general.

Location? This is the first time I’ve been to the rather infamous Cititel hotel, tacked to MidValley. Held at the 5th floor, I noticed that people were allowed to smoke within the corridors. I consider this a massive FAIL for a hotel - a smoke free environment within air-conditioning is so much better. I couldn’t find a single power socket, which was rather woeful considering I’d have wanted to write more notes had my battery lasted longer. WiFi seemed non-existent, but I had my broadband modem.

On to it. The day started of with Toby Patterson, from Green Mountain Information Technology and Consulting, a joomla.org developer for the last year and a half, and all round nice guy, who seems to be based in Thailand. It was an introduction to Joomla! 1.5, in where I learned that Joomla! finally makes use of UTF-8 by default.

The templating system is simple: it just makes use of HTML and PHP. I was wondering if it also made use of CSS, so a quick Google showed me that it did (duh to me!).

I then learned that Joomla! is really three separate, yet related applications:

  • Installer Application
  • Site Application
  • Administrative Application

Apparently, you can use the Administrative app, without ever touching the Site app. Interesting.

In Joomla! 1.6, access control lists will exist. I’m wondering, why not just use database GRANTs, but from what I understand they want some group grants and so on…

Today, you can authenticate against your GMail account. I’d also like to presume that OpenID is supported (a quick Google sort of tells me it is) . Apparently, there is also logging in against LDAP.

Next up, I found out that azrul.com isn’t actually a one man show, but an eight person company! They describe themselves as “The Joomla Expert” (really, should be experts now!), and one of their most popular products are Jom Comment.

Its interesting to know that the Joomla! community has got an active amount of extensions, and some are commercial while some are open source/free. A lot of the extensions also have a similar Enterprise/Community model attached to it.

There was a HOWTO install Joomla! which seemed easy enough. The guy from azrul.com, a Mark, mentioned that you could use ext/MySQL or ext/MySQLi, and mentioned that you get some benefits from ext/MySQLi, but didn’t go deeply into it. During the example, he went on to use ext/MySQL, so during the Q&A, I chimed in on why ext/MySQLi would rock harder.

Later on, I found out that Joomla! URLs by default are not human readable, so you have to use some form of plugin, to enhance your SEO. The speaker, Syed Ahmad Fuqaha mentioned that his site had a Google PageRank of 3 when he started, and its now moved up to a PageRank of 5 after using SEO tactics (kudos! I wonder if I should apply some SEO magic to my blog and get it up from a PageRank of 6 to maybe a 7? I wonder if I’ll even be bothered…).

The SEF-url engine comes with every installation of Joomla!, but it has no URL caching (so the server will take the load). It can work with or without Apache mod_rewrite. A cached URL is created and saved in the database… its faster, there’s a little overhead to parse the URL, and it requires a single database call. Apparently, the preferred magic is: sh404SEF.

There was good chat on security, and while I’ve not audited the Joomla! code, its safe to assume that an SQL injection means the code needs some fixing. There were suggestions for security through obscurity. There were also bits about configuring PHP, MySQL and Apache “correctly”.

Joomla! also has got compatibility issues between versions. There is some old compatibility mode that exists now in 1.5, with 1.0, but come 1.6, the old compatibility mode will only exist with 1.5, so if you’ve got a 1.0 site, its soon to become EOL - start porting your stuff now!

Lunch was provided, buffet style. Imagine competing with 200 folk… There were t-shirts, but surprisingly, no more Large ones available the moment I got to it.

A little later, @wariola Twittered that there was some interesting message on the Joomla! forums by a Sam. Interesting reading, but it was deleted (sigh!). Azrul has a good response, and I have a few quick suggestions:

  1. The entrance fee is costly, and can be made cheaper if it wasn’t held at a hotel. Do it at a university hall, or something.
  2. Community event vs. “training” session. If it was meant to be a community event (ala Barcamp), its usually free. If people fork money out, they expect to be trained. Its simple economics.
  3. I wish I had known about the CfP before. I’d have definitely submitted a talk topic.
  4. While Azrul totally expected speakers to suck at presenting, I didn’t find them to suck in general. But for first time speakers, some form of “speaker training” might have been appropriate. No harm, no foul, public speaking in front of 200 people even trips up experienced speakers from time to time.
  5. Google is useful. It was even more useful at the event, as I could not only learn from the speakers, but go on and absorb further via the Interwebs
  6. Assuming everyone paid RM70 (untrue, I’m sure), and there were 200 registrants, that’s RM14,000 (lowest bar - highest bar, RM30,000). Throw in sponsors, and if run well, there can definitely be a profit in there for the organisers. Naturally, I don’t know what the hotel costs, but a hotel tends not to be the best location for a community event…

All in all, here’s to the next Joomla! Day. Remember folk, there’s money to be made here (and in CMS’es in general). /me smells a DrupalCon, etc. coming up :)

Malaysian Government releases first Open Source software package - MyMeeting

Tuesday, August 5th, 2008

Today marks a big day in the history of the Malaysian Government - they’ve released their first fully open source software package, MyMeeting.

Poking around their Trac installation, they use PHP and MySQL 5 (5.0.51a from Ubuntu, even!). Of course their install documentation suggests a lot of Windows usage, but this is a step in the right direction.

Give it a twirl. Report bugs. How many more governments out there are writing and releasing open source software packages? Or is this a first?

Spacewalk, and what we can learn about naming

Monday, June 23rd, 2008

Red Hat releases Spacewalk. It is described as: “the upstream community project from which the Red Hat Network Satellite product is derived“. Congratulations to all whom have worked on it, especially my friends who tired endlessly over it in the past.

Red Hat, is sticking true to its promise, of open sourcing everything they make. Best of all, they recognise Fedora (they always did, since say, Fedora Core 2 or 3), CentOS (a direct “competitor”/rebuild of RHEL), and Scientific Linux (I know of a certain university’s sysadmin who will be blessing Spacewalk, as her life will now be a lot easier).

There have been a few blogs about it… Matt Asay asks about a community (Red Hat traditionally wasn’t good at this, but with Fedora, I believe they’ve learned, and I’m happy to say I think, I helped in the education process). No one however, focused on the technical aspects around Spacewalk/RHN.

Case in point: Oracle is at the heart of it. RHN was designed almost seven years ago, and I’ve heard amazing stories from Gafton, Greg, and Peter. How Gafton found hidden “secrets” inside Oracle to boost performance, and a whole bunch of interesting things, best to talk about over a beer (the irony? When I first met these folk, I couldn’t even legally drink a beer in the US…)

Read the Developer Documentation, note that they use Perl, Python and Java in the current code base (but only Perl and Java is the way forward). There’s a DB Schema available… and I wonder when someone will port this to MySQL?

The Spacewalk FAQ mentions the lack of resources in the past to add an open source database, but would want to do so soon. There’s even help on getting Oracle XE running. The glimmer that there is to be an open source database behind Spacewalk, is what tells me that the MySQL community, that benefit from such a tool (so you’re a DBA and a sysadmin at a fairly largeish installation), should port this to run on MySQL.

What else can we take away from Spacewalk? The excellent positioning. A community project from which the RHN product is derived. This is similar to what Fedora is positioned as: Another striking difference of Fedora is our goal to empower others to pursue their vision of what a free operating system should be like. Fedora now forms the basis for derivative distributions such as Red Hat Enterprise Linux , the One Laptop Per Child XO and Creative Commons’ Live Content DVDs.

Distinctive naming. Helps create a lack of confusion (at the price of an ubiquitous name? Sure, you just have two ubiquitous names now). MySQL Enterprise vs. MySQL Community. They’re both MySQL (don’t even get started on the odd/even numbering scheme…). I dream the day, when we have MySQL Enterprise and Sakila (formerly known as MySQL Community).

Uing DTrace with Java Technology Based Applications: Bridging the Observability Gap

Thursday, May 8th, 2008

Presented by Jonathan Haslam, Simon Ritter, Sun Microsystems

In what I thought was completely great showmanship between Jonathan Haslam and Simon ritter, it was simply, pure comedy, having the two of them on stage. No reason to go deeply into notes (as the verbose slides are available), but the actual demonstration, the writing the code on stage, and the dynamics between the two - that made this session pure gold to attend.

You can ask a system to panic with DTrace if you want!

Some terminology:

  • Probe: place of interest in the system where we can make observations
  • Provider: instruments a particular area of a system, and makes probes available. Transfers control into DTrace framework when an enabled probe is hit
  • Aggregation: patterns are more interesting than individual datum, so aggregate data together to look for arrays. Generally an associative array

DTrace has a PID provider, to look at applications based on PID

dvm provider is a java.net project to add DTrace support in. Install a new shared library, and make sure its in the path.

DTrace in JDK6 exists as a hotspot provider. No need to download a shared library. Its also more feature-rich.

Project DAVE (DTrace Advanced Visualisation Environment) was demoed. Also note that there’s chime.

NetBeans 6.1 with GlassFish, MySQL bundle

Friday, May 2nd, 2008

I couldn’t resist downloading NetBeans 6.1, with GlassFish and the MySQL bundle, the moment I found out it was released. Pulling it down while at the Star Alliance Gold lounge in Singapore was easy enough, and it only took me an hour (its a pretty big bundle - 164MB, as opposed to 6.0.1 where it only weighed in at 143MB for the OS X bundle).

Instead of the 4 packages in 6.0.1, I now only see 2 files - MySQL.prefPane (because we only fixed this in 5.0.51b, which probably didn’t make the release cut-off - the included version is 5.0.51a-community), and NetBeans IDE with MySQL.mpkg. The install is slated to take 526MB and takes a good two minutes.

I noticed that it doesn’t uninstall NetBeans 6.0.1, so my Applications folder now has two versions, including two versions of Glassfish (UR1 from 6.0.1 versus UR2 in 6.1). Upon starting 6.1, it does ask if I’d like to import settings from a previous version of NetBeans; of course I would.

You are then asked to register. I never looked at registering software as important, but I’m starting to think a lot more about it. One has to provide value, for a user to register - and we’ll explore this in another blog post. I’m writing this while on a plane, so it doesn’t make sense to register, anyway.

The first thing I do? Jump to the Services tab, make a connection to MySQL (look under Drivers -> MySQL (Connector/J driver)), and play with the sakila sample database.

NetBeans IDE 6.1 does queries in a GUI!
Design a query, using a GUI

Drill down into tables, find a table name (say, store if using the sakila sample database), drill down into a row, like store_id, right-click, and select Design Query. Now, feel free to drag tables and drop them, only to find that it now helps you create an ER diagram of your tables, while helping you design an appropriate query!

NetBeans IDE 6.1 does ER diagrams too!
ER diagrams for free

Play with the database tool a lot more. It looks like its got plenty of potential. It also looks like NetBeans is a great IDE for all your web development needs (PHP included). I’m certainly going to use it a lot more, even though I’m notably a vim guy.