Como crear hashtables con javascript

A veces en javascript se extrañan los contenedores tipo hashtables :) esto puede emularlos 😀

function hashtable(id,val){
this.id = id;
this.val = val;
}

Esto nos permite crear objetos contenedores de info

var foo = new hashtable(1,'datos');

Cute no?

Crear una Clase Conexión para conectarse a “Cualquier Base de datos” usando OOP

Veo que muchos aquí tratan de empezar a hacer sus “Clases de conexión” no obstante que les parece si hacemos un ejemplo un poco más OOP y mas robusto.

Misión: Crear una conexión con “cualquier base de datos” solo creando los adaptadores necesarios haciendo uso de interfaces.

DbInterface.php


Db.php

db = $db;
    }
    public function conectar()
    {
        $this->db->conectar();
    }
    public function desconectar()
    {
        $this->db->desconectar();
    }
    public function ejecutar(SQL $sql)
    {
        return $this->db->ejecutar($sql);
    }
}

SQL.php


campos[] = $campo;
    }
    public function addTabla($tabla)
    {
        $this->tablas[] = $tabla;
    }
    public function addWhere($where)
    {
        $this->wheres[] = $where;
    }
    public function addOrder($or)
    {
        $this->orders[] = $or;
    }
    private function make()
    {
        $this->consulta = 'SELECT ';
        foreach($this->campos as $campo){
            $cadenaCampos.= ' '.$campo.', ';
        }
        $this->consulta.= substr($cadenaCampos,0,strlen($cadenaCampos)-2);
        $this->consulta.= ' FROM ';
        foreach($this->tablas as $tabla){
            $cadenaTablas.= ' '.$tabla.', ';
        }
        $this->consulta.= substr($cadenaTablas,0,strlen($cadenaTablas)-2);
        if(count($this->wheres)!=0){
            $this->consulta.= ' WHERE ';
            foreach($this->wheres as $where){
                $cadenaWheres.= ''.$where.' AND ';
            }
            $this->consulta.= substr($cadenaWheres,0,strlen($cadenaWheres)-4);
        }
        if(count($this->orders)!=0){
            $this->consulta.= ' ORDER BY ';
            foreach($this->orders as $order){
                $cadenaOrders.= ''.$order.', ';
            }
            $this->consulta.= substr($cadenaOrders,0,strlen($cadenaOrders)-2);
        }
        return $this->consulta;
    }
    public function get()
    {
        return $this->make();
    }
    public function toString()
    {
        return $this->make();
    }
}

Ahora es necesario crear un "Adaptador" para la base de datos que necesitemos, en este caso hare un adaptador para MYSQL que use la interfaz DbInterface, en el caso de querer trabajar por ejemplo con Oracle o Postgress o SQLLite, SQL server etc etc, necesitaremos crear un adaptador para cada caso en particular.

Mysql.php


host = $args[0];
        $this->user = $args[1];
        $this->pass = $args[2];
        $this->db = $args[3];
    }
    public function conectar()
    {
        mysql_connect($this->host,$this->user,$this->pass);
        mysql_select_db($this->db);
    }
    public function desconectar()
    {
        mysql_close();
    }
    public function ejecutar(SQL $sql)
    {
        $consulta = mysql_query($sql->get());
        while($row = mysql_fetch_assoc($consulta)){
            $datos[] = $row;
        }
        return $datos;
    }
}

y Ahora como usamos esto?

index.php


conectar();
        $consulta = new SQL();
        $consulta->addTabla('clientes');
            $consulta->addCampo('razon');
            $consulta->addCampo('nombre');
            $consulta->addCampo('apellidos');
        //$consulta->addWhere("nombre = 'Pepito'");
        $consulta->addOrder("razon DESC");
        $datos = $db->ejecutar($consulta);
        foreach($datos as $val){
            echo $val['nombre']." ".$val['apellidos']."
";
        }
?>

Si observamos la siguiente linea

 $db = new Db(new MySql('localhost','root','','password'));

