viernes, 6 de enero de 2017

Cómo generar la documentación de referencia sobre el API de DirectFB


DirectFB (Direct Frame Buffer) es una librería gráfica ligera (adecuada para sistemas empotrados). Proporciona aceleración de los gráficos, control de los dispositivos de entrada, ventanas traslúcidas, visualización por capas, etc.


La página oficial de DirectFB está caída (a fecha de julio 2016): http://www.directfb.org/


Desde el Archivo de Internet:
https://web.archive.org/web/20101215114416/http://directfb.org/


Pero también podemos generar la documentación desde el código fuente:

Denis Kropp es un desarrollador de DirectFB (vamos a descargar el código de su repositorio):
$ git clone https://github.com/deniskropp/DirectFB

Como estoy interesado en la doc de la rama 1.4 cambio hacia ella:
$ git checkout -b directfb-1.4 origin/directfb-1.4
Branch directfb-1.4 set up to track remote branch directfb-1.4 from origin.
Switched to a new branch 'directfb-1.4'


$ git branch
* directfb-1.4
master



Del fichero README (traducido):

domingo, 25 de diciembre de 2016

XWD: Cómo tomar capturas de pantalla en las X windows


Una captura de pantalla es una imagen capturada de la pantalla del monitor.
Puede contener la pantalla completa o una parte más pequeña, normalmente una ventana.

Comando XWD


El sistema X de ventanas proporciona la herramienta para volcar imágenes desde una ventana de las Xorg: xwd.

xwd guarda las imágenes de ventanas en un formato especial "xwdump".
Este formato se emplea también por otras herramientas de las X.


Otras herramientas que también sirven para tomar capturas de pantalla:
convert de ImageMagick, KSnapshot, gnome-screenshot, ...


Instalamos xwd (en debian, ubuntu):
$ sudo aptitude install x11-apps


Captura de la pantalla completa


Podemos capturar la pantalla al completo o únicamente una ventana.
La pantalla completa en el sistema de ventanas X está asociada también a una ventana: la ventana root (raíz).

Tomamos capturas de la ventana raíz:

domingo, 18 de diciembre de 2016

Bash shell: atajos de teclado por defecto


Vamos a enumerar los atajos de teclado que vienen por defecto para el shell de bash.


Bash obtiene la mayoría de este comportamiento de las librerías GNU Readline y GNU History.


Combinaciones de teclas estilo Emacs vs. estilo vi


Readline por defecto usa combinaciones de teclas estilo emacs.

En este documento explicaremos los comandos estilo emacs.


También se puede configurar el fichero init para usar el estilo vi.

Las combinaciones de teclas se pueden personalizar mediante el fichero init de Readline (/etc/inputrc)


Librerías GNU Readline e History


Las aplicaciones enlazadas a la librería GNU Readline proporcionan al usuario la capacidad de editar la línea de comandos al tiempo que teclea palabras.

La librería GNU Readline también proporciona funciones de "historia", basadas en la librería GNU History.


La librería GNU History se puede usar separadamente de la GNU Readline.


Atajos de teclado


Nomenclatura:
Usaremos la siguiente convención. P.ej:

C-e significa presiona Control y la tecla e a la vez.

M-e significa presiona la tecla meta y la e. Podemos simular la tecla meta presinando primero la tecla Escape y después la letra e (metaficando la tecla e).

M-C-k significa metaficando C-k , es decir, presionando primero ESC y después C-k.


Auto inserción
(a, b, A, 1, !, ...)

viernes, 9 de diciembre de 2016

Android: Cómo instalar adb y fastboot en Debian


Vamos a instalar las herramientas adb y fastboot en Debian (Sid).

adb (Android Debug Bridge) es una herramienta que nos permite comunicarnos con un teléfono Android via USB (también via TCP).

fastboot nos permite flashear algunos dispositivos Android.


Instalar Android SDK (Stand-alone SDK tools)


Las herramientas adb y fastboot van incluídas en el Android SDK.

Página del desarrollador de Android

Página del SDK de Android


Descargamos únicamente el SDK (no necesitamos el IDE para Android)

$ wget dl.google.com/android/android-sdk_r24.4.1-linux.tgz

$ tar xvzf android-sdk_r24.4.1-linux.tgz


También necesitamos instalar Java (instrucciones según la página del SDK):

domingo, 12 de junio de 2016

Cómo instalar CyanogenMod en el teléfono OnePlus X

Vamos a instalar CyanogenMod 12.1 en un teléfono móvil OnePlus X.

Mi teléfono OnePlus X es el modelo: E1003

Antes de trastear con el sistema operativo del teléfono es recomendable realizar un backup de los datos importantes.

Conectar vía ADB

Primero vamos a conectar el teléfono con el ordenador vía ADB (Install ADB in Debian).

en el teléfono activa las opciones de desarrollo:
Settings -> About Phone -> Buid Number (tocar 7 veces)

entonces aparecerá activado Settings -> Developer Options

Activa el debugueo mediante USB:
Settings -> Developer Options -> USB debugging


En el ordenador podremos ver el dispositivo:
$ lsusb
Bus 002 Device 005: ID 2a70:9011

$ adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
5c6c3c16 unauthorized


En el teléfono, aceptamos la clave RSA para que acepte siempre al ordenador.

$ adb devices

sábado, 21 de mayo de 2016

Ratpoison: gestor de ventanas


Ratpoison es un gestor de ventanas rápido en modo alicatado (tiling window manager). Está escrito en C.
Su objetivo es minimizar el uso del ratón.


Instalar ratpoison


En Debian:

$ sudo aptitude install ratpoison


