December 1st, 2010

How to Kill a Language, One Small Step at a Time

by Tim Cull

I honestly don’t believe there is any collective, purposeful, evil intent at Oracle when it comes to Java.   But their actions since the merger with Sun sure make it seem that way.  Oracle is killing Java, one cut at a time.

The first big shot across the bow was Oracle suing Google over Android.  Even if Google did something wrong legally, it was still a stupid move.  After many other companies failed to get Java to thrive on phones (it’s been there for years, it just was clunky and had no developer community), Google finally succeeded with the first plausible challenger to the iPhone.  And, on top of it, the Android community is much more open which attracts even more developers.  So a thriving Android community can only be a good thing for Oracle, even if they don’t get licensing revenue from the runtime.  But the suit demonstrates that Oracle just doesn’t get it.

Then, there was JavaOne.  I covered it for InfoQ, but since we try to stay pretty neutral I didn’t say what I really thought: it was awful.  I’ve never been a fan of JavaOne because it’s too big, too much of a hassle, and too full of vendors.  But this year was even worse.  Adding it to the rest of the Oracle conference took it from merely too big to an absolute zoo.  And, it watered down the Java bit to just another Oracle add-on.  The biggest display in Moscone center, the one that took up the entire entry way when you came in, was about Larry’s yacht, and not technology.  Apollo Ohno was a speaker, as if any of us cared.  And the place was absolutely buzzing with “suits”.  The whole conference had Larry’s ego all over it.

Then James Gosling left, which isn’t a material impact on Java, but it is a symbolic one.

And now the Hudson flap is the last straw for me.  Here, Oracle took a fantastic, thriving open source project that doesn’t produce any revenue, and is squashing it over a pidily infrastructure tiff.  And they’re doing it in the worst way, by saying, basically, “I know this Java.net infrastructure is behind the curve, but we dictate that you should just suck it and use it anyway because we own the trademark.  So there.”  I can’t think of a faster way to kill a community that’s contributing freely.

Just get a clue please Oracle.  I’ve invested a lot of time in Java and would hate have to walk away from it completely.  As it is, I’m already steering greenfield stuff towards Ruby.  Maybe I should follow Nikita’s advice and learn Scala.

Bookmark and Share
November 17th, 2010

Pizzigati Prize for Software in the Public Interest

by Tim Cull

There’s a little-known but lucrative prize out there for developers that make software that makes the world better: the Pizzigati Prize for Software in the Public Interest. Good to know sometimes the good guys win, too.

Bookmark and Share
November 10th, 2010

New Article About Spring Social

by Tim Cull

So ever since I started writing for InfoQ, I’ve had a hard time keeping this blog up, too. But I promise I’ll hit the balance and manage to post to both. And soon.

In the mean time, I’m going to post highlights to my InfoQ stories here as well, just to keep things lively.

This week, I wrote a quick post about Spring Social, a new API from SpringSource to integrate Java applications with social networking sites. It’s pretty nifty, and using it feels a lot like using trusty old JdbcTemplate.

Bookmark and Share
September 28th, 2010

Connecting Ruby to Microsoft SQLServer

by Tim Cull

There are many excellent posts out there about how to connect Ruby to Microsoft SQLServer. The problem I had is that none of them actually worked for me! So, I’m going to add my list of instructions to the noise in hopes it helps someone out there

The Setup

I’m using Windows 7 32-bit. The Ruby I have installed I got from http://rubyforge.org/frs/download.php/72075/rubyinstaller-1.9.1-p430.exe and looks like this:

ruby -v
ruby 1.9.1p430 (2010-08-16 revision 28998) [i386-mingw32]

Secondly, and this is very important, I have DevKit installed. I downloaded http://github.com/downloads/oneclick/rubyinstaller/DevKit-4.5.0-20100819-1536-sfx.exe and installed it according to the instructions on the DevKit wiki. Many of the tutorials out there neglect to mention that you must have DevKit installed in order to install some of the gems required.

The instructions I’m giving you here only work with *exactly* the setup I described. If you have a slightly different setup then this might not work. It’s very finicky. Even having a different one click installer can make it not work.

Step By Step From a Fresh Ruby Install

