Skip to content

Instantly share code, notes, and snippets.

View Tronix117's full-sized avatar

Jeremy TRUFIER Tronix117

View GitHub Profile
@Tronix117
Tronix117 / float.rb
Created June 7, 2012 16:27
MonkeyPatch roundHalfToEven (Banker round)
##
# MonkeyPatch roundHalfToEven (Banker round)
#
# Solve most of floating binary point problems, and round
# to the specified decimal using banker round for financial
# calculations. Half fraction between number are rounded to
# the nearest even number.
#
# @author Jeremy Trufier <[email protected]>
# @copyright Storific 2012
@Tronix117
Tronix117 / rails_dev_env_osx-10.7.sh
Created July 17, 2012 05:42
Rails 3 and Ruby 1.9.2, Installation development environment on Mac OSX Lion. Require: https://github.com/kennethreitz/osx-gcc-installer/downloads
#!/bin/bash
# Configuration (to edit)
RCPATH=~/.bashrc
PROJECT_DIRECTORY=~/Sites/myproject # project directoy (if it doesn't exist, the project will be installed here)
PROJECT_GIT_REPOSITORY='[email protected]:myname/myproject.git' # git repository of the project
DBPASS='123456' # root pass
# Your current Rails configuration (fill it with config/database.yml)
RAILS_BASE='myproject_dev'
@Tronix117
Tronix117 / change_charset.rb
Created July 25, 2012 10:04
changing character base, need adding some xoring somewhere
# Optimised if the BASE array has the same size as a power of 2, otherwise disable symetrie
# Optimised if 0 is the first in the BASE array
BASE_2 = ['0','1']
BASE_4 = ('0'..'3').to_a
BASE_8 = ('0'..'7').to_a
BASE_16 = ('0'..'9').to_a + ('a'..'f').to_a
BASE_32 = ('0'..'9').to_a + ('a'..'v').to_a
BASE_64 = ('0'..'9').to_a + ('a'..'z').to_a + ('A'..'Z').to_a + ['$','_']
SHUFFLE_BASE_16 = ['0','4','2','1','8','6','7','5','9','3','c','b','a','f','d','e']
SHUFFLE_BASE_64 = ['0','7','S','q','j','6','N','C','u','8','W','k','4','J','K','5','m','1','F','f','D','X','g','V','n','z','B','i','L','P','l','a','G','s','Q','2','Z','d','v','o','I','x','_','M','Y','c','9','h','$','R','b','U','y','O','A','w','e','p','3','T','E','H','t','r']
@Tronix117
Tronix117 / crypt_id.rb
Created August 12, 2012 19:22
Algorithm: Rails crypt integer to random short string, can be used as link shortener (by directly crypting databse ids). 1296 possibility for each Int (for each crypting key). String generated are not linear and also include a validity check (hashsum), an
##
# MonkeyPatch crypt_id
#
# Provide an efficient way to crypt an id, with
# different possibility for each id.
#
# Three provided methods are:
# Int.crypt_id(key='')
# String.decrypt_id(key='')
# String.change_charset(charset_from, charset_to)
@Tronix117
Tronix117 / I18n.coffee
Created November 19, 2012 02:11
I18n - JavaScript and CoffeeScript
###
# I18n class
# Allow you to add Internationalization to your CoffeeScript application
#
# Just call it with a `require 'util/I18n'` or `new I18n` if you don't have a `require` system
# More informations here: https://github.com/Tronix117/tradify
# Translation files should be saved in `locales/{langage code}.coffee`
#
# Then you can translate everything with `tr('{0} day', numberOfDay)`
#
@Tronix117
Tronix117 / Cakefile
Last active December 16, 2015 13:38
Cakefile script to easily build Jade, Stylus and CoffeeScript source files for little projects or static website. Also provide consistent website structure. Also watch Jade and Stylus dependencies (if you modify an import or an extends, every file which use it will be rebuilt). Include a basic support of I18n - Internationalization with support …
###
# Cakefile
#
# Build easily Stylus, CoffeeScript and Jade source files
# for little projects.
#
# First install requirements using `npm install`
#
# Then, modify the config in the `config.coffee` file
#
@Tronix117
Tronix117 / gist:5553599
Created May 10, 2013 10:20
Relational layer over modal for Backbone. Can manage single id or multiple id relations between models. one-to-one, one-to-many, many-to-many, smart selection of id key, or possible to specify it ('through' keyword). Autofetch can also fetch missing related collection models.
###
# Adding relation support to models
Note: Given collections were here Singletons in this project, you can also use instances of collections instead.
relations:
friends: require 'collections/Users' # @get('friends') will return an array of friend if friends_ids or friends_id is an array
store: require 'collections/Store' # @get('store') will return the store object if there is a store_id
subcategories:
through: 'category_ids'
@Tronix117
Tronix117 / bouyguemms
Created July 9, 2013 17:04
Download MMS from Bouygues Telecom (useful for Numericable iPhone owner's). Usage: bouyguemms code [yourPhoneNumber [whereToDownload]]. Ex: bouyguemms i9u7sw
#!/bin/sh
PHONE=${2-yourdefaultphonenumber}
CODE=$1
OUTPUT=${3-.}
BASEURL=http://www.lire-mms.bouyguestelecom.fr/mmbox
SESSIONID=`curl -s -X POST -d "msisdn=$PHONE&msgid=$CODE" -D- "$BASEURL/otp.html" -o /dev/null | grep JSESSIONID | cut -d'=' -f2 | cut -f1 -d' ' | tr "\!" "\\\!"`
@Tronix117
Tronix117 / smart-navigate.coffee
Last active December 31, 2015 01:59
Chaplin Smart Navigation. smartNavigate will automatically select and trigger the best route using only given route parameters
# Chaplin Smart Navigation
#
# Chaplin.mediator.smartNavigate params, options
#
# Add a smartNavigate method to Chaplin.mediator, it will automaticaly select
# the best route using only route params in first argument.
#
# Keep automaticaly current route params, except if they are explicitely set to
# null or if `reset: true` is passed as second argument.
#
@Tronix117
Tronix117 / saferize-click.coffee
Last active August 29, 2015 13:56
Prevent 'click' callback to be called when 'dblClick' callback should be called
# Saferize Click
#
# saferClick = saferizeClick singleClickCallback, doubleClickCallback
#
# Prevent 'click' callback to be called when 'dblClick' callback should be called
#
# Exemple:
#
# Better to add it to underscore with following:
#