Posts

Out-of-the-box

The Intellij  IDEA IDE from JetBrains is one of those tools I have wanted to like for years now but it seems I am coming at things from a different perspective and so far it has not worked for me. I take it for a spin now and then (purchased licenses several times over the years to go beyond a short evaluation) and I thought the recent release of 13 signaled it was time to try it again. I downloaded the free Community Edition.  I decided to create a JavaFX application as my first action.  I tried it on a MacBook which happen to have a recent build of Java 8 on it.  IDEA found the JDK (this may have been from a previous installation) OK but the app would not run. The Fatal Error that greeted me after I clicked the Run button was:  unable to find package java.lang in classpath or bootclasspath My correction was to remove and add back the SDK.  (File -> Project Structure -> SDKs)  I'm not sure how extreme this might be considered by IDEA lo...

End of an Era

Given that I have been staying up a bit later than usual in recent weeks to watch my Red Sox successful quest to win another title, my schedule has been slightly off. Among other items, I almost missed the fact that Roger Brinkley recorded his last episode of the Java Spotlight Podcast . The episode, number 150, is a particularly good one IMHO because it's an interview with James Gosling.  Certainly some of what was asked and answered is not necessarily news but it is a very nicely done casual interview with one of our industry greats.  Hearing his perspective and knowing he is happily coding mostly Java using NetBeans made me smile.  Being a positive guy and wanting relative peace and harmony in our field, not to mention the world in general, I really appreciated hearing James say that he feels Oracle has been a good steward of Java. While I agree with the sentiment, I think because many, including James, did not expect it, the FUD-effect has lingered.  When J...

Mavericks

Earlier today I installed Mavericks on my MacBook Pro.  I found I had to reinstall Java 7 (JRE) in  order to get the Java Control Panel back.  I was also prompted to reinstall Java 6 when I started an older Java application. As far as NetBeans 7.4 development goes, I have not yet noticed any problems. All in all, so far...so good.

Glassfish Informix JDBC

Image
I recently had a need to get an Informix database connection going on Glassfish .  This is documented but what I found was not quite enough to get me going. I was using the JDBC driver from IBM .  After the driver is installed, there are six jar files in the lib directory.  Given that Informix is one of our primary databases, we use this driver with a variety of Java-based development tools.  Typically this involves making the ifxjdbc.jar file available on the CLASSPATH and you're good to go. In order to create an Informix JDBC Connection Pool in Glassfish,  I found that I needed to put both the ifxjdbc.jar and the ifxjdbcx.jar files in Glassfish lib directory. I used javax.sql.DataSource as the Resource Type and entered com.informix.jdbcx.IfxDataSource as the Datasource Classname . The additional settings properties I entered are pictured below. HTH, Carl 

The Mule ESB Cookbook Review

Not that long ago I began to read for review purposes the Mule ESB Cookbook.  I will start by saying I was a bit disappointed but there's certainly a possibility that my definition of a cookbook is a bit more picky that what the authors have in mind. I will say the book is generally well written and has source code references as one would expect.  When I compare the book to the documentation and examples from MuleSoft, I don't see a strong advantage with the cookbook. Generally speaking I like a cookbook to contain a recipe or two of a pattern I might want to create or something similar to it.  I don't expect to find a lot of getting started material or basic examples but then that's me.  To be fair, if you have no experience with Mule ESB (and you happen to be running Windows), this may well be a good "zero to mid-range-speed" how to guide.  For me it's a bit basic and if one is already familiar with Eclipse or an IDE which leverages Eclipse, there...

Now THAT's cool

I really do enjoy my job (for the most part) and staying current with technology, while certainly not totally attainable, is something I enjoying trying to achieve. SOA, NoSQL databases, new(ish) mobile development are a few of the technology spaces that grab my regular interest these days.  Every now and then something comes along that literally makes me fire off a positive email, tweet, blog entry, or comment to colleagues. I am very much aware of the future potential of cloud IDEs and codenvy is not something that's been off my radar.  A short while ago I got an email from codenvy that made me say "wow, now that's cool." Check it out...codenvy will now let you create an app, from a template, instantly, and without even signing in. They have built technology which creates an app, from a template, in a temporary workspace faster than some folks can get their favorite IDE to (fully) load.  In my case that may well depend upon how many projects I tend to leave ...

A Cookbook

I just started reading Mule ESB Cookbook  from Packt Publishing.  If you're like me, the "cookbook" connotation brings to mind the idea that one can use the book when a good "recipe" is needed in this case for Mule ESB.  In my experience I find such a book useful when I am first learning a technology or perhaps if I have not used the technology for a particular use case.  In most such situations there's probably not an exact match for what I might need but if it's a good book, the various solutions should include one that's in the ballpark.  I will follow up this short entry with my impressions after I have completed the book. Until then, happy coding. Carl

Mule

