Pratik Patel's complete blog can be found at: http://jroller.com/prpatel/
Monday, April 19, 2010
Recently I've seen some interesting blog posts from attendees of No Fluff Just Stuff conferences (nfjs). These posts essentially say this: the speakers agree too much with each other. I'd like to tackle this in a constructive way in this blog post. For some background: I am occasionally on this speaker panel (like this past weekend at the Tampa NFJS show).
To mix it up, I decided I would take a slightly antagonistic approach this time. I would call the other speakers to the mat on issues or at least present an alternative viewpoint during the discuss. It was a little exercise at the expense of the other panelists (sorry Nate, Ken, Jeff and Alex!). The panel had a few fireworks, but no major explosions. The odd thing is this: I was actually expressing a different view that *was* my opinion - regardless of my attempt to shake things up. I think the audience was enjoying it since now I had brought extra emotion into the normally calm discussion.
The entertainment value aside, however, the content of the discussion was typical: the speakers agreed on many things the others speakers agreed on. There were small disagreements, but on most topics it would seem to the some in the audience that the panelists were "on the same page."
This isn't some kind of Roswellian conspiracy, though. The speakers on the NFJS tour tend to be outspoken and somewhat opinionated - after all, how many folks can stand in front of an audience for 3+ hours a day and deliver technical sessions? While there are differences of opinion on many issues, we are all in the same boat - panelists *and* attendees: we are all developers working in the trenches. We all feel the same pain, feel the same joy, and are always looking to improve professionally.
When we find something interesting, we share it with others, either on the interwebs or in person. When we hear cool and new stuff from others we know and trust, we tend to believe it and take the comments at face value. This doesn't mean we don't form our own opinion - to the contrary, it often means (at least for me) that we'll dive even more deeply into the subject and form our own thoughts on the matter. The suggestive power is at play here, but with a group of outspoken tech geeks, it can quickly be supplanted by personal experience and opinions.
The fact that we often arrive at the same conclusion means one thing - it is often the "right" solution, view point, etc. For example, you will find that every NFJS speaker (and hopefully attendee) hums the mantra of unit testing - we think it is the right thing to do *always*. For other things which are less clear-cut, an alternative view point will always be voiced in this crowd. So it's no surprise that developers agree more often than disagree on technology, process, or other issues. We share many of the same experiences, and even our different experiences lead us to the same place.
Sunday, January 24, 2010
Ok, I'm documenting this for those that hit this same problem. Is it taking a LONG time to run some Java app, making it seemingly hang? This happens when running Ubuntu or any flavour of Linux in VMware or Virtual Box. I d/l a pre-made image of Ubuntu Server 9.10 from http://www.thoughtpolice.co.uk/vmware/, put JDK 1.6_18 on it, and went on with installing some app servers and other stuff for setting up a Hudson SWARM.
I attempt to start some Java procs, and they took a long time to start. I broke out strace to see what the hell was going on, and it seems that the procs were getting stuck in FUTEX_WAIT. Googling FUTEX_WAIT lead to many false solutions. Further examination of the strace pointed to some stuff happening in /dev/random just before the FUTUX_WAIT. On a hunch, I reconfigured the /dev/random like so:
mknod -m 644 /dev/random c 1 9
and VOILA! things started working normally. Hopefully, you get here via a google search and find this solution to save you a couple of hours of agony.
Wednesday, January 13, 2010
Over the xmas holidays I started learning Clojure. I'd been putting it off for a long time (since I saw Stuart Halloway present on it 9 months ago) so I read carefully through this lengthy article on Clojure, then the MEAP of Clojure in Action. The irony here is that I haven't read Stu's "Programming Clojure" book yet... but it's next on the list. Along the way I found some excellent screencasts by Lau Jensen on his blog. In particular, check out this one.
"Finally!" I thought to myself, all those years of using Emacs will come in handy once again. I got all the Clojure-Swank-Slime-Emacs stuff working and started hacking. I thought I'd also try out some IDE support for Clojure, and found Enclojure, a nice plugin for Netbeans. I found myself actually using Enclojure more than Emacs, as I've become a slave to fancy IDE's like Netbeans, Eclipse and IDEA. If you're exploring Clojure, I highly recommend Enclojure - if for nothing else the syntax highlighting so you don't get lost among the parens. It also has a built in REPL like the one Lau was using in his screencast. I actually worked through his screencast in Enclojure with a few variations in his demo code. I'm hoping to have some time soon to put together a screencast to demo Clojure and Compojure using Enclojure.
Being an old Emacs hack, and having worked with LISP, albeit many years ago, I found that Clojure is in fact it's own beast. It is significantly different than the LISP I used back then. That's not to say it's "better" or "worse", it's just different. Of course, Clojure runs on the JVM and has full interop with Java, or any JVM language for that matter. And this is the most compelling thing to me about Clojure - the ability to run on the VM, use the vast amount of open-source Java libs.
Writing LISP code is different than anything you've ever written before, if you're not familiar with it. I'm still working on getting my head around some of the idioms of Clojure and altering the habit of imperative coding that I do with Java or Groovy. I find one thing cool already - not having to track variables and "cache" them in my brain as I code. The whole thought process for writing Clojure code is different (at least for me), but it's growing on me as I find that I'm able to be more expressive in code without having to be more complex - in fact I think the Clojure code is simpler than equivalent code in imperative langs.
I'm not about to give up on Java or Groovy and start hacking Clojure full-time, but much like Groovy, working with Clojure makes coding fun again. At this point in time, I'm not sure where this journey into the world of Clojure will take me, but I'm enjoying the ride. Screencast coming soon, watch this space!
Wednesday, November 18, 2009
Last nite's AJUG started off great. Burr, our venerable AJUG leader, started with a discussion on what stuff people wanted to see covered in AJUG in 2010. Next on deck was my Grails presentation. I purposely had the first half of it at a basic level, for the Grails newb's in the crowd. Based on the feedback and attention level, I was rockin' and rollin' - people were asking questions, nodding heads during the basic Grails create-a-project-create-a-domain-gen-a-controller-and-views-demo. Demo'd the RichUI plugin and also some of the features of STS and the Eclipse-Grails plugin. Was on the home stretch, 30 mins left, and was about to demo G-Func and some other cool plugins and start to dive real deep into Grails goodness, when POOF. Lights went on and off.
No problem, gave the projector a couple of mins to restart and starting yapping again. Then POOF, power flickered on-and-off. The torrential rain that had been hammering Atlanta had subsided a week earlier, so we were all wondering what was going on. I figured that the Amway rally that was going on next door was sucking all our electricity. So again I wait for the projector to restart, and again, BANG, power is gone. And it doesn't come back on this time. Burr runs to the hotel manager, comes back and says the power was out on the whole city block.
Funny thing is that people were so engaged in the Grails world by this time that I continued to answer questions for the next 15 mins in the near total dark - a surreal experience. Room full of 80+ people, only light is my laptop's screen. Finally, people sensed that the power wasn't coming back so the meeting came to an unceremonious end. I threw out the t-shirts I had "acquired" from SpringOne. We didn't have time (or lighting) to raffle off the Grails books that Keegan Kettering, our local SpringSource sales guy, had sent for the meeting. We'll do that at the beginning of next month's meeting. I'm hoping I get to finish off the last 20 or so mins of my Grails presentation also.
Friday, November 13, 2009
I'm pleased to be presenting a session on Grails at the Atlanta Java User's Group (AJUG) next week. See details here
This is an intro level session, but I'm hoping people ask some advanced questions so I can demo more Grails stuff. Also, we'll be giving away free SpringOne t-shirts and other goodies, so come to learn and network. I've asked the ATL2G (Atlanta Groovy Grails group) regulars to come so they can answer questions and provide some one-on-one insight to folks interested in learning about Groovy and Grails. Hope to see ya'll there!