miércoles, 1 de enero de 2020

Cómo cifrar y descifrar el monedero (wallet) de Bitcoin

Queremos cifrar nuestro monedero (wallet) de Bitcoin para que los atacantes no puedan obtener las claves privadas, etc.

(Asumimos que estamos ejecutando un nodo de bitcoin-core)


Ayuda sobre cifrar el monedero:
$ bitcoin-cli help encryptwallet



Cifrar el monedero por primera vez


Primero ciframos el monedero (este comando funcionará si el monedero no ha sido previamente cifrado, en ese otro caso necesitaremos usar el comando walletpassphrasechange):
$ bitcoin-cli encryptwallet "my_pass_phrase"

Después de que el monedero se ha cifrado el servidor se parará.

Para ejecutar el servidor de nuevo:
$ bitcoind -daemon



Descifrar el monedero

domingo, 20 de octubre de 2019

SQLite3: Chuleta: Guía Rápida


SQLite es un motor de base de datos formado por una librería de lenguaje C que normalmente guarda los datos en un fichero.

sqlite3 es el intérprete de comandos de la versión 3 de SQLite.


Instalar y abrir un fichero de base de datos


Instalar sqlite3 (en Debian):
$ sudo aptitude install sqlite3

Abrir el fichero de base de datos:
$ sqlite3 database_file.db
SQLite version 3.8.8.3 2015-02-25 13:29:11
Enter ".help" for usage hints.


Aparece un prompt del intérprete de comandos:
sqlite>


Comandos de SQLite3


Mostrar todas las tablas:
sqlite> .tables
NOMBRES CLIENTES VENTAS PRODUCTOS


Terminar:
sqlite> .quit


Mostrar la ayuda:

domingo, 16 de abril de 2017

Cómo croscompilar SQLite3 para la arquitectura ARM


Vamos a croscompilar la base de datos SQLite3 para la arquitectura ARM.


Descarga del código fuente


Página de descargas de SQLite: (Esta página necesita JavaScript activado)
http://www.sqlite.org/download.html

Bajamos el código fuente en formato tar.gz.

$ wget http://www.sqlite.org/2017/sqlite-autoconf-3160200.tar.gz
$ tar xvzf sqlite-autoconf-3160200.tar.gz

$ cd sqlite-autoconf-3160200/


Configuración para la crosscompilación


Al ejecutar el script configure indicaremos:
  • arm-linux en la opción host
  • el path del crosscompilador de C de nuestro toolchain en la variable CC
  • Seleccionamos en la opción prefix el lugar donde queremos que se instale SQLite3
$ ./configure --host=arm-linux --prefix=devel/Libs CC=/opt/compiler/glibc-oabi-toolchain-arm-generic/bin/arm-unknown-linux-gnu-gcc


Compilar e Instalar SQLite3

domingo, 29 de enero de 2017

Cómo instalar Arch Linux en una memoria USB desde un sistema Linux (Debian)


Vamos a instalar la distributión Arch Linux en una memoria USB desde un sistema preexistente GNU/Linux (Debian).

Este artículo no trata de crear un live USB sino una distribución estandar en una memoria USB.


Realizaremos la instalación de Arch Linux en un proceso de dos pasos. Primero crearemos un lanzador (bootstrap) de Arch Linux en nuestro sistema huesped Debian.
Después ejecutaremos chroot para introducirnos en el lanzador, y entonces instalaremos Arch Linux en la memoria USB.



Instalar Arch Linux desde un sistema Debian preexistente en una memoria USB


Instalar desde un Linux preexistente:
https://wiki.archlinux.org/index.php/Install_from_existing_Linux


Primero enchufamos el dispositivo USB, y comprobamos los dispositivos y particiones con el comando lsblk:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 system cbdfff17-0865-448e-b7c1-04a50d168439 /
├─sda2 swap ee7134ec-a542-4c42-8b2e-8e40d3f59980 [SWAP]
└─sda3 ext4 home 9fbcbeb8-8723-43e1-8d08-340af9e14b8b /home
sdb
└─sdb1
sr0


Vamos a instalar Arch Linux en el dispositivo /dev/sdb (usa el adecuado para tu sistema)

Particionamos el dispositivo y creamos una partición arrancable.
$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 15 GiB, 16131293184 bytes, 31506432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x04030201

Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 31506431 31504384 15G 83 Linux



Formateamos la partición con el sistema de ficheros ext4 sin journaling para minimizar el número escrituras a la memoria USB.
$ sudo mkfs.ext4 -O "^has_journal" -L 'ArchUSB' /dev/sdb1



Descargamos el lanzador de Arch Linux

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