Noticias interesantes sobre Linux, sistema operativo que cada vez está ganando más adeptos.
viernes 30 de abril de 2010
Actualizar Ubuntu 9.10 a Ubuntu 10.04
Puedes acceder aquí para ver la guía.
| Reacciones: |
miércoles 28 de abril de 2010
Linux Sobre Discos con Sectores de 4KB
http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/index.html?ca=drs-
| Reacciones: |
martes 27 de abril de 2010
Evitar Imagenes SPAM con FuzzyOCR
http://www.howtoforge.com/fight-image-spam-with-fuzzyocr-and-spamassassin-on-debian-lenny
| Reacciones: |
Evitar Imagenes SPAM con FuzzyOCR
http://www.howtoforge.com/fight-image-spam-with-fuzzyocr-and-spamassassin-on-debian-lenny
| Reacciones: |
Ya se Pueden Hacer Pedidos de Ubuntu 10.04
Hay que recordar que esta versión es LTS es decir que tendrá soporte extendido por 3 años para la versión de Escritorio y 5 años para la versión de Servidor.
| Reacciones: |
Las Nuevas Versiones de Ubuntu no Usaran la Bandeja de Sistema
El equipo de desarrolladores de la distribución de Linux Ubuntu ha decidido realizar un cambio profundo para sus próximas versiones: Van a eliminar la bandeja del sistema. Según uno de los contribuidores del sistema dicha bandeja se ha vuelto inefectiva a la hora de notificar de ciertos datos al usuario entre otras cosas.
Lógicamente tiene que haber un sustituto, y ese será un conjunto de menús que combinarán las notificaciones de ciertos programas con algunos datos del sistema siguiendo un patrón con el que todo podrá estar integrado en forma de menú, de tal forma que dentro de un año, en la versión 11.04 de Ubuntu, ya no exista ninguna área de notificaciones.
Leer más.
| Reacciones: |
viernes 23 de abril de 2010
Descomprimir Archivos 7z en Ubuntu o Fedora
# whereis 7za
7za: /usr/bin/7za /usr/share/man/man1/7za.1.gz
Si no lo tienes, lo puedes instalar de la siguiente manera:
Para Ubuntu o Debian
$ sudo apt-get install p7zip
Para Fedora
# yum install p7zip
Descomprimir un archivo *.7z en Linux usando 7za
$ 7za e miarchivo.7z
7-Zip (A) 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=C,Utf16=off,HugeFiles=on,1 CPU)
Processing archive: ../../miarchivo.7z
Extracting miarchivo/test1
Extracting miarchivo/test2
Extracting miarchivo/test
Extracting miarchivo
Everything is Ok
Folders: 1
Files: 3
Size: 7880
Compressed: 404
- 7za – nombre del comando.
- e – opción para extraer los archivos.
- miarchivo.7z – es el archivo que se va a descomprimir.
Crear un archivo 7zip comprimido en Linux
$ 7za a misarchivos.7z misarchivos/
7-Zip (A) 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=C,Utf16=off,HugeFiles=on,1 CPU)
Scanning
Creating archive myfiles.7z
Compressing misarchivos/test1
Compressing misarchivos/test2
Everything is Ok
Los archivos y sub-directorios de /misarchivos se agregara a misarchivos.7z
- a – agrega archivos.
| Reacciones: |
Manejando el Mensaje Bash "Comando no encontrado"
Por ejemplo, si tipeas el comando ifconfig sin permisos de root te mostrara el siguiente mensaje:
$ ifconfig
Absolute path to 'ifconfig' is '/sbin/ifconfig',
so running it may require superuser privileges (eg. root).
Este mensaje esta diciendo que la ruta de ifconfig es '/sbin/ifconfig', y que por lo tanto necesitas permisos de administrador para ejecutarlo.
Lo cual de hecho es más util que el mensaje "Comando no encontrado" (Command not found).
Esto es una nueva función que se llama command_not_found_handle. Si se hace un grep en /etc se puede ver que es lo que sucede. La función se encuentra en /etc/bash_command_not_found y también viene incluida en la sesión bash vía /etc/bash.bashrc.
La función en si misma no es muy compleja, pero hay un par de cosas que seria interesante observar. El siguiente código determina si el shell invocado fue ejecutado desde el Midnight Commander o esta tomando entrada desde un pipe:
# do not run when inside Midnight Commander or within a Pipe
if test -n "$MC_SID" -o ! -t 1 ; then
echo $"$1: command not found"
return 127
fi
Y lo siguiente determina si el shell es invocado esta en un sub-shell:
# do not run when within a subshell
read pid cmd state ppid pgrp session tty_nr tpgid rest < /proc/self/stat
if test $$ -eq $tpgid ; then
echo "$1: command not found"
return 127
fi
Al final de la función hay una sentencia que usa /usr/bin/command-not-found (escrito en Python) para buscar comandos en paquetes instalables (via zypper) pero para eso necesitas configurar una variable de entorno (COMMAND_NOT_FOUND_AUTO) para activarla, y por supuesto tener Python instalado. Para probarlo has lo siguiente:
$ export COMMAND_NOT_FOUND_AUTO=1
$ pascal
pascal: command not found
$ gcj
The program 'gcj' can be found in the following package:
* gcc-java [ path: /usr/bin/gcj, repository: zypp (repo-oss) ]
Try installing with:
sudo zypper install gcc-java
Debido a que la funcionalidad command-not-found es manejada por una función bash, puedes reemplazar la función instalada en el sistema con una que tu hayas creado o modificado. Todo lo que necesitas hacer es incluirla en el archivo .bashrc.
Leído en LinuxJournal.
| Reacciones: |
jueves 22 de abril de 2010
Logran Correr Android en un iPhone
A continuación dejo un vídeo de la hazaña.
| Reacciones: |
martes 20 de abril de 2010
Como Ver los Archivos de un Paquete RPM o Deb
Listando los archivos de un paquete RPM usando rpm -qlp
El siguiente ejemplo muestra como ver los archivos de un paquete del administrador de paquetes Red Hat (RPM por sus siglas en Ingles), sin necesidad de extraerlos o instalar el paquete.
$ rpm -qlp ovpc-2.1.10.rpm
/usr/src/ovpc/-5.10.0
/usr/src/ovpc/ovpc-2.1.10/examples
/usr/src/ovpc/ovpc-2.1.10/examples/bin
/usr/src/ovpc/ovpc-2.1.10/examples/lib
/usr/src/ovpc/ovpc-2.1.10/examples/test
.
.
.
/usr/src/ovpc/ovpc-2.1.10/pcs
Explicación del comando rpm -qlp ovpc-2.1.10.rpm
- rpm - comando
- q - consulta el archivo rpm
- l - lista los archivos en el paquete
- p - especifica el nombre del paquete
Extraer los archivos de un RPM usando rpm2cpio y cpio
RPM es una clase de archivo cpio. Primero, convierte el rpm a cpio usando el comando rpm2cpio, luego usa el comando cpio para extraer los archivos, así como se muestra abajo:
$ rpm2cpio ovpc-2.1.10.rpm | cpio -idmv
./usr/src/ovpc/-5.10.0
./usr/src/ovpc/ovpc-2.1.10/examples
./usr/src/ovpc/ovpc-2.1.10/examples/bin
./usr/src/ovpc/ovpc-2.1.10/examples/lib
./usr/src/ovpc/ovpc-2.1.10/examples/test
.
.
.
./usr/src/ovpc/ovpc-2.1.10/pcs
$ ls .
usr
2. Paquetes deb en Debian
deb es la extensión del paquete de software de Debian, también es usado en otras distribuciones que están basadas en Debian (por ejemplo, Ubuntu usa *.deb)
Listando los archivos de un paquete .deb usando dpkg -c
dpkg es el administrador de paquetes de Debian. Usando el comando dpkg puedes listar y extraer el paquete.
Para ver el contenido de un archivo *.deb:
$ dpkg -c ovpc_1.06.94-3_i386.deb
dr-xr-xr-x root/root 0 2010-02-25 10:54 ./
dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/
dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/
dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/lib/
dr-xr-xr-x root/root 0 2010-02-25 10:48 ./ovpc/pkg/lib/header/
-r-xr-xr-x root/root 130 2009-10-29 17:06 ./ovpc/pkg/lib/header/libov.so
.
.
.
-r-xr-xr-x root/root 131 2009-10-29 17:06 ./ovpc/pkg/etc/conf
dr-xr-xr-x root/root 0 2010-02-25 10:54 ./ovpc/pkg/etc/conf/log.conf
Extrayendo los archivos usando dpkg -x
Usa dpkg -x para extraer los archivos desde un paquete Debian:
$ dpkg -x ovpc_1.06.94-3_i386.deb /tmp/ov
$ ls /tmp/ov
ovpc
Los archivos DEB son archivos ar, los cuales siempre contienen los tres archivos, debian-binary, control.tar.gz, y data.tar.gz. Se puede usar los comandos ar y tar para extraer y ver los archivos de un paquete debian.
Primero extrae el contenido del *.deb usando el comando ar.
$ ar -vx ovpc_1.06.94-3_i386.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
$
Luego extrae el contenido de data.tar.gz así:
$ tar -xvzf data.tar.gz
./
./ovpc/
./ovpc/pkg/
./ovpc/pkg/lib/
./ovpc/pkg/lib/header/
./ovpc/pkg/lib/header/libov.so
.
.
./ovpc/pkg/etc/conf
./ovpc/pkg/etc/conf/log.con
| Reacciones: |
lunes 19 de abril de 2010
Debian para Computadoras Viejas
Sin embargo hay un monto de maquinas que son un poco mejores para usarlas con una distribución limitada como Puppy Linux, pero no lo suficientemente potentes para correr una de las mayores distros. Por ejemplo, maquinas con memoria de 256-512 MB y un procesador de 600MHz. En estos casos una buena opción seria usara la ultima versión de Debian pero liviana. la ventaja es que tendrás una distribución al día.
Lo único que necesitas es una PC vieja con conexión a Internet. Puedes empezar la instalación con el CD Debian netinstall (para una PC necesitas la imagen i386, de 150MB). Una vez que lo has grabado en un CD, inicia o bootea desde el CD e inicia el proceso de instalación normal hasta que que llegues a la pantalla de selección de paquetes, desmarca la opción "estación de escritorio" (desktop workstation) y continua con la instalación.
Después de completar la instalación y reiniciar, deberías tener una distribución Linux completa con linea de comandos, soporte de red y algunas herramientas de administración. Como se tiene el paquete Aptitude, se abre y presiona CTRL + T para que aparezca el menú y usar el cursor para navegar a la opción de buscar. Se recomienda usar el ambiente de escritorio XFCE, el navegador Firefox (llamado Iceweasel en Debian), el sistema de sonido ALSA, el procesador de texto Abiword y XDM para administrar ingreso al sistema. Selecciona instalar, espera y reinicia. Listo ya tendrás un sistema completo y liviano que volara en una PC vieja.
| Reacciones: |
El Canal de Juegos Jakejw93
El canal está dividido en dos zonas: una para juegos nativos y otros para emulaciones de juegos de windows.
En la primera tenemos unos pocos clásicos como Neverball o Pingus.
En la segunda tenemos muchos más como FIFA07, Commandos 3, etc como demostración que si se puede jugar en linux los juegos más punteros, aunque sea con wine.
Es una forma de comprobar que nuestro juego favorito puede funcionar en Linux.
Fuente LinuxJuegos.
| Reacciones: |
jueves 15 de abril de 2010
Migrar a GRUB2
http://www.ibm.com/developerworks/linux/library/l-grub2/index.html?ca=drs-
| Reacciones: |
Cliente TeamViewer para Linux
TeamViewer es uno de las mejores herramientas para conexión a Escritorio Remoto, la cual hace posible ayudara a solucionar problemas que se presenten en la computadora, configurando una conexión VNC en la PC enferma. TeamViewer es gratis para uso en el hogar y no-comerciales.
Si deseas descargar el cliente para Linux de TeamViewer puedes hacerlo desde su página Web, en donde encontraras versiones para Fedora/Red Hat (rpm), Debian/Ubuntu (deb) y .tar.
| Reacciones: |
miércoles 14 de abril de 2010
Creación y Uso de Alias en Linux
En este articulo se vera como configurar o desconfigurar alias permanente o temporal. También se vera algunos ejemplos útiles sobre alias en bash los cuales podrías usarlos al inicio de tus programas bash.
Si deseas puedes revisar los artículos anteriores sobre Ejemplos de Código Bash y El Estado de Salida de un Comando Bash.
Como Configurar un Alias
Un alias puede ser definido en la linea de comandos, en .bash_profile o en .bashrc usando la siguiente sintaxis:
$ alias nombre='aquí escribes el comando completo y con opciones'
nombre - Es el nombre que deseas ponerle al alias
Esto quiere decir que "nombre" es un alias para dicho comando. Cada vez que "nombre" es escrito como un comando, bash reemplazará el comando correspondiente junto con las opciones especificadas en su lugar.
Nota: No hay espacios en blanco entre el signo igual (=). Las comillas son necesarias si la cadena que se usara tiene mas de una palabra.
Ejecutando este comando en la linea de comandos se creara un alias temporal. Eso quiere decir que el alias existirá hasta que salgas del terminal. Si guardas el alias en el archivo de inicio del bash (~/.bashrc) entonces el alias sera permanente.
Los siguientes alias podrían ser útiles. Puedes configurarlos en el archivo ~/.bashrc.
Ejemplos mas Comunes de Alias
Abrir el ultimo archivo modificado en Vim:
alias Vim="vim `ls -t | head -1`"
Buscar los 5 archivos mas grandes:
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5"
Ubicar los procesos bash:
alias psg="ps -aux ¦ grep bash"
Listar incluyendo archivos ocultos con indicadores y colores:
alias ls='ls -aF --color=always'
Lista en formato largo:
alias ll='ls -l'
Limpiar todo el historial y la pantalla:
alias hcl='history -c; clear'
Limpiar la pantalla y lista:
alias cls='clear;ls'
Uso de espacio en el sistema de archivos:
alias dus='df -h'
Navegar a diferentes directorios:
alias ..='cd ..'
alias ...='cd ../..'
Ejemplos de Alias que Modificarían tu Entorno
Remover el bloqueo de firefox:
alias rm_fire_lock='/bin/rm .mozilla/firefox/NAME.default/.parentlock' # edit NAME
Logearse a una maquina remota a traves de SSH:
alias server_name='ssh 192.168.1.1 -l tom' # cambia el IP y el nombre de usuario
alias ser2='ssh www.dbserver.com -l kgf' # crea cuantas alias necesites
Logearse a un servidor csv:
export CVS_RSH=/usr/local/bin/ssh
alias cvl='cvs -d :ext:usuario@cvs.servidor.com:/usr/local/cvsroot'
Desmontar un cdrom
alias umnt='umount /mnt/cdrom'
Como Ver todos los Alias
Ejecuta el comando alias sin ningún argumento para ver la lista de los alias en un shell:
$ alias
alias ..='cd ..'
alias ...='cd ../..'
alias mnt='mount /mnt/cdrom'
alias umnt='umount /mnt/cdrom'
alias dus='df -h'
Para ver un alias en particular ingresa el comando con el formato "alias nombre" así como se muestra abajo:
$ alias dus
alias dus='df -h'
Detener Temporalmente el Uso de Alias
Cuando quieres llamar al comando en vez de a un alias, debes usar (/):
$ \nombredelalias
Por ejemplo, si has creado un alias que se llame cp y ahora deseas usar el comando cp en vez del alias, deberías hacer lo siguiente:
\cp * /backup/archivos/
Como Remover un Alias
Para esto usas el comando unalias, por ejemplo:
$ unalias hcl
$ hcl
-bash: hcl: comando no encontrado
Como Remover todos los Alias
$ unalias -a
$ alias
Nota: Las funciones shell son más rápidas por que un alias primero tienes que buscar el comando y luego resolverlo. Mientras que un alias es mas fácil de entender, los comandos shell son mas usados para casi todo propósito. Debes de tener cuidado al reemplazar un comando regular con un alias.
| Reacciones: |
martes 13 de abril de 2010
Bisigi, Conjunto de Temas para Linux
Para poder instalarlos necesitaras abrir un terminal para poder instalar Bisigi desde los repositorios de Ubuntu, ArchLinux o Frugalware, el código para instalarlos en las diferentes distribuciones lo puedes sacar desde la página Web de instalación del Bisigi. O si deseas bajar el archivo .deb lo puedes hacer desde aquí. Una vez lo tengas instalado, lo puedes configurar y usar desde el menú Sistema - Preferencias - Apariencia, en Ubuntu.
Cada uno de los 13 temas de Bisigi provee un set de iconos para escoger, un fondo de pantalla y ajuste de color. El tema Airlines cambia el fondo de pantalla a de día y de noche.
| Reacciones: |
Instalando Bweb en Ubuntu 9.04
A continuación les de jo un tutorial de como instalar Bweb tomando en cuenta que el servidor bacula esta trabajando junto con Apache y MySQL.
http://www.howtoforge.com/ubuntu-server-9.04-bacula-bweb-gui
| Reacciones: |
viernes 9 de abril de 2010
Levantar Utilidades desde la Red
Primero configura el servidor TFTP en el mismo servidor donde vas a guardar los archivos. Por supuesto, es mejor usar Linux para esto. Una vez que este configurado necesitaras algo para que los clientes se puedan conectar, para eso debes descargar la ultima versión de SYSLINUX desde la pagina de kernel.org y copiar los siguientes archivos en la raíz de tu TFTP:
core\pxelinux.0
Asegúrate que realmente estas usando esa versión de pxelinux.0 ya que algunas distros de Linux han modificado ese archivo (mas detalles aquí).
com32\menu\vesamenu.c32
Una vez que esos archivos estén en su lugar, se necesita hacer una configuración del lado del servidor, configurar dos opciones de DHCP:
1. next-server = DIRECCION-IP-O-FQDN-DEL-SERVIDOR-TFTP
2. filename = /pxelinux.0
Nota: Si tu red usa MS DHCP entonces están configuradas en Options 66 & 67.
La primera de esas opciones le dice al cliente donde encontrar el servidor TFTP y la segunda le dice al cliente que archivo buscar. Pxelinux.0 se carga en la memoria y luego inicia. Cuando inicia es donde debes decir que es lo que hará y para eso requiere un archivo plano llamado default (sin extensión) que este localizado dentro del directorio llamado pxelinux.cfg, que se encuentra en la raíz del TFTP. La estructura del directorio debería lucir así:
/ # Raiz TFTP
/pxelinux.0
/vesamenu.c32
/pxelinux.cfg/
/pxelinux.cfg/default
El archivo default contiene el menú de arranque y puede llamar otros archivos. A continuación se muestra un ejemplo de como podría tener tus menúes en el archivo default:
DEFAULT vesamenu.c32
PROMPT 0
MENU INCLUDE pxelinux.cfg/pxe.conf
NOESCAPE 1
TIMEOUT 300
ONTIMEOUT localboot
MENU AUTOBOOT El sistema se iniciara normalmente en # segundos
LABEL localboot
MENU LABEL ^1. Iniciar desde el Disco Duro
LOCALBOOT 0
LABEL memtest
MENU LABEL ^2. Ejecutar Memtest86+ v4
kernel memtest/memtest
LABEL ntpasswd
MENU LABEL ^3. Eliminar una Contraseña de Windows
TEXT HELP
Runs Offline NT Password & Registry Editor
ENDTEXT
kernel ntpasswd/vmlinuz
append rw vga=1 initrd=ntpasswd/initrd.cgz,ntpasswd/scsi.cgz
LABEL dban
MENU LABEL ^4. Lanzar Darik's Boot y Nuke
TEXT HELP
Usa esto para eliminar TODA informacion de tu PC
ENDTEXT
KERNEL memdisk/memdisk
APPEND iso initrd=memdisk/iso/dban-beta.2006042900_i386.iso
Guarda el archivo y ahora crea el archivo pxelinux.cfg/pxe.conf e ingresa lo siguiente:
MENU TITLE Escoge entre las siguientes Opciones:
menu color border 30;44 #ffffffff #00000000 std
NOESCAPE 1
ALLOWOPTIONS 0
PROMPT 0
menu width 80
menu rows 14
MENU TABMSGROW 24
MENU MARGIN 14
MENU VSHIFT 6
Esta es toda la información que nunca cambiara y solo toma mucho espacio en default por eso se mueve a un archivo separado.
Configurar las Utilidades que se Usaran
Como puedes haber visto en el menú se esta configurando Memtest86+ para probar que la memoria RAM este correcta, Editor de Contraseñas y Registro de Windows y Darik's Boot y Nuke para limpiar toda información del disco duro. La herramienta para editar particiones es Gnome Partition Editor (GParted). Para poder hacer que Gparted este disponible vía PXE esta documentado en su sitio web pero requiere un poco mas de trabajo que las otras tres herramientas. Para configurar Memtest86+ hay que descargar el ultimo binario pre-compilado desde su sitio web y copiar el contenido del archivo en un directorio llamado memtest en la raiz del TFTP. Renombrar el binario por memtest, de otro modo fallaría al iniciar. Ntpasswd es igual de simple, simplemente descarga la imagen de CD desde su sitio web, monta el .iso y copia los siguientes archivos al directorio ntpasswd en la raiz de TFTP:
- vmlinuz
- initrd.cgz
- scsi.cgz
/ # (Raíz TFTP)
/pxelinux.0
/vesamenu.c32
/pxelinux.cfg/
/pxelinux.cfg/default
/pxelinux.cfg/pxe.conf
/memtest/memtest
/ntpasswd/vmlinuz
/ntpasswd/initrd.cgz
/ntpasswd/scsi.cgz
/memdisk/memdisk
/memdisk/iso/dban-beta.2006042900_i386.iso
Eso es todo, ya todo esta configurado. Coge una computadora o maquina virtual y reinicia, tienen que estar en red. Por lo general presionas F12 para obtener el menú el cual estará listado como opción en tu adaptador de red( Si no lo esta, revisa la configuración de BIOS para habilitar el PXE). Selecciona tu NIC y rápidamente debería salir un menú azul mostrando las opciones que acabas de configurar. Los números en el menu son teclas de acceso. Si no selecionas nada en 30 segundos tu PC iniciara desde el disco duro local.
Nota: hay otras herramientas para levantar desde la red y ademas existe la posibilidad de configurar el menu para que solo se acceda con contraseña.
| Reacciones: |
Recuperar Archivos Borrados en ext4
1.- En cuanto veas que has borrado por descuido algo que no debías, apaga rápido tu computador.
2.- Arranca con un CD live de Ubuntu e instala el extundelete (lo descargas de la web oficial y lo descomprimes).
aptitude update aptitude install e2fslibs-dev build-essential(asumiendo que lo has descargado en tu home y que estás en un terminal en tu home)
bzip2 -d extundelete-0.1.8.tar.bz2 tar xvf extundelete-0.1.8.tar cd extundelete-0.1.8/src makesi haces un ls debería de aparecer un fichero llamado “extundelete” con permisos de ejecución, esto es, en verde.
4.- Usando extundelete
Estando en el directorio extundelete se ejecuta lo siguiente. (Debes cambiar /dev/sda6 por la partición donde has borrado los archivos):
./extundelete /dev/sda6 --restore-files /home/nugbe/Escritorio/GIPUZKOA4/Pelis/ ./extundelete /dev/sda6 --restore-directory /home/nugbe/Escritorio/GIPUZKOA4/Pelis/.
Según el manual también debería funcionar un:
extundelete /dev/sda6 --restore-all
Tomado de DiarioLinux.
| Reacciones: |
Escribir y Ejecutar Programa Tcl en Linux
1. Escribir el Programa Tcl Hola Mundo
Crea el programa holamundo usando el editor que te convenga.
$ vim holamundo.tcl
#!/usr/bin/tclsh
# programa de ejemplo hola mundo
puts "Hola Mundo"
Nota: Los comentarios empiezan con #.
2. Asegúrate de que Tcl este Instalado en tu sistema
Para asegurarte que el compilador de Tcl este instalado en tu sistema ejecuta lo siguiente:
$ whereis tclsh
tclsh: /usr/bin/tclsh /usr/bin/tclsh8.4 /usr/share/man/man1/tclsh.1.gz
Si no lo tienes instalado puedes hacerlo de la siguiente manera:
$ sudo aptitude install tcl8.4
3. Ejecutar el Programa
Puedes ejecutarlo de dos maneras:
$ tclsh holamundo.tcl
Hola Mundo
ó
$ chmod u+x holamundo.tcl
$ ./holamundo.tcl
Hola Mundo
| Reacciones: |
jueves 8 de abril de 2010
Cuando Usar Indices en una Tabla de MySQL
Cuando se decide cuando y como crear un indice en tu base de datos de MySQL, es importante considerar como se esta siendo usada la data.
Digamos que tienes una tabla de empleados, creada de la siguiente manera:
CREATE TABLE empleados (
codigo INT,
nombre VARCHAR(60),
sueldo decimal(10,2),
fecha contrato(date)
)
Notaras que esta tabla es bien simple y que realmente no contiene toda la información que necesitas para administrar empleados, pero es solo para demostración, y si deseas puedes agregar mas campos mas tarde.
Por el momento usaremos esta tabla como ejemplo.
El código es básicamente un numero (INT) el cual puede guardar un numero grande. Si esto fuera el mundo real probablemente lo harías sin firmar, para que nunca tengas un numero negativo de código de empleado.
Aunque INT este sin firmar puede guardar hasta 2,147,483,647.
Quizás tengas la idea de hacer el campo auto incrementado y que sea clave primaria, el auto incrementado depende en como la data sera ingresada en la base de datos.
Nombre es un varchar simple de 60 el cual es suficiente para cubrir la mayoría de nombres de personas.
Sueldo es un campo decimal con dos dígitos para el decimal. Esto debería manejar un sueldo de hasta 99,999,999.99 .
Fecha contrato sera una fecha en formato AAAA-MM-DD.
Entonces considerando esta simple tabla donde esperarías que se coloque un indice? Si se asigna el código como clave primaria, entonces no se necesita indice ahí.
Es mejor usar indices en las columnas que se usan frecuentemente en la clausula WHERE y también en la clausula ORDER BY.
Tambien deberías prestar atención en si esa información sera actualizada frecuentemente o no ya que esto haría lento el proceso de insertar y actualizar. Como los empleados no se ingresan frecuentemente no necesitas preocuparte por eso.
Supón que estas buscando a los empleados usando una interfaz web PHP y el usuario final los buscara por nombre ya que por código seria un poco pesado.
Esto suena a que en esta situación es bueno usar indices:
A – No se actualizara el nombre de empleado frecuentemente.
B – Usaras el nombre de empleado en la clausula WHERE, asi:
select * from empleados where nombre ='perez';
C – Generaras reportes, que probablemente sean alfabeticos, como esto:
select * from empleados order by nombre asc;
Entonces en este ejemplo simple es fácil ver cuando sera importante usar indices:
create index nombre_index on empleados (nombre);
Quizás estés trabajando en una base de datos mas compleja, por eso es necesario recordar estas reglas sencillas:
- Los indices hacen lento la inserción y actualización de los registros.
- Los indices aceleran las clausulas WHERE y ORDER BY.
Recuerda pensar en COMO tu data sera usada cuando creas tus tablas.
Hay algunas otras cosas que se deben recordar. Si tu tabla es muy pequeña, por ejemplo, pocos empleados, seria peor usar indice que dejar a que se haga un escaneo de la tabla. Los indices solo son útiles cuando la tabla tiene muchos registros.
| Reacciones: |
miércoles 7 de abril de 2010
Usar inotify para Monitorear el Sistema de Archivos de Linux
http://www.ibm.com/developerworks/linux/library/l-inotify/index.html?ca=drs-
| Reacciones: |
martes 6 de abril de 2010
Ubuntu One Sincronizara los Contactos de Teléfonos Celulares
Leer más.
| Reacciones: |
Ubuntu One Sincronizara los Contactos de Teléfonos Celulares
Leer más.
| Reacciones: |
lunes 5 de abril de 2010
Guia de Manejo de Permisos en Linux Para Principiantes
En la salida del comando ls -l los nueve caracteres desde la segunda posición hasta la décima representan los permisos para los tres tipos de usuarios.
-rw-r--r-- 1 usuario usuario 272 Mar 17 08:22 test.txt
En el ejemplo anterior:
- El usuario tiene permisos de lectura y escritura (rw).
- El grupo tiene permiso de lectura (r).
- Otros tiene permiso de lectura (r).
Los tres tipos de permisos de archivos:
- read (lectura): permite leer el contenido del archivo.
- write (escritura): permite escribir o modificar el archivo.
- execute (ejecución): permite ejecutar archivos de programas.
Los tres tipos de permisos de directorios:
- read (lectura): permite leer el contenido del directorio (ver archivos y sub-directorios).
- write (escritura): permite escribir en el directorio (crear archivos y sub-directorios).
- execute (ejecucion): permite entrar en el directorio.
Valores numéricos para los permisos de lectura, escritura y ejecución:
- read 4
- write 2
- execute 1
Para tener una combinación de permisos, suma los números requeridos. Por ejemplo, para lectura y escritura es 4 + 2 = 6.
Cambiar Permisos de Archivos y Directorios Usando el Comando chmod
Puedes usar la representación octal o simbólica para cambiar los permisos de un directorio.
Representación octal de los permisos:
- El primer numero es para usuario.
- El segundo numero es para grupo.
- El tercer numero es para otros.
Por ejemplo, dar permiso de lectura y escritura (4 + 2 = 6) para usuario y lectura (4) para el grupo y otros, seria así:
$ chmod 644 archivo
Por ejemplo, dar permiso de lectura y ejecución (4 + 1 = 5) para usuario y lectura (4) para el grupo y nada (0) para otros, seria así:
$ chmod 540 archivo
Por ejemplo, dar permiso de lectura y escritura (4 + 2 = 6) para usuario y nada (0) para el grupo y lectura (4) para otros, seria así:
$ chmod 604 archivo
Umask 022 es el Responsable de los Permisos por Defecto en un Archivo
El valor por defecto de umask es 0022, lo cual decide los permisos por defecto para un nuevo archivo o directorio. El permiso por defecto para un directorio es 0777, para los archivos los permisos son 0666 desde el cual el valor por defecto 0022 es deducido para obtener los permisos de un directorio o archivo recién creado.
El valor por defecto final para un archivo es calculado como se muestra a continuación:
- Permiso por defecto para archivo: 666.
- Umask por defecto: 022.
- Permiso final por defecto: 644.
El valor por defecto final para un directorio es calculado como se muestra a continuación:
- Permiso por defecto para directorio: 777.
- Umask por defecto: 022.
- Permiso final por defecto: 755.
Puedes cambiar el valor de umask por un valor apropiado segun tus necesidades basándote en el calculo mencionado arriba. Por ejemplo, si no deseas que nadie mas que el usuario (owner) realice algo en el directorio, entonces debes cambiar el umask a 0077.
$ umask 0077
Después de esto si creas un directorio o archivo, solo tendrás permisos el usuario:
$ > archivo
$ ls -l archivo
-rw------- 1 usuario usuario 0 Mar 17 08:23 archivo
| Reacciones: |
Ensayos del Proyecto GNOME 3
Leer más
| Reacciones: |
Descargar y Editar Videos de Youtube en Linux
Hay miles de soluciones para descargar vídeos de YouTube. Algunas mejores, otras peores, hemos nombrado aquí muchas y otras se nos habrán quedado en el tintero. Sin embargo, la mayoría son o bien para Windows, o bien páginas online, que a veces pueden resultar incómodas, sobretodo si queremos hacer varias a la vez. Así que ahora traigo una pequeña solución para hacerlo rápidamente en sistemas Linux.
Para hacer esto, sólo vamos a necesitar dos programas. Uno, ffmpeg , y otro, get-flash-videos, que es una aplicación multiplataforma para descargar y ver vídeos de YouTube, DailyMotion, Metacafe, y muchos más. Y, aunque algunos no les guste, no nos vamos a mover de la terminal, que así vamos más rápidos. Para instalarlos, copiad y pegad estos comandos en la terminal:
| Reacciones: |
Ubuntu 10.10 sera llamado Maverick Meerkat
Cabe recordar que los nombres y números de las versiones de Ubuntu siguen unas reglas muy curiosas. El número se establece siempre en función del año y el mes en el que se lanza, siendo siempre abril u octubre. La que se lanza este mes es la 10.4, pues corresponde al año 2010, y al mes 4. La próxima en aparecer será la 10.10 de octubre de 2010, luego la 11.4, 11.10, y así sucesivamente. Con respecto al nombre, siempre se va poniendo en orden alfabético un animal y un adjetivo. Este mes toca la L, Lucyd Lynx, la anterior fue la K -Karmic Koala-, así pues en la 10.10 tocaba la M y han elegido Maverick Meerkat. Es una costumbre que también han adoptado en Android, cuyas nuevas versiones vienen acompañadas de un nombre de postre, también siguiendo el nombre del alfabeto: Cupcake, Donut, Eclair, Froyo, Gingerbread...
Leído en Engadget.
| Reacciones: |