Blogs
An intriguing use of lambda functions
I’ve been working hard on Goodsie.com lately trying to bring it to launch. It’s been great being in on a new PHP project from (near) the beginning, as it frees up a number of things. One of those, is the fact that I can be using PHP 5.3 and all the new features that come [...]
Accelerando
This is a very unusual blog post for the open source area of my website, since it contains a recommendation for a science fiction book. The reason I've put it here instead of the private section is on the one hand, that it will definitely reach more geek - and therefor probably scifi interested - people here. On the other hand, the book I'm writing about can be found online for free in English language, but the private section is mostly kept in German.I love scifi literature and movies, as most geeks do. But the quality of works in this area varies quite a lot. Beside the style of writing, there is one crucial point, which can make the best novel be a total disaster: Authenticity.First year of Qaiku, and a travel writing challenge
Qaiku, the conversational microblogging service that launched a year ago had a refresh that launched today. While it hasn't yet convinced the twittering masses, it has already proven itself as a lot more thoughtful platform for the Finnish online community, and as a valuable workstreaming tool.The new version looks quite nice and fresh. Notice the privacy information on the right-hand side, which is relevant as Qaiku allows channels and profiles that are private or invitation-only:

Technically the new version is also remarkable as it is the first major website to run fully on top of the legacy-free Midgard2 platform. So yes, every entry you see there is a GObject. And D-Bus signals fly when you post.
On to the challenge, then
To highlight Qaiku's threading, conversational nature I started a new "On my travels, I have" thread for sharing your most extraordinary travel experiences. This is not on Twitter or Buzz as with Qaiku it is so easy to keep the conversation together and accessible for the future as well.
To contribute, sign up on Qaiku, go to the thread and add your experiences as a comment. If you have a link or picture to include, you can also do so. My first entry was:
seen ice descend from the heavens and provide us with cold beer on a hot day in Lesotho
Will be interesting to see what comes out of this :-)
Getting started with the Midgard content repository
Neural Networks in PHP
By Louis StowasserNeural networks allow emulating the behavior of a brain in software applications. Neural Networks have always had a too steep learning curve to venture towards, especially in a Web environment.
Neural Mesh is an open source, pure PHP code based Neural Network manager and framework that makes it easier to work with Neural Networks.
This article explains how to easily implement Neural Mesh to develop Neural Network applications in PHP.CMS Watch on their Midgard usage
Which CMS does The Real Story Group Use? (Tony Byrne / CMS Watch):
The answer is, we use an open-source platform called "Midgard." We picked it nearly ten years ago, and it has held up fairly well.
...
One of the things we like about Midgard actually makes it rather unsuitable for many simpler publishing scenarios: it is highly object-oriented. This allows us to run multiple sites off largely a single codebase -- at the cost of quite user-unfriendly administrative and authoring facilities.
Also, Midgard is very much a development platform, and we have had to create a fair amount of custom code, especially to handle structured content. In that regard, our CMS experience probably resemble yours. As an industry we remain very far from plug-and-play content management technology for all but the simplest of websites.While the post contains many negative points about older Midgard (the UIs are a bit better now than they used to be, quite a lot of development has since been happening especially in the LTS branch), it is remarkable that CMS Watch has been able to run their services through the same CMS setup for ten years. This really shows the durability and commitment to long-term stability we have in the Midgard community. We've been doing this for more than ten years, and will likely keep going for quite a bit longer.
As for usability and popularity of Midgard, there is quite little we can do about it in the Midgard1 area, as that is now in long-term support phase that won't allow major changes. But Midgard2 is a new world with new opportunities. Midgard's content repository is pretty much there already, as is the MVC layer, and this spring we should be able to unveil the new, quite revolutionary CMS concept as well. Watch this blog for updates!
Upgrades In Open Source
PHP 5.3 has been out now for eight months, and in that time lots of projects have made decisions to begin developing against this version of PHP. Juozas Kaziukenas makes the argument that you shouldn’t be afraid of PHP 5.3 and he provides a number of excellent points to support his argument. I don’t dispute [...]Seed doc updates, and Gio async directory listing
The documentation for seed gobject introspection is improving continually, I now have a jhbuild virtual machine, which is picking up the latest versions from git.In addition many of the documentation details have been expanded, including- Interfaces, Enums
- callback methods are now documented
- More libraries have been added.
- More doc comments can be picked up
With better documentation it's finally possible to figure out how to use the API. A classic example of this was a small problem I tried to solve before the API documentation was available. Listing a directory asynchronously, It took me over an hour to get close to figuring out how to do this, I eventually had to give up. as digging through the source, C reference and GIR files took so long.However within 5 minutes with the documentation, I was able to write a small script to do this.Gio = imports.gi.Gio; Gtk = imports.gi.Gtk; var f = Gio.file_new_for_path('/home/'); f.enumerate_children_async ( "*", Gio.FileQueryInfoFlags.NONE, GLib.PRIORITY_DEFAULT, null, function(o,ar) { // listing completed.. var fe = f.enumerate_children_finish(ar);
var ch = false;
while (ch = fe.next_file(null)) { Seed.print(ch.get_name()); } Seed.quit(); }, null); Gtk.main();My NAS - QNAP TS 119 Turbo NAS
Few weeks ago I got new hardware for my home network, a QNAP TS 119 Turbo NAS.
PHP London Conference: In Review
I'm really late with this post, but I wanted to write about the PHP London Conference which was held in London last Friday. The event was in a great venue and had hoards of people - this was my fourth year in attendance!! They do, however, have the longest twitter tag in history #phpuk2010!
This year I had the privilege of speaking at this event, although I was concerned that I had to stay coherent and alert right through to the graveyard slot at 4:30pm (conference organisers take note: I really am much sparklier in the mornings!). I kept myself awake by attending what I affectionately refer to as the "Ibuildings track" - with 4 speakers at the event, it did feel like a bit of an invasion by myself and my colleagues. In our defence I can only say that we are a pretty big local PHP employer and, as a developer, I'm happy to be working for someone who sends all their developers to these events, and even happier to be in the company of those other excellent speakers as colleagues!
My talk was entitled "Best Practices in Web Service Design" although perhaps "Things I Wish Web Service Creators Would Consider Before Writing Unclear and Unstable Useless And Frustrating Services" would have been a better title! I talked about web services in general, a bit about HTTP and the various service types, and also gave some general tips and tricks for writing good, stable services. In a bit of a break with geeky tradition, I then talked about services as a whole package, and how to deliver and document them in a way that helps users help themselves. If you are interested the slides are here:
http://www.slideshare.net/lornajane/best-practices-in-web-service-design
The experience was overall very positive for me, I haven't spoken at this conference before and I was very pleased to be included. My talk went quite smoothly, with my nerves nicely hidden away (I've had issues with this lately), and I also avoided falling over either the curtain or the piece of screen that was carefully placed to trip unwary speakers! I'd like to thank everyone who came and asked questions afterwards, and all those who saw my talk and left comments for me on my joind.in talk page - it all helps me to do better next time, thanks and I'll see you all next year!

