Remembering that I’ll be dead soon is the most important tool I’ve ever encountered to help me make the big choices in life. Because almost everything — all external expectations, all pride, all fear of embarrassment or failure — these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.- Steve Jobs
I decided to contribute to rubinius over writing a rails application in order to improving my programming-fu. The choice was made after repeatedly asking the question on irc; “should I contribute to rubinius or write rails app since I have 6 months before my MSc programme is over”. Naturally I got different answers, but the one that helped me make this choice was from dbussink on irc. He said something on the lines of, “would you rather be known as a rubinius contributor or another rails programmer?”, that question helped me decide, so thanks again dbussink.
Rubinius is a large project and can be very overwhelming to dig into, however thanks to the team, they have written up a guide on different methods to contribute which can be found on the site’s contribute page.
For me, I chose to contribute by following the rubinius Coding Style Guide. Using this method, I go into as many *.rb files as I can and ensure that the coding style adheres to the guide. My first pull request using this method was adding a trailing new line to each file under the kernel/platform/ folder and it got merged, yay! Here’s a link to my contributions.
This has given me good feedback and more momentum to keep on contributing, so go on, start small and contribute to your choice of open source project.
The SOLID principles are a set of object oriented design principles put together by Uncle “Bob” Martin which help in building more stable and flexible software systems. The SOLID acronym stands for;
- S – Single Responsibility Principle
- O – Open Closed Principle
- L – Liskov Substitution Principle
- I – Interface Segregation Principle
- D – Dependency Inversion Principle
Below are a list of topics I will be covering for the remainder of the year;
- SOLID Principles
- 6 Design Patterns
- Understanding Ruby better by digging into Rubinius.
@date.to_s(:long) # February 17, 2011 @date.to_s(:short) # Feb 17
“…We shall do a much better programming job, provided that we approach the task with a full appreciation of its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmer.” – E.W Dijkstra
These sites were useful.
:e filename – Edit a file in a new buffer
:bnext (or :bn) – go to next buffer
:bprev (of :bp) – go to previous buffer
:bd – delete a buffer (close a file)
:sp filename – Open a file in a new buffer and split window
ctrl+ws – Split windows
ctrl+ww – switch between windows
ctrl+wq – Quit a window
ctrl+wv – Split windows vertically