I installed my ruby to d:\Ruby191 with the one click installer. Then I extracted DevKit to d:\Ruby191\devkit and ran:


cd d:\Ruby191\devkit
ruby dk.rb init
ruby dk.rb review
ruby dk.rb install

When running “ruby dk.rb review” make sure it says it’s pointing to your Ruby install.
Next I downloaded dbi-0.4.3.gem, dbd-odbc-0.2.5.gem and ruby-odbc-0.99992.gem to my local file system.

Next, I ran exactly these commands. The versions and extra arguments matter!

set RUBY_HOME=D:\Ruby191
set LIBS=..\..\libs\ruby
gem install rake
gem install rubygems-update
gem install --include-dependencies rails
gem install deprecated --version=2.0.0 @rem the version matters. get exactly this one
gem install --local %LIBS%\dbi-0.4.3.gem
gem install --local %LIBS%\dbd-odbc-0.2.5.gem
gem install --local %LIBS%\ruby-odbc-0.99992.gem @rem this requires devkit

Lastly, I wrote this sanity check script and it worked:

require 'dbi'

# Replace MY_DSN with the name of your ODBC data
# source. Replace and dbusername with dbpassword with
# your database login name and password.
DBI.connect('dbi:ODBC:MY_DSN_NAME', 'username', 'password') do | dbh |
# Replace mytable with the name of a table in your database.
p "selecting getdate"
dbh.select_all('select getdate()') do | row |
p row
end
p "done"
end

So that’s it. Another of the many tutorials out there that will work on exactly one setup and probably not much more. Have fun!

Bookmark and Share
September 11th, 2010

It’s Official: I’m an InfoQ Editor Now

by Tim Cull

I’m pleased to announce I’ve got a side gig, writing the latest and greatest Java news over at InfoQ. It all started with my “8 tips for legacy Java code” article, after which they asked me to write regularly for them: one quick news post a week.

So, if you’ve got some Java news you think the rest of the world will be interested in, please let me know. Introductions to people I can interview are even better!

Bookmark and Share
September 10th, 2010

Quick Props for a Fantastic User Experience: Xdebug

by Tim Cull

I just had one of the best user experiences ever trying to install Xdebug for PHP.

Get this: you paste information about your installation using the extremely common “phpinfo()” function and the website parses the free-text output and tells you:

  1. Exactly what to download and from where
  2. Exactly what to put in which configuration file with paths tailored to your setup and, here’s what kills me…
  3. Exactly where that config file is on your file system

Now that’s looking at things from your user’s point of view.

Bookmark and Share
September 9th, 2010

Overdue: Apple Relaxes Restrictions on Developer Tools

by Tim Cull

Apple has finally removed the self-destructive restrictions they put on developer tools. I couldn’t believe they’d do that in the first place and it’s good to see they saw the light. The question is: is it too late? I for one vowed to choose Android over iPhone when I had the option and lifting the restrictions now hasn’t really changed that inclination.

Bookmark and Share
September 1st, 2010

The little known and underappreciated HTML Header element

by Tim Cull

I happened across an HTML element I didn’t know existed today. The ‘header‘, which is not to be confused with the ‘head‘ element, is a section of the HTML body that can contain, you guessed it, header information like a table of contents or some titles. It’s been supported by browsers for ages, including IE6.

I just figured I’d post something about this under-appreciated element here to boost its Google recognition a smidgen and separate it from its better-known, more-popular-at-parties cousin: the ‘head’.

Bookmark and Share
August 6th, 2010

The Hyperpolyglot Cheat Sheet

by Tim Cull

I saw a good resource and a cool meme today: “hyperpolyglot”. That’s where I found some good side-by-side cheat sheets for scripting languages. As the days go on, I find myself working in many different languages simultaneously and it sure is nice to have a reminder around to look up the maddeningly different syntax for each.

Bookmark and Share
August 5th, 2010

How To Include Other Velocity Templates From Apache Camel

by Tim Cull

I was surprised to discover today that, out of the box, it’s difficult to include one Velocity template from another if you are using Apache Camel. For once, a search of the Internet didn’t easily find the solution.

So, for the benefit of others, here is the solution….
-

Bookmark and Share