Los números de 2010

Los duendes de estadísticas de WordPress.com han analizado el desempeño de este blog en 2010 y te presentan un resumen de alto nivel de la salud de tu blog:

Healthy blog!

El Blog-Health-o-Meter™ indica: ¡Este blog lo está haciendo genial!.

Números crujientes

Featured image

Un duende de estadísticas ha creado esta pintura abstracta, inspirada en tus estadísticas.

Un Boeing 747-400 transporta hasta 416 pasajeros. Este blog fue visto cerca de 1,900 veces en 2010. Eso son alrededor de 5 Boeings 747-400.

 

En 2010, publicaste 9 entradas nuevas, ¡nada mal para el primer año!

The busiest day of the year was 22 de enero with 26 views. The most popular post that day was Quien soy?.

¿De dónde vienen?

Los sitios de referencia más populares en 2010 fueran phpclasses.org, google.cl, twitter.com, google.es y es.wordpress.com.

Algunos visitantes buscan tu blog, sobre todo por paginador jquery, tcpdf acentos, generar pdf php con caracteres especiales, acentos tweetdeck ubuntu y generar arboles con consultas en mysql con funciones recursivas.

Lugares de interés en 2010

Estas son las entradas y páginas con más visitas en 2010.

1

Quien soy? enero, 2010
7 comentários

2

Paginador de consultas en PHP y MySQL enero, 2010
1 comentario

3

Función recursiva en PHP para listar Directorios y Archivos enero, 2010

4

Instalar y Corregir errores de TweetDeck en Ubuntu abril, 2010

5

Crear PDF con PHP enero, 2010
3 comentários

Crear archivos Excel desde PHP

Bueno, hace ya varios posts, publique algo acerca de como crear archivos PDF’s desde codigo PHP, algo que sin dudo me imagino que a muchos le ha sido de gran utilidad. Ahora les traigo algunas clases para crear archivos excel a partir de codigo PHP, aunque algunos dirán que se puede hacer con solo agregar el encabezado correcto, pero es muy limitado los recursos que se puede hacer con esta forma.

Para los que no saben como hacer los excel con solo agregar un encabezado aqui les dejo este:

// Funciona solo en Linux
if(strpos($_SERVER['HTTP_USER_AGENT'],"Linux") !== FALSE)
{
header('Content-type: application/vnd.ms-excel');
header("Pragma: no-cache");
header("Expires: 0");
header("Content-disposition: attachment; filename=nombre_archivo.xlsx");
}
// Funciona solo en Windows
else if (strpos($_SERVER['HTTP_USER_AGENT'],"Windows") !== FALSE)
{
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=nombre_archivo.xls");
header("Content-Transfer-Encoding: binary ");
}

Con este encabezado ustedes pueden forzar al navegador a que descargue el codigo html que se genero y lo devuelva como un archivo de excel. Bueno esto no tiene gran ciencia.

Ahora lo interesante es que existen algunas clases o librerias que proporcionan muchas funcionalidades de las cuales no se puede obtener con solo colocar el encabezado, como por ejemplo colocar una imagen al archivo excel. Bueno les listo las clases que he utilizado de la mejor, segun un punto personal, a la que menos me a gustado:

  • PHPExcel: es una pequeña librería muy robusta que nos provee de las clases php necesarias tanto para crear como para leer ficheros Excel desde sin demasiadas complicaciones, sin duda, en lo personal, la mejor. Tiene muy buena documentacion y ejemplos que ilustran el funcionamiento de esta excelente libreria.
  • MS-Excel Stream Handler: Para ser sinceros esta no la he testeado.
  • PHP Excel Reader: Muy util.
  • reportes-php-excel: Derivada de php_writeexcel.
  • php_writeexcel: La mas sencilla de todas

Bueno ahi les dejo el abanico de posibilidades para que elijan cual les conviene mas según sus necesidades, no coloque ejemplos de como utilizarlas porque en las paginas oficiales esta todo un arsenal de ejemplos y codigos, ademas de manual de referencia, los cuales pueden consultar y explicar mejor el funcionamiento de la libreria.

Instalar y Corregir errores de TweetDeck en Ubuntu

