Wed, 18 Nov 2009

ACCU 2010 will be a Fun Conference

The organizers of ACCU 2010 asked me to be a keynote presenter and I accepted. I guess I'll have to do a presentation on parallel and distributed systems given their run up!

Mon, 16 Nov 2009

Will laptop manufacturers ever return to putting good quality sound systems in laptops?

I have a Sony Viao PCG SRX51P/B. It is old, about 8 years – which in computing terms is ancient. It is small and light; a netbook before netbooks, yet it is perfectly good working as a notebook/laptop. OK, it only has 384MB of memory which is a serious problem these days where 1GB seems to be the minimum requirement. However despite this it still works quite usefully.

Most importantly for this post, it has what is reported as a “Yamaha YMF753” sound system which not only provides sound and balance controls, it also has tone controls and a 3D processor. The speakers are a bit small, but through earpieces/headphones, the sound is really quite good.

I recently purchased a Lenovo ThinkPad T500 as a portable workstation (1680×1050 version). It's less than 6 months old, and so at least reasonably new. It has a serious dual-core processor running at a very healthy speed. As a tool for programming, presenting training courses, processing email, VOIP, etc., it is superb. The sound system though is pathetic. Actually it's appalling. It reports itself as a “Conexant CX20561 (Hermosa)”, it provides volume and balance and absolutely nothing else. The sound is tinny and, well, totally rubbish.

The T500 is supposed to be a top-end laptop, so why put a really crap sound system in it? Will things change or will the quality of sound system just get worse and worse even in top-end laptops?

Fri, 13 Nov 2009

Jaunty -> Karmic upgrade

I took the plunge earlier this week and started the upgrade of my Ubuntu machines from Jaunty to Karmic. I have five machines running Ubuntu to process: two laptops, a modern twin quad-core workstation, and old Pentium 4 workstation, and my (really very old) server (Pentium 3, but new SATA controller and discs). I haven't started the quad-core workstation yet, I am trying to decide whether to upgrade or install from scratch.

The two laptops were the first to change, the upgrades seemed to go reasonably on both. The Lenovo ThinkPad T500 seems to have upgraded fine. The problem of the machine failing to start Compiz on login remains. This is really infuriating and the Ubuntu people seem to not care. The Sony PCG SRC51P/B upgrade has been disastrous, Bluetooth and WiFi now fail to work ever. Overall not good. Also the sound control/mixer that was standard on Jaunty and entirely fine has been replaced in Karmic by something completely inadequate. gnome-alsamixer is also severely inadequate. So if you want to control your sound system then it looks like “use another distribution, not Ubuntu” is the best choice.

The disc structure on the Pentium 4 workstation was not up to an upgrade – didn't have 3.8GB of free disc on the root partition. So I had to do a fresh install so I could repartition the disc. The install went fine. Compiz still fails to start on login and the sound control/mixer is totally inadequate, but I already mentioned those issues early. Did I mention how infuriating this problem is and how even more infuriating it is that the Ubuntu support does nothing about it. On the up side Emacs 23 is way, way better than Emacs 22.

Upgrading the server seemed to go fine. There is no longer a distinction between workstation Linux kernel and server Linux kernel but then who cares as long as it works. The real problem was that /etc/resolv.conf failed to get set up which caused many a bizarre problem. Once found though, it was easily cured and the server seems to be operating fine.

Now the real gripe: Launchpad appears to refuse to accept any bug reports against Ubuntu. I can post new bug reports using Launchpad for all the other projects and packages I want to but not for Ubuntu. Hopefully this is not a hidden censoring of anti-Karmic facts.

Wed, 04 Nov 2009

PhD Examining in Bergen, Norway

Yesterday saw the completion of my role as "First Opponent" in the PhD examination of Anya Helene Bagge. Don Sannella was the "Second Opponent". Whilst there was an element of examination, it was really more a public spectacle – this is the first time I have been an external examiner for a non-UK PhD, so the system was entirely new to me. There will no doubt be pictures on the Web somewhere soon – there were certainly lots people taking lots of photos.

It is an open question is whether the idea of strongly typed parameters to C++ templates (aka concepts) are a good or bad thing pragmatically in trying to keep C++ as a main programming language for highly parallel, HPC, numeric applications, or whether it is time to ditch Fortran and C++ in favour of languages more suited to a truly parallel view of algorithm. There is a workshop here in Bergen tomorrow to pick away at this problem.

