Friday, April 25, 2008

First Day High!

hehehe it should have been RoR first day!
yep, April 25 or simply put today was the first day
of the RoR training.


Ms Mafe (blooming in her white attire)Laughing opened the training
with the trainee's RoR training expectations (taken from the survey) and there are lots of them,
(take note it's an intensive training so better fasten your seat belt!)
and of course there are managament's expectations too.

Then Ms. Jackie gives us the training schedule, topics
to be discussed, and the RoR gurus that would share their knowledge throughout the training.

Finally Stephen (a.k.a Popol, formal mode Wink) takes the stage.
He is our first instructor for Ruby Basics and that would be Ruby Background.

He give us a brief history on how Ruby was conceived in the world.

Tiny bits of Ruby history:

  • Created by Yukihiro Matsumoto(Matz)
  • 1993, February 24: Matz started to work on Ruby.
  • 1995, December: First release 0.95.
  • 1996, December: 1.0 is released.
  • 2003, August 4: 1.8.0 is released.
  • 1.9.0/ December 26, 2007 (2007-12-26)
  • Influenced by: Smalltalk, Perl, Lisp, Scheme, Python, CLU, Eiffel, Ada, Dylan

The Semantics and Features of Ruby:
Ruby is object oriented - every data type is an object (classes and types which other languages designate as primitives).
It has support for introspection, reflection and metaprogramming, as well as interpreter-based threads,
dynamic typing, and parametric polymorphism.

The Ruby Philosophies:

(Stephen said this can guide you if Ruby is meant for you in the long run.)

  • productive and fun
  • simple and friendly API
  • consistent and regular
  • principle of least surprise
  • we are the masters, they are the slaves (for the time being)
  • Less is more
  • The ruby way


* Ruby is designed for programmer productivity and fun,
following the principles of good user interface design.
The systems design needs to emphasize human, rather
than computer needs.

*It follows the principle of least surprise (POLS),
meaning that the language should behave in such a way
as to minimize confusion for experienced users.

As Stephen discusses these things in reality there are things
that are going on in the background.
(I know what your thinking but it isn't what I mean.)
We (the trainees) are actually setting up the environment needed.
Good thing I have everything set up but unfortunately I have to change my Rails
version to a lower version. :(

After losing connection from time to time, I guess almost everyone
had installed Ruby, Rails, and Aptana as our IDE (this am not sure).

Yeah, their are questions and Stephen answered everything quite well.
He also showed us some simple tricks, that is changing the state of an object.
Since in Ruby each objects knows its own state.
So if you know you know your state you can play around with it right?

I somewhat got interested with "final" objects that are supposed to be
final but still Ruby can get his hands on. lol Yes, Stephen clarifies that
Ruby has a power to freeze and unfreeze (final) objects!


The more interesting part is metaprogramming.
Metaprogramming is writing programs that write programs.
Analogy: "Writing Ruby that can write Ruby."

A question that is left unanswered:
Does Java had metaprogramming?


That's all for 0.5 day! Maybe I'd miss some important things so kindly share it, you are very much appreciated. Laughing

Friday, April 11, 2008

Learning a new language

Learning a new language.

(A new language for me to learn but is in the industry for a long time.)

Yeah, I'll definitely going to learn a new language.
I've been with Java since my college years and it's my favorite language since.
There is something similar to it (Java) and they are born at the same time or
more accurately Ruby is a wee bit older.

They say Ruby is sleek, beautiful/sexy, hehehe it's easy and fun!
A language that is more developer friendly.
The codes are pretty readable even for a newbie like me. :)

Ruby on Rails will be my girlfriend for now.
Yes, Ruby on Rails.
Using Rails framework (for web apps)
and Ruby language, in short Ruby on Rails. ;)

Hope we will have fun together as I get to know her better. :D