Latest Tweets:
Co-founder and CTO of Evocatus and
SnapHop
.
Programmer and wannabe taste connoisseur.
I like:
From Twitter “IQ =Intellectual Quotient, EQ=Emotional Quotient, MQ=Moral Quotient; thus Mind/Body/Soul” Dipak Jain, Instead #WEF #Davos
Some what analogous to my Think, Do, Share triangle.
My mantra for business.
DOing: Is producing something that is generally tangible and not ephemeral. Engineering.
THINKing: Is planning, brainstorming, writing on whiteboards, meetings, etc. Management.
SHAREing: Is external approval and communication. Sales and Marketing.
Of course these three very generic concepts overlap so think of this as an analog continuous triangle. Also you can’t really be 100% on a specific vertex. The trick is to balance all three. Its OK if you or your job is more naturally inclined to a specific vertices but I believe you should endeavor to always move towards the center. Particularly if you are a startup! For example to make THINKing more of a DOing and SHAREing process consider iteratively blogging about your brainstorm and prototypes. To make SHAREing more like THINKing and DOing consider backing your communication with something you have built. To make DOing more like the other two just do not go off on your own and build things with out discussing or thinking.
I finally figured out how to get maven to use the latest version of a dependency while keeping the builds reproducible. What PITA.
Every time I have to wrap a Servlet Request for a filter I’m always reminded of the strangeness of getRequestURL() and its brother getRequestURI().
For the most part getRequestURI() makes sense if you know what it does. I say “know” because its javadoc is rather questionable. It returns only the path and not the query parameters, host, port, and scheme. Ideally it should be called getRequestPath() but I can see why that name might be confused with the context path which is a completely different thing.
Now we get to getRequestURL() which returns a StringBuffer? According to the Javadoc I can edit this StringBuffer and add query parameters. However this is extremely misleading as this will do absolutely nothing to the request. In fact getRequestURL() returns a new StringBuffer everytime. Why the hell not just return a String? Some say its for performance (which its not but I’ll leave that as an exercise for later) and some say for convenience but I say its annoying.
Also one would think getRequestURL() would return the query parameters but it does not which also bothers me slightly.
getPathInfo() is even more confusing. I try to avoid using it and instead use getContextPath() and getRequestURI().
The reason these things are annoying is that every time I go write a servlet filter I forget what does what and end up writing some log statements to see the output of each (since I don’t trust the javadoc).
Sublime Text is freakin awesome on Linux!
Hello, fellow code monkeys.
Look at your editor. Now back at mine. Now back at yours. Now back to mine. Sadly your editor is not like mine. But if you stopped using noob-scented editor, and switched to Sublime Text 2, your editor could look like mine.
Look down. Back up. Where are you?
You are on a desk with the editor your editor could look like.
What’s in your hand? Back at me. I have it! It’s a package control with several handy plugins that you would love. Look again. The plugins are now diamonds. Anything is possible when your editor looks like Sublime Text 2 and not Eclipse.
I’m on a horse.
Added some Maven support to twilio: https://github.com/twilio/twilio-java However its still not in the central repository so I have added it my repositry.
Hopefully they’ll take my changes and create an Nexus account: https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide
Is there a Coffeescript for Java? In other words X gets compiled to readable Java. If only I had more copious free time I might consider doing this as a side project. Maybe someone as already done this?
A while ago I was working with a very large CSV file that had many columns but I only needed two columns of.
I normally would use the Unix command ‘cut’ to get the columns I want but this does not work well for CSV files that are escaped (that is the separator is escaped).
So here is a drop in replacement written in Python that works just like ‘cut’ but for almost all CSV files:
The Play 2.0 framework is looking better and better everyday:
http://groups.google.com/group/play-framework/browse_thread/thread/6d5783e28efb6931#
I had blogged a while ago about “Does Java Have an answer to Node.js”. It looks like the best answer is Play 2.0. Play 2.0 uses all the technologies I mentioned in the previous post (netty, akka, scala).
It also looks like Play 2.0 will be THE web framework for Scala. Yeah you could use:
But then again Play is using a more modern network libraries (Scalatra and Lift still rely mainly on 1 thread per request via servlet container) and is going to be supported by the people who came up with the language.
I wonder if Spring Source will come out with a Scala Spring Web Framework. They already have Groovy (Grails) and Java (Roo) .
On a rather serious note the government has decided to start censoring the Internet. Sites that let you post for free like our very own http://evocatus.com are in danger. Here are instructions on how to react: http://americancensorship.org/ If you don’t know the senate and house have a glorious approval rating of: 11.3% http://www.realclearpolitics.com/epolls/other/congressional_job_approval-903.html Do you really want these people deciding what can and cannot be on the Internet.