JBoss conference as a valentine gift?!
Real Java technology adepts can take their valentine to JBoss World Orlando 2008 running February 13-15th.
Real Java technology adepts can take their valentine to JBoss World Orlando 2008 running February 13-15th.
If you can introduce a (new, revised..) base architecture for your company you should start by drawing a high level architecture overview with two main parts: one part to hold all functional related logic, and a second part to hold all information related logic.
The first part should hold all "functional" logic, which can be business processes, workflow, batches, use case controlers and related. The second part holding all logic to handle your business information such as all "CRUD" logic, queries, but also all business rules, invariance constraints.... everything that is purely working on the data.
It is obvious that the process part has dependencies on the information part, but you should address the information part only through interfaces (or SOA services if you are into that). DO NOT MIX ANY IMPLEMENTATION of business logic with the pure information logic part!
If we focus on the second part -the one with the pure information logic- then my way to start this up is elaborating through the requirements (what information? which dependencies and contraints? how to build up the model?) using Domain Driven Design techniques (see DDD and the book by Eric Evans elsewhere on my blog).
To build up the executable architecture, I would use the Naked Objects framework. This is speeding your development up, and gives you your information layer with all "CRUD" functionality generated as an HTML interface at a glimpse.
Naked Objects is an open-source Java-based framework that takes a POJO domain object model and turns it into a complete, executable application. It auto-creates a user interface that is a direct reflection of the domain model, offering the option of either a rich-client interface or a pure HTML interface as shown below (you can view both on our online demonstration application); and it auto-creates a persistence layer using Hibernate.
Find more on the NakedObjects Blog or the discussion on theserverside.com
Labels: design, framework, opensource
Last week I registered myself on the JavaBLACKBelt Certification Community. On this website you can test your Java related knowledge with questions managed by an open community (for free!). After succeeding for an exam you can show it to the world on a personal page like mine.
The idea is to take exams, get a higher rank (with colored belts like in karate), and also contribute to the community by reviewing questions, or even post your own and have them reviewed. When the community accepts your questions, it will be added the real exam.
I took some sample exams, and am really impressed by the quality of the actual questions, and the overall system.
I really hope this system will get a lot of attention and success, as this will open the certification market into the open source!
Labels: certification, community, java
It's been about a month now since the Guice framework was released by Google. A short description of Guice: lightweight dependency injection framework for Java 5 (IoC container), strongly using annotations.
Guice is a straight line competitor for (open source) Spring framework (but also for others like Tapestry IoC, HiveMind, PicoContainer, or in some aspects to JBoss Seam).
I was expecting a huge reaction from the open source project members of this 'awkward' move from Google to launch their own framework into the public .. but this does not seem to happen (yet?!). Some reactions on the net that I found useful are:
New Agile software development methodologies require new tools. The first generation of tools such as JUnit and Ant provided an easier and faster "develop-test-deploy" cycle which can speed up development enormously and included testing.
The second generation of tools -in my opinion- was started with the Continious Integration tool CruiseControl (backed by Martin Fowler) that focused on an extra step in the development process, what I would call the "automated develop-test-deploy".
The newest generation (what I would call "3rd generation") of continuous integration tools brings some major improvements over well-established tools like CruiseControl: they offer a lot more functionality that speed up development even more, and checking the quality in the same time. I found this excellent overview/comparision overview of new generation tools that could help you choose one.
The Spring framework (and the connected Interface21 company) seems to get more and more attention in the Java community, and so there are rumours about the future ... I almost fell off my chair when I first read the rumours that Oracle was showing interest in Interface21, but luckily this was just a rumour .. (imagine!)
Some interesting articles came out of these rumours:
"Spring is in the air" on eweek.com mentioned the kind of attention Spring framework is getting with "Last month, Gartner recognized Interface21 as a "cool" vendor, citing..". Excellent!
"Spring's Interface21 for sale? Apparently not" on TheServerSide was the article that eased my mind today (phew!). I like the 'Dinosaur' thing .. look for it :-) .. Never knew I met a lot of dinosaurs :-)
Labels: framework, java, opensource, Oracle, Spring
Today I read an interesting article by Elliotte Rusty Harold and his interesting analysis of what to expect from Java in 2007 and where the language and platform are headed.
A lot of people do agree with his view, the one point everybody is discussing about is the part about "Ruby wins the race". Some people (including myself) are convinced that there is more future in Groovy and Grails instead as an alternative to Ruby and Rails. Let's see at the end of this year ...
Labels: java
For about a year now, I travel to work by train instead of by car and there is one main advantage: I have a lot of time to read!
I had a lot of books at home sitting at the shelf, but I caught up reading them all in this period.
Often colleagues ask me where I read some parts of info or where to find something, so I tried to setup my personal TOP-10 list of recommended books that I think are very useful for project managers, requirements analysts, functional designers and developers (categorised in basic, intermediate and advanced level)
Basic level:
1. Systems Analysis and Design in a Changing World, John W. Satzinger
ISBN 10: 1-4188-3612-5
This book was part of my master in E-business study package, and offers a comprehensive coverage of systems analysis and design. If you are looking for a first book to read about software analysis, you need this book.
2. Head First Design Patterns
ISBN 0-596-00712-4
Personally I am a big fan of the 'head first' series. You can read this book in 2 days and have a perfect idea of design patterns, and how to use them.
Alternative is off course the bible of patterns found in: (but I challenge anyone to read this one in 2 days ..): Elements of Reusable Object-Oriented Software , ISBN 0-201-63361-2
3. Head First Object-Oriented Analysis and Design
ISBN 0-596-00867-8
Another one in the 'Head first'series, this will take you 3 to 4 days, but you get a perfect intro into OOA/D.
Intermediate level:
4. Mastering the Requirements Process, Robertson and Robertson
ISBN: 0201360462
This powerful and useful guide to defining more complete software requirements, I really advice all development team members and managers to read this book! The 'volere requirements template' is the best template I know for this purpose!
5. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design, Craig Larman
Print ISBN-10: 0-13-148906-2
This is an excellent book on the world of OO design, and stated as the reference work by many authors. Read the second edition if you want to adopt (parts of) the Unified Process, the third edition is based on an agile development process.
Advanced level:
6. Writing Effective Use Cases, Alistair Cockburn
ISBN: 0-201-70225-8
When you have completed a project iteration with use cases, read this book and look back at the work you made. You will then see your errors, and never make them again :-)
7. Agile Software Development, Alistair Cockburn
ISBN: 0-201-69969-9
Another one by Cockburn, and an excellent book on how to make your development cooperative game. This book is filled with best practices that actually work and increase the moral of your team (the most important factor in my personal opinion)
8. The Elements of UML 2.0 Style, Scoot W. Ambler
ISBN: 0-521-61678-6
Excellent pocket-sized book on best practices when modelling in UML 2.x, a must read for all model contributors.
9. Domain-Driven Design: Tackling Complexity in the Heart of Software, Eric Evans
ISBN: 0-321-12521-5
This book is a milestone in defining an approach and a shared vocabulary when doing domain driver design. A shared vocabulary is a success factor in project development, this book should be read by every senior team member.
10. POJOs in Action, Chris Richardson
ISBN: 1-932-39458-3
An excellent introduction on development choices you have to make when doing a Java enterprise project using lightweight technologies such as Hibernate, Spring, JDO, iBATIS and others.
As an alternative of buying all these books, I think you can read them all on the online Safari Bookshelf (19.99$ monthly / 10 book slots). I haven't tried it, but I get a lot of positive feedback about it.
Success!
Some Russian companies license malware these days, you can order e.g. a personalised (read: targeted) key logger, and attack some competing company with it.
"Because of this shift in malware to targeted industrial espionage, there is a good chance that the spyware will never make it to the labs of Symantec, McAfee, F-Secure and the others. These aren't viruses floating around on the Internet. They are aimed at one particular target, so the antivirus vendors are less likely to get a sample of the malicious code, said Sunner."
Add a customer support contract on top, and you have an excellent new way of getting secrets out of your environment; this is a business model that is completely new to me! (off course you can only run such a business in Russia or the likes..)
More here
On thurseday, I attended a talk by John Newton, presenting the Alfresco product. John is -offcourse- the expert in CMS products and the CMS market.
I think it is amazing what the Alfresco team has achieved, now existing for -just- two years. If you look at the functionality they developed from scratch in this short period, and with a small team (8 developers?), and if we may believe John -which I do- there is a lot of new functionality on the way. CMS vendors, be prepared :-) .. and all of this is achieved with Spring, Hibernate and Java technology! Amazing!
Labels: cms, javapolis, JavaPolis06, opensource, tools
Some facts, personal experience and thoughts about software development, the java scene, and the rest of the world.