Anyway, congratulation to Anya for passing, and hopefully she has fun continuing work on Magnolia.

Tue, 13 Oct 2009

Gant 1.8.1 Released

Groovy released 1.7-beta-2 and Ivy released 2.1.0 and it seemed the easiest way of dealing with this for Gant was to release a new point release. So Gant 1.8.1 has been released. Details of downloads can be found here.

Wed, 07 Oct 2009

GPars is Groovy Parallelism

I have been interested in parallel processing for over 20 years. Starting in the mid-1980s at UCL heading the research programme that developed the Solve programming language -- this was an object-oriented, parallel programming language with transactional state. It was a few years ahead of its time, but the funding ran out. Sadly there is no online material as yet for this.

I then ran the UC++ project to bring active objects to C++. This evolved into KC++ – there may be lots of broken links on these very old, archived webpages. All this contributed to various efforts at London Parallel Application Centre (LPAC) which looked at developing a European-wide standard for a parallel C++ language via the Europa project.

Since then of course OpenMP and MPI have become the de facto, possible de jure, standards for parallel programming using Fortran, C and C++. The Java Platform went a different route.

The Java Platform has had threads since its very inception. However shared memory multi-threading is a tar pit of confusion and problems. Synchronization of shared memory is the problem, and people are not very good at it. Of course we have had models of parallel processing such as Actor Model and CSP for decades. What we are now seeing is a resurgence of these models as it becomes clear that shared-memory multithreading is not a viable programming model for applications programming. Erlang has had what is effectively the Actor Model for years. Scala has also taken this up. Clojure is going this route. What about Java? Nothing :-( Doug Lea's java.util.concurrent is a huge benefit. Futures are the future if you have to use threads.

The JVM seems to be the really active platform for applications programming, and Groovy is a great language that works symbiotically with Java. It has potential for being a great coordination language for parallel computations. Groovy can provide domain specific languages for describing parallel computations, raising the level of abstraction at which the programmer works.

I had said many months ago that I would coordinate an effort to move this forward. Meanwhile Václav Pech acted. He started the GParallelizer project. Recently we have all clubbed together to take this as a basis for a strategic push. GParallelizer has become GPars and is now a fully recognized Codehaus project.

Anyone interested in parallelism using the JVM should be interested in GPars. Go check it out. Join in.

Sat, 03 Oct 2009

Gant 1.8.0 Released

With Groovy 1.6.5 being released, it seemed time to release Gant 1.8.0, so it happened :-)

The main thing about this release of Gant is the new pre- and post-target hooks, see http://gant.codehaus.org/Per-Target+Hooks. There are also a some bug fixes. And of course it uses Groovy 1.6.5.

Pre-packaged versions are documented at http://gant.codehaus.org/Prepackaged+Distributions.

Tue, 29 Sep 2009

Groovy & Grails eXchange 2009

I will be doing a talk on Gant at Groovy & Grails eXchange 2009, which is being held 2009-12-09 and 2009-12-10 in London. Not so much a "using Gant" talk, though there will be some of that, more a look at some of the Groovy techniques used for making this Ant task scripting DSL (domain specific language), and why Gant got used in Grails.

Wed, 23 Sep 2009

BCS Rebranded

It seems that the BCS has undergone a rebranding. Sadly rebranding generally cost a lot of money (that could be better spent elsewhere, e.g. on member services), and usually achieves precious little.

Where the BCS brand used to be very blue, it has now gone very green &ndash I wonder why in this day and age of (often pretentious) concern for the environment?

The real question though is why rebrand, what was wrong with the old one? The BCS has a history of its academic members feeling the organization is too focused on commercial interests, and the industrial and commercial members feeling the organization is too focused on academic interests. In reality, neither was true: the BCS was the chartered body in charge of IT in the UK, but the IET (Institution of Engineering and Technology) has more finance and power, and the Information Technologists' Company more panache – though I still think calling it the Worshipful Company of Information Technologists' had even more. Perhaps though a BCS rebrand can be linked to a reenergizing of the whole organization, including its membership.

A serious problem is that membership of the BCS is not an issue of relevance to employers, this means it is not an issue of relevance to employees. Employers never seem to ask about membership of the BCS when employing staff, and until they do people seeking jobs have no real incentive to join the BCS. The BCS may be the “Chartered Institute for IT” but until IT is a profession as accountancy, architecture or medicine are then the fact that there is a“Chartered Institute for IT” will not be of relevance to people practicing in the field.

