Tuesday, November 24, 2009

Compilation issue with gwt-dnd-2.6.5.jar - Java 1.6

Recently I had to use an updated version of gwt-dnd-2.6.5.jar with Snow Leopard (Mac OS X 10.6). I was using Java 1.5 and I got below error, which indicates a class being compiled with a different Java version:
java.lang.UnsupportedClassVersionError: Bad version number in .class file

Solution: It turns out that gwt-dnd-2.6.5.jar is using Java 1.6, therefore I had use same Java version (Java 1.6) in my environment in order for my project to comile correctly.

1. Click Eclipse -> preferences -> Java -> installed JRE

2. Click Eclipse -> preferences -> Java -> compile -> select 1.6

Eclipse 3.5 installation with GWT 2.0 RC1

1. Install Eclipse 3.5 (Galileo Eclipse IDE for JAVA EE Developers): http://www.eclipse.org/downloads/ Extract Eclipse package in Application directory (on your Mac).

2. Download latest Eclipse 3.5 plugin for GWT http://dl.google.com/eclipse/plugin/3.5/zips/gpe-e35-latest.zip Extract the archive into the dropins directory in your Eclipse installation. Your installation of Eclipse will now have a directory dropins/eclipse/features/com.google.gdt.eclipse.suite.e35.feature_version and some newly installed JAR files in dropins/eclipse/plugins/
Restart Eclipse. The plugin should now be installed!

3. In eclipse, Install SubEclipse (SVN):
Click on Help menu -> Install New Software -> paste http://subclipse.tigris.org/update_1.6.x and click add button

Select all options and click next
Click Finish and you will be asked to restart your Eclipse 

4. Install Maven, if you are using Maven to manage dependancies in your project
Click on Help menu -> Install New Software -> paste http://m2eclipse.sonatype.org/update/http://m2eclipse.sonatype.org/update/ and click add button

Select all options and click next
Click Finish and you will be asked to restart your Eclipse 

Monday, November 23, 2009

Install Java 1.5 on Snow Leopard using Pacifist

Download the official  Java 1.5 update 4 zip file from the Apple: Java 1.5 update 4
Open Java package (JavaForMacOSX10.5Update4.pkg file.) using Shareware utility called Pacifist ($20 per license)
After you have successfully opened the downloaded Java package:
  • Using Finder application, navigate to
  • HD -> System -> Library -> Frameworks -> Java.VMframework -> versions
  • Select 1.5 and 1.5.0 versions and move them to Trash. Be sure to empty your trash.
  • Using Pacifist, select 1.5, and 1.5.0, right-click and choose to install default location 

Java 1.5 update 4 issues with Snow Leopard

CAfter Mac OS X Snow Leopard upgrade, I had to download Java 1.5 update 4 and got following error:

Java for Mac OS X 10.5 update 4 can't be installed on this disk. This software can only be installed on Mac OS X Leopard

Here is a solution:

  1. Click on Finder -> Utilities -> Disk Utility 
  2. Click on HD and run Repair HD Permissions
  3. Restart you Mac and magic should start happening!

Also see:

Java for Mac OS X 10.5 Update 4

Java for Mac OS X 10.5 Update 4 delivers improved reliability, security, and compatibility for Java SE 6, J2SE 5.0 and J2SE 1.4.2 on Mac OS X 10.5.7 and later.
This release updates Java SE 6 to version 1.6.0_13, J2SE 5.0 to version 1.5.0_19, and J2SE 1.4.2 to 1.4.2_21.

Download Java:

Saturday, November 21, 2009

Why Nobody Cares About Your Blog

If I walked into a crowded mall, went into the food court, stood there in the middle of it and just started talking, what do you think would happen?

Most people wouldn’t see me. Then, a few would and they would probably think I was crazy. At the end of the day, I’ll just be that crazy guy they saw at the mall.

  • speak TO your audience no AT your audience
  • personal relationships still apply
  • your job is to have something worth saying to your audience
  • get them to talk back to you
  • establish authority in the field
  • become their trusted friend

read more at problogger.net ...

HTML color codes

I found this Website to be very useful:


Future of microblogging? Corporate Twitter, geo-tagging?

In a move that appears to signal an attempt by Twitter to finally monetize its user base, the company will start selling corporate accounts to brands by the end 2009.

Though Twitter co-founder Biz Stone had hinted at such an initiative earlier this year, he fleshed out the concept this week at an industry event in London, where he said a pay-for package will offer verified streams and analytics.


Please give us your opinion in comments section..

