First Look at 280Atlas Beta

Posted by Alvin Lai on November 18, 2009

I signed up for the 280Atlas Beta (one time fee of $20) and one of the first things I did was to create a native Cappuccino based app and take a windowed screenshot of it and guess what I found!

This isn’t really a bug, but just an observation on overflowing borders when taking windowed screenshots.

B309674287d2d8132801eaea09495c71

The border of the windowed screenshot is thicker than usual and overflowing, contrast this with a regular windowed screenshot:

07619919612472b4a0bfd138d69c9185

Although the actual windowed screenshot looks fine:

77ce759ddde27fd4df0f44880540a07c

In the meantime, check out how easy it is to create a native browser with Atlas here:


http://dailyjs.com/2009/11/16/atlas/

Add color to Git

Posted by Alvin Lai on November 16, 2009

Wished that git came with colors?

325fbb4dcad8f8aabc1ba22f77948eb1

Got this in a recent email from the Singapore Ruby Group:


git config --global color.branch "auto"
git config --global color.status "auto"
git config --global color.diff "auto"

Thanks Dinesh! :)

You can find out more here:
http://cheat.errtheblog.com/s/git

Freshlog now supports Github!

Posted by Alvin Lai on November 12, 2009

C34d4acd591aa96f173d7d82324e4a5d

Nicely attached in Github:

413dbbf1829ac0d68c292e94aea7ebde

Comment on existing Github issues:

B6a9e0a37eb3e85f279d39e18e06e987

and have them nicely show up too:

7a09c77abfda7dfdf77c599ed155fff0

Check it out at http://freshlog.com

Enjoy! :)

Get Mac OS X to tell you when your time consuming process is done

Posted by Alvin Lai on November 09, 2009


./time_consuming_process.rb && say "Your time consuming process is done"

and you will hear Mac OS X tell you when its done while you go do other stuff.

Get Selenium on Rails to Use A Separate Firefox Browser Profile

Posted by Alvin Lai on November 05, 2009

You might notice that Selenium’s rake acceptance test would fail the second time because Firefox restored tabs that belonged to the first time you ran the acceptance test.

If you run Selenium for the first time round, you’ll end with 2 tabs, the second one being the results:

5b218e74660545b72c952d249954ac5e

When you run the test again, the first tab (circled in red) which was created in the previous session (also the first Selenium test), restored by Firefox, also runs a parallael Selenium test, resulting test failures:

C17adfa3188545cbbb61a90835821b6b

The way to fix this is to disable session restore in Firefox’s about:config:

15a44d34a68104d1f38d716a4872d801

5ec56c333c8308b83b38fca179ebb1ad

547440cfb1dd3719dca9cec797876ea4

But what if you love Firefox’s session restore feature? Create a separate Firefox profile for Selenium testing!

Go to Terminal.app then enter this to run Firefox’s Profile Manager:


/Applications/Firefox.app/Contents/MacOS/firefox-bin -ProfileManager

E2cddef89cdc23dcf81ae6c582a51642

Then modify /vendor/plugins/selenium-on-rails/lib/selenium-on-rails/acceptance_test_runner.rb:

Under the start_browser method, add a


-P Selenium

An example:


command = "\"#{path}\" -P Selenium \"http://#{HOST}:#{@port}#{TEST_RUNNER_URL}?test=tests&auto=true&baseUrl=#{base_url}&resultsUrl=postResults/#{log}&multiWindow=#{MULTI_WINDOW}\""

That would set Selenium to use Firefox with your newly created Selenium Profile, where you can turn off Session Restore just for that profile and still enjoy it in your default Firefox profile.

Git Ignore

Posted by Alvin Lai on November 04, 2009

Edit .git/info/exclude

and add your directories, i.e.:

/log/*
/db/schema.rb

Run Rake Tasks Locally in Capistano with Quit on Failure

Posted by Alvin Lai on November 04, 2009

After a git commit and push, the next command you might run is cap deploy. But how about running your tests?

If you don’t want to run any extra commands beyond git commit/push and cap deploy, you’ll want to look having your Capistrano script run your Rake tests locally too.

The Capistrano command “run” execute stuff remotely on your target deployed server, but since the deploy.rb Capistrano script is just a regular ruby script, you can just use “system()” or ““” (backticks) to execute commands locally.

Here’s an example:


# acceptance test
task :run_acceptance_test do
system("rake test:acceptance") # can use backticks `` as a shorthand also
exit if $? != 0
end
before "deploy:set_comment", :run_acceptance_test

Let me explain.


before "deploy:set_comment", :run_acceptance_test

would tell Capistrano to run your custom named task, in the case here, it’s “:run_acceptance_test”.


exit if $? != 0

Would check the error code of the previously run system command and if the error code (defined by $?) is not 0 (zero), it’ll cause the whole Capistrano script to exit.

So, if rake test:acceptance fails, the Capistrano script will exit and deployment will not happen at all.