You are currently browsing the monthly archive for March 2011.
There is another fun and engaging Clojure Coding dojo on Tuesday and is as popular as ever as the event is full. It will be the last dojo before my “Getting started with Clojure” talk at JAX London, so am looking forward to learning some more things I can put into the talk.
Simon Maple and Zoey Slattery are also running the “OSGi: Lets get started” event on Tuesday. This will be a great way to understand OSGi and what it can do to help your Java development and deployment.
Time is running out to contribute to the community testing of the Java SE 7 Developer Preview Release . The latest build is feature complete, stable and ready to roll – so download, test and report bugs before the April 4th deadline. If you submit a bug report before the 4th, the Java product team will sing your praises on the Java SE 7 Honor Role, plus they will send you some Java swag. Bugs reported later on might not get fixed in time for the initial release, so if you want to be a contributor to Java SE 7 do it before the April deadline.
Firefox 4 was officially released last week and has already broken all the browser download records, with twice as many downloads as IE9 in the space of 24 hours. In less than a week there have been around 37,000,000 (37 million) – which you can see if you head over to the neat looking download stats page, a great example of data visualisation and interaction. Its good to see Europe beating North America at something, as we are still ahead in numbers of downloads. Inside of Europe, Gernany is well ahead of everyone else and has more than twice the downloads of the UK.
Full Circle #47 is out and includes more programing in Python, LibreOffice and eBook Reader Software. There is also a special edition: The Perfect Server detailing how to build a an Ubuntu 9.10 server and configure lots of common server services, available in English and Italian. Even though its based on the older Ubuntu 9.10 server, all the steps are pretty much the same for the lasted 10.10 server version.
Cuke Up was a great day of behaviour driven development and acceptance testing with many of the project leaders and influential people speaking or chatting between talks. Highlights of the day for me include:
It was great to hear that Cuke4Duke, the cucumber style acceptance testing framework will be getting a major upgrading to make it simpler to use. Currently it runs via JRuby and a few other libraries, so the plan it to make it more Java like so you can use Cucumber.java. There is also active development in the management of all your scenario files with the development of the Relish tool, a web based tool to manage and navigate through your scenario files. You will also be able to work with your cucumber files via a website, allowing you to edit your scenarios and features, making it very easy for non-technical team members to work with cucumber. To see some of the soundbites of the conference, look at the twitter tag #cukeup
Moodle is an open source collaborative Course Management System (CMS), a web application that anyone can use to create effective online learning sites and training course. Moodle also has many effective modules and assessment techniques for testing that can be used for any subject, so its great for feedback on your level of understanding.
There are a growing number of Universities and other educational organisations that are adopting Moodle as it is easy to use and administer and there are no expensive or restrictive software licenses to deal with.
Packt, sponsor of The London Java Community, has this week announced a series of discounts and promotions to herald the forthcoming publication of the Science Teaching with Moodle 2.0 book in March. Moodle March will offer readers the exclusive discounts of 20% off the cover price of all Moodle print books and readers will be able to buy any 4 Moodle eBooks from Packt at a price of $60 / £38 / €45 for a limited period only.
Moodle is a free Course Management System (CMS), which is a web application that educators can use to create effective online learning sites. Moodle also has many effective modules and assessment techniques for testing that can be used for any subject.
Science Teaching with Moodle 2.0, written by Vincent Lee Stocker, helps readers to create interactive lessons and activities in Moodle to enhance your students’ understanding and enjoyment of science. The book, which is 386 pages long, is packed with lots of practical examples; each chapter takes you through a different aspect of teaching using Moodle.
“Moodle is one of the first topics Packt published books on and we remain committed to offering more interesting books that will help the diverse needs of Moodle users. The set of Moodle books we’ve recently published shows our continued commitment to topic area, and we intend to publish cutting-edge Moodle books for a long time to come”, said Packt’s Open Source publisher Doug Paterson.
For more information on Moodle March and the discounts being offered throughout March, please visit: – https://www.packtpub.com/article/moodle-march
Packt Publishing are a unique publishing company specializing in highly focused books on specific technologies and solutions – please visit their site to find out more about them: http://www.packtpub.com/
Each month we run a promotion with Packt in which LJC members will be selected at random to receive free books. This month we are offering 2 LJC members the chance to win;
First Prize Winner will receive 1 print copy of his/her choice
Runner Up Winner – 1 ecopy of his/her choice
Here are the books on offer this month, the winner will be picked at random and announced at the end of the month:
To take part in the promotion all you have to do is send an email to me at firstname.lastname@example.org with your name, your book choice and the address you would like your book to be sent. Please mark ‘Packt Publishing’ as the subject title.
Please visit the Packt site at www.packtpub.com
Congratulations to the winners of our February draw – Robyn and Carlos!
JRebel maps your project workspace directly to your running application. When a developer makes a change to any class or resource in their IDE the change is immediately reflected in the application, skipping the build and redeploy phases. For further information see their site: http://www.zeroturnaround.com/jrebel
We have two personal licenses of JRebel including their Enterprise Add-on (a combined value of $159 USD) to offer this month.
To take part in the promotion all you have to do is send an email to me at email@example.com with your name and email address. Please mark JRebel as the subject title.
Tonight (Monday 7th) I am running a games night to help people learn and explore kanban, lean and system thinking. I am joined by Karl Scotland who is another experienced practitioner with experience of delivering agile and kanban practices to many organisations. If you are new to kanban and the ideas behind it, then its a great opportunity to learn more in a practical way (no kanban experience required). Many teams are starting to adopt kanban, so its a good time to learn. If you have been using kanban for yourself or you team, then you can share your experience as you play the games and learn some ideas from others.
The LJC are running a Getting Started session on OSGi by Simon Maple (IBM) and Zoe Slatery (IBM) soon and you may want to read the blog post Martijn wrote on OSGi as a warm up.
From Martijn Verberg blog post – As OSGi matures as a technology for application developers and with Jigsaw also coming into the mix around Java 8, now is a good time to learn about modularisation technologies in the Java space.
For those of you who want to practice your test driven development skills, there is a code retreat on 12th March down in Winchester. You will get a full day of TDD coding in a collaborative way and get to share ideas as a group. If anyone wants the LJC to run another code retreat in London then why not suggest it as a meetup event.
If you want to practice your Clojure skills and learn more about functional programming, the March Clojure dojo (29th) is almost full, so sign up soon.
On Monday 14th I am running a workshop on distributed versus centralised version control, comparing git / mercurial / bazaar with subversion. The workshop is mainly aimed at students and graduates, so if you know anyone who would benefit from this workshop, please let them know.
Last week there was a major release of GlassFish Server 3.1. This release extends the Java EE 6 Reference Implementation with new application development capabilities, centralised administration and high availability features. Also including improved OSGi support for Java EE Applications, OSGi web console and Apache Felix 3.0.6 (Apache Gogo shell). Another good feature is that when applications are re-deployed, GlassFish maintains HTTP session and EJB state, enabling rapid iterative development. If you are new to Glassfish, also have a look at the community website.
Last week was also the first release (war) of Jenkins Continuous Integration server, since moving from the Oracle trademarked name Hudson. There has been a flood of developer activity on GitHub and the project is looking very healthy. There are also packages available for Ubuntu and Debian. I’d be really interested in hearing from anyone else who has tried Jenkins CI, especially migrating from Hudson.
JAX London Preview night was a little wobbly, due to the fact we were on a boat on a busy Thames river. I think the wavey nature of the boat added to the ambiance of the evening though. There were two great talks that evening, one on event driven architecture with Comet and the other on lots of new things in spring 3.1 (features just released that day). Everyone that braved the cold had a good evening and we were treated to drinks at the bar by the JAX London team (on Facebook now). I had all the vitamins and minerals I needed for the rest of that week from the Guinness that was bought for me. Thanks everyone.
I had my first book review published on Slashdot.org after a lot of trial and error. The book was on Inkscape, a really great example of open source software which can be used to create all sorts of graphic design work, from simple buttons and logos to complete web site designs. The Slashdot.org submission process is a bit fiddly and not quite so clearly documented as I’d like, so I wrote my own guide. Thanks to Packt Publishing for supplying the Inkscape book.
Lightning talks can act as a springboard to bigger things and the London Java Community could provide an easy way to get involved.
Within the LJC we are always looking at ways to bring on new talent. One way that we have found to do this is through giving our members a chance to give lightning talks. Our standard presentation events now consist of 2-4 lightning talks, followed by the main presentation.
The subject can be anything really – we recommend it is on a subject related to the main topic, but this is not an absolute prerequisite. Generally the people that give the lightning talks will be inexperienced speakers so there is nothing to worry about here, it is a great chance to get some technical public speaking experience under your belt with very little expectation.
Many people have used lightning talks as a springboard to bigger things such as giving longer talks to user groups, getting on the conference speaking circuit or becoming a recognised expert in a given field. Many of the top employers will pay higher salaries or offer more senior positions to candidates with a deeper involvement in the community.
Here are some links that may help:
Great post on nerves when presenting in IT:
Great post on how to prepare Lightning talk specific content:
Best Lightning talks we’ve ever seen –
If you are ever interested in giving a lightning talk just let us know and we will do our best to get you a slot.
Barry Cranford is the founder and one of the organisers of the London Java Community. He is also the Managing Director of Java Recruitment Specialists, ClearView IT Recruitment Solutions Ltd the principle sponsor of the community. Latest jobs can be found here: http://www.recruitersoft.com/online/clearview/jobsearch.aspx
This is post is somewhat cross-posted from my personal blog, but since the post is heavily related to Simon Maple’s upcoming OSGi talk I thought I should drop it in here :). A few nights ago John Stevenson (@jR0cket) and I were fortunate enough to be taken through a explanation of OSGi by some of its key proponents: Neil Barlett (@njbarlett), Zoe Slattery (@zoe_slattery) and Alasdair Nottingham.
I have certainly battled JAR hell and have also experienced problems with keeping web and enterprise applications isolated from each other (manipulating parent delegation and CLASSPATHs anyone?). This has been throughout my Java career (~10 years now), but I had never investigated OSGi properly as an alternative. Why? Because I never spent the time investigating OSGi properly and I was under the strong impression that it was better suited for IDE, App Server and tooling development as opposed to application development.
So after a good couple of hours of discussion I came out with a greater appreciation for OSGi and the following conclusions.
OSGi’s core principles are pretty sound
OSGi is a sound solution for modularity, it clearly breaks the developer away from the artificial JAR model of ‘modularity’ and instead gets you to think about what Java packages you are dependent on. Through some simple metadata information in your manifest file you can specify the packages that you are dependent on (including a version range). For example, your test code may rely on the org.junit.core package within JUnit. Normally you would reference the entire JAR, but with OSGi you can reference just the package org.junit.core, as well as the version range that you want (e.g. 4.7.1 to 4.8.2). That package can then be supplied by any bundle (which still uses the JAR construct) which ‘exports’ it. You can probably already envision that a much smaller bundle can be provided than the default large JUnit JAR file.
OSGi actually encourages you to design better APIs
For those following the various clean code or software craftsmanship movements will appreciate the fact that by utilising OSGi, the developer is actually encouraged to think about splitting their public API into loosely coupled ‘bundles’. The analogy here is that of Maven, which although polarises developers, does encourage them to use a correct build life cycle (clean, compile, test, package, environmentalise). good API developers should certainly look at supporting OSGi in order to help them designed better APIs.
OSGi is relatively easy to get started with
You can start with an existing application and simply provide the OSGi bundle information in the manifest file for that JAR. You will tend to find that a vast majority of the dependencies already have OSGi bundle versions and it is not difficult to swap to an OSGi based build using Maven or Ant. In fact, as OSGi is already a well established technology it probably pays to have an OSGi bundled version of any project artifacts you produce. The tooling is adequate on most major IDEs (especially Eclipse) although the OSGi community would still like to see improvements in this area.
What the OSGi alliance is working on improving
A common/std tool for deploying OSGi applications to runtime environments
OSGi does have a std API for deployments, but this does mean that developers need to implement a deployment mechanism for deploying their apps to runtime environments. Most modern application servers do have OSGi container support, but the deployment mechanism is arguably different each time. This is an area that the OSGi alliance is working on and hopefully some standard tooling around this standard will come out soon. Although it seems like a small usability gap for OSGi, my guess is that this is a real adoption blocker.
Like Java apps in general, OSGi bundles are not Linux/UNIX distro friendly
A major complaint from Linux and UNIX distros over the years has been the fact that Java is not installed according to their packaging standards. Java is also an relatively large installation, which is the source for further criticism. Whilst OSGi certainly helps with the size aspect of Java-based programs, as it is also a late-binding runtime container it does not lend itself to the static, early binding packaging systems that the distros use.
As John pointed out, the existing Iced Tea (OenJDK) project does already produce bundle data that looks a good deal like OSGi bundle data:
Looking into the meta-data of the openjdk-6-jdk package, you can see there is a lot of scope for using OSGi style information.
Maintainer: Ubuntu Developers <firstname.lastname@example.org>
Original-Maintainer: OpenJDK Team <email@example.com>
Provides: java-compiler, java-sdk, java2-sdk, java5-sdk, java6-sdk
Depends: openjdk-6-jre (>= 6b20-1.9-0ubuntu1), libc6 (>= 2.4), libx11-6, zlib1g (>= 1:1.1.4)
Suggests: openjdk-6-demo, openjdk-6-source, visualvm
Conflicts: openjdk-6-jre (<< 6b17~pre3-1), openjdk-6-jre-headless (<< 6b17~pre3-1)
Description: OpenJDK Development Kit (JDK)
However, this does need to be investigated further and perhaps if OSGi and project Jigsaw can interoperate and some tooling is built then I could see bundles being deployed according to distribution standards. This would help Java and OSGi applications gain even more acceptance amongst the Linux/UNIX community. This leas us onto the Jigsaw issue…
The (Potentially) Ugly
Project Jigsaw (Java modularity) is coming as part of JDK 8 and at this stage is not going to work hand-in-hand with OSGi. It is not beyond the realms of possibility that the two will interoperate cleanly in the future and I’m hopeful that the two communities can continue to find common areas despite their fundamentally different approaches.
However, if they do not come together in some simple to use form then it is likely that the Java modularisation space will be fragmented which will only harm the end developer, end user and the Java ecosystem.
You can read more on this topic on a blog post by my co-author for “The Well-Grounded Java Developer” Ben Evans.
The LJC Talk
For mainstream adoption by application developers, probably not _yet_. But I think when the tooling gap is closed and as more application developers release OSGi apps, it might just become a de-facto standard for modularity in Java apps. To find out more, I highly recommend you go to Simon Maple’s presentation. However, there still remains the looming specter of Jigsaw integration/interoperability. There have been signs of the two sides discussing how they can meet in the middle, lets hope that continues.