Skip to content

Instantly share code, notes, and snippets.

View zzarcon's full-sized avatar
🦍
Generating legacy code

Hector Zarco zzarcon

🦍
Generating legacy code
View GitHub Profile
@zzarcon
zzarcon / fibonacci_memoization.js
Created February 17, 2016 21:17
Javascript Fibonacci memoization
function fibonacci(num, memo) {
memo = memo || {};
if (memo[num]) return memo[num];
if (num <= 1) return 1;
return memo[num] = fibonacci(num - 1, memo) + fibonacci(num - 2, memo);
}
@zzarcon
zzarcon / fibo_loop.js
Created February 26, 2016 18:22
Fibonacci loop
function fibonacci(num){
var a = 1, b = 0, temp;
while (num >= 0){
temp = a;
a = a + b;
b = temp;
num--;
}
@zzarcon
zzarcon / palindrome.js
Created March 13, 2016 01:38
Palindrome one liner
function isPalindrome(str) {
return str === str.split('').reverse().join('');
}
@zzarcon
zzarcon / palindrome.cc
Created March 13, 2016 11:54
Palindrome C++
#include <nan.h>
using namespace v8;
void IsPalindrome(const FunctionCallbackInfo<Value>& info) {
String::Utf8Value sentence(info[0]->ToString());
std::string str = std::string(*sentence);
int len = str.length();
int half = len / 2;
int start = 0;
@zzarcon
zzarcon / benchmark.js
Created March 13, 2016 15:10
Palindrome benchmark
var Benchmark = require('benchmark');
var palindromeC = require('bindings')('palindrome.node');
var palindromeJs = require('./palindrome.js');
var suite = new Benchmark.Suite;
var str = 'a man a plan a cat a ham a yak a yam a hat a canal panama';
suite
.add('Javascript palindrome', function() {
palindromeJs(str);
})
@zzarcon
zzarcon / palindrome.js
Created March 13, 2016 15:28
Palindrome Javascript 2
function isPalindrome(str) {
var half = Math.round(str.length / 2);
var start = 0;
var end = str.length - 1;
var palindrome = true;
var SPACE = 32;
var COMMA = 44;
var startSpace, endSpace;
while (half && palindrome) {
@zzarcon
zzarcon / palindrome.cc
Created March 13, 2016 15:47
Palindrome C++ 2
#include <nan.h>
using namespace v8;
void IsPalindrome(const FunctionCallbackInfo<Value>& info) {
Nan::Utf8String arg0(info[0]);
char *str = *arg0;
size_t len = arg0.length();
int half = len / 2;
int start = 0;
@zzarcon
zzarcon / request.js
Created March 20, 2016 20:01
XMLHttpRequest
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = callback;
xhr.open("GET", "https://api.github.com/users/zzarcon");
xhr.send();
function callback() {
if (xhr.readyState == 4 && xhr.status == 200) {
var json = JSON.parse(xhr.responseText);
@zzarcon
zzarcon / request.js
Created March 20, 2016 20:16
jquery ajax
$.get('https://api.github.com/users/zzarcon', callback);
function callback(user) {
console.log(user.name)
}
@zzarcon
zzarcon / request.js
Created March 20, 2016 20:28
xhr promises
function xhrPromise() {
return new Promise(function(resolve, eject) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = onready;
xhr.open("GET", "https://api.github.com/users/zzarcon");
xhr.send();
function onready() {
if (xhr.readyState == 4 && xhr.status == 200) {