If you poke around a bit on the MuleSoft site, it probably won't take you long to find a nice definition of an ESB along with a discussion of when you might want to use one.  There's a line in there somewhere which makes me chuckle (mostly because I think it's true more often than we care to admit) about folks choosing a technology before understanding what architecture is actually needed for their project.  My experience has shown me that this phenomenon is not limited to SOA or even IT for that matter but that's a topic for another day. Recently we were working on some proof-of-concept stuff in Mule and ran into some trouble getting the connector for Google calendars to work.  This suite  appears to be a comprehensive set of connectors which expose the Google Apps API to MuleStudio very nicely.  My guess is that a version mismatch is causing the unit tests and examples to fail for us but I cannot confirm that.  After a few hours of effort which was int...

Time to Go?

Listening to technical podcasts while I am driving or running is a great way for me to try to keep up with changing technology and  The Changelog  is one of my newest favorites. The latest episode is on Google's  Go programming language .  While I say "Google's" I should quickly add, as does this edition of The Changelog, that Go is very much a community effort in the traditional open source style. If you have not taken the time to play with Go, I suggest doing so.  I also recommend that you listen the the Changelog and certainly this episode.  It had been some time since I looked at Go and I was reminded of the negative publicity that surrounded the announcement of its initial release.  Back then I paid little attention to the negative press but while I was impressed, I did conclude it was a bit too young for my daily needs. Go certainly has matured nicely and now has a strong following.  The fact that Go is statically typed is one of the r...

Up Next

I think it was back in March that I first blogged about DropWizard .  DropWizard is one of those funny technologies that I find falls into the category of sometimes making folks uncomfortable.  This usually initially comes off as looking down upon unconventional solutions but if you can have a conversation about it there may be something more. Sure there are organizations full of folks who won't discuss anything that's either "not supported" or even slightly off the beaten path.  It's not always part of the reason but it's worth keeping the "resume padding" factor in the back of your mind when having these discussions.  The other thought from days gone by is the "No one ever got fired for recommending ____________" (fill in the blank with your favorite currently popular and profitable software giant). The last time I blogged about DropWizard it was still new to me but I got it pretty quickly and I think you will too if it fits your use ...

whymenu

A short while ago I read a DZone article  that reminded me of some things developers should try to do on a regular basis.  In addition to staying current (or trying to do so) with all that's going on in our fun and fast-paced field, we should give something back. If you grew up in an open-source environment neither of these are foreign concepts to you.  I don't mean to imply that these are not priorities of yours if you live on the proprietary side of the street but it has been my experience that it may be less likely.  (There is a corollary in there somewhere about folks who are using open-source stuff but not buying into the concept.) On the staying current front, I have experimented with a variety of the PaaS offerings for some time now.  These include Google App Engine, CloudFoundry, AppFog, EC2, JElastic, and at least a couple more that don't come to mind at the moment.  Depending on how much time I have, I try to write something a good bit beyond ...

JDeveloper 12c on OS X

Image
It's pretty cool that JDeveloper is now a NetBeans platform app .  Wanting to give it a quick look on OS X I downloaded the Java edition generic installation. Unfortunately after unzipping it and placing it in Applications, it would not launch. Trying from the command line using this command open -n ./JDeveloper.app gave me a error: LSOpenURLsWithRole() failed with error -10810 for the file /Applications/jdeveloper/JDeveloper.app. Given past history trying to get JDeveloper going on OS X I thought I might try the JAVA_HOME environment variable first. First I checked which versions are available with this command: /usr/libexec/java_home -V this was the output: Matching Java Virtual Machines (5):     1.7.0_25, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home     1.7.0_21, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home     1.7.0_17, x86_64: "Java SE 7" /Li...

Nexus 7 by Asus

I bought my wife an Asus Nexus 7 back in mid February.  A few weeks ago it stopped working.  The unit would not come on at all.  After looking around for help on the web, we called both Google and Asus and ultimately had to RMA it back to Asus shipping on us via FedEx. Apparently this is not an uncommon problem . The phone calls to both Google and Asus involved a great deal of time and some effort to walk through the various attempts at diagnosis and revival.  These included charging cycles and button pushing/holding combinations none of which brought the brick back to life. I will note that the courtesy and sympathy levels of the Google folks seemed much higher than anyone I spoke to at Asus. Today the brick arrived at our home via FedEx in a non-working state.  Asus wants to reopen the RMA and have us send it back once again.  This time shipping is on them. We will be without this device for at least one month.  It would be nice to have a w...

New express

Last week was Google IO 2013.  I have to admit that although I have never attended Google IO, connecting with the keynotes and sessions via the web leaves me with a renewed sense of energy.  I have attended a significant number of other conferences and the positive, can-do attitude of the presenters goes a long way in my book. Sometimes in the day-to-day and week-to-week routine of our jobs we can lose a bit of the enthusiasm that comes with learning something new.  Regardless of one's profession, continuing eduction in a variety of formats is a very good thing indeed.  All this and no jet-lag. With Google IO fresh on my mind and the associated energy, I had a chance to play with a relatively new effort from Exadel  now called RESTXpress .  This software interests me on a couple of different levels and I applaud their initiative in releasing it as free software but I would like to see it as open sourced as well. If you have not yet seen this sof...

Endorsed

After writing my last post we had a short discussion about the endorsed directory and I realized I had neither fully explained the concept nor did I provide enough reference material so that it could be easily understood. This page  from Java 6 documentation technical notes explains it nicely.  The idea is you have a jar file which contains classes that you know should be used in place of the ones which are part of a particular version of Java. When I explained this in that short conversation I included the word "hack" because I was trying to convey the mess we may be creating: there is the very real possibility that other applications will be impacted because we are changing the Java runtime if Java is upgraded the "fixed" application may break again and the "fix" may be forgotten The bottom line is while I am glad Java has a convenient way to replace classes, I liken it to what I was taught about sudo'ing on Unix/Linux.  Respect it, use...

ClassCastException: JAXB

Image
A particular Java application I co-developed leverages both SOAP/WSDL and REST web services.  We use maven to manage the build process of this application which has been in production for a few years now.  It's been around long enough to have moved from Java 5 to Java 6 and now Java 7 (with limited testing using Java 8).  We have also had the experience of initially including JAXB jar files with our application and dealing with the "endorsed" directory because JAXB versions were a bit of a moving target for a while. Now that JAXB is neatly included with Java as it should be so we no longer include it.  I thought all of this was behind us (and unfortunately somewhat forgotten) until recently when we added Jersey 1.17 to the application to call some newer REST services. When trying to connect to the server, my stack trace included this: Caused by: java.lang.ClassCastException: com.sun.xml.bind.v2.runtime.JAXBContextImpl cannot be cast to com.sun.xml.internal.bin...

Raspberry Pi, motion, more Python, and stuff

Image
Things have been a little busy for me lately on many fronts.  There are a variety of projects at work which have my attention and this seems to be a time of year when things pick up before we head into the summer months. I have however been able to work a bit more with my Raspberry Pi lately and the power of the little guy continues to amaze me.  I decided to give motion a try along with, at least for now, one ip camera.  Before I get into motion on the Pi I must say I wonder how this package escaped my radar for as long as it did.  I have over the years written a few programs which detect motion by comparing images and I have looked at the work of others but somehow I missed motion.  The first thing I noticed about motion once it was up and running was the very nice CPU utilization given the capture/comparison loop. Motion works out of the box and while that should be the norm, the bottom line is that some software which has not yet approached mainstr...

JDeveloper on OS X

Image
When I have time I try to keep up with a variety of IDEs.  JDeveloper is one I have mentioned before (and encountered OS X installation difficulty before as well).  I don't disklike it although it still seems a bit bloated to me but I have not yet tried to tweak the settings. This time ADF was my main reason to give JDeveloper another look.  I downloaded the Generic version because I intended to run it on a Mac (running OS X 10.8.3).  Being a command-line guy my first attempt was a simple java -jar jdevstudio11123install.jar Unfortunately after the initial splash screen, this resulted in a small dialog box with a Exit button.  I could not maximize it to complete the installation process. Next I tried to launch the jar file via the GUI which gave the same results.  Looking around the web, I did find several solutions for this problem but some seemed complicated while others did not address this particular issue.  [My own previous soluti...

A bit of Python and some nice arguments

I really don't  use scripting languages on a regular basis but I do like to use the right tool for a job.  Or at least recognize that technologies with which we are most familiar are not always the best choice for any given use.   Python  is not a difficult language.  I have heard for years that it's the new Perl  which I find funny because of those I know using Perl, I have yet to learn of one contemplating a switch to Python. Depending on what you read, Google seems to like Python.  At least enough to create some course materia l and a whole lot of examples for their various efforts. It's been a good while since I looked at Python but it only took a short time today to write a simple script to call a REST service (as well it should).  Finding a nice little library, I chose  argparse , for the command line parameter processing ultimately required the most time (probably an hour after spending a lot less on the actual need).  This wa...

Dropwizard and some memories

Not too long ago I was catching up on some Java Posse episodes and I came across the Dot War (what is it good for?) episode. This episode, recorded live at the Roundup, was not what I expected.  Maybe I was not paying attention before I started listening but I thought a Java/.Net discussion was coming.  Instead I was pleasantly surprised to hear the guys talk about container-less application development. Initially I was not so much interested in using any particular technology among those discussed.  It was the idea that we should not necessarily build software using a specific pattern, framework or technology because it's popular or because we know it (insert "hammer-nail" analogy here).  We should, as we once said, do some analysis and design work (a little learning is not a bad idea). What first came to mind was that portion of the software development heritage which took us from single user applications to the internet.  Roughly speaking the single u...