Meld on Mac OSX Mavericks 10.9

Having used Meld on Linux for sometime, when I moved to a MacBook running Mac OSX it was one of the tools I missed the most. Personally I find DiffMerge just isn’t as good as Meld. So I decided to try and get Meld running using MacPorts… it wasnt as straight forward as I’d hoped, though I do now have it working and below I outline how to get Meld working on Mac OSX 10.9 using MacPorts.

Start by following the instructions to install MacPorts (http://www.macports.org/install.php)

Once you have installed MacPorts to get Meld installing you do the following;

sudo port install meld

Mid way through you may see an instruction to set Python 2.7 as the Python version to use. So I did this when this install process returned me to the terminal.

If you’ve just install MacPorts and are new to this, like I was, then you may find that the install fails;

:info:build Warning: targets not executed for meld: org.macports.activate org.macports.build org.macports.destroot org.macports.install
:notice:build Please see the log file for port meld for details:
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_textproc_meld/meld/main.log

As noted above first I set the Python version;

sudo port select –set python python27

Then looking at the main.log file you should see that the error is;

:info:build scrollkeeper-preinstall /opt/local/share/gnome/help/meld/C/meld.xml meld-C.omf meld-C.omf.install
:info:build make[2]: scrollkeeper-preinstall: No such file or directory

And if you try the command scrollkeeper you will find it does not exist… I found that you now need to install rarian from MacPorts which provides that command;

sudo port install rarian

Once this is installed you can then install Meld;

sudo port install meld

Installation should now work correctly and you should be-able to start Meld from the commandline;

meld

However I now received a crash;
Couldn’t bind the translation domain. Some translations won’t work.
‘module’ object has no attribute ‘bind_textdomain_codeset’

** (process:43347): WARNING **: Trying to register gtype ‘GMountMountFlags’ as enum when in fact it is of type ‘GFlags’

** (process:43347): WARNING **: Trying to register gtype ‘GDriveStartFlags’ as enum when in fact it is of type ‘GFlags’

** (process:43347): WARNING **: Trying to register gtype ‘GSocketMsgFlags’ as enum when in fact it is of type ‘GFlags’
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
/opt/local/bin/meld:155: GtkWarning: GtkIconTheme *gtk_icon_theme_get_for_screen(GdkScreen *): assertion ‘GDK_IS_SCREEN (screen)’ failed
gtk.icon_theme_get_default().append_search_path(meld.paths.icon_dir())
Traceback (most recent call last):
File “/opt/local/bin/meld”, line 155, in <module>
gtk.icon_theme_get_default().append_search_path(meld.paths.icon_dir())
AttributeError: ‘NoneType’ object has no attribute ‘append_search_path’

To solve this issue then you need to install XQuartz;
http://xquartz.macosforge.org/landing/
2.7.5 is the current version that I have installed.

After installing XQuartz, you will need to logout of your mac and then login again.

You can now run meld from the command prompt, though it could be a little slow to start

Drawing Webapp for kids

Over Christmas I created a simple web-app for my 2yr old daughter (and your children will probably enjoy it as well – http://draw.codez.co.uk)  There are 2 parts;
1. Touchscreen drawing page that runs on the iPad and other touchscreen devices – it also works with a mouse on a computer
2. Viewer for the drawings. This is separate and can be opened on another computer or a smartTV.

My daughter draws on one of the shapes then clicks to submit it. It then moves from her screen to the viewing screen where it bounces around the screen. My daughter then draws another one which then joins the other onscreen when she’s ready.

I hope others enjoy this as much as my daughter has, and thanks for the positive feedback received so far 🙂

Autotweet

I’ve chucked together a really simple PHP auto-tweeter. Rather than using a database backend, which can cause setup difficulties for some, it uses a simple text file and tweets a random line from the text file whenever the script is ran. To run the script from the commandline simple run it;

php autotweet.php

Remember to set the config values first, there is a step-by-step guide within the readme.txt inside the zip file. And remember to set up crontab to perform autotweets periodically for you.

AutoTweet Scripts

Raspbmc

raspbmc (XBMC running on raspberry pi)

Playing with the XBMC port to Raspberry Pi Raspbmc and it is amazing.

I can stream movies on a network share and also view iPlayer, 4od and other tv streams on it. But best of all I can use AirPlay from my iPad on it, I love opening the movie on my iPad and then pushing the output over AirPlay to the TV connected to my Raspberry Pi – it takes a few seconds but it is truly great to get it working on the little Raspberry Pi.

TwitterMap Project

I’ve has a week off work spending time with my family, in Map of Tweets
the evenings I’ve been playing with a few small projects including a TwitterMap project. I use a variety of technologies to get realtime tweets from the public twitter feed and render there location onscreen to create a map of the world. I’ve also implemented a heatmap to show popular locations. At the time of writing the data collection is still on-going but I’ve rendered more than 28000 tweets!

Have a look for yourself at http://twittermap.codez.co.uk/

MoJ Nationwide Go-Live

First thing this morning the rest of the MoJ (Courts, Tribunals and Prisons) went live. This follows the first phase which was just the North West at the end of November, and an estimated 3-fold increase in bookings.

In preparation for today the IT Team had rolled-out additional front-end servers to deal with increased demand to the system, and had braced themselves for a long day. The day past-by with only a couple of minor issues, and nothing to write home about. At the front of the service, the Public Sector delivery team have had a busy day, as the phones have rang none-stop, and they are doing a great job of keeping on-top of the bookings.

This MoJ contract is the biggest interpreting contract of it’s kind, and the first time that the public sector has consolidated purchasing of language services to reduce costs.

SmartMATE API Available

We’ve been providing the details of the API to those who had requested it for a few weeks now, and we’ve been getting some good feedback. So we’ve chucked the first version our documentation on the website so that anyone can give it a whirl.

The API covers listing your built SmartMATE engine, listing your running SmartMATE engines and also listing any engines which are currently being built. Assuming you have a built engine, you can then send strings for translation to the API – if the engine isn’t already running then it will be started automatically.

We’ve got tons more functionality in our API’s behind the scenes which we use internally and with other customers, so we’ll be testing and releasing based on user feedback.

In a nutshell the API is Rest-style interface returning JSON, which means you can test the functionality from the comfort of your browser.

Go check out the API at https://www.smartmate.co/smartmate-api

In other news the 2nd phase of the MoJ roll-out goes live on Monday.

Award Winning Team

At the companies annual awards, the IT team scooped the “Saving Private Ryan” award for teamwork and dedication – it’s a great to win an award, and shows that the efforts we put in behind closed doors doesn’t go unnoticed.

This year we launched our new SquidgeIT platform which was the technology which won us the MoJ contract – and this currently deals with all MoJ requests. And the SmartMATE machine translation platform was also launched as the worlds first DIY MT system – it’s been a busy year, and it doesn’t look like it’ll ease up any time soon.

Congratulations to my team, everyone is on a well deserved xmas holiday now!