Nosotros podríamos pasarle cualquier otro adaptador por ejemplo..

 
$db = new Db(new Oracle('localhost','root','','password'));
$db = new Db(new SQLServer('localhost','root','','password'));

Y no seria necesario tocar ninguna otra parte del código :)

Re-escribir nuestro pensamiento

¿Cuantas veces hemos dicho “este lunes empiezo a comer mejor, este lunes comienzo a comportarme diferente, este lunes cambiare mis hábitos?, el problema principal con estos decretos es que hemos olvidado el ingrediente principal para que los nuevos hábitos funcionen y nuestra vida pueda cambiar en positivo, ¿cuantas veces te has negado a cambiar un solo pensamiento?, ¿cuantas veces te has aferrado al enojo?, ¿cuantas veces decidiste hacer caso omiso del corazón a perdonar aquello que ves reflejado en los demás sobre ti mismo?, ¿cuantas veces decidiste pedir perdón en lugar de evitar hacer daño?, lo que importa en este momento es el preciso instante en que decides cambiar algo en tu vida, cuando esto sucede se genera una energía positiva en tu interior que rapidamente es consumida por la serie constante de pensamientos negativos a los cuales estamos acostumbrados, es como ver nacer un pequeño “tallo” en un piso estéril y el cual pisoteamos por que NO es el árbol que queremos, cabe recalcar la cita de “schopenhauer”- Aunque siempre somos la misma persona NO siempre nos comprendemos a nosotros mismos en todo momento, se necesita una reprogramación interna más profunda que llegue hasta donde aprendimos a desesperarnos ante el necesario proceso de las cosas, si llevamos años pensando de una manera fatalista, no esperemos ver crecer un árbol en nuestro piso estéril, prepara el terreno fertilizalo y “espera” sabiendo que todo sucede en el perfecto orden correcto ya que la vida no te juzga por tus decisiones al contrario acepta lo que tu decides hoy, nunca estamos atorados en realidad somos nosotros mismos los que vivimos con un miedo paralizador refugiandonos en el pasado que al menos es un enemigo que ya conocemos y podemos “controlar”, hay que sacudirse el miedo a ser feliz.

Cambia tus pensamientos, cambia tus acciones.

No importa qué es lo que te abruma, son tus pensamientos los que te abruman. Quizás no puedas cambiar el mundo entero en este momento. Quizás no puedas cambiar tu vida en este momento, aunque puedes hacer algo. Puedes lavar un plato. Puedes lavarte la cara con agua fría. Puedes salir a tomar aire fresco. Puedes plantar una flor, puedes quitar una mala hierba. Puedes hacer una caminata. Puedes volver a tu casa, si no lo haces como una persona diferente, al menos en un estado diferente.

Via “Sendero espiritual”

http://www.senderoespiritual.com/cambia-tus-pensamientos-y-cambia-tu-vida-2

Nueva vida, nuevos retos una mejor percepción

Hoy termina un año más y seguramente unos nos hicimos más viejos con menos cabello más panza, pudiera ser que todo lo contrario, tal vez más ganas o más depresión, todo depende en que hayas utilizado tu energía por que al fin de todo nuestras vivencias es un ciclo interminable de energía llamada pensamientos. Estos últimos días me puse analizar cuantos de “los propósitos”  que me hice en años anteriores he cumplido, seguramente no cumpli lo que pensé, pero logre otras cosas con más sentido y con un orden de importancia mayor en mi vida, empece a conocerme, a entenderme y saber como funcionan mis sentimientos solo que lo malo de este nuevo encuentro es que trae nuevos retos, nuevas emociones, nuevas adversidades que vencer, ya que estoy de acuerdo que la batalla más complicada es la batalla con nuestros propios pensamientos, no hay enemigo más fuerte y común que nuestra propia mente saboteando cualquier intento por pensar diferente, por actuar diferente, por sentir diferente, para muchos es más fácil sucumbir ante la propia “psicosis” que cambiar tan solo un pensamiento.

