viernes, 28 de diciembre de 2007

Total libertad como root

Por poder puedes hasta destrozar tu ordenador. Por el día de los inocentes, un regalo para cargarte tu pc:

sudo rm -rf *
ó
sudo mkfs.ext3 /dev/hda1

El primero borra todo el sistema de archivos, y el segundo crea una nueva tabla de particiones nuevo sistema de archivos ext3 ignorando (y perdiendo) toda la información contenida.

Más formas de cargarse el ordenador ¡¡Siempre como Root!! en Comandos Maliciosos. Cuidado con el modo sudo...

jueves, 27 de diciembre de 2007

Cambia la tendencia consumista de hardware

El mercado es el que (de)manda. Algo que se vende bien es lo que marca tendencia tanto de fabricación como de consumo.

>Por un lado tenemos Windows Vista, mejorando cosas del XP a costa de recursos de hardware. Hay muchísima gente que no le gusta, y a quien le gusta es que no ha visto mundo. Las ventas de Vista se han visto mermadas por su cantidad de versiones que sólo quitan prestaciones al usuario. Su falta de calidad y de salida comercial se intenta contrarrestar con precios bajos. Vista es la vergüenza de Microsoft y no tardarán en sacar una nueva versión mejor. Algo así como el Windows Millenium, que fue reemplazado enseguida por Windows2000.

>Al otro lado de la balanza tenemos GNU/Linux en cualquiera de sus versiones, capaz de ser instalado en cualquier ordenador, compatible en ofimática y navegación que es lo que demanda el usuario medio. Capaz como el que más para el usuario avanzado. Tan fácil (o difícil) de usar para un novato como cualquier ventanas. Máximo rendimiento en mínimo hardware.

A la gente no le importa el sistema operativo mientras solucione sus necesidades informáticas. Cada vez hay menos reticentes a abrirse a Linux, ya que pueden tener ambos SOs (más vale prevenir). Linux está a la orden del día, y tiene más prestaciones y ventajas.

Está surgiendo una nueva tendencia para el usuario medio. El usuario demanda: ¿Ofimática?, linux responde: Sí, ¿Internet? -Sí, ¿Música y reproductores mp3? -Sí, ¿Cámaras de fotos digitales? -Sí, ¿Mensajería Instantánea? -Sí, ¿Descargas p2p? -Sí, ¿Entretenimiento? -Sí, ¿Vistoso? -Sí, ¿Fácil? -Sí, ¿Barato? -Sí. Entonces el usuario decide Linux Sí.

Es innegable que Linux va adquiriendo adeptos, pero el motivo de este post es las últimas noticias que surgen respecto a "Linux en cada OLPC", "Linux en los Asus Eee" (900gr, 7 pulgadas de TFT, 4GB de disco flash, OpenOffice y Firefox, arranca en 15seg, 299$~208€), El ClassMate de Intel, Everex se dedica a vender pcs ultra-baratos con Ubuntu 190$~140€ en Wal-Mart. Lo impresionante es que el Asus Eee ha vendido 10.000 uds a las dos semanas de salir, y todo indica que se plagará todo el Mundo de esos pcs ultra-baratos en 2008. Ahora todo el mundo quiere un PC de bolsillo, y actualmente Linux es la única opción. Por suerte una opción libre.

Noticia vista en el nuevo medio soitu.es

domingo, 23 de diciembre de 2007

LaTeX desde cero

Ya hablé sobre qué es LaTeX y sus ventajas. Ahora intento profundizar más. Resolveremos las dudas de la gente que quiere saber sobre entornos gráficos para LaTeX, y que le gustaría escribir las eñes y las tildes (aunque latex se maneja en su forma más simple con ASCII).

Paquetes necesarios [actualizado]
Para compilar LaTeX es necesario:
texlive-latex-base (junto con sus dependencias)
texlive-latex-extra
texlive-math-extra (específico para escritura matemática)

y en general es recomendable todos los texlive-*** salvo idiomas extranjeros, porque incluyen las librerías CTAN más usuales.

Interfaces
Yo edito los archivos de LaTeX con gedit, pero habrá quien quiera manejarse con entornos gráficos que tienen todas las opciones a mano. Para ello recomiendo TexMaker (sudo apt-get install texmaker). En orden de preferencia:

