Skip to content

Instantly share code, notes, and snippets.

View vstarck's full-sized avatar

Valentin Starck vstarck

  • Argentina
View GitHub Profile
@vstarck
vstarck / fizzbuzz.js
Last active December 11, 2015 14:18
FizzBuzz without conditional / boolean operators / trycatch / etc
function fizzBuzz(from, to) {
function print() {
var text =
'Fizz,,'.split(',')[from%3] +
'Buzz,,,,'.split(',')[from%5]
var _ = {}
_[text] = ''
_[''] = from
@vstarck
vstarck / stack.php
Last active December 11, 2015 00:49
stack.php
<?php
class Stack {
private $mins = array();
private $arr = array();
private $currentMin = null;
private $size = 0;
public function add($n) {
$this->size++;
var person = (function() {
var name, lastname;
function get(key) {
switch(key) {
case 'name': return name; break;
case 'lastname': return lastname; break;
default: return null
}
}

Sea:

var a = [];

Dice la especificación de Javascript que los Arrays son simplemente unos objetos un poco curiosos y más o menos simpáticos. Tienen una propiedad especial llamada length y si le intentamos añadir una propiedad con un nombre que sea un número válido (uint32) entonces lo consideran un "índice" y tratan ese valor como un elemento de un array/vector/llámaloX que mantiene internamente.

La propiedad length es especial porque se actualiza más allá de nuestro control cuando ocurren algunas cosas. En concreto lo que dice la especificación es son las siguientes 2 cosas: Cada vez que se añada al array un elemento, es decir, cito (énfasis mío): "una propiedad cuyo nombre es un índice válido de array, si es necesario, length se actualizará a ser 1 más que ese índice". Además, cuando se modifique length, para mantener la restricción, "cualquier propiedad cuyo nombre es un índice válido que no es menor que el nuevo length, se borra automáticamente".

@vstarck
vstarck / mage_complexity2.php
Created December 3, 2012 15:53
mage_complexity2.php
foreach (/* ... */) {
if (/* ... */) {
if (/* ... */) {
if (/* ... */) {
// ...
} else {
if (/* ... */) {
// ...
} else {
// ...
@vstarck
vstarck / nodecache.js
Created November 25, 2012 03:22
nodecache.js
var net = require('net');
var OPTS = {
port: 5544
};
process.argv.forEach(function (val, index, array) {
var key, value;
key = val.split('=')[0];
@vstarck
vstarck / solrmarket.php
Created November 22, 2012 18:26
solrmarket.php
<?php
// Autoloader
require('../library/Solarium/Autoloader.php');
Solarium_Autoloader::register();
// Create a client instance
$client = new Solarium_Client(array(
'adapteroptions' => array(
'host' => '192.168.0.111',
@vstarck
vstarck / mage_complexity.php
Created November 16, 2012 13:59
mage_complexity.php
/**
* Prepare facet fields conditions
*
* @param array $facetFields
* @return array
*/
protected function _prepareFacetConditions($facetFields)
{
$result = array();
@vstarck
vstarck / 3dg.css
Last active October 11, 2015 19:58
3dg.css
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("foros.3dgames.com.ar") {
body {
background-image: none !important;
background-color: #555 !important;
}
html body * {
font-family: sans-serif !important;
@vstarck
vstarck / fizzbuzz3.js
Created October 4, 2012 20:02
FizzBuzz
(function r(i, to) {
console.log(
(['Fizz'][i%5] || '') +
(['Buzz'][i%3] || '') ||
i
);
if (i < to) r(i + 1, to);
})(1, 100)