June 16, 2013

Why SC2 is good for you

Starcraft 2 is a Real Time Strategy game. I want to share some crazy ideias but maybe not so crazy at all in the and about how i think this game can help you as a software developer. :-)

I`ve played this game for a year and i saw some improvements in my life related to some skills like multitasking, problem management and several other things, i also saw other people getting better in same things and those people had similar experiences like me.

Fun with Scala, JEE 6, JBossAS 7 and Async EJB

In this post i will show a simple Asynchronous service using enterprise Java Beans. Instead of using Java i will use Scala (to increase the fun :-) ). We gonna deploy the code in JBoss Aplication Server 7 (BTW this new version is ultra fast compared to JBOSSAS 6 and previous versions) this version is compliant with JEE6 and we will use one of the new features called Async support for EJB.

I will use maven 3 as a build and dependency management system. This code also works on JBossAS 8 akka Wildfly. If you are impatient  you can get the full code on my github. JEE6 don`t demand you to create an web.xml so we gonna create an servlet and an ejb using annotations only(that`s pretty cool).

May 27, 2013

Rhythm is everything

I love music. I play guitar, sing and dance. My career as guitar-weekend-player started 15 years ago. Sing and dance and new stuff to me, i'm just doing for 5 months... Now a days i enjoy all kinda of music from heavy metal to Brazilian Samba / Pagode to classic, Jazz, etc... But I was not like like that since day one. The biggest part of my life so far i just like Heavy Metal but i changed that in the past 5 months...

Suddenly i got it.  I just see a tremendous connection between music and several things related to my daily work like Software Development / Lean, Coaching and Team work. Music is math, software development, coaching, team work and basically anything that has people around in complex systems are not simple math. That`s does not mean you could not apply some cool ideas on it. :-)

Software development requires team coordination and that`s not archived by control at all. Unfortunately several assumptions on (CMMI, PMI, Management, etc...)  rely on bad ideas, at least for me(someone who belive in people and good systems that no only change but make people better).

Talking about music you need coordination, actually anything that has complexity demands that as an basic property. Rhythm could be an different way of archiving coordination and also helping to make a system where things are better.

January 10, 2012

Clojure? Hell Yeah!!!

Clojure is a kick ass Dynamic Programming Language, Clojure is also a Functional Language and "a Lisp". Clojure is not Lisp but is heavy inspired by Lisp, some folks consider Clojure a Lisp dialect. Lisp Rock a lot, unfortunately Lisp didn't take off as a primary option at the enterprise main stream development language.

Clojure target the JVM, JavaScript via ClojureScript and CLR(for .NET platform) so far the best we have in Clojure runs on the JVM and I hope it keep this way. You can generate java classes from a clojure code or you can call java from clojure so interop is good. This is great for a plenty of reasons like: You can use all your frameworks and you basically don't need to re-invent the wheel, people basically create wrappers(Clojure functions) calling java frameworks. There are Clojure libraries and framework as well considering that the language is really really really fresh => 2009 we already have a awesome community and ecosystem.

I spent 4 intensive mouths studying Clojure last year. First it start as curiosity and them it got Heavy, Like Death Metal, the issue with Death Metal is that the very first time you hear it sucks and you wan't throw up, granted that for some people it never gets good, but like all matters of the heart it's about taste and you need some time to get the taste for Functional Programming and Clojure.

January 7, 2012

Scala Pattern Matcher, why should I care!?

Scala Pattern Matcher in a stupid simple definition is a switch++. So it's like a switch statement but far more powerful and fun :-) Why the hack should I care about this, well there some reasons. Instead of just writing down advantages and scenarios that you use it I will should what you can do with a Pattern Matcher in practices trough code.

Did you know we can use pattern matcher in order to do recursion, oh yeah, we can easily use to do recursion, whats the advantage, well the code gets cleaner and also easy to read and understand, check this Factorial code written using pattern matcher out.