Blog
Redimensionar ventanas con Alt+Botón derecho en GNOME 2
![]()
Si, gnome 2 es un manejador de ventanas muy popular todavia, de hecho Linux Mint 13 tiene una versión con él (llamado ahora Mate). Aquí un pequeño truco que no me sabia: usar la combinación de ALT+Botón derecho (del ratón) para redimensionar la ventana seleccionada.
En caso de que no funcione (en Mint si está activado por omisión), hay que ejecutar el siguiente mando en terminal:
Via: http://totaki.com/
"Open Source Bach" en línea

El proyecto "open source Bach" está completo, la partitura y la grabación ahora en línea
Así hicieron eco en slashdot a la culminación de un proyecto propuesto en kickstarter para "crear una nueva partitura y una grabación de estudio y ponerla en el dominio público" para el bien de todos :)
Puedes bajar la música directamente de su sitio o por torrent, bastante recomendable, por cierto.
Python y wxWidgets: wxPython

Hace unos dias entre al mundo Python, del que tenía un poco de curiosidad, y debo decir que ha sido una grata experiencia. La sintaxis es muy sencilla y cómoda, la simbiosis de WxWidgets en wxPython es fenomenal, permite hacer aplicaciones de ventanas de manera muy rápida. Al más puro estilo de Java o .Net, Python es un lenguaje interpretado, por lo que no lo considero como opción al desarrollar aplicaciones para maquinaria (sigo prefiriendo C), pero si se ubica como una muy buena opción para hacer interfaces o aplicaciones utilitarias.
Herramientas
Tutoriales
Libro libre: Debian Administrator's Handbook
Hace unos dias salió a la red el libro del administrador de Debian, el cual comprende una cantidad muy amplia de tópicos sobre la distribución como son:
- Info general del proyecto Debian
- Guía de instalación
- Fundamentos del sistema de paquetes
- Configuraciones básicas
- Mantenimientos
- Servicios
- Seguridad
A primer vista resulta muy completo y se antoja ideal para tenerlo como referencia para los usuarios (no tan) avanzados de esta distribución. Hay que aclarar que este libro comprende información sobre la versión Squeeze (6.0) que es la estable actual. Veremos seguramente una actualización cuando llegue a salir la entrega 7.
Recursos
- Sitio original: http://debian-handbook.info/
- Leerla en línea: http://static.debian-handbook.info/browse/stable/
- Bajarlo (PDF, ePub y Mobipocket): http://debian-handbook.info/get/now/
Lista de libros de programación

