Skip to content

Instantly share code, notes, and snippets.

View rtacconi's full-sized avatar

Riccardo Tacconi rtacconi

View GitHub Profile
@rtacconi
rtacconi / gist:690b60dd36a37d28a945
Created June 15, 2015 09:48
Ruby fibonacci using recursion
def fibonacci(n)
n <= 1 ? 1 : fibonacci(n - 1) + fibonacci(n - 2)
end
@rtacconi
rtacconi / gist:c1064f72e80cf84c3415
Last active August 31, 2015 14:49
Fizz buzz in Ruby one liner
(1..100).each {|i| print i; print ' fizz' if i%3 == 0; print ' buzz' if i%5 ==0; puts}
# recursive
def fizzbuzz(n = 1)
if n < 101
print "#{i}: "
print "Fizz" if 0 == i % 3
print "Buzz" if 0 == i % 5
print "\n"
fizzbuzz(n + 1)
@rtacconi
rtacconi / FrogJmp
Last active August 29, 2015 14:17
Codility coding challenge
# https://codility.com/demo/results/demoKSSE8R-5B3/
# A small frog wants to get to the other side of the road
# two solutions, this one gets 33% of scores:
def solution(x, y, d)
y % d > 0 ? ((y - x) / d) + 1 : (y - x) / d
end
# this gets 100% scores:
def solution(x, y, d)
@rtacconi
rtacconi / gist:88f711f8120aa7ba33e7
Created February 6, 2015 11:58
Euler's predicate
a = 95800
b = 217519
c = 414560
d = 422481
a**4 + b**4 + c**4 == d**4 # => true
@rtacconi
rtacconi / gist:b8cae8ddb23380b234c1
Last active August 29, 2015 14:09
return the number of combinations, of any length, that add up to that target_sum
def combinations(array)
m = array.length
(1...2**m).map do | n |
(0...m).select { | i | n[i] == 1 }.map { | i | array[i] }
end
end
def calculate_combinations(comb_array, target_sum=15)
combinations(comb_array).map {|a| [a, a.inject(:+)]}.select {|v| v if v.last == target_sum}
end
@rtacconi
rtacconi / gist:d007a23c453ad34ad70c
Created September 3, 2014 16:33
Install Development Tools
# just in case you work in a server were you do not have package groups defined. RHEL / CentOS
# yum groupinstall 'Development Tools'
yum -y install autoconf automake binutils bison flex gcc gcc-c++ gettext libtool make patch pkgconfig redhat-rpm-config rpm-build rpm-sign
punctuation = %w{; = - _ . , ? ! $}
letters = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
"#{punctuation.sample}#{(0...10).map { letters[rand(letters.length)] }.join}#{rand(1000)}"
@rtacconi
rtacconi / wsrep_cluster_size.rb
Created January 19, 2013 17:41
Nagios plugin to be executed with NPRE to check the number of clusters online, the number should be equal to the number of nodes you have. this script has the number of nodes hardcoded to 3. The script needs the Myql2 gem: gem install mysql2
#!/usr/bin/env ruby
#
# WSREP_CLUSTER_SIZE Plugin
#
# $ ./wsrep_cluster_size.rb -w 50 -c 75
#
require 'rubygems'
require 'mysql2'
@rtacconi
rtacconi / meteor_update_dollar_error
Created December 9, 2012 08:38
meteor update error
Exception while simulating the effect of invoking '/documents/update'
Error
Error: can't append to array using string field name [$]
at Error (<anonymous>)
at Function.LocalCollection._findModTarget (http://localhost:3000/packages/minimongo/modify.js?e7f02f0df0bff9f0b97236f9548637b7ede1ac74:90:15)
at Function.LocalCollection._modify (http://localhost:3000/packages/minimongo/modify.js?e7f02f0df0bff9f0b97236f9548637b7ede1ac74:50:38)
at LocalCollection._modifyAndNotify (http://localhost:3000/packages/minimongo/minimongo.js?d21efb753206850b6ada27b1fc327307eb2f2b9c:428:19)
at LocalCollection.update (http://localhost:3000/packages/minimongo/minimongo.js?d21efb753206850b6ada27b1fc327307eb2f2b9c:394:12)
at m.(anonymous function) (http://localhost:3000/packages/mongo-livedata/collection.js?2240f86c7b1195971d25f481e4a6c31da43bc0c1:378:36)
at http://localhost:3000/packages/livedata/livedata_connection.js?ff27a501d94ef196d150a04e346edbcbdcccdb1a:537:25
@rtacconi
rtacconi / php.rb
Created September 9, 2012 16:44
PHP 5.2 Formula for Homebrew
require 'formula'
def mysql_installed?
`which mysql_config`.length > 0
end
class Php5.2.17 < Formula
url 'http://ca2.php.net/distributions/php-5.2.17.tar.gz'
homepage ''
md5 '04d321d5aeb9d3a051233dbd24220ef1'