You are currently browsing the monthly archive for April 2011.
Due to the extra bank holiday to celebrate the release of Ubuntu (and that little wedding), the Clojure dojo has been moved to the 3rd of May at Thoughtworks. So no Clojure dojo on the three days short week. I am really enjoy learning clojure as the syntax is very straight forward, has some nice abstractions for data structures and has pure functions by default (although you can change state using transactional memory for atomic changes). Sign up on eventwax for some Clojure and quiche.
The London Software Craftsmanship are running another round table on May 11th at YouDevise. Last month was a very heady mix of topics, from dynamic languages, cloud developer services and tools, to avoiding navel gazing in software craftsmanship and actually tell people clearly what its all about. If you want to talk about your issues or challenges, bring them to the round-table meeting and get lots of ideas and options from a diverse set of friendly developers (and possibly one diabolical developer).
Jon Pretty from Scala Technology is talking at the London Scala user group on May 11th. Jon is going to give a whirlwind tour of design patterns in Scala, including (but not limited to) Utility Belt, Pimp-my-library, algebraic data types, Concept and Cake. Jon launched the very first commercial Scala applications in 2005 and named the Cake Pattern in an email conversation with Martin Odersky. Sign up!
Summary of Last weeks events
The London Continuous Integration meetup was packed out and even Dan North turned up for some flirtatious heckling of his colleague. Chris Read presented some great ideas based on how he has been able to streamline deployment at DWR. Some take-aways include:
- Use a single source repository, even if you use distributed version control (git clients with svn, gatekeeper repository with git/mercurial) – JRocket: This is the basis of how the Linux kernel developers manage all there development
- Every commit should build, if you leave failed builds around then it will breed more…
- Test in a production like environment – consider where to draw the line though – how close can / should you get to be realistic
- Keep builds fast as the developers need to know the code has correct behaviour (as defined by acceptance / unit tests).
- Use information radiators especially in larger teams as you need to help the information flow – extend radiators beyond compile, testing, etc..
- Automate your deployment as code has no value until its running in production and doing something useful
The Scala coding dojo got a good turn out considering it was right up against the bank holiday. This time we worked on a maze generation problem as well as the mountain of sandwiches and quiche that Robert and Thoughtworks kindly supplied. We split into two groups of four people and managed to get some interesting tests and code developed (see the LSug Assembla.com repository).
There are a great range of open source tools out there for creating 2D and 3D graphics, to help you create stunning visuals for your website development or livening up your presentations. Here are some of the most widely used tools.
Inkscape is an open source 2D drawing tool that helps you create graphic designs, from simple buttons and logos to full blown posters and web page designs. Inkscape is similar to Adobe Illustrator or CorelDraw and gives you a vector based graphics tool that uses the W3C Scalable Vector Graphics (SVG) format. See my review of Inkscape Essential for web designers (or the slashdot review) and my Inkscape overview.
Blender is an amazing 3D modelling and animation tool that has seen a huge increase in adoption over the last few years. Blender has been used to create some stunning short movies such as Sintel, Elephants Dream and the hilarious Big Buck Bunny. Blender is also used to create many of the animations you see in advertising these days. See my quick overview of Blender.
The GIMP is a very powerful image manipulation tool that allows you to tweak any image file format out there and has a wide range of filters you can use to create some amazing effects. See my Gimp overview.
If you are interested in really getting into these tools, Packt currently has a series of discounts and promotions on its selection of Open Source Graphic Applications and Library books. The Open Source Graphic Applications and Libraries Month will offer readers exclusive discounts of 20% and 30% off the cover price of selected Graphic print books until 5th May 2011.
The Open Source Graphic Applications and Libraries Month discounts refer to books written on software used for graphic design, multimedia development, specialized image development, general image editing, or modeling.
“There are so many exciting Open Source projects for people who want to work with graphics, animation, or do some modeling. While some of them are easier to use than others, we’re committed to making it easy for anyone to use them, and unleash their creative potential. So far this year we’ve already published over 10 titles in this area, and we’ve got plenty more to come!” said Packt Open Source Publisher Doug Paterson.
To ensure you do not miss this fantastic offer, visit the special offer page now, where you can view the extensive list of books included in the offer and access an array of related articles that were written by authors.
For more information on the Open Source Graphic Applications and Libraries Month and the discounts being offered throughout April, please visit: www.packtpub.com/article/graphic-open-source
The recent backlash against Red Hat’s data grid JSR proposal sparked an interest as I know the JCP is going under reform right now.
For those of you who have missed the debates, here’s some background reading for you:
So, here are my thoughts on the subject!
On technical merit the JSR proposal certainly seems sound enough to be a solid starting point for discussion (I’m no expert mind you).
Open standards are good
It’s a laudable goal to standardise this space, and Red Hat have got my support on that front. Just like vendor lock-in was bad for databases and app servers, it’s also bad for developers and users of data grids.
This area is potentially worth Billions and so I can understand why some vendors may be reluctant to form an open std around it, but really, it’s a good thing! I believe the vendors should be competing on performance and other factors, not basic get and put type API calls.
Where the proposal went wrong
Politically, Red Hat went about this in an unusual way, hence the backlash. Sadly, that sort of backlash can be enough to sink a JSR before it even sets sail.
I was a surprised that an organisation with so much JCP experience presented this JSR without the usual pre-collaboration that typically goes on in these cases. So I dug a little deeper to find out why Red Hat had gone about it this way.
The root cause
Without knowing all of the ins and outs, the new data grid JSR was proposed partly because of Red Hat’s frustration with trying to get JSR-107 (data caching) back to an active state (it’s been an inactive JSR for some time).
A std caching API (JSR-107) would be a natural base for any agreements around standardising any further data grid APIs on top of that.
Red Hat (and others?) had tried to re-vitalise the JSR-107 Expert Group to get the JSR re-opened, ratified and released. That would’ve been a great start, as it meant that there would be collaboration amongst the same vendors that are then needed for a subsequent data grid JSR.
Why did that attempt fail?
We don’t really know. Unfortunately nobody on the outside can confirm what was/is going on as the JSR-107 mailing list is closed to the public!
This is the crux of the problem with the existing JCP rules, in that ‘open standards’ are being decided behind closed doors. Thankfully Patrick Curran is working on changing this (see! Oracle isn’t always evil ;p).
So what happens next?
By raising the new JSR, Red Hat has gotten their desired result of getting JSR-107 moving again to complete the caching work. It’s a shame that they were seemingly forced into this stance. We’d all much rather see deliberate community collaboration, it’s certainly not a model of how we want to see inactive JSRs moving again!
Red Hat’s intentions are almost certainly completely honourable, but as some of the other vendor’s stated, the raising of the new data grid JSR came across as a great surprise and was therefore not as welcomed as it could have been.
So, JSR-107 will go ahead, but it’ll take some amount of bridge mending before data grid JSR gets off the ground.
Lets avoid this in the future and support Patrick Curran’s JCP reforms!
Ah, the last full week of events until a very long break for the event of the year. Yes, you know what I am talking about, its in all the papers and on everyone’s lips… there is only yes that’s right there is only 9 days left until the release of Ubuntu 11.04 (Natty). Oh, and Dr Who is back on BBC1 on Saturday and if your desperate there are a couple of people are getting married apparently, just in case you missed it!
This week’s highlights include:
Geek nights Lua – something new and shiny, we all love those sorts of things 🙂
And dont forget the LJC developer sessions social event, the default topic this month is “Java in the cloud” although you can talk about anything you like. We are still at the Porterhouse, a great pub in Covent garden. I wont be able to make it as I’m running an all day event, but hopefully people will blog and email any interesting stuff that happened so I dont miss out completely.
Erlang user group meeting – Erlang is something else on my to-do list and the user group meetings are a great opportunity to see whats happening with the language
London Scala coding dojo is an evening of pizza, drinks and writing Scala code in small teams of 3-4 people. The coding dojo is a very effective way to get started with the language, as you can ask people questions when you get stuck. Trying to solve the problem in a group of people you have just met is also a great way to learn lots of different ideas and great for team building.
Ubuntu 11.04 release
Dr Who – Saturday, BBC1, 6pm
Summary of Last weeks events
Last night was a really enjoyable gathering at the London Software Craftsmanship community, kindly hosted by YouDevise at their offices in the City. After eating the very nice pizza provided, we all came up with some topics we wanted to discuss, including – development in the Cloud, Dynamic languages and from our diabolic developer: Destroy the Church of Software Craftsmanship. Lively discussions went on throughout the evening and continued in the pub (although I had to duck out as I am running a user group meeting today).
JAX London was a great conference and I learnt a great deal over the three days. Hopefully we will be running some architecture kata sessions with the software craftsmanship community soon, based on the pragmatic architecture all day workshop by Ted Neward. The talk on Apache TomEE was very interesting, a really simple and powerful application server from David Blevins and the team behind OpenEJB. Our diabolical developer gave a more serious talk on Java 7 that was a highlight for many attendees. My talk on Clojure also got a number of great tweets and I had a lot of great feedback.
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:
Ext GWT 2.0: Beginner’s Guide
JasperReports 3.6 Development Cookbook
Android User Interface Development: Beginner’s Guide
Microsoft SQL Azure Enterprise Application Development
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 March draw – Javier and Rob!
Ben Evans and I recently spoke at the Scandinavian Developers Conference on Java 7 and polyglot programming on the JVM. We also had a fun afternoon on a panel discussing “Whether the community or the corporations will control Java in the future”. That discussion probably deserves it own blog post, but more interestingly we spent a long time talking to Henrik Stahl from Oracle.
Henrik is Oracle’s director of Java platform strategy – and an official spokesperson from Oracle, able to pronounce on behalf of Oracle regarding Java. Henrik was able to give us the following insights (some of which you may have heard before):
- Oracle is very committed to Java and sees it as essential to their future.
- An open, vibrant community is an essential part of that future, in fact it’s the community that’ll determine what standard technologies and techniques should go into the std platform (SE/EE).
- The JVM will remain open and free _forever_, and additional technologies will be incorporated and open-sourced as appropriate.
- Oracle is looking for willing partners in the community to engage and be part of the conversation – and they are listening.
Some other points:
- Oracle is a much larger company than Sun and will not rush out any communication which is “half-baked”. This leads to *much* longer response times, and so the community should not jump to conclusions just because Oracle hasn’t responded yet. They’re aware of the problem here and are trying to fix it.
- Oracle are trying to unify the licensing position around all Java products. This is taking time because Oracle do not have as many lawyers per capita as Sun did. Sun used several different licenses and disentangling is hard. Oracle are trying to simplify and be more open. The fun quote here was that “Oracle does not have enough Lawyers.”
- Oracle want the JCP to be more open than Sun did – the current form is being revised so e.g. all Expert Group discussions (except for the procedural arrangements of who’s free at what time / place for physical meetings) must be conducted in public.
- A lot of *really* neat JRockit technology is coming to OpenJDK. It’s going to take time, but some of the stuff which is coming is going to make the VM better than ever.
- Oracle are hiring in a number of areas, including people to work on the core language, VM and overall strategy.
Hopefully that helps you understand some of Oracle’s strategy going forward.
We’re hoping to get Patrick Curran (JCP Chair) to come and speak at an LJC event and kick off a practical program where _you_ can get involved in determining the future of Java and its ecosystem and help influence Oracle to make decisions that will benefit all of us in our weorking careers.
Martijn & Ben
This week is JAX London, where there are quite a few LJC members presenting (including yours truly) on a wide range of topics. If you are not one of the hundreds of tech enthusiasts going, then I suggest you follow the tweet tag #JAXLondon to keep in touch with what is going on. An easy way to do this is to use tweetchat.
I am looking forward to an all day workshop with Ted Newark on pragmatic architecture, which will include lots of collaborative group work as we tackle a real world example situation and discuss the architectural concerns that would arise as the project develops. I am also really interJAX Londonested in learning about Apache TomEE, a really simple and powerful application server from David Blevins and the team behind OpenEJB. Created from the Apache OpenEJB project, TomEE also includes Apache OpenWebBeans, Apache MyFaces, Apache ActiveMQ, Apache OpenJPA and Apache CXF. You get a little more out of your lightweight Tomcat apps without having to give up anything in the process.
There is a community night on the Tuesday evening of JAX London at 7pm, so you can still join in some of the fun for free and get a chance to network with people from the conference, Hope to see you there.
If you want to know why companies are starting to use Scala for their production systems, take a trip out to the London Scala user group on Wednesday evening. The event will have a range of lightning talks and experience reports from developers
The London Continuous Integration group is now holding regular monthly events on the third Wednesday of the month. The next talk is a sneak preview of “Evolving Continuous Delivery” which is to be presented at Goto Copenhagen by Chris Read from DWR trading (also home of Aslak Hellesoy and Dan North). Chris will cover how he has evolved the DWR continuous integration and deployment system, what’s worked well and not so well over the past year, blurring the line between tools, teams and processes. Chris has done several other talks at SkillsMatter.
If that’ not enough CI events for you, then there is also an evening talk by “Mr Jenkins” himself, Kohsuke Kawaguchi. Kohsuke will be presenting Continuous Integration with Jenkins on 31st May. SkillsMatter are running a one day Jenkins CI course by Kohsuke on 1st June 2011 and although I dont normally plug SkillsMatter courses this one has me quite excited so I thought I’d share. Its a fair bit cheaper if you book before 2nd May.
Dont forget the LJC developer sessions social event on next Tuesday night (19th April), the default topic this month is “Java in the cloud”. We are still at the Porterhouse, a great pub in Covent garden. I wont be able to make it as I’m running an all day event, but hopefully people will blog and email any interesting stuff that happened so I dont miss out completely.
More chapters are flooding out of the talented minds of Ben Evans and Martijn Verberg via the Manning Early Access Program (MEAP) of “The well grounded Java developer”. The new chapters include Java 7 topics such as: new I/O, dependency injection, concurrency and performance tuning. Following that, there will be chapters on Classfiles & Bytecode. See the Java7Developer.com website for more details.
Summary of Last weeks events
There was a great panel discussion at the London Software Craftsmanship community (LSCc) event, thanks to the guys that kept us all entertained and enlighten. Sandro and David did a great job of keeping the panel focused. I really liked the ideas that Dan North was talking about in terms of “learning how to learn”, leading to an interesting exchange between Dan and Jason Gorman about the benefits of deliberate learning over deliberate practice. Dan made the case that deliberate learning was a much more effective way to learn that through repetition. I think that there is a lot of benefit for deliberate practice when you are starting out, especially when trying to become comfortable (a little less awkward) with a programming language or development technique. However, there is a limit to what you can learn by repetition, so the sooner you can interject some deliberate learning the more you will grow. I have seen some very smart programmers do some great live coding kata where they explored around the problem space and their own understanding to no only teach the audience things but also to learn themselves.
I think that is an important part of “craftsmanship”, especially when learning is not just for yourself but how you can help others to learn. I would encourage people to look at things like the dreyfus model of skill acquisition or more specific learning techniques such as Chris Argyris’ concepts of Action learning. The next LSCc event is a round table meetup on the 18th April. See you there.
Atlassian held the London event of their round the world Road Trip where I was very honoured to be announced as the UK and Ireland Ambassador for Atlassian. This is a new role for me, where I will be helping extending the already passionate and enthusiastic community and hope to run more events in conjunction with other technical communities accross the British Isles. There were a lot of great ideas presented at the road show on how to be effective with the Atlassian tools and it was great to see how use their own tools to great effect. There was also a lot of talk about the Atlassian company culture, things like FedEx days, Friday beer cart, play as a team and so much more. The company culture is one of the main reasons I wanted to join, so if your company does not have an open culture like Atlassian, perhaps you should ask yourself why and what you can do about it.
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.
Congratulations to last month’s winners – Keith Mannock and Konstantinos Papalias!
Events coming up
Dan North – @tastapod – agile coach, troublemaker and originator of BDD
Chris Parsons – @chrismdp – CEO of Eden Development – hold the Windsor code retreats
Ade Oshineye – @ade_oshineye – Developer Advocate at Googe
Dave Hoover – @redsquirrel – Chief Craftsman at Obtiva
The event topic is “How can craftsmanship move the industry forwards?” and I am looking forward to lots of interesting ideas and examples of how software craftsmanship practices and principles are used to make our work better and more meaningful. Dont forget to sign up at SkillsMatter.
On Wednesday (6th April) Atlassian are running the London event of their round the world Road Trip. Atlassian will be covering many ways they use their own tools to great effect (often referred to as eating your own dogfood), including Jira wall-boards, mock-ups and collaboration with Confluence, managing iterations with Greenhopper and anything else that can be squeezed in. The event is oversubscribed, but you can get on a waiting list if you contact Atlassian.
London Geek Nights are running an Introduction to Lua on th 19th April. Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
Miles Sabin has just started Functional-Brighton for anybody interested in Scala, Clojure, Haskell, etc. No date for the first get together yet but more details on the web site.
This months London Clojure dojo is being rescheduled to avoid being in between the long bank holiday weekends we have coming up. Are you aware that if you book 3 days holiday on the 26th, 27th and 28th of April you would have 11 days off work in a row!
Two new chapters are available for “Jenkins – The definitive guide” by John Smart. So if you want to know more about continuous integration or how to get the most out of using Jenkins (formally Hudson) then this is a great resource.
Netbeans 7.0 RC1 is now available – it includes some Java 7 features such as Project Coin, maven 3, improvements for CDI and REST, HTML5 editing and Glassfish 3.1 support.
Ubuntu 11.04 beta has been released. OMG Ubuntu has a review of Ubuntu 11.04 beta, giving a summary of many new features of the desktop. I am using this as my main laptop OS now and find it very fast to use and so much quicker to work with. The desktop now uses Unity gnome shell and Compiz to drive the default 3D desktop and this gives lots of handy keyboard shortcuts for launching and navigating your application windows. As this is only a beta release, you may want to wait until the end of the month for the final release.
RichFaces 4 has been released, supporting JavaServer Faces (JSF) 2. RichFaces 4 has extended several areas of JSF, including usability, performance tuning, dynamic resources, skinning, and component development – allowing developers to take advantage of all the productivity enhancements of JSF 2. There is a showcase website for RichFaces if you want to see what it looks like.
More fun and games occurred at the Clojure Coding dojo, where we were again treated to some lovely sandwiches and quiche courtesy of Thoughtworks. The dojo problem was based on the Google AI challenge – Ants. Ants is an n-player simultaneous game where each player controls a set of ants on a discrete grid with a fog of war. The objective is to have the highest score at the end of the game, which consists of killing the most ants and trying to be the last remaining colony. At it was quite a big problem to solve in one dojo, the teams decided which parts they wanted to work on. My team decided to create the world and parse the commands that would come in over XMPP, using the defined Ants protocol. We started off by defining a test and code for an empty world, then adding an ant and other artefacts such as food & water to the world and finally parsing sample examples of the ant protocol. As we came to a good stopping point a few minutes before the end, we decided to document our functions so you could call (doc function-name) so other developers using our code could quickly see how to use the functions we defined. We created our own fork of the project and uploaded our project to github.
The London Clojure dojo repositories are all available via github.
I hope to get across all the things I have learnt about Clojure in my JAX London talk next week – “Getting started with Clojure”. If you want to go to JAX London, dont forget the 30% discount available for LJC members: JAXCVW. There is also the free JAX community evening on Tuesday 12th.
If you have write-ups of any events, please send them to the mailing list know or send the links to me and I will include it in these updates.