Skip to content

Instantly share code, notes, and snippets.

View leopic's full-sized avatar

Leo Picado leopic

View GitHub Profile
@leopic
leopic / 7.sql
Created November 27, 2014 02:35
CREATE OR REPLACE PROCEDURE CRIPTA
(
piso IN NUMBER,
techo IN NUMBER
)
IS
conteo_de_a NUMBER := 0;
conteo_de_e NUMBER := 0;
conteo_de_i NUMBER := 0;
conteo_de_o NUMBER := 0;
CREATE OR REPLACE FUNCTION factorial(numero IN NUMBER)
RETURN NUMBER
IS resultado NUMBER := 1;
BEGIN
FOR num IN 1..numero LOOP
resultado := resultado * num;
END LOOP;
RETURN (resultado);
END;
/
@leopic
leopic / easyTrim.swift
Last active August 29, 2015 14:09
sorry trim, you are too long.
extension String {
var trim:String {
return self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
}
}
// use like so
var myString = " silly rabbit "
println(myString.trim) // prints "silly rabbit"
$('tr[id^="rptlist_"] td:last-child')
.css({ display: 'block', maxHeight: '30px', overflow: 'hidden' })
.hover(
function() { $(this).css('display', 'table-cell'); },
function() { $(this).css({ display: 'block' });
});
@leopic
leopic / 3.sql
Created October 19, 2014 01:32
-- Ejercicio 3
-- Leo Picado
SET SERVEROUTPUT ON;
SET VERIFY OFF;
-- Boostrapping
DROP TABLE EMPLEA_PRUEBA;
CREATE TABLE EMPLEA_PRUEBA AS (
SELECT num_emp, nombre||' '||apellido as nombre_apellido, salario, num_dept, cod_puesto, jefe
-- Ejercicio 3
-- Leo Picado
SET SERVEROUTPUT ON;
SET VERIFY OFF;
-- Boostrapping
DROP TABLE EMPLEA_PRUEBA;
CREATE TABLE EMPLEA_PRUEBA AS (
SELECT num_emp, nombre||' '||apellido as nombre_apellido, salario, num_dept, cod_puesto, jefe
@leopic
leopic / ihate.java
Created October 18, 2014 20:12
poor man's callback
// Abstrae el "patron" de un callback, quien quiera ser un callback lo implementa
interface Callback {
public void go();
}
// Implementacion concreta de un callback
class MyCallback implements Callback {
@Override
public void go() {
System.out.println("Listo!");
@leopic
leopic / simple.swift
Created October 14, 2014 16:16
jugando con swift
func megaBuscadorDeCodigosDeRespuesta(#codigoABuscar:Int) -> (encontrado: Bool, codigo: Int)? {
let codigosConocidos = [200, 301, 404, 500]
for codigo in codigosConocidos {
if codigo == codigoABuscar {
return (true, codigo)
}
}
return nil
var params = {};
_.each(_.inUrl(), function(param) {
var key = param.Key;
key.indexOf('utm_') === 0 && params[key] = param.Value;
}
);

Es facil cometer errores en la ingenieria de requerimientos, errores como definir requerimientos innecesarios o que no estan relacionados a metas de negocio o simplemente rendirse en un requerimiento por no estar correctamente definido.

La diferencia entre "levantado" de requerimientos y la "educcion" de requerimientos es que la primera asume que los requerimientos estan listos para ser desarrollados y tan solo ocupan de alguien que los agrupe, una nocion muy distanciada de la realidad, los requerimientos deben de ser investigados, desenterrados inclusive. Debido a esto es que ya no se habla de los profesionales