Is this in fact the beginning of a long distance campaign to introduce statutory controls on the profession of software development? Many would say“and about time too” whilst many others would say“and that will kill off all innovation”. Certainly introducing more engineering approach to software development would be a good thing, but software engineering is uniquely different to all the other forms of engineering because the stuff being manipualted has no substance, it is just information without physicality.

Most people who do software engineering have no real relationship with the BCS. People in embedded systems tend to associate with IET, possibly because of the electronics and safety critical systems connections. People who consider themselves software engineers but not in embedded systems rarely associate with the BCS, and instead associate with “clubs” such as ACCU. Indeed many of these people, who the BCS really ought to value as members, see no connection at all between themselves and the BCS. And few of them see the new brand as changing anything.

So just what does IT mean to the BCS? Sadly the newly branded doesn't actually say. As we know as far as the national curriculum goes, IT means “how to use office automation software” (basically ECDL type material). Here lies the real problem: IT means too many things, and different things to different people. If the BCS is really going to grow in size to have all software developers as members then it is going to have to do something more than just a surface rebranding, it is going to have to appeal to the software professionals who currently think it is irrelevant to their lives.

Fri, 11 Sep 2009

A turn up for the books

Is it possible the UK government's e-petitions system can actually have some benefit? After 30,000+ people signed the e-petition about the treatment in the 1950s of Alan Turing, one of the world's greatest mathematicians and computer scientists, leading directly to his suicide, Gordon Brown made this statement. Number 10 even made it the top story on the opening page (at least on 2009-09-11).

Of course the question is will Number 10 now re-think their rather poor answer to the e-petition about Bletchley Park, which is where Alan Turing undertook all his code breaking work during World War 2. (20,000+ people signed this e-petition.)

Thu, 13 Aug 2009

UKUUG Summer 2009 Conference

I gave a presentation Shared Memory Multithreading is the Wrong Way to do Parallelism at UKUUG Summer 2009 Conference. It went well – after the 45 min talk, the questions went on for 30 min and this was after the end of the day! Of course questioning whether Unix and Linux (and the other operating system) can survive the next phase of the Multicore Revolution at a Unix user group conference could be seen as a bit contentious, but it was all done in a constructive spirit. Many of the people at the session caught up with me the following day to say how much they enjoyed the session, and how it was making them think about the next generation of applications and operating systems.

I also rehashed my SCons the Builder from EuroPython 2009 to create a 5 min lightning talk advertising SCons as the future of build. I entitled the session If you are using Make, you are doing it wrong.

Sun, 02 Aug 2009

Gant 1.7.0 released

With the formal release of Groovy 1.6.4, it seemed time for there to be a Gant release. Since there were lots of new goodies, it seemed appropriate to release 1.7.0 rather than 1.6.2.

Gant 1.7.0 is in the Codehaus Maven repository groupId:org.codehaus.gant, version:1.7.0, but remember three different artefactIds, gant_groovy1.5, gant_groovy1.6, and gant_groovy1.7 – you have to use a version of Gant that matches the version of Groovy you are using.

Distributions of Gant are in the usual place accessible from the Gant home page.

Sat, 11 Jul 2009

UKUUG Summer Conference 2009

I am going to be doing a talk at UKUUG Summer Conference 2009, which is being held 2009-08-08 to 2009-08-09 at Birmingham Conservatoire. Content of the talk will be parallelism, how to do it, and how not to do it. I gave the talk the title Shared-memory Multithreading Is The Wrong Way To Do Parallelism – nothing like being a bit contentious.

The conference website is at http://summer2009.ukuug.org.uk

Thu, 02 Jul 2009

EuroPython 2009

Both my presentations at EuroPython 2009 went well. At least I think so. I have uploaded the slides: GIL isn't Evil, and SCons the Builder

Tue, 19 May 2009

Looking forward to EuroPython

My two proposals for presentations got accepted for EuroPython:

EuroPython 2009 is being held from 28th June to 4th July 2009 in Birmingham, United Kingdom.

The currently accepted talk abstracts are now up at http://www.europython.eu/talks/talk_abstracts/

The booking form is here http://www.europython.eu/registration/

The early bird rate closes on Thursday May 21st.

