Fred Wu

@fredwu
Legendary
CTO by day, freelancing software consultant by night. Founder of Persumi.
@fredwu 10 years ago in the void | 1 min read | no comments
If you’re like me who uses both Sublime Text 3 and Dropbox, chances are you have your Sublime Text 3 folder synced in Dropbox. I use my laptop as my primary workstation so most of the time it’s docked and charged. Occasionally when I do use it on battery power however I notice the extremely poor battery life - typically only 2-3 hours. Eventually I realised the power consumption was caused by Sublime Text 3 generating a temp file in its "Index" folder every second or so, and that triggers Dropb...
@fredwu 10 years ago in the void | 2 min read | no comments
Please also see this blog post on tweaking your ruby GC settings. I use and love DatabaseCleaner, although historically I had never paid too much attention on the performance of its varies cleaning strategies - I’d always used truncation. We use Postgres, and after digging around and finding out the difference between DELETE and TRUNCATE, I ended up improving our test suite speed by about 30-40% simply by tweaking the cleaning strategies. RSpec.configure do |config| config.before :su...
@fredwu 10 years ago in the void | 1 min read | no comments
It was made apparent to me that many ruby devs either aren’t aware or couldn’t be bothered to tweak their ruby garbage collector settings. Well, if you are using MRI, please start tweaking your GC settings. Here’s what I use (on my 15" Macbook Pro Retina): export RUBY_GC_MALLOC_LIMIT=90000000 export RUBY_FREE_MIN=200000 Not only can you tweak it for your local dev machine, you can also tweak Jenkins, Travis CI, Wercker and other CI solutions, making instant speed gain for your test sui...
@fredwu 10 years ago in the void | 15 min read | no comments
Writing good, sensible tests is hard. As a Rubyist, I feel lucky to be part of a community that embraces tests. Though at the same time, I have come across too many projects that suffered from not having sensible tests. What are Sensible Tests? There often isn’t a silver bullet when it comes to software development. Technical stuff aside, many things contribute to the solution to a given problem - the team, the project and the business to name a few. This article does not attempt to present any...
@fredwu 10 years ago in the void | 2 min read | no comments
I haven’t really used Sequel much therefore I am definitely a newbie. However, after days and nights of frustration, endless debugging and some search-fu during the development of Datamappify, I have finally arrived at the conclusion that Sequel is a capable library, as long as you are aware of the gotchas. Gotcha 1: Always use "select"/"select_all", or your data records will mysteriously have wrong IDs! In ActiveRecord, joining an associated model couldn’t be simpler: Post.joins(:author) ...
@fredwu 11 years ago in the void | 15 min read | no comments
A while ago I translated an interview with Matz done by a Chinese book publisher. The interview and the translation were well received, so this time I am translating another interview with Matz, done by Ito, the editor-in-chief from Japanese website Engineer Type. Since I don’t read Japanese, the translation is based on Turing Book’s Chinese translation. The Chinese translator has done a great job translating the interview, but there are still many words and sentences lack sufficient context and...
@fredwu 11 years ago in the void | 11 min read | no comments
This post is about the ruby library we are building - Datamappify, please go check it out. At Locomote we are building a relatively large web application using Rails. Before we began to lay the foundation, we knew very well that if we wanted the project to be maintainable we had to architect the system with extra care and attention. More specifically, we can’t rely on simply using ActiveRecord which combines behaviour and persistence as our domain models. We began our search for something that ...
@fredwu 11 years ago in the void | 1 min read | no comments
[] Would you be interested in reading such a book?
@fredwu 11 years ago in the void | 2 min read | no comments
Update: You might also want to check out reset_column_information. So a few days ago we started seeing the following errors on our Jenkins builds (swapped with fictional model and attribute names): NoMethodError: undefined method `attack_power=' for #<Ironman:0x00000008525d20> attack_power is a new attribute we recently added to the Ironman ActiveRecord model. I was baffled, as the table column is clearly there but ActiveRecord couldn’t see it. This weird behaviour is confirmed by ...
@fredwu 11 years ago in the void | 1 min read | no comments
It was the first time I presented in front of 400+ people so I was really nervous - I blasted through the talk in under 30 minutes even though I was supposed to talk for 45 minutes, oh well. ;) video: https://www.youtube.com/embed/DeBsmdDmB9A Also, my slides are available too. P.S. If you’re located in China, you may view the talk at Railscasts China.