password
username
Sponsored by CakeMail, an email marketing software.
Newsletter preview

Javalobby logo image
Thursday, February 07, 2008 
IBM developerWorks logo

Enjoy these free webcasts from
IBM developerWorks

  1. Achieving True Agility - How process can change the behavior of your tools
  2. Info 2.0 - Harnessing the power of Web 2.0 and Enterprise Mashups
  3. Calling All Testers! - Find application vulnerabilities early in the development process
  4. Creating Firefox User Interfaces - Make Firefox data transforms easy

Note from Rick & Matt: These webcasts require an IBM registration, but bear with it. They are professionally produced and may be well worth the hassle. If we could send you straight to the webcasts, you know we would!

 Perspective

Hot off
the Press!

jQuery in Action
New guide to the jQuery Library for client-side JavaScript
Laszlo in Action
The first developer's guide to OpenLaszlo
Flexible Rails
Build next-generation RIAs

Special!
Save 25% Enter DZJAN25 at checkout

www.manning.com


Be sure and
check out a
No Fluff Just Stuff
Java conference
coming your way!

2/08-2/10 San Jose 2/29-3/02 Milwaukee
3/07-3/09 St. Louis
3/14-3/16 Minneapolis
3/28-3/30 Omaha
4/04-4/06 Boston
4/11-4/13 San Diego
4/11-4/13 Portland
4/18-4/20 Jersey City

 
 A Developer's Perspective
 Next section
Robert Cooper is an independent Java developer in the Atlanta area, working with J2EE technologies and web/web service projects. He is also the maintainer of the FeedPod project and a contributor to several other open source Java project, and one of the propretors of the Screaming-Penguin.com website.

Robert Cooper3 Java Projects You Should Know About
By Robert Cooper

Lately I have been tripping over some really amazingly useful open source projects that were kind of hard to find. They were difficult to find because of noise in search results, and they just don't seem to get a lot of play.

BlueCove:

BlueCove is a JSR-82 Java SE implementation that currently interfaces with the Mac OS X, WIDCOMM, BlueSoleil and Microsoft Bluetooth stack found in Windows XP SP2 and newer. Originally developed by Intel Research and currently maintained by volunteers.

BlueCove runs on any JVM starting from version 1.1 or newer on Windows Mobile, Windows XP and Windows Vista, and Mac OS X.

Linux BlueZ support was added in BlueCove version 2.0.3 as an additional GPL licensed module.

The GPL license on the Linux version is unfortunate, but this is a great project. A one JAR, no muss, no fuss Bluetooth stack for the desktop. I have laughed for years that you can write Java code on a phone that talks Bluetooth, but you can't write a desktop app to talk to the phone app. This is a really exciting project.

ZXing (read: Zebra Crossing):

ZXing (pronounced "zebra crossing") is an open-source, multi-format 1D/2D barcode reader library implemented in Java. Their goal is to support decoding of QR Codes, Data Matrix, and the UPC family of 1D barcodes. It will provide clients for J2ME, J2SE, and Android.

Why? There are several great readers out there, and there are bits of open-source code already for decoding, but not both at the same time. They want everyone to have access to some great source code to play with, so they decided they'd try an experiment, and open up our in-progress effort. Maybe some of it will be useful to you -- maybe you can help improve it.

Talk about useful! Especially the idea of turning every camera enabled phone into a barcode capable device is compelling.

DBMigrate:

Similar to 'rake migrate' for Ruby on Rails, this library lets you manage database upgrades for your Java applications.

Setup

  1. Choose a version table name for your database. The default is db_version.
  2. Choose a package within which you will store all your classes and scripts for migrations.
  3. Create a directory within that package named after your database (in lowercase, e.g. mysql).
  4. Create a script in that directory named migrate0.sql and in that script create the version table and insert version 1, e.g:
  5. CREATE TABLE db_version (version integer not null) ENGINE=InnoDB;
    INSERT INTO db_version VALUES (1);

