Archive for November, 2006

Java Open Sourced

Sun has open sourced part of Java under the GPL(GNU Public Licence) v2 license.

bq. The initial release today will include the HotSpot runtime, javac compiler, JavaHelp, and Sun’s Java ME implementation. The rest of Java will be released under GPLv2 early next year. (”Javalobby.org”:http://www.javalobby.org/java/forums/t84244.html)

The interesting part of this release is the inclusion of a Classpath Exception which

bq. permits you to link your code to open source Java without forcing your code to fall under the GPL as well. (”Javalobby.org”:http://www.javalobby.org/java/forums/t84256.html)

In addition to the open source GPLv2 license, Sun is going to dual license Java so that commercial entities can use it without having to worry about the viral nature of the GPL, even though the Classpath Exception is, as I understand it, suppose to handle this.

In order to help us with this transition, “Sun has set up an FAQ page”:http://www.sun.com/software/opensource/java/. In addition, there is also the “OpenJDK website”:https://openjdk.dev.java.net/.

The following links have more information:

* “Open Source Java Editorial on Java.net”:http://today.java.net/pub/a/today/2006/11/13/open-source-java-editorial.html
* “Java GPLed on the O’reilly onJava.com website”:http://www.oreillynet.com/onjava/blog/2006/11/java_gpled_1.html?CMP=OTC-FP2116136014&ATT=Java+GPLed

As I find more links of interest I will post them here.

Dropboks - online file storage

“Dropboks”:http://www.dropboks.com/ is a simple little Ruby on Rails application that does one thing and does it well: allows you to store files online for later retrieval; that’s it. When you go to the site you see nice little file browser type table in the middle of the screen and a file browser type text field which you can use to find the file you want to put online. Before you can use the app though you do need to sign up for a user account though.

This is simplicity at its best.

Apparently, the people responsible for this little app got tired of trying to figure out how to store and share files online. This is their solution.

Another thing that is nice about the site is that, for now, it is completely ad free. There is just a small box at the bottom of the screen where they ask for a $1 donation.

Design up front, yes or no?

I recently found two posts online discussing the topic of doing design up front. This is something that Agilists tend to run away from and if they find anyone doing it, they accuse them of BDUF (Big Design Up Front). Where I am working right now, we do it at the beginning of every iteration. Each developer gets their assignment and the first thing they do is UML(Unified Modeling Language) diagrams and written test plans. For us, since we are dealing with a lot of co-op students, it works quite well as it allows us to catch a lot of errors early. It also forces the developers to think through what it is they are building.

“The first article is on the Dancing Mango website”:http://www.dancingmango.com/blog/2006/10/24/upfront-is-good/ and basically states that the “Agile Manifesto”:http://www.agilemanifesto.org/ does not exclude up front design or analysis. In fact, it goes so far as to say that it is a good thing.

bq. The “Agile Manifesto”:http://www.agilemanifesto.org/ states “Working software over comprehensive documentation”. Note the use of the word “comprehensive”. It doesn’t state “working software over documentation”. It also states (and this is all too often forgotten) “That is, while there is value in the items on the right, we value the items on the left more”. It is essentially pragmatic, do just enough that is necessary to allow you to be successful. This is most important in the field of analysis.

The main thrust of the article is to do just enough documentation so that the business people and the developers are all on the same page.

bq. Bottom line: Do up front analysis and be proud of it. Make it just-enough in a format that is appropriate (so why is it suddenly OK that it is on the Wiki rather than in a Word document on the corporate LAN?) Get it out there!! Stick it on the walls, let everyone see the business objectives, who the users are (personas), the competition, the wireframes, the product mission statement.

However, the article does not mention UML(Unified Modeling Language) or design and mainly concentrates on the business end of analysis. For a discussion on design, I present the second website–Javalobby.org–on which there is a “discussion thread on UML and its merits.”:http://www.javalobby.org/java/forums/t83806.html The original post asks the question: How much designing should be done before coding?

I am not going to summarize the entire discussion, but I do think it is well worth reading. In my opinion, it highlights the two sides of the issue nicely. On one side are the architect, enterprisey people who rely on UML(Unified Modeling Language) and design before ever coding to code. They demand that every new hire be fluent in UML(Unified Modeling Language). On the other side are the newer Agile people who would rather go straight to code and test-driven development and would rather hire people who can code and UML(Unified Modeling Language) knowledge is a distant second, third, or forth thought.

I tend to side with the Agile camp, but I can also see the advantage of doing UML(Unified Modeling Language) designs before starting code. I think there is value in thinking through a design, modeling it, and maybe even attempting to apply some design patterns to the model before you move into code. On the other hand, as a programmer, I definitely see the attraction to moving straight to code. I have created far too many design documents that, after one good day of coding, were out of date and were never updated.

In the end, I think my opinion is to do just enough design and modeling to allow you to move intelligently to code. And skip the upfront Word documents for the test plans, those are just a waste of time. Test-driven development will take care of those.

How to begin a presentation, book, etc

Kathy Sierra posted a blog entry a while ago entitled “Better Beginnings: how to start a presentation, book, article…“:http://headrush.typepad.com/creating_passionate_users/2006/10/better_beginnin.html in which she lists a series of tips, myths, or personal beefs. These include things like:

* Don’t start with the history (A huge problem with tech books)
* You don’t have to build credibility, just make sure you don’t loose it
* begin with a question
* don’t start at the beginning, instead, just jump right into the middle of things and present the beginning later on

Kathy has posted a series of articles on doing presentations and they are all worth searching for and reading through. If we all followed her advice, it would result in a lot less of those boring PowerPoint powered presentations where the presenter simply reads everything on the slide and then moves on, ugh!

Adobe and Mozilla Foundation to Open Source Flash Player Scripting Engine

I have no idea what this means right now, but it has been popping up all over digg.com today. “Adobe is going to open source their ActionScript engine and donate it to the Mozilla Foundation”:http://www.mozilla.com/en-US/press/mozilla-2006-11-07.html.

bq. Adobe Systems Incorporated (Nasdaq:ADBE) and the Mozilla Foundation, a public-benefit organization dedicated to promoting choice and innovation on the Internet, today announced that Adobe has contributed source code for the ActionScript™ Virtual Machine, the powerful standards-based scripting language engine in Adobe® Flash® Player, to the Mozilla Foundation. Mozilla will host a new open source project, called Tamarin, to accelerate the development of this standards-based approach for creating rich and engaging Web applications.

I am not sure if this means they are open sourcing the entire Flash Player or just a small section of it. If it is just a small part of the player, I am not sure how this benefits Mozilla? Does this mean that I can now do Flash ActionScripting and expect it to run in Mozilla without having, or needing, the entire Flash player installed?

At the very least, it should be interesting to watch and see what this all means.

The nuances of Java for-each loop

Java.net has posted an article detailing some of the “nuances of Java’s @for-each@ loop”:http://today.java.net/pub/a/today/2006/11/07/nuances-of-java-5-for-each-loop.html. This loop is a new addition to Java 5 and, in my opinion, one of the more welcomed and helpful additions. At least I like it a lot, it definitely saves you typing a fair bit of code.

bq. This article is an in-depth examination of one of the simplest but most pleasing features in Java 5.0–the @for-each@ loop. I present eleven short items discussing various nuances of usage, pitfalls to be aware of, and possible optimizations surrounding the use of the @for-each@ loop. In the first section, I discuss what kind of iterations are possible with the @for-each@. The next section illustrates common programming errors in using the @for-each@ loop. The final section shows how to write new classes that can be used as targets of a @for-each@ loop. I also talk about advanced implementations that allow multiple iterable views; lazily construct objects just in time for iteration; and enable possible generic algorithm and compiler optimizations of the @for-each@ loop.

Martin Fowler: Pair Programming Misconceptions

Martin Fowler has written an excellent article on his bliki about “pair programming misconceptions”:http://martinfowler.com/bliki/PairProgrammingMisconceptions.html. In it he tries to dispel some of the more talked about myths and misconceptions about pair programming. These include things like:

* Pair programming halves the productivity of developers
* You have to do pair programming if you are doing an Agile process
* It’s only worth pairing on complex code, rote code yields no advantage.

Probably the most interesting statement in the article is:

bq. I should also point out that to most XPers I know the question of whether a team is XP or not is uninteresting; the real issue is whether a team is effective.

This statement is inline with another entry that Fowler wrote entitled “Agile Imposition”:http://martinfowler.com/bliki/AgileImposition.html about people, management or consultants, imposing Agile practices on a team.

bq. Drifting around the web I’ve heard a few comments about agile methods being imposed on a development team by upper management. Imposing a process on a team is completely opposed to the principles of agile software, and has been since its inception.

Both articles are worth reading and stand as a counterpoint to much of the debates about Agile that I read on the internet.

« Previous PageNext Page »