Impresionante lista con recursos para aprender y consultar sobre lenguajes de programación. Son de esas cosas que siempre hay que guardar :P Nota: El material está en inglés.
Meta-Lista
- 25 Free Computer Science Ebooks
- Book Training - On Video
- Cheat Sheets (Free)
- CodePlex List of Free E-Books
- Free Tech Books
- Galileo Computing (Alemán)
- How to Design Programs: An Introduction to Computing and Programming
- Microsoft Press: Free E-Books
- MindView Inc
- O'Reilly's Open Books Project
- Sofware Program Managers Network
- TechBooksForFree.com
- Theassayer.org
- Wikibooks: Programming
Programación gráfica
- DirectX manual (borrador)
- Learning Modern 3D Graphics Programming (borrador)
- GPU Gems
- GPU Gems 2 - ch 8,14,18,29,30 as pdf
- GPU Gems 3
- Graphics Programming Black Book
- ShaderX series
Independiende de lenguaje
- 97 Things Every Programmer Should Know
- Algorithms and Data-Structures (PDF)
- Algorithms (borrador)
- The Architecture of Open Source Applications
- The Art of Unix Programming
- Best Kept Secrets of Peer Code Review
- Binary Trees
- The Cathedral and the Bazaar
- Clever Algorithms
- Communicating Sequential Processes (PDF) - Tony Hoare
- Compiler Construction (PDF)
- Computer Musings (lecturas por Donald Knuth)
- Data Structures and Algorithms: Annotated Reference with Examples
- Database Fundamentals (PDF)
- Data-Intensive Text Processing with MapReduce (PDF)
- The Definitive Guide to Building Code Quality
- Designing Interfaces por Jennifer Tidwell
- Digital Signal Processing For Engineers and Scientists
- Domain Driven Design Quickly
- Don't Just Roll the Dice
- Essentials of Metaheuristics por Sean Luke
- Essential Skills for Agile Development
- A Field Guide To Genetic Programming
- Flow based Programming
- Foundations of Computer Science - Al Aho y Jeff Ullman
- Foundations of Programming
- Getting Real
- Getting started with Open source development (PDF)
- The Great Tree List Recursion Problem
- Guide to the Software Engineering Body of Knowledge
- How Computers Work
- How to Design Programs
- How to Think Like a Computer Scientist
- How to Write Parallel Programs
- How to write Unmaintainable Code
- I Am a Bug
- An Introduction to the Theory of Computation
- Introduction to Functional Programming (lecturas de clase y diapositivas)
- Introduction to Information Retrieval
- Is Parallel Programming Hard, And, If So, What Can You Do About It?
- Learn to Program
- Let's Build a Compiler
- Linkers and loaders
- Linked List Basics
- Linked List Problems
- Mathematical Logic - an Introduction (PDF)
- Matters Computational
- Mining of Massive Datasets
- NASA Manager Handbook for Software Development (PDF)
- NASA Software Measurement Handbook
- Object-Oriented Reengineering Patterns
- Online Course Materials
- OO Design
- Operating Systems and Middleware (PDF y LaTeX)
- Patterns and Practices: Application Architecture Guide 2.0
- Patterns of Software: Tales from the Software Community (PDF)
- Planning Algorithms
- PNG: The Definitive Guide
- Pointers And Memory
- Producing Open Source Software
- Programming Languages: Application and Interpretation
- Programming Methodology
- Programming Pearls
- Project Oberon (PDF)
- Seamless Object-Oriented Software Architecture
- Security Engineering
- Structure and Interpretation of Computer Programs
- Summary of the GoF Design Patterns
- The Little Book of Semaphores
- The TCP/IP Guide
- Think Stats: Probability and Statistics for Programmers (PDF, código escrito en Python)
- Type Theory and Functional Programming
- Understanding IP Addressing: Everything you ever wanted to know (PDF)
Android
Autotools
ASP.NET MVC
Bash
- Advanced Bash-Scripting Guide
- Bash Guide for Beginners por Machtelt Garrels
- Lhunath's Bash Guide
- The Command Line Crash Course (tambien en referencia Powershell)
C / C++
- Beej's Guide to Network Programming
- Beej's Guide to C Programming
- The C book
- C++ Annotations
- C++ GUI Programming With Qt 3
- CS106X Programming Abstractions in C++
- Essential C
- Introduction to Design Patterns in C++ with Qt 4 (PDF)
- Learn C the hard way
- Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt
- The new C standard - an annotated reference
- Object Oriented Programming in C (PDF)
- Software optimization resources by Agner Fog
- Thinking in C++, Second Edition
- The Definitive C++ Book Guide and List
C#
- Ver .NET
Clojure
CoffeeScript
ColdFusion
DB2
- Getting started with DB2 Express-C (PDF)
- Getting started with IBM Data Studio for DB2 (PDF)
- Getting started with IBM DB2 development (PDF)
Delphi / Pascal
Django
Emacs
Ensamblador
- Programming from the Ground Up (PDF)
- Paul Carter's Tutorial on x86 Assembly
- Software optimization resources by Agner Fog
Erlang
Flex
F#
- The F# Survival Guide
- F Sharp Programming en Wikibooks
- Real World Functional Programming (Capítulos MSDN)
Forth
Git
Go
Grails
Haskell
HTML / CSS
Java
- Java Application Development on Linux by Carl Albing and Michael Schwarz(PDF)
- How to Think Like a Computer Scientist
- The Java EE6 Tutorial (PDF)
- Java Thin-Client Programming
- Sun's Java Tutorials
- Thinking in Java
- OSGi in Practice (PDF)
- Category wise tutorials - J2EE
- Introduction to Programming Using Java - David J. Eck
JavaScript
- Crockford's JavaScript
- Eloquent JavaScript
- Essential Javascript & jQuery Design Patterns for Beginners
- JavaScript Essentials
- jQuery Fundamentals (comienza con lo básico de JavaScript)
- Mozilla Developer Network's JavaScript Guide
JavaScript (Específico de node.js)
LaTeX
Linux
- Advanced Linux Programming
- GNU Autoconf, Automake and Libtool
- GTK+/Gnome Application Development
- The Linux Development Platform (PDF)
- Linux Device Drivers por Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
- The Linux Kernel Module Programming Guide
- Secure Programming for Linux and Unix
Lisp
- Common Lisp the Language, 2nd Edition
- Common Lisp: A Gentle Introduction to Symbolic Computation - David S. Touretzky
- Common Lisp Quick Reference
- Let Over Lambda - 50 Years of Lisp
- Natural Language Processing in Lisp
- On Lisp
- Practical Common Lisp
- Successful Lisp: How to Understand and Use Common Lisp - David Lamkins
- Sketchy LISP - Nils Holm
Lua
- Programming In Lua (para la versión 5)
Mathematica
Maven
- Better Builds with Maven
- Maven by Example
- Maven: The Complete Reference
- Repository Management with Nexus
- Developing with Eclipse and Maven
Mercurial
Nemerle
- Ver .NET
.NET (C# / VB / Nemerle / Visual Studio)
- C# Essentials
- C# Programming - Wikibook
- C# Yellow Book (introducción a la programación)
- Charles Petzold's .NET Book Zero
- Data Structures and Algorithms with Object-Oriented Design Patterns in C#
- Entity Framework
- Moving to Microsoft Visual Studio 2010
- Nemerle
- Programmer's Heaven C# School Book (cubre C# 1.0 y 2.0)
- Threading in C#
- Visual Basic Essentials
- Visual Studio Tips and Tricks (Sólo VS 2003-2005)
NoSQL
Oberon
- Programming in Oberon (PDF)
Objective-C
OCaml
- Introduction to Objective Caml (PDF)
- Objective Caml for Scientists (first chapter only)
- Unix System Programming in OCaml
- Developing Applications With Objective Caml
Oracle Server
- Oracle's Guides and Manuals
Oracle PL/SQL
- PL/SQL Language Reference
- PL/SQL Packages and Types Reference
- Steven Feuerstein's PL/SQL Obsession - Videos and Presentations
Parrot / Perl 6
- Using Perl 6 (en progreso)
Perl
- Beginning Perl
- Embedding Perl in HTML with Mason
- Essential Perl
- Extreme Perl
- Higher-Order Perl
- The Mason Book
- Modern Perl 5
- Perl & LWP
- Perl for the Web
- Perl Free Online EBooks (meta-lista)
- Perl The Hard Way
- Practical mod_perl
- Web Client Programming with Perl
PHP
- PHP Essentials
- Practical PHP Programming (wiki del PHP In a Nutshell de O'Reilly)
- Symfony2
- Zend Framework: Survive the Deep End
PowerShell
Prolog
- Adventure in Prolog
- Applications of Prolog
- Building Expert Systems in Prolog
- Introduction to Prolog for Mathematicians
- Learn Prolog Now!
- Logic, Programming and Prolog (2ed)
- Natural Language Processing in Prolog
- Natural Language Processing Techniques in Prolog
- Prolog Programming A First Course
- Prolog Techniques
- Simply Logical
- Visual Prolog 7.2 for Tyros
PostgreSQL
Python
- Building Skills in Python Version 2.5
- Byte of Python
- Data Structures and Algorithms in Python
- Dive into Python
- Dive into Python 3
- The Django Book
- How to Think Like a Computer Scientist: Learning with Python
- Invent Your Own Computer Games With Python
- Learn Python The Hard Way
- Natural Language Processing with Python
- Python Bibliotheca
- Python for Fun
- Snake Wrangling For Kids
- Think Python (PDF)
- Thinking in Python
R
Ruby
- Learn Ruby the hard way
- MacRuby: The Definitive Guide
- Mr. Neighborly's Humble Little Ruby Book
- Programming Ruby
- Ruby Best Practices
- Why's (Poignant) Guide to Ruby (mirror)
Ruby on Rails
Scala
- Exploring Lift (publicado anteriormente como "The Definitive Guide to Lift", PDF)
- Lift
- Pro Scala: Monadic Design Patterns for the Web
- Programming in Scala, First Edition
- Programming Scala
- Scala By Example (PDF)
- A Scala Tutorial for Java programmers (PDF)
- Xtrace
Scheme
- Concrete Abstractions: An Introduction to Computer Science Using Scheme
- The Scheme Programming Language Edition 3, Edition 4
- Simply Scheme: Introducing Computer Science
Sed
Smalltalk
- Dynamic Web Development with Seaside
- Free Online Smalltalk Books (meta-lista)
- Squeak By Example (Smalltalk IDE)
Subversion
SQL (implementation agnostic)
- Developing Time-Oriented Database Applications in SQL
- Use The Index, Luke!: A Guide To SQL Database Performance
- Learn SQL The Hard Way
Teradata
Vim
- A Byte of Vim
- Vim Recipes
- Vi Improved -- Vim por Steve Oualline
Websphere
Windows Phone
Lista de códigos SMD
Siempre que se trabaja con componentes de montaje superficial (SMD) es de cuidado. Si eres como muchos, me inclúyo, que nos gusta desarmar aparatos y reciclar componentes, el identificar que es cada uno de ellos es una batalla. Afortunadamente hay esfuerzos para tener listas de los códigos grabados en dichos componentes. He aquí un par de ellas que serán de mucha utilidad:
Via pcbheaven y dangerousprototypes
Linux en un microcontrolador de 8-bits?

Este es uno de esos proyectos que te dejan impactados, un linux moderno (ubuntu) corriendo desde un micro Atmel ATmega1284p emulando una plataforma ARM.
Si bien el proceso de arranque le toma varias horas y la usabilidad del sistema es practicamente nula, es un gran logro hacer el emulador y que corra en el una cosa tan compleja como el kernel linux.
Les invito a leer más en la web de su autor
Mantener limpio un sistema instalado en Debian

A todos nos pasa y nos ha pasado (sobre todo al inicio) de instalar y desinstalar aplicaciones, probar programas y configuraciones...y por supuesto el sistema sufre un poco a causa de estas "experiencias".
En esta pequeña y básica guía veremos algunas soluciones bastante cómodas (seguramente mucho mejor que formatear y empezar desde cero) para tratar de volver a la "normalidad" nuestra amada Debian. Con esta guía no pretendo descubrir la pólvora, ya que son cosas archiconocidas por muchos de los lectores, pero tal vez sirva a aquellos que recién empiezan. Y como prevenir es mejor que curar.....allá vamos!
Todos estaremos de acuerdo en que trabajar en un sistema limpio y que nos permita limpiarlo es mas cómodo que uno "sucio" y "desordenado", y sobretodo si se trata de interventos a nivel de sistema!.
Checkinstall
Checkinsall es una utilidad que permite crear paquetes Debian a partir de los fuentes.
CUIDADO, porque no son paquetes completos, sino que simplemente ayudan a seguir el rastro de archivos instalados por el programa, facilitando la actualización y el borrado del mismo.
Comenzamos con la instalación:
-
# aptitude install checkinstall
Su uso es bastante fácil e intuitivo,la configuración de las fuentes ( ./configure --alguna-opción) y la compilación (make) se deben de llevar a cabo, mientras que el comando:
-
# make install
debe ser sustituido por:
-
# checkinstall
Durante la ejecución vendrán formuladas algunas preguntas,como por ejemplo el tipo de paquete a crear (siendo los posibles: deb,rpm,tgz).
Tenemos a disposición otras opciones:
- -y,--default --Acepta los valores por defecto
- --pkgname=name --Impone el nombre de un paquete
- --pkgversion=versión --Impone la versión
- -A, --arch, --pkgarch=arch --Impone la arquitectura
- --pkgrelease=release --Impone la release versión
- --pkggroup=group --Impone el grupo al cual el paquete debe pertenecer(doc,net...)
- --pakdir=directory --Donde salvar el paquete
- --maintainer=email_addr --El mantenedor del paquete
- --dpkgflags=flags --Eventuales flags para dpkg
- --bk --Realiza un Backup de los archivos que serán pisados
Una vez terminado el proceso,el paquete vendrá automáticamente instalado.
Nota: debemos tener en cuenta que serán señalados eventuales dependencias,sustituciones e/o conflictos,esto debido a que el objetivo de checkinstall es aquel de poder rastrear los files generados y no el de crear un .deb oficial.
Debfoster
#aptitude install debfoster
El objetivo de este programa es de mostrar los paquetes que NO han sido instalados como dependencias, y una vez individuado/s, sera mostrada una lista indicando los paquetes "retenidos" por este/os.
Su uso es bastante simple, cuando lo hacemos correr por primera vez nos hará una serie de preguntas acerca de los paquetes instalados.
Podemos seleccionar mantener el paquete (sera recordado por debfoster) o podemos elegir su eliminación.
Si al momento de responder una de las preguntas tenemos alguna duda acerca del paquete, podemos tipear "?" para poder visualizar información acerca del mismo.
Salida de ejemplo:
#libxml-libxml-perl is keeping the following 3 packages installed:
libxml-libxml-common-perl libxml-namespacesupport-perl libxml-sax-perl
Keep libxml-libxml-perl? [Ynpsiuqx?], [H]elp:
ahora podemos elegir cosa hacer:
-
Y --Mantiene el paquete instalado -
n --Borra el paquete señalado -
p --Borra el paquete señalado y todos los paquetes retenidos -
s --Salta la pregunta -
i --Visualiza información sobre el paquete -
? --Igual a i -
u --Vuelve a formular la pregunta anterior -
q --Cancela la operación sin realizar modificaciones -
x --Realiza la cancelación de los paquetes -
h --Ayuda
poderoso verdad?!
Cuando realizamos la limpieza con este programa,seria importante tener algunas consideraciones:
- La información mostrada no toma en cuenta eventuales programas compilados desde las fuentes.
- Leer con atención las librerías mostradas como "retenidas",puede suceder que se muestre una librería de desarrollo NO necesaria para la ejecución de otras aplicaciones,pero indispensable para la compilación (libncurses5-dev por ejemplo).
Deborphan
#aptitude install deborphan
Este paquete genera una lista de los paquetes huérfanos en el sistema. Por paquete huérfano entendemos aquellas librerías que ya no son necesarias, osea, que ningún paquete instalado la indica como dependencia.Pero...atención con los programas compilados desde las fuentes (con make install o checkinstall) ya que no serán controladas sus dependencias, por lo que podríamos causar algún problema de funcionamiento.
Una opción interesante es --libdev, que nos genera una lista con las librerías de desarrollo (que terminan con -dev) no necesarias.
Para ver los paquetes huérfanos basta lanzar el comando
#deborphan
ó
#deborphan --libdevel
Es posible hacer que apt-get lea la lista de paquetes generada por deborphan:
# apt-get --purge remove `deborphan`
# apt-get --purge remove `deborphan --libdev`
La opción --purge como ya sabemos elimina los archivos de configuración del paquete.
Para los poco amantes de la consola podemos instalar gtkorphan, el cual es una muy fácil e intuitiva interfaz gráfica para deborphan.
#aptitude install gtkorphan
y el pollo está pronto!
Archivos de configuración.
Eliminando los archivos de configuración liberamos espacio en nuestro disco (tarde o temprano muy valioso) y mantenemos limpio el directorio /etc.
Con el siguiente comando podremos borrar los archivos de configuración que han sido dejados por paquetes desinstalados sin la opción --purge.
# dpkg --purge `COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`
pero...que cáspita es este chorizo de letras ?! tranquilos...allá vamos!
#dpkg --purge paquetes
Borra los archivos de configuración de todos los paquetes indicados.Estos paquetes los obtenemos tramite el comando
#`COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`
que a su vez genera la lista de los paquetes que no han sido borrados completamente (osea aquellos que cuando "se fueron", olvidaron de llevarse la configuración).
- COLUMNS=300 --> modifica la longitud de la cadena,evitando cortar los nombres de los paquetes (COLUMNS es una variable de ambiente).
- dpkg -l --> lista los paquetes disponibles.
- egrep "^rc" --> lista las cadenas de nombres que comienzan con "rc", que es el estado que indica que el paquete ha sido borrado.
- cut -d' ' -f3 --> devuelve el nombre del paquete,usa como limitador (-d) de campo un espacio (' ') y toma el tercer campo ( -f3.field en ingles).
Existen otros dos comandos que funcionan exactamente igual que el anterior:
#dpkg -P $(dpkg -l |awk '/^rc/ { print $2 }')
ó
#for i in $(dpkg -l |grep ^r| awk '{print $2}'); do aptitude purge -y $i; done
También podemos realizar la limpieza por medio de deborphan, así:
#dpkg --purge $(deborphan --find-config)
O bien podemos utilizar aptitude:
#aptitude purge '~'c
Donde c la bandera de estado del paquete.
Localepurge
Este es un paquete que debería ser instalado en el sistema desde el inicio, o al menos eso pienso.
El objetivo de este paquete es eliminar los idiomas que instala un paquete y no nos sirven.
Normalmente nos sirven dos idiomas:
*en (idioma "de fabrica")
*es_ES (nuestro idioma)
Entre otras debemos elegir las variaciones que son utilizadas en nuestro sistema (es_ES@euro y en_US o la que sea).
No es aconsejable borrar el ingles, ya que es el idioma por defecto del sistema, y para evitar problemas ....no molesta.
así que, si aun no lo hemos hecho:
#aptitude install localepurge
Durante la configuración sera mostrada una lista con los idiomas, de estas, deberemos seleccionar las que nos interesa.
Normalmente no es necesario, pero por si las moscas...ejecutamos:
#localepurge
De ahora en adelante cada vez que instalemos un paquete,los idiomas inútiles serán borrados, ganando así, espacio en disco.
Buscando archivos duplicados
Conviene cada tanto hacer una intervención sobre el sistema en busca de archivos duplicados.
Cuando digo archivos duplicados me refiero a archivos con diferente nombre pero de idéntico contenido.
Para esto nos podemos valer del siguiente script:
find path/ -type f | xargs md5sum | awk '{
sub("[^/]*/","",$2);
if (cache[$1])
print "Found: "cache[$1],$2;
else
cache[$1]=$2
}'
donde path es la ruta del directorio que queremos controlar.
Este script como se ve NO borra nada, simplemente busca y lista.
Otra alternativa que nos ofrece Debian al momento de buscar y limpiar archivos duplicados es fdupes, una aplicación para linea de comandos muy fácil y útil de usar.
#aptitude install fdupes
Donde las diferentes opciones que nos ofrece son :
(man fdupes para profundizar la informacion).
- -r -- Modo recursivo.
- -s -- Comprueba enlaces simbolicos.
- -h -- Comprueba los enlaces fuertes.
- -S -- Muestra el tamaño de los archivos duplicados.
- -q -- Modo “quiet”, oculta el indicador de progreso.
- -v -- Muestra la version de fdupes.
- -d -- Borra los ficheros duplicados (cuidado, con esta opcion.)
- -h -- Muestra la ayuda.
- -n -- Descarta los ficheros vacios
Ejemplo:
$ fdupes -r -n -S /ruta/al/directorio > duplicados.txt
Se buscan los archivos dentro de /ruta/al/directorio y sus subdirectorios (recursivamente) omitiendo los archivos vacios, mostrando el tamaño de los mismos y guardando la salida en un archivo de texto para estudiar mas tarde y decidir que hacemos.
Conclusión:
Estas son las técnicas de base para tener en orden y limpia nuestra Debian,los cambios se hacen visibles sobretodo en lo que respecta a espacio en disco.
No olvidemos el utilizo de:
apt-get ó aptitude clean
apt-get ó aptitude autoclean
que no haré comentarios ya que existe abundante información en el foro. Además:
Deberemos limpiar toda cache que se nos cruce en el camino.
Una aplicación que personalmente recomiendo,siempre y cuando sea usada con cuidado:
http://kde-apps.org/content/show.php/KleanSweep?content=71959&PHPSESSID=....
Con esta aplicación mantendremos limpia nuestra /home de una enorme cantidad de cosas inútiles que se van acumulando.
Si no lo deseamos instalar,siempre podemos recurrir a:
$ ls -a
lo cual nos permitirá ver los archivos y directorios de configuración,que son aquellos ocultos,los que tienen un . (punto) al inicio.
Una vez individuado el directorio a borrar:
$ rm -r nombredeldirectorio
donde la opción -r indica la recursividad de la operación,permitiendo el borrado del directorio.
Bueno...como de costumbre, espero que esta guía sea útil a los que se inician en este mundo, y a los veteranos....para refrescar la memoria.
Quien tenga aportes (y el que no también!;) ) para mejorar esta guía,que de un paso al frente! nos beneficiaremos todos!
Fuente del documento : Esto es una recopilación que hice alguna vez para uso propio y que había quedado en algún rincón de mi disco.
Agregando archivos de tipografía en Xubuntu
Estaba leyendo sobre una tipografíá especial para ahorrar tinta al momento de imprimir, no está de más ahorrar un poco en lo que se pueda, así que la baje pero... ¿cómo agregarla al listado de fuentes de linux? Sencillo, vamos a ver...
Primero descargas la fuente "ecologica", ver: http://www.ecofont.eu/
Ahora necesitamos agregarla en uno de los directorios para fuentes. Puedes ver la lista de directorios en el archivo /etc/fonts/fonts.conf
-
/usr/share/fonts /usr/share/X11/fonts /usr/local/share/fonts ~/.fonts
Nota: En ~/.fonts estarán las fuentes disponibles sólo para el usuario identificado.
Ahora solo resta actualizar el cache de fuentes:
$sudo fc-cache -f -v
Y listo, disfruten de sus nuevas fuentes disponibles :P
Lectura recomendada
Compilando el kernel de Linux
Lo prometido es deuda, les pongo los pasos más sencillos para compilar el kernel:
-
Bajar el kernel deseado, opté por buscar en http://www.kernel.org/
-
$wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.4.tar.bz2
-
-
Descomprimir el kernel
-
$tar -xjf linux-2.6.30.4.tar.bz2
-
-
Mover el kernel a su ubicación final
-
$sudo mv linux-2.6.30.4 /usr/src/
-
-
Crear unos enlaces simbólicos para tener ordenado todo :P
-
$sudo ln -sn linux-2.6.30.4 linux
-
-
Instalar los paquetes para poder compilar el kernel
-
$sudo apt-get install build-essential kernel-package ncurses-dev libglade2-dev
-
- Configurar el kernel como base
-
OPCIONAL: Lo más sencillo es tomar las configuraciones actuales
-
$sudo cd /usr/src/linux -
$sudo cp /boot/config-`uname -r` .config
-
-
Ahora hay que decirle que actualice las configuraciones
-
$sudo make oldconfig
-
-
Configurar "a mano" lo que se desee del kernel
-
$sudo make gconfig
-
- Y editar... guardar y salir
-
Compilar el kernel... la bendición de Debian :)
-
$sudo make-kpkg clean -
$sudo make-kpkg --initrd --stem linux kernel_image kernel_headers kernel_doc
-
- A esperar un buen rato para que se compile...
-
Te debe arrojar tres empaquetados en el mismo directorio donde estas o en el directorio padre, ahora solo se instalan:
-
$sudo dpkg -i *.deb
-
- Listo, reiniciar y seleccionar el nuevo kernel o editar el archivo /boot/grub/menu.lst e indicarle que inicie con el nuevo kernel por defecto
¿Pero para qué todo esto? Generalmente para sistemas empotrados, hacer más eficiente la computadora, para agregar funcionalidades que el kernel actual no tiene o tan solo para perder el tiempo. Pueden jugar un rato con esto, les prepararé algo de información sobre RTAI, como parchar el kernel y que se puede esperar.