Hoy estoy analizando y contabilizando las relaciones importantes con personas que amo, estimo y por las cuales solemos hacer cosas interminables e incansables, pero ¿cuantas de estas acciones hacemos llevamos a cabo para nosotros mismos?, ¿estaremos buscando la reciprocidad afectiva de quienes decimos amar?, creo que muchos de los caminos por los cuales optamos siempre llevan a lo mismo: a sentir amor, a percibirlo como parte de un objetivo en esta vida, este año necesitamos hacer varias preguntas para poder avanzar, necesitamos un “punto de control” para poder evaluar que camino seguir y cuales acciones emprender.

1.- ¿Quieres alguien que te comprenda?,  ¿Qué tanto has sido comprensivo con las personas?, has practicado eso llamado empatía, para ponerte en los zapatos del otro, o solo has visto pasar un nuevo monologo de tu cerebro.

2.- ¿Quieres alguien que te escuche?, ¿Has escuchado a alguien realmente, desde la primera hasta la ultima palabra sin interrumpir tratando de cambiar el sentido para que se acople a lo que tu crees?

3.- ¿Quieres alguien que le interese lo que tu haces?, ¿Sabes? el querer no se puede aprender, a caso tu ¿ya has indagado y entrado en la vida de quien te importa?, ¿le has hecho notar lo valioso e interesante que te resulta su mundo?, si ya lo has hecho seguro que vas por buen camino ya que el ser atento nunca ha sido un crimen en el cual tengas algo que perder, pero si eres de los que no lo ha intentado, arriesgaste, indaga, investiga, si no te interesa tal vez necesitas cambiar de objetivo.

4.- ¿Deseas ser reconocido?, no hagas lo que todos hacen, siempre da un extra, da algo más de tí seguro que dentro tienes mil y un cosas y pensamientos, trata de ser un ejemplo haciendo las cosas irremediablemente bien hechas, que cada cosa que hagas refleje quien eres y la importancia que dedicas a cada una de las cosas que haces o tocas.

Haz de cada uno de tus días, una experiencia diferente, no esperes hasta el fin de año para amar y decirlo, pero no olvides que para que exista el verdadero sentimiento de amistad o amor entre humanos es necesario cuidar la reciprocidad, como decía Aristoteles.

En cuanto a los que rápidamente hacen amigos, seguramente ansían serIo, pero no lo son todavía, salvo que ambos sean dignos de amor y que lo sepan. El deseo de amistad nace pronto; la amistad lleva su tiempo.

Esta amistad entre hombres buenos y semejantes, por consiguiente, es perfecta, tanto en cuanto al tiempo como en los otros respectos, en todos los cuales cada uno, como debe pasar entre amigos, recibe del otro los mismos bienes u otros parecidos.

No olvides que todos los humanos NO siempre nos comprendemos en todo momento y debes de cuidar que parte de ese autoconocimiento no lastime a los que sabes que amas, a pesar de ser un fuego fatuo, esperando la oportunidad para incendiarte o apagarte.

Atrevete a bajar de peso y mejorar tu salud con una gran aplicación web

Logo desafío de peso

Hace tiempo desarrolle un proyecto llamado www.desafiodepeso.com , junto a un gran webdesigner y una gran idea engendrada por unas expertas en nutrición que decidieron crear una aplicación web al estilo social network para poder bajar de peso compitiendo contra miembros de tu lugar de trabajo, llevando en todo momento una dieta balanceada hecha especialmente para tí, con graficas de avances y notificaciones por mail así como un “consultorio virtual” donde podras tener asesoría por un experto en nutrición que te guiara y te ayudara a por fin eliminar los kilos de mas y llevar una vida saludable fácil y divertido.

Les dejo unas pantallas del sistema.

Inscriban a su empresa. 😀

Pantalla principal

captura-de-pantalla-2009-09-10-a-las-230252

Pantalla de registro

captura-de-pantalla-2009-09-10-a-las-230659

Pantalla Principal del usuario.

captura-de-pantalla-2009-09-10-a-las-230726

Pantalla de avance de usuario y marcador

captura-de-pantalla-2009-09-10-a-las-230826