Sat, 16 May 2009

New Laptop

It has been time for a while now that I got a new laptop or two (I always take two laptops with me when I go to client sites or conferences, so as to avoid embarassment if one fails to work). Until now I have always had two Ubuntu laptops. I decided that now was the time to go heterogeneous, so I got a second-hand white MacBook running Mac OS X Leopard to act as my number 2 machine. I really like MacBook hardware, it looks beautiful and the keyboards are superb to use. However I still prefer Ubuntu over Mac OS X.

For my number 1 machine I decided to get a high-performance laptop with a high-resolution screen. Having looked far and wide, including at Dell who claim to sell high-performance Ubuntu machines in the UK but actually they don't, and indeed at various US companies claiming to import Ubuntu machines to the UK, I settled on Linux Emporium as the supplier, and the Lenovo T500 with Ubuntu 9.04 pre-installed as the machine.

Order placed Tuesday morning, laptop arrived Friday morning, exactly as predicted by the folk at Linux Emporium. Having spent a day personalizing and integrating it into my set-up, I really like it. Thanks to John and the others at Linux Emporium for getting exactly the machine I needed to me in the time I needed it.

Fri, 08 May 2009

Groovy Presentation

On 2009-04-14, I gave a talk to the London Java Community introducing Groovy. Skills Matter videod the event. The LJC page for the event has various photos and bits of feedback about the session. The session was mostly an interactive session using code snippets, what few slides there were can be found by clicking here.

Thu, 30 Apr 2009

Ubuntu 9.04 Jaunty Jackalope upgrade from 8.10 Intrepid Ibex is a bit of a disaster

I have been using Ubuntu for a number of years now and stuck with it even when all my colleagues and associates abandoned it for Debian (testing or unstable rather than stable) or they bought Apple Mac OS X equipment. The Intrepid -> Jaunty upgrade has however seriously dented my confidence, and I am now thinking seriously about whether running Debian Squeeze would be a better way forward for me.

Problem 1: I upgraded my laptop which used to work fine under Intrpeid, and now under Jaunty, after a random period of time under random circumstances, it completely siezes up. The mouse pointer moves but no amount of clicking or keyboard tapping has any effect whatsoever. Reboot the machine and it is all fine again – for a while.

Problem 2: I upgraded my server and my RAID1 disc failed to be present on reboot. Fortunately this is data only, the system is on a separate non-RAID disc so boot was no problem other than fsck returning an error code so boot has to be continued manually. Very fortunately the fix reported in a bug report on Launchapd saved the day.

Do I ditch Ubuntu and switch to Debian or just suffer the 6-monthly update pains rather than risk the continuous pain of a continuously updated system such as Debian Unstable?

Fri, 13 Mar 2009

A Look at Parallel Programming in Various Languages

I will be doing a session covering parallel programming in various common and not-so-common programming languages at the ACCU 2009 conference. This is currently scheduled as a 180min session starting 2009-04-24 14:00 (Processors Processors Everywhere, But How Do I Actually Use Them).

If you are a programmer/software engineer/software designer/<choose your favourite label>, the ACCU conferences are always worth going to (even if you don't go to my session).

I am giving a (sort of) preview (entitled "Fortran is not the only language for parallel computing") of some of the material for the ACCU 2009 conference sesion at 2009-03-25 20:00 to the Oxford sub-group of ACCU, see here

Wed, 11 Mar 2009

An Introduction to Groovy

I will be doing a session introducing Groovy on 2009-04-14 for the London Java Community. The session will be held at Skills Matter. The event is a free one but requires pre-registration

In keeping with Groovy being the dynamic symbiote of Java (and Scala), the session will be completely dynamically bound – i.e. no script, no boring, pre-prepared slide show.

Fri, 20 Feb 2009

Gant 1.6.1 released: Groovy 1.6.0 is harnessed

With the formal release of Groovy 1.6.0, it seemed obvious that there needed to be a build of Gant explictly compiled against it rather than a release candidate. Rather than muck around with repositories to get new builds of Gant 1.6.0 in place, it seemed easier and more straightforward, simply to create a new release of Gant – and those asked about this agreed.

So this release of Gant has no amendments, and no bug fixes. It is made just to ensure there is a version of Gant out there compiled against Groovy 1.6.0.

Gant 1.6.1 is in the Codehaus Maven repository groupId:org.codehaus.gant, version:1.6.1, but remember three different artefactIds, gant_groovy1.5, gant_groovy1.6, and gant_groovy1.7 – you have to use a version of Gant that matches the version of Groovy.

Distributions of Gant are in the usual place accessible from the Gant home page.

Sat, 24 Jan 2009

Gant 1.6.0 has been released.

This is really a single change release – Gant now supports build listeners, thanks to Graeme Rocher – but there are a couple of minor bug fixes as well. The main version of Groovy used is 1.6-RC-2, though there are version for 1.5.7 and Trunk as of yesterday (labelled 1.7-beta-1). Also Gant now uses Ivy 2.0.0 and not a release candidate!

This is the version of Gant that will be used in Grails 1.1 -- unless some bugs are found in the next few days, in which case it a Gant 1.6.1 will appear :-)

