Luck had it that I got hold off a free registration for the SDForum’s Open Innovation and Research Fair in Santa Clara, CA on September 18, 2009.
Being so close to home, I managed to shuffle my work schedule around and attend the morning part of the event to listen to the keynote speakers talking about how innovation happens in their corporations.
Albeit the conference was not very technical and I clearly was not the typical attendee (senior and manager are not part of my job description :-)), I find this events rather interesting and a good opportunity to step back from the computer screen and the news reader and look at things from another perspective.
The keynotes were delivered by representatives from Nokia, HP, IBM, Paypal, Forbes and EMC and it was clear that every company has a different perspective, or approach, on innovation. The ones I got the most value from were:
The message from these keynotes is that there is no secret or standard recipe to create innovative technologies. It can range from a very science focused internal research strategy, to an shared activity between a company’s research departments and the academia, and it can even happen outside of research, when you join technologies together to create something better than the sum of the parts.
And a honorable mention to University of Minho, Braga, Portugal, that has been participating in the HP Open Innovation program doing research projects on cloud computing.
Last Thursday, August 27th, Google kindly hosted the second edition of the EclipseDay at the Googlepex. The event was a full day of technical sessions on Eclipse. Having been an Eclipse tools developer for the last 1-year, this event was an excellent opportunity to improve my Eclipse skills, network with other Eclipse developers and attend a series of excellent talks.
The agenda divided the sessions in two tracks and I selected the following sessions to attend:
Overall, it was a great day! Although 3 sessions focused on build/provisioning/deployment, each one of them tackled different aspects of the process and contributed with valuable insights. Another thing I would like to note is the quality of the speakers and their sessions! No product or marketing pitch, just pure technical joy
As of this writing, the slides are available online at http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2009#Presentation_Slides_.26_Videos
Thanks to the organizers for EclipseDay 2009, and hope to join you again in 2010!
Today I cameÂ an issue that required me to debug a custom Ant task that we have. While the Eclipse integrated debugger allows you to step through the targets and tasks in the build.xml file using the action Debug As -> Ant Script, it doesn’t actually let you step into the java class that implements the task. This is a major drawback, as most of the complexity (and issues :-)) tend to be in the task implementation code.
After searching around for a bit, I came across the Eclipse Remote Debugger debug configuration. This configuration allows you to remotely debug applications, by establishing a JDWP (Java Debug Wire Protocol, part of JPDA – Java Platform Debug Architecture) connection between the running application and the debugger. After learning about this, setting up the environment to debugg Ant tasks from within Eclipse was pretty straightforward.
The first step is to setup the Ant script launcher to run in debug mode and attach to the debug server. The following should be used as JRE arguments for the Ant configuration:
You can setup your Ant configuration by going to Run -> External Tools -> External Tools Configurations and creating a new Ant Build configuration. Inser the location of the build file in the main tab and setup the arguments in the JRE tab:
After the Ant configuration is setup, we need to take care of the remote debugger configuration. Go to Run -> Debug Configurations… and create a new configuration for Remote Java Application. Make sure you set the same port number that you used in the Ant configuration, and you are good to go.
Now, place the breakpoints in your build.xml and java classes. In order to debug, you need to first launch the Ant script and then attach the debugger to it. Do right click in the build.xml file and select Debug As -> Ant Script. Then go to Run -> Debug Configurations… select the Remote Ant Debugger and click Debug. The debugger will now attach to the running proccess and let you step through both the xml file and the java classes:
AT&T Global Network Client is a VPN client used worldwide by several corporations to provide remote access to their intranet.
AT&T kindly provides a linux package, but in .rpm format (which as fine for me until now, as I was an openSuse user) and not in .deb format for Debian based distros like Ubuntu. You can get the latest .rpm package from here.
I tried converting the package using alien, but the installer didn’t work correctly. After some googling, I found the article “AT&T NetClient Debianizer” from Andre Macedo. Andre provides a utility, ubuntu_rpm2deb.sh, that will calculate dependencies needed and correctly create a .deb package that can be installed in your Ubuntu system. Here are all the steps I used to install AT&T Global Network Client:
# wget ftp://ftp.attglobal.net/pub/client/linux/agnclient-1.0-220.127.116.1100.i386.rpm # wget http://blog.afmacedo.com/linux/ubuntu_rpm2deb.sh # chmod a+x ubuntu_rpm2deb.sh # ./ubuntu_rpm2deb.sh agnclient-1.0-18.104.22.16800.i386.rpm # sudo dpkg -i agnclient-1.0-22.214.171.12400.i386.rpm
After the installation is complete, we need to start the client’s daemons:
# /etc/init.d/agnclientd start # /etc/init.d/agnLogd start
And start the client by issuing:
I occasionally received the following error message when trying to check the status of the daemon:
# /etc/init.d/agnclientd status /etc/init.d/agnclientd: line 54: [: 13336: binary operator expected agnLogd is not running.
The error message was caused by having multiple agnclientd processes running. Just stop all of them and start the daemon again:
# sudo killall agnclientd # sudo /etc/init.d/agnclientd start
Hope this helps!
IDUG (the International DB2 Users Group) is sponsoring a worldwide contest initiative called The XML challenge – Search for the xml superstar. This contest aims to recognize developers (students or professionals) that create XML solutions, in one of the following categories: Video, Gadget, Query, PortableApp and XML Contest.
They are offering thousands of dollars in prizes, including Wiis, Zunes, iPods, Conference passes, Notebooks, GPS, etc…
If you live in US, you can submit your Video and Gadget entries until December 16th and 17th, respectively. The XML programming contest has also started and submissions will be accepted till January 31st.
For other countries, keep checking the website xmlchallenge.com for updates on your local contest.
If you are into photography, then you should already know that calibrating your monitor is something really important if you plan to print your pictures. I recently printed some photos and noticed that the printed colors were considerably different from the colors on my LCD. After comparing my monitor with a few others, it was obvious that mine, and some of the others too, were not color calibrated.
Monitors can be calibrated to display the “correct” colors by using a calibration device, complemented by the vendor software. I decided to buy the Spyder2Express since it had good reviews and a reasonable price. Unfortunately, there is no color calibration device that is supported on Linux by its vendor and I currently use Linux (openSuse) as my main operative system. I could use my work laptop running windows to calibrate the monitor, then export the color profile and import it in Linux. There is an article here on how to do it. With help from one of the comments in that article, I found about Argyll Color Management System. Argyll is a monitor calibration software package for Linux that supports most of the existing calibration devices. It uses the Windows binary software to create a Linux binary in order to be able to communicate with the device to run the calibration tests and create a color profile. It also provides an utility to apply the color profile to your monitor.
The steps to calibrate your monitor in Linux using Argyll are pretty simple. In my case, using the Syper2Express device, all I had to do was runt the following commands(as root, or give the user permission to communicate with the usb device):
$ cd Argyll_V1.0.3/ $ ./spyd2en -v /media/ColorVision/setup/setup.exe (creates binary file to communicate with device) $ ./dispcal -v -y l -o MyMonitor (runs calibration tests and creates monitor color profile) $ ./dispwin MyMonitor.icc (applies color profile to monitor)
The generated color profile can also be imported to your post processing software like GIMP in order to use the monitor color profile instead of using a more common profile like sRGB or Adobe RGB.
exiftool is a very useful utility that allows you to query or edit EXIF information from pictures. Going through some of my pictures recently, I have found some sets of pictures with incorrect date in the EXIF info, be it a few hours off or even 1 year and a few days off. Fixing them one by one was not an option, so after a couple of searches on google I found exiftool. It is a command line utility that lets you edit EXIF information and you can do it in batches of files or folders, even using conditions to specify when a change must be applied.
For me, the need was only to change some photos info so that it shows the real time they were taken, three hours before the saved setting. The command was as simple as this:
exiftool -DateTimeOriginal-='0:0:0 3:0:0' -CreateDate-='0:0:0 3:0:0' myfolder/
The format for date changes is ‘YYY:MM:dd hh:mm:ss’.
Very useful tip from Novel CoolSolutions on how to increase the disk size of a VMWare image: http://www.novell.com/coolsolutions/tip/15344.html
I currently develop mostly in Windows using Eclipse, so I decided to create an openSuse 11.0 vmware image to test some of my code, as our product supports various platforms, including some flavors of Linux. The 10GB disk size soon became too small and now I need to increase it. Here are the steps I had to do:
To resize the guest Os hard disk size, I issued:
vmware-vdiskmanager -x 15GB opensSuse.vmdk
However, step 1 only resized the disk, not the partitions. Starting the partition manager from within the guest Os didn’t work, because the partition can’t be altered while it is still mounted. A simple solution to overcome this issue is to use a Live CD. I still had the openSuse live CD ISO image I used to install the guest Os, so I just pointed the guest OS cd-rom drive to that .iso file.
After booting from the CD-ROM drive, go to Yast -> System -> Partitioner , select the partition you want to expand and click Resize. Select the new size for the partition and click Ok to apply the changes to the partition table.
Reboot your machine and voila! You existing partition will now have the new size.
After three years living in San Jose, I was proven wrong on my assumption that it was impossible to commute in San Jose using public transportation. After careful examination of VTA time tables, and several trial and error attempts, I am now commuting to work, having found some good things about commuting:
Of course there are always drawbacks:
But the goal of this post is not really to dicuss about VTA’s schedule, but instead about podcasts, more specifically, IT podcasts. I have been alternating between reading and listening to podcasts during the trip, and the podcast I have been listening to is Software Engineering Radio. It is an excellent podcast, and I’m still in episode 30, so have a lot to go (they have 103 as of today ). However, I’m looking for other series to mix up with this one, and also because I might skip some of the episodes that are not of my interest.
So, what IT podcasts do you listen to and what do you like about them? I recently added two series to amarok, but haven’t listened to any episode yet:
Don’t forget to leave your comment and let me know what are your favorite IT podcats!
When I migrated my development environment to Eclipse 3.4 Ganymede, one of the things that caught my attention on Eclipse’s update website was a plugin called Mylyn. A visit to the website, a look over the webcast and it sounded something promising.
It definitely is! Mylyn is a task manager that changes your IDE context based on tasks. You create a task, add resources to its context and when you activate the task, it hides all the other (unneeded) resources from your views (project/package explorer, outlines, editors, etc…). It provides integration with several task repositories, like Bugzilla and Trac. Unfortunately, it doesn’t provide a connector to Clearcase, but I’m still able to use it in an automated way.
I find the tool really awesome when I do something basic like switching tasks: it just closes all the editor windows and projects in the explorer for the task I’m leaving and opens all the files I was working on for the task I’m switching to. This would take me several minutes to do by myself, so having a tool that does that in 1 second is pretty neat!
Here are some more things I like about Mylyn:
And the things I don’t like that much:
Overal, I think Mylyn is a great tool and very useful! Even more if you are working with Bugzilla/Trac projects.