2013 May 04, 14:46 h
Up until now I have almost 900 blog posts written over a period of 7 years. Some of those posts already "expired" as the piece of information got obsolete. Many of those are still very relevant and useful today.
People that have been following my blog for the past 7 years had the chance of reading most of those articles. But what about the new people? It's very hard to explore old good articles around a pool of almost 900.
Every blog still follows the very same structure: they are sorted by date in descending order, they show up one at a time in a long stream. Only new posts (or those manually chosen) show up at the top. As soon as I post a new article, the previous one become less relevant. If the blog is paginated, last month's posts will be buried and hidden in previous pages. Most people don't navigate to previous pages nor go through tags (which only help so far).
2012 November 21, 10:45 h
This year I had the opportunity to visit 4 fantastic cities across the USA and Europe/Asia. It all started in this first post. There were several goals including getting to know those cities personally as I've never been there before, then meet great people and great companies, and finally try to understand more about this fledgeling new tech startup world.
I wrote about my journey in 6 articles, originally in Brazilian Portuguese. You can use Google Translate that's available in all of them...
2012 September 07, 14:37 h

I recently wrote an article named _Why Documentary at Rubyconf 2012, Denver reminding people about this person that called himself "_Why", who decided to vanish in August of 2009, taking all his work with him, essentially committing virtual suicide.
It has attracted lots of trolls and haters at the comments section, more discussion than I anticipated, questioning why we praise someone that was crazy enough to destroy all his work, that is obviously not a good role model, and that compared to other titans of programming has done little and with less quality?
Then, today I heard about this website about Ruby Dramas - that I'm not linking. I don't know the author and I even think this is just for fun, but the reactions from the trolls and haters aren't. Essentially it links a few of what we call "Ruby Dramas", the discussions that trolls and haters call a waste of time, a demonstration of the immaturity and childish behavior of Ruby programmers.
2012 September 03, 00:54 h
Update: This article generated some heat. I've published another post with some of my thoughts about the subject later.
RubyConf Brazil 2012 has just finished but the US Rubyconf 2012 will begin on November 1-3, 2012, at Denver, Colorado. While I was finishing my post about the event, I came across this trailer for Why's Documentary, to be released during the US Rubyconf, if I understood correctly.
Now, if you're new to the Ruby ecosystem, you may have not heard about this character named "Why, The Lucky Stiff". I think 2 of the best articles about him were written by a fellow Brazilian Rubyist, Diogo Terror to Smashing Magazine in 2010, titled _Why: A Tale Of A Post-Modern Genius and Annie Lowrey for Slate Where’s _why?.
He inspired an entire first generation of Rubyist around the turn of the century. He wasn't just a programmer, he was a craftsman, literally. The only one I accept calling himself an "artist" within our programming world. His most famous work is the book Why's Poignant Guide to Ruby used by many famous Rubyists you know when they first found about Ruby.
Then in August 19, 2009 he vanished.
2012 September 02, 21:46 h
If you're a Rubyist you know the meme that "Ruby allows you to write beautiful code".
Several within the community have tried to define what "Beautiful Ruby Code" is, and even though most were successful showing us really beaultiful code, I don't think I saw someone actually being able to communicate the concept of "Beauty" yet.
Comes TED. If you know me, you know that I've been completely addicted to it for years now, all themes of TED inspires me. And tonight, while having dinner, I watched the great Richard Seymour (no, he is not a programmer) talking about this very subject and I was blown away.
Find the video below, but let me add a few words of my own. Specially in our small world of programmers and technologists, we have lots of discussions around "Form" vs "Function", as if we should choose one over the other, or as if we should balance one against the other.
2012 September 01, 22:00 h
Rubyconf Brasil 2012 was a blast!