Runtime

  1. Before accessing your database in your programs you need to create a Migrate instance with the appropriate database configuration.
  2. Make sure the version is set to the version of the program accessing the database.
  3. Call migrate() on your Migrate instance to ensure that your client version matches the database version. If you have enabled 'auto' and don't specify a client version it will look at the database version it will scan for more recent migrations. You have a few options for defining migrations. As far as code they can be either Java, Groovy or SQL. As far as version transition they can define either 'to' or 'from' flavors. The 'from' flavor is used when you may want to skip versions while the 'to' flavor is for when you want the target database version to be the same as the version number in script and don't mind the reduced flexibility.

Until next time,
Robert Cooper
http://www.screaming-penguin.com/

 
 DZ Top Links
 
 DZone Top Links
 Next section
 Back to top
most clicked this week from dzone.com

dzone

Most-clicked links this week

 
 Popular at JL
 
 Popular at Javalobby
 Next section
 Back to top
A recap of some of the most popular and active Javalobby.org discussions this week.

Why are we not using Java EE 5?

Believe it or not, in a few months the Java EE 5 specification will be two years old (Final Release on the 11 May, 2006). And nobody is using it.

Why Microsoft Needs Yahoo: the Real Story

So one day, Scott McNealy, founder and chairman of Sun, read in his morning newspaper how the use of Java was rapidly diminishing, courtesy of something called 'The LAMP Stack'. Furiously, he called his accountant.

The war on Grails is really a war on Spring

It seems that members of the Rails community have formed a resistance movement against Grails. They won't have it that their web framework doesn't natively run on the best VM in the world. Here's Ted Neward's take on it:

A new GC for Java 7

Jon Masamitsu wrote up a great post summarizing the current collectors in the Sun JDK and also how combinations of these young and old collectors are triggered by different JVM switches.

Is LINQ leaving Java in the dust?

Interesting story today asking whether LINQ has given .NET an edge over Java. LINQ is best-known as a way to embed SQL-like statements directly in code. However, it's really a much deeper technology that allows you effectively build DSL-like constructs in libraries that work as if they are part of the language. And that is undeniably powerful.

Switching to Mercurial

When I first heard that NetBeans and OpenJDK were going to switch to a version control system I'd never heard of called Mercurial (aka Hg) I had some reservations. Well, this weekend, we did the switch - all the sources of NetBeans are now housed in Mercurial at https://hg.netbeans.org - and I also spent Saturday setting up my own Mercurial server at home from scratch and putting a bunch of code in it and working on it. It was incredibly easy to set up!

How to Create Visual Applications in Java?

My excellent colleague Sun evangelist Chuk Munn Lee wrote me an e-mail in response to my description yesterday of how to create JConsole plugins: "I did not know that the visual library can be used outside of NetBeans. Do you need a special build of the library? Do I need to build it myself or is there a standalone version that I can download?"

 White Papers & Announcements
 
 Product Announcements
 Next section
 Back to top
Product and service announcements for Java developers.

Javalobby is still undergoing a major transition this week. Visit http://java.dzone.com for more information. We hope to have the announcements back next week and we apologize for the inconconvience.

 Your Account
 
 Your Account
 Next section
 Back to top
Manage your account info for this and other Javalobby publications.
Manage your Javalobby membership details

Click on the following links to:


 Contact Info
 Next section
 Back to top
Here's how to reach us, we love to hear from you.
Email us
Send news items to editor@javalobby.org
Send questions, complaints, or suggestions to feedback@javalobby.org
Send advertising inquiries to advertise@javalobby.org
 
Call us
Our number is (919) 678-0300. We'd love to hear from you!

 Legal
 Back to top
The fine print we'd rather avoid completely.
Feel free to redistribute this newsletter in part or in full to your friends.

Javalobby News is a service mark of DZone, Inc.
Copyright ©2001-2008 DZone, Inc.

Thank you for your continued support of Javalobby. If you prefer not to receive the Javalobby weekly newsletter, send an e-mail to ***-jlnews@javalobby.org and please ensure the actual email address to be removed is present.
Javalobby.org, 113 Legault Drive, Cary NC 27513 USA