Akademy Qt5 QtQuick course and Nokia N9 fun
Wednesday, 4 July 2012
I went to the day long course on Monday given by KDAB, about QtQuick for Qt5, and it was excellent. I had used Qt4 and QML for a Symbian phone project earlier this year, and the combination worked very well.
Read More
Akademy 2012 Tallinn beer survey
Friday, 29 June 2012
I can't say I done a lot in the past year with advancing KDE bindings, but I'm hoping to reboot my efforts here in Tallinn. An important part of getting enthusiastic about KDE again is meeting the people, and of course drinking the right beer whilest doing so. I arrived in Tallinn yesterday and so far I think it is a great venue with excellent beer and food available at reasonable prices. Maybe it isn't the most perfect place for vegetarians, but I don't think that should be a show stopper. I thought I should try and summarise my findings so far.
Read More
Tizen or Tizen't?
Wednesday, 28 September 2011
I'm not sure really. We have been discussing this question on the Codethink irc channel today, and I think probably Tizen't.
I think the main point of HTML5 is that it runs everywhere and is platform independent. Once you create a platform that uses HTML5 plus its own extensions it really isn't HTML5 anymore. Giving up on Qt and going for some as yet unspecified native toolkit doesn't seem to be a good way to please and developers who have commited to MeeGo.
Read More
KidsRuby running on the Raspberry Pi
Thursday, 22 September 2011
I've been following the development of the Raspberry Pi computer, which is a small ARM based device costing only 25-30 euros. It is designed to plug into TVs, and is targeted at teaching kids to learn programming. I was excited to read today that the KidsRuby programming environment is running on a Raspberry Pi. You can read some of Liz's other blogs for more details about the Raspberry Pi's progress.
Read More
Self Reproducing Machines at the Berlin Desktop Summit
Wednesday, 24 August 2011
The Berlin Desktop Summit was great, and I think it is about time I wrote something about my thoughts.
I look forward to software conferences because you can never tell which ideas will excite you most. In 2011 I would expect to be wowed by the latest in tablets or 3D rendering stuff, but actually it turned out that 3D printers and a bad attempt to build a toaster from first principles were what left me with the deepest impression at the Summit. Michael Meeks gave a Lightning Talk on his 3D printer RepRap project. It was really funny, about how he built five iterations of his printer, with each generation printing the next printer. Sadly it seemed his wife's nylons suffered in the cause of science, but holy crap I'd personally happily donate my socks to further such an awsome project. I don't know how Michael does it, I am a big fan of his blogs where he describes his thoughts on software such as Libre Office, massive child rearing efforts, attempts to fix his plumbling, lots of stuff on learning Christianity and of course those 3D printers. I couldn't actually write a blog like that because I personally manage to do bugger all apart from mainly writing software, listening to music and drinking a lot of beer, and if I wrote about my life, by comparison sadly it would be a bit of a dull read. Oh well. I can only think about one thing for years on end it seems, and I wish I was more of a generalist like Michael. But if I wanted to think about one thing, there couldn't be many better topics than self replicating machines.
Read More
Screen Locking in Fedora Gnome 3
Thursday, 4 August 2011
I wanted to try out Fedora 15 with Gnome 3 running under VirtualBox on my iMac before I went to the Berlin Summit. I've already tried using Unity-2d on Ubuntu, and I thought I if I had some real experience with Gnome 3 as well, I could have a bit more of an informed discussion with our Gnome friends and others at the Summit.
Read More
Multiple everything - using VMWare, VirtualBox and Multisystem usb drives
Monday, 1 August 2011
Recently there was an post on Hacker News about collective nouns for birds in English. I run loads of virtual machines on my computer and I wonder what they should be called - 'a herd of virtual machines'? I have the mediocre Windows 7 Home Premium, and I wonder if that should be called a 'A badling of windows' after the phrase 'A badling of ducks'.
Read More
Gtk Hello World in Qt C++
Thursday, 14 July 2011
Recently I've been working on the smoke-gobject bindings in the evenings and weekends. Although I'm working on other things for my job at Codethink during the day, I'm sufficiently excited about these bindings to be unable to stop spending my free time on them. This is at the expense of working on the new version 3.0 of QtRuby sadly. I'll try to explain on this blog why I think the Smoke/GObject bindings will be important for the parties attending the forthcoming Desktop Summit to consider, and why I'm giving them a higher priority than Ruby.
Read More
Keep Calm and Hack On
Sunday, 19 June 2011
I've just got back from the Qt Contributor's Summit, and I had a really good time.
I arrived on Wednesday evening and we had arranged to meet in a bar called 'Brauhaus Lemke' in Hackescher Markt which is quite near Alexanderplatz. It did look easier to find on the map than it actually was, but Hackescher Markt is a great place. There is a big square with loads of bars that have seats outside. The Lemke is slightly off the main square.
Read More
GObject to Qt dynamic bindings
Tuesday, 14 June 2011
A couple of years ago I started on a project to create a Qt language binding using the Gnome GObject Introspection libraries to generate QMetaObjects, so that it would be possible to base a language binding on a dynamic bridge between the two toolkits. I started a project in the KDE playground repo, and then Norbert Frese joined in with a companion project called go-consume that was based more on static C++ code generation. I wrote some blogs about how the QMetaObjects creation worked; Creating QMetaObjects from GObject Introspection data, QMetaObject/GObject-introspection inter-operability progress and QMetaObject::newInstance() in Qt 4.5.
Read More
QtRuby 3.x refactor/rewrite started
Thursday, 28 April 2011
I've been neglecting QtRuby recently, although I've wanted to do a major rewrite for some time. I finally bit the bullet last Thursday, and decided that I was going to take time off work and enter a hacking frenzy until the new version of QtRuby was well underway. After six days I've just got a 'hello world' working and commited the project to a 'qtruby-3.0' branch in the qtruby KDE repo.
Read More
Codethink is hiring!
Sunday, 19 December 2010
Alberto Ruiz asked me to post a message on Planet KDE about Codethink is hiring! He says:
"Codethink is currently looking for bright university graduates looking into joining a young open source company. As you may know already Codethink is an Open Source consultancy focused on helping our customers to make the most out of open source and create great innovative products with it.
Read More
SPARQL queries in QML with QSparql
Thursday, 14 October 2010
We've been working on QSparql for a few months now, and I feel it is starting to be something that could be used by a wider audience. It is a simple QSql-like library for accessing various RDF stores such as KDE's Nepomuk data in Virtuoso, SPARQL endpoints on the web via HTTP, and Gnome or MeeGo Nepomuk data in Tracker stores. It differs from Soprano in that it is much smaller and lower level, and it is asynchronous and uses Qt slot callbacks by default, whereas Soprano is usually a synchronous style api.
Read More
Defending Free Software against Oracle's attack
Monday, 16 August 2010
I've been fascinated by the Oracle attack on Google's Android. I don't follow sport and just couldn't understand why so many people were getting excited about the World Cup at Akademy. But to me these epic disputes are a great spectator sport, as well as an opportunity to participate individually. The trouble is that it is all a bit slow, even slower than cricket - if it is like the SCO vs Linus train wreck, it could take up to five years to be resolved.
Read More
QtRuby forked on github
Wednesday, 11 August 2010
Ryan Melton announced on the kde-bindings mailing list that he had set up a project on github called 'qtbindings' with the aim of doing cross-platform gems for QtRuby. This is great news, and congratulations to Ryan for making it happen
Read More
Microsoft ditch IronPython and IronRuby
Sunday, 8 August 2010
By and large I don't really care about what Microsoft do - I don't use their software, and I actively avoid making my career dependent on them. But I am a fan of the C# programming language and think the Qyoto/Kimono bindings for the Qt and KDE apis are pretty neat.
Read More
Two Tribes
Friday, 30 July 2010
It's official the combined KDE Akademy and Gnome GAUDEC conferences will be held in Berlin in 2011, next year and this is great news! I played a small part in organising the joint conference in Gran Canaria in 2009, and really enjoyed working with the Gnome guys most of whom I hadn't meet before, as well as the familiar KDE people. It was great fun to see how it turned out. I don't think anyone really knew in advance - we didn't know if too much collaboration would spoil the 'community bonding' aspects of the conference and their individual identities. Or maybe too little collaboration would increase the distance between the two communities. In the end I thought the collaboration aspects could have been better, indeed like the WiFi could have been better - there is always something you can improve at these conferences, but what the heck, by and large it was mostly pretty good.
Read More
Bangarang has no menus or toolbars!
Wednesday, 21 July 2010
I have a bit of a depressive sort of personality, usually seeing the cup as 'half empty' rather than 'half full'. And lately I've been a bit depressed about the state of the KDE project despite an awesome Akademy in Tampere. Amongst things that bug me about KDE, are the very slow migration to git, and that Windows 95 look and feel that we can't seem to escape despite having brilliant graphics programmers, usability experts and artists. I just loathe those complicated menus, toolbars and Microsoft's complete lack of aesthic sense that we have copied perfectly. Then I came across an article about Bangarang and how it uses Nepomuk. I'm very interested in anything Nepomuk, and even if I don't actually have much use for a new media player I installed Bangarang and tried it out
Read More
GSOC 2010 Idea - Language Bindings Documentation Extractor
Tuesday, 6 April 2010
I've just added an idea for a Google Summer of Code project to the wiki; a Language Bindings Documentation Extractor/Generator tool.
For last years GSOC Arno Rehn wrote a tool called 'smokegen' which parses Qt and KDE C++ header files and generates language independent 'Smoke' libraries that are used by several bindings projects for Ruby, C#, Perl, PHP and JavaScript. It is plugin based, and the main part of the documentation extractor project would be to write a new plugin that would parse both headers and sources and extract doc comments and code snippets. For each different language the plugin would translate the C++ docs to a format suitable for the target language. Any embedded code snippets should also be translated as far as possible. Possibly it might be better to have seperate plugins for each language. Part of the project might be to write some sort of documentation viewer tool if one didn't already exist.
Read More
I've ordered a GuruPlug
Thursday, 18 March 2010
I read an interesting blog this morning Freedom vs. The Cloud Log where Glyn Moody interviewed Eben Moglen. Eben Moglen was General Council of the FSF for 13 years and helped draft various versions of the GPL. He talks about the implications for software freedom caused by the rise of services in the 'cloud' where your data is owned by the service provider, and the fact that they don't usually release the code of their applications that run on the servers.
Read More
Implementing C++ implicit type conversions on method arguments in Smoke based language bindings
Monday, 1 February 2010
I'm sorry about the unwieldy title to this blog - I couldn't think of a shorter snappier way of putting it, but I'll try explain the tricky problem with 'C++ implicit type conversions' that I've managed to solve.
Read More
Introspecting Smoke libraries with the 'smokeapi' command line tool
Tuesday, 19 January 2010
I've recently added a handy command line tool for introspecting the methods in Smoke libraries. Although it is mainly aimed at people using Smoke based language bindings, I think it might be more generally useful and worth describing to a wider audience.
Read More
KDE Bindings in KDE 4.5
Tuesday, 19 January 2010
Aaron wrote an interesting blog about scripting and dynamic language support, and I thought I'd like to add some comments of my own about where we're heading with non-C++ languages in the KDE 4.5 SC release.
Read More
My take on the last decade
Saturday, 2 January 2010
It seems a long time ago, but in early 2000 I had just submitted my first patches to the KDevelop project and KDE. I had wanted to port the version of Squeak Smalltalk that ran under Apple's 'Rhapsody OS' to GNUStep, and I needed some sort of development environment to do that.
Read More
JSmoke bindings KDE hello world working
Tuesday, 8 December 2009
The Smoke based QtScript bindings are progressing well, and are now called 'JSmoke' in the style of 'JQuery' the JavaScript library or 'JScript' the .NET JavaScript implementation. In KDE promo-like words, I hope this will 'raise the brand recognition' of the state of the art KDE Smoke dynamic language bindings technology.
Read More
The PySide Effect - work begins on Smoke based QtScript and Python bindings
Monday, 12 October 2009
I was most surprised when the PySide Python bindings project was announced a few weeks ago. Simon Edwards wrote that "To be honest I'm not all that happy with the current situation." Meanwhile, I wasn't too happy that they had worked for eight months in secret without talking to the KDE bindings community either. I think that the PyQt/PyKDE bindings are very high quality and really well maintained, but if someone insists there really must be an LPGL'd Python binding, I personally would much prefer that it was based on 'Smoke'.
Read More
Ruby Bindings are now in the default Kubuntu install
Monday, 10 August 2009
Using the Kubuntu distribution, I've been a bit envious of the Python bindings guys, because the bindings are installed by default and frequently get updated. So it made my day when I recently did an 'apt-get dist-upgrade' to get KDE 4.3 in my copy of Jaunty and saw that the KDE Korundum Ruby bindings were installed. This is great stuff Kubuntu community!
Read More
Writing Plasma PopupApplets in Ruby and C#
Wednesday, 29 July 2009
Several people have wanted to be able to write Plasma PopupApplets in scripting languages. I'm pleased to announce that for KDE 4.3 you will be able to write them in Ruby and C#.
Read More
Lets move to git pronto!
Sunday, 19 July 2009
The release team made a decision to branch the KDE svn for 4.3 in advance of the actual release. From the point of view of kdebindings I am finding it a highly error prone messy pain in the arse.
Read More
GCDS Moblin talk: "We don't have menus, we think they're useless.."
Sunday, 12 July 2009
At conferences like the GCDS there is so much going on, and you get bombarded with information from all the talks one after that other, and that means that sometimes it takes a while for the meaning of it all to sink in. For me the two biggest themes of the conference were firstly the emerging Semantic Desktop, and secondly the increasing importance of visual design. We actually are in the process of inventing new ways of visual communication, and it was very exciting to be right there in the middle of it happening.
Read More
GSOC 2009 Progress - Smoke Bindings Generator
Friday, 10 July 2009
Yesterday I wore my GSOC tee-shirt at GCDS and got together with Arno Rehn to review his smoke bindings library generator tool. It turns out the project is going great and is pretty much finished.
Read More
Should Qt and KDE apps written in C# be considered Free Software?
Monday, 29 June 2009
Richard Stallman is giving a keynote talk about Free Software at the Gran Canaria Desktop Summit and I am very much looking forward to hearing what he has to say. However, I just read this short post Why free software shouldn't depend on Mono or C#, and to me what it is saying seems incoherent.
Read More
Selene - Cross-Toolkit Dialogs in C#
Friday, 12 June 2009
When you develop a language binding you never know what sort of thing people will develop with them, and it's really fun when people turn up with something. Yesterday I was chatting with Tobias Kappe on irc and he mentioned his Selene project that allows you to create dialogs in C# that are toolkit independent.
Read More
Running KDE4 with KWin/Plasma compositing effects on the HP 2133 mini-note
Wednesday, 15 April 2009
I've read various stories about how people are having problems with the KDE4 compositing effects. So for a change, I thought I should describe how I'm a very happy KDE4 user, after I got KWin and Plasma effects to run pretty satisfactorily on the low end VIA7 cpu/gpu combination in my HP 2133 mini laptop.
Read More
QMetaObject::newInstance() in Qt 4.5
Thursday, 19 February 2009
Yesterday I was getting the smoke bindings lib to build with Qt 4.5 with krege on irc, and one of the errors we were getting was with a private class called 'QMetaObjectExtras' that was failing to compile. I fixed it by making the generator skip that class, but I wondered what was in it. This morning I had a look and it turns out that the new moc has a very interesting and useful new feature; you can now have constructors in your QMetaObjects.
Read More
QMetaObject/GObject-introspection inter-operability progress
Sunday, 15 February 2009
I've been hacking on deriving QMetaObjects for GObject-Introspection data as I described in a recent blog and am making good progress. I've now built a complete heirarchy of QMetaObjects from the gobject-introspection Clutter module which I've been using for testing.
Read More
Creating QMetaObjects from GObject Introspection data
Wednesday, 4 February 2009
With the next Akademy and GUADEC being co-located in Gran Canaria, I thought it would be nice to do a bit of 'cross-desktopping'. My Gnome friend, Alberto Ruiz, is organizing the Gtk+ 3.0 Theming API Hackfest with some GTK hackers along with Jens Bache-Wiig from Qt Software. That is really good news as it means they'll be thinking about making the toolkits apis compatible at the look and feel level right from the start.
Read More
QtRuby, Korundum and Wt::Ruby ported to Ruby 1.9.1
Tuesday, 3 February 2009
The implementation of the Ruby runtime in the new 1.9.1 release is a complete rewrite based on a virtual machine, YARV, instead of interpreting the AST directly and slowly like the previous version. So I was expecting that there would be a lot of changes required for QtRuby as it has a fair amount of C interface code. However, it turned out to be not so bad at all, and I'm pleased to announce that the QtRuby, Korundum and Wt::Ruby projects will all now build against Ruby 1.9.1 as well as the older 1.8.x versions.
Read More
Dr Seigo cured my ruboids
Tuesday, 20 January 2009
Have you ever been a bit irritated by a wart on an API, that gives you a slightly uncomfortable feeling when you think about it, and an itch to try an fix it? Once such wart was in the way standard Plasma plasmoid packages worked; you could call the main script any name you like as long as it was 'main'. That meant that if you looked at your Ruby, Python or JavaScript applet code in Kate it didn't have any syntax highlighting as the editor depends on a '.rb', '.py' or '.js' suffix.
Read More
Introducing Wt::Ruby, a Qt-like api for developing web applications
Friday, 16 January 2009
Before going to last years Akademy I had planned to use the week to try and start helping out with Ruby support for KDevelop4. In the end I got sidetracked by two things; playing with the Nokia N810 and finding out about a web application development library called 'Wt'. Koen Deforche gave a talk about Wt and I was impressed the way he described how web development usually sucked, and why a widget based desktop style api was better than the usual web page with embedded code approach.
Read More
Kubuntu on the HP 2133 Mini-Note
Monday, 12 January 2009
It seems at the moment everyone is looking out for netbooks, Richard Johnson
Read More
Writing Plasma Data Engines in C# and Ruby
Friday, 28 November 2008
I feel a bit stuck in a time warp, having already written blogs with much the same title and subject as this one, back in April. The difference is that it is now possible to use the Plasma Script Engine api and associated packaging mechanism, as opposed to the earlier bindings, which were based on the C++ plugin api. Of course, being able to write engines in C# as well as Ruby is something new.
Read More
Use of casts in the Plasma code
Friday, 21 November 2008
Recently I've often been amazed by the ingenuity and the lengths that some people seem to want to go to, in order to be rude about KDE4. One example was a guy on Aaron's blog about the new system tray who claimed that Plasma had 'too many casts' especially dynamic_casts. 'Hey what? Huh?' I thought, as it was a bit off the wall.
Read More
Running TiddlyWiki on the N810
Monday, 6 October 2008
One of the nicest applications I've found for the Nokia N810 is a single html page! TiddlyWiki consists of a page called 'empty.html' that you download and copy when you want to create a new Wiki. It works just like a traditional Wiki but is single user, and doesn't need a web server. The code for the Wiki is embedded within the page as JavaScript and CSS.
Read More
Writing Qt and KDE apps in Mono Visual Basic
Tuesday, 23 September 2008
I just wiped a partition on my laptop that had Mac OS X Tiger on it - I haven't used Mac OS X for a while and the disk space was just being wasted. I've replaced it with KDE from the Kubuntu Hardy disk I got at Akademy, and upgraded it all to 4.1. It was great to just start from scratch and only put in the latest things that I was interested in. One of the shiny new toys was Mono 1.9.1, along with some of the associated sub-projects such as the Visual Basic compiler.
Read More
The Swaporific N810
Wednesday, 10 September 2008
I only discovered today that the n810 doesn't have any swap file turned on by default. It has only 128Mb of memory, which is quite easy to fill up. And when you fill up the memory you don't get a 'consumer friendly dialog' telling you that your machine is full. No instead of anything helpful, the machine will behave slowly, erratically and then ultimately crash. And after is has crashed you will often find that it won't boot anymore and you need to restore your root partition from a backup.
Read More
Building Ruby on the N810
Wednesday, 20 August 2008
I really enjoyed Akademy this year, and blagging a Nokia N810 right on the day of my birthday was one of the highlights of a great week. I'm very keen to port the QtRuby bindings to the N810 as it should make a nice development environment for quickly developing small free standing apps and Plasma applets. Instead of using Scratchbox, cross compiling on a laptop, and then downloading the binaries, I've been building on the device itself. I'll summarize what I've done so far to get my tablet set up with dual booting OSs and native compilation.
Read More
My 30th Anniversary as a Programmer
Thursday, 7 August 2008
I started my first programming job on August 7th 1978 as a graduate trainee in the 'Advanced Systems Sector' of a company called Dataskil, and today is the 30th anniversary.
Read More
Ich bin ein Bindinger
Saturday, 12 July 2008
I've been in Berlin since Thursday, where we're having a meeting and hacking session about language bindings and Kross scripting. I like Berlin - it's a bit like Amsterdam - plenty of hippies on bicyles although without the canals, the Dutch or the narrow buildings.
Read More
Writing Plasma Applets in C# and Ruby
Saturday, 12 July 2008
I got some Ruby Plasma bindings working a while ago. They wrapped the complete C++ api and allowed you to write a Plasma KDE plugin entirely in Ruby, which just looked like an ordinary C++ plugin to the Plasma runtime. However, that isn't the preferred way to implement non-C++ language support in Plasma.
Read More
Gran Canaria Desktop Meeting 2009 - the Beer Problem
Tuesday, 17 June 2008
For the past few months we've been working on getting our bid to host GUADEC and Akademy in Gran Canaria for 2009. Agustin has done an amazing job in pulling it all together, and Alberto has been relaying his enthusiasm about the idea of co-located conferences to the Gnome guys.
Read More
A Ruby Plasma Data Engine based on DBPedia SPARQL queries
Thursday, 17 April 2008
I've been playing with using KIO::get() to make queries on the DBPedia SPARQL endpoint, parse the XML result set and convert it to be used by a Plasma Data Engine. I'll explain how it works as I think it is pretty useful and makes it very easy to link up applets with Semantic Web/Desktop data.
Read More
Writing Plasma Data Engines in Ruby
Monday, 14 April 2008
It sounds as though exciting things are happening at the Milan Tokamak Plasma sprint, with an api review and the Widgets on Canvas changes happening at the moment. Meanwhile, I've been having my own 'mini-sprint' this last week in Gran Canaria. I've ported the digital clock as well as the analog one, along with the web applet, plasmoid viewer and data engine browsers apps, and the time data engine to Ruby.
Read More
Ruby Clock Plasma Applet
Saturday, 5 April 2008
We can't have too many plasma clocks in KDE4, and I'm pleased to say that the Ruby analog clock is now working pretty well. I've been using it to time brewing a pot of tea this morning, and there is certainly a more delicate taste to Earl Grey timed with a Ruby clock as opposed the the slightly coarser and more acidic flavour that using a C++ based clock applet as a timer, can give to your cuppa.
Read More
Soprano SPARQL Queries in Ruby
Tuesday, 18 March 2008
I've added bindings to the KDE 4.1 trunk for using Soprano with Ruby. It allows you to add and remove statements from the Soprano RDF database and to make SPARQL queries over D-Bus. Also included is an optional adaptor to use ActiveRDF with Soprano.
Read More
Adobe Flash on Linux is crap, will it damage the brand?
Saturday, 8 March 2008
I recently upgraded from Kubuntu Feisty to Gutsy, and all went well apart from one thing. Konqueror began putting up a crash dialog everytime it accessed a site with Flash, making it pretty much unusable. In fact until I had this problem I didn't realise quite how many pages on the web use Flash.
Read More
Loading KParts in KDE4 Korundum
Thursday, 15 November 2007
Last night I was discussing how to load KParts in Korundum with CapitalT on the #kde-ruby IRC channel. It took me a bit of googling to work out what to do, and I eventually realised I'd left the KDE::PluginLoader class out of the Smoke library that the KDE4 version of Korundum uses.
Read More
MPs urge action on Galileo costs
Tuesday, 13 November 2007
I was just completely amazed to read that British MPs think that the Galileo project is unimportant. To me the combination of accurate and cheap global positioning systems, combined with the infrastructure to determine the relative position between one thing and another, and a semantic web that allows that GPS meta data to be annotated ubiquitously to all information on the web, is so important that every 21st economy will depend on it.
Read More
Software Libre in La Laguna
Friday, 21 September 2007
This week I've been at the Jornadas de Software Libre conference in Tenerife. One thing that struck me was that the Spanish don't have a word for 'Open Source', which would be something like 'Codigo abierto'; they always use the term 'Software Libre'. The conference program even had the four freedoms of Free Software written on the back, along with an explanation.
Read More
Showing active/inactive windows in KDE4
Saturday, 15 September 2007
There has been some discussion on the kde-core-devel mailing list about a change to how the active window should be distinguished from the inactive windows, where different color palettes are used for the widgets inside inactive windows.
Read More
Who cares about document formats?
Tuesday, 11 September 2007
I've loved reading the articles about whether or not the Microsoft OOXML document format should be an ISO standard, as opposed to the ODF ISO standard for word processing documents. In particular, Miguel de Icaza's heroic defence of his position against over 500 rabid anti-microsoft Slashdot posters. I admire someone who can think for themselves against entrenched opposition (eg Richard Stallman or Miguel de Icaza), and I don't actually care whether or not I agree with them or not.
Read More
UK Makes Science easier
Wednesday, 29 August 2007
I love the practical way the neo-liberal UK government make things happen to create a more 'business friendly' environment. The latest idea is to simplify science exams to allow more people to pass GCSE physics - what could be wrong with that? More scientific people and we'll surely have a more scientific country.
Read More
Get Semantic with DBPedia and ActiveRDF
Sunday, 12 August 2007
I'm quite excited by the things that the Semantic web will make possible, and one very interesting project is DBpedia, which aims to extract structured data from Wikipedia, link it with other datasets and put everything in an RDF triple store that you can either download or query via a 'SPARQL endpoint' on the web. I've been trying out using ActiveRDF to make DBpedia queries and showing the results in a Korundum KDE4 app.
Read More
Hexperides educational distro code hits launchpad
Tuesday, 19 June 2007
The mEDUXa Canary Islands schools Linux project was based on Free Software, and we've finally got round to setting up a community version of it that people can hack. You can read about it on this KDE Dot News story and follow the link there for screen shots and more explanation. I'm quite excited by the prospects of Free Software in Education - it just seems inevitable that the Free Software Hacker Ethic will take over and change Education just as much as it has transformed the process of software development. Change education and you can change the World.
Read More
Comparing colliding mice in C++, Java, Ruby and C#
Wednesday, 13 June 2007
Now that there is a final release of QtJambi, I've downloaded it and had a good look at the sources. I'm happy to report that it looks very well written, very thorough and with much attention paid to issues such as performance tuning and working well with Java threads.
Read More
KDE4 Korundum hello world working
Friday, 20 April 2007
I've just got hello world working with the KDE4 version of the ruby korundum bindings. Here's what it looks like:
require 'korundum4' aboutData = KDE::AboutData.new( "tutorial1", "Tutorial 1", "1.0", "KMessageBox popup", KDE::AboutData::License_GPL, "(c) 2006" ) KDE::CmdLineArgs.init(ARGV, aboutData) app = KDE::Application.new guiItem = KDE::GuiItem.new( "Hello", "", "this is a tooltip", "this is a whatsthis" ) KDE::MessageBox.questionYesNo( nil, "Hello World", "Hello", guiItem )
Read More
Broken OpenOffice Java config
Tuesday, 10 April 2007
I've recently been working on a little Rails app that manages foreign exchange handling, and prints reports. I'm converting an existing Excel based app that does the same thing, and I needed to get data from a spreadsheet to use as test data. So I fired up OpenOffice.org Spreadsheet, it loaded it fine, and even had KDE file dialogs which is nice. I looked for an option the export to CSV (comma separated values), but there were only options for PDF and xhtml.
Read More
Building Qyoto and QtRuby on Mac OS X with cmake
Wednesday, 21 February 2007
I read this recent article about Mono on the Mac and thought why don't I try building Qyoto on Mac OS X and see if it works. The article talks about GTK# using X11, although a native port of it, along with System.Windows.Forms being done. Cocoa# seems a bit incomplete. I personally like Objective-C, having been an Objective-C programmer for 10 years, and I don't think the Cocoa libs translate too well into C#. The api looked a bit ugly to me, with weirdness like every C# method being annotated with the objc type signature so you get to write everything twice. Using Attributes to annotate methods and classes is fine in the bindings classes themselves, and the Qyoto code does exactly the same thing with the C++ type signatures, and classnames of the methods being wrapped. But I'm not sure if you want to do that in application code. For example, here is a snippet of code from the ViewSample.cs example: [Register ("SimpleView")] public class SimpleView : View { public SimpleView (IntPtr raw) : base(raw) { } [Export ("initWithFrame:")] public SimpleView (Rect aRect) : base (aRect) {}
[Export ("drawRect:")] public void Draw (Rect aRect) { BezierPath.FillRect (this.Bounds); Graphics g = Graphics.FromHwnd (this.NativeObject); Font f = new Font ("Times New Roman", (int)(this.Bounds.Size.Height/15)); Brush b = new SolidBrush (System.Drawing.Color.White); g.DrawString ("This is System.Drawing Text\non a NSBezierPath background!\nTry Resizing the Window!", f, b, 10, 10); } </pr
Read More
Using custom C++ classes with QtRuby
Friday, 16 February 2007
I've recently been having a discussion with Eric Landuyt on the Korundum site help forum about wrapping custom C++ classes in QtRuby. I told Eric that you just needed to create a QObject derived class with the slots and properties you wanted to expose, give it a name via a QObject::setObjectName() call, and create it with qApp as the parent. Then wrap the class in a Ruby extension using an extconf.rb script to generate the makefile to build it. Once your new extension is loaded, you can find the instance of the C++ class by using Qt::Object.findChild() with the object name you gave it.
Read More
RESTful CRUD with Rails ActiveResource and QtRuby
Tuesday, 13 February 2007
After I wrote about how to use an ActiveRecord model with a QtRuby Qt::TableView, Silvio Fonseca sent me a nice improvement where he has written a generic Qt::AbstractTableModel that will work with any collection of ActiveRecord instances. Meanwhile, Imo one of the ruby hackers here at Foton where I work, gave a very interesting presentation on Friday, about the new feature in EdgeRails called 'ActiveResource'. He showed how the same table model could be used to create a QtRuby front end to ActiveResource.
Read More
Stunning essay by Jonathan Lethem
Sunday, 11 February 2007
Via slashdot I read this essay by Jonathan Lethem. It is a stunning, jaw dropping piece of work. I don't know what to say to add to it.
I love vintage country music and he even mentions the similarity between Kitty Well's “It Wasn't God Who Made Honky Tonk Angels
Using QtRuby with Rails ActiveRecord based Qt::AbstractTableModels
Thursday, 8 February 2007
I do Ruby Rails development as part of my day job, and one of the nice parts of Rails is the ActiveRecord Object-Relational Mapping framework. Today I've been playing with QtRuby using a Qt::AbstractTableModel based on ActiveRecord, and it's really simple to implement and works really well.
Read More
Explaining Qyoto - QtDBus, generic types, properties, cmake and Qt Designer support
Tuesday, 6 February 2007
The Qyoto project has made some good progress over the past few weeks. We've now switched to the .NET 2.0 gmcs mono compiler, with support for generic types amongst other neat features. Q_PROPERTYs are mapped onto C# propertys, which makes the code look a lot nicer. Arno Rehn has implemented a C# version of the Qt Designer uic tool called 'uics', and the code it generates uses the new properties. And another important change has been switching to cmake, and so we have a nearly sane build system.
Read More
Why no haptic feedback in the iPhone?
Friday, 19 January 2007
The highlight of our Foton company Christmas party was playing with a Wii for the first time. We got one rigged up via a projector onto the wall, so there was a nice large image, and then put the sound through a little stereo so it had a bit of punch. The game we tried first was Wii tennis, and it was amazing to watch people moving around and using the controllers just like bats in a physical real world game.
Read More
English Spelling a Design Disaster
Thursday, 7 December 2006
On the #kde IRC channel tonight there was some discussion about how bad english spelling rules were. I found out via google that there is a 'Simplified Spelling Society'. From the site, here is a description of how English spelling was invented:
Read More
Novell/Microsoft invent the 'Hobbyist', forget what 'Community' means
Monday, 6 November 2006
The recent Novell/Microsoft agreement purports to give what they call 'Non-Compensated Individual Hobbyist Developers' the rights to use unspecified Microsoft patents. The terms are given in this Community Commitments - Microsoft & Novell Interoperability Collaboration. They define a 'hobbyist' as this:
Read More
Ralph Griswold Icon Language designer passes away
Saturday, 21 October 2006
I used to use my trusty original Macintosh in the 80s to learn new programming languages. Every year or two I'd get some a Mac version of something like Lightship Scheme, Allegro Object Logo or AlphaPop Pop-11 and a few books about them, and then work my way through learning stuff. One of my favourites was a nice GUI version of Ralph Griswold's Icon programming language. I was sad to read on LtU that he has recently died.
Read More
Sun go Through the Looking Glass
Saturday, 14 October 2006
I was interested to read this article on how Sun have set up a pavilion in Second Life, and are using it for virtual meetings: Tuesday, Sun became the first Fortune 500 company to hold an 'in-world' press conference to show off its new pavilion in Second Life, the popular 3D online world. Sun said it plans to invest in the Sun Pavilion as a place for developers to try out code, share ideas and receive training.
Read More
QtRuby DBus progress
Sunday, 8 October 2006
This week I've been converting the QtDBus examples from Qt 4.2 to Ruby, and getting the various Qt::DBus* classes working. Now QDBus support is pretty much complete and it will be fun hacking up some interesting apps like bridges to web services like I tried with DCOP. I'll have to get kde4 kdelibs and whatever else builds so I've got some sample apps with DBus support to experiment with.
Read More
Prolog as a Ruby DSL
Tuesday, 19 September 2006
I just read Pat Eyler's blog Reading Ola Bini writing about some interesting discussions on Ruby metaprogramming and how it compared with Lisp macros for writing Domain Specific Languages. In one of the references Why Ruby is an acceptable LISP, amongst other things people discuss how to implement prolog as a DSL in Ruby or Lisp. A long time ago some of my 'hobby programming' projects were writing prolog interpreters in various languages; I started off with a Pascal one and added things to it, translated it into Modula-2, and I did a Object Oriented one in Objective-C. I've started translating the Objective-C one into Ruby, and it's quite fun seeing how the code compares in the two languages.
Read More
Using blocks as slots in QtRuby/Korundum
Thursday, 14 September 2006
On the #qtruby IRC channel kelko thought up a simple way of adding blocks as targets to Qt::connect() calls. After some more discussion rickdangerous suggested also adding a simple method that would work like 'signal_connect()' in ruby-gnome, which just takes a single signal name argument and a block. I've just added the code to both the Qt3 and Qt4 versions of QtRuby. There are three variants that allow you to replace the usual SLOT(:foobar) with a block.
Read More
Spinboxes are useless
Sunday, 10 September 2006
One of my pet hates in GUI widgets is the 'spinbox', and I especially dislike the idea of a floating point spinbox. I think for technical reasons I had trouble wrapping the KDE3 floating point spinbox in korundum, and couldn't get particularly worked up about fixing it. But I was a bit depressed to find out that Qt4 has a floating point spinbox widget (although I didn't obstruct its inclusion in Qt4 QtRuby).
Read More
Sun hires the JRuby developers
Friday, 8 September 2006
Charles Nutter writes in his blog The two core JRuby developers, myself and Thomas Enebo, will become employees at Sun Microsystems this month. Our charge? You guessed it...we're being hired to work on JRuby full-time.
Read More
Why aren't scrollbars configurable to be on the left hand side?
Thursday, 7 September 2006
A left handed person asks on Slashdot about the difficulty of using a touch screen when the scrollbars are on the right hand side. When Alan Kay and others developed the original WIMP interface at Xerox PARC in the 1970s their systems always had the scrollbar on the left. For some reason Apple chose to move the scrollbar to the right, and everyone else, except NeXT just copied them.
Read More
Eric Raymond is wrong about the importance of 64 bit OSs
Thursday, 31 August 2006
I usually find what Eric Raymond has to say interesting and entertaining, and I enjoyed 'The Cathedral and he Bazaar'. But in this recent interview, he talks about the importance of the transition from 32 to 64 bit OSs and how it creates a 'window of opportunity' to make the Linux desktop popular, that will only last until 2008.
Read More
Tom Ball on 'Is Writing Code a Career Limiting Move?'
Sunday, 20 August 2006
I found this blog entry on coding as a career limiting move interesting, how could being really good at writing code possibly be a 'career limiting move'? I've been a professional programmer for a very long time, and I've come across very, very few people who are brilliant at writing code - maybe a handful before I came across the KDE project where they seem to be all over the place. So how come the Java community thinks you can separate 'architects' who don't code from the lowly coders that the architects tell what to do?
Read More
Trolltech Greenphone Lust
Tuesday, 15 August 2006
I've just read about the forthcoming Greenphone with a Qtopia development kit. If I can port Qt4 QtRuby to it, I want one right now! I could hack together custom apps to access web services like google via GPRS. It has 64 Mb of RAM and 128 Mb of flash, with expansion slot which sounds as though it should be enough to fit a QtRuby development environment. Does it take standard sims, or can you only use it with certain service providers?
Read More
Gnome bindings discussions
Wednesday, 19 July 2006
I thought the discussion on the Gnome developer list about C vs C# vs Python etc for writing desktop apps was very interesting. A lot of it could equally well apply to the KDE project.
Read More
Api simplicity and design in QtRuby/Korundum
Thursday, 15 June 2006
Michael Larouche writes about the new KDialog api, and how it is simpler to understand than the old KDE3 one. It reminded me of one of my favourite talks at the 2004 Ludwigsberg aKademy, when Mathias Ettrich discussed similar usability improvements in Qt4. I'd like to describe a couple of features in QtRuby and Korundum that make such constructor code clearer still.
Read More
Qyoto custom slots and signals are working
Thursday, 8 June 2006
The Qyoto C#/mono bindings are getting quite close to being useful. I first started on them about two and a half years ago, and so it's taken forever to get going. But we've just passed a key milestone, which is getting the cannon game tutorial t7 working. That means you can now define custom slots and signals in C#, and connect them to C++ or C# slots and signals.
Read More
QtRuby D-BUS Hello World
Tuesday, 6 June 2006
I've just got my first Ruby D-BUS app pretty much working, it starts up, outputs convincing looking messages, and then crashes kdbus. I only started yesterday and so it hasn't taken long to get the D-BUS api pretty much wrapped. I still need to do some work on the QDBusAbstractInterface::call() method, as it uses C++ templates and doesn't translate easily into Ruby.
Read More
A startup script to use Ruby irb with Korundum
Sunday, 21 May 2006
I've been playing with irb today to work out how to add an interactive Korundum or QtRuby command line. I've come up with this script that allows you to type 'start_kde' in irb, and it displays a KDE::MainWindow. If you right click and select 'Interrupt' from the context menu, it puts you in an irb session context based on a widget within the KDE::MainWindow.
Read More
Miguel de Icaza on Open Source Java
Saturday, 20 May 2006
I thought Miguel de Icaza had some interesting comments to make on the 'should Sun Open Source java issue'. I spent a couple of years working on the Qt/KDE java bindings but never achieved much success in spite of a lot of effort on my part, and I don't think the failure was entirely due to the technical quality of the QtJava bindings.
Read More
Adding a Ruby Interpreter menu to Konsole
Wednesday, 17 May 2006
I've recently added a 'Ruby Interpreter' menu to start an irb shell in Konsole. Just create a file called ruby.desktop in /usr/share/apps/konsole with the following contents: [Desktop Entry] Type=KonsoleApplication Name=Ruby Interpreter Comment=Ruby Exec=/usr/bin/irb And that's it! Your Konsole will then have menu entry under 'Session' called Ruby.
IV Jornada Software Libre, Las Palmas
Friday, 12 May 2006
Yesterday, I went to the IV Jornada Software Libre conference at the Universidad de Las Palmas sponsored by the Canary Islands government. There were some interesting talks, and much discussion in between. I gave one called 'Software Libre is Inevitable' in the morning.
Read More
Should KDE choose Pop-11 over Algol 68?
Wednesday, 3 May 2006
Some things never change, and the recent discussions about a possible 'new VB' for the Linux Desktop reminded me of this excellent article by Aaron Sloman (my philosphy/AI professor from 1976 to 78 while I was a Philosophy undergraduate at Sussex University). He describes the history of teaching Pop-11, and the reasons for choosing it. When he talks about Algol 68, it could just as easily be C# or C++, and when he talks about Pop-11, you can just substitute Ruby (or Python), and the arguments still make perfect sense. Here are some extracts..
Read More
Qt4 QtRuby windows port progress
Tuesday, 2 May 2006
I've recently been working 'over on the darkside', and have been getting QtRuby working with the GPL'd Qt 4.1.2 and mingw on Windows 2000. Several months ago Ryan Hinton got QtRuby working be generating the code for the Smoke library on Linux, and then hand hacking it to get it to build on Windows. So ever since I've been very keen to get it working - that is until the prospect of devoting an entire weekend or more to Windows programming, and not surprisingly I just kept putting it off. Fortunately, Caleb Tennis's company sponsored nearly two weeks of solid QtRuby development, and I was able to get an awful lot done, including a Windows port.
Read More
A Ruby spanish translation DCOP server
Monday, 1 May 2006
I've been here in Gran Canaria for nearly six months now, and my spanish hasn't progressed as fast as I hoped it would. Learning another language is really hard! It makes me realise how tough it must be for non-native english speakers to contribute to english based Free Software projects such as KDE.
Read More
Ruby KDevelop RAD demo in Tenerife
Monday, 27 March 2006
I've recently been working on 'Meduxa', a Kubuntu based version of KDE for the Canary Islands schools. Last week I went to the Medusa HQ, just north of Santa Cruz in Tenerife to meet Agustin Benito the project director to work with him trying to decipher the XDG menu spec in order to customize the KDE menus. While I was there Agustin arranged for me to give a talk at Universidad de La Laguna about Ruby RAD with KDevelop/QtRuby and Rails at short notice. I thought there would be about 10 people there, but much to my surprise a whole roomful of 50 or 60 people turned up.
Read More
James Gosling just doesn't get it
Monday, 13 March 2006
It really does seem that we're beginning to emerge from the 10 year long Java nuclear winter, when excellent dynamic languages such as Objective-C or Smalltalk were kicked out of the mainstream. I've nothing against Java, and have probably spent a couple of man years or so working on the Qt/KDE Java bindings as some kind of 'public service' combined with a sincere desire to attempt to kill the Swing GUI toolkit. But I could never get at all excited or 'passionate' about it - Java has always just seemed another programming language to me with some pretty serious design flaws, some terrible frameworks and apis (cf Calendar class, the reflection api, and ..umm Swing).
Read More
Steve Yegge on the rise and rise of Ruby
Thursday, 12 January 2006
I've just read a couple of Steve Yegge's blogs about why he thinks certain languages have succeeded while other technically superior languages have failed. He has spent most of his time in the last year or two programming python, but recently has got into ruby. He writes really well about how the 'culture' around a language can affect its success or failure, and how the ruby culture is more open and friendly than python's.
Read More
Qt4 QtRuby Windows port working
Friday, 16 December 2005
Congratulations to Ryan Hinton for getting a Windows port of the Smoke library and Qt4 QtRuby working. We just need to do a bit more to sync his version with the kde svn, and get it packaged. Then we're ready to do a first release that will run on Linux, BSD*, Mac OS X and Windows. Here's a couple of examples of how the ruby api improves on the original C++ one.
Read More
Qyoto "hello world" working
Tuesday, 13 December 2005
Below is a Qyoto/Kimono C# bindings 'Hello World' program written by Arno Rehn. Arno has done some quick performance measurements and he says Qyoto runs faster than a QtJava app running using IKVM, which is encouraging. I wasn't sure whether or not the method calls going via transparent proxies would be too slow, but there are major advantages in not needing C bindings using P/Invoke for each method call.
Read More
Outlaw
Friday, 11 November 2005
I've just spent my first week working at Foton Sistemas Inteligentes in Gran Canaria. I've been learning some Spanish, trying out Ruby on Rails and helping with translating a tourist information site to English. This weekend there is a WOMAD festival in Las Palmas, and I went there last night to see Kanda Bongo Man from the Congo. Wow! Soukous is about my favourite dance music, and being able to just hop on a bus and see that kind of gig for free was amazing. It feels like permanently being on holiday here; the sun shines, people are friendly and you have fun. Yet people work hard and still get lots of stuff done.
Read More
JWZ on 'Enterprise Software'
Tuesday, 8 November 2005
I've been quite taken aback by all the recent fuss about some default install option for KDE changing on a single distribution. I thought it might be a good time to post this quote about how Enterprise Software is boring.
Read More
Howard Stearns on Immersive 3D
Friday, 28 October 2005
I been reading Howard Stearns blog on wetmachine about Croquet and the Brie widget framework he is writing for it. They're all worth reading, but I especially liked this one. He writes 'What Is It About Immersive 3D'
Read More
Qyoto and Kimono C# bindings
Wednesday, 26 October 2005
I started working on some C# bindings a couple of years ago called Kimono, and got it to the 'proof of concept' stage. It uses Transparent Proxies to funnel every call to the Qt api to a single SmokeInvocation.Invoke() method. Inside Invoke() it looks up the method in the Smoke library's runtime, marshalls the arguments and calls it. I've just adapted the code generation to work with the Qt4 classes, and checked the code into trunk/playground/bindings/kimono.
Read More
Trolltech's Qt-Java bindings
Saturday, 22 October 2005
Aaron writes:
haavard announced that by Q1-06 they'll be releasing a tech preview of java bindings for qt4 that will be officially supported. wow.
I'll be interested in how the java bindings are implemented, and whether they are auto-generated or not. Will it be easy to extend them to wrap the kde libs? I hope they are successful. I think it needs a big company like Trolltech to do the marketing to make a java binding a success - I never managed to make my version very popular. The QtRuby ones seem to be getting more traction than I ever got with QtJava.
Read More
Interview with QtRuby book author Caleb Tennis
Tuesday, 18 October 2005
/\ndy Hunt one of the pragmatic programmers interviews Caleb Tennis, author of the new book Rapid GUI Development with QtRuby in this podcast.
Caleb has just done a long overdue new release of Qt3 QtRuby and Korundum on the RubyForge site, although we haven't announced it yet. I hope to do a first relealse of Qt4 QtRuby in the next couple of weeks, and put it up on RubyForge too.
Read More
LanzaOS 05
Tuesday, 18 October 2005
I spent last week in the Canary Islands seeing a company called Fotón Sistemas Inteligentes in Santa Brigida, Gran Canaria. I stayed with Gonzalo, Marianne his girlfriend and their 11 cats and their very 'woofy' dog. They showed me the mountains with spectacular views of the island, although it was a bit windy high up. It really is a very pretty place. Wednesday is a public holiday in Spain, so Foton had a barbecue Tuesday evening on the roof of their offices. They did some 'Sardinas' for me just like the ones we had at the Malaga beach party - nice! Everyone is very friendly and I'm really looking forward to learning Spanish, and working with them.
Read More
Java reflection vs Ruby respond_to?
Saturday, 8 October 2005
I've recently been making some rubbish attempts at fixing a bug in the QtJava bindings. The problem is here in bug #112409, it meant that an event handler method in QtJava could only be a direct subclass of a QtJava widget, like QWidget or whatever and not a sub class of a sub class of QWidget and so on. To fix it involved using java reflection to look for any overriden event methods in the java superclasses by writing a loop to go up the class heirarchy. Please laugh at my comments as I continually screw up on the commit :).
Read More
New QtRuby/Korundum book
Thursday, 6 October 2005
Dave Thomas, the Pragmatic Programmer, made a recent announcement on ruby-talk about a new book by Caleb Tennis called 'Rapid GUI Development with QtRuby'. It is about 90 pages long and costs only $8.50 for a personalised pdf version. The idea of the 'Friday' small book series is something to try out on Friday afternoons. Congratulations to Caleb for getting the book out! Why not try out some QtRuby programming one Friday? The book will help you get going, and anything that helps lower the barrier to entry for Qt/KDE programming is great news.
Read More
The Future is Obvious!
Friday, 2 September 2005
Lately I've been thinking about both my past and my future. What strikes me is how easy it is to predict the future (not necessarily the same as being personally able to make it happen). In the early 1970's Alan Kay at Xerox PARC used Moore's law to predict when it would be possible to create a flat screen display based portable machine, he called a 'dynabook'. You just take the graphs of expected progress in microelectronics, extrapolate, and see about what year the hardware would arrive.
Read More
Greetings from Kiev
Saturday, 2 July 2005
Alex Dymo has organised a KDevelop Developers conference, and I'm here in Kiev for a week with other KDevelop hackers.
We gave a full day of presentations yesterday about all aspects of KDevelop and our future plans. I gave my second public talk ever, about ruby support and the QtRuby/Korundum bindings. It didn't go too badly apart from my iBook not working with the projector, and everything crashing in the middle of demoing the KDevelop ruby debugger. Oh well. I mainly need to get the hang of KPresenter - I wasn't as nervous as in my first talk even if I'm not exactly slick yet. Anyway, it was great go out to another part of the world to encourage Free Software. The audience were interested in what we had to say, and asked some good questions. At the end we took lots of photos of everyone behind the conference banner.
Read More
Qt4 moc format and Smoke v2
Saturday, 11 June 2005
Over on the kdebindings mailing list Ashley Winters has started thinking about doing a version of the
Smoke libary using the Qt4 meta object system. My best summary description of Smoke has been 'a moc on steriods', so designing a better Smoke by extending the slots/signals idea to cover an entire api does seem a logical step.
Read More
Rich Burridge is a fellow walking antique..
Wednesday, 8 June 2005
Rich Burridge talks about how he first started working in the computer industry 30 years ago for ICL computers. Hey! That rings a bell, I started my first programming job in 1978 as a graduate trainee in the Advanced Systems Sector of Dataskil, which was a software house subsiduary of ICL in Reading.
Read More
Prolog interpreter in Objective-C
Tuesday, 7 June 2005
Here's a blast from the past - I just found this on an old backup disk. It's a prolog interpreter in Objective-C that I wrote in 1993. I was unemployed and bought a NeXSTation with the small amount of redundancy money I got after the company I worked went bust.. as they do ho, hum.. But I subsequently presented it to a company short of a NeXTSTEP programmer, and got a job. So it has great 'sentimental value' I suppose. Welcome to the world of proof trees, WAM interpreters, backtracking, and other strange long forgotten stuff! What about a google summer of coding idea for porting this engine to ruby with a Korundum front end? This code is available under a 'do what the hell you like with it' license :)
Read More
Qt 4 QtRuby hello world working
Friday, 3 June 2005
I've just got hello world working with QtRuby and Qt 4:
require 'Qt'
a = Qt::Application.new(ARGV) hello = Qt:: PushButton.new('Hello World!', nil) hello.resize(100, 30) #a.mainWidget = hello hello.show() a.exec()
Read More
SOAPey DCOP
Saturday, 7 May 2005
I've pretty much got my dynamic DCOP to SOAP bridge working now. There is a DCOP interface called 'SOAPGateway', and it has a addService() slot which takes two args; the name of a DCOP service and the URI of a .wsdl file defining the SOAP service. The .wsdl file is parsed and a suitable DCOP service is generated, with slots for each SOAP method call.
Read More
Dynamic DCOP Server
Tuesday, 3 May 2005
I've been messing with with idea of dynamically adding DCOP slots to a running DCOP server program. I've got a little server with a slot called 'eval()' which takes a string of ruby code and evaluates it as a sort of 'compile command'. So you send the new code for a dcop slot to the server, it evaluates it, and you can then invoke the new slot.
Read More
RESTful pasting
Saturday, 30 April 2005
I found this great little ruby program on isaac's random rants blog - it takes the contents of the klipper clipboard, sends it to rafb.net which is 'code snippets temporary storage' site. You put your clipping there, and it returns you the URL back on the clipboard that you can paste into an IRC channel or whatever. I added a 'lang=Ruby' attribute too so the snippet gets labelled as a Ruby one.
Read More
Korundum Ruby To Do List
Monday, 25 April 2005
Aaron was interested in what I thought needed doing with KDE/ruby and I
mailed him this to do list the other day. Here it is in case anyone else
is interested.
Read More
Woman suckles tiger cub
Thursday, 7 April 2005
I read this article in today's Guardian.
Call it a touching act of altruism or a curious assertion of maternal capability, but the bottom line is 40-year-old Hla Htay is breastfeeding a Bengal tiger cub. ... As to why Ms Htay has offered her services, when bottled milk could do just as well? "I don't even want to go there," says Strike.
Read More
Rails, the Ruby tipping point?
Tuesday, 5 April 2005
Everywhere I look on the web these days there seem to be enthusiastic articles about Ruby on Rails, the web application framework.
On Slashdot, with nearly 500 comments posted in a matter of hours. Or Linux Journal or an O'Reilly blog where Rael Dornfest discusses what a great combination Rails and Ajax form.
Read More
Cannibal flesh donor program
Thursday, 31 March 2005
I like to get my head round the latest and greatest in 'shiny new ideas', but I'm having trouble with umm 'digesting' this one.
I can't think of any rational objection. I personally don't eat meat, although I do eat fish, so I'm not really a vegetarian. But I just can't visualise pre-packed meat in the supermarket labelled 'tender young car accident victim', or 'well preserved old granny, good broiler'. I suppose professional marketing people would be able to think up less offputting messages. Maybe there could be a signed note from the recently deceased on the package saying how great they were to eat, and how it might save some animal being slaughtered. A bit like the genetically modified cow in the Hitchhikers Guide to the Galaxy episode, who was could talk in order to sell her good eating properties :)
Read More
JWZ on Groupware
Wednesday, 16 February 2005
I thought this was a brilliant blog by JWZ explaining how Netscape fell apart, and why writing 'corporate groupware' driven by specs from faceless managerial types is absolutely not the way to develop anything people would actually want. He was cautioning Nat Friedman about getting too excited about Novell's new Hula groupware.
Read More
Learning KDE programming
Saturday, 12 February 2005
Hans Oischinger talks about how he found it hard to learn about programming the Qt/KDE api.
All of his comments apply to ruby Korundum programming; in ruby you can use slots/signals, KConfig XT .kcfg files, Qt Designer .ui files, KXMLGUI .rc files, DCOP, KDE::Parts (KParts) or subclass KDE::Command (KCommand). But the problem with total ruby/KDE integration is that the docs, if they exist at all, are for the C++ api.
Read More
Are Cockroaches Conscious?
Friday, 14 January 2005
I enjoyed reading the answers to the question "What do you believe is true even though you cannot prove it?" here. My favourite was by Alun Anderson, Editor-in-Chief New Scientist. His topic was how he thought insects were conscious..
Read More
KSpy Object Inspector
Wednesday, 12 January 2005
The other week I wrote about the 'Object Inspector' features of the KDevelop Ruby Debugger that make use of the various sort of Qt runtime metadata and show it in the debugger's Variable Tree. I thought it would be nice to have something similar for debgging C++ programs.
Read More
Qt 4 and language bindings
Monday, 3 January 2005
I've downloaded the Qt 4 beta 1 and briefly played with the new Qt Designer, and had a look at what the code generated by the moc looks like to see if there might be any problems integrating slots/signals with bindings.
Read More
Ruby OO Debugging
Monday, 3 January 2005
I've been working on the QtRuby and Korundum bindings full time for nearly a year and a half now, and I'm really pleased how well it's turned out. It's been my ambition to create a development environment for about 20 years or so, and it's a great feeling to have to think 'how an earth could I ever top this?'. Lots things have turned out better than I ever could have expected; such as total completeness the Smoke library in its coverage of the Qt and KDE apis. Or the fact that the whole of Smoke is autogenerated directly from the headers - something I would have never thought possible three years ago.
Read More
Fidel is my Hero
Friday, 22 October 2004
I've just posted this as a 'Story', but I think it's more of a blog. So please take down the story, or I launch my assault.. :)
I've read recent news that Fidel Castro is getting very old, and has broken his arm, that's sad because he is one of my great heroes. Up there with Hank Williams or Alan Kay.. I went on a 'Marxism Today' study trip to Cuba in 1988 and came away awe inspired by what those revolutionaries had achieved in the 1950's. Although I'm not personally a Marxist, just a 'free thinker', and I had no personal axe to grind on whether the revolutionaries and their cause was right or wrong. But if you study the history of Cuba you will find many parallels with more modern liberation movements such as the Vietcong or the emerging resistance in Iraq. The defining moment of the Cuban revolution was the assault on the Moncada barracks on July 26th 1953. Fidel and a small number of fellow revolutionaries holed up on Siboney Farm outside Santiago de Cuba to plan the assault. Shortly before the operation they gathered about a 100 young people there who didn't really know what they were in for. They just 'wanted to do something'. The actual event was pretty much a failure, just a bunch of students without much military trainging shooting holes in the walls. Afterwards a large number of them were tortured and killed. But their moral position was so strong that the government couldn't execute Fidel, and they put him in jail where he wrote 'History Will Absolve Me' - a brilliant pre-communist revolutionary tract.
Read More
Bollocks R Us
Sunday, 17 October 2004
I love interesting articles about the implications of global collaboration via the Internet, and what effect it will have on working patterns. So when I saw this article The Blacksmith and the Bookkeeper I thought it would be just up my street. But no! It's just a pile of utterly pretentious rubbish. I loved this destruction job on Slashdot.
Read More
KDE to Gnome - we exist!
Friday, 15 October 2004
I've no problem with multiple toolkits on Linux, but I really don't think there is any point in innovating on File Dialogs, or Button Orders. I don't care about whether the Gnome dialogs are better than the KDE ones. That stuff was done 20+ years ago, and anyone who thinks that designing a better File Dialog in 2004 is 'innovative' has lost the plot. So what gets up my nose somewhat is when a Gnome blogger just completely fails to acknowledge that KDE exists.
Read More
Chris Studies Computer Science
Friday, 8 October 2004
Chris Howells talks about how the computer science tutor on his new course made an unpromising start by asking "Has everybody used a computer before?". Finding someone aged under 25 in the UK who hasn't used a computer before must take some doing.
Read More
UK under-graduate syllabsus's
Friday, 8 October 2004
Chris Howells posted a synopsis of his CS syllabus, and it sounded really dull to me. If someone has been making useful contributions to KDE like Chris, what is it that they need to learn from their teachers? ie what about the teacher who asked the question "who has used a computer before?".
Read More
Ruboids Artificial Life
Thursday, 30 September 2004
On today's ruby-talk there was a post by Michal 'hramrach' Suchanek entitled "ruboids (on mac os) - singleton instance() returns nil?". I thought he was refering to the rubyists as 'ruboids', which seemed slightly rude to me.
Read More
Lypanov Announces Rubydium
Tuesday, 28 September 2004
It was a pleasure to work with Alex on QtRuby/Korundum. But I haven't heard much about what he was doing since aKademy. There he talked about how he'd made a start with speeding up the ruby runtime with JIT techniques. I just loved this announcement he made about his latest project on ruby-talk. What a stylish entrance! Go Lypanov, Go!
Read More
More Ruby blocks
Wednesday, 22 September 2004
Michael writes more about ruby blocks:
What I have yet to do, however, is find a way to get braces to work with if, while, or other flow-control type statements. For example, the program yes implemented in Ruby:
Read More
Ruby blocks
Wednesday, 22 September 2004
Michael Pyne is learning ruby.
Call me stubborn, but I am so used to { and } for forming blocks of code that I don't even want to go back to anything else. Python neatly sidesteps the problem by not having keywords for this sort of thing. Although I'm not fond of using indentation for creating blocks, that at least works with my programming style.
Read More
Who needs managers?
Sunday, 19 September 2004
Two of my favourite books about computer programmers are 'The Psychology of Computer Programming' and 'Understanding the Professional Programmer' by Gerald Weinberg. So I was interested to read this short interview with him.
Read More
Is client side Custom Application development dead?
Saturday, 18 September 2004
I recently had this email exchange with my friend Geoff. I don't need to add any further commentary, but I've personally bet the farm on custom application development. Hmm.. He's what we said anyway:
Read More
Instiki instant wiki
Thursday, 2 September 2004
After reading this blog http://www.loudthinking.com/arc/000292.html I thought I'd try out Instiki - it's a simple to set up wiki which can also export to an html website. Recently I've been using KJots to handle 'random notes' and todo lists, but what I really like to have is an outliner like 'Acta' that I used to use on my Mac a few years ago. Acta didn't do anything fancy - it wasn't trying to be a presentation package or a word processor that could also do outlining. But it was dead simple to use, and you could link in MacDraw figures if you needed any sophisticated diagrams.
Read More
Rubyists hit the aKademy - day 2
Wednesday, 25 August 2004
Sunday started off early at 9:00 with Avi Alkaday's talk on the Linux Registry project - he had some very nicely done slides and graphics, and explained it all pretty clearly. IBM had paid for his travel expenses from Brazil, and also lent him a nice lap top so he could hack on it while waiting for airplanes. And thanks to Big Blue for picking up the tab on today's lunch too..
Read More
Rubyists hit the aKademy
Monday, 23 August 2004
I decided to come to aKademy about a week and a half ago, and am so pleased I did.
But travelling there was a disaster; I tried to save 10 UKP by flying with KLM
via Schipol, Amsterdam, rather than direct from Heathrow. Big mistake! The flight to Amsterdam was two hours late, and by the time it finally got there, my connecting flight to Stuttgart had already gone. Then I found out that it was the last one of the day, and I would have to wait for a 9:20 am flight the following morning, getting me into Ludwigsburg about lunchtime.
Read More
KApplication or KDE::Application?
Wednesday, 5 May 2004
There's been some discussion on the kde-core-devel list this week about whether or not the KDE classes should be renamed for KDE 4.0. Should the class KMainWindow become MainWindow inside a KDE:: namespace for instance? Some people preferred it, and others thought it was a bad idea.
Read More
C# override and new inheritance directives
Sunday, 25 April 2004
I've been learning about C# over the past month or two, and mostly I haven't found anything too much to get annoyed about. Maybe I'd prefer it if the method names started with a lower case letter. Some of the classes such as 'ContextBoundObject' have unwieldy confusing names, which makes reading about them harder than it should be. And worse, the C# books don't seem to have any jokes, and when you do something to save time it's in 'order to add business value', hmm exciting. They spell 'Marshaling' instead of 'Marshalling', which looks a bit wrong to me.
Read More
Hiring jugglers
Thursday, 22 April 2004
Here's how I learnt that every programmer should have their own software portfolio from one of my favourite books about professional programmers 'Peopleware' by Tom DeMarco and Timothy Lister.
From HIRING A JUGGLER, Chapter 15 of Peopleware:
Read More
Bafflin' Smoke Signal - History
Monday, 19 April 2004
After a period of obscurity, it seems the KDE kdebindings module's time has almost come. So I thought I'd start a series of Bafflin' Smoke Signal blogs about what's going on, and specifically I'd like to try to explain how Ashley Winter's SMOKE library works. In this first blog, I also include a rant about how dysfunctional HR departments in some large organisations just don't understand FOSS developers.
Read More
I'm really unexcited by dialogue boxes..
Tuesday, 6 April 2004
On http://www.nearwildheaven.com/GNOME/ this article presents the latest and greatest in Gnome GUI improvements.
Do our users love this sort of 'pissing contest' between file save/open dialogs or whatever? Do they prefer to admire the subtle differences between the dialogs in Swing/Gnome/KDE or even Windows file dialog boxes? If I personally had a choice between giving up the KDE dialogs in favour of this new Gnome style to avoid confusing users, do you think I personally give a toss? KDE and Gnome are just toolkit apis, and as soon as they get this sort of nonsense behind them the better in my opinion.
Read More