JPz'log Coin Coin and Plop da Plop

21Apr/090

IzPack 4.3.0 is out!

IzPack

I am very pleased to announce the immediate availability of IzPack 4.3.0!

About IzPack

IzPack is a one-stop solution for packaging, distributing and deploying applications. IzPack is opensource, released under the liberal Apache Software License 2.0.

It is fully cross-platform and generates a single installer. As such, it is
an alternative to native solutions such as platform-specific installers and package managers.

IzPack-generated installers only require a Java virtual machine to run.

Many companies and projects have been using IzPack over the years, including Sun Microsystems, JBoss/RedHat, the Scala language project, some ObjectWeb/OW2 projects, XWiki and many more.

Downloading IzPack

IzPack can be obtained free of charge from its website at http://izpack.org/

Getting professional services

IzPack creator and project leader Julien Ponge offers paid professional services:

  • one-time and subscription-based support
  • consulting
  • custom developments
  • installer creation bootstrap.

Do not hesitate to contact Julien and get more informations from http://izpack.proservices.ponge.info/

Those services directly help in sustaining and improving IzPack.

About this release

This release is the result of a collective effort where our developers and contributors worked hand-in-hand to improve IzPack. Also, new developers have joined the project to bring further ideas and energy to the project.

About a hundred issues have been resolved in this release. The complete list along with JIRA issues can be reviewed at http://jira.codehaus.org/browse/IZPACK/fixforversion/14763

New features highlights

The release contains its usual set of bug fixes, small enhancements and documentation improvements. The new features include:

  • Scripting support through the Apache Bean Scripting Framework
  • Full console manual and automated installations
  • Removal of NanoXML in favor of a javax.xml backend
  • Ability to call Java classes before and after each panel
  • Privileges elevation improvements
  • Graphical reporting of launch-time errors
  • AntActionListener improvement
  • Configuration of the uninstaller path
  • Compile-time variable substitutions

Greetings

The IzPack team would like to thank its developers and contributors for having made this release possible! We would also like to thank our numerous and growing users worldwide for pushing us forward!

Other thanks go to:

Further links

Filed under: English, IzPack, Java No Comments
20Apr/090

A todo list on Google App Engine… Python

It seems like everyone is getting crazy those days with the availability of Java for Google App Engine. While this is certainly a great addition to the Google cloud computing offering, I remain a bit puzzled on what it means for Java. Indeed:

  • lots of libraries and frameworks need to be tweaked to run on GAE
  • there is a whitelist for the classes that you can use, which means no threads, no static files for writing and so on
  • datastore entries are bound by a 1Mb limit, which means no big uploads in your applications
  • the effort to support specifications like JPA is great, yet I doubt it will be easy to port existing JPA-enabled applications over GAE as the persistence in GAE is not based on a relational model (which is not necessarily a bad idea by itself!).

Should you care about GAE / Java? My take is that it is a nice cloud computing offering, but if you choose to use it then you should expect to develop your applications specifically for it. Making hybrid GAE / normal webapps is probably worth too many headaches ;-)

People should not forget that GAE first appeared with Python, a great language by itself. The GAE Python framework is quite simple to use, while the view rendering part is based on the elegant Django templates.

Just to break with the massive trend toward playing with GAE / Java, I wrote a stupid todo lists manager with the Python flavor:

Building the application in Python was relatively simple and painless. The only point that annoyed me a bit is the handling of URL mappings, as you need to specify it in your app.yaml and also in your controller class, which sounds like breaking the DRY principle.

The persisted model definition can't be any simpler:

class TodoEntry(db.Model):
    user = db.UserProperty()
    text = db.StringProperty()

db.UserProperty() allows to link with a Google Account.

Fetching one user todo entries is simple:

entries = db.GqlQuery("SELECT * FROM TodoEntry WHERE user = :userid", userid=user)

Handling the authentication is also very simple:

def authenticate(self):
    user = users.get_current_user()
    if not user
        self.redirect(users.create_login_url(self.request.uri))
    else:
        return user

One last excerpt: rendering a view through a Django template:

values = {
    'userid': user.nickname(),
    'entries': entries,
    'logout_url': users.create_logout_url(self.request.uri)
}
 
tpl = os.path.join(os.path.dirname(__file__), 'todo.html')
self.response.out.write(template.render(tpl, values))

Look at the code, it is quite straightforward and easy to understand, so if you already know Python, don't forget that GAE / Python works just great too :-)

13Apr/090

Scala and DSLs

Tonight I wrote something quick in Scala to make a small DSL (just for fun).

I started with a small Email class:

class Email(name:String, address:String) {
 
  def standardForm = name + " <" + address + ">"
 
  override def toString = this.standardForm
 
}

which is really stupid: it wraps a name along with an email address, and it adds a convenient textual output form.

Now I would like to be able to write something like:

val me = "Julien Ponge" is "julien" at "gmail.com"
println(me)

To do that I wrote a simple builder:

 
class EmailBuilder(name:String) {
 
  var id:String = ""
 
  def is(str:String):EmailBuilder = {
    id = str
    this
  }
 
  def at(str:String):Email = {
    new Email(name, id + "@" + str)
  }
 
}

then an implicit conversion function:

implicit def emailBuilder(name:String):EmailBuilder = new EmailBuilder(name)

And that's it.

You should always learn new languages: they are all worth something great! Be polyglot, seriously.

By the way I heard that some of the Scala features are coming to the next major version of Groovy, which is going to be exciting!

Filed under: English, Geeking No Comments
10Apr/090

IzPack 4.3.0-rc2 released

See the offcial news.

We need you to:

The full list of changes is available from our JIRA tracker.

Thanks for testing!

Filed under: English, IzPack No Comments

JPz'log is Digg proof thanks to caching by WP Super Cache