Uncategorized

Nueva versión de Xataface 1.2.4

Ya podéis descargar la última versión de xataface, interesante framework para gestión de bases de datos, basado en php, mysql y smarty.

Me gustaría conocer cuales son las nuevas features de esta release, pero en la web del autor solo aparece este comentario:
“It has been a while since the last release of Xataface so I have released a bug fix release that includes all of the small changes that have accumulated over the past several months. This version includes better support for PHP 5.3 and fixes a lot of the small bugs and annoyances that have been pointed out in the forum.

There shouldn’t be any problem upgrading from 1.2.x as there aren’t any major changes here. Just stability improvements for the most part.”

Aprovechando el post, para todo aquel que tenga curiosidad por el funcionamiento de esta herramienta, describiré la instalación rapidamente:

  • Descargamos la última release desde sourceforge
  • Damos permisos de escritura al directorio dataface/Dataface/templates_c para almacenar las plantillas compiladas
  • Verificamos que la instalación es correcta vía url http://tudominio.com/path/to/dataface/dataface_info.php
  • Ahora relacionamos la base de datos con xataface (es el momento de crear tu base de datos si no lo has hecho todavía)
  • Ejecuta el binario makesite que se encuentra en el directorio dataface:
    Uso: makesite: ./makesite app_path user:password@hostname/db_name dataface_url
    donde
    app_path -> Ruta absoluta o relativa al directorio donde se encuentra la aplicación
    user -> Usuario de mysql
    password -> Password de mysql
    hostname -> Nombre del host donde está la base de datos.
    db_name -> Nombre de la base de datos.
    dataface_url -> Url donde has instalado xataface

Por ejemplo:

makesite ../Crm root:password@localhost/Crm /dataface
  • Ejecutando este comando crearíamos un sitio en .. /Crm (es decir, Crm como el directorio padre)
    La base de datos utilizada para este sitio está ubicado en localhost, y el nombre de la base de datos es Crm.
  • A continuación con este comando:
    ./makesite ../Crm \root@localhost/Crm \http://localhost/tu_directorio/dataface
    
  • Crearemos nuestra aplicación en el directorio Crm que será accesible desde el navegador
  • ¿Facil verdad?

    • Share/Bookmark

    CouchDB Api para Go Language

    Peter Bourgon, ha desarrollado una API para Go Language que nos permite trabajar con CouchDB.

    Para los que no conozcan CouchDB, podemos resumirlo como “una base de datos documental sin ‘esquema’, consultable al estilo MapReduce, accesible por REST y con una funcionalidad de replicación integrada”.

    Primeros Pasos:

    //Primero creamos un objeto database para acceder a nuestra bd:
    db, err := couch.NewDatabase("127.0.0.1", "5984", "databasename")
    • Share/Bookmark

    CSS Tabla de Conversión Point a Pixels y Em a Porcentaje

    Muy útil tabla de conversiones para maquetadores

    Pts Px Em Porcentaje
    6pt 8px 0.5em 50%
    7pt 9px 0.55em 55%
    7.5pt 10px 0.625em 62.5%
    8pt 11px 0.7em 70%
    9pt 12px 0.75em 75%
    10pt 13px 0.8em 80%
    10.5pt 14px 0.875em 87.5%
    11pt 15px 0.95em 95%
    12pt 16px 1em 100%
    13pt 17px 1.05em 105%
    13.5pt 18px 1.125em 112.5%
    14pt 19px 1.2em 120%
    14.5pt 20px 1.25em 125%
    15pt 21px 1.3em 130%
    16pt 22px 1.4em 140%
    17pt 23px 1.45em 145%
    18pt 24px 1.5em 150%
    20pt 26px 1.6em 160%
    22pt 29px 1.8em 180%
    24pt 32px 2em 200%
    26pt 35px 2.2em 220%
    27pt 36px 2.25em 225%
    28pt 37px 2.3em 230%
    29pt 38px 2.35em 235%
    30pt 40px 2.45em 245%
    32pt 42px 2.55em 255%
    34pt 45px 2.75em 275%
    36pt 48px 3em 300%

    Publicada originalmente en WorldTechnies

    • Share/Bookmark

    Load External Image with As3

    Hace tiempo me llamó mucho la atención la cantidad de blogs que tenían algún post con información sobre como cargar una imagen con as3, y algo común en todos que era el mismo error.

    Si alguien quería copiar y pegar el código asociado en su función se iba a encontrar con un error sin aparente motivo.

    El código que se puede encontrar es algo así:

    1. this.loader = new Loader();
    2. this.loader.load(“http://somewebsite.com/image.png”);
    3. this.loader.addEventListener(Event.COMPLETE, onLoadComplete);
    4. public function onLoadComplete(event:Event):void {
    5. var thumbnail:Sprite = new Sprite();
    6. thumbnail.addChild(this.loader);
    7. }

    Y esto no va a funcionar ya que no es correcto asignar un listener de evento directamente al objeto Loader
    Lo que hay que hacer es asignarlo a la propiedad contentLoaderInfo del Loader para hacerlo funcionar correctamente :)

    this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
    
    • Share/Bookmark

    Sistemas de Ayuda a la Toma de Decisiones (SATD)

    IBM compró iLog hace un par de años.

    iLog es un sotware de Sistemas de Ayuda a la Toma de Decisiones (SATD)

    Actualmente estoy trabajando en la integración de un sistema de estas carácterísticas en una empresa.

    Me gustaría conocer las valoraciones de personas que actualmente trabajen con sistemas de estas características.

    ¿Cuanto tiempo tarda una empresa en amortizar la inversión de integrar en su sistema una herramienta de estas características.? Al ser software de ayuda a toma de decisiones, se puede aplicar a cualquier tipo de modelo de negocio, siempre que se realize una correcta parametrización de las reglas y variables del negocio que queremos adaptar.

    ¿Alguien colabora con algunos números?


    • Share/Bookmark

    Pro*C/C++ Precompiler Programmer’s Guide

    Buscando documentación he encontrado un excelente manual sobre programación pro*c contra Oracle
    Un resumen de las operaciones más habituales:

    //Query sin cursor:
    EXEC SQL SELECT ename, sal + 100, job
    INTO :ename, :sal, :job
    FROM emp
    WHERE empno = :empno;
    
    //Query con Cursor:
    
    EXEC SQL DECLARE emp_cursor CURSOR
    FOR SELECT ename, empno, job, sal
    FROM emp
    WHERE deptno = :deptno
    FOR UPDATE OF sal;
    
    //Recorrer un cursor con fetch:
    
    EXEC SQL DECLARE emp_cursor CURSOR FOR
    SELECT job, sal FROM emp WHERE deptno = 30;
    EXEC SQL OPEN emp_cursor;
    ...
    EXEC SQL WHENEVER NOT FOUND GOTO ...
    for(;;)
    {
    EXEC SQL FETCH emp_cursor INTO :job_title1, :salary1;
    ...
    }
    

    Aquí os dejo el enlace es para oracle8.

    • Share/Bookmark