PHP con Apache 2.4


Como desarrollador PHP , mi trabajo diario lo hago sobre un Debian Gnu Linux ( SID ) , que luego de una actualizacion

$ sudo apt-get update; sudo apt-get dist-upgrade -y

Me deja de funcionar la re escritura de direcciones en wordpress y CakePHP ( Por suerte en django no tengo estos problemas ), revisando un poco de documentación, veo que se necesita tener activo la directiva Add Require all granted

Finalmente, edito el archivo /etc/apache2/sites-enabled/000-default.conf

ServerName localhost
ServerAlias localhost
ServerAdmin webmaster@localhost
DocumentRoot /home/csotelo/public_html/
<Directory "/home/csotelo/public_html/">
allow from all
Require all granted
AllowOverride All
Options +Indexes
</Directory>
LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Call current_user_can after init()


This error appears on wordpress when I activate debug mode, and using bbpress and buddypress, the error was a requiremnt on using the init function before use a restriction related with the function current_user_can

After having this using on a theme development, I have check some pages like

Finally my solution was create a function as http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init says and warning disappear

function restrict_admin(){
//if not administrator, kill WordPress execution and provide a message
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( __('You are not allowed to access this part of the site') );
}
}
add_action( 'admin_init', 'restrict_admin', 1 );

Gallo has been moved to GitHub


blog-github

After been using source for my project I have decide to move my two projects to GitHub, and now and available here

Both of them were used for me on some pages in order to have a tool for make web sites on a easily and simple and smarty

Testing my blog with drivel


I am tetsing this amazing tool for gnome desktop

Cakephp vs Codeigniter


Este artículo no esta basado en ninún tipo de benchmarking, ni comparativa ni mucho menos prueba de tiempos, solo una recopilación de experiencias a la hora de escoger un framework o no, claro, algo resumido, eso creo, en un solo artículo. Aclaro al lector que esta es solo una opinión personal, no una verdad.

A lo largo del tiempo que llevo como desarrollador, me he visto en ma s de una oportunidad, en la desición de que herramienta usar, desde el lenguage, las bases de datos etc. Por ahora me centrare en PHP como herramienta, por llevar mas tiempo en este lenguaje.

Escoger entre usar o no un framework va mucho de la mano con el proyecto, de hecho proyectos pequeños, no considero que requieran un framework, asi como un gran proyecto requerirá de una herramienta mas productiva, claro que también se podra realizar sin usar un framework, aun que el uso de un framework agilizaria el trabajo, y si trabajamos en un equipo, ayudaria al equipo en el uso de un estandar de codificacion y trabajo.

La pregunta es ¿qué framework debo usar ahora para desarrollar?. La búsqueda en internet me dará muchas respuestas de los aficionados, fanáticos, seguidores, etc. de uno u otro framework, demostrando y dando sus experiencias, asi como yo lo hago en este momento.

Por ahora trabajo con Cakephp, pero en algun momento trabaje con codeigniter. Ahora explico el por qué del cambio.

Codeigniter es un framework super ligero, pero casi todo hay que hacerlo o hay que prepararlo antes de empezar a trabajar; es decir, el modelo de datos, control de accesos, herramientas, etc. Mientras tanto, cakephp ya tiene todo esto hecho, incluso hasta un crud integrado, solo era cuestion de usarlo.

Mi deseo es tener una herramienta lista, que me permita empezar a trabajar ya, por otro lado symfony me ofrecia algo mejor que cakephp, sin ambargo al final decidí por cakephp por una simple razon, eocntrar una comunidad en mi idioma, con uno de los desarrolladores de cakephp como miembro, dispuesto a ayudar y resolver mis dudas. Esto me parecio la razon mas importante.

Conversando con otro desarrolador cambio de cakephp a codeigniter, el proceso inverso de lo que yo hice, y su razon, como me lo cuenta es que codeigniter no lo encasillaba en una forma de trabajo, si no el podia usar la forma que a él mas le agradaba.

Mi conclusión, no solo los factores de tiempo de ejcucion, tiempo de desarrollo, etc y otras pruebas de benchmarking son necesarias, si nola comodidad y el objetivo que un desarrolador persigue, asi como la forma de trabajo y el framework que mas se adapta a esta.

Al final la herramienta debe ser de acuerdo a lo que el desarrollador busca y no al contrario.

Retorno a las ponencias


Luego de un largo tiempo, regrese a las ponencias, siendo la primera “Seguridad Informática: Principios Básicos” que fue en la UTP y ahora en Tacna para el Flisol 2010. Mas adelante publicare las ponencias

Model Library for Codeigniter


I have made a model library for codeigniter. It is based on the article http://maestric.com/doc/php/codeigniter_models

if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Model extends Model {
    
    var $table = "";
    
    function My_Model() {
        parent::Model();
        $this->load->database();
    }
    
    function find($type = 'all', $options = array()) {
        if ($type == 'first') {
            $this->db->limit(1);
        }
        if(array_key_exists('fields', $options)) {
            $this->db->select(implode(",", $options['fields']));
        }
        if(array_key_exists('where', $options)) {
            foreach ($option['where'] as $key=>$value) {
                $this->db->where($key, $value);
            }
        }
        if(array_key_exists('order', $options)) {
            foreach ($option['where'] as $key=>$value) {
                $this->db->order_by($key, $value);
            }
        }
        if(array_key_exists('limit', $options)) {
            $limit = $options['limit'];
            if(array_key_exists('limit', $limit) && !array_key_exists('offset', $limit)) {
                $this->db->limit($limit['limit']);
            }
            if(array_key_exists('limit', $limit) && array_key_exists('offset', $limit)) {
                $this->db->limit($limit['limit'], $limit['offset']);
            }
        }
        $query = $this->db->get($this->table);
        $result = $query->result_array();
        return (count($result) > 0 ? $result[0] : NULL);
    }
    
    function find_first($options) {
        return $this->find('first', $options);
    }
    
    function find_all($options) {
        return $this->find('all', $options);
    }
    
    function find_id($id) {
        if ($id == NULL) {
            return NULL;
        }
        return $this->find('first', array('where'=>array('id'=>$id)));
    }
    
    function insert($data) {
        $this->db->insert($this->table, $data);
        return $this->db->insert_id();
    }
    
    function update($id, $data) {
        $this->db->where('id', $id);
        $this->db->update($this->table, $data);
    }
    
    function delete($id) {
        if ($id != NULL) {
            $this->db->where('id', $id);
            $this->db->delete($this->table);
        }
    }
}

Cómo poner color a tail


Hacer un tail -f para hacer el seguimiento de alguna tarea o proceso, algunas veces no es mucha ayuda, esto debido a la forma de visualizar dicha información. Una forma de mejorar esta tarea es con el comando ccze. Para esto, habrá que instalar dicho programa.

$ sudo aptitude install ccze

Una vez instalado, lo uso ayudándome de un pipe, por ejemplo para ver el log de los daemons.

$ sudo tail -f /var/log/daemon.log | ccze

El resultado, es un tail con colores, que facilita mucho la visualización.

Cómo convertir flv a mpg


En este cómo doy los pasos para convertir un archivo flv a un archivo mpg usando el programa ffmpeg.

$ sudo apt-get install ffmpeg

Ya instalado el ffmpeg procedo a convertir los archivos flv que deseo, abriendo un terminal y dando como parámetros el archico que deseo convertir y el nombre del archivo mpeg resultante

ffmpeg -i tu_archivo.flv tu_nuevo_archivo.mpeg