TexMaker: Muy completo. Pasa a dvi, ps y pdf.
Kile: Es para KDE principalmente (ocupará más y consumirá más recursos si no usas KDE), pero lo puedes usar en GNOME, no está mal y pasa a PDF, dvi, html... con un clic. Es como TexMaker pero para KDE.
LyX: Es visual, interpreta los comandos LaTeX instantáneamente. Mejora por versiones.

Tildes, diccionarios, eñes...
Instala latex-ucs (sudo apt-get install latex-ucs) ésto te permitirá usar eñes y tildes (o cualquier carácter UTF8).

\usepackage[spanish]{babel} % Division de sílabas y títulos en español.
\usepackage[utf8]{inputenc} % Para poner acentos y eñes directamente.
\usepackage{ucs} % Altenativamente al anterior.
\usepackage{amsmath} % La American Mathematical Society creó este paquete de "Higher Mathematics".

Por lo que parece, \usepackage[latin1]{inputenc} Se usa en Windows. En linux no permite caracteres UTF8.

Instalar archivos fuente
Averigua el archivo que te da error. Suele ser que sea un archivo fuente. Supón que sea picins.sty
  1. Búscalo en synaptic, pues puede que te falte un archivo texlive u otro.
  2. Vamos al repositorio de paquetes de LaTeX: http://www.ctan.org
  3. O directamente lo buscamos por nombre: http://www.ctan.org/search.html#byName
  4. Lo descargamos (y descomprimimos si es necesario).
  5. Lo copiamos como root en: /usr/share/texmf/tex/latex
sudo cp <ruta>/picins.sty /usr/share/texmf/tex/latex

Compilar
Si tienes un archivo *.tex o lo has creado con un editor cualquiera y quieres compilarlo, entra en la carpeta desde consola y pon:
latex archivo.tex Si quieres pasarlo a *.dvi
pdflatex archivo.tex Si quieres pasarlo a *.pdf

Los programas mencionados antes lo hacen con un botón.

Otros programas útiles para manejo de latex y otros tipos de archivos:
latex2html, latex2rtf, gnuhtml2latex, dvipdf, tth, unrtf, netpbm, dvipng, chktex, rubber, tetex-doc, pgf, preview-latex-style
lmodern, sam2p, psutils

Paquetes útiles
tipa Simbolos fonéticos (IPA)
circ-tex Circuitos y diagramas ópticos
latex-xcolor Manejo de color
latex-beamer Hacer presentaciones

Pestañas cerradas recientemente

Firefox tiene una opción para abrir pestañas recientemente cerradas. Por desgracia, lo tengo bloqueado (menú inactivo) y es uno de los temas que todavía no he conseguido arreglar en Ubuntu.

En windows me había pasado y lo solucioné con software antiespía (Spybot S&D) que eliminó un dll contenido en una carpeta de Firefox. A pesar de lo viejo y común que es este problema no se encuentran soluciones en internet (y muy poca gente lo menciona). Debe ser porque es una utilidad poco conocida y la gente no la echa tanto en falta.

Actualización: Ésto no me pasa desde que instalé Ubuntu 7.10, quizá porque ya hayan solucionado el bug, o quizá porque aun no he sido "infectado".

miércoles, 19 de diciembre de 2007

Buscando un navegador ligero

Si se te antoja que Firefox es pesado, puede que tengas razón, aunque aseguran que en su versión 3 habrá una mejor administración de memoria. Pero, ¿hay alternativas en GNU/Linux?

Sí, las hay. Desde Flock, el navegador social hasta linx el navegador en modo texto. También encontrarás SeaMonkey, de Mozilla, Galeon,
La lista:

Firefox - El más completo y pesado (gecko)
SeaMonkey - Una opción a Fx (gecko)
Flock - En su página está el código fuente que no logré compilar (gecko)
Galeon - El más ligero que usa gecko gtk: GNOME
Konqueror - Para kde ¿gecko?
Dillo - Minimalista, pero falla en apariencia y versatilidad
Linx - Texto
Links - Texto
Links2 - Texto, con imágenes si usas la consola