Primero les cuento la historia, como sabran twitter y facebook son lo de hoy, tenia instalado el twhirl pero solo me permitia tener la cuenta del twitter, y dejaba descuidado la cuenta de facebook, asi que me dispuse a instalar el tweetdeck pero que fue mi sorpresa, la instalacion todo bien, pero al tratar de iniciar me marcaba un error, “Ooops, TweetDeck can’t find your data. TweetDeck is having trouble using some of your machine… blablablabla…”, asi que me puse a gloogear y me encontre con algunas soluciones que me ayudaron mucho, asi que aqui les pongo los pasos que me sirvieron para resolver el pequeño problemita

1.- Primero tener instalado el Adobe Air, podes descargalo desde este enlace: http://get.adobe.com/es/air/
2.- Ahora nos descargamos el TweetDeck, la instalacion es tan facil con solo dar doble click en el archivo .air, te aparece la ventana de instalacion, http://www.tweetdeck.com/desktop/
3. Ahora ya tenemos instalado todo, bueno por ahora, hay que probar si el tweetdeck funciona bien, tonces ya no es necesario seguir los siguientes pasos, y si te marca el error, manos a la obra a seguir los demas pasos.
4.- Podes proba corriendo el TweetDeck desde consola para ver que mensajes te arroja, lo podes hace con:
cd /opt/TweetDeck/bin/
./TweetDeck
Ve que mensaje te marca, lo que me aparecia era que faltaban unas librerias: libgnome-keyring.so
5.- Instalar el paquete getlibs, http://frozenfox.freehostia.com/cappy/getlibs-all.deb
6.- Ahora agregamos las librerias faltantes
sudo getlibs -l libgnome-keyring.so
sudo getlibs -l libgnome-keyring.so.0
sudo getlibs -l libgnome-keyring.so.0.1.1
7.- Ahora prueba si puedes inicar sesion el el TweetDeck, y si todavia no puedes, es necesario borrar un directoria que se encuentra en:
cd /home/”tu_usuario”/.appdata/Adobe/AIR/ELS/
rm -f -r TweetDeckFast.*

Con esto debe quedar al 100 el TweetDeck si de plano no que funcionando con esto les dejo los enlaces que me ayudaron a resolver este problema:
http://mario21ic.wordpress.com/2010/01/22/instalar-y-corregir-errores-tweetdeck-en-debian-lenny-con-kde/
http://www.ossramblings.com/tweetdeck_in_64_bit_ubuntu
http://ubuntuforums.org/archive/index.php/t-956824.html
http://ubuntuforums.org/archive/index.php/t-1298378.html

FLISOL 2010

FLISOL 2010

A realizarse el 24 de Abril de 2010 – Universidad Politécnica de Chiapas

FLISOL 2010

FLISOL 2010

El Festival Latinoamericano de Instalación de Software Libre (FLISoL) es el evento de difusión de Software Libre más grande en Latinoamérica. Se realiza desde el año 2005 y desde el 2008 se adoptó su realización el 4to Sábado de abril de cada año. Su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo.

