Tuesday Jan 13, 2009

Java Input Method Testing on Windows and Mac

I know Java input method has been around for quite some time, but I have never really had a chance to play with it until now. Our JavaFX i18n team is working on implementing the on-the-spot input method feature for JavaFX (not yet released) so I am working on familiarizing myself with this technology. I am writing this entry more for myself and my team, but hopefully other readers will also find it useful.

I am focusing on Windows and Mac platforms now, as these are the currently supported platforms for JavaFX.

So what is Java input method? It's all described here: Using Input Methods on the JavaTM Platform.

Let's use City Input Method as an example for testing.

Windows Platform

1. Download City Input Method jar file from here.

2. Copy the jar file into the extension directory.
# cp CityIM.jar <JDK_HOME>/jre/lib/ext

Note: Make sure to copy it to jre/lib/ext, not lib/ext!

3. Write a Swing-based application (I just grabbed this source file but any Swing-based application with text component should do).

4. Compile and Run.
# javac CelsiusConverterGUI.java
# java CelsiusConverterGUI

5. Click on the System menu and now we should see a new menu item, called "Select Input Method".

Mac Platform

1. Download City Input Method jar file from here.

2. Copy the jar file into the extension directory.
# cp CityIM.jar /Library/Java/Extensions

3. Write a Swing-based application (I just grabbed this source file but any Swing-based application with text component should do).

4. Enable Java input method.

This step is different from Windows platform. We need to use an alternative method of selecting an input method by pressing a user-defined hot key. We need to configure it first.

# cd /Applications/Utilities/Java
# open -a "Input Method Hotkey.app"

This brings up the following window, where we can specify the hot key for Java input method. I am going to use Ctrl-a.

5. Compile and Run.
# javac CelsiusConverterGUI.java
# java CelsiusConverterGUI

6. Hit Ctrl-a when the focus is on the application, and we should see the input method selection window popping up, as below.

Pretty neat!

Wednesday May 14, 2008

Proctoring JavaOne Hands-on Labs

This year, I decided to do something different for JavaOne. Instead of being an attendee, I decided to be on the other side - be the one to help attendees. I volunteered my time to proctor four hands-on labs.

It was truly an amazing and exciting experience for me. It was a great opportunity to work closely with engineers/evangelists/technical writers who work on key Sun technologies. I also got to play around with the latest and the coolest technologies that Sun has to offer. It was fun! I also met with many Sun employees from all over the world and had a great time chatting with them. And of course, last but not least, chatting with the lab attendees was a lot of fun too. I love helping others and hearing what they had to say about our labs, our technologies and our company. Many stopped by on the way out to thank me for all the help that I have extended to them and told me that the labs were good and they learned a lot. I felt great!

The labs that I have proctored are the following:

1. JavaFX
2. Ruby on Rails
3. jMaki
4. Woodstock

Since I was not very familiar with most of these technologies, I spent a significant chunk of my time studying and learning to make sure that I have enough knowledge to help our attendees should they encounter any issues during the lab. Yes it took a lot of my time, but I really think it was time well spent.

If you did not get a chance to attend the labs, here is good news. All of them are now available for you to download and work on at your own pace. Check out JavaOne Hands-on Labs 2008.

It was interesting to see that there were all kinds of lab attendees. Some were really interested in doing the labs fast (I mean really fast) to get the prizes. Others were taking their time to really learn the technology, sometimes what's behind it. Others were familiar with similar technologies and wanted to compare. I also met one attendee from the JavaFX lab, who was a graphics designer. She told me that she saw the demo and she wanted to see if this can be used in her work. I was excited, as they (content developers) are one of the targeted users of JavaFX!

Despite the long commute (it took me 2.5 hours one way door-to-door) I enjoyed the event very much and I am looking forward to being a part of the team again next year.

Friday Apr 18, 2008

MySQL Conference

I have had an opportunity to attend MySQL Conference at the Santa Clara Convention Center from April 15-17. Why did I attend it? I am neither a DBA nor a hard core database engineer/developer (though we do use MySQL for our internal tools, so it is definitely helpful for me to attend). I attended the conference, because our team (Globalization) will eventually get engaged to work with them on the MySQL's globalization needs, and I will be one of the point of contacts for this project.

In any case, attending this conference was very interesting and somewhat eye opening experience for me.

I have been working with Java and its extended family technologies for years. Not that I was not aware of other technologies out there, but I did underestimate the power and/or popularity of other technologies, especially on the client side. It seems like PHP and Ruby are very dominant when combined with MySQL. Even our old friend perl is doing very well. It's time for me to pick up some books!

There were a lot of tools / technologies that were showcased at the conference. Here are a few of them that got my attention, because they related to what I am doing with our internal tools development. I am sure others have different lists, based on their needs.

1. MySQL Workbench

The very first session that I attended and it was a good start. This tool just has reached GA (General Availability) status and it is ready for us to try out. In short, this tool helps us to visually design database schemas. But that's not it. It's packed with a lot of useful features and functionality, and the demo was quite fascinating. I know there are other tools in the same domain (mostly not free) but this one does look very promising. And it's free to use!

2. MySQL Sandbox

This is not part of the MySQL family, but the tool is available under GPL. This tool allows users to easily create a sandbox environment for MySQL. It runs fast and will save tons of time for DBA/engineers if they need to do a lot of testing on different versions of MySQL and/or use clustering. The selling point of this tool is that it is easy to use with hardly any configurations required. I completely agree with this philosophy, and quite frankly, I was wowed by the demo.

3. Sphinx

This is a full-text search engine, distributed under GPL. It works very well with MySQL and its performance seems to be blazing fast. It can be embedded into any client application. I am very interested in testing it out in our internal tools.

4. Zmanda

This is an open source backup software for MySQL. I used to test a backup software when I was in college, so I am somewhat familiar with the complexity and criticality of software backups. Obviously, the amount of data that needs to be backed up has increased exponentially since my days; however, the concept still remains the same. It was interesting to note that one of the keynotes was presented by the CEO of this company on their product line - perhaps an indication of the importance of having proper backups.

I found sessions on different tools for benchmarking and monitoring as well as best practices for DBA and schema designers to be interesting. The funny (and ironic) thing is, much of the best practices were somewhat common sense (like doing your backups on a regular basis and making sure that you test your backups) but we often neglect to do it.

Keynotes were interesting also. Many big guys were there to entertain the audience. Big data and how to handle them efficiently seemed like the key topic that challenges MySQL and the like, going forward.

On the exhibition side, I saw a range of sponsors - big names like Sun & MySQL (of course!), HP, Jasper Software, Google, Facebook, as well as startups. I also saw an OpenOffice.org booth, and I had to stop by and ask for the reason for their booth (it seemed somewhat odd to see them at MySQL Conference). The lady manning the booth told me that they have a plugin now to read MySQL database and convert the data to OpenOffice format and display them. Interesting. There were companies like Red Hat Linux - to support MySQL as a partner.

Particularly, I was excited to see Jasper Software there. I am currently evaluating Jasper Software's JasperReports technology for our internal tools' reporting engine, so having an opportunity to chat with them was very worthwhile for me.

One disappointment for me was that the globalization needs were not very strongly addressed. I attended one session on character sets, and it appeared that MySQL still has ways to go when it comes to multi-byte character support. Good thing is that the next release (6.0) seems to be much more promising in this regard.

Overall, I had fun and learned a lot. Food was better than what I had expected (hot food, with different cultural flavors). But by the end of the third day, I was quite exhausted and I was ready to hit the road and go home.

Thursday Jul 19, 2007

New to Mac

I have started to use Mac for my day to day work. It felt VERY strange at the beginning, as I have been a Windows/UNIX user my entire career as a software engineer. Mac? What? That used to be my response to Mac, until... hmmm... recently.

So why did I choose to use Mac?

Well, I have quite a few Mac fanatics around me. They used to always show me how cool Mac is and how easy it is to use. I guess I have seen enough of them that I felt that I should at least give it a try before I say no to it. So I did. Hmm... it was kind of hard. How do I do this? How do I do that? I know how to do them all in Windows but on Mac, I don't know! It was frustrating at the beginning, but after spending some time with it, I started to get a hang of it, and yeah, it's actually kind of neat. I like the Spotlight feature a lot, and the Expose feature is awesome! Now I have started to enjoy Mac more, and started to appreciate all other features, like cool silver body, the magnetic power cord, etc., etc. Am I getting brainwashed???

Getting to know Mac is also good for my work, as most of the products are now supported on Mac as well. I have Parallels running as well, so I can do both Mac and Windows work at the same time. This is really cool.

There are still a lot of things that I don't know how to do. I hope to resolve them little by little and share my discoveries here, or ask for help!




« August 2016