Gant can be found at http://gant.codehaus.org.

Thu, 27 Nov 2008

SC08 – A Trip to Austin, TX

At Concertant LLP we deal with all things multicore, concurrent and mainly parallel. It seemed sensible therefore to go to SC08 (used to be called Supercomputing) to find out what the very top performance niche of computing was up to. It gave us a chance to interview people from Intel, AMD, Sun, HP, IBM, Microsoft, etc., etc. to see what would be happening in supercomputing soon – what happens in supercomputing now is what happens for the wider world two or three years later.

The three of us who went wrote a number of short artcles whilst we were there. The whole collection can be found here. If you want a list of the one I wrote that can be found here.

Mon, 15 Sep 2008

Continuing the move from Subversion

Along with many, many others, I have come to the end of my tether with Subversion. The only thing that can try and save it is if every computer is always connected to the Internet always with a high bandwidth connection. Even then the big problem is having a .svn directory in every directory. OK, this is essential to the "directory as checkoutable item" architecture on the server but it is horrible to work with locally.

For many months now I have been using Bazaar and Git as my Subversion clients, i.e. I don't use Subversion to work with Subversion repositories, I am using a Git repository or a Bazaar branch instead. I am all a-dither as to which of these two is best &ndash the Bazaar command set is somewhat easier to work with, the Bazaar GUI tools work a lot better on Gnome, but Git is a lot faster.

I probably won't come to a final decision as to which to plump for until the next generation of version control system appears. This means I can't say which of the two I am going to move Gant to, so in the interim I am keeping all three. Until Codehaus decide which of Git, Mercurial or Bazaar they are going to support, I am maintaining a Bazaar branch on Launchpad, and a Git repository on GitHub as well as continuing to have the Subversion repository at Codehaus.

Wed, 10 Sep 2008

Analysis and Articles for Concertant LLP

