The Source for Java Technology Collaboration
User: Password:



Andreas Schaefer's Blog

Community Archives


3 Years later my Bitching became Code: Guilder POC Release

Posted by schaefa on March 07, 2008 at 10:24 PM | Permalink | Comments (1)

For the impatient readers I just wanted to announce the release of the Guilder POC which can be found on its wiki: https://madplanet.com/trac/guilder which intends to be a replacement for Maven 2 taking the cool features of Maven 1 and 2 and also incorporating some of the cool Groovy stuff to give building projects its Groove back. For all others here is the a little bit longer story.

In December 2004 I first complained about Maven 2 and I never really started to embrace Maven 2 and still think that Maven 1 is the better solution. But now Maven 1 is dead and Maven 2 took over. Eventually I had to use it in my line of work and discovered even more problems. Because I don't think that Jelly is a good scripting language and never started to be used outside of Maven 1 in a bigger way I was looking for another scripting language that I could use as its replacement. Eventually someone pointed me to Groovy and the Maven 2 Groovy plugin. Even though I liked the idea of Groovy the Maven 2 Groovy plugin did not work for me. I did not want to have a plugin that execute Groovy code but that could be written in Groovy. I also did not succeed in mixing Ant statements with script code as I could do in Jelly which took most of the appeal of Groovy away and so a lot of time passed by.

Well, somehow I stumbled over Gant which is Ant in Groovy and I saw in an example what I was looking for. Using closures and a Builder class Groovy was able to provide code that would exactly do that. Here is a simple example:

ant.junit( printsummary: true, haltonfailure: true ) {
    if( classpathName != null ) {
        classpath( refid: classpathName )
    }
    ...
}

As you can see there is Ant's optional jUnit task intermingled with the check if the classpathName is not null and then it will be set a class path ref for the jUnit task. Beside the fact that I can mix and match Ant with Script Code this code also looks nicer because I don't have to deal with the closing tags and with other XML oddities. So nearly two months ago I started to think about a project that uses Groovy able to replace Maven 2 with scripted plugins. Now you might think that why replacing Maven 2 if I just could add the ability to create and deploy Groovy based plugins. The answer is that there is more that I don't like in Maven 2 than just the compiled Plugins and I hope that eventually all of these shortcomings are handled when this project is released. Here is a list of such features:

  • Scripted Plugins based on Groovy (maybe with JIT compilation)
  • Plugin Context that exposes the user interface but also the interactions with other Plugins
  • POM is a Groovy Script as well (no more XML)
  • POM Is completely flexible and its structure is defined by the used Plugins rather than the Project
  • Transitive Dependency Management using Ivy
  • Local POM and local Plugins (see maven.xml)
  • Goals can be overwritten or another goal can be executed before or after another goal
  • The project builds itself
  • ...

Then it took me around 4 weeks to finally get a POC release worked out and finally last Tuesday I was able to announce the release of it on the LA-JUG meeting. After that I heard from many other build tools that are growing like wheat: Apache's Buildr, Gant (heard from it before), Gradle and Graven. After a short scan I don't think that Buildr is a good idea because the instructions are written in Ruby but that's maybe just me. Gant is good but its Ant in a Groovy coat and Graven is the same for Maven 2. Gradle seems to be the closest to what I want to do but I think that there are still major differences between the two when it comes to the idea of plugins and probably other areas.

If everything works out as expected I should be able to release the Alpha version in a month or two which should have a solid core and a few full blown plugins.

Have fun - Andy




JavaOne 6 Years Later

Posted by schaefa on May 08, 2007 at 04:40 AM | Permalink | Comments (0)

It is six years since my last trip to San Francisco to attend JavaOne and boy has my agenda changed since them. Back then I was working on JBoss and there was a huge fight between Sun and the open-source community on a lot of issues surrounding Java. Now Sun is going to finally open-source Java which is a great success for the open-source idea but I couldn't care less.

The power of Java does not come from the language or even the JDK even though there is a lot in there lately and in my opinion too much. The power comes from the open-source projects around Java that improves and increases the usefulness of Java and I am not talking about the applications based on Java. There is networking stuff like JGroups and Azureus (bit-torrent), high availability like HA-JDBC and Terracotta, build systems like Ant and Maven, Log4j (logging), Rome (RSS feeds handling), concurrency, web frameworks and much much more. It is really hard to find a niche were one could start a novel open-source project because most likely someone else already had that idea and started a project like that.

What Java provides to me is the foundation that makes it easy to harness the power and versatility of all the open-source projects out there. Quite often a project has to ditch an open-source project only for the reason that it is too big for what the project needs it for but still then the code of that open-source project can be the inspiration of the stripped down version they are finally using.

That said I indent to participate on the Open Java project if something is bugging me and to participate in open-source project again. Even though I don't care much about open-sourcing Java I care about Java and I love to participate where it makes a difference for a few people. I need to make a living and that will not be through open-source, so far, but I would not be who I am now without open-source and my previous commitment for it. I learned so much about Java and how to manage and design projects that it outweighs the time I spent on it.

Enjoy - Andy