I personally still pinch myself every time when I think about it, when I decided to commit to this endeavour back in 2008 neither I nor anyone would ever think that we would be able to make more than 1 Ruby Conference in Brazil. But against all odds we have been able to pull it off. 5 years have passed and every year is an improvement over the previous one. Locaweb has been a fantastic partner, and I don't think any other company in Brazil would have the same level of commitment, delivering more than expected year after year.
This year we had an astounding 750 attendees at Frei Caneca Convention Center and with the help of Eventials we added at least 500 more watching in real time during the 2 days of the conference. We also had the most dense Rubyconf Brasil ever with a mind boggling 31 talks, 36 speakers out of which 14 came from outside of Brazil.
We, of the Rubyconf Brasil staff, hope that everyone found something you really liked and that everybody had a great time. And I personally wish that if you liked it, you keep helping the Ruby community to grow larger in Latin America.
2012 August 29, 19:25 h
I'm glad to announce that right after Rubyconf Brazil 2012 this week I will embark in a new journey. Starting by the end of next week I'll travel first to San Francisco and my first activity there will be to represent my company, Codeminer 42, at the Brazillian Pavillion on the Techcrunch Disrupt conference.
I'll stay in San Francisco until the 24th and my goals are to meet old friends, get to know the software development communities and really make this a networking and learning travel. If...
2012 July 24, 13:42 h
After a long gap I finally managed to contribute a bit to RubyLearning.org. I’ve written a 2 part article about Internationalization (i18n) in Brazilian Portuguese a few days ago. I’ve adapted it into English and you can read it at Satish’s blog. I’m showing snippets of code from a demonstration app and you can see the code at my Github repo and you can also see the app up and running here, thanks to Heroku’s free accounts. I hope you enjoy it!
2012 July 11, 14:13 h
Registrations are open through the official Rubyconf Brazil 2012 website. The opening price is BRL 150, roughly USD 75 that you can pay through Paypal. If your company is going to sponsor your registration, ask the person in charge to register himself as a company. After registration he can subscribe many people and pay just once. Time goes by very fast and who would say that one day we would be opening the 5th consecutive Ruby conference in Brasil? It feels like it was yesterday that Locawe...
2012 May 08, 10:36 h
This is something I just stumbled upon and because it’s tricky to install the first time I decided to grab the pieces that make it work. It’s so useful I had to post about it.
If you’re learning Japanese this will definitely prove to be an invaluable tool. I am Japanese but I didn’t payed attention to proper Kanji training when I was a child. It shows now, as I can read Kanji only to what would be considered below high-school level in Japan. Still very useful, but it means I can’t read most websites in Japanese fast enough.
I’ve known of a Firefox add-on I’m very fond of for a long time now called Rikaichan. When enabled, you have hover your mouse over the kanji text and it will popup a box with the translation. You must install the Firefox add-on in the previous link and a proper dictionary to your native language from Rikaichan’s webpage. And that’s it.

2012 April 10, 17:05 h
I’ve been a bit late in promoting RubyConf Brazil this year, I apologize for that. I’ve released the Call for Papers website a few days ago but I was only able to post about it today. If you want to come talk at our conference, please submit your talk as soon as possible. Because of these delays, I’ve extended the Call for Papers until April 27th. If you don’t have a complete description of your talk proposal yet, you can submit right now and the website will email you back a unique link that...
2011 November 28, 02:40 h
It’s been a while since I’ve written about my Ruby Kaigi 2011 trip. Since then I’ve been really busy and I left out lots of great material shamelessly accumulating dust in my hard drive, but no more. Today I was finally able to edit some of that and upload the interviews I have recorded with some of the most well known Japanese Ruby contributors. Wonderful people that I was lucky to meet and that were very friendly to me and eager to tell their stories.
These are the first versions of the edited videos, I still didn’t have time to add English subtitles, but I wanted to upload them as soon as possible so the Japanese community could check them out first. I will try to add the subtitles in the following days (help would be appreciated). The Matz interview in particular has the worst audio as we were in the middle of an after-party in a small bar with very bad acoustics, so I apologize for its quality, I hope you can get most out of it.
Alencar Koga helped me out a lot during the interviews. Coincidentally he is a Brazilian just like me, but he’s been living in Japan for a long time and was able to build a great career, being now the CTO of MTI Japan, one of the largest mobile app developers in the country. Akira Matsuda also helped me a lot, and he is also a very well known Rubyist in Japan. Both were edited out of the videos to make them shorter to watch. I appreciate their help a lot as they will be very useful when I do the English subtitles.
2011 September 19, 01:41 h
I have just released the beta version of the RubyConf Brazil website. The registration process is about to be released in the next few days but you can already check out the contents of the website. This is the 4th year we are organizing this great conference and I’d like to invite you all to come again and visit Brazil. RubyConf Brazil is going to be great, last year we had more than 700 attendees and we will keep the same format of two intense days with two parallels tracks going on with re...
2011 August 05, 09:13 h
I hope you enjoyed my first article in the series Exploring Tokyo City. Now let me tell my impressions of the RubyKaigi Conference itself.
What many may not know is that RubyKaigi is in its 6th iteration and it has always been organized by volunteers effort. Their leader is Masayoshi Takahashi-san. He is also the founder of Nihon Ruby-no-kai (Japan Ruby Group) which also helds the e-zine Rubyist Magazine. You should check those resources out to see what the Japanese Rubyists are doing. Great resource.

