Is the iPhone "changing your world"?

No, it isn’t. iPhone 2.0 OS is interesting, but the hyperbole is a little much. Josh Levy writes in the Huffington Post:

“As we all post tweets on the new Twitterfic iPhone app (it’s really fantastic), we’re continue to be stuck in war we can’t escape; global warming is engulfing the planet (and these little iPhones aren’t helping); easily treated diseases kill millions of people a year; there are food riots in Haiti; too much of the world is ruled by anti-Democratic dictators like Robert Mugabe; and so on.”

Let Our Congress Tweet. Sign the Petition.

This is from my article over at O’Reilly News:

Social media and social networking are going to be pivotal aspects of engaging and empowering the individual. Decades from now, we won’t be able to imagine a government unaffected by the real-time input of constituents filtered by the social operating system that will define the culture. It is already happening, in this presidential election cycle participation has ballooned, and conventions are being moved to stadiums. This is much larger than just letting Congress Twitter, this is about letting social networks help to evolve the very concept of governance.

If our government doesn’t keep up with the technology of the surrounding culture. It will grow more and more irrelevant and unresponsive over time. In one sense this is about government surviving in a connected age. Dramatic? Yep. True? Yep. I really think that if the government doesn’t embrace technology, we’ll probably discard it when it falls further behind the cultural context of social computing.

Lofty? Sure. But, I believe it. Read the rest over at O’Reilly News

Hadoop and the Inscrutable build.xml

Seriously, take a look at this build.xml. Where do you even begin? Here’s the groking process:

  1. build.xml references ${basedir}/build.properties. Go look for a build.properties.
  2. Look at README.txt… No help whatsoever…
  3. Look at NOTICE.txt… Again, just the ASF notice…
  4. Look in conf/ for build.properties… Nope…
  5. Look in index.html, see a redirect to index.html in the docs/ dir (hmmm, maybe that’s a doc about how to setup the development environment).
  6. Look at docs/index.html… errr.. nope, that’s just a web page.
  7. ok, all I was trying to do was build from source, but I guess it is time to google “hadoop build.properties”
  8. Result is this wiki page about IntelliJ (hmmm.. I don’t have intelliJ).

Alright, I spent 10 minutes flailing about. This is the accessibility of a project that decides to craft a 1300 line Ant build script with references to ${user.home}. None, there’s no casual contribution to this project. Anyone have a playbook for getting this thing to compile (not just the Java bits, either).

Unreasonable Maven Expectations

OMFG: “On a project we’re working on there are 43 modules. After the initial compilation, when nothing has changed, maven takes a minute to run.” (from this interminable comment thread over at Ship’s blog)

Listen, I’m sorry that it took about a minute for Maven to run through 43 projects that didn’t need any code compiled. Cry me a river. How many source files needed to be scanned, what were the projects? Dude goes on to say that it takes 5 minutes on a Solaris machine. Sorry, I can’t debug your company’s crappy build machine, maybe you should work somewhere that has heftier build machines instead of complaining that Maven takes too long to scan your project for timestamps. (And when are you waiting for the 5 minute build to run? Don’t you have a CI system like Hudson?)

He then goes on to say that he feels insulted. I am tired of people coming out swinging at Maven, getting some push back and then telling me they feel “insulted”. Toughen up people, you come out with some baloney about Maven or if you ask a question like the one below, you are going to get some acrid, unapologetic pushback from yours truly:

“Why should someone read a 600+ book about a build tool?? We’re not talking about 600+ pages to understand esoteric plugins, we’re talking 600+ pages to understand basic functionality. Don’t you think it is too much?”

Errr… no, you probably only need to read about 40 of those pages to figure out the basics, the rest is extra credit. Maybe if you bothered to invest *any* time in learning the tool, you’d learn about things like:

Maybe he wouldn’t feel insulted if I said something like, “Oh, I’m so sorry you have unreasonable expectations about your build tool and that your company can’t afford to upgrade your build server. I’ve heard your complaints and I value your feelings and expressions.” Sorry, I don’t. Sarcastic rhetorical questions, gain a sarcastic response.

Still hate Maven? Respond on your own blog.

