Wednesday, September 29, 2010

Austin Java User's Group September 28th - Cassandra, MapReduce, and Roo


Forty people heard Jeremy Hanna present integrating Cassandra and MapReduce. My jumble of notes:
Cassandra, a horizontally scalable key-value database, was born at facebook.
It has no "master" node, just a bunch of peer databases.
Very fast for writting, fast for random reads, not good with ad hoc queries.
"Pig" is a scripting language used at yahoo that compiles down to MapReduce.
"Hive" used at Facebook is similar to "Pig", but more SQL like.

Ryan Stewart demoed Spring Roo, a scaffolding system that builds common code blocks like screens for create, edit, delete and data access functions for java; much like scaffolding pioneered by Ruby on Rails. I was very impressed by the intelligence built into Roo. My notes:
Roo accomplishes its magic by creating AspectJ files that are blended into the java objects. (C# has a more straight forward method with partial classes).
Roo is a process that runs in the background that can update its AspectJ files when it detects a change to a java object file.
Roo has a great help and guidence system.
Eclipse can be used to access Roo commands.

A few years ago our Java Users Group had demos of amazing code building tools shown by companies that charged thousands of dollars per seat for their software, now the amazing software is mostly free open source projects.

Friday, September 03, 2010

Playing with AutoHotKey

After reading so much about AutoHotKey I decided to take the plunge and tackle one of my annoying manual tasks - toggling the text and background colors in Firefox from normal to my most coveted, easy on the eyes, "white-on-black" theme.
screen shot
With AutoHotKeys handy recorder I saved this script to c:\home\mfincher\bin\toggleff.ahk:
Send, {ALTDOWN}{ALTUP}to
WinWait, Options, 
IfWinNotActive, Options, , WinActivate, Options, 
WinWaitActive, Options, 
Send, {TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{ENTER}
WinWait, Colors, 
IfWinNotActive, Colors, , WinActivate, Colors, 
WinWaitActive, Colors, 
Send, {TAB}{TAB}{SPACE}{TAB}{TAB}{TAB}{TAB}{SPACE}{TAB}{ENTER}
WinWait, Options, 
IfWinNotActive, Options, , WinActivate, Options, 
WinWaitActive, Options, 
Send, {TAB}{TAB}{ENTER}
Then in "My Documents\AutoHotkey.ahk" startup script created a mapping for "Windows-f" to run my script:
#f::Run c:\home\mfincher\bin\toggleff.ahk
Now if Firefox is the active window, and the Options panel has "Content" preselected I can just enter "Windows-f" and my colors are toggled.
Next, how to auto select Firefox and set the Options tab to be "Content".
Cheers.

Java User's Group August 31, 2010

pic
My jumbled take-aways from the JUG meeting:
The meeting started with Jeff Hennigan from Kforce answering questions about the local job market.
Employers are looking for Spring, Struts and Hibernate framework experience.
Knowing syntax is still important for interviews
Technical tests are common
Experience is better than certifications
Good degrees like physics and EE from top 25 schools still matter
More database experience the better.
Cloud computing is taking off
Few android or iPhone jobs being requested
Enterprise skills in high demand
Upper 80Ks to 90Ks good salary for senior java developers

When asked who was looking for a job only 4 people out of 45 raised their hands.

Peter Donton, who has won the free pass to NFJS two years in a row, talked about his thoughts on two talks from the NFJS conference.
The first was Smart Java - systems using rules or Bayesian logic. Peter demoed a java library for using Bayesian logic, Classifier4j.

Neal Ford said programming java is like smithing in the 21st century. Once blacksmithing was a secure job, but with the rise of the industrial revolution, demand declined. In the same way we need to upgrade our skills for the next revolution. Can you say functional programming? Groovy?

Peter's second topic was Nosql databases.
He said you can pick any two: Consistency, availability, and partition tolerance
Instead of ACID, nosqler's are fond of the acronym BASE - Basically Available, Soft-state, Eventually consistent

Chris Aniszczyk talked about the latest in Eclipse technology. The items that struck me:
Dependency injection is big
Git really is better than svn
Eclipse is trying to get into the web development business