Cool: Even Duke is Podcasting

Posted by schaefa on June 30, 2005 at 11:58 AM | Permalink | Comments (0)

The jPodder team is proud to be the current Duke's pick hoping that Duke is using it, too. Podcasting is like the Internet 15 years ago where the users and providers made things happening rather than waiting for something to presented to them. Now anyone how has something or nothing to say can create an radio-like show and publish it immediately with the entire planet as potential audience.

But this revolution does not have to stop with audio or video files. I can imagine that for example JavaOne is published as RSS feed with the various media files attached to them. So with one-click subscription you could go to the Sun's website, click on the RSS link or button and voila jPodder is coming up, subscribing to that feed and letting you know what is available right now and you can schedule the downloads whenever you like. Right now I am working on "playing" a presentation through jPodder so that I can publish my various presentations as podcasts rather than publishing them on my website and then sending an email out to all subscribed user that there is a new presentation.

Still all of that are still simple files but imagine that a Java project maintains a RSS feed containing blog entries, articles, documentation in various formats but in addition they could also make their latest release available as podcasts. This way the application can be automatically downloaded, for example over night, and installed right afterwards. Or the project could release the application as Java Web Start which is fired up after the download so that the user can play with it right away. Finally the project could release incremental patches as podcasts making it very easy for the user to follow them without limiting the users ability to control it.

Enjoy the brave new World – Andy



Is Microsoft reaching out to Java?

Posted by schaefa on March 24, 2005 at 01:12 PM | Permalink | Comments (5)

A few Java community leaders were invited to participate in a summit organized by Microsoft and Rick Ross, the founder of JavaLobby, created presentation about it. No matter if you like, dislike or hate Microsoft the presentation is worthwhile to be listened to. I have to admit that I am guilty of bitching about Microsoft at many occasions but I was burned by Microsoft too many times. Nevertheless I had worked with Microsoft tools like Visual C++ since I started to code primarily in Java. Two years ago I even bought the .NET development environment but never found time to look into it. I would like to participate in a project using both Java and .NET but so far I did not get the chance to do it.

As Rick points out Microsoft is, most likely, never going to open-source Windows, Office or .NET. and so I will most of the time use Java because of the huge amount of opens-source projects and libraries. On the other hand this does not mean that I am not willing or able to develop on a Microsoft platform and with their development tools. At the very end we, the developers, are here to serve our customers and they are going to decide on the requirements and the environment. I, for example, have probably not enough knowledge about .NET to work on pure Microsoft project even thought I have a long history with Microsoft but I am probably quite good to work in a heterogeneous environment were .NET mets Java. I think there is enough room for all developers to find their place where they can bring in their knowledge, skills and passion. So, I think, we should be able to life together in harmony and refrain from bitching about the other.

That said I still cannot embrace Microsoft as my new friend, for now, even thought some of its employees took the risk to reach out to a hostile community. Every company has departments that are better and more honest than others. Because I like the open-source J2EE application server JBoss it does not mean that I like Marc Fleury or do think that he is willing to work together with other open-source J2EE projects like Geronimo. On the other hand I do not like the short movies Sun presented at JavaOne making fun about Microsoft because they are not better or behave differently. If Sun would be in Microsoft's position they would not care about open-source and despite the fact they embrace it right now it took them forever to have Java ported onto Linux.

There are still some years ahead for me until retirement and so I will have to face many challenges maybe even the challenge to work for Microsoft, Sun or IBM. I am pretty sure they are companies out there which are worse to work for. At the end I am more interested in the challenge, technology and the result that the language, development environment or platform.

Happy coding – Andy

Sun vs. JavaGeeks.com: Does Sun own Java or only the Java(tm) Language

Posted by schaefa on December 01, 2004 at 12:52 PM | Permalink | Comments (10)

I do not like legal discussions or disputes because here in the US it is quite often big money against little money and as a single person you are silenced by big corporations' power. I also know that I go on a slippery slope here but I think it is important for all of us to know where and how the name Java can be used and why some 'entities' can use Java in their name and other do not.

In Ted's blog entry about his dispute with Sun about his website JavaGeeks.com you can see that Sun is challenging the use of Java in his domain name. I was completely shocked that Sun is challenging this domain name especially because many other websites are using Java in their name like OnJava.com, Java Ranch, JavaLobby, JavaWorld and probably many more. Not to mention about all the books taking about Java and using the word Java in their title.

I know and respect that Sun own the name Java as trademark for their language but I have a problem to understand how Sun can claim that Java in JavaGeeks.com means their language. We all know that many developers drink a lot of coffee (hot, I suppose) and therefore JavaGeeks.com just means 'Hot Coffee Techies'. Yes, the web site does talk about Java(tm) language but this is not obvious to someone who just sees the domain name. Again, Java is a term widely used in the US for hot coffee and so Java in a domain name does not immediately means Java(tm), the programming language. Again, I am not a layer and therefore my logic of law maybe flawed.

We, the Java(tm) developers, should talk about this and express our opinions to indicate to Sun Microsystem if we approve or condemn their actions. At the end we all may be affected by this.

