Tuesday, April 15, 2014

Who stole my spring??

After a nice 20C degrees day yesterday, I woke up this morning to this:

Wednesday, November 21, 2007

Just Java 2007 Slides

As a reminder, I published the slides I used in my presentations at the Just Java 2007 conference in the Drools blog:

Just Java 2007 Slides (part I)
Just Java 2007 Slides (part II)

Enjoy, and feel free to join the community in our malling lists and IRC as detailed in the Drools Project site.

Thursday, August 9, 2007

Quick catch-up and Language Orthogonality

It was a long time ago when I last posted to this blog, but I intend to fix that now. :)
Just a quick update, during that time I was very involved in finishing the features for the Drools 4.0 release that was released a couple of weeks ago. I am very glad with the result and we feel the current version is a great improvement over the 3.0 version released a bit more than a year ago.

Anyway, one of the major focus of the new release from a language perspective is the expressiveness of the language and it's learning curve. One of the ways of achieving that is improving language orthogonality. Today I found this article that besides short, gives to newcomers a good idea on what is language orthogonality and how it affects our life (as language users) every day.


Monday, July 2, 2007

Wood Binary Calculator

I've been very busy finishing the release of Drools v4.0, so almost no time for posts, but wanted to do this quick one. A really cool wooden binary calculator.

Sunday, June 3, 2007

The Reasoned Schemer

Just the other day I was reading Johan Lindberg's blog and I found this entry, talking about The Reasoned Schemer book. I confess I haven't heard about this book before, but the abstract of the book was so good that I had to buy it right away.

The book arrived last Thursday and I started to read it immediately. What I can say is:

  • I haven't used functional programming in the last 10 years, since my graduation when I had a class about it in 1997. I almost forgot how fun it is to use it! I'm eager to skip to later chapters were it talks about relation programming, but I don't dare to do it... I'm really enjoying remembering all the stuff I learned in the past, plus learning new things I didn't know were possible.
  • The book is written in a singular way, I haven't seen before. The whole book is a sequence of small questions, like small exercises, where the left column contains the question with eventual examples and the right column contains the answer. Each question intents to explain a new concept or improve the understanding of the previous concept/question. It means the book is slower to read, because it is dense! There is a lot of information to learn in each page and it makes you think while reading... it is not a mechanical reading process, it is almost an interactive learning. Very cool!
  • The concepts of functional programming I am re-learning (or remembering) are making me think about some cool things it would be nice to have in Drools. Real unification is probably the top one, but I know the interest is more academical than corporate. Look at the following example (consider it pseudo syntax) from the book. It is a really really simple example in functional programming, but shows a simple trick you can do with unification. Imagine it leveraged for real inference problems.

(run* (l)
(fresh (d x y w s)
(cons w (a n s) s)
(cdr l s)
(car l x)
(== b x)
(cdr l d)
(car d y)
(== e y)
Bold letters are constants and italic letters are variables. What is the value of l, after running it? If you said

( b e a n s )

You got it. If I were to chose a single line of the above example to show something most programming languages do not allow, but it is common for functional programming languages is: (cdr l s). It is the same as saying to the computer: X + 3 = 5 and having the computer tell you back that X is 2, without having to code any imperative procedure to solve the equation. Simple, but powerful.

Thank you Johan for pointing that out. Thank you to the authors for the fun time reading it. I guess I must buy the previous book now.

Saturday, June 2, 2007

Human Computation and Fun Games

Yesterday I watched this Google Tech Presentation about Human Computation and was very impressed, both by the concept and the execution of the ideas.

Basically, the speaker talks about how to use "idle human brain cycles" for useful tasks, that computers can't do with current technology, while keeping people doing fun things. He called this relationship as a symbiotic relationship between human and computers. Really interesting.

I also was very surprised by the number of hours people spend with solitaire games: 9 billion hours in 2003?!?!

Tuesday, May 22, 2007

Oh God!

Oh god... am I like that? (don't answer!)

You are javascript. People often think you are somebody else.  You tend to be annoying to most people, but it's not your fault.  You jsut get used.
Which Programming Language are You?