Skip to content

Instantly share code, notes, and snippets.

View eamodeorubio's full-sized avatar

Enrique Amodeo eamodeorubio

View GitHub Profile
@eamodeorubio
eamodeorubio / canvasToFile.js
Created September 8, 2012 17:40
Quick hack to save the contents of a canvas to a file in Windows 8 with JS
function saveToFile() {
var canvasData = document.getElementById('sampleCanvas').msToBlob();
var windowsStorage = Windows.Storage;
var inputStream, outputStream;
windowsStorage.KnownFolders.picturesLibrary.createFileAsync('sample.png', windowsStorage.CreationCollisionOption.replaceExisting)
.then(function (file) {
return file.openAsync(windowsStorage.FileAccessMode.readWrite);
}).then(function (out) {
inputStream = canvasData.msDetachStream();
canvasData.msClose();
@eamodeorubio
eamodeorubio / weird_counter2.js
Created August 31, 2011 15:14
Autoejecutable cuenta 0 a 100 sin usar bucles, condicionales o expresiones booleanas (Versión "framework")
Function.prototype.then = function(callback) {
var branches = { false:function() {}, true:callback };
var that = this;
return function() {
var r = that.apply(that, arguments);
branches[r].apply(that, arguments);
return r;
}
}
@eamodeorubio
eamodeorubio / weird_counter.js
Created August 31, 2011 10:05
Autoejecutable cuenta 0 a 100 sin usar bucles, condicionales o expresiones booleanas
(function(max) {
var counter = 0
, theEnd = function() {
console.log(max);
}
, count = function() {
console.log(counter);
counter++;
countOperations[counter] = count;
countOperations[counter % max]();
@eamodeorubio
eamodeorubio / concatenator2.js
Created August 17, 2011 17:28
Advanced Concatenator (GEJS)
// This fails with ["a,,", "b"] Do you know how to fix it? We'll see how to in class
var concatenator = function(arr, optSeparator) {
if(!arr || typeof(arr.join) != 'function')
return;
var separator = typeof(optSeparator) == 'string' ? optSeparator : ',';
var r = arr.join();
if(separator != ',')
r = r.replace(/,/g, separator);
return r;
}
@eamodeorubio
eamodeorubio / concatenator1.js
Created August 17, 2011 17:15
Simple concatenator (GEJS)
var concatenator = function(arr) {
if(!arr || typeof(arr.join) != 'function')
return;
return arr.join();
}
@eamodeorubio
eamodeorubio / AuditorTransferenciasMonetarias.java
Created March 6, 2011 19:17
Esta clase viola el SRP y algunas cosas más (very bad things)
public class AuditorTransferenciasMonetarias {
/* Ahora la clase implementa lógica de negocio "pura"
* y es independiente de la plataforma (a.k.a. framework)
*/
private DirectorioEmpleados directorioEmpleados;
private SistemaMensajeriaCorporativa mensajero;
private PlantillasCorporativas almacenDePlantillas;
/* No se muestra todo el código */
public void transferenciaRealizada(Transferencia transferencia) {
module FizzBuzzGame
class Number
def initialize(number)
@value= number
end
def answer_for
return FIZZBUZZ if divisible_by?(3) and divisible_by?(5)
return FIZZ if divisible_by?(3)
return BUZZ if divisible_by?(5)
@eamodeorubio
eamodeorubio / string_calculator_spec.rb
Created January 6, 2011 18:51
The string calculator kata step by step
# StringCalculator in Ruby 1.8.x
class StringCalculator
DEFAULT_DELIMITER_DETECTOR = /\,|\n/
CUSTOM_DELIMITER_PARSERS = [/^\/\/(.)\n/, /^\/\/((?:\[[^\]]+\])+)\n/]
def initialize(numbers)
@numbers=numbers
@result=nil
@errors=''