Monday, December 23, 2013

Run web server in from any directory as root on the fly using ruby

Many times while testing open source project demos and examples we need to run the html pages on a web-server.
Opening the files directly in browser has it own limitations like while ajax call some browser imposed limitations blah blah...

Instead if putting it in web root directory every time we can use the inbuilt web-server which ruby provides


just go to the directory and run

ruby -rwebrick -e'WEBrick::HTTPServer.new(:Port => 5000, :DocumentRoot => Dir.pwd).start'


-r requires class ( webrick requred here)
-e executes code (webserver run on port 5000, with document root as current dir)

enjoy.. :)



Wednesday, September 25, 2013

Rails performance boost using Passenger/Unicorn Out-Of-Band Work GC

Hello, have u tried Out-Of-Band GC?

Its available in passenger 4 and unicorn its give a very good performance boot to application at cost of some extra memory footprint (in my case 1.6 times than actual memory)

Don't forget to to disable auto gc during requests
GC.disable # Don't run GC during requests is the  main key here

Tune frequency according to application for maximum performance 
#unicorn
GC_FREQUENCY = 5

#for passenger Trigger out-of-band GC every 5 requests.

Tuesday, April 23, 2013

Curb gem Installation problems on Ubuntu


Install the follows libs

sudo apt-get install libcurl4-gnutls-dev libcurl4-openssl-dev

curb gem compiles natively using system libs and it requires curl headers to complile with is not installed by default.

Install the libs and run 

gem install curb

It should install smoothly.. \m/ 

Friday, January 4, 2013

truncate and link text helper in rails


snippet to truncate text and link to see more

Code this in application helper.

  def truncate_and_link( text,options ={})
    length = options[:length]
    return text if length.blank?
    url = options[:url] || '#'
    output = raw truncate(text, :length => length)
    output += link_to('more', url) if text.size > length
    output.html_safe
  end

Useful when eg linking big posts

Saturday, December 29, 2012

rails 3.2 with jruby and mysql with rvm in ubuntu


If was trying to migrate one of the app from ruby to jrby to try out the threading benifits.

this wasn't an easy task :D

well the gem dependency did not create a big issue.

the problem came when connecting to mysql with jdbc driver
I had replaced

 gem 'mysql2'
with

 gem 'activerecord-jdbcmysql-adapter'

in Gemfile


But it refused to load the driver saying :

"The driver encountered an unknown error: cannot load Java class com.mysql.jdbc.Driver'

I searched but Google could not answer me :(

then I started looking into activerecord-jdbsmysl-adapter gem and came upon the the file 

activerecord-jdbc-adapter / activerecord-jdbcmysql-adapter / lib / active_record / connection_adapters /jdbcmysql_adapter.rb 

I just copy pasted the code in a application.rb config with a condition if jruby used just after the bundler code


if defined?(JRUBY_VERSION)
  require 'jdbc/mysql'
  Jdbc::MySQL.load_driver(:require) if Jdbc::MySQL.respond_to?(:load_driver)
end

and boom it worked...!!!

I don't know why it did not load it even if it was included in Gemfile.

but at last I was able to run the app wit jruby and rails. Woaaahhhh..

Monday, December 10, 2012

Send devise compatible forgot password mail through action mailer in rails

To have multiple forgot password templates and send it through mailer in rails it is quite easy


Just


Cheers...!!