Saturday, March 15, 2014

Laravel: Recargar assets automáticamente en el navegador si tienen cambios

Con esta simple modificación los archivos css y js se cargarán nuevamente en el navegador cada vez que tengan cambios.

Pueden obtener el archivo modificado acá:

https://github.com/porquero/framework/commit/e4589e1c63933ac47c0706013cc29aa4148654d8

Thursday, February 13, 2014

¿Cuán Kanban eres?

Encuentro que la metodología Kanban es una de las más potentes y versátiles que he conocido. Pero siempre tenía una inquietud con respecto a hacer visible los avances y las mejoras adquiridas al utilizar esta metodología. Sobre todo para áreas diferentes a TI y que demandan tareas -que sólo les interesa el fin y no el medio-.
Siempre que hablaba de Kanban (sobre todo con las vacas sagradas) por alguna razón lo entendían como un "juego" y preguntaban dónde están las métricas, KPI y varios conceptos del método predictivo.

Con ese feedback es difícil "medir" el impacto del uso de Kanban. Por que una cosa es promover las ventajas que se prometen al utilizar esta metodología pero no cuán Kanban es tu implementación.

Hasta que me encuentro con el concepto "Depth of Kanban" y, ¡aleluya! ¡Encontré la respuesta a mi inquietud!. Con esta herramienta puedo saber cómo va la implementación de la metodología y en qué se debe trabajar, ya que Kanban y Kaizen deben ir en paralelo -según mi opinión-.

Les dejo esta herramienta (por si no la conocían) que reúne las métricas para medir "cuán Kanban" es tu equipo.



http://leanagileprojects.blogspot.se/2013/03/depth-of-kanban-good-coaching-tool.html


Friday, November 08, 2013

Evitar ir atrás en la navegación cuando se usa [backspace] en un input tipo number

Parche para evitar que vuelva atrás el navegador cuando se edita en el campo input tipo número.
Además se completa la operación, eliminando el último número tipeado.


$('input[type=number]').on('keydown', function(e) {
    var key = e.which || e.keyCode || e.charCode;
    if (key === 8) {
        var s = $(this).val();
        s = s.substring(0, s.length - 1);
        $(this).val(s);
        return false;
    }
});

Saturday, February 16, 2013

Esquema para crear objetos instanciable para javascript con jQuery

Con este esquema puedes crear objetos instanciables en Javascript usando jQuery.
Su uso es muy simple, sólo debes copiar el siguiente código y cambiar las variables que están en mayúsculas.

El esquema

// Helper. Sólo usarlo una vez. Esto resuelve varios problemas con objetos en js.
if ( typeof Object.create !== 'function' ) {
    Object.create = function( obj ) {
        function F() {};
        F.prototype = obj;
        return new F();
    };
}

// Esquema para objetos javascript.
(function(){
    var OBJ_NAME = {
        props: {},
        init: function(props){
            this.props = $.extend({}, this.props, props);
            return this;
        }
    };

    // Para instanciar y ejecutar constructor.
    new_OBJ_NAME = function(props){
        var REL_OBJ_NAME = Object.create(OBJ_NAME);
        return REL_OBJ_NAME.init(props);
    };
})();

// Uso.
props = {/* Las propiedades*/};
obj = new_OBJ_NAME(props);

Ejemplo

(function(){
    var mi_objeto = {
        props: {prop1 : 1, prop2 : 2},

        init: function(props){
            this.props = $.extend({}, this.props, props);
            return this;
        },

        sumar: function(){
            return this.props.prop1 + this.props.prop2;
        }
    };
    new_mi_objeto = function(props){
        var mi_objeto_instanciado = Object.create(mi_objeto);
        return mi_objeto_instanciado.init(props);
    };
})();

// Uso.
// Usamos propiedades por defecto.
obj1 = new_mi_objeto();
console.log(obj1.sumar());

// Usamos propiedades personalizadas.
props = {prop1 : 1234, prop2 : 8876};
obj2 = new_mi_objeto(props);
console.log(obj2.sumar());

Créditos

Tuesday, August 28, 2012

Xubuntu: Monitor dual con VGA primario

Gracias a este post pude dar con la solución al problema que tenía casi desde que utilizo Ubunutu:

Usar dos monitores y elegir cuál es el primario

Pero el post no me daba con la solución. Seguí indagando en la configuración y realicé algunos cambios y al fin pude dejar Mi monitor VGA como primario y el de mi Notebook como secundario:
  1. Ir a Configuración > Editor de configuración
  2. Fijarse que se esté en el canal 'Displays'
  3. Desplegar propiedad 'Default
    1. Debiesen aparecer 2 sub-propiedades. Mi caso: LVDS1 (Notebook) y VGA1 (Monitor externo)
  4. Tomar el valor de X del monitor que dejarás como principal (VGA1)
    1. VGA1 > Resolution. Mi caso: 1920x1080
  5. Cambiar las propiedades en en monitor secundario (LVDS1)
    1. LVDS1 > Position > X: 1920 (Tomamos el valor X del punto 4.1)
  6. Cerra sesión y entrar nuevamente
Así tendrás tu monitor VGA como primario y el de tu Notebook como secundario. Esto también sirve para PC's con 2 monitores.

Acá un screenshot:




Tuesday, May 22, 2012

Get new and modified files from n days ago

This is another way to get new and modified files from your project.

If you use cvs system, you need to export files first

(using svn)*
svn export files/path export/path

* Maybe you need to use before
svn add * --force

Go to export/path and get the last new/modified files you want
cd export/path
find . -mtime -N -ctime -N | cpio -vdump ../final_files


N are the days that you want to get, so if you need to get files from 7 days ago then you write:
find . -mtime -7 -ctime -7 | cpio -vdump ../final_files