A tal fin, las diversas comunidades locales de software libre (en cada país/ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.

FLISOL 2010

FLISOL 2010

A realizarse en la Universidad Politécnica de Chiapas

el Sábado 24 de Abril de 2010

A partir de las 9 horas

ACTIVIDADES

* Install Fest – Es un evento de defensa y de construcción de una comunidad, donde los novatos llevan sus computadoras para instalar el Sistema Operativo preferido (en nuestro caso un Sistema Operativo GNU/Linux), y los usuarios más expertos les ayudan en el comienzo y en los problemas de localización de averías. Trae tu laptop o PC para instalar Linux, OpenOffice y otras aplicaciones libres que tendremos a tu disposición, habrán tambien aplicaciones libres para la plataforma Windows.

——————————————————————————————————————————

Charla: Software Libre y GNU/Linux / Alonso Macías / 10 HRS

Charla: Juegos en Ubuntu / Alejandro Cortés / 11 HRS

Charla: EBOX – Una solución para administradores de RED / Alonso Macías / 12 HRS

——————————————————————————————————————————

Talleres: a partir de las 10 horas

(cupo limitado – confirma por correo electronico a: alonso.macias@upchiapas.edu.mx)

Taller: Manejo de base de datos en MySQL

NIVEL: Básico

OBJETIVO: Enseñar al participante a dominar los conocimientos fundamentales de manejo de bases de datos en MySQL, así como el lenguaje para el almacenamiento y recuperación de la información.

CONOCIMIENTOS PREVIOS: Profesionales, técnicos, bachilleres en el área de informática, carrera  afín y en áreas con competencia temática. (No es necesario conocer el MySQL)

Instructor: Ing. Pascual Alonso Pérez Nango

Duración: 2 horas

Taller: Usando Librerias Gráficas con Bash

NIVEL: Medio

OBJETIVO: Aprenderemos a crear scripts con ayuda de pequeñas librerías de GTK+. En esté taller no es necesario saber un lenguaje en específico ya que al principio veremos un concepto básico sobre la programación en Bash.

CONOCIMIENTOS PREVIOS: No se requiere.

Instructor: Rafael Bucio

Taller: Creación de PDF’s dinámicos con PHP

NIVEL: Medio

OBJETIVO: El participante aprenderá a crear sus propios archivos PDF en base a consultas SQL con formato de texto e inclusión de objetos.

CONOCIMIENTOS PREVIOS: Conocimientos básicos de PHP, conocimientos básicos de MySQL.
Instructor: Ing. Javier Antonio Méndez Álvarez

Duracion: 2 horas

 

Realiza tu registro para el evento aqui

Confirma tu lugar al taller seleccionado al correo: alonso.macias@upchiapas.edu.mx

cupo limitado para los talleres

MAS INFORMACION AQUI

Convertir de Numeros a Letras con PHP

Les cuento que hace poco estaba desarrollando un sistemita el cual imprime recibos, el cliente me comento si podia pasar las cantidades expresadas en numeros a letras (todo quieren que haga el sistema🙂 ), y que creen que le dije, pos que era imposible hacerlo, pero despues de pensar un poco me sono interesante la idea, me dio flojera hacer una funcion asi que me dedique a buscar en San Google, y que me encuentro con algunas clases que ya hacian eso, asi que aqui listo las que encontre y como utilizar, la neta que me sorprendieron algunas por lo eficientes que son:

numerosALetras: Esta clase es la mas malita, por asi decir, en la pagina del autor esta una version muy viejita, la descargue y me lleve la sorpresa de que no funciona bien, que mal, asi que me di a la tarea de corregir los detalles que tenia, y quedo modificada y remasterizada. El link de descarga de esta y todas las clases, con sus respectivos ejemplos esta al final de este articulo.

num2letras: Esta no es una clase, es solo una funcion, no hay necesidad de crear objetos y toda la onda, pa los que no les gusta la POO. Esta a primera vista se vee muy sencilla, pero en realidad es muy eficiente, muy recomendable, ya que soporta cantidades muy grandes, incluso decimales.

EnLetras: Sin duda mi favorita, me gusta por la forma tan eficiente de expresar los numeros, muy eficiente, hasta ahora todas las cantidades que he convertido con esta clase han sido correctamente expresadas, tambien soporta decimales, el inconveniente es que solo soporta 2 decimales.

Numbers_Words: La mas compleja de todas, esta clase en realidad es la que incluye PEAR, pero por lo regular no todos los servidores tienen instalado PEAR, asi que me di el tiempo para hacerle algunas modificaciones para que no dependiera de PEAR, y solo pueda ser utilizada como una clase mas. Esta incluye ademas soporte para distintos lenguajes, pero en esta ocasion solo se hicieron los cambios para el idioma español.

Ahora para la siguiente ocasion que tengan la necesidad de convertir numeros a letras en PHP aqui tienen un abanico de opciones, todas de gran calidad.

Aquí les dejo el pack con todas las clases y su respectivos ejemplos. DESCARGAR

Función recursiva en PHP para listar Directorios y Archivos

Ahora les traigo una funcion que me ha servido de mucho, esta función solo recibe como parametro la ruta o carpeta que queremos listar su contenido. Por ahora solo la imprime en una lista un poco fea,😦 pero bueno ya depende de la creatividad de cada uno para darle mejor aspecto, por ejemplo se puede hacer un árbol que al dar clic en un directorio se desplegue su contenido, o hacer un explorador de archivos al estilo de joomla o como el que trae el mismo windows cuando le damos abrir ha algún fichero, bueno muchas mas cosas que se les pueda imaginar.

Aquí ta la función:

function listar_directorios_ruta($ruta)
 {
 // abrir un directorio y listarlo recursivo
 if (is_dir($ruta))
 {
 if ($dh = opendir($ruta))
 {
 echo "<br /><strong>$ruta</strong>"; // Aqui se imprime el nombre de la carpeta o directorio

 while (($file = readdir($dh)) !== false)
 {
 //if (is_dir($ruta . $file) && $file!="." && $file!="..") // Si se desea mostrar solo directorios
 if ($file!="." && $file!="..") // Si se desea mostrar directorios y archivos
 {
 //solo si el archivo es un directorio, distinto que "." y ".."
 echo "<br />$ruta$file"; // Aqui se imprime el nombre del Archivo con su ruta relativa
 listar_directorios_ruta($ruta . $file . DIRECTORY_SEPARATOR); // Ahora volvemos a llamar la función
 }
 }
 closedir($dh);
 }
 }
 }

Ahora va una pequeña explicación, Es un poco complicado entender lo de la recursividad, pero vamos a tratar de eplicar, porque como es posible que una función se mande a llamar a si misma. que raro no, bueno resulta que cuando una función se llama a si misma se crea una pila de ejecución la cual va guardando las llamadas que hace la funcion, cuando una termina, inmediatamente se empeza a ejecutar la siguiente, es decir es un proceso que consume un poco de recursos, debido a que necesita gran cantidad de memoria en tiempo de ejecucion para poder guardar la pila de ejecución.

Que hace realmente la función?. Lo primero es verificar si el parametro recibido es un directorio si es asi abrimos el directorio, con opendir, ahora leemos cada uno de los archivos dentro del directorio, si el archivo leido es un directorio, mandamos a llamar nuevamente a la función, y se repite el proceso. Al terminar es recomendable, bueno por no decir necesario, cerra el directorio.

Espero y quede claro la explicación alguna duda pregunten que pa eso tamos aqui… : )

