Dec 11 2007

TechKnow Year In Review 2007

It is that time of year where we reflect on the accomplishments of the passing year and look forward to the one to come. Here is a window into the past year in technology through this year’s popular posts on TechKnow Juixe.

Top 5 Top Lists

Software Development

Java

JavaScript

Ruby

Ruby Shoes

Ruby on Rails Plugins

Windows Tips

Mac OS X Tips

Year In Review

Seasons Greetings

Technorati Tags: , , , , , , , , , , , ,


Nov 13 2007

Java Outlook Connector 2.0 Review

If you work with Java and need to access meetings, contacts, emails, etc from the users Outlook, you could have done it using Groovy and Scriptom. But to write Java code, instead of Groovy code, you can use Java Outlook Connector (JOC) from Moyosoft. JOC is basically a wrapper to COM for accessing Outlook. Once you have added JOC to your project and you have imported the JOC classes you can write code to read and write data to outlook. Here an example that reads your contacts and prints out the full name and company name for each contact…

[source:java]
// Get Outlook Application
Outlook outlook = new Outlook();

// Find default Contact folder
OutlookFolder contactFolder = outlook.getDefaultFolder(FolderType.CONTACTS);

// Iterate over the contact items in the default contact folder
for(ItemsIterator j = contactFolder.getItems().iterator(); j.hasNext(); ) {
OutlookItem item = (OutlookItem)j.next();
// Verify that the item is a contact
if(item.getType().isContact()) {
OutlookContact contact = (OutlookContact)item;
// Print some contact info
System.out.println(“Full Name; “+contact.getFullName());
System.out.println(“Company; “+contact.getCompanyName());
}
}

// Get contact subfolders
FoldersCollection contactFolders = contactFolder.getFolders();
for(FoldersIterator i = contactFolders.iterator(); i.hasNext(); ) {
OutlookFolder folder = (OutlookFolder)i.next();

for(ItemsIterator j = folder.getItems().iterator(); j.hasNext(); ) {
OutlookItem item = (OutlookItem)j.next();
if(item.getType().isContact()) {
OutlookContact contact = (OutlookContact)item;
// Print contact info
System.out.println(“Full Name; “+contact.getFullName());
System.out.println(“Company; “+contact.getCompanyName());
}
}
}

// Dispose the library
outlook.dispose();
[/source]

Here is another example that lists all folders (contact, meetings, inbox, etc) from Outlook in a neatly indented format. In this example I will create a function which will call itself recursively for subfolders.

[source:java]
public static void searchFolders(FoldersCollection folders, String indent) {
// Iterate over outlook foldres
for (FoldersIterator fi = folders.iterator(); fi.hasNext();) {
OutlookFolder folder = (OutlookFolder)fi.next();
// Print the folder name
System.out.println(indent+”Folder Name; “+folder.getName());
// Recursively search subfolders
searchFolders(folder.getFolders(), indent + ” “);
}
}
[/source]

To invoke the searchFolders method to actually print out all the folders in Outlook, I would use code like the following.

[source:java]
// Get Outlook Application
Outlook outlook = new Outlook();
searchFolders(outlook.getFolders(), “”);
// Dispose the library
outlook.dispose();
[/source]

Again, for the above example to work you need to add the joc and moyocore jars to your project. Once these jars have been added you can import them. All the code in these examples throw exceptions which has been omitted to keep the samples simple.

Java Outlook Connector has support for Outlook notes, meetings, mails, contacts and more. If you are a Java developer that has to write software solutions that integrate with Outlook, you might already have discovered the usefulness of Java Outlook Connector.

Technorati Tags: , , , , , ,


Nov 11 2007

2008 JavaOne Call for Papers

If you ever wanted to be a speaker at JavaOne, you have until November 16 to submit your proposal for technical or Birds of a Feather sessions. Last year a big theme was Java scripting with Groovy and JRuby and I expect this to be a hot topic at the JavaOne 2008. I also think that there is enough interest that some technical sessions will be devoted to Scala. Web frameworks that depended on these programming languages, such as JRuby on Rails, Grails, and Lift, would be great Bird of a Feathers sessions.

At JavaOne 2007, some popular sessions where those that pimped out business application GUIs, such as the Filthy-Rich Clients talks by Chet Haase and Romain Guy. Anything session talk that promises to jazz up an application UI will definitely be well received. Last year, Sun made a big splash by announcing JavaFX Script and I am sure there will be a lot of interest on this technology at JavaOne 2008.

If you think you can give a talk on any of these topics, you have until November 16 to submit your proposal. Good luck and see you there at JavaOne 2008!!

