We hardly stretch ourselves to limit unless situation demands to do so.
My requirement - convert a decimal to binary conversion
My first impression - there would be a to_b default method available in ruby which I can use straight away. But it was not so.
But as always it is quite simple to do it in ruby,
number.to_s(2)
gives the binary equivalent of the number
try this from ur IRB
3.to_s(2)
similarly for any base conversion just pass the base value to to_s
Example
3.to_s(10) for base 10 conversion.
Wednesday, March 25, 2009
Monday, March 16, 2009
Database log file size issue
Recently I faced a problem where my SQLServer 2005 ran out of space for log files. Usually the log files can be reduced by shrinking them but this time the transaction logs were so much huge that I was not even allowed to run shrink log command.
My DB was in Recovery phase.
My friend Dagupati ( a professional DBA ) helped me getting out of this trouble.
Following are the steps to be followed in sequence to achieve this.
1) Take the DB into emergency mode.
My DB was in Recovery phase.
My friend Dagupati ( a professional DBA ) helped me getting out of this trouble.
Following are the steps to be followed in sequence to achieve this.
1) Take the DB into emergency mode.
ALTER DATABASE yourDBname SET EMERGENCY2) Bring DB to single user mode.
ALTER DATABASE yourDBname SET SINGLE_USER
3)Repair you DBDBCC CheckDB ('yourDBname', REPAIR_REBUILD)
if the above command fails, try thisDBCC CheckDB ('yourDBname', REPAIR_ALLOW_DATA_LOSS)
NOTE : This may result in dataloss
4) Bring you DB to multi user modeALTER DATABASE yourDBname SET MULTI_USER
By now you should have your DB up & running.
DB at times enter into SUSPECT mode - restarting server should solve them if not follow the above steps.
To be on safer side take full / transactional backups regularly
Labels:
SQL server
Handel database NULL values in rails
I was in the impression that rails takes care of
1) nil to NULL when inserting, and
2) NULL to nil while fetching records through Active record
But this proved wrong when my application running in SQL server 2005 fails to detect database NULL fetched from DB.
The fetched value was not even caught by blank? method.
Found this article while googling on this issue, this more or less matched the problem I was facing.
I tried it and was successful.
I am providing a snapshot of the article
This helped me in dealing with DB NULL values. Certainly without this article it would have been a tough going to find a way around for this issue ;).
Have also made a thread for this in WorkingWithRails, just to make sure the fix is valid and to get expert comments on the fix.
1) nil to NULL when inserting, and
2) NULL to nil while fetching records through Active record
But this proved wrong when my application running in SQL server 2005 fails to detect database NULL fetched from DB.
The fetched value was not even caught by blank? method.
Found this article while googling on this issue, this more or less matched the problem I was facing.
I tried it and was successful.
I am providing a snapshot of the article
ActiveRecord::Base.class_eval do
def attributes_from_column_definition_with_null_fix
returning attributes = attributes_from_column_definition_without_null_fix do
attributes.each_value { |value| value.replace('') if value == 'NULL' }
end
end
alias_method_chain :attributes_from_column_definition, :null_fix
end
This helped me in dealing with DB NULL values. Certainly without this article it would have been a tough going to find a way around for this issue ;).
Have also made a thread for this in WorkingWithRails, just to make sure the fix is valid and to get expert comments on the fix.
Sunday, March 15, 2009
Calling RAKE tasks
The syntax for calling a Rake task within rails env,
Rake::Task[TASK_NAME].invoke
If you need to call a rake task from a standalone ruby script, then do remember to include 'rake' files.
Bellow I have provided an usage on how to call a RAKE task from a rufus scheduler script.
My scheduler script is placed inside /lib folder
Also the script will fail to locate your rake task if just call a RAKE method without loading the RAKE file ( the .rake file in which you have your tasks defined ).
So, make sure you load your rake task files.
USAGE
This when triggered will call 'delete_order_files' task defined in a .rake file called MY_TASK.RAKE having namespace 'MAINTENANCE'
Rake::Task[TASK_NAME].invoke
If you need to call a rake task from a standalone ruby script, then do remember to include 'rake' files.
Bellow I have provided an usage on how to call a RAKE task from a rufus scheduler script.
My scheduler script is placed inside /lib folder
Also the script will fail to locate your rake task if just call a RAKE method without loading the RAKE file ( the .rake file in which you have your tasks defined ).
So, make sure you load your rake task files.
USAGE
require 'rubygems'
require 'rake'
require 'rufus/scheduler'
load File.join( RAILS_ROOT, 'lib',
'tasks', 'my_task.rake')
scheduler = Rufus::Scheduler.start_new
scheduler.cron("0 17 * * 0") do
Rake::Task["maintenance:delete_order_files"].invoke
end
This when triggered will call 'delete_order_files' task defined in a .rake file called MY_TASK.RAKE having namespace 'MAINTENANCE'
Labels:
Rake tasks
Monday, March 9, 2009
Schedule using Rufus scheduler
We learned how to create Rake tasks in rails app. Next thing in process will be scheduling these tasks.
I opted for Rufu-Scheduler, mainly bcs it is quite simple to implement/configure
You can download the gem directly from : http://gems.rubyforge.vm.bytemark.co.uk/gems/
There some good resources in net which describes usage of Rufus scheduler.
Like :http://rufus.rubyforge.org/rufus-scheduler/
But some how I got myself into trouble in getting this to working ;(
Following are questions that bubbled in my mind while implementing Rufus.
>> Where do I put the scheduler code?
>> How will rails trigger my tasks, do I need to include something in my config. file?
I created a file in my /lib dir named myscheduler.rb, this contains the scheduler code and inorder to allow rails to load your rufus scheduler, you have to do
require ' myscheduler'
in environment.rb
My myscheduler.rb has
restart the server and check for 'Scheduler invoked' in your CMD.
Got it ......... your half done with your scheduling, take a break ;)
I opted for Rufu-Scheduler, mainly bcs it is quite simple to implement/configure
You can download the gem directly from : http://gems.rubyforge.vm.bytemark.co.uk/gems/
There some good resources in net which describes usage of Rufus scheduler.
Like :http://rufus.rubyforge.org/rufus-scheduler/
But some how I got myself into trouble in getting this to working ;(
Following are questions that bubbled in my mind while implementing Rufus.
>> Where do I put the scheduler code?
>> How will rails trigger my tasks, do I need to include something in my config. file?
I created a file in my /lib dir named myscheduler.rb, this contains the scheduler code and inorder to allow rails to load your rufus scheduler, you have to do
require ' myscheduler'
in environment.rb
My myscheduler.rb has
require 'rubygems'
require 'rake'
require 'rufus/scheduler'
load File.join( RAILS_ROOT, 'lib',
'tasks', 'mytasks.rake')
# Note include file containing your rake tasks
# Else you will get - Don’t know how to build
#task XXXXX’ error for the tasks you
#have defined
scheduler = Rufus::Scheduler.start_new
scheduler.every("1m") do
puts "Scheduler invoked"
end
restart the server and check for 'Scheduler invoked' in your CMD.
Got it ......... your half done with your scheduling, take a break ;)
Subscribe to:
Posts (Atom)