No menciono a Opera por no ser libre. La opción real más ligera es Galeon (para GNOME). Para consola links2 está muy bien. Aquéllos que usan gecko como motor pueden ir lentos en ordenadores con muy pocas prestaciones, y sus opciones se ven muy limitadas a la forma de mostrar la página. No suelen soportar frames.

Cosas que nunca te explicaron sobre el sistema de ficheros

En el post anterior hago referencia a un artículo interesante que tenía pensado añadir en ésta página. Dado que he creado mi página web para ir añadiendo cosas interesantes, he colgado un PDF con el extracto de su página.

En Linux todo es un archivo o directorio. La cola de impresión es una carpeta (lpr). Es muy chocante, el archivo /dev/random genera números aleatorios, /dev/zero genera caracteres (0x00 en ASCII), y el archivo mágico /dev/null te hace desaparecer todo lo que le envíes... ¡eso es eficiencia! Si supiera todo el trabajo que le daría...

Unix se toma a sí mismo como centro del sistema, por lo que todo el sistema está dentro de /. Así se asume que tu carpeta personal, está dentro del sistema y es la única porción editable por tí. El ratón, el teclado, la tarjeta de sonido, la tarjeta de red y wifi, todo son archivos dentro del sistema. Por eso no es de extrañar que las unidades sean archivos antes de montarse (/dev/hdb), y luego pasen a ser carpetas (/media/hdb) una vez montadas, cuando el núcleo sabe interpretarlas. Ahora se comprende todo mejor, ¿no?

Las carpetas UNIX y su utilidad quizá lo ponga pronto por aquí...

Diferentes permisos a diferentes usuarios

Cómo funcionan los permisos

Linux maneja los permisos de la siguiente forma:

Lectura (r): Permite al usuario visualizar el archivo.
Escritura (w): Permite al usuario editar el archivo.
Ejecución (x): Permite entrar al directorio ó ejecutar el archivo. Muy útil para scritps en bash, awk, c, java, php, python cuando el archivo es el propio código.

Y luego a quién van dirigidos:

Usuario (u): El propietario del archivo.
Grupo (g): El grupo al que pertenece el archivo.
Resto (o): Los demás.

Dar/quitar permisos

Por consola, la función chmod funciona:
chmod {u, g, o, a} {+, -, =} {r, w, x} Nombre del archivo

a  todos (u, g & o) ; + dar permisos ; - quitar permisos ; = por defecto

Hay otra forma de dar permisos (numérica):
Suponemos tres números que dan los permisos u g o, y Suponemos rwx 3 bits, con lógica positiva (activado=1). El número (en octal) resultante serán, en orden, los permisos del archivo, así 751 significa: u +rwx, g +rx, o +x.

El comando se usaría: chmod 751 Archivo

Más información: man chmod

Establecer usuario

Por consola, la función chown (change own er) funciona: chown usuario:grupo Nombre del archivo

Es importante, para que los permisos u surtan efecto, sobretodo si el archivo ha sido copiado por root u otro usuario.


Otros comandos relacionados

Los principales: chmod, chown, chgrp (cambia el grupo al que pertenece el archivo).

Otros: sudo groupadd, sudo groupdel, sudo adduser, sudo userdel, passwd.

Para ver su funcionamiento: man <comando>

Diferentes permisos a diferentes usuarios

Este post tiene su origen en LinuxParaSeresHumanos.com donde Gerard tenía el siguiente problema:

«Tengo los usuarios: ana, bea, cris, dora, eva y fani. Quiero que ana y bea tengan permiso 'rw' sobre un fichero. cris y dora de 'r', y que eva y fani no puedan acceder. ¿como dejo los permisos?»

Solución a un caso ligeramente más trivial
Éste no es un problema trivial, pues hay varios usuarios en varios grupos. Si fuera más trivial (no estuviera ana), a bea lo ponemos como propietario y le damos permisos u +rw; en cuanto a cris y dora con permiso r se podría crear un grupo (y hacerlas pertenecer a él), al archivo se le diría el grupo y los permisos g +r. Bastaría con poner los permisos 750. Le pondríamos un enlace a los interesados y punto.