Foursquare the next Social Media craze

Pete Cashmore: Early adopters say Foursquare could be 2010's big social-media craze 

Birthed by the team that brought us the mobile social network Dodgeball (acquired by Google in 2005 and later shuttered), the location-based mobile startup serves a simple purpose: It lets an individual share his or her location with a group of friends.

Foursquare ventures beyond utility, however: It's a virtual game in which participants earn badges for checking in at various locations; those that check in most become a venue's "mayor." By all accounts, this mechanism is as addictive as Twitter, Facebook or checking your e-mail on a BlackBerry.

read more ...

Friday, November 20, 2009

Updating Eclipse Galileo to GWT 2.0 RC2

1) Download Eclipse IDE for Java EE Developers (188 MB)  version 3.5. 
Fresh installation is recommended.

Mac: use Cocoa 32 bit
Extract in Applications directory, for example:

Drag /Applications/IDE/eclipse/Eclipse.app to your dock to make a shortcut.

2) Download GWT SDK:

Extract the zip in any location, example:

3) Install Eclipse GWT Plugin:
download and extract into Eclipse dropins directory

You should have this, or newer:

Restart Eclipse, you should see the plugin.

If for any reason you don't see these 3 icons, delete Eclipse installation, and extract all again from the downloaded archives, take about 1 minute.

Following steps are optional depending on what you are using:

4) Install Eclipse SVN plugin: Menu.. Help.. Install new software...


You should be able to browse any SVN repositories by selecting..

and typing SVN in the search, then selecting "SVN repositories"

5) Install Eclipse Maven plugin: Menu.. Help.. Install New Software ...


6) Make sure that your project uses the right SDK GWT 2.0 RC2:

Please post comments and help tips

LinkedIn - example how to make money from Social Networking

Here is a great way to make money, pay $500 per month and

  • I let you send 50 emails
  • I let you do 700 searches
  • I let you have 25 folders
Wow, that is generous indeed, but I still love using LinkedIn and no, thank you I rather work harder on building my social network.

Cloud-based IDE for Google AppEngine?

With all this talk about Chrome OS and Netbooks being stripped down to bare minimum developers must be wondering...

Can I carry a small (CPU/memory) tablet computer (preferably Mac, or Android), connect it to any keyboard and monitor (mouse not needed as tablet would serve as a touchpad) and continue my code development?

Hence the idea...

Anyone interested in writing cloud-based IDE (like Eclipse) for browsers (or Android/Chrome OS platform)?

  • kind of code-friendly wiki model with "deploy" button added
  • all the programing happens in the browser
  • no extra tools needed (can work from school lab/library computer)
  • apps inherently live in/deploys to Google AppEngine or other cloud
  • no need for code checking out/in 
  • version history would be auto-maintained
  • multiple people can edit a file and live editing would be color coded
  • login for client projects, but open source project could thrive on it
  • 100% same environment for all developers (dependency management)
  • ability to lock-out files until developer works out the bugs
  • ability for other to see "locked-out" changes

Now, I know, even today you can open JavaScript, PHP, or other script in the browser, edit it save and instantly see the changes.

Well, I was hoping for GWT or Flex solution.

Pallavi Kaushik suggested: https://bespin.mozilla.com/

Please leave a comment with suggestions, or links to the projects that do that.

Robot playing violin

Thursday, November 19, 2009

new facebook4gwt Version 1.0.6

I have made changes in preparation for the December 20, 2009 deprecation of the showFeedDialog() method.

Users should use streamPublish() instead.

Example of use:

FacebookStory story = new FacebookStory();

story.putData("name", "title"); //you can use {*actor*} which uses the logged users name

story.putData("caption", "tehasdsasdf");

story.putData("description", "tehasdsasdf");

story.putData("href", "http://www.cnn.com");//adds href for 'name'

story.addImage("http://i.cdn.turner.com/cnn/.element/img/3.0/global/header/hdr-main.gif", "http://www.cnn.com");

story.setActionLinkText("another link to something");


Wednesday, November 18, 2009

More GWT Date woes

So, as we all know, working with dates in GWT is not much fun given the lack of a Calendar class to do any sort of date manipulation. Incrementing and decrementing dates must now be done by adding and subtracting from the milliseconds that have elapsed since epoch.

So we have a method that does the calculating for you and it has been working fine, until I stumbled upon a very interesting bug. Apparently, there is some issue revolving around November 1, 2009. Here some some code to replicate my results:
public void onModuleLoad()
DateTimeFormat format = DateTimeFormat.getFormat("dd/MM/yyyy H:mm:ss");
String dateString = "01/11/2009 1:30:30";