It just struck me (OK it should have done so ages ago) that I have been failing to put on this webpage information about articles I am writing. The material gets written for and published by Concertant LLP and appears at IT Analysis (http://www.it-analysis.com/) and IT Director (http://www.it-director.com/).

My latest piece is "Is Dataflow the New Black?"

Not all the articles on this Concertant LLP page are by me but a number of them are. I guess I should create a list and put it somewhere on this site.

Tue, 22 Jul 2008

A Gant Event

I will be doing an "In the Brain" session on Gant (The Groovy way of scripting Ant tasks) on Thursday 2008-08-21 18:30. This will happen at Skills Matter, 1 Seckford Street, London EC1R 0BE, UK. The Skills Matter announcement is here.

As part of this session I am going to undertake "The Gant Challenge". The idea is for people to bring small examples of Ant (or other) builds that really irritate them so we can create the Gant version live and show that Gant can do the business where Ant often cannot.

If you are in the area then, feel free to drop by -- though you need to register beforehand so some forethought is needed. This is planned as a 90min session after which things move to a local hostelry.

Sun, 13 Jul 2008

Gant 1.4.0 is Released

There are a lot of internal changes removing assumptions, correcting bugs etc. There are also a couple of changes that mean that tools and target sets have a different initialization, effectively an API change. Also the deprecated task closure has actually been removed. All the details are to be found in the release notes.

As ever distributions are available at http://dist.codehaus.org/gant. For those who use Maven 2, the repository URL is http://repository.codehaus.org, the groupId is org.codehaus.gant, the artifactId is gant , and the version is 1.4.0.

The Gant webpage has the documentation.

Thu, 22 May 2008

Gant 1.3.0 is Released

An increasing number of people have been saying that having Gant install into an existing Groovy installation is not a good idea. Instead, they were asking, Gant should exist in a directory tree of its own and use the GROOVY_HOME environment variable to refer to the Groovy installation. This seemed like a good idea, so this has been done. Hence this release. Apart from a couple of very trivial bug fixes 1.3.0 is 1.2.0 but restructured.

There is the added advantage of course that with the new organization it became essentially trivial to construct a standalone version of Gant that does not require a prior Groovy installation – this distribution has a Groovy jar and various other (transitive dependency) jars included. So there are now three distributions:

As ever distributions are available at http://dist.codehaus.org/gant. For those who use Maven 2, the repository URL is http://repository.codehaus.org, the groupId is org.codehaus.gant, the artifactId is gant , and the version is 1.3.0.

The Gant webpage has the documentation.

Tue, 29 Apr 2008

Gant 1.2.0 is Released

Groovy released version 1.5.6, so making a Gant release was something to think about. People had been using 1.2.0-SNAPSHOT for a while and there appear to be no problems. All in all it seemed right to shift from 1.1.x to 1.2.x -- there are some breaking changes as well as lots of new goodies and some important bug fixes.

As ever distributions are available at http://dist.codehaus.org/gant. For those who use Maven 2, the repository URL is http://repository.codehaus.org, the groupId is org.codehaus.gant, the artifactId is gant , and the version is 1.2.0.

The Gant webpage has the documentation.

Mon, 07 Apr 2008

ACCU 2008

Another great ACCU conference, but a very busy one for me, I gave two solo sessions and joint session with Jim Hague. Also I was on the closing panel with Tom Gilb, Jim Coplien, Peter Somerlad and Hubert Matthews, run by Giovanni Asproni. For proof that I was there, see Anna-Jayne Metcalfe's photo of the event -- OK she caught me at a bad moment, so whilst it is a horrible shot of me at least it proves I was there!

The PDF files are all held on the Concertant LLP website.

Sun, 06 Apr 2008

UKUUG Spring 2008

John Pinner asked if I would revamp and present at UKUUG Spring 2008 one of the talks I did at PyCon UK 2007. The talk is entitled "The Great Languages Debate" but it isn't really a debate. It is a small tour through a few comparative programming language examples. The main aim is to show that dynamic programming languages are the languages of applications development. Also whilst functional programming languages may not be mainstream, the techniques and idioms are very important -- so much so that many of them are introduced into mainstream languages.

A PDF of the slides for the talk can be found on the Concertant LLP website.

The UKUUG Spring 2008 conference was very enjoyable, and everyone there entered into the right spirit of competition between Python and Perl. I was not lynched for stating categorically that Perl is an "execute only" programming language.

Thu, 06 Mar 2008

Gant 1.1.1 is Released

Not only are we now up to Groovy 1.5.4, there were a number of fixes and additions in the Gant code base, so it seemed appropriate to make a new release -- which actually happened last night. Highlights of the release are:

As ever distributions are available at http://dist.codehaus.org/gant. For those who use Maven 2, the repository URL is http://snapshots.repository.codehaus.org, the groupId is org.codehaus.gant, the artifactId is gant , and the version is 1.1.1.

The Gant webpage has the documentation.

Fri, 22 Feb 2008

I got Interviewed

Andres Almiray email interviewed me for GroovyZone, which is a zone on DZone.

Click here to go to that page.

Thu, 31 Jan 2008

Gant 1.1.0 is Released

Groovy 1.5.2 was released, and so, as announced, Gant 1.1.0 was released -- it all happened last Tuesday, I have only just got round to writing about it. As noted in the pre-announcement, distributions are available at http://dist.codehaus.org/gant. For those who use Maven 2, the repository URL is http://snapshots.repository.codehaus.org, the groupId is org.codehaus.gant, the artifactId is gant , and the version is 1.1.0.

The Gant webpage, has the documentation.

Gant: the freedom of using all the Ant tasks with a dynamic programming language (Groovy) and no XML in sight :-)

Sat, 26 Jan 2008

Gant 1.1.0 About to be Released

It seems I failed to write a note here when Gant 1.0.0 and later 1.0.2 were released. How very remiss of me. What is worse, I failed to write a note when Gant was turned into a project in its own right at Codehaus. Clearly I need to get better at doing these notes.