Obtener el código fuente:

$ git clone git://git.savannah.nongnu.org/ratpoison.git


Ejecutar ratpoison


Si queremos ejecutar ratpoison rápidamente, sin configurar nada:

$ startx $(which ratpoison) -- :2 # lanza un nuevo servidor X con ratpoison como cliente en la pantalla 2.


Combinaciónes útiles de teclas


C-t . # para el menú

C-t ? # muestra la ayuda

C-t c # abre un terminal

martes, 24 de febrero de 2015

netselect : Cómo elegir el mejor mirror de Debian


netselect es una aplicación que permite determinar automáticamente el mejor mirror de Debian disponible.

Calcula una puntuación para cada servidor basándose en el tiempo de ping y en el número de saltos hasta llegar a dicho servidor.


netselect-apt es otra aplicación que empleando netselect genera un fichero sources.list.


Cómo instalar netselect


Para instalar netselect ejecutamos:
$ sudo aptitude install netselect-apt

En las dependencias instala a su vez netselect.


Ejecutamos netselec


Elegimos la versión de Debian frente a la que queremos testear, en este caso "sid" ó "unstable":
(NOTA: Necesitamos permisos de superusuario)
$ sudo netselect-apt -s sid

Muestra como resultado:

sábado, 8 de marzo de 2014

Cómo Crear un Repositorio de GIT Compartido en Debian


Git es un sistema distribuido de control de revisiones.

Vamos a crear un repositorio remoto compartido de git y le añadiremos la siguiente funcionalidad:

- Acceso de lectura y escritura usando el protocolo ssh.
- Acceso anónimo de sólo lectura vía git-daemon.
- Navegar por los repositorios de git vía web.
- Mandar notificaciones por email cuando el usuario realiza un commit.


Este artículo muestra cómo configurar un repositorio de Git en una distribución Debian (Sid).


Crear el repositorio en la máquina remota


Primero vamos a configurar la máquina remota donde instalaremos el repositorio de git.


Creamos el directorio donde colocaremos el repositorio de git:
$ mkdir /gitrepo

Instalamos git
$ sudo aptitude install git

Todos los usuarios capaces de leer y escribir en el repositorio deben pertenecer al grupo gitgroup:
$ sudo groupadd gitgroup
$ sudo chgrp -R gitgroup /gitrepo
$ sudo chmod g+w /gitrepo

Directorio "home" genérico para los usuarios pertenecientes al grupo gitgroup:
$ sudo mkdir /home/gitgroup
$ sudo chgrp -R gitgroup /home/gitgroup


Añadimos nuestro usuario actual al grupo gitgroup.
$ sudo adduser mi_usuario gitgroup
Los cambios se harán efectivos después de volverse a loguear.
$ groups
mi_usuario sudo gitgroup


Creamos ahora un repositorio git vacío.
$ cd /gitrepo
$ git init --bare --shared=0664 my_git_project
Initialized empty shared Git repository in /gitrepo/bar/

NOTA:
0664: el usuario "otro" tiene permisos de sólo lectura.
0660: el usuario "otro" no tiene permisos.

$ chgrp -R gitgroup my_git_project

La opción --shared hace que los directorios, los nuevos ficheros que se creen, etc, tengan los permisos adecuados.

Ahora tenemos un repositorio vacío donde podemos subir nuestros nuevos commits, o algún repositorio preexistente.


Acceso de lectura y escritura

sábado, 15 de febrero de 2014

Cómo compilar CPUMINER desde las fuentes en Debian


cpuminer es un programa minero para las criptomonedas Litecoin y Bitcoin. Se ejecuta en CPUs (no necesita una tarjeta gráfica (GPU) para ejecutarse).
Por defecto usa el algoritmo scrypt, pero puede configurarse para usar SHA-256.


Compilar cpuminer desde el código fuente:


Para compilar cpuminer desde las fuentes bajamos el código fuente desde su repositorio:
$ sudo aptitude install git
$ git clone https://github.com/pooler/cpuminer
$ cd cpuminer
$ less README

A continuación instalamos las dependencias para poder compilarlo.
$ sudo aptitude install automake
$ sudo aptitude install pkg-config
$ sudo aptitude install gcc
$ sudo aptitude install make

NOTA: sin el siguiente paquete aparece el error: "possibly undefined macro: AC_MSG_ERROR"
$ sudo aptitude install libcurl3-gnutls-dev


Creamos los ficheros configure y Makefile:
$ ./autogen.sh
configure.ac:15: installing './compile'
configure.ac:4: installing './config.guess'
configure.ac:4: installing './config.sub'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
Makefile.am:12: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
Makefile.am: installing './INSTALL'
Makefile.am: installing './depcomp'



Compilamos las fuentes

lunes, 9 de diciembre de 2013

EMACS : MACROS de TECLADO


Una macro de teclado para el editor emacs es una combinación de comandos que agrupamos creando así un nuevo comando.

Es muy útil para repetir una secuencia de comandos varias veces.


Definimos una nueva macro


Para comenzar a definir una nueva macro pulsamos la tecla <F3> que equivale al comando: M-x kmacro-start-macro-or-insert-counter

Aparecerá en el minibuffer la frase: "Defining kbd macro..."


Por ejemplo vamos a crear una macro que escribe "hola" al final de la línea en la que estamos:

<F3> C-e hola <F4>

Con esa secuencia de teclas indicamos que estamos guardando una macro. Vamos al final de la línea.
Escribimos la palabra "hola" y pulsamos <F4> indicando que la macro ha finalizado.

En el minibuffer aparece "Keyboard macro defined".


Ejecutar una macro.