Date originalDate = format.parse(dateString);
Date date = new Date();

for (int i = -7; i < 8; i++)
date = incrementDays(originalDate, i);
System.out.println("DateUtil.incrementDay(" + i + ") = " + date.toString());

private static Date incrementDays(Date date, int xdays)
long time = date.getTime();
time = time + (xdays * 24 * 60 * 60 * 1000);

Date newDate = new Date(time);
return newDate;
Here is the output from this test:
DateUtil.incrementDay(-7) = Sun Oct 25 02:30:30 CDT 2009
DateUtil.incrementDay(-6) = Mon Oct 26 02:30:30 CDT 2009
DateUtil.incrementDay(-5) = Tue Oct 27 02:30:30 CDT 2009
DateUtil.incrementDay(-4) = Wed Oct 28 02:30:30 CDT 2009
DateUtil.incrementDay(-3) = Thu Oct 29 02:30:30 CDT 2009
DateUtil.incrementDay(-2) = Fri Oct 30 02:30:30 CDT 2009
DateUtil.incrementDay(-1) = Sat Oct 31 02:30:30 CDT 2009
DateUtil.incrementDay(0) = Sun Nov 01 01:30:30 CST 2009
DateUtil.incrementDay(1) = Mon Nov 02 01:30:30 CST 2009
DateUtil.incrementDay(2) = Tue Nov 03 01:30:30 CST 2009
DateUtil.incrementDay(3) = Wed Nov 04 01:30:30 CST 2009
DateUtil.incrementDay(4) = Thu Nov 05 01:30:30 CST 2009
DateUtil.incrementDay(5) = Fri Nov 06 01:30:30 CST 2009
DateUtil.incrementDay(6) = Sat Nov 07 01:30:30 CST 2009
DateUtil.incrementDay(7) = Sun Nov 08 01:30:30 CST 2009
As you can see, at November 1, the time gets decremented by one hour. I have not been able to figure out what exactly is causing this. I have run a ton of tests and have not been able to come up with any answers. All other dates in 2009 appear to work (although, I did not test them all). Also, November 1, 2010 does work, but it is off again on November 8.

Just another reason why we need a Calendar class for GWT.

If anyone has any ideas what is causing this, please let us know.

Day light savings time did not cross my mind, and is seems to be the culprit in this issue. If anyone has any other ways of calculating the date on the client side in GWT, let us know. Thanks.


Here is the new incrementDays() method to deal with this issue:

private static Date incrementDays(Date date, int xdays)
long time = date.getTime();
time = time - (xdays * 24 * 60 * 60 * 1000);

Date newDate = new Date(time);

Integer dateHour = new Integer(DateTimeFormat.getFormat("H").format(date));
Integer newDateHour = new Integer(DateTimeFormat.getFormat("H").format(newDate));
if (!dateHour.equals(newDateHour))
if (dateHour > newDateHour || (dateHour.equals(0) && newDateHour.equals(23)))
time = time + (60 * 60 * 1000);
} else if (dateHour < newDateHour)
time = time - (60 * 60 * 1000);

return newDate;

GWT 2.0 RC1

Before using GWT 2.0 RC1, please understand that it is still a release candidate and will likely change before its official release. We do not recommend using this release candidate build for production applications.

Tuesday, November 17, 2009

Building Personal Brand Within the Social Media Landscape

Gary Vaynerchuck a successful wine company owner who is highly entertaining and motivating speaker. Watch out for:

  • "PP == patience and passion"
  • "legacy is greater than currency"
  • "Build your equity after hours and stop wasting time watching Lost"
  • "There is no reason to do XX you hate, you spend just as much money doing stuff you hate"
  • "Do what you like, if you like smurf.. smurf it up"

Dice Partners - Windows 7 ad with Apple bullets ?!?

Monday, November 16, 2009

Downgrading Safari for Mac OS X

Today I ran into an issue running my GWT application. The problem came from updating to Safari 4.0.4 (to read on this issue click here).