The main group seems to surround around Takahashi-san and then Shintaro Kakutani-san who works for Eiwa System Management and he is the main Ruby Evangelist in Japan, doing talks all around the country, helping create and organize Regional RubyKaigi, translating books such as the recently released Agile Samurai (from Pragmatic Programmers). As an Evangelist myself, I have to honestly say that Kakutani-san puts me to shame (which inspires me to try harder!). He is doing a remarkable work and if you didn’t know him, you should.
The Program Chair for the conference is no other than Dr. Koichi Sasada, PhD in Information Science and Engineering from The University of Tokyo, he runs the Sasada Labs researching on programming languages and its processors. Oh, and did I mention that he is the creator and current maintainer of “YARV”, the Ruby 1.9 series’ heart? You can read a small interview with him from the Rails Magazine.
There are several individual contributors for RubyKaigi that you really should spend some time knowing about. They are very active and very committed. “Friendship”, “effort”, “unity” and most specially “respect”, were words that came to mind knowing some of them.
2011 July 26, 02:54 h
This is the first article in a series that will use the Japanese RubyKaigi trip as the background – and a kind of excuse – for something else entirely that I’ll attempt to achieve, though I am not sure if I will be able to succeed.
If you don’t know me, my name is Fabio Makoto Akita. Fabio is my Brazilian first name. Makoto is my Japanese first name (considered a middle name in the Western world) and Akita is my family name. I am a 3rd generation Brazilian-Japanese born and raised in Brazil. Many people in Japan asked me about this, hence the explanation here.
Brazil is an Emerging and Developing Country, former Third World. Some assume that the Brazilian culture is very much similar to the US culture, being from the same Western world and having some of the same European roots. And that Japan has a very different culture from both, being from the Far East, the Orient.
Ruby is one of the few open source projects that I am aware of that has a strong US derived community and at the same time another strong Japanese one.
2011 July 23, 21:30 h
I attended RubyKaigi 2011 and it was a very exciting trip for me. My grandparents were born in Japan, I am 3rd generation Japanese born and raised in Brazil. This was my first time visiting my grandparents home country. It was therefore the first time I decided to attend RubyKaigi, the most famous Japanese Ruby conference. And if it couldn’t be exciting enough, I was able to attend it as a speaker, the first from South America. It couldn’t be better. I came back to Brazil yesterday and I am s...
2011 May 31, 14:59 h
If you follow my feeds, you probably saw that I’ve been tweaking my website since this weekend. So I decided to undertake yet another brain surgery and learn some new stuff in the process.
You can see the result at this staging subdomain. Let me know if you find any bugs. This is a heavily customized Enki blog adapted for Rails 3.1 beta running over Ruby 1.9.2 and Nginx/Passenger.
The very first step that I recommend is David Rice’s article on how to upgrade your Rails app to 3.1. It was invaluable in my process. First and foremost, the advice that applies to any Rails upgrade:
I’ll go over David’s bullet points on the upgrade process and you can compare my article with his to understand a few differences and how you can adapt those steps for your own projects.
2011 May 29, 07:25 h
Update 05/29: Looks like I don’t have to hard code the IP address of rubygems.org because it seems like it always redirects to production.cf.rubygems.org. So pointing directly to it seems to do the trick.
Despite the current discussion around Rubygems maintenance, we can probably be assured that the current process of acquiring gems will remain largely unchanged.
On top of that we have at least 2 other variants to deal with, one being Bundler and the other being RVM Gemsets. The later is not being used so much because the former has more advantages.
The problem I face right now is: sometimes I have to reinstall several gems, several times. For example, if I have RVM with 3 different rubies, there will be the need to install Rails 3 times if I want to use it in every environment. If I have an isolated bundler vendor directory, or if I have a separated gemset for testing purposes, I will have to install several repeated gems again.

2011 April 24, 00:46 h
If you didn’t read my last two article I recommend you do so before going any further because I am using the same pet project, ObjC Rubyfication as an example for this article. The point is: you are writing reusable code that you want in more than one project.
Most of this was based on Cocoanetics article about universal static libraries. So, if you’ve payed attention to my previous article, you saw this screenshot:

2011 April 23, 23:44 h
As some of you may know, I have this small pet project called ObjC Rubyfication, a personal exercise in writing some Ruby-like syntax within Objective-C. Most of this project uses the fact that we can reopen Objective-C standard classes – very much like Ruby, unlike Java – and insert our own code – through Categories, similar to Ruby’s modules.
The idea of this pet project is to be a Static Library that I can easily add to any other project and have all of its features. In this article I’d like to present how I am organizing its many subprojects within one project (and I am accepting any suggestions and tips to make it better as I am just learning how to organize things within Obj-C projects) and talk about a gotcha that took me hours to figure out and might help someone else.
2011 April 23, 22:47 h
While experimenting with ways of using Objective-C a little bit closer to how I code Ruby, there were two things that annoyed me a bit. First, Date Formatting and, second, Regular Expressions.
The Cocoa framework has both implemented as NSDateFormatter and NSRegularExpression that also happen to be available for iOS development.
You can format dates like this:
1 2 3 4 5 6 7 8 9 |
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:162000]; NSString *formattedDateString = [dateFormatter stringFromDate:date]; NSLog(@"formattedDateString: %@", formattedDateString); // Output for locale en_US: "formattedDateString: Jan 2, 2001" |
And you can use Regular Expressions like this:
1 2 3 4 5 6 7 8 |
NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b(a|b)(c|d)\\b" options:NSRegularExpressionCaseInsensitive error:&error]; NSUInteger numberOfMatches = [regex numberOfMatchesInString:string options:0 range:NSMakeRange(0, [string length])]; |
But I have issues with both of these. The Ruby equivalent for the date formatting example would be:
1 2 3 |
require 'activesupport' date = Time.parse("2001-01-01") + 162000.seconds date.strftime("%b %d, %Y") |
And the regular expression example would be like this:
1 |
number_of_matches = /\W*[a|b][c|d]\W*/.match(string).size
|
There are 2 specific things that annoys me:
So, the ideal solution for me would be: