Thursday, December 25, 2008

JIRA Buddy 1.0.1 Released

The JiraBuddy Team over at PuguaSoft.com has just released the latest version of JiraBuddy 1.0.1. With this release, they added support for JIRA servers with default ports (80), added timeouts for webservice invokations, added more logging, and other bug fixes and enhancements. You can find out more at the official JIRA Buddy website at www.jirabuddy.com.

Merry Christmas and Happy Holidays!!!

Friday, December 05, 2008

JiraBuddy Version 1.0.0 Release

I'm proud to announce version 1.0.0 of the JiraBuddy Eclipse plugin for JIRA. JiraBuddy has gone into hibernation since it's initial release over two years ago. In the past few months, I've taken some time outside work and my normal life to update JiraBuddy to be compatible with Eclipse 3.4/Ganymede and fixing many bugs. Some of the new features include hyper-links inside the Hover Info feature, better server session and connection handling, and an updated preference page. To see a more complete list of changes since the last release, check out the TODO page on the official JiraBuddy website at www.jirabuddy.com.

I hope you enjoy JiraBuddy and find it useful. If you have any suggestions on how to make JiraBuddy better, or to report a bug, please send an email to development@jirabuddy.com.

Thanks,
~Chris

Friday, October 24, 2008

Sharing Java Applet Sessions in Firefox

There is a known problem in JEP (Java Embedding Plugin) for Firefox in which new sessions (or no sessions at all) are used for every new Java applet request to a servlet. This can be problematic for applets that requests data or URL from a servlet requiring authentication or a login. To get around this problem, you can pass in the current HTLM document's cookie as a Java applet parameter, and then use the cookie in the HttpServletRequest's Cookie request parameter.

In your HTML applet code, just add the document's cookie as a parameter. (Note that I'm writing the HTML applet code in JavaScript to dynamically get the document's cookie.)

<script language="JavaScript" type="text/javascript">
<!--
   document.write("<embed");
   document.write("name='MyApplet'");
   document.write("type='application/x-java-applet;version=1.6'");
   document.write("code='org/puguasoft/examples/MyApplet.class'");
   document.write("codebase='/applets/'");
   document.write("browserCookie='" + document.cookie + "'");
   document.write("</embed>");
-->
</script>
Then in your servlet, use the browserCookie parameter value as the Cookie property in the HttpServletRequest.
import javax.swing.JApplet;
import java.net.URL;
import java.net.URLConnection;

public class MyApplet extends JApplet{

   public void doIt(URL url){
      URLConnection urlConnection = url.openConnection();
      String cookie = getParameter("browserCookie");
      urlConn.setRequestProperty("Cookie", cookie);
      urlConnection.connect();

      // Now you can do what you need with the URLConnection
      // (e.g. open up an InputStream to read the data)
      // using the same cookie session.


   }
}

For more information check out these postings:


Friday, October 10, 2008

Detecting Browser Java Version Using Javascript

Trying to detect a client's browser for the installed Java plugin version and whether or not it's installed, can be a real pain. Luckily,Eric Gerds has created a JavaScript library to do just that. The JavaScript can detect the version of the Java plugin, if any, on different browsers including FireFox, Internet Explorer, Safari, and Opera. In addtion, his script can also detect QuickTime, Flash, Windows Media Player, and many other browser plugins.

Check out the PluginDetect JavaScript: http://www.pinlady.net/PluginDetect/

Tuesday, August 26, 2008

Automount External USB Hard Drive in SuSE 10.3

To automount an external USB hdd in OpenSuSE 10.3 and up, just follow these simple instructions:

First, create a new directory to mount the external HDD:
mkdir /media/usb-hdd
Next, modify /ets/fstab to include a new label entry for the external HDD. You can label it anything you want without spaces.
LABEL=YOUR-HDD-LABEL /media/usb-hdd ext3 auto,nofail,defaults 1 2
Finally, create a script in /etc/udev/rules.d/ called 99-mount.rules containing the following command:
#run mount -a everytime a block device is added/removed
SUBSYSTEM=="block", run+="/bin/mount -a"
Now, whenever you boot into OpenSuSE, the external USB hdd labeled YOUR-HDD-LABEL will be automatically mounted.

Monday, August 25, 2008

Mounting USF/USF2 BSD Filesystem in Ubuntu Linux

Ubuntu only supports read-only of BSD filesystems (USF/USF2). To mount the disk just issue the command:
mount -r -t ufs -o ufstype=44bsd /dev/yourdevice /mnt/destination


Thursday, July 03, 2008

Getting a List of Installed System Fonts in Java

Previously, you could get a list of fonts installed in the running system by using using the Java AWT Toolkit:
Toolkit tk = Toolkit.getDefaultToolkit();
String[] fontNames = tk.getFontList();
However, the Toolkit.getDefaultToolkit() method has been deprecated in favor of the java.awt.GraphicsEnvironment. The GraphicsEnvironment class describes the collection of java.awt.GraphicsDevice objects and java.awt.Font objects available to a Java application on a particular platform.

To get a list of font names installed on the system, just use the the getLocalGraphicsEnvironment() method:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontnames = ge.getAvailableFontFamilyNames();
There are many other usefull methods in GraphicsEnvironment class, for more information, take a look at the API.

Wednesday, April 16, 2008

Update

WOW! It's been a well over a year since I last posted on my blog. I'd like think it's because I've been busy, but it's mostly a combination of being busy, being lazy, and not finishing what I started.

Well, based on a suggestion from my former CTO, it would be good for my career to get back into blogging. However, I'll be changing what I'll be posting. Instead of concentrating about my life and personal stuff, I'll be blogging more about technology and programming problems in hopes of helping out other people who have run into the same problem and are looking for a solution. That's not to say I won't be blogging about my life completely, I'll just be blogging about the cool and interesting events.

Alot has happened in the past year-and-a-half, so here's a quick run down:
  • Got a new job at Integrated Services, Inc. in October 2006 to take on a more senior role and work on some cool technologies like Eclipse RCP and SWT.
  • Went on a bunch of hiking and camping trips (be sure to check out my gallery).
  • Went on a Summer vacation to Guam after seven long years. Had some of the best times of my life while visiting some relatives and old childhood friends.
  • Got a new job at ARRIS as a Software Application Engineer in April 2008. I felt like I've done and learned as much as I can at ISI. "If you find yourself the best person in the band, it's time to find a new band." - Pat Metheny
That's where I stand right now, starting the new job and getting ready for the Summer. Oh, I forgot to mention, I was able to partially tear my MCL while skiing this pass Winter. My knee still hurts and it will be another couple weeks until I'll be able to start doing anything intensive. During my recovery, I'll have alot more time on my hand, so be sure to check back for updates to my blog!