• Directorios SEO
  • Zomg wordpress theme
  • Lista de directorios
  •  

    Clase para acceder Mysql desde PHP5

    November 8th, 2010 by diegomichel No comments yet

    Como ya existe mysqli(Mysql Improved) en php5 que es orientado a objetos lo unico que tenemos que hacer es extender la clase para convertirla en Singleton, para asi asegurarnos que solo exista una sola conneccion al servidor Mysql en todo momento.

    Database.php
    [php]<?php

    class Database extends mysqli {

    private static $databaseConnection = NULL;

    public static function getInstance()
    {
    if (!self::$databaseConnection)
    {
    self::createInstance();
    }
    return self::$databaseConnection;
    }

    function __construct()
    {

    @parent::__construct(‘localhost’, ‘root’, ’1′, ‘blog’);

    if (mysqli_connect_errno())
    {
    throw new Exception(
    mysqli_connect_error(),
    mysqli_connect_errno()
    );
    }
    }

    private static function createInstance()
    {
    $class = __CLASS__;
    self::$databaseConnection = new $class;
    }

    }

    ?>[/php]

    Recuerda que tienes que reemplazar los valores USUARIO_MYSQL, PASSWORD_MYSQL y NOMBRE_DE_LA_BASE_DE_DATOS por los de tu servidor web.

    Luego para usarla solo tienes que incluir el archivo Database.php donde quieras.

    por Ejemplo:.
    [php]
    <?php
    include "Database.php";

    $db = Database::getInstance();

    $result = $db->query("select * from users");
    $allUsers = $result->fetch_all();
    $result->close();

    ?>
    [/php]
    $db = Database::getInstance(); Nos devuelve la coneccion a la base de datos y si no existe la crea.

    $result = $db->query(“select * from users”); Ejecuta una consulta SQL y guarda el objeto Mysqli_Result en $result

    $allUsers = $result->fetch_all(); fetch_all() devuelve un array con todos los resultados de la consulta SQL.

    $result->close(); Libera la memoria usada por el objeto $result, se debe ejecutar siempre que el objeto result no sera usado.

    Puedes checar la referencia de funciones de mysqli para mas funciones muy utiles como fetch_object.

    Rapido y simple.

    Tags:
    Posted in: Uncategorized

    Disponible la version 3 de wordpress.

    June 18th, 2010 by diegomichel No comments yet

    Ya esta disponible la version 3 the wordpress.

    http://es.wordpress.org/2010/06/17/wordpress-3-0-final-disponible-tambien-en-espanol/

    Espero ya no volver a usarlo cuando termine mi propio CMS :p.

    Tags:
    Posted in: Uncategorized

    Paseo del caballo en C++

    May 15th, 2010 by diegomichel No comments yet

    Usando Heurística, Ejercicio del libro Como Programar C++ 6ed de Deitel.

    [c]#include <iostream>

    using std::cout;
    using std::endl;

    int siguientepaso(const int&,const int&, int[][8]);

    int main(int argc, char** argv) {
    int tablero[8][8]={0};

    //Posicion actual del caballo
    int filaActual = 0;
    int columnaActual = 0;

    //Movimientos posibles del caballo
    int horizontal[8]={2,1,-1,-2,-2,-1,1,2};
    int vertical[8]={-1,-2,-2,-1,1,2,2,1};

    int siguientemovimiento;

    //Moviendo el caballo
    for(int i=1;i<=64;i++)
    {
    //Marcando la casilla en la que estamos
    tablero[filaActual][columnaActual] = i;

    siguientemovimiento = siguientepaso(filaActual,columnaActual,tablero);

    if(siguientemovimiento != -1)
    {
    filaActual += vertical[siguientemovimiento];
    columnaActual += horizontal[siguientemovimiento];
    }

    //Ya no existe movimiento posible
    if(tablero[filaActual][columnaActual] > 0)
    {
    cout << "Movimientos realizados: "<< i<< endl;
    for(int fila=0;fila<8;fila++)
    {
    for(int col=0;col<8;col++)
    {
    cout << ""<< tablero[fila][col]<< "\t";
    }
    cout << "\n\n\n";
    }
    break;
    }
    }
    return 0;
    }
    //Seleccionar el siguiente paso a hacer
    int siguientepaso(const int &fila,const int &columna,int tablero[][8])
    {
    int accesibilidad[8][8]={
    {2,3,4,4,4,4,3,2},
    {3,4,6,6,6,6,4,3},
    {4,6,8,8,8,8,6,4},
    {4,6,8,8,8,8,6,4},
    {4,6,8,8,8,8,6,4},
    {4,6,8,8,8,8,6,4},
    {3,4,6,6,6,6,4,3},
    {2,3,4,4,4,4,3,2}
    };
    //Movimientos posibles del caballo
    int horizontal[8]={2,1,-1,-2,-2,-1,1,2};
    int vertical[8]={-1,-2,-2,-1,1,2,2,1};

    int bestmove = -1;

    for(int movimiento=0;movimiento<8;movimiento++)
    {
    if((fila + vertical[movimiento]) > 7 || (fila + vertical[movimiento]) < 0)
    continue;
    if((columna + horizontal[movimiento]) > 7 || (columna + horizontal[movimiento]) < 0)
    continue;
    if(tablero[fila + vertical[movimiento]][columna + horizontal[movimiento]] > 0)
    continue;

    if(bestmove==-1)
    {
    bestmove = movimiento;
    continue;
    }
    if(accesibilidad[fila + vertical[bestmove]][columna + horizontal[bestmove]] > accesibilidad[fila + vertical[movimiento]][columna + horizontal[movimiento]])
    {
    bestmove = movimiento;
    }
    }
    return bestmove;
    }[/c]

    Paseo del caballo en c++

    Tags:
    Posted in: Uncategorized

    Ventajas y desventajas de usar linux.

    May 8th, 2010 by diegomichel No comments yet

    Lo siguiente es mayormente subjetivo.

    Ventajas

    1. Cron, grep, y todas las utilidades de la consola.
    2. Instalar paquetes rapido y facil, por ejemplo apache y php
    3. Seguridad de que no te infectaras con algun virus
    4. Gratis

    Desventajas

    1. Es dificil de configurar el hardware
    2. Los juegos de ultima generacion no toman en cuenta linux
    3. Demasiadas opciones

    Tags:
    Posted in: Uncategorized

    Por que uso freebsd

    May 7th, 2010 by diegomichel No comments yet

    Ventajas

    1. Estable
    2. Software Actualizado
    3. Capacidad de optimizacion al estilo gentoo(mas bien gentoo es al estilo de freebsd)
    4. Rapido
    5. Documentacion

    Desventajas

    1. Mi tarjeta de sonido Audigy SE no esta soportada
    2. Compilar/configurar los ports toma horas, tambien se puede usar pkg_add para una instalacion mas rapidad sin necesidad de compilar
    3. Mi teclado g15 no esta soportado, funciona pero el LCD no muestra el reloj.

    Tags:
    Posted in: Uncategorized

    Como montar una particion ext3 en freebsd.

    May 6th, 2010 by diegomichel No comments yet

    Lo primero que tenemos que hacer es identificar nuestros discos duros.

    localhost# dmesg|grep -i “SATA”
    atapci0: port 0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f mem 0xfe02f000-0xfe02f3ff irq 22 at device 17.0 on pci0
    ad4: 715404MB at ata2-master SATA150
    ad6: 381554MB at ata3-master SATA150

    Una vez tenemos localizado el disco en mi caso es el ad4 donde tengo las particiones de linux, ahora tenemos que saber como las nombra freebsd, para ello ejectua:

    localhost# ls /dev/ad4*
    /dev/ad4 /dev/ad4s2 /dev/ad4s4
    /dev/ad4s1 /dev/ad4s3 /dev/ad4s5

    en este caso los equivalentes para linux serian.

    /dev/ad4 -> /dev/sda
    /dev/ad4s1 -> /dev/sda1

    etc.

    Y para pontar la particion ad4s1 es:

    mount -t ext2fs /dev/ad4s1 /mnt/s1

    El directorio /mnt/s1 debe ser creado primero.

    Tags: , ,
    Posted in: Uncategorized

    Freebsd /usr/ports: No such file or directory.

    April 28th, 2010 by diegomichel No comments yet

    He instalado freebsd en una maquina virtual para luego ver si me decido hacerlo mi sistema de escritorio, y me he encontrado con el problema de que el directorio /usr/ports no existe.

    Para solucionar este problema se puede hacer lo siguiente:

    csup -h cvsup.us.freebsd.org /usr/share/examples/cvsup/ports-supfile

    Tags:
    Posted in: Uncategorized

    Montar Ext4 en Debian Lenny.

    April 17th, 2010 by diegomichel 1 comment so far

    Debian Lenny no soporta el formato Ext4 oficialmente, por que era experimental en el momento en que Lenny fue lanzada, pero tenia un driver experimental que puedes usar para leer los archivos.

    tune2fs -E test_fs /dev/sdax
    mount -t ext4dev -o ro /dev/sdax /mnt/sdax

    Tags: , ,
    Posted in: Uncategorized

    Utilidades para checar la optimizacion de una pagina.

    April 16th, 2010 by diegomichel No comments yet

    La velocidad de un sitio es un factor importante para mantener a nuestros visitantes felices, existen multitud de herramientas que nos pueden ayudar a lograr nuestro objetivo de optimizar la velocidad de carga de una pagina.

    Yo recomiendo las siguientes:

    YSlow

    Free Image Hosting at www.Pictat.com

    Este me gusta mas que Page Speed ya que muestra graficas y en general se me hace mas presentable que page speed.

    Descargar: http://developer.yahoo.com/yslow/

    Page Speed

    Free Image Hosting at www.Pictat.com

    Descargar: http://code.google.com/speed/page-speed/download.html

    Los dos necesitan la extension firebug para funcionar https://addons.mozilla.org/es-ES/firefox/addon/1843

    Yo he tratado de optimizar la pagina para un score de 100, pero lo máximo que he logrado a sido un 98… ya no se que mas modificar xD.

    Ya empezo el google dance.

    April 16th, 2010 by diegomichel No comments yet

    Hoy me lleve la sorpresa de que a una de mis paginas le bajo el pr :(

    a algunas otras les subio tambien…

    a trabajar se ha dicho :p.

    Tags: ,
    Posted in: Uncategorized