Groovy 1.5.2 is soon to be released. To stay in synchrony with the Groovy releases, Gant 1.1.0 is being prepared for release. Snapshots compiled against Groovy 1.5.2-SNAPSHOT are available as a release candidate. Distributions are available at http://dist.codehaus.org/gant. For those who use Maven 2, the URL is http://snapshots.repository.codehaus.org, the groupId is org.codehaus.gant, the artifactId is gant , and the version is 1.1.0-SNAPSHOT.

The Gant webpage, has the documentation.

If you give this version a whirl, that would be great. Do let me know if there are problems, or better still (of course) let me know if it works without problems out-of-the-box :-)

Highlights of the new release:

There are also a few fixes. The addition of the Gant Ant Task has meant that it is not straightforward to compile Gant with Groovy 1.0. After consulting with Groovy users on the mailing list it was agreed that this was not a problem. So for the moment, Groovy 1.0 is not supported, only Groovy 1.5.x. This can be fixed though if it needs to be.

Thu, 24 Jan 2008

Python for Rookies

PfR Book Cover

I have been more and more coming to believe that Java is no longer the right programming language for teaching people programming. Java has to be learnt, it is after all one the most important programming languages of the moment. However, I now believe that dynamic programming languages, in particular Python and Groovy, are better languages for the first introduction to programming. Following this you can introduce type, compilation, design patterns and all the good software engineering material as second courses on programming using languages like Java and C++. Of course, everyone interested in programming should also learn languages like Haskell, Erlang, Prolog, but that issue is for another time.

I started thinking about Python as a first programming language for university courses back in 2003. The idea bubbled as a publishing project but didn't really take off until 2005. I was introduced to Sarah Mount and James Shuttleworth (then both at Coventry University, Sarah has now moved to University of Wolverhampton) who were using Python to teach their introductory courses to physicists, economists, art and design students, as well as computer science students. We immediately waded into taking all our material and forming it into a book. The result is Python for Rookies published by Thomson Learning (now called Cengage Learning). This should be in the bookshops next week.

Buy this book, you know you want to :-)

PS It is true that Graham Roberts and I authored the book Developing Java Software as a first programming course using Java (and we'd like you to buy that as well :-). We are however in the process of writing a book using Groovy instead. More on this at a later date.

PPS The Python for Rookies website has only just been started so it doesn't have much on it yet. Over the next few weeks more and more material will be added.

Wed, 24 Oct 2007

Talk at Grails eXchange

groovy, grails, java ee, grails exchange Last week was the Grails eXchange 2007 conference, which was great fun. It was really nice to meet face-to-face many of the people that are active in the Groovy and Grails community that I had only ever “met” by email on the mail lists. I gave a talk on Gant. A PDF of the slide can be found here from the Concertant LLP presentations page.

Talk at ACCU Cambridge

Many moons ago Ric Parkin asked if I would do a talk on dynamic languages to the Cambridge sub-group of ACCU. Given an opportunity to plug Groovy and Gant, I immediately said yes. The talk was on 2007-10-04 but I failed to put this note up till now. A PDF of the slide can be found here from the Concertant LLP presentations page.

Sat, 22 Sep 2007

Gant 0.3.2 Released

To stay in synchrony with the Groovy releases, Gant 0.3.2 has been released to coincide with the release of Groovy 1.1-beta-3. There are only a few minor bug fixes over 0.3.1 but they are worth releasing.

The new distributions are available from the Gant webpage, there is a build for Groovy 1.0, and a build against Groovy 1.1-beta-3, as well as the source tar and zip files.

Tue, 11 Sep 2007

PyCon UK 2007

PyCon UK 2007 was great. The talks were good, and all the delegates I met were both knowledgeable and sociable. Definitely a conference to prepare to attend next year!

Both the presentations I proposed got accepted, which was exciting for me, since I got to speak on two topics I find really interesting: programming languages comparisons, and build systems (a comparison!) – the links are to the PDF files of the slides held on the Concertant LLP presentations page. The conclusions of the first presentation were that dynamic languages (Python, Ruby and Groovy) are much better than static languages like C++ and Java for building applications, and Python is just great. The second talk concluded that Gant is great but that SCons is also extremely good – dynamic languages and DSLs rock for build systems, and SCons (written in Python) is well ahead of the field.

LugRadio recorded most of the talks from the conference, it will be interesting to see what the result is.