Tagrails

Getting fast with rspec

get the gem from here

http://github.com/timcharper/spork

 

How to fix the Missing error

http://chrisblunt.com/blog/2009/08/28/rails-configuring-rspec-for-spork/

 

My Ubuntu workstation configuration

XOrg configuration

  • https://wiki.ubuntu.com/X/Config/Resolution
  • cvt 1680 1050 75
  • xrandr –newmode …the output from cvt
    xrandr –newmode “1680x1050_75.00” 187.00 1680 1800 1976 2272 1050 1053 1059 1099 -hsync +vsync
  • xrandr –addmode DVI-0 1680x1050_75.00

Lenovo Y510

You have to install the latest alsa.

Then replace the existing kernel modules with the just build one. Then run depmod -a as point kilbasar here

http://ubuntuforums.org/showthread.php?t=687663&page=2

sudo su
cd /lib/modules/2.6.22-14-generic/ubuntu/media/snd-hda-intel/
mv snd-hda-intel.ko snd-hda-intel.ko.bak
ln -s /lib/modules/2.6.22-14-generic/kernel/sound/pci/hda/snd-hda-intel.ko /lib/modules/2.6.22-14-generic/ubuntu/media/snd-hda-intel/snd-hda-intel.ko
cd /usr/src/alsa/alsa-driver-1.0.16rc2/modules
cp * /lib/modules/2.6.22-14-generic/kernel/sound/
depmod -a

Logitech Revolution MX

http://x4.6times7.org/dokuwiki/doku.php/devlog/blog/howto_logitech_mx_revolution_on_ubuntu

  • The mouse wheel control
    • Download from here http://goron.de/~froese/revoco/ or revoco-0.5.tar
    • make
    • sudo ./revoco manual=6
    • lets try to add it in ~/.xprofile next time
  • Here is my xorg.conf
Section "Monitor"
 Identifier "External DVI"
 # 1680x1050 74.89 Hz (CVT 1.76MA) hsync: 82.31 kHz; pclk: 187.00 MHz
 Modeline "1680x1050_75.00"  187.00  1680 1800 1976 2272  1050 1053 1059 1099 -hsync +vsync
 # 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
 Modeline "1680x1050_60.00"  146.25  1680 1784 1960 2240  1050 1053 1059 1089 -hsync +vsync
 # 1680x1050 69.88 Hz (CVT) hsync: 76.58 kHz; pclk: 174.00 MHz
 Modeline "1680x1050_70.00"  174.00  1680 1800 1976 2272  1050 1053 1059 1096 -hsync +vsync
 Option "PreferedMode"    "1280x1024_75.00"
EndSection

Section "Screen"
 Identifier    "Configured Screen Device"
 Device    "Configured Video Device"
 SubSection "Display"
 Depth    24
 Modes "1680x1050" "1024x768" "640x480"
 Virtual    2960 1050
 EndSubSection
EndSection

Section "Device"
 Identifier    "Configured Video Device"
 Option    "Monitor-DVI-0" "External DVI"
EndSection

My Development setup commands

I noticed simillar post here

sudo aptitude install mc vim subversion screen pidgin meld curl links2 vim-ruby vim-gnome vim-doc vim-scripts vim-ruby vim-perl \
subversion git-core bluefish kompozer\
libmysqlclient15off libmysqlclient15-dev mysql-common mysql-client \
libmysql-ruby1.8 irb ruby1.8 rdoc ri rake \
apt-utils build-essential ruby1.8-dev mysql-server memcached libxslt1-dev libpcre3-dev zlib1g-dev unzip gzip mytop openssl \
libopenssl-ruby libmagick9-dev imagemagick librmagick-ruby1.8 imagemagick librmagick-ruby-doc  libmagick9-dev ruby1.8-dev \
libdbd-sqlite3-ruby libsqlite3-ruby sqlite3 libsqlite3-dev

ln -s /usr/bin/ruby1.8 /usr/bin/ruby

mkdir ruby_install
cd ruby_install
wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
tar xzvf ruby*
cd rubygems-1.3.5
ruby setup.rb
cd ..
cd ..

ln -s /usr/bin/gem1.8 /usr/bin/gem

gem install rails mysql mongrel mongrel_cluster rails paperclip will_paginate andand \
json feed-normalizer hpricot mechanize ruby-debug uuid ruport ruport-util acts_as_reportable \
rufus-scheduler annotate openwferu-scheduler production_log_analyzer capistrano-ext libxml-ruby twitter capistrano wirble RedCloth
rspec-rails sqlite3-ruby \
--no-ri --no-rdoc

gem install rmagick -v 1.15.12
ruby -rrubygems -e "require 'RMagick'; puts Magick::Long_version;"

cat > /home/guda/.irbrc
require 'rubygems'
require 'wirble'
Wirble.init
Wirble.colorize
require 'logger'
if ENV.include?('RAILS_ENV') && !Object.const_defined?('RAILS_DEFAULT_LOGGER')
Object.const_set('RAILS_DEFAULT_LOGGER', Logger.new(STDOUT))
end

Gmail notification
http://www.workswithu.com/2009/10/06/gmail-notifier-applets-for-ubuntu/

What about http://ubuntu-tweak.com/

Some nice software that I am looking arround

libhttp-access2 – lwp for ruby

ruby ide http://github.com/danlucraft/redcar/tree/master