Crear PDF con PHP

Ahora les traigo una serie de librerías, para PHP, que te facilitan la vida a la hora de crear documentos en formato PDF. Estas son gratuitas, no mas hay que leer un poquito la documentación, que cualquiera que sepa un poco programación no tendrá problemas en comprender el estilo de programación. Estas librerías son prácticamente clases, tonces se tiene que programar Orientado a Objetos, pero no es nada del otro mundo.

Aquí listo las librerías en orden de la mas simple a la mas compleja, además de una breve introducción de que se puede y no se puede hacer con cada una de ellas.

FPDF: Es la mas sencilla de todas, pero de gran utilidad, tiene la capacidad de crear celdas, insertar imágenes, formato de texto, entre otras. Como es muy pequeña es muy rápida en la generación de los documentos, muy buena documentación y en español. El inconveniente es que tiene problema en el manejo de los acentos y caracteres especiales, no crea tablas, las tienes que crear celda por celda, pero con un poco de ingenio se puede resolver.

EZDF: Es similar a la anterior pero con un mejor manejo de las tablas y el formato de texto. Puedes crear tablas a partir de una matriz y con gran diseño, soporta mas formatos de imagen, incorpora una gran cantidad de tipos de letras. El pequeño detalle es que tienen, al igual que la anterior, problema con los acentos y caracteres especiales a la hora de justificar el texto.

TCPDF: Esta es mas avanzada que las dos anteriores, sin duda es de mis favoritas. Esta cuenta con la opción de imprimir código en formato HTML y CSS, cuenta con un extenso catalogo de fuentes y soporta casi cualquier formato de imagen. Pero la gran desventaja que es muy lenta al generar el documento.

MPDF: Es muy similar a la anterior, bueno hasta ahora no he encontrado gran diferencia, solo en la sintaxis. Pero igual de lenta.

Bueno pues ahi les dejo las opciones, dependiendo de sus necesidades elijan una, no se puedo decir cual es la mejor porque  depende de lo que quieran hacer sera su decisión,  si tienen duda en alguna de ellas con toda confianza pregunten, no soy un experto pero ya hace un buen rato que las utilizo.