Consultorio Virtual

captura-de-pantalla-2009-09-10-a-las-230741

El proyecto esta enteramente desarrollado con Zend Framework, Xhtml y jQuery.

La felicidad es valorar cada instante.

Muchas personas abrazan aun en sus sueños el concepto de felicidad como un “gran regalo” que llega con mucho tiempo de esfuerzo y dedicación o bien después de una gran tormenta de emociones o dolencias, creo que la felcidad es como dice Schopenhauer en su libro “El arte de ser feliz”si vemos nuestra felicidad como un anhelo o premio siempre sera una condición que requiere de un ciclo infinito de necesidad para llenar ese hueco llamado vivir.

Hoy preguntate algo como esto.

¿Te has dado cuenta de que cuando llueve todo se envuelve de una paz inesperada? sin contar el tráfico y lo mal que uno la pasa en el transporte público.

¿Has notado que para muchas personas eres importante?

¿Has notado lo mucho que has aprendido en los ultimos días?

¿Has notado que el amor o la persona indicada tal vez esta muy cerca y no querías verlo?

¿Has notado tus vicios, para poder encararlos?

Vive hoy, y aprende a disfrutar los instantes de felicidad que son regalos de la vida que hay que apreciar.

Instalar xDebug en mac con Xampp y Netbeans

Posiblemente si llegaste aquí es por que seguramente eres un feliz usuario de mac deseando instalar un buen “debugger” para saber el estado de tus variables durante la ejecución del código o bien encontrar errores cuando programas con PHP.

Para tener un flamante Netbeans con Xdebug para mac es necesario seguir estos pasos.

  1. Instalar XAMPP para Mac
  2. Instalar la versión develpment XAMPP
  3. Bajar el código fuente de xDebug
  4. Crear una carpeta en donde tu desees, de preferencia de fácil acceso ejemplo directamente en el disco local “Macintosh HD/xdebug”

Carpeta Xdebug

  1. Copiar el archivo que bajamos del código fuente de xdebug dentro de la carpeta que acabamos de crear

Archivo XDEBUG

  1. Abrir la consola o terminal, para encontrar esto solo basta escribir en spotlight “Terminal

Terminal mac

  1. Ya abierta la terminal usamos el comando CD para moverlos a la carpeta que creamos tecleando “cd /xdebug

Terminal mac

  1. Ya estando dentro de esta carpeta descomprimimos el archivo tar.gz que bajamos del código fuente, simplemente escribimos tar -xzf xdebug-2.0.5.tgz

imagen-6

  1. Entramos a la carpeta descomprimida “cd xdebug-2.0.5
  2. Ejecutamos phpize para preparar nuestro xdebug, poniendo el path absoluto “/Applications/XAMPP/xamppfiles/bin/phpize-5.2.9” para que sea compilado con nuestra versión de PHP, para obtener algo como esto.

phpize

  • Ahora necesitamos compilar xdebug escribiendo “./configure –enable-xdebug –with-php-config=/Applications/XAMPP/xamppfiles/bin/php-config“, para asegurarnos de que se configure con la configuración de PHP instalada.

Si todo sale correctamente, se generara un archivo xdebug.so dentro de la carpeta “xdebug-2.0.5/build” ahora solo nos queda agregar nuestro archivo compilado a la ruta del php.ini que se encuentra en “/Applications/XAMPP/etc

; Configuración de Zend extension
[xdebug]
zend_extension=”/xdebug/xdebug-2.0.5/build/xdebug.so
xdebug.file_link_format = “txmt://open?url=file://%f&line=%l”
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001

Nota. use el puerto 9001 por que en la mac a veces el puerto 9000 esta ocupado por alguna aplicación de ADOBE.

Ahora podemos comprobar en un archivo phpinfo.php que la extensión fue agregada correctamente.

zend extension

Lo único que falta es configurar netbeans y listo :)

Abrimos netbeans, y nos vamos al menu Netbeans/Preferences/Php y configuramos el puerto 9001

netbeans en mac