Technorati Tags: , ,


Oct 27 2007

Top Programming Books on Google Book Search

Here is an extensive list of top programming books available for preview on Google Books. Google Books provides scans of thousands of textbooks. The scans are not the best, most books have visible scan defects in them.

Even though the scans are not the best, there are some features that just work well. Just like Google Maps, where you can send a link to a map (with a set size, address, etc), with Google Books you can send a link to a specific page in a certain book with specific words highlighted. Google also has handy links such as the table of contents, popular passages, and where to buy the book (perhaps in a better quality PDF format).

All the books listed here have a ‘limited preview’, meaning that some pages are not available for viewing but for the most part you can browse through most the the book. Google Books does indicate the pages that are not available.

Java
The Java Language Specification
Effective Java Programming language
Java: The complete Reference
Java In A Nutshell
Head First Java

C/C++
Practical C++ Programming
C++ The Core Language
The Concurrent C Programming Language
C++ Primer Plus

.Net/C#
The C# Programming Language
The Visual Basic .NET Programming Language
Pro C# 2005 and the .NET 2.0 Platform
Learning Visual Basic .NET
VB.NET Language in a Nutshell

Python
Python in a Nutshell
Learning Python
Visual Quickstart Guide: Python
Python Pocket Reference
Python Cookbook

JavaScript/DOM
JavaScript: The Definitive Guide
Beginning JavaScript with DOM Scripting and AJAX
The Book of JavaScript
The Complete Reference JavaScript
JavaScript Bible
DOM Scripting

Ruby/Rails
Ruby in a Nutshell
The Ruby Way
Beginning Ruby
Ruby on Rails: Up and Running
Rails Solutions: Ruby on Rails Made Easy
Beginning Ruby on Rails E-Commerce

PHP
PHP in a Nutshell
Programming PHP
PHP Cookbook
Learning PHP and MySQL
Learning PHP 5

Database
Visual Quickstart Guide: MySQL
MySQL Cookbook
MySQL in a Nutshell
MySQL Tutorial
Programming SQL Server 2005
SQL Server 2005: Developer’s Guide
SQL Server 2005: A Beginner’s Guide
Beginning SQL Server 2005 Express

Technorati Tags: , , , , , , , , , , , , ,


Oct 27 2007

Mac OS X Leopard

Mac OS X Leopard is out, and so is the verdict. Apple claims over 300 features, but one key feature missing is Java 6! If the next version of Mac OS X does not include the latest version of Java, my next upgrade will be to Ubuntu. Since I can’t get what I want with Leopard, I need to use bootcamp to dual install Windows XP too.

Here are some links to reviews, upgrade instructions, and development news for Leopard.

Reviews

Upgrade

Development

Technorati Tags: , , , , , , , , , ,


Oct 25 2007

EclipseWebEnabler Review

Have you ever been on the road or away from the office when you are struck by an idea for a new features and wanted to debug or prototype your application but found yourself without access to the code base? What if you where able to connect to the Eclipse running on your work desktop from anywhere in the world using a browser? Well, now you don’t have to wonder. EclipseWebEnabler is a Eclipse plugin from IBM AlphaWorks that allows you to connect, interact, and manipulate an instance of the Eclipse IDE via FireFox. Basically, the plugin converts the Eclipse SWT-based UI to XUL which can then be delivered to a browser via the Jetty server.

For EclipseWebEnabler to work you do need an instance of Eclipse to be running on your desktop. Once the Jetty server embedded with the EclipseWebEnabler plugin has started you can point your browser to it, any change you do in browser will be reflected in Eclipse, and vice versa. You can edit Java code files in FireFox and the new edits will be reflected in Eclipse, in near real time.

EclipseWebEnabler Plugin

Even though I think that the EclipseWebEnabler plugin is innovative, I soon discovered that it doesn’t enable completely or well. EclipseWebEnabler, as of this writing, is lacking a lot of fundamental features. Closing source files from FireFox is not implemented. The ia no code syntax coloring or highlighting at all. You can’t resize views. There is too much flickering when moving between source files. And there is no security whatsoever.

Even with it’s obvious shortcomings, I think that the EclipseWebEnabler plugin take the price for Most Outrageously Innovative Idea 2007 award. I haven’t seen an application features this thought provoking since GWT took the price in 2006.

Once the kinks are worked out, it might be possible to write a fat client application using the Eclipse RCP and then have the EclipseWebEnabler generate a web version for said application.

Technorati Tags: , , , , , , , ,