jueves, 8 de octubre de 2009
Humor APT
Instalamos apt-get install cowsay
Y lo ejecutamos
#uname -a | cowsay
_______________________________________
/ Linux chaco 2.6.26-2-amd64 #1 SMP Wed \
| Aug 19 22:33:18 UTC 2009 x86_64 |
\ GNU/Linux /
---------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
#cowsay Hola soy una vaca
___________________
< Hola soy una vaca >
-------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Tiene tambien su lado amistoso a su manera
# cowsay -f sodomized "Toma, toma"
____________
< Toma, toma >
------------
\ _
\ (_)
\ ^__^ / \
\ (oo)\_____/_\ \
(__)\ ) /
||----w ((
|| ||>>
#cowsay -f moose Hi!
_____
< Hi! >
-----
\
\ \_\_ _/_/
\ \__/
(oo)\_______
(__)\ )\/\
||----w |
|| ||
#aptitude -v moo
Realmente no hay ningún huevo de pascua en este programa.
#aptitude -vv moo
¿No le he dicho ya que no hay ningún huevo de pascua en este programa?
#aptitude -vvv moo
¡Deje de hacer eso!
#aptitude -vvvv moo
Vale, vale, si le doy un huevo de pascua, ¿se irá?
#aptitude -vvvvv moo
De acuerdo, usted gana.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
#aptitude -vvvvvv moo
¿Qué es? Un elefante siendo devorado por una serpiente, evidentemente.
#apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
lunes, 7 de septiembre de 2009
Error Skype 2.1.0.47-1 en debian amd64 Testing
El error que mostraba es
Inconsistency detected by ld.so: dl-open.c: 623: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!
Quitarle los permisos a estos archivos.
La solución:
chmod 000 /usr/lib32/libpulse.so.0.8.0
chmod 000 /usr/lib32/libpulse-simple.so.0.0.2
martes, 28 de julio de 2009
Ocultar version de bind (dns)
Por ejemplo, esto es lo que no se debe hacer. tomo a amnet de ejemplo
Primero averiguo cuales son sus dns
dig NS amnet.co.cr
me dice que son
amnet.co.cr. 10751 IN NS dns1.amnet.co.cr.
amnet.co.cr. 10751 IN NS dns2.amnet.co.cr.
Asi que le pregunto a cualquiera cual es la version de bind que usan
dig @dns2.amnet.co.cr. version.bind txt chaos
Y me dicen version.bind. 0 CH TXT "9.2.2rc1"
Asi que si se que existe una falla e seguridad en esa version podria explotarla facilmente.
Todo esto se soluciona agregando en el archivo de configuracion de bind la opcion, en la seccion de options
version "Windows Vista es una basura";
Asi que cuando le pregunten a mis dns eso veran como version Smiley
lunes, 29 de junio de 2009
Cómo deshacerte de Mono en Ubuntu [Actualizada]
Como dicen en el post original, antes de proceder a esa eliminación deberás tener en cuenta que Mono es imprescindible para poder usar ciertas aplicaciones que algunos podéis usar en vuestras distros, tales como Tomboy, Banshee, F-Spot y, atención, GNOME Do, una utilidad que muchos usan y que realmente es una demostración de que hasta Mono tiene sus cosas buenas ;) Así pues, si quieres eliminar Mono tendrás que renunciar a esas y otras utilidades programadas con esta plataforma.
Al desinstalar Mono liberaremos unos 60 Mbytes de espacio en disco. No es una cantidad excesiva, y lo más importante es sin duda el hecho de que eliminaremos toda presencia de componentes que para muchos marcan una especie de “relación no deseada” con la competencia directa, Microsoft.
Para proceder a la desinstalación en Ubuntu tendréis que ejecutar el siguiente comando:
sudo apt-get remove --purge mono-common libmono0 libgdiplus && sudo rm -rf /usr/lib/mono
Lo que hará que se eliminen ciertos paquetes, además de las librerías relacionadas con esta plataforma que como sabéis es una implementación de .NET y que eso sí, también tiene sus cosas buenas, como he dicho. Así que… ¡vosotros decidís!
Actualización (29/06/2009, 16:05): Al hilo de esto acabo de ver el post que hizo al respecto Richard Stallman, en el que habla de que el software libre no debería depender ni de Mono ni de C#. Curiosamente no tira por tierra C#, sino que dice que hay que usar implantaciones libres como Portable.NET, del proyecto GNU. El peligro está según el en que algún día las implementaciones de C# tengan que usar patentes software por mandato de Microsoft. Conclusión: si hay aplicaciones comparables que no sean C#, mejor elegir esas en lugar de las C#
Fuente http://www.muylinux.com/2009/06/29/como-deshacerte-de-mono-en-ubuntu/
Stallman le dice NO a Mono
“Es peligroso depender en C#, así que debemos desalentar su uso.
El problema no es único de Mono, cualquier implementación libre de C# tendría el mismo problema. El peligro es que Microsoft probablemente está planeando forzar a todas las implementaciones libres de C# a quedarse al margen algún día usando (sus) patentes de software. Este es un peligro serio y solo los tontos lo ignorarían hasta el día en que realmente suceda. Necesitamos tomar precauciones para protegernos a nosotros mismos.
Debemos arreglar las cosas para depender en las implementaciones libres de C# tan poco como sea posible. En otras palabras, debemos desalentar a la gente de escribir programas en C#. Por lo tanto no debemos incluir implementaciones de C# en la instalación por defecto de las distribuciones de GNU/Linux, y debemos distribuir y recomendar aplicaciones no-C# en lugar de aplicaciones C# comparables cada vez que sea posible”.
Fuente http://www.vivalinux.com.ar/eventos/stallman-vs-mono
viernes, 5 de junio de 2009
Twitter integrado en Pidgin
Al abrir una ventana de “conversación” con el contacto twitter, se irá actualizando con los tweets de los contactos y amigos. Por supuesto, el usuario puede enviar su propio tweet como si de una conversación normal se tratara. Incluso permite contestar a otros contactos e incorpora un contador de caracteres restantes.
Fuente
http://www.genbeta.com/web/microblog-purple-twitter-integrado-en-pidgin
Google libera paquetes de Chrome para Linux y Mac OS X
Este lanzamiento es también, aparentemente, la primera vez que Google libera sus propios paquetes binarios de Chrome para otro sistema operativo que no sea Windows. Actualmente están disponibles para Mac OS X 10.5.6 y para Debian 5.0 "Lenny" o Ubuntu 8.04 "Hardy Heron" en sus versiones para las plataformas i386 y AMD64.
Según sus notas de lanzamiento el soporte para otras distribuciones ya está planeado, mientras tanto "desempacar los archivos .DEB a mano puede funcionar".
Fuente http://www.vivalinux.com.ar/soft/google-chrome-para-linux-y-osx
viernes, 29 de mayo de 2009
Pegar archivos de Hacha en Gnu/linux
Muchos lo hacen con Hacha un miniprograma que sirve para dividir en trozos los archivos pesados, o tambien con Winrar, aunque existen otras opciones como el famoso 7-zip, pero si por algun motivo tus backups los hiciste con hacha y quieres unir esos archivos en Gnu/Linux existe un programa de gnu/linux que perfectamente une esos archivos.
Se llama Hoz y tiene las mismas funcionalidades de Hacha solo que es Libre, y nativo de Gnu/Linux.
Para instalarlote logueas como superusuario y escribes lo siguiente:
apt-get install hoz
Los comandos son sencillos:
hoz –help (muestra todos los comandos disponibles)
hoz -c tamaño[K|M] [-o ruta_grabacion] archivo (corta al tamaño que quieras K o M significa Kbytes o Megabytes, -o ruta_grabacion significa que puedes especificar donde dejar las parte cortadas)
hoz -p [-o ruta_grabacion] archivo (Pega el archivo en la ruta que quieras, obviamente el archivo será el primer trozo generalmente con la extensión *.0)
Obviamente todos los trozos deben estar en un mismo directorio y no debe faltar ninguno ya que habrian errores, y si no especificas el comando “-o ruta” los archivos pegados se dejan en el mismo directorio, o los archivos cortados se ponen en el mismo directorio.
Quizas sea obvio pero lo diré de todos modos, los paramentros entre corchetes no necesariamente se deben poner todos, y la K o la M separadas por una | significa que pones o K o M pero no ambas.
Este lenguaje es en general para cualquier aplicacion en Gnu/Linux.
Fuente http://peruanismo.net46.net/blog/?p=20
jueves, 28 de mayo de 2009
Google Android corriendo en la Dell Mini 10v
Además de mostrar su Dell Mini 10v corriendo la versión especial de Ubuntu con la que se vende opcionalmente, el "estratega tecnológico" de Dell Doug Anson presenta la netbook funcionando también con la edición Ubuntu Netbook Remix como es producida por Canonical Ltd. "funcionando complementamente después de su instalación".
Lo más llamativo es, sin embargo, ver a la Dell Mini 10v ejecutando también al sistema operativo Android de Google "bastante bien".
¿Quizás Dell está considerando a Android como una plataforma viable para sus netbooks como ya lo están comenzando a hacer otros fabricantes? Pero antes de despejar esa conjetura, el presentador aclara que Dell no tiene ningún plan de soportar Android en sus productos, y que sólo querían demostrar puede ser portado y que pueden ejecutarlo aceptablemente.
* Artículo completo en Gizmodo via BR-Linux.
http://www.vivahardware.com.ar/notebooks/dell-mini-10v-con-android
lunes, 18 de mayo de 2009
Solucionar problemas en caracteres especiales NTFS 3g
Para solucionarlo puse la línes en fstab
/dev/XXXX /mnt/Documentos ntfs-3g silent,umask=0,locale=es_CR 0 0
miércoles, 15 de abril de 2009
Tip para cargar OO más rápido
openoffice.org3 -nodefault -nologo
Y hace que se carge más rápido OO
lunes, 6 de abril de 2009
WARNING: All config files need .conf
Mon Apr 6 22:41:55 2009: WARNING: All config files need .conf: /etc/modprobe.d/pnp-hotplug, it will be ignored in a future release.
Mon Apr 6 22:41:55 2009: WARNING: All config files need .conf: /etc/modprobe.d/sound, it will be ignored in a future release.
Mon Apr 6 22:41:55 2009: WARNING: All config files need .conf: /etc/modprobe.d/blacklist, it will be ignored in a future release.
Corregirlo es bastante simple, solamente agrege la extension .conf a cada archivo, dentro del directorio /etc/modprobe.d
Haciendo por ejemplo ( como root naturalmente)
mv blacklist blacklist.conf
Por si las moscas, guarde una copia de seguridad del directorio antes de realizar cualquier modificación
sábado, 4 de abril de 2009
martes, 31 de marzo de 2009
Nuevo Espejo de Debian en la UCR
deb http://espejos.ucr.ac.cr/debian/ lenny main non-free contrib
deb-src http://espejos.ucr.ac.cr/debian/ lenny main non-free contrib
martes, 24 de marzo de 2009
Tutorial: Cómo instalar Debian desde una memoria USB
Después de haber necesitado usar una memoria USB como soporte de instalación primero en el Asus EEE y más tarde en mi nuevo servidor casero, creo que es un buen momento para preparar este tutorial por si alguna vez necesito recuperar esta información, y por si le puede servir a alguien.
La única dificultad, si es que la hay, es preparar la memoria USB como soporte instalador, así que me voy a centrar en ello porque el segundo paso consta únicamente de hacer que la placa base arranque con un dispositivo USB. Vamos a ello:
- Descarga una imagen ISO del instalador que prefieras http://www.debian.org/devel/debian-installer/ (mientras haya espacio suficiente en la memoria da igual si eliges netinst, tarjeta de visita, completo, etc...). Eso sí, es importante que el archivo acabe en .iso.
- Obtén un archivo boot.img.gz desde el directorio /debian/dists/lenny/main/installer-i386/current/images/hd-media que encontrarás en todos los mirrors de Debian. Cambia lenny por la rama de Debian que uses y también installer-i386 si estás usando una arquitectura diferente.
- Con la memoria USB vacía, ejecuta "zcat boot.img.gz >/dev/sdX" donde X es la letra del dispositivo, probablemente sda o sdb. Recuerda que esta acción borrará todo lo que ya tengas anteriormente. También recuerda usar sólo el nombre del dispositivo sin especificar la partición (por ejemplo, usar /dev/sda y no /dev/sda1).
- Copia directamente a la raíz de la memoria USB el archivo iso que te has bajado en el punto 1. Si necesitas más paquetes adicionales, como por ejemplo los módulos de un driver, los puedes copiar de la misma forma para poder usarlos durante la instalación.
Ahora sólo hay que iniciar el PC con la memoria USB conectada y configurar la BIOS para que arranque primero desde dispositivos USB. Algunas placas base también permiten un menú de arranque, que permiten seleccionar el dispositivo de arranque sin cambiar la configuración.
Apéndice: Si tu PC rehusa arrancar con la memoria USB, prueba a corregir su registro de arranque con el comando "install-mbr /dev/sdX" desde una consola. Nuevamente sustituye la X por la letra de tu dispositivo.
Tomado de http://giingo.org/index.php?post/2008/09/30/Tutorial%3A-Como-instalar-Debian-desde-una-memoria-USB
Fuentes: Documentación de Debian y Wiki de Debian.
viernes, 13 de marzo de 2009
Tips para linux que todos deberiamos Saber
Fuente http://comulinux.blogspot.com/2009/03/tips-para-linux-que-todos-deberiamos.html
#1 Revisar que no es ejecutado por ti
Si deseas saber que otros usuarios están robando el precioso tiempo de tu CPU con sus experimentos científicos, servidores web o cualquier otra cosa, entonces veamos todos los procesos que no están siendo ejecutados por ti:
ps aux | grep -v `whoami`
O quizás algo mas inteligente, porque no mostrar solo la lista de los 10 que mas tiempo consumen:
ps aux --sort=-%cpu | grep -m 11 -v `whoami`
Quizás sea mejor ejecutar esto como root aso se filtrara los procesos vitales que están en segundo plano. Ahora que tienes esta información solo necesitas matar los procesos.
#2 Reemplazar el mismo texto en múltiples archivos
Si tienes un texto que quisieras reemplazarlo en varios archivos, hay muchas formas de hacerlo. Para reemplazar el texto Windows por Linux en todos los archivos (llamados prueba algo) en el directorio actual puedes ejecutar lo siguiente:
perl -i -pe 's/Windows/Linux/;' prueba*
Para reemplazar el texto Windows por Linux en todos los archivos en directorio actual y bajar puedes hacer lo siguiente:
find . -name '*.txt' -print | xargs perl -pi -e's/Windows/Linux/ig' *.txt
O si prefieres esto también funcionaria pero solo con archivos regulares
find -type f -name '*.txt' -print0 | xargs --null perl -pi -e 's/Windows/Linux/'
#3 Reparar un terminal con problemas
Alguna vez ha pasado que accidentalmente usamos cat o less para listar archivos y terminamos viendo en vez de eso un binario. Esto usualmente envuelve una serie de de códigos que malograrían el terminal. Estará emitiendo bips y mostrando caracteres basura al final todo termina siendo jeroglíficos y no sabes que hacer. Bueno obviamente bash sigue trabajando pero no puede leer lo que actualmente esta pasando. Envía al terminal un comando de inicialización:
reset
Y todo estará bien de nuevo.
#4 Creando claves para Mozilla Firefox
Una característica muy util de Konqueror es la habilidad de tipear gg "cebolla" para hacer una búsqueda en Google basada en la palabra cebolla. Lo mismo se puede hacer con Firefox, primero haz clic en Marcadores > Administrar Marcadores y agrega un nuevo Marcador y añade una URL asi:
http://www.google.com/search?q=%s
Ahora selecciona la entrada en editor de marcadores y clic en el botón Propiedades. Ahora ingresa la palabra gg (o cualquiera que escogas) y el proceso esta completo. El %s en la URL sera reemplazado con el texto después de la palabra clave.
#5 Ejecutando varias sesiones X
Si compartes tu PC con Linux con alguien mas y estas cansado de logearte y salir, quizás te alivie saber que no es necesario hacer eso. Asumiendo que tu computadora inicia en modo grafico ( nivel 5) presionando a la misma vez las teclas Control + ALT + F1 aparecerá la ventana para logearse. Ingresa tu usuario y contraseña y ejecuta:
startx -- :1
para obtener el ambiente gráfico. para regresar a tu sesión anterior, presiona Control + ALT + F7, mientras estas regresando presiona Control + ALT + F8.
Puedes repetir el truco: las teclas F1 a F6 identifican seis sesiones de consola, mientras que las teclas F7 a F12 identifican seis sesiones X o gráficas.
Nota: aunque esto pueda funcionar en la mayoría de los casos, distribuciones diferentes pueden implementar esta característica en otras formas.
#6 Navegacion rapida
Hay opcion un poco conocida en KDE para aumentar la velocidad de tu navegador web. Inicia el Centro de Control de KDE y escoge Sistema > KDE > Performance en la barra lateral. Ahora puede precargar instancias para Konqueror. Efectivamente esto significa que esta corriendo en segundo plano, pero escondido hasta que intentes usarlo, cuando lo haces aparece casi instantáneamente.
#7 Haz una copia de seguridad (Backup) de tu sitio web fácilmente
Si deseas hacer una copia de seguridad (backup) de un directorio en una computadora y solo copiar los archivos modificados en vez de todos los archivos cada vez que haces un backup, puedes usar la herramienta rsync para hacerlo. Necesitaras una cuenta en la computadora remota de la cual copiaras los archivos. Este es el comando:
rsync -vare ssh jono@192.168.0.2:/home/jono/archivosimportantes/*
/home/jono/backup/
Aquí se están copiando todos los archivos en /home/jono/archivosimportantes en 192.168.0.2 a /home/jono/backup en la maquina actual.
#8 Mantén tu reloj a la hora
Si te parece que tu reloj no esta a la hora, puedes usar la herramienta especial NTP para asegurarte que siempre este sincronizado con cierta precisión. Necesitas instalar la herramienta NTP que por lo general viene en el paquete NTP y luego puedes sincronizar con el servidor NTP:
ntpdate ntp.blueyonder.co.uk
Hay una lista de servidores disponibles en www.eecis.udel.edu/~mills/ntp/clock1b.html. Si modificas tu proceso de booteo y scripts para incluir el comando puedes estar seguro que siempre estarás a la hora cuando inicies tu computadora.
#9 Encontrando los archivos mas pesados
Un problema común con las computadoras es cuando tienen una gran cantidad de archivos pesados (como vídeos y audios) que no los puedes manejar. Puedes encontrar el archivo mas pesado en el directorio actual con:
ls -lSrh
La "r" hace que el archivo mas pesado sea listado al final y la "h" te da una salida que pueda ser mas entendible. También puedes encontrar el archivo MP3 o MPEG mas pesado:
ls -lSrh *.mp*
También puedes hacer búsqueda por el directorio mas grande:
du -kx | egrep -v "\./.+/" | sort -n
#10 Accesos directos en Nautilus
A pesar de que la mayoría de administradores de archivos esta diseñados para ser usado con el mouse, también es útil usar el teclado algunas veces. Nautilus tiene algunos atajos (shortcuts) para el teclado que pueden ser de mucha utilidad:
- Abrir una ubicacion - CTRL + L
- Abrir el directorio Padre - CTRL + Re.Pag
- Flechas de navegacion en el directorio actual.
#11 Desfragmentar una base de datos en MySQL
Cada vez que cambias la estructura de una BD de MySQL o remueves una gran cantidad de data de esta, los datos pueden llegar a fragmentarse resultando en una perdida de performance, en especial cuando corres queries. Solo recuerda correr el optimizador cada vez que cambias tu base de datos:
mysqlcheck -o 'base de datos'
También te puede ser util desfragmentar tus tablas regularmente si estas usando campos de tipo VARCHAR.
#12 Envio rapido de e-mails
No puedes demorarte 3 segundos en localizar tu cliente de correo electrónico, una forma de enviar rápidamente un e-mail es presionando ALT + F2 lo cual mostrara el Dialogo de Ejecutar y ahí escribes:
mailto:plop@ploppypants.com
Presiona Enter y Kmail se levantara automáticamente, listo para usarlo. No es necesario que completes la dirección de correo. También funciona con direcciones de Internet. Intenta escribiendo una dirección de Internet y aparecerá Konqueror. Esto se ha probado con KDE, pero es probable que también funcione con GNOME.
#13 Paraleliza tu sistema
Si estas ejecutando un sistema multiprocesador (SMP) con un tamaño de RAM considerable, podras ver los beneficios, performando un paralelo (parallel) cuando construyes (build) tu código. Comparado con el modo serial build que es el que viene por defecto, el parallel build es mucho mejor. Para decirle a "make" que toma mas de un hijo (child) al mismo tiempo mientras se construye, usa la opcion -j
make -j4; make -j4 modules
#14 Ahorra energía de la batería
Seguramente te es familiar usar hdparm para ajustar tu disco duro, pero también te puede ayudar a ahorrar energía de tu laptop.
hdparm -y /dev/hdb
hdparm -Y /dev/hdb
hdparm -S 36 /dev/hdb
Lo que hacen estos comando es lo siguiente: hace que el disco cambie a modo Standby, a modo Sleep y finalmente configura en Automático el tiempo muerto de spindown. Este ultimo incluye una variable numérica, el cual su unidad son bloques de 5 segundos ( osea el valor 12 sera un minuto).
#15 Administrador de velocidad del Wireless (Red Inalambrica)
La velocidad en la cual una pieza de un equipo de radiotransmision puede comunicarse con otra depende en cuan disponible esta la señal. Para mantener la comunicación, los radios necesitan transmitir la data en un rango lento. Normalmente las radios intentan trabajar la señal disponible por su cuenta y automáticamente seleccionar la velocidad mas rápida posible.
En algunas áreas no muy despejadas o con señal pobre los datos se pueden perder innecesariamente mientras los radios intentan negociar la velocidad. Si puedes añadir mas antenas o reposicionar tu equipo para conseguir mejor señal. Otro método es forzar a que tu tarjeta sincronice a rango bajo. Cada controlador tiene sus propio método de configurar su velocidad. En Linux puedes configurar la velocidad con iwconfig:
iwconfig eth0 rate 2M
Esto forzara a la radio a siempre sincronizar a 2Mbps, aun si otras velocidades están disponibles. También puedes configurar cierta velocidad como limite y permitir que tu tarjeta escale automáticamente a cualquier velocidad mas baja, pero no ir mas rápido, ejemplo:
iwconfig eth0 rate 5.5M auto
Usando la directiva auto haces que el controlador pueda aumentar su velocidad a 5.5Mbps y correr mas lento si es necesario, pero nunca tratara de sincronizar mas rápido. Para restaurar la tarjeta a escalado automático, solo especifica auto:
iwconfig eth0 rate auto
Las tarjetas pueden por lo general lograr mas a 1Mbps que a 11 Mbps. Hay una diferencia de 12dB entre 1Mbps y 11Mbps.
#16 Liberar puertos abiertos
Generar una lista de puertos de red que están en el estado de escucha (Liste) en servidor Linux es simple usando netstat:
root@casa:~# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5280 0.0.0.0:* LISTEN 698/perl
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 217/httpd
tcp 0 0 10.42.3.2:53 0.0.0.0:* LISTEN 220/named
tcp 0 0 10.42.4.6:53 0.0.0.0:* LISTEN 220/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 220/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 200/sshd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 220/named
udp 0 0 10.42.3.2:53 0.0.0.0:* 220/named
udp 0 0 10.42.4.6:53 0.0.0.0:* 220/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 220/named
udp 0 0 0.0.0.0:67 0.0.0.0:* 222/dhcpd
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 222/dhcpd
Esto te muestra que el PID 698 es un proceso Perl que esta enlazado al puerto 5280. Si no eres root, el sistema no distinguirá que programas están corriendo en cada puerto.
#17 Discos Duros más rápidos
Quizás ya sabes que la herramienta hdparm puede ser usado para probar la velocidad de tu disco duro y también para configurar ciertas cosas. Pero también se puede usar para optimizar y encender algunas características que no se habilitan por defecto. Antes de empezar, ten cuidado que al cambiar las opciones del disco puede causar que la data se vuelva corrupta, por eso has un backup antes de hacer estos cambios.
Para probar la velocidad podemos usar:
hdparm -Tt /dev/hda
Veras algo como esto:/dev/hda:Ahora, si quieres aumentar la velocidad, para encontrar el disco que esta actualmente en usa, solo hay que pasar al hdparm el nombre del dispositivo:
Timing buffer-cache reads: 128 MB in 1.64 seconds =78.05 MB/sec
Timing buffered disk reads: 64 MB in 18.56 seconds = 3.45MB/sec
hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 40395/16/63, sectors = 40718160, start = 0
Esto es justamente la configuración por defecto. La mayoría de las distros optan por estas opciones para que puedan trabajar con la mayoría de dispositivos. Para tener mas velocidad, quizás quieras habilitar el modo dma y ajustar el soporte de I/O. La mayoría de las computadoras modernas soportan el modo 3, el cual es un modo de transferencia a 32-bit, el cual puede ser doblado. Debes probar esto:
hdparm -c3 -d1/dev/hda
Luego ejecuta de nuevo la prueba de velocidad para ver la diferencia. Revisa los modos que tu hardware soporta y revisa el man de hdparm para como configurarlos.
#18 Mas tiempo en tus manos
Para ganar mas tiempo y ser mas efectivo puedes correr un proceso que actualice la barra de titulo del terminal con la carga actual en tiempo real, de modo que sabrás que es lo que estas ejecutando.
Guarda este script como tl en el directorio ~/bin
#!/usr/bin/perl -w
use strict;
$|++;
my $host=`/bin/hostname`;
chomp $host;
while(1) {
open(LOAD,"/proc/loadavg") || die "Couldn't open /proc/loadavg:$!\n";
my @load=split(/ /,);
close(LOAD);
print "$host: $load[0] $load[1] $load[2] at ", scalar(localtime);
print "\007";
sleep 2;
}
Cuando quieras tener tu barra de titulo reemplazada con el nombre, promedio de carga, la hora de sistema, simplemente ejecuta tl& esto hará que se ejecute en segundo plano aun si estas un programa interactivo como Vim.
#19 Tomando un screenshot (pantallazo) sin X
Hay una gran cantidad de programas para capturar la pantalla, pero la mayoría basada en X. El problema radica cuando una aplicación X que se esta ejecutando interfiere con la aplicación que deseas tomar, quizás un juego o un instalador Linux. SI usas ImageMagick, puedes tomar desde una sesión X vía la consola. Simplemente anda a un terminal virtual (CTRL + ALT + F1) e ingresa lo siguiente:
chvt 7; sleep 2; import -display :0.0 -window root sshot1.png; chvt 1;
El comando chvt cambia el terminal virtual y el comando sleep te el tiempo para mostrar la pantalla. El comando import captura toda la pantalla y lo guarda en un archivo antes del chvt final que regresa al terminal virtual. Asegúrate de escribir todo el comando en una linea.
Esto también puede servir en instalaciones Linux, la mayoría deja la consola ejecutándose en segundo plano, solo carga un CD con import y algunas librerías que requiere para ejecutar donde sea el capturador de pantalla.
#20 Acceder a tus programas remotamente
Si quieres estar recostado en tu cama y acceder con tu portátil o laptop con Linux a las aplicaciones de tu PC, lo puedes hacer usando SSH, primero debes habilitar lo siguiente en /etc/ssh/sshd_config:
X11Forwarding yes
Ya puedes ejecutar GIMP en 196.168.0.2 con:
ssh -X 192.168.0.2 gimp
Obviamente debes estar en red
#21 Hacer las paginas man mas útiles
Si buscas alguna ayuda sobre algún comando o asunto en particular, las paginas man son un buen punto de partida. Normalmente se accede a estas paginas con el comando man "nombre comando", pero también puedes buscar la descripción de una pagina man para una palabra en particular. Por ejemplo, buscar en las paginas man que hablen sobre login:
man -k login
Cuando accedes una pagina man, también puedes usar la tecla barra "/" para buscar una palabra en particular en la misma pagina. Simplemente presiona / en tu teclado y escribe lo que deseas buscar.
#22 Conversa con tu doctor
Se dice que Emacs es mas que un editor de texto, y esto es verdad. Por ejemplo, abre el editor Emacs, presiona la tecla Esc seguida de X y luego ingresa a doctor: estarás en una conversación con un psicoterapista imaginario. Y si deseas perder el tiempo de una buena forma:
Esc-X tetris
Esto transformara Emacs en el juego de arcade favorito.
Pero eso no termina aquí. Revisa la lista de paquetes de tu distro para ver que mas esta asociado para Emacs, hay hasta ajedrez, Integración con Perl, IRC, traductor de francés, conversión HTML, ambiente de desarrollo para Java, compilación inteligente. Esto es solo una pista de lo que Emacs realmente puede hacer.
#23 Generación de diagrama sobre relación de paquetes
La parte mas critica de un sistema Debian o Ubuntu es la habilidad de instalar un paquete con todas sus dependencias. Si quieres una representación gráfica de la relación entre esos paquetes, puedes usar el paquete Graphviz:
apt-cache dotty > debian.dot
El comando genera un archivo gráfico el cual puedes verlo con dotty:
dotty debian.dot
#24 Desmontar dispositivos ocupados
Quizás te suene familiar esta situación, estas tratando de desmontar un dispositivo pero te sale el mensaje que esta ocupado. Pero ¿cual es la aplicación que lo tiene en ese estado? bueno un simple comando te lo puede decir:
lsof +D /mnt/windows
Esto devolverá el comando y el PID del comando que actualmente esta accediendo al directorio /mnt/windows, luego solo es cuestión de hacer kill a ese comando.
#25 Conversión de archivos de texto
recode es una pequeña herramienta que te ahorrara esfuerzo cunado usas texto creado en diferentes plataformas. La principal fuente de descontento es el salto de linea. En algunos sistemas, esto esta denotado con un carácter line-feed. En otros es usado un retorno de carro y en la mayoria de sistemas se usan ambos. El resultado final es que si estas intercambiando texto de una plataforma a otra, terminaras con muchos saltos de linea y muchos caracteres extraños.
Sin embargo los parámetros del comando son un poco obscuros, por eso por que no combinas este hack con HACK26 en esta característica y configuras algunos alias:
alias dos2unix='recode dos/CR-LF..l1'
alias unix2win='recode l1..windows-1250'
alias unix2dos='recode l1..dos/CR-LF'
Hay bastante mas opciones para recode, revisa las man para encontrar mas información.
#26 Mostrar los archivos usados en el día
Quizás te haya pasado que has estado trabajando con varios archivos durante el dia, y justo deseas
recuperar un archivo y no recuerdas su nombre y ti directorio esta lleno de archivos. Hay varias formas
de encontrar el archivo y esta es una de ellas:
ls -al --time-style=+%D | grep `date +%D`
El parámetro para el comando ls usado aquí ase que la fecha la muestre en un formato en particular. Luego esa salida es pasada al comando grep. El comando grep, el cual sustituye la fecha actual en la cadena que se va a buscar. Este código se puede modificar fácilmente para buscar otras fechas, hora, tamaño de archivo o lo que sea.
#27 Evitar errores comunes y comandos largos
El comando alias es muy útil para configurar atajos para comandos grandes. Se puede hacer un
nuevo comando llamado lsnew, haciendo lo siguiente:
alias lsnew=" ls -al --time-style=+%D | grep `date +%D` "
Pero hay otros usos para alias. Por ejemplo, errores comunes de tipeos. Cuantas veces sin querer has dejado el espacio cuando has cambiado de directorio principal?
alias cd..="cd .."
Alternativamente, que sucede cuando reescribes algunos comandos que ya existen:
alias ls="ls -al"
Ahorrar algunas presionadas de teclas si deseas la lista completa
Para tener tus alias habilitados en cada sesión, solo añade el comando nuevo creado con alias
al archivo .bashrc que esta en el directorio home de tu usuario.
#28 Cambiar configuraciones secretas de Firefox
Si te gustaría cambiar la forma como Firefox trabaja pero las preferencias no ofrecen ninguna opcion que te ayude, hay un modo especial que puedes habilitar en Firefox para poder cambiar todo. Para acceder escribe lo siguiente en la barra de direcciones:
about:config
Puedes cambiar cada configuración que te interese solo cambiando el campo valor (Value) en la tabla.
Otros modos interesantes son información general (about:), detalles de agregados (about:plugins), créditos (about:credits) y mas detalles (about:mozilla).
#29 Un mural de estrellas
Quizás hayas jugado KStars, pero como podrías crear un mural (backdrop) de una imagen de KStar que se actualice cada vez que inicias?
KStar puede ejecutarse con las opcion --dump, el cual vuelca una imagen desde tu configuración de inicio, pero no carga la interfaz gráfica. Puedes crear un código que ejecute esto y genere una imagen para el escritorio la cual cambiara cada día o según ajustes en el método de que genera la imagen.
Ejecuta KStarts así:
kstars --dump --width 1024 --height 768 --filename = ~/kstarsback.png
Puedes añadir el código creado al directorio ~/.kde/Autostart para que se ejecute al inicio. Busca el archivo con Konqueror, arrástralo a tu escritorio y selección "Usar como fondo de escritorio" para usarlo aleatoriamente en tu mural generado.
#30 Abrir un SVG directamente
Puedes ejecutar Inkscape desde la consola y inmediatamente editar un gráfico desde una URL, solo escribe esto:
inkscape http://www.somehost.com/graphic.svg
Recuerda guardarlo con otro nombre.
#31 Editando sin un editor
Cuando los archivos son muy grandes es difícil de manipularlos con un editor de texto. Si necesitas hacerlo regularmente, hay opciones para hacerlo mas rápido usando algunos comandos, por ejemplo:
Para imprimir las columnas 1 y 3 del archivo al archivo2, se puede usar awk:
awk '{print $1, $3}' archivo1 > archivo2
Para mostrar solo los caracteres desde la columna 8 a la 15 del archivo1, se puede usar cut:
cut -c 8-15 archivo1 > archivo2
Para reemplazar la palabra uno por la palabra dos en el archivo1, se puede usar esto:
sed "s/uno/dos/g" archivo1 > archivo2
#32 Hacer backup solo de los archivos seleccionados
Si quieres usar tar para hacer copias de seguridad (backup) de ciertos directorios, puedes usar entonces la opcion -T. Primero crea un archivo con el archivo que vas a copiar:
cat >> /etc/backup.conf
# /etc/passwd
# /etc/shadow
# /etc/yp.conf
# /etc/sysctl.conf
EOF
Luego ejecuta tar con la opcion -T apuntando al archivo recién creado:
tar -cjf bck-etc-`date +%Y-%m-%d`.tar.bz2 -T /etc/backup.conf
Listo, ya tienes tu backup.
#33 Juntar columnas en archivos
Mientras que dividir columnas en un archivo es sencillo, juntarlas es un poco complicado, aquí un pequeño código que hace el trabajo:
#!/bin/sh
length=`wc -l $1 | awk '{print $1}'`
count=1
[ -f $3 ] && echo "Opcionalmente removido$3" && rm -i $3
while [ "$count" -le "$length" ] ; do
a=`head -$count $1 | tail -1`
b=`head -$count $2 | tail -1`
echo "$a $b" >> $3
count=`expr $count + 1`
done
Guardalo como juntar.sh y dale permiso de ejecución:
chmod u+x juntar.sh
Ahora si quieres juntar las columnas del archivo1 y archivo2 y archivo3 solo debes ejecutarlo:
/ruta/a/juntar.sh archivo1 archivo2 archivo3
Donde ruta/a/ debes ser reemplazado con la ruta donde se encuentra juntar.sh.
#34 Distincion entre mayusculas y minusculas
A pesar de que en algunos sistemas operativos no se distingue entre mayúsculas en minúsculas, sabes que en Linux no es así, en Linux no es igual "COMMAND" que "command". Esto puede dar problemas cuando se pasan archivos entre Windows y Linux. tr es una pequeña utilidad shell que puede ser usado para cambiar un puñado de archivos:
#!/bin/sh
for i in `ls -1`; do
file1=`echo $i | tr [A-Z] [a-z] `
mv $i $archivo1 2>/dev/null
done
Cuando lo ejecutas, ARCHIVO1 y archiVo2 se renombraran como archivo1 y 2.#35 Macros en Emacs
Cuando editas archivos quizás estes realizando tareas repetitivas, para ahorrarte tiempo podrías crear una macro. En Emacs, puedes hacerlo con los siguientes pasos:
- Presiona CTRL + X para empezar a grabar.
- Empieza a realizar la tarea que deseas repetir.
- Nuevamente CTRL + X para dejar de grabar.
Ctrl -u "numero" Ctrl -x e
Donde numero es el numero de veces que deseas que se ejecute la macro. Si ingresas el valor 0, la macro se ejecutara hasta el final del archivo.
#36 Eliminar SPAM de una manera simple
Spam o correo no solicitado, es un problema muy extendido por lo cual casi todo el mundo tiene alguna clase de sistema para protegerse. La mayoría de los ISP (proveedores de Internet) incluyen algún filtro antispam, pero algunas veces no es tan efectivo. Pero una forma mas efectiva de atacar el Spam es a través del cliente de correo.
Por ejemplo, en Kmail puedes crear filtros para mover los correos directamente al basurero. Para usar el mismo encabezado que usa tu ISP para etiquetar el correo basura, dependerá del programa que este usando tu ISP, pero por lo general es algo como X-Spam-Flag = YES para sistemas como SpamAssassin.
Simplemente crea un filtro en Kmail o Evolution o cualquier otro cliente de correo, Escoge la opcion "Concuerde con lo siguiente" y escoge la acción a realizar. Aplica el filtro para los correos entrantes.
#37 Leer documentos de OpenOffice sin OpenOffice
¿Necesitas leer un archivo de Ooo pero no tienes Ooo instalado? Pensaste guardarlo como archivo plano (.txt) pero en vez de eso lo guardaste como Staroffice (.sxw). El archivo se puede rescatar, primero, un archivo sxw es un archivo zip, asi que lo que hay que hacer es descomprimirlo
unzip miarchivo.sxw
El archivo que deseas recuperar se llama 'content.xml'. Desafortunadamente, esta lleno de etiquetas XML que no son muy legibles, entonces filtralo con Perl:
cat content.xml | perl -p -e "s/<[^>]*>/ /g;s/\n/ /g;s/ +/ /;"
En este proceso perderás el formato, pero al menos podrás leerlo.
#38 Buscar y Ejecutar
El comando find no solo es útil para buscar archivos, sino también para procesar los que se han encontrado, Por ejemplo:
Supón que tienes muchos tarballs y deseas buscar todos:
find . -name '*.gz'
Con esto localizaras los archivos gzip en el directorio actual. Pero supón que quieres revisar si son archivos validos. La opcion -vt del comando gunzip hara esto por ti, pero se pueden combinar fácilmente usando xargs:
find . -name '*.gz' | xargs gunzip -vt
#39 Usar el servidor whois correcto
El comando whois es muy útil para rastrear Internet. Pero por desgracia muchos de los servidores que se usan para este comando. Sin embargo, hay algunos proxys whois pueden buscar en el servidor correcto. Algunos están disponibles en http://whois.geektools.com.
whois -h whois.geektools.com plop.info
#40 Como saber donde esta montado el disco (drive)
Un problema común para la gente que tiene muchos dispositivos extraibles montado en Linux, como Memorias USB, discos USB, etc) es que no se sabe donde están montados.
Prácticamente todos los dispositivos que llaman a un disco (driver), como las memorias USB, botan información útil en los logs. Intenta esto:
dmesg | grep SCSI
Esto filtrara los dispositivos reconocidos desde la salida de dmesg. Quizás aparezca un texto como este:
SCSI device sda: 125952 512-byte hdwr sectors (64 MB)
Esto quiere decir que tu dispositivo esta montado en sda
jueves, 26 de febrero de 2009
Toda la documentación de su Sistema Linux en un navegador WEB
HTTP local. Cuando sea posible, dwww convierte la documentación a HTML.
Necesita instalar un servidor de HTTP que pueda usar CGI y un navegador web
para leer la documentación.
apt-get install dwww y Listo
Luego ingresa a 127.0.0.1/dwww y tiene toda la documentación
viernes, 20 de febrero de 2009
Monitorear la temperatura con lm-sensors
# apt-get install lm-sensors
Una vez tengamos el paquete instalado debemos averiguar los módulos necesarios para nuestros componentes, esto lo podemos hacer fácilmente gracias a una herramienta que incorpora lm-sensors: ’sensors-detect’.
Para ello nuevamente en la terminal digitamos el siguiente comando:
# sensors-detect
Ahora cargamos los módulos digitando en la terminal:
# modprobe nombre_módulo
Luego con sensors vemos la salida, o bien instalar el applet de gnome
viernes, 23 de enero de 2009
Como recuperar contraseña de admin en joomla
Primero necesitamos acceso a la base de datos ya sea por consola o por herramientas graficas como phpmyadmin.
Explicare como hacerlo en consola
mysql -u usuario -pCONTRASEÑA
use BDJOOMLLA
update jos_users set password = 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199' where id = IDADMIN;
Con eso la contraseña de admin será la palabra 'secret' sin las comillas.
Con eso ya pueden entrar a su sitio www.nombredelsitio/administrator/ y acceder.
Es recomendable cambiar la contraseña
jueves, 22 de enero de 2009
Reparar reproductor Sansa E250
El cual quedo solo encendiendo la luz azul circular y lógicamente sin encender.
Para repararlo necesitamos dos cosas
1- Una distribucion Gnu Linux o sea Debian (existe alguna otra?)
2-La herramienta http://daniel.haxx.se/sansa/e200tool.html
El proceso para la reparación es el siguiente
Necesitamos 3 Archivos
Los cuales se obitiene de aqui
http://www.box.net/shared/4smvei56oo
Ahora ponemos en modo Recovery el reproducto
-Se pone el boton de LOCK (que se vea lo naranja)
-Presionado la tecla menu, se enciende.
Luego hacemos ejecutable la herramienta e200tool
Que descargamos de aqui http://daniel.haxx.se/sansa/e200tool/e200tool
chmod +x e200tool
Descargamos el booloader del firmware
http://chrisjs.com/PP5022.mi4
Descargamos el bootloader
http://chrisjs.com/BL_SD_BOARDSUPPORTSD.rom
Ahora como root hacemos
./e200tool recover BL_SD_BOARDSUPPORTSD.rom
Se tiene que ver algo como esto
e200tool v0.2.3-alpha (c) by MrH 2006, 2007
Searching for device 0781:0720 ... found!
Initializing USB stub (4780 bytes) ... done!
Writing 'BL_SD_boardSupportSD.rom' to address 0x10600000
Searching for device 6666:e200 ... 9 found!
Write at 0x1065feb8
Write done!
Running from address 0x10600000
Searching for device 6666:e200 ... found!
Execution started!"
Si le da este error
Control message (-71, Protocol error)
Apague el reproductor e intente la reparación.
Luego de esto ya puede montar el reproductor para copiarle los archivos
cp PP5022.mi4 /media/disk
cp BL_SD_boardSupportSD.rom /media/disk
Lo desmonta y luego lo encende y LISTO el reproductor como nuevo
Kernel 2.6.28 con Ext4
Linus Torvalds trajo un regalo de navidad: el Kernel 2.6.28 con su propia cantidad de sorpresas, algunas muy anticipadas como la incorporación del nuevo sistema de archivos Ext4 (que por fin ya no se considera "experimental") y el nuevo administrador de memoria GEM para chipsets gráficos (GPUs).
Ext4 es la evolución del sistema de archivos que usamos la mayoría, y una mejora mucho más grande que la que sucedió cuando pasamos de Ext2 a Ext3. Ext3 trajo principalmente las transacciones (journaling) a Ext2. Ext4, por otro lado, modifica estructuras de datos importantes, como la destinada a almacenar los datos del archivo. El resultado final es un diseño mejorado, mejor performance, confiabilidad y características.
Ext3 soportaba un tamaño máximo de sistema de archivos de 16 TB (Terabyte) con un tamaño máximo por archivo de 2 TB. Ext4 eleva esos límites a unos increíbles 1 EB (Exabyte) para todo el sistema y 16 TB para los archivos. También, la cantidad de subdirectorios dentro de cada uno es ahora ilimitada (antes era de 32.000 con Ext3).
Otra buena noticia es que una partición en Ext3 puede migrarse a Ext4 muy fácilmente y sin pérdida de datos.
Todas las demás novedades se resumen muy bien en el sitio de KernelNewbies.
50 Extremely Useful PHP Tools
Fuente http://www.smashingmagazine.com/2009/01/20/50-extremely-useful-php-tools/
PHP is one of the most widely used open-source server-side scripting languages that exist today. With over 20 million indexed domains using PHP, including major websites like Facebook, Digg and WordPress, there are good reasons why many Web developers prefer it to other server-side scripting languages, such as Python and Ruby.
PHP is faster (updated), and it is the most used scripting language in practice; it has detailed documentation, a huge community, numerous ready-to-use scripts and well-supported frameworks; and most importantly, it’s much easier to get started with PHP than with other scripting languages (Python, for example). That’s why it makes perfect sense to provide the huge community of PHP developers with an overview of useful tools and resources that can make their development process easier and more effective.
This post presents 50 useful PHP tools that can significantly improve your programming workflow. Among other things, you’ll find a plethora of libraries and classes that aid in debugging, testing, profiling and code-authoring in PHP.
You may also want to take a look at the following related posts:
Debugging Tools
- Webgrind
Webgrind is an Xdebug profiling Web front end in PHP 5. It implements a subset of the features of kcachegrind, installs in seconds and works on all platforms. For quick ‘n’ dirty optimizations, it does the job. - Xdebug
Xdebug is one of the most popular debugging PHP extensions. It provides a ton of useful data to help you quickly find bugs in your source code. Xdebug plugs right into many of the most popular PHP applications, such as PHPEclipse and phpDesigner. - Gubed PHP Debugger
As the name implies, Gubed PHP Debugger is a PHP debugging tool for hunting down logic errors. - DBG
DBG is a robust and popular PHP debugger for use in local and remote PHP debugging. It plugs into numerous PHP IDE’s and can easily be used with the command line. - PHP_Debug
PHP_Debug is an open-source project that gives you useful information about your PHP code that can be used for debugging. It can output processing times of your PHP and SQL, check the performance of particular code blocks and get variable dumps in graphical form, which is great if you need a more visual output than the one given to you by print_r() or var_dump(). - PHP_Dyn
PHP_Dyn is another excellent PHP debugging tool that’s open-source. You can trace execution and get an output of the argument and return values of your functions. - MacGDBp
MacGDBp is a live PHP debugger application for the Mac OS. It has all the features you’d expect from a fully featured debugger, such as the ability to step through your code and set breakpoints.
Testing and Optimization Tools
- PHPUnit
PHPUnit is a complete port of the popular JUnit unit testing suite to PHP 5. It’s a tool that helps you test your Web application’s stability and scalability. Writing test cases within the PHPUnit framework is easy; here’s how to do it. - SimpleTest
SimpleTest is a straightforward unit-testing platform for PHP applications. To get up and running with SimpleTest quickly, read through this pragmatic tutorial that shows you how to create a new test case. - Selenium
Selenium Remote Control (RC) is a test tool that allows you to write automated Web application UI tests in any programming language against any HTTP website using any mainstream JavaScript-enabled browser. It can be used in conjunction with PHPUnit to create and run automated tests within a Web browser. - PHP_CodeSniffer
PHP_CodeSniffer is a PHP 5 script for detecting conformance to a predefined PHP coding standard. It’s a helpful tool for maintaining uniform coding styles for large projects and teams. - dBug
dBug is ColdFusion’s cfDump for PHP. It’s a simple tool for outputting data tables that contain information about arrays, classes and objects, database resources and XML resources, making it very useful for debugging purposes. - PHP Profile Class
PHP Profile Class is an excellent PHP profiling tool for your Web applications. Using this class will help you quickly and easily gain insight into which parts of your app could use some refactoring and optimization.
Documentation Tools
- phpDocumentor
phpDocumentor (also known as phpdoc and phpdocu) is a documentation tool for your PHP source code. It has an innumerable amount of features, including the ability to output in HTML, PDF, CHM and XML DocBook formats, and has both a Web-based and command-line interface as well as source-code highlighting. To learn more about phpDocumentor, check out the online manual. - PHP DOX
An AJAX-powered PHP documentation search engine that enables you to search titles from all PHP documentation pages.
Security Tools
- Securimage
Securimage is a free, open-source PHP CAPTCHA script for generating complex images and CAPTCHA codes to protect forms from spam and abuse. - Scavenger
Scavenger is an open-source, real-time vulnerability management tool. It helps system administrators respond to vulnerability findings, track vulnerability findings and review accepted and false-positive answered vulnerabilities, without “nagging” them with old vulnerabilities. - PHP-IDS
PHP-IDS (PHP-Intrusion Detection System) is a simple-to-use, well-structured, fast and state-of-the-art security layer for your PHP-based Web application. - Pixy: PHP Security Scanner
Pixy is a Java program that performs automatic scans of PHP 4 source code, aimed to detect XSS and SQL injection vulnerabilities. Pixy takes a PHP program as input and creates a report that lists possible vulnerable points in the program, along with additional information for understanding the vulnerability.
Image Manipulation and Graphs
- PHP/SWF Charts
PHP/SWF Charts is a powerful PHP tool that enables you to create attractive Web charts and graphs from dynamic data. You can use PHP scripts to generate and gather data from databases, then pass it to this tool to generate Flash (SWF) charts and graphs. - pChart - a chart-drawing PHP library
pChart is a PHP class-oriented framework designed to create aliased charts. Most of today’s chart libraries have a cost; this one is free. Data can be retrieved from SQL queries or CSV files or can be manually provided. - WideImage
WideImage is a PHP library for dynamic image manipulation and processing for PHP 5. To be able to use the library, you should have the GD PHP extension installed on your Web server. - MagickWand For PHP
MagickWand For PHP is a PHP module suite for working with the ImageMagick API, which lets you create, compose and edit bitmap images. It’s a useful tool for quickly incorporating image-editing features in your PHP applications.
PHP Code Beautifier
- PHP_Beautifier
PHP Beautifier is a PEAR package for automatically formatting and “beautifying” PHP 4 and PHP 5 source code. - PHPCodeBeautifier
PHPCodeBeautifier is a tool that saves you from hours of reformatting code to suit your own way of presenting it. A GUI version allows you to process files visually; a command-line version can be batched or integrated with other tools (like CVS, SubVersion, IDE, etc.); and there is also an integrated tool of PHPEdit. - GeSHi - Generic Syntax Highlighter
GeSHi is designed to be a simple but powerful highlighting class, with the goal of supporting a wide range of popular languages. Developers can easily add new languages for highlighting and define easily customizable output formats.
Version-Control Systems
- Phing
Phing is a popular project version-control system for PHP. It is a useful tool for organizing and maintaining different builds of your project. - xinc
xinc is a continuous integration server version-control system written in PHP 5 (i.e. continuous builds instead of nightly builds). It works great with other systems such as Subversion and Phing.
Useful Extensions, Utilities and Classes
- SimplePie
SimplePie is a PHP class that helps you work with RSS feeds. Check out the online RSS and Atom feed reader, which demonstrates a simple Web application that uses SimplePie. - HTML Purifier
HTML Purifier is a standards-compliant HTML filter library written in PHP. HTML Purifier not only removes all malicious code (better known as XSS) with a thoroughly audited, secure yet permissive white list, it also makes sure your documents are standards-compliant. Open source and highly customizable. - TCPDF
TCPDF is an open-source PHP class for generating PDF documents. - htmlSQL
htmlSQL is a unique tool. It is a PHP class for querying HTML values in an SQL-like syntax. Check out the live demonstration of how htmlSQL works. - The Greatest PHP Snippet File Ever (Using Quicktext for Notepad++)
“A little something for all coders: a snippets file that I use for PHP coding. This is designed to be used with Quicktext for Notepad++, but feel free to adapt it to whatever text editor you prefer.” - Creole
Creole is a database abstraction layer for PHP5. It abstracts PHP’s native database-specific API to create more portable code while also providing developers with a clean, fully object-oriented interface based loosely on the API for Java’s JDBC. - PHPLinq
LINQ is a component that adds native data querying capabilities to PHP using a syntax reminiscent of SQL. It defines a set of query operators that can be used to query, project and filter data in arrays, enumerable classes, XML, relational databases and third-party data sources. [via] - PHPMathPublisher
With PhpMathPublisher, you can publish mathematical documents on the Web using only a PHP script (no LaTeX programs on the server and no MathML). - phpMyAdmin
If you’re working with PHP, there’s a big chance you’re set up in a LAMP configuration. phpMyAdmin is Web-based tool for managing, building, importing, exporting and exploring MySQL databases. - PHPExcel
PHPExcel is a set of useful PHP classes for working with Microsoft Excel files. PHPExcel allows you to read Excel files and write to them. This is useful for dynamically generating Excel spreadsheets for downloading. - Phormer
Phormer is a PHP-based photo gallery management application that helps you to store, categorize and trim your photos online. - xajax PHP Class Library
xajax is a PHP class for easily working with PHP AJAX applications. It gives you an easy-to-use API for quickly managing AJAX-related tasks. Check out the xajax Multiplier demo and the Graffiti Wall demo to see the xajax PHP class in action. - PHP User Class
PHP User Class is an excellent script that helps you create a system for user authentication (i.e. registration, log in, account profile, etc.). It’s a useful utility to have around if you require user registration for your Web applications. - PHP-GTK
PHP-GTK is a PHP extension for the GTK+ toolkit (a robust toolkit for developing GUIs). It is a suite of useful OOP functions and classes to help you rapidly build cross-platform, client-side GUI’s for your application.
PHP Online Tools and Resources
- Minify!
Minify is a PHP 5 app that can combine multiple CSS or JavaScript files, compress their content (i.e. remove unnecessary white space and comments) and serve the results with HTTP encoding (via Gzip/deflate) and headers that allow optimal client-side caching. This will help you follow several of Yahoo!’s Rules for High Performance Websites. - HTTP_StaticMerger: Automatic “merging” of CSS and JavaScript files
This library automatically merges sets of static files (CSS or JavaScript) and speeds up page loading (by lowering the number of HTTP queries). It is recommended to use this together with caching reverse-proxy to minimize the response time. - PHP Object Generator
PHP Object Generator is an open-source Web-based tool that helps you quickly construct PHP objects and leverage object-oriented programming (OOP) principles in your code. - gotAPI/PHP
gotAPI is a useful online tool for quickly looking up PHP functions and classes. Also check out the Quick PHP look-up widget example in case you’d like to include this awesome look-up feature on your website. - koders
koders is a search engine for open-source and downloadable code. It currently has over a billion lines of code indexed and isn’t limited to just PHP. - PECL
PECL is a directory of all known PHP extensions and a hosting facility for downloading and developing PHP extensions.
In-Browser Tools (Firefox Add-Ons)
- FirePHP
FirePHP is a Firefox extension that allows you to log data in Firebug. It has a variety of useful logging features, such as the ability to change your error and exception handling on the fly and to log errors directly to the Firebug console. To learn more about what FirePHP can do, check out the FirePHP guide on how to use FirePHP. For developers using the Zend PHP framework, you might find this guide on using FirePHP with Zend useful. - phpLangEditor
phpLangEditor is a very handy Firefox add-on for translating language files and variables in your script. - PHP Lookup
PHP Lookup is a built-in search bar to help you quickly look up references to PHP syntax. - PHP Manual Search
PHP Manual Search is a handy search bar that searches official PHP documentation from within your Web browser.
Frameworks for PHP
- Dwoo
Dwoo is a PHP 5 template engine positioned as an alternative to Smarty. It is (nearly) fully compatible with its templates and plug-ins, but it is being written from scratch and is aimed to go one step further with a cleaner code base. - CodeIgniter
CodeIgniter is a powerful, high-performance, open-source PHP framework that helps you author PHP applications rapidly. CodeIgniter is known for having a light footprint, thereby reducing your server’s work. You can get up and running with CodeIgniter in a jiffy: it has an awesome online manual, a couple of helpful video tutorials and an active user forum. - YII Framework
Here is a high-performance component-based PHP framework that is supposed to be more efficient than CodeIgniter, CakePHP, ZF and Symfony. An optimal solution for developing large-scale Web applications. Yii supports MVC, DAO/ActiveRecord, I18N/L10N, caching, jQuery-based AJAX support, authentication and role-based access control, scaffolding, input validation, widgets, events, theming and Web services. - NetBeans
A dedicated PHP coding environment and complete integration with web standards. The NetBeans PHP editor is dynamically integrated with NetBeans HTML, JavaScript and CSS editing features such as syntax highlighting and the JavaScript debugger. NetBeans IDE 6.5 fully supports iterative development, so testing PHP projects follows the classic patterns familiar to web developers. - Solar
Solar is a PHP 5 development framework for Web applications derived from the Savant templating engine. Solar uses the MVC architectural pattern and has a host of classes and functions for securing your Web app against SQL injection, cross-website scripting (XSS) and other common exploits. - symfony
symfony is an open-source PHP 5 Web application framework that is well known for its modularity and useful library of classes. To get up and running as fast as possible, you should check out the pragmatic symfony online tutorial called “The symfony 1.2 advent calendar tutorial,” which takes you through a step-by-step example of building your own symfony-based Web application. - PEAR - PHP Extension and Application Repository
PEAR is a popular framework and distribution system for reusable PHP components. The purpose of the framework is to provide a structured library of open-source code for PHP users, a system for code distribution and package maintenance and a standard style for PHP code. - Propel
Propel is an Object-Relational Mapping (ORM) framework for PHP 5. It allows you to access your database using a set of objects, providing a simple API for storing and retrieving data. - {{macro}} template engine
{{macro}} compiles initial templates into executable PHP scripts with very clean syntax (much cleaner than WACT and Smarty) and executes them very fast. The engine doesn’t use an XML-like syntax; there are only two data scopes, global and local, and no more data sources (all data is displayed with regular PHP variables); and the system supports all WACT features such as templates wrapping and including. - Zend Framework
The Zend Framework by Zend Technologies (the creators of PHP’s scripting engine) is a popular PHP Web application framework that embraces the principles of PHP OOP; it’s very extensible and has built-in utilities for working with free Web service APIs, such as those of Google, Flickr and Amazon. - Qcodo
Qcodo is an excellent open-source PHP Web application framework. It’s subdivided into two parts: (1) Code Generator, and (2) Qforms. Code Generator handles the creation of object code and PHP and HTML front-end code from your data model. Qforms is an intuitive system for handling and creating complex PHP-driven HTML Web forms. Check out demos of applications that use Qcodo and presentational material that covers Qcodo. - SAJAX
SAJAX is a JavaScript and AJAX application framework that works well with PHP (as well as several other server-side scripting languages). See SAJAX at work by going to Wall live demonstration. - Smarty
Smarty is a popular PHP templating system to help you separate PHP logic and front-end code (HTML, CSS, JavaScript). It will keep your projects modular and easier to maintain. - CakePHP
CakePHP is one of the leading PHP frameworks for creating robust, fully-featured Web applications. CakePHP has an extensive and well-organized online manual. If you want to learn via video tutorials, check out the CakePHP screencasts. - Savant2
Savant2 is another popular object-oriented PHP templating system. Instead of a special syntax unique to Savant2, you use PHP syntax to develop your project’s template. - PHPSpec
PHPSpec is a simple and intuitive PHP framework. It follows the Behavior-Driven Development principle and therefore allows you to write behavior-oriented code, oftentimes in plain English.
PHP IDEs and Editors
- PHPEclipse
PHPEclipse is a popular PHP source-code editor that is open source and runs on all the major operating systems, such as Windows, Linux and Mac OS. It has all the features you’d expect from a PHP source-code editor, such as code-folding, syntax highlighting, hover-over tool tips and support for XDebug and DBG. - PhpED
PhpED is an excellent IDE for Windows users. It is one of the most robust and feature-packed IDEs currently out on the market and has useful features such as a built-in source-code profiler to find bottlenecks in your PHP source code and excellent integration with third-party apps and services just as front-end code validation. - phpDesigner
phpDesigner is a lightweight PHP editor/IDE that also handles front-end code and markup remarkably well. Check out the phpDesigner online tutorials, as well as screencasts on phpDesigner to help you learn more about the IDE. - Zend Studio
Zend Studio is an excellent PHP IDE for Eclipse. It’ll help you develop, deploy and manage Rich Internet Applications (RIAs) in an intuitive interface. - Aptana PHP
Aptana PHP is an open-source IDE extension/plug-in to be used in conjunction with Aptana Studio. To learn more, be sure to check out the online documentation about Aptana PHP. - PDT
PDT is a PHP Development Tools framework that’s part of the Eclipse project. PDT includes all the necessary tools for you to create PHP-based Web applications. - VS.Php
VS.Php is a PHP IDE for MS Visual Studio, making it a great IDE for recently converted ASP developers who have used MS VS to develop Web applications. To get you up and running ASAP with VS.Php, check out Jcx.Software’s online tutorials as well as its online documentation. - PHPEdit
PHPEdit is an excellent PHP editor/IDE with a ton of useful features and a very intuitive user interface. To learn more about why PHPEdit is a good IDE, read the 10 reasons to use PHPEdit and view the introductory screencast about PHPEdit.
Sources and Resources
- PHP Function Reference
PHP Function Reference (PHPfr) is a Mac OS X dashboard widget that provides a fast look-up of information about the PHP Web programming language. - 30 Useful PHP Classes and Components
30 useful PHP classes and components that you can use to test, develop, debug and deploy your PHP applications. - PHP advent 2008
In December, phpadvent.org collected the wisdom of people in the PHP community who kindly donated their ideas and tips to see us through the new year. - Useful in-browser development tools for PHP
- PHPClasses.org
A huge repository of various PHP classes. - PHP Developer’s Toolbox
Various PHP-related resources in a brief overview.