The obvious solution was to downgrade back to Safari 4.0.3. I have needed to do this before and it was not an easy task (I'm running Mac OS X 10.5.8) Finally, I found an easy way to accomplish this task.

First, you need to download an application called Pacifist. Then you need to find the dmg image for the version of Safari you want to downgrade to. In my case, 4.0.3 can be found here. Once you have the package downloaded, you will need to open it in Pacifist. Select the pkg and hit "Install". Once it starts the install process, it will tell you that the file(s) already exist. For all files / applications, tell it to "Replace" the existing file.

Saturday, November 14, 2009

Google Wave preview by ChiGTUG

fyi: ChiGTUG is Chicago Google Technology User Group.

I received al lot of questions on Google Wave over the Twitter, here is the scoop....

We have seen Google Wave presentation last summer at Google IO in San Francisco, since then our team was toying with creating the robots in the sandbox account Google kindly provided.

Recently, my whole team finally got their Wave accounts and since we are distributed between Milwaukee, Chicago and suburbs we tried to use it instead of SKYPE we normally use.

Observations we see as necessary:

  • when you start a new wave you should be an admin and be able to assign admins
  • only admins should be able to delete posts of others
  • after collaborating on a (work) topic it should be possible to export it to (PDF) file
  • you should be able to apply various formatting styles to your wave to make it look like: chat, documentation, meeting notes, etc.
  • wave needs a desktop client like iChat, or Skype
  • wave needs mobile clients: iPhone, Android
  • Wave needs to become a OpenSocial gadget so we can plug it into Blogger
  • Wave need voice and video chatting
  • Wave need screen sharing like iChat, or Skype does
I am sure a lot of these issues will be addressed shortly. We cannot wait for Wave to become mainstream application for collaboration. 

3 Lessons I Learned Building 4,000 Subscribers in 12 Months


Friday, November 13, 2009

"Mobile Marketing Apps - Designing Branded Experiences" - Mon, 11/16 @ 6pm

Please join us for the next gathering of mobile industry professionals & enthusiasts on Monday, November 16, 2009. Reserve the date in your calendar now!

Please RSVP so we can get your name on the security list and plan refreshments, courtesy of our host, TechNexus.



Date: Monday, November 16, 2009
Time: 6:00 pm – 7:30 pm
Topic: Mobile Marketing Apps - Designing Branded Experiences
Presenter: Luigi Greco, Co-Founder & Managing Partner, 01 Design
Location: TechNexus, 200 S. Wacker Drive, 15th Floor, Chicago, IL 60606
Location Notes: Participants must sign-in at the reception desk on the first floor. Picture ID required. Take the elevator up to the 15th Floor.
Directions & Parking: Please see the "Getting Here" page on the TechNexus web site for details.


6:00 pm – Sign-In / Light refreshments
6:15 pm - Quick introduction of the TechNexus startup incubation space
6:25 pm - Featured Presentation by Mr. Greco
7:30 pm > Refreshments / Networking

Presentation Synopsis for "Mobile Marketing Apps - Designing Branded Experiences"
Luigi Greco, co-founder of 01design, will showcase the 01design approach in strategic mobile & brand design for consumer brands. Over the last five years, 01design has developed apps for the iPhone and other mobile platforms for a wide portfolio of premium brands targeted to a range of consumer market segments. Using the case study format, Mr. Greco will discuss strategies for designing compelling branded mobile experiences, share some lessons learned, and touch on important issues such as marketing/branding goals, metrics and strategy.

About The Presenter
Luigi Greco plans and develops ideas for marketing and promotion activities using digital media and mobile devices; he also defines products and brings them to the market. He has worked on a wide range of projects for MTV, Dolce & Gabbana, IBM, Salvatore Ferragamo, TIM, Telecom Italia, and the Italian government.
Featured in the Adobe Magazine and Adobe in the International case study for MTV and D&G mobile projects, Luigi co-founded 01design. Working since the dot.com era as a new media designer and mixing his technical skills in this field with a unique, multi-perspective approach and knowledge that stems from a solid background in communication and new media studies, Luigi shared the vision of the mobile business with 01design with an "open garden" approach, trying to develop communication formats capable of helping global brands to start establishing a unique one-to-one marketing communication approach that turns the third screen into a real communication medium

About 01design
01design is a mobile application development and interaction strategy agency that provides custom content for brands. Customers include MTV,
Dolce&Gabbana, AC Milan, Adobe, NOKIA, BNL BNP - Paribas, BancaSella, Gambero Rosso, Mondadori Group, TIM, TelecomItalia, AirOne, Alitalia,
World Swimming Championships 2009, Committee for Formula One Racing in Rome, and Jamba.
01design is a pioneer and multi-awarded mobile agency based in Europe and has a unique team of strategists and developers that helps clients understand the mobile scenario. 01design provides marketing and technologies in order to reach the customer target goals using mobile 24/7 access platforms.
In the last five years 01design has developed a strong network of partnerships, experiences, and relations in the mobile industry with companies such as Adobe, Apple, Nokia, Opera, SonyEriccson, and more.

Additional Notes

  • Please note the security restrictions listed above for gaining access to the building and plan accordingly.
  • Light refreshments will be provided, so help us plan by confirming your attendance online as soon as possible.
  • Special thanks to TechNexus for hosting this event and sponsoring the refreshments.


   Anthony Hand,
   Mobile Monday Chicago Events Chair

   e:  anthony.hand@gmail.com
   w:  www.momochicago.com


Google's new programing language =GO

Please take a look at the comments section...

Twitter following


Beyond The Basic Social Media


Fight corruption via social media


Sunday, November 8, 2009

Creating Google gadgets with GWT - tutorial part 2

You should read part one before you continue here.

First lesson learned: you cannot get the HOST name of you gadget

String hostHost = Location.getHost().toLowerCase();
String hostName = Location.getHostName();

So I will be using URL parameters to set up my widget:

String gadget = Location.getParameter("gadget"); 

facebook4GWT API:


Creating Facebook gadgets in Google OpenSocial container does not work too well since you register the page on which Facebook app lives and in our case it is a Google server (e.g. 1.blogger.gmodules.com)


Facebook.addLoginHandler(new FacebookLoginHandler()
    public void loginStatusChanged(FacebookLoginEvent event)
if (event.isLoggedIn())
    facebookStatus.setText("Logged in");

    Facebook.APIClient().users_getLoggedInUser(new AsyncCallback()
public void onSuccess(FacebookUser result)

Solution for all this problems?

Use iFrame, I will investigate the best solutions in part 3 soon.

Building with facebook presentation - Social DevCamp 2009

David Recordon & Luke Shepard, Facebook presentation:


Social DevCamp: Facebook presentation by David Recordon & Luke Shepard

McCormick Tribune Center:

Creating Google gadgets with GWT - tutorial part 1

Create a new GWT/AppEngine project

Modify SimpleGadget.gwt.xml file:

xml version="1.0" encoding="UTF-8"?>
DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 1.7.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/1.7.0/distro-source/core/src/gwt-module.dtd">
<module rename-to='simplegadget'>

  <inherits name="com.google.gwt.user.User" />
  <inherits name="com.google.gwt.gadgets.Gadgets" />
  <inherits name="com.google.gwt.http.HTTP" /> 
  <stylesheet src="hello.css" /> 

  <entry-point class='com.taktico.simplegadget.client.SimpleGadget'/>

Modify SimpleGadget.java

package com.taktico.simplegadget.client;

import com.google.gwt.gadgets.client.Gadget;
import com.google.gwt.gadgets.client.UserPreferences;
import com.google.gwt.gadgets.client.Gadget.ModulePrefs;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;

@ModulePrefs(title = "SimpleGadget", author = "Uki D. Lucas", author_email = "UkiDLucas@mac.com")
public class SimpleGadget extends Gadget
    protected void init(UserPreferences preferences)
RootPanel.get().add(new Label("Hello World!"));

Modify SimpleGadget.html

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link type="text/css" rel="stylesheet" href="SimpleGadget.css">
    <title>Web Application Starter Projecttitle>
    <script type="text/javascript" language="javascript" src="simplegadget/simplegadget.nocache.js">script>

Add gwt-gadgets.jar to your project

Compile the project

Post (deploy) the compiled directory on the Web (e.g. iDisk)

Open iGoogle -> Add Stuff -> Add feed or gadget -> paste your deployed gadget URL

Finished SimpleGadget in iGoogle

Saturday, November 7, 2009

Social Media: what went wrong?

  • Wrong demographics
    • peer targeting instead of real audience in the community
  • Bad content
    • all about sales pitch
    • cut it is half
  • Lack of internal support:
    • CEO does not believe in this "computer thing"
    • your team thinks you are "out of it"
  • Stop Spamming
    • subscription emails vs. "your friend commented on your ..."

Social Media: house keeping

  1. Users should be able to flag other's comments as inappropriate
    • 3 to 5 strikes and out policy
  2. Tooltips should be view specific and link to an easy to maintain blog
  3. Contact-us and feedback form should be content specific
  4. Avoid "corporate" sales and marketing posts
  5. Do not allow quality of your network to dilute 
    • MySpace vs. Facebook 

Social Media: social graph

  • high cost of registration can be replaced by gmail, OpenSocial, facebook, twitter login
  • data mining