Skip to content

Instantly share code, notes, and snippets.

@jerefrer
jerefrer / randomize_timezone.rb
Created March 14, 2016 19:54
Rspec support helper to debug timezone issues
module TimeZoneHelpers
extend ActiveSupport::Concern
def self.randomize_timezone!
offsets = ActiveSupport::TimeZone.all.group_by(&:formatted_offset)
zones = offsets[offsets.keys.sample] # Random offset to better vary the time zone differences
Time.zone = zones.sample # Random zone from the offset (can be just 1st, but let's do random)
puts "Current rand time zone: #{Time.zone}. Repro: Time.zone = #{Time.zone.name.inspect}"
end
@jerefrer
jerefrer / AndroidManifest.xml
Last active October 14, 2015 14:58
Android WebView app with splash screen and Parse Push support
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp.myapp" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:protectionLevel="signature" android:name="com.parse.starter.permission.C2D_MESSAGE" />
$ > data = "45973294435a352c55d6cbf0"
=> "45973294435a352c55d6cbf0"
$ > bytes = data.scan(/../).map(&:hex)
=> [69, 151, 50, 148, 67, 90, 53, 44, 85, 214, 203, 240]
$ > bytes[8].to_f / 2 - 27
=> 15.5 # Température
$ > bytes[9].to_f / 50
=> 4.28 # Voltage batterie
# Jusqu'ici tout va bien
source 'https://rubygems.org'
gem 'rails', '4.2.4'
gem 'rails-i18n'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'slim-rails'
gem 'pg'
@jerefrer
jerefrer / convert_db_to_utf8.rb
Created June 22, 2015 09:20
Migration to convert the DB to UTF8
class ConvertDbToUtf8 < ActiveRecord::Migration
def self.up
if Rails.env.production?
db_config = ActiveRecord::Base.connection.instance_values["config"]
db_name = db_config[:database]
db_user = db_config[:username]
db_pass = db_config[:password] || ''
latin1_dump = 'latin1_dump.sql'
@jerefrer
jerefrer / google_analytics.coffee
Created April 3, 2015 10:28
Google Analytics loader so it works with Turbolinks
class @GoogleAnalytics
@load: ->
# Google Analytics depends on a global _gaq array. window is the global scope.
window._gaq = []
window._gaq.push ["_setAccount", GoogleAnalytics.analyticsId()]
# Create a script element and insert it in the DOM
ga = document.createElement("script")
ga.type = "text/javascript"
@jerefrer
jerefrer / index.html.haml
Created December 27, 2014 13:33
Gmaps4Rails - Client side rendering of infowindows
// app/views/users/index.html.haml
= javascript_include_tag '//maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry'
= javascript_include_tag '//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js'
#map{style: "height: 400px;"}
:javascript
window.load_google_map('map', #{@map_markers})

Deploy Rails app to digitalocean with nginx, unicorn, capistrano & postgres

Create droplet of your liking (ubuntu 12.10 x32)

ssh to root in terminal with your server ip

ssh root@123.123.123.123

Add ssh fingerprint and enter password provided in email

source 'http://rubygems.org'
gem 'rails', '3.2.12'
gem 'mysql2'
gem 'unicorn'
gem "therubyracer", ">= 0.8.2"
gem 'fastercsv' if RUBY_VERSION < "1.9"
@jerefrer
jerefrer / webrick_fix
Created October 18, 2013 10:13
Ruby script to fix webrick issues when running it inside a VM and trying to access it from outside.
#!/usr/bin/env ruby
require 'fileutils'
webricks = Dir.glob(File.join("/home/#{ENV['USER']}/.rvm/rubies/**/webrick/config.rb"))
webricks.each do |webrick|
FileUtils.cp webrick, "#{webrick}.bak"
output = File.read(webrick).gsub('DoNotReverseLookup => nil', 'DoNotReverseLookup => true')
File.open(webrick, "w") {|file| file.puts output}
end