Posts

Showing posts from 2016

Ruby Proc & Lamda - A close look

One of the core concepts about Ruby that a programmer should remember is that blocks are not objects. It is possible to convert them into objects by wrapping them inside the “Proc” class instance. The “Proc” and “Lambda” classes are probably the most awesome aspects of Ruby and need to be used well in order to get the desired results. Not much of knowledge is available on how to use Procs and Lambdas and what the differences between both are. I’d like to take a stab at how we can differentiate between Procs and Lambdas with a couple of thoughts below. 1. Proc doesn’t check the parameters passed, but Lambda does > proc1 = Proc.new { |a, b| a + 5 } > proc1.call(2)      # call with only one parameter => 7                    # no error, unless the block uses the 2nd parameter    > lambda1 = lambda { |a, b| a + 5 } > lambda1.call(2) ArgumentError: wrong number of arguments (1 for 2) Proc will throw error only if the block uses the second param. >

Rails 4, MySQL, and Emoji (Mysql2::Error: Incorrect string value: '\xF0\x9F\x8C\x9D')

Step 1   Change encoding from utf8 to utf8mb4 class ConvertTableToUtf8mb4 < ActiveRecord::Migration   def change     # For the table that will store unicode execute:     execute "ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin"     # For each column with unicode content execute:     execute "ALTER TABLE `table_name` CHANGE column_name VARCHAR(226) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin"   end end Step 2   Change database.yml according to the changes made. development:   adapter: mysql2   database: database_name   username: username   password: password   encoding: utf8mb4   collation: utf8mb4_unicode_ci

Elasticsearch error – failed to connect to master

Elastic Search Version : 1.4.4 Device : Mac OS When ever I start elastic search, sometimes I'll get an error like this failed to connect to master [[Sea Urchin][OCeACmvgQsqw-uRUq25UFA][Srinivasan.local][inet[/192.168.1.12:9300]]], retrying...  Eventually I found the root cause of this issue. As I’m running elasticsearch on a single server ( development environment ), I had to do only one thing Go to config/elasticsearch.yml and enable discovery.zen.ping.multicast.enabled: false