Long life good Java (no-tm) – Andy



Back to Darwin's Survival of the Fittest

Posted by schaefa on September 18, 2003 at 06:45 PM | Permalink | Comments (1)

Lately you hear many software engineers complaining about competition in the software industry from foreign workers or foreign companies starting to compete. Finally, it seems, that the US is not an island anymore and that we are facing major competition. For me, I cannot comprehend the outcry maybe because I had to fight, learn, change and risk a secure lifestyle to become what I am now. That means I embrace change and competition because it will keep you on your toes so that your market value does not drop relative to the market. On the other hand, I can feel the agony of these developers because in Switzerland, the safe, hired-for-life work environment was turned up side down due in part by the competition from the US during the last decade. I think there are two important aspects everyone involved in these times of changes should think about.

1. Every Software Engineer has to work on his/her Market Value Everyday

Evolution is omnipotent and we have to adapt or fear extinction. In a world of global connectivity through the Internet and distributed development in companies as well as open-source projects, foreign companies are becoming more and more competitive and then can take advantage of their local environment like lower wages or lower costs of living. This means in turn that every software professional here in the US has to compensate for the disadvantages of the local environment through knowledge, skills and good communication. As hard as it may sound, everyone that is looking for a good paid, secure and nine-to-five job is on the wrong place here because the Internet boom is over, period. I, for myself, do not expect to be a software engineer in 10 years even though I have no clue yet what I will be doing then. But I am confident that I will find something that I like and where I am eager to work on. Right now I like the competition and the challenges because I can work on a job where every day is different and I never feel that I have to go to work. It is a privilege to work as a software engineer that has to be earned and then worked hard for to keep.

2. Outsourcing is NOT the Holy Grail of Cost Cutting

The dispute between a CEO of a car company and Bill Gates of Microsoft was flawed from the very beginning because they forgot that software development is a Research & Development process and not a production process. In software development, only one copy is produced called the source code and only the process of pressing the CDs and printing the manuals is mass production. This means that companies outsource their R&D department to another company. To make things worse, the most important parts of a software project are communication, communication and, did I say, communication but it is precisely communication that is difficult in an outsourced project, especially when foreign companies are involved because communication is not only difficult, but the cultural gap can be a source of many misunderstandings and can lead developers to wrong assumptions that are undetected for a long time until they appear at probably the worst time. Just remember the failure of the Mars probe where the calling component was working with the metric system and the called components in the US system (feet, pounds, etc.). Outsourcing works fine when there is a very well defined project, the tasks are simple and the tests can be made locally. Therefore projects like the fixing the Y2K bug or code migration did finish well. On the contrary, projects with vague goals and requirements, short timeline or complex or specific business rules will probably fail with foreign companies because each iteration of development will take longer due to the communication lag, produce more errors that will slow down the next iteration and therefore are harder to control from the client.

I saw outsourcing come and go a few years ago like the cost cutting idea of CASE tools or other code generation tools, but we are still coding day in, day out. I guess this wave of outsourcing will go again after a while but unfortunately managers are not paid for good, long-term decisions and so far customers are not willing to pay a little bit more for good service. When the managers or customers cannot be changed, the software engineers have to work hard on themselves and try to show the decision makers good arguments against outsourcing.

Enjoy your day - Andy

Foreign High-Tech Workers: a Scapegoat for a sagging Economy? I don't think So.

Posted by schaefa on September 12, 2003 at 07:27 AM | Permalink | Comments (11)

I wanted to start my weblog at Java.net a little bit differently but as a former H1-B visa holder Sue’s Spielman weblog with the title “Outsourcing in my company? I do not think so.” stroke a cord and I had to respond. The most replies turn around these sentences:

I am a true believe that the legislation currently being proposed to lower the H-1B and L-1B visa quotas will not go far enough. I think these visas should be abolished until all of the unemployed and laid-off IT workers and engineers who are US citizens are back on a payroll.

Even thought that these two sentence does not have to do much with the title or the rest of the weblog entry these sentences were (mis)understood by many commentators as a request to kick out the visa holders out of the country but it actually says the visas should be abolished. Nevertheless I think it is absurd to think that H1-B and L1-B visa holders are responsible for most of the unemployed IT workers and that a ban will only increase the desire for US companies to outsource their IT departments. Even thought we can all agree to disagree the next sentence:

The fact that a US company thinks that hiring a barely-English-speaking worker in India or the Philippines is going to solve their competitive problems is just absurd.

sounds more like said by a populist politician than an educated software engineer. What is absurd is the thought that all H1-B/L1-B visa workers are coming from India and the Philippines and that all of them do barely speak English. As example I am coming from Switzerland (no, not Sweden) and spoke publicly on many occasions.

As with the outsourcing the underlying problem is that (greedy) executives try to save money through shortsighted decisions and we all have to pay for it afterwards. In my opinion the only solution to prevent the visa holders from being extorted is to make them less dependable from their employers for a balanced competition between local and foreign employees and outsourcing can only be prevented by the customers putting quality and support over cheap products and services.





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds