Skip to content

Instantly share code, notes, and snippets.

View cocodrino's full-sized avatar
🏠
Working from home

carlos L cocodrino

🏠
Working from home
  • Venezuela
View GitHub Profile
@cocodrino
cocodrino / gulpfile
Last active August 29, 2015 13:59
node-webkit gulp generator
var gulp = require('gulp');
var zip = require('gulp-zip');
var rename = require("gulp-rename");
var shell = require('gulp-shell')
gulp.task('nodewk', function() {
gulp.src('app/**')
.pipe(zip('app.zip'))
.pipe(rename("app.wk"))
/*
Script: Signal.js
Makes chaining functions easy!
License & Copyright:
Copyright 2009, Mark Obcena <keetology.com>
MIT-Style License
*/
(function(global){
@cocodrino
cocodrino / futureOption.scala
Last active August 29, 2015 14:06
Future[Option[_] or Future[Option[_]]
import scala.reflect.runtime.universe._
//in A perfect world : without type erasure
implicit class SuperFuture (a : Future[Option[_]]){
def or (b : Future[Option[_]]) ={
a match {
case a1 : Future[Some[_]] => a1
case _ => b
}
}
@cocodrino
cocodrino / scalaYQL.scala
Last active August 29, 2015 14:06
YQL from scala
import scalaj.http.{HttpOptions, Http}
def YQL3(query: String) = {
val url = "http://query.yahooapis.com/v1/public/yql"
Future {
blocking {
Http(url).params("format" -> "xml", "q" -> query)
.option(HttpOptions.connTimeout(5000)) //Optional: yql can take a long time for response
.option(HttpOptions.readTimeout(10000)).asString
@cocodrino
cocodrino / shit2
Created January 14, 2015 18:57
remove trailing whitespaces from object in javascript (works recursively)
var fixKeys = function(obj) {
return Object.keys(obj).reduce(function(mem,key) {
if(Array.isArray(obj[key])){
mem[key.trim()] = obj[key].map(function(v){return v.trim()})
}else{
if(typeof obj[key] === 'object'){
mem[key.trim()] = fixKeys(obj[key])
}else{
mem[key.trim()] = (obj[key]).trim()
}
let rec factorial(n : int) (mem : bigint) =
match n with
| 0 | 1 -> mem
| _ -> factorial (n - 1) (mem * bigint(n))
let BigFactorial(numero,mesaje)=
Async.FromContinuations(fun (cont,error,cancelation) ->
printfn "ha comenzado el proceso: %s" mesaje
factorial numero 1I |>ignore
let rec factorial(n : int) (mem : bigint) =
match n with
| 0 | 1 -> printfn "%A" mem
| _ -> factorial (n - 1) (mem * bigint(n))
let BigFactorial(numero,mesaje)=
Async.FromContinuations(fun (cont,error,cancelation) ->
printfn "begin number: %s" mesaje
factorial numero 1I |>ignore
@cocodrino
cocodrino / gist:2942007
Created June 16, 2012 17:21
code blog - clausuras 3...
var aumentar_valor2 = (function(x){
var numero = x;
return function(){
return numero+=1;
};
})(0);
console.log(aumentar_valor2()) //1
@cocodrino
cocodrino / gist:2941999
Created June 16, 2012 17:19
code blog - clausuras 2
//al llamar
var add_user = aumentar_valor(0);
//tenemos
var add_user = function(0){ //sustituyendo x por 0
var numero = x;
return function(){
return numero+=1;
};
@cocodrino
cocodrino / gist:2941992
Created June 16, 2012 17:17
code blog --clausuras part1
var aumentar_valor = function(x){
var numero = x;
return function(){
return numero+=1;
};
};
var add_user = aumentar_valor(0);
console.log(add_user());
console.log(add_user());