Solución más elegante al problema de Gerard
Existe a través de la consola un comando para hacer enlaces: ln. Lo más normal es crear enlaces simbólicos ln -s ó ln --symbolic, pero por defecto este comando crea enlaces duros (hard links). El archivo creado no direcciona a otro archivo, sino directamente a su lugar en el disco duro. Ésto es propio únicamente de sistemas UNIX. Sólo cuando todos los enlaces duros se borran se habrá borrado el archivo, mientras los cambios se reflejarán por igual. Aparentemente son dos archivos diferentes*, internamente es el mismo archivo.

*Usaremos ésta ventaja para dar solución a Gerard, pues daremos diferentes permisos a cada archivo.

Como root:
#cd /home/ana/
#ln privado.txt /home/bea/
#ln privado.txt /home/cris/
#ln privado.txt /home/dora/
#chmod 600 privado.txt
#chmod 600 /home/bea/privado.txt
#chmod 400 /home/cris/privado.txt
#chmod 400 /home/dora/privado.txt

Y posteriormente le cambiamos los propietarios.

domingo, 16 de diciembre de 2007

Shortcuts personalizadas

ShortCuts Básicas
En Sistema>Preferencias>Combinaciones de teclas (gnome-keybindings-properties), puedes encontrar las combinaciones más comunes. Es un puntazo que cualquier aplicación de audio o video integrada en gnome permita pausar, reproducir, subir/bajar volumen, silenciar, o avanzar/retroceder pista. Entre otras opciones del escritorio, también están las que ejecutan programas, y yo tengo:
F1 - Ayuda
F3 - Buscar
F9 - Enrollar
F10 - Pantalla completa*
Navegador - <Alt>F
Carpeta personal - <Alt>H
Terminal - <Alt>T
Moverse entre escritorios - <Ctrl><Alt>Cursores
Mandar al escritorio - <Ctrl><Alt>Número

*Podríais pensar ¿porqué no F11? Y está claro, el F11 es el que usan los programas, y suele cambiar algunas funciones (por ej. Firefox reduce las barras de herramientas :-) pero quita la barra de estado :-( evince oculta automáticamente su barra tras unos segundos, y es preferible).

Pero hay pocas teclas de configuración para lanzar programas. Se echa de menos una combinación para lanzar los programas que más abras, o tus scripts favoritos ( leer el post anterior). Para ello tenemos gconf-editor.

ShortCuts Avanzadas
Para los que quieren abrir sus programas favoritos (pidgin, aMule, sudoku, entre otros menos interesantes...) ejecutamos desde consola o con Alt+F2 gconf-editor
y nos vamos a Apps/Metacity, ahí están las shortcuts básicas, pero puedes añadir otras estableciendo en primer lugar los comandos. Para el caso del post anterior: Tenemos un script en ~/.Scripts/BloquearYApagar.sh ¡Con permisos de ejecución! (chmod +x).
  • Estamos en Apps/Metacity dentro de gconf-editor
  • Vamos a keybinding_commands y creamos nuestro comando. Puede ser cualquiera, como sudo nautilus, o la dirección de nuestro script: /home/<usuario>/.Script/BloquearYApagar.sh y vamos a suponer que el el Command_1
  • Vamos a global_keybindings y donde pone Command_1 ponemos la tecla elegida, en mi caso Pause. FIN.
Tanto la consola como el ejecutar una aplicación (Alt+F2) permiten varias órdenes seguidas, siempre que se separen con && ó ";". En cambio, si pones varias órdenes en un lanzador, éste no ejecuta nada. Con gconf-editor sólo ejecuta la primera orden, por lo que hay que hacer un script si hay más de una.

Mis shortcuts avanzadas:
<Ctrl><Alt>Delete - gnome-system-monitor (mal acostumbrado a WinXP, ¡Os gusta!, ¿eh?)
Pause - BloquearYApagar.sh (apaga el monitor y bloquea la sesión) podría usarlo como <Ctrl><Alt>L pero antes hay que quitarlo de las ShortCuts Básicas (era sólo bloquear).
amule,amuled,amulegui...

Mucho OJO, no pongais las shortcuts de otros programas, porque si las usáis se empiezan a abrir programas como locos. En general Alt+X suele ir bien. Yo usé Ctrl+Shift+X y casi no podía usar GIMP. Precisamente quien se crea las shortcuts del sistema, son los que más usamos las shortcuts de los programas...

Apaga el monitor con una tecla

