Thursday, December 27, 2007

If, Else, and Elsif Constructs

Too many if else statements can create confusion for ruby developers. If so better to refactor the code. Ruby is such an amazing object oriented language that this procedural garbage is the quickest way to ugly, unreadable code.

if you ever write something like this:
1
2
3
if my_object!= my_object_not
if my_object!= nil

If you wanna take the advantage of ruby use the following code for better readability

unless my_object== my_object_else
unless my_object.nil?

ActiveRecord partial updates

ActiveRecord updates all the columns when you save the object, without bothering to see if the column was changed or not.

Pratik Naik has given the solution for partial updates on changes.

http://m.onkey.org/2007/12/18/partial-updates

Make sure that you use optimistic locking.

Active Records support optimistic locking if the field lock_version is present. Each update to the record increments the lock_version column and the locking facilities ensure that records instantiated twice will let the last one saved raise a StaleObjectError if the first was also updated.

Thursday, December 20, 2007

Rails Plugins - Query Analyzer

The Query Analyzer plugin will expand the usability of your log files by providing query analysis using the MySQL query execution plan. Each SQL select query will be ‘EXPLAIN’ed and added to the log files right below the original query.

Installation

script/plugin install http://svn.nfectio.us/plugins/query_analyzer

Example Use

Refer to http://www.mysql.org/doc/refman/5.0/en/explain.html for more information on understanding the results.

http://www.rubyinside.com/columnized-text-datasets-in-rails-71.html http://habtm.com/articles/2006/06/10/pretty-tables-for-ruby-objects


Wednesday, December 19, 2007

Latest bug fixes for ruby pdf-writer 1.1.4

* Better memory footprint for PDF::SimpleTable
* Fixed an error with BMP images in ImageInfo#measure_BMP
* Temporary removal of encryption functionality, as it seems to have
numerous issues
* Resolved an issue with ordering of column names in PDF::SimpleTable
* Resolved an issue with shading in PDF::SimpleTable
* Applied a patch to allow toggling visible column separators in QuickRef
* Partially fixed issues with page numbering

rubyvmware-0.3-release

Rewrite all initialization codes. More OO and rubish.
Add VMware::VM class with poweron,poweroff,reset,suspend methods.
Try to move to VIX 1.2.

Track latest rubyvmware: http://rubyvmware.rubyforge.org

Ruby gem youtube-g version 0.4.0 has been released!

Aims to be in parity with Google's YouTube GData API

Basic queries:

@client = YouTubeG::Client.new
@client.videos_by(:query => "penguin")
@client.videos_by(:tags => ['tiger', 'leopard'])
@client.videos_by(:categories => [:news, :sports])
@client.videos_by(:categories => [:news, :sports], :tags => ['soccer', 'football'])
@client.videos_by(:user => 'liz')

Standard feeds:

@client.videos_by(:most_viewed)
@client.videos_by(:top_rated, :time => :today)

Advanced queries (with boolean operators OR (either), AND (include), NOT (exclude)):

@client.videos_by(:categories => { :either => [:news, :sports], :exclude => [:comedy] }, :tags => { :include => ['football'], :exclude => ['soccer'] })

## INSTALL

* sudo gem install youtube-g