Friday, July 29, 2011

First time blogging.

Ok, I'm trying this blogging thing out for the first time now, despite my stubborn belief that it's just a fad. Damn. What's the sarcasm tag in HTML?

Anyway, for my first blog I think I'm going to talk about food, people who dress as pirates for work, and some IntelliJ Idea features that I'm really digging.

First up is Food. I've been working late recently, so most of my good meals have been coming from the culinary school nearby. Usually pretty good, though every new classes first week is a bit rough. Come later in the semesters and it's really good.


Green haired pirates, among other colorful characters walk the halls of my workplace. I recently switched gigs and now I see a guy walking around daily with green dreadlocks pulled up like a pirate, and some of the clothing to match. I've heard him talking with other people, seems completely normal. I give it a thumbs up. Freak out your more traditional co-workers, they need something to spice up their days. The thing I like best, is that he's just totally serious all the time and doesn't seem to even notice that people will double take. Awesome. I love it.

Along with amusing things like the pirate man, comes some minor annoyances. Like, needing an IDE that more cleanly integrates with the disgusting beast that's Perforce. In the past, I've relied more on Eclipse when I needed a heavy weight IDE, and since Java practically requires a heavy weight IDE to use effectively, vim and emacs are out of the question for me. So, I checked out Netbeans, and IntelliJ. Here's my take:
Netbeans had really improved in 7.0, and I highly recommend trying it out, especially if you work with maven, as I think it's leaped ahead of eclipse for the time being (in more ways than just the maven integration as well). I used Netbeans for about three weeks and was very happy, then I ran into something that was annoying me. I don't recall what minor feature it was, but it led me to investigate IntelliJ as I hadn't used it in a while and someone else internally told me it had great Perforce and maven integration.
I've been using it now for about a week and a half, and every day I find a new feature that kind of blows my mind. One example that I ran into on Monday:


I needed to mass change a file that had a bunch of similiar lines in it, but it wasn't a simple search / replace, more like a sed style replacement with a regular expression. Pretty much every IDE will let you do this, however, I was really impressed with the visual indication (think Regular Expression Visualizer) on the entire visible file showing me what was going to be matched. Very nice job.

Also, and I know you can do this in Eclipse as well, but I just learned about it today because I had to debug a legacy application that eats it's exceptions. So I google'd up "intellij breakpoint on Exception" and waalah! Mr. Fleming's blog has a great answer. So, I started up my glassfish in debug mode by clicking a button in IntelliJ, and setup my breakpoints on Exceptions that only come from my specific package space I was looking at, and suddenly I could see all sorts of bad things happening. Awesome stuff.

In addition, I've found some pretty awesome support for hibernate / JPA / generation of Entities with very configurable options on JPA providers and whether or not to use xml or annotations. Also, some very cool database source plugin that inspects any of those for jdbc connection information and just automatically sets up the connections for you if you want to use them. Overall I've been impressed with the subtle things like this that allow me to more quickly do things rather than configure things. So, I reached into my back pocket and paid for a license. Something I would never normally do for an IDE, as most of them are free.

I'll try to post again soon, but as this is mostly just trying out these web tools for blogging and writing things stream of conscious I don't know if you or I will care. :)