Aug 05

I write the Rails. you write the J2EE. lets make lots of honey.

Java, Ruby, Tech 4 Comments »

Good ole Brian has written about having cross platform messaging via XML packets, or lower level.

Messaging often seems to be under used. It is often a great way to handle interop (hence Brian’s idea), and a fantastic way to handle scaling out your architecture.

The pull model means that you can ramp up worker processes when it makes sense.

For example, if you ran an the use case that HAS to work is purchasing books. Book reviews however, aren’t as important. So, to get around having DB bottlenecks, you could have the book review process put messages on a message queue. When traffic is low, you can startup some workers to take care of the reviews. If you don’t have the horsepower you can turn them off.

In traditional RPC the clients are pushing info at you, and you HAVE to handle it.

With Brians nice abstraction, I could even have my Rails apps play nice, and have them throw messages onto the queue that some backend system can fulfil on.

So now Rails can power my COBOL legacy backend :)

Aug 04

Sun bonuses, Apple Mice and Tatoos, GoogleZilla

Apple, Google, Java, Tech 5 Comments »

There have been some interesting items that have been on the great newstands recently:

Sun Bonuses

How about if you got huge bonuses even if you company was tanking? This is what our trusted friends in the Sun management team are getting.

Sun’s board and top management approved McNealy’s $1.1 million bonus last week, after the company reported an 85 percent decline in fourth-quarter net income and said it would slash 1,000 jobs–about 3 percent of its work force.

The board approved a $280,000 bonus for Sun President Jonathan Schwartz and rewards of more than $150,000 for the heads of finance, human resources and technology


Who can take a commodity device, innovate a little, and resell it for a larger margin than anyone else? Only Apple.

Although, maybe this is changing a little. Instead of all of the “we love you apple” talk, we are getting:

One fan threatened to remove his Apple tattoo should the company include the security chip in its new Macintosh products.

There are MANY things wrong with that statement :)

Googzilla hit the ‘net this week. Brendan Eich put it out there, and many got right on it.

Conclusion? “Come on. this is just so Google can buy it right?”

Aug 04

IntelliJ5: Hector. Start talking to your brothers.

IDE, Java, Tech 11 Comments »

Charles Miller is talking about the IntelliJ 5.0 new ‘inspector’ feature.

I once mentioned the “Those who coded also coded” feature.

Now Hector is watching our code, wouldn’t it be nice if I could tell him to start talking to others of His Type:

  • Talk to your brother over there, and allow us to pair code remotely
  • Learn about me. Watch, learn, and remind me
  • Talk to a set of brothers and discuss how we all work, and teach us
  • … and much more!


Aug 03

Perl 6: Endgame?

Perl 4 Comments »

Alasdair Allan went to hear from Damian Conway and Larry Wall promise that Perl 6 is going to happen. Honest.

Although it is very interesting to hear the Apocalypses and Exegenesis’ come to us over the years… I am actually a little more interested in Parrot.

I hear you all laughing out there. Parrot? That crazy Perl 6 VM toy?

It could end up academic, but having a cool VM built for dynamic languages is interesting. It could be the perfect VM for Ruby 2…. as well as many others.

Sure, my ideal would be to have all of these languages running on the JVM like Rhino and Groovy (JRuby… you can get there!), this would be a second best. And, with a nice bridge Parrot and the JVM could play together.

Ok, I know I know…. I am kinda out there.

Aug 03

JobSource, Inc: How you can outsource your job and profit

Tech 50 Comments »

Have you ever hit one of those late night infomercials that talks about get rich quick schemes? There is the crazy guy who claims his book will enable you to get money from the government. There there is the real estate moguls, and the “I work from home and make $50k per month”.

I always thought these were bogus until I ran into a scheme myself.

The scheme started out after the dotCom boom and bust. “The World is Flat” does a good job in explaining how BOTH the boom and bust really helped outsourcing, and offshoring.

I worked on some software projects with indian subcontractors early on. There were very mixed results at first, until all parties groked what works, and what doesn’t work.

Usually the time difference was a bane, but sometimes it was a blessing. I left the office, burnt out, needing sleep. I was able to finally get some shut-eye and when I awoke what did I find? A solution to our problem. All thanks to an Indian programmer on the other side of the world.

As I got deeper and deeper into the offshoring world, I found out about services such as the assistant that I hired in Bangalore. He was a MBA grad from a well respected business school. For a few hundred bucks a month, I found a smart aide and friend. It was great to be able to writeup an email explaining the research I needed my aide to work out while I slept. In the morning I would have fantastic summary reports or PowerPoint presentations in my Inbox.

Over time you learn the strengths and weaknesses of you aide. This enables you to push more and more load onto their shoulders. Then, mid-year, there was an important turn-around. My aide recommended another intelligent friend of his. I was throwing more to him than he could handle, but he could quickly ramp up someone with the right skills to help.

A year later, and I had 5 aides. Some business related, others IT related. I found that I was able to take in projects, reliably throw them to my team, and getting fast results. I was quickly able to have multiple clients who all thought I was working close to full time in their interests. Some collegues couldn’t quite understand how I was so productive. My mantra became:

Base my work on output, not input

Every six months I found that I would take the outsourcing to the next level. It started with some help, then to a serious amount of my work, to multiple helpers, to handling multiple clients.

A few years into 2000 and I had found the holy grail:

I have outsourced my own job

I hate to admit it, but I was known to come into client sites and pretend to be working. They didn’t know that I had a group of 40 people from various countries in the world making sure that they got the best of the best. That is important to note. I wasn’t trying to trick people, and having some uneducated muppet spewing out code and documents. These were PhDs. MBAs. The best. They got to work on fun projects, get paid well, and still be cost effective in US dollar terms. Everyone wins?

Now it certainly is interesting to have outsourced my job. The question is… what about yours?

That’s right, it worked so great for me, that I have started a new company: JobSource, Inc.

We will sort out the best of the best for your technical job. You can work it out in various packages:

  • Lazy mode: We have one or two people do your job while you surf online
  • Achiever mode: We have a group of people make you look like a star (without going too far of course)
  • Consultant mode: you work it out so you have a whole set of gigs on the go at once, and we take care of the work

What are you waiting for? Get away from those TPS reports.

NOTE: This is obviously a fictional story about a man named Bob. Although… it could be true.

Aug 03

DSLs in Lisp

Tech 14 Comments »

I saw another interesting Lisp posting that pointed me to a video by Rainer Joswig.

Rainer was responding to Martin Fowlers DSL Entry, and he recorded a session of code writing to implement a clean solution.

What is particularly interesting to watch is:

  • How Rainer builds a class and method first, and then refactors to macros (code gen). How Lisp.
  • How Rainer works the environment. At some points you wish he could Ctrl-Space :)
  • How nice it is to be able to look at the stack in such a simple way

Oh and a funny quote:

“He even has a Java version here, but lets not look at it, it’s not pretty”


Aug 02

The need for a common Java stack

Java, Tech 9 Comments »

SpikeSource announced more news around a stack.

This is sorely needed in the opensource world, and in no other software arena more than Java.

In general, Java folk are ‘engineers’. We like to try the latest and greatest. One project may be Tapestry/Pico/Kodo JDO/Ant and the next WebWork/Spring/Hibernate/Maven. We jump and leap between similar, and very disimilar worlds.

This can seem cool, and flexibility and choice is a pro for Java. But, imagine if you are running a huge company, and your large IT team is running around in this manner.

Now the Java platform becomes a burden as you can’t jump between projects easily, education becomes a nightmare, as well as reuse.

The goal at large IT shops is to be able to churn out applications in short order, that fit into the corporate enterprise view (and tie into the systems such as authentication, authorization, etc).

The Stack

This is where the need for a common stack comes in. As a CIO of BloodyHuge Inc. I want to enable some flexibility, but within the guidelines of a stack.

Wouldn’t it be nice to have a development team start a project and:

  • Know the technology inside and out (past projects, and good training)
  • Know the lay of the land for the project (shared dir structure, build goals, etc)
  • Have helpful code to gen some work (a la Rails)

We need common stacks to do this.

When I saw the SpikeSource announcement and the large amount of technologies in their ’stack’, I thought it was missing something. As a company I don’t just want to know that technology a thru z is ‘certified’ from a company, or that they offer support.

They want help. They want you to work with their engineers to choose a common stack that has everything setup from the beginning.

They also want it to be locked in stone for a couple of years, with a known release cycle of updates to the Stack.

When I look at SourceLabs and their AMP Stack, I think they may have gotten it.

Update: SourceLabs does have a Java Stack:

  • Spring Framework: version 1.2.3
  • Apache Axis: version 1.2.1
  • Struts: version 1.2.7
  • Hibernate: version 3.0.5

Java + Common Stack = Productivity

J2EE != Stack

I personally don’t think that J2EE is the stack. Right now, if you look at an average Java project you will see myriads of dependencies that have nothing to do with J2EE. Although the Java platform is growing, and you could envison a stack that consists of JSF + EJB 3 + java.util.logger + … even this isn’t everything you need for a project.

J2EE is great from the standpoint of API education IMO. When you use different implementations you will often need to tweak things… maybe at a config level, or what have you.

Aug 01

Getting around BigDecimal pain with Groovy

Groovy, Java, Tech 9 Comments »

BigDecimal is a necessary evil, isn’t it. Without it, you end up over-running primitive bounds and suddenly your results are weird “what is with the negative numbers?”.

I was talking with someone whose “users” are uber-intense actuaries.

They need to be able to write quick reports, and change functionality on the fly.

Rather than using full on Java, they interfaced via a scripting language, to give them concise scripts versus the verbosity that we know and love from Java :)

JavaScript was one choice, but they quickly ran into problems with double/float/int/BigDecimal, and they had to manually do a lot of work with BigDeminal objects and methods.

Then along came Groovy, which automatically groks the fact that it should take care of autogrowing the world.


def x = 10;

println x.class;

(1.0..100.0).step(20) { y ->
println x;

x = x * y;

println x.class;


class java.lang.Integer
class java.math.BigDecimal

Note the auto change, and how operators such as * / – + all JUST WORK.