Intro
Acabo de descubrir que existe una función llamada xset que puede ser muy útil.
Leyendo el manual (man xset) descubro que puede manejar cosas como los leds del teclado, la velocidad y threshold (la sensibilidad) del ratón, el salvapantallas, colores del monitor, el pcspeaker, pero también el ahorro de energía, que si no me equivoco, debe estar activado.

Para saber la configuración puedes escribir "xset q".

Utilidad
Donde yo le veo utilidad es para apagar el monitor. ¿porqué tengo que dejar inactivo durante un tiempo el pc para que se apague el monitor? Pasado un tiempo se activa el salvapantallas, y a los X minutos se apaga el monitor. Pues yo quiero apagar el monitor ¡¡YA!! porque mi portátil tiene que ahorrar energía. Combinado con el bloqueo de pantalla, nos da un plus de seguridad. Y si a todo ese comando le ponemos un shortcut (combinación de teclas) ya es la **tia.

Por pasos:
xset dpms force off Apaga el monitor
gnome-screensaver-command --lock Bloquea la pantalla (me ha costado encontrarlo, así que ¡Bien por mí!)

No sé qué screensaver usa kde, pero si es xscreensaver el comando equivalente es "xscreensaver-command -lock".

Como ambos comandos no se pueden usar a la vez desde consola (piénsalo, si primero apagas el monitor, en cuanto pulses una tecla se enciende; y al revés: si primero bloqueas la pantalla no puedes usar el ordenador) hay que hacerse un script, o mejor aun, un acceso directo (lanzador) o mejor aun, un shortcut.

Crear un lanzador
He descubierto que un lanzador no puede ejecutar varios comandos seguidos. A continuación explico cómo hacer un lanzador para apagar el monitor:
  1. Clic secundario en escritorio. Crear un lanzador.
  2. Tipo: Aplicación. Nombre: Apagar monitor.
  3. Comando: xset dpms force off
Puedes cambiar el comando por gnome-screensaver-command --lock que bloquea la pantalla. Si no lo queremos en el escritorio lo podríamos arrastrar a cualquiera de las barras, donde se ejecutará con un clic.

Crear un script
En el caso de que queramos apagar el monitor y bloquear la sesión, debemos seguir los pasos, y luego hacer un lanzador:
  • Crear una carpeta por ahí perdida (oculta) y entramos en ella: mkdir ~/.Scripts && cd ~/.Scripts
  • Con gedit (nano para los freaks, y vim o emacs para los muy freaks) creamos un archivo nuevo BloquearYApagar.sh:
#!/bin/sh
gnome-screensaver-command --lock && sleep 1 && xset dpms force off;
  • Le damos permisos de ejecución: chmod +x ~/.Scripts/BloquearYApagar.sh
  • Y creamos el lanzador poniendo la ruta completa en "Comando": /home/<usuario>/.Scripts/BloquearYApagar.sh

Si no sabes cómo guardar el script en una carpeta oculta, guárdalo en el escritorio y luego haz desde la consola: mv ~/Desktop/ BloquearYApagar.sh ~/.Scripts/
El motivo por el que pongo sleep 1 es para retrasar el apagado un segundo, aprovechando el dimming del bloqueo, que hace que nuestro script sea más profesional ;-) Si os fijáis sí podemos ejecutar primero el bloqueo y después el apagado del monitor, puesto que no necesitamos interactuar con la interfaz.

Crear un shortcut (combinación de teclas)
Si nuestra orden es simple, no es necesario hacer el script. En cambio, para poner varios comandos debemos seguir los pasos del script anterior. Una vez seguidos los pasos, tenemos que... [Leer siguiente post] Razón: Merece la pena dedicarle un post a esa utilidad.

{Idea tomada de Think Ubuntu}

Bloqueo numérico al inicio

¿Echas de menos que el bloqueo numérico aparezca desactivado? Se echa de menos si tu contraseña contiene números... pero también porque el teclado numérico es prácticamente inútil sin números.

Para solucionar esto debes instalar numlockx:
sudo apt-get install numlockx

Y esperar a reiniciar. Pero como Linux en general no necesita reiniciar para poder ejecutar las aplicaciones, podemos activar el programa (sólo la primera vez) poniendo en consola:
numlockx on