Rake mysql tasks

I have found that I should be quicker if I put the following task in all my small projects.
Continue reading

Last thinks that I have read

http://railsguts.com/
http://www.espace.com.eg/neverblock
http://m.onkey.org/2008/11/17/ruby-on-rack-1
http://m.onkey.org/
http://www.gnome-db.org/Download
http://loriholden.com/

http://www.bestechvideos.com/

Flex

http://conference.startup-bg.org/2008/?page_id=696

Merging search criteria with merge_conditions

  def search(params = {})
    cond = []
    cond << ["name LIKE ?", params[:name] + '%'] unless params[:name].blank?
    cond << ["email = ?",   params[:email]]       unless params[:email].blank?
    conditions = cond.map { |c| User.merge_conditions(c) }.join(' AND ')
    User.find(:all, :conditions => conditions)
  end

Installing notes for Rails on Debian/Ubunto

Debian Etch with backports

Add this line in sources.list to get rails > 1.8.5 in rails etch

deb http://www.backports.org/debian etch-backports main contrib non-free
# deb ftp://ftp.nz.debian.org/backports etch-backports main contrib non-free
apt-get install debian-backports-keyring
aptitude update

# some ruby stuff
aptitude install -t etch-backports ruby1.8-dev libmysqlclient15off libmysqlclient15-dev mysql-common mysql-client libmysql-ruby1.8

# some system utils/libs
aptitude install apt-utils build-essential mysql-server mysql-common mysql-client memcached libxslt1-dev libpcre3-dev zlib1g-dev unzip gzip mytop  openssl

aptitude install -t etch-backports libopenssl-ruby

# gems
gem install rails mongrel mongrel_cluster -y

check this step-by-step

Image magick linux howto – http://rmagick.rubyforge.org/install2-linux.html

aptitude install libmagick9-dev  imagemagick librmagick-ruby1.8 imagemagick librmagick-ruby-doc  libmagick9-dev ruby1.8-dev


# for version 1 of imagemagick we use this rmagick, else try it without the -v
gem install rmagick -v 1.15.12 

# lets test it
> irb
require 'rubygems'
require 'RMagick'
Magick::CenterGravity
puts Magick::Long_version

# or with 

ruby -rrubygems -e "require 'RMagick'; puts Magick::Long_version;" 

I love this tutorial on rubyinside

syslog-ng and rails

My Syslog-ng.conf file

The interesting part is the final flag which tells the syslog not to process any further the message. This way the message stays only in the rails application logfile.

log { source(src); filter(f_rails); destination(rails_log); flags(final); };

Here is the whole conf file

Continue reading

Rails caching notes

General Notes

Very nice tutorial for rails 2.1 caching.

API references: Fragments, Sweepers, the Store

Post how to move the page cache in a folder with some server examples

Observing Controllers with Sweepers

Here is described how you can use the Sweepers to observe controller actions. I totaly agree that the documenation is very bad on the sweepers and it is like a rule book of MTG than usefull rdoc.

Here is what I have found on the naming of the callbacks.

Checking the source code in sweeping.rb shows that the callbacks that are used for the controller are constructed in this way:

controller_callback_method_name = "#{timing}_#{controller.controller_name.underscore}"
action_callback_method_name = "#{controller_callback_method_name}_#{controller.action_name}"

This means that the method which will be called in the sweeper will be named

  • after/before_user – for the controller UserController
  • after/before_user_login – for the action login in the controller UserController

Here is an example.

class Dagens::UserController < Dagens::BaseController
  cache_sweeper DagensAgentSweeper, :only => [:do_login, :do_delete_account, :do_logout]
  def do_login
  end
  ....
end

class DagensAgentSweeper < ActionController::Caching::Sweeper
  observe DagensAgent

  def after_user_do_login
    puts "after do login \n \n \n \n \n \n \n "
    expire_cache_for(@logged_user)
  end
end

Skipping callbacks from an observer

I know that it is not good idea, but some times there is no time/way to do skip it. I have found a plugin and this post here. I have choose to use the second one in my project. Here is the example

class DagensAgentSweeper < ActionController::Caching::Sweeper
  observe DagensAgent

  def self.skip_callback(callback, &block)
    method = instance_method(callback)
    remove_method(callback) if respond_to?(callback)
    define_method(callback) { true }
    result = yield
    remove_method(callback)
    define_method(callback, method)
    result
  end
........
end

And later in the controller….model…

      DagensAgentSweeper.skip_callback(:after_update) do
        @agent.shown_times += 1
        @agent.save
      end

timed_fragment_cache

Some patches on the timed_fragment_cache plugin.

Note how Jolyon Says suggest to expire the cache when you have time zone : when_fragment_expired ‘tags_home_page’, Time.now + 10.minutes do

I have notice that timed_fragment_cache (or the patch) have a problem with expiring the cache from the controller. In the documenation it is stated that it is ok to expire the cache only in the controller with

when_fragment_expired  "_last_update",  Time.now + 1.minutes  do

and there is no need to expire it in the view, but you MUST expire it in the view.

cache "_last_update" do

must be

cache "_last_update", Time.now + 1.minutes  do



		
	

Nginx with Rails

downloaded from here
documentation here
If you want to try different solution check it haproxy Continue reading

© 2024 Gudasoft

Theme by Anders NorénUp ↑