Maven Ignorance: Jon Stevens and Howard Ship Resonate in Ignorance

What is interesting about this comment thread. Is all of the ignorant FUD that is thrown around about Maven. Specifically by Jon Scott Stevens, people continue to just blather on about all of these bugs in Maven that have been addressed. Stuff like changing plugin version (fixed in 2.0.9 if you had bothered to pay attention). What’s fun about the comment thread is that there is a level of support for Maven that wasn’t there a few years ago. A lot of the comments are along the lines of: “Dude, calm down, you have some issues” or “Wait, you bitch about Maven but you haven’t really stopped to learn about it”. More fun is that he likes to just refer to it as a “steaming pile of shit”. I guess the nightclub business didn’t work out for Jon, and maybe we should reinstate his special page on the Jakarta site.

And Ship proudly publishes some confusing Ant script that recreates the dependency manage logic (poorly). Good luck with that. Good luck with Tapestry in general, the last run in I had with the Tapestry troop was when a Tapestry contributor demonstrated his own intolerance when he called Wicket “gay” on the O’Reilly Network. (classy and mature?)

Search for boomtown15 in the comment thread and you’ll see a well-written response that captures my own thoughts:

As I agree with some of the dislikes people have mentioned I really do believe that many of them are a matter of not understanding Maven. Most of that is probably because the documentation is hard to find or is not where most would expect. The documentation is the biggest con I have with Maven.

There are ways to alleviate many of the problems people are having or are mentioning, but they take too much time to find. Time that people are not willing to invest. They want an easy to use tool and don’t want to invest much time. I don’t think this is too much to ask; however, I know from experience that investing the time up front is well worth it in the end. I have a Maven build system that manages 30+ projects and its pretty damn stable. The only problems I seem to have is when people don’t understand Maven. Its a little too complex to just pickup and have a perfect build in a couple of minutes like the documentation suggests. It takes time to understand how Maven works and how it can manage dependencies, profiles, plugin versions, internal repositories, etc for you.

Yes. Exactly. It takes time to understand how Maven works. And, people like Ship and Stevens just can’t be bothered. They can’t be bothered to take the time to learn how to use it, so they freak out and write some invective about how the thing doesn’t work. From my perspective, Maven works fine, often the problem is with the person using it or a related technology. There is a certain special kind of person that continues to show up, they stubbornly refuse to read the documentation that is available (and I’m not talking about the site), and they expect Maven to just work without them spending a moment trying to learn about the conventions. In other words, if the conventions don’t immediately fit in with what they expect – they start screaming and yelling about what a terrible tool it is. Again, what is fun about this is that the people that take the time to learn the tool have the advantage and I continue to hear from satisfied customers every single day.

And, don’t start about the documentation, I think the documentation sucks, that’s why I just finished writing a 600+ page about the thing. My advice would be to take maven.apache.org out of your bookmarks and just go to the book instead. I am the first to say that the Maven web site (and the site plugin) need to be trashed entirely.

Oh, and Maven sucks, right? Leave a comment on your own blog.

PHOTO CREDIT: Covered by CC BY 2.0 from Just Taken Pics on Flickr.

Second Interview Up at O’Reilly: Barroso on Energy Proportional Computing

Check it out, this is the second audio interview published with O’Reilly. A smaller interview than the Brian Cox interview from last week, but still interesting. Luiz Barroso wrote a very interesting paper with Urs Holzle for IEEE Computing on Energy Proportional Computing, and I took this interview as a chance to ask him some questions.

I’ll summarize it: Most hardware manufacturers build systems to perform well under the SPECpower benchmark which measures the efficiency of a computer at maximum performance. While these specifications look great, they are relatively meaningless when you consider the fact that most (data-center, volume) servers are running at between 15% and 45%. In this range, the computer operates with a terrible efficiency. Full power must be used to keep the disks spinning and the DRAM running, but the CPU is idle for 70% of the time.

He argues that we need to rethink hardware such that components will use energy proportional to the computing they are being asked to perform. If a computer is only operating at 30% utilization…. well… duh… we’d expect it to only use about 30% of the power.

This issue is important as data centers grow from about 1.5% of our total national energy budget to somewhere around 3.0% in 2011.