Ahora ¿qué tal? feliz debug ehh..

xdebug netbeans

¿Por qué es increible trabajar en Ingenia Group?

Como todos sabemos encontrar el trabajo ideal es una utopía por la cual todos nos detenemos a esperar alguna vez, no obstante siempre la mayoría de la gente pasa el tiempo “esperando” a que todo cambie, que todo mejore para su bienestar, pero ¿cuanto de esto se han ganado?, creo que es tiempo de evolucionar, una empresa que te da la oportunidad y la libertad de crear hasta donde tu creatividad alcance, hasta donde tus ideas quieran llegar, eso es invaluable.

Ingenia Group, es una empresa con problemas como todas, sin embargo hay que ver todas las oportunidades que nos brinda para ser mejores, la fortaleza de crecer frente a una crisis de cualquier tipo,  esa gran oportunidad que tenemos de conocernos y de comprobar nuestra propia fuerza y nuestro talento, si realmente te das cuenta de eso veras que una empresa como Ingenia Group que te da la oportunidad de trabajar con clientes como CAR, Coca Cola, UNION FENOSA, Grupo Aeroportuario del Pacífico, Grupo FRISA, Fin Comun, Brother, ASUR, Seguros Atlas, Peñoles, Nacional Financiera, Bancomext, Interesse.

En Ingenia Group es increible poder:

  • Trabajar con los mejores clientes
  • Conocer gente muy muy agradable
  • Aprender de videojuegos (a cargo del AtletiCO PRO).
  • Tener la gran oportunidad de aplicar estandares de la w3c, Zend, Java.
  • Tienes VOZ sobre la tecnología a utilizar en los proyectos.
  • Trabajas en una oficina padre
  • Tienes una computadora excelente y si es laptop te la puedes llevar a tu casa.
  • La libertad de crear lo que tu desees
  • Nosotros hicimos juntos el reglamento
  • Tenemos permisos especiales
  • Tenemos un gran ser humano como jefe
  • No somos solamente unos “Code Monkey” somos algo más
  • Existen personas con mucho talento de las cuales podemos aprender mucho.
  • Aprendes  llevarte bien con los de ventas :p verdad Pamela
  • Salimos de vez en cuando a algunas actividades juntos realmente divertidas

😀 eso de ser el numero 69 es la onda

Esperando entrar al partido

Esperando entrar al partido

Tania, Bere y Claudia

Las niñas en ingenia group

Las niñas en ingenia group

Un golpe en la sangre para vivir

Entre varios pisotones, empujones, llegues, alguna que otra mano semigay suelta y libertina vengo en la travesia pensando en una cita de mi libro favorito @asi hablaba zararustra  que dice – anhelo de anhelar eclipse de mi sol , cuantas veces vacias la copa para volverla a llenar. Y me remonta inevitablemente a los crimenes de la ilusion transitoria y fugaz, aquella que nos hace actuar y mantenernos ” luchando” por que necesitamos medir nuestra capacidad adquirida para trabajar, conquistar ( no necesariamente personas ) , amar , odiar tal vez bailar. ( si el moonwalk)

Necesitamos el factor lucha y resistencia como motor para las grandes cosas, salir del nido de comodidad para recibir una nueva prueba que nos hara concientes de el zig zageo emocional que sufrimos mientras nuestra necesidad de ” vencer ” no tiene un fin mas alla del reconocimiento de las propias fuerzas.

Esto me remonta inevitable a albert einstein cuando dice que, “el amor por la fuerza nada vale y la fuerza sin amor es energia gastada en vano” , creo que nada tiene valor por si mismo a exepcion de todo lo que genera vida y la venera, no basta con dar vida hay que elevar la conciencia y mejorarla superar la version anterior siempre mantener el espiritu caotico de lucha, mantener la llama interior por ser superior , seguramente nunca llegaremos al equilibrio total y no todos podamos procrear o contribuir y dejar de ser esteriles maquinas que necesitan de un estimulo material para crear o para vivir. No te basta un golpe en la sangre para vivir y tener la gran oportunidad de crear.