Para alternar diversas configuraciones de página en un mismo documento, hay que separarlas con un salto (manual) de página. Al añadirlo se puede especificar el estilo de página que se desea, asà como la numeración de página (útil para especificar una numeración donde la primera página del documento no corresponde con el número de página… Seguir leyendo LibreOffice writer ajustes de página
Etiqueta: trivia
Compiladores Intel
Parallel Studio es una suite de compiladores y bibliotecas, entre las que se encuentran MKL (Math Kernel Library). Por defecto, la opción de instalar las bibliotecas paralelas Blacs y Scalapack (para MPI) está desactivada. Para activarla, hay que ir a «Component Selection» / «Intel Math Library for C++» (o Fortran, según el lenguaje que vayamos… Seguir leyendo Compiladores Intel
SSL Reverse proxy con Apache
Un ejemplo que sirve para Meteor: SSLProxyEngine On # snake oil certs in proxyied service -> skip checks SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off ProxyRequests Off ProxyPreserveHost On ProxyPass /websocket ws://localhost:3000/websocket ProxyPassMatch ^/sockjs/(.*)/websocket ws://localhost:3000/sockjs/$1/websocket ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ProxyPassReverseCookiePath / / ProxyPassReverseCookieDomain 127.0.0.1 52.211.154.50 RequestHeader set X-Forwarded-Proto «https» Parece que en nginx la… Seguir leyendo SSL Reverse proxy con Apache
Squid proxy
Si en los log aparece el error «TCP_REFRESH_FAIL_ERR», comprueba que el servidor donde corre squid resuelve correctamente nombres (DNS)
Discos virtuales en Xen Server
Con el comando vhd-util podemos obtener un listado de los VDI/VHD de un Storage Repository (SR) de Xen Server: vhd-util scan -f -a -c -m «VHD-*» -l nombre_VG (el nombre del vg de Xen lo podemos averiguar con vgs. Normalmente empieza con VG_XenStorage) vhd-util scan muestra una jerarquÃa de VHD, con su tamaño virtual y… Seguir leyendo Discos virtuales en Xen Server
LÃmites virtualización
Anfitrión Virtualbox: 256 CPU (core) Máquina virtual Virtualbox: 32 CPU (1 socket * 32 core), 1TB RAM Xen QEMU-KVM: hardware (N socket * M core * T thread) VMware
Repartir espacio disco NVME entre Windows y Linux
Arrancar Linux desde pendrive (por ejemplo, Ubuntu live) Gparted. Reducir tamaño partición Windows. Mover comienzo partición Linux (para aprovechar el espacio liberado). Al cambiar el sector de inicio de la partición de sistema de Linux, puede ser que Grub no sea capaz de arrancar Linux. Con lo cual lo más simple es volver a reinstalar… Seguir leyendo Repartir espacio disco NVME entre Windows y Linux
OpenGL en remoto (ssh) y Nvidia
Para el rendering OpenGL en un ordenador remoto se recurre (por defecto) a «indirect rendering» (los comandos Open GL pasan por el protocolo GLX). El «direct rendering» permite acceder directamente a la GPU del ordenador donde se ejecuta la aplicación. Este es el modo que usa por defecto el controlador nativo de Nvidia, que de… Seguir leyendo OpenGL en remoto (ssh) y Nvidia
Fichero /proc/pid/smaps (mejor filtrado con awk 😉 )
Herramienta smem
http://unix.stackexchange.com/questions/71714/linux-total-swap-used-swap-used-by-processes
Combinar correspondencia con Inkscape
Una de las muchas ventajas de Inkscape es que el formato de fichero que utiliza es el estándar SVG, que a su vez se basa en XML. Al ser texto plano, se puede procesar fácilmente. Por ejemplo, se diseña un formulario con Inkscape en el que los campos (nombre, dirección…) se rellenan con identificadores únicos.… Seguir leyendo Combinar correspondencia con Inkscape
# Montar sudo cryptsetup --type tcrypt open ruta-a-volumen-truecrypt truec1 sudo mount /dev/mapper/truec1 punto-montaje # Desmontar sudo umount /dev/mapper/truec1 sudo cryptsetup --type tcrypt close truec1
Habilitar bluetooth en Thinkpad:
echo 1 > /sys/devices/platform/thinkpad_acpi/bluetooth_enable
Instalar bluez y bluez-utils
Cargar el módulo btusb. Arrancar el servicio bluetooth
modprobe btusb systemctl start bluetooth.service
Hacer el emparejado y conexión con la herramienta bluetoothctl
bluetoothctl [bluetooth]# list [bluetooth]# select <controller mac> [bluetooth]# power on [bluetooth]# scan on [bluetooth]# agent on [bluetooth]# devices [bluetooth]# pair <mouse mac> [bluetooth]# trust <mouse mac> [bluetooth]# connect <mouse mac>
GTX vs Quadro
El rendimiento no sólo depende del hardware puro y duro: también influye qué flujo tiene nuestra aplicación y lo optimizado de las capas intermedias (bibliotecas y drivers). Esto es particularmente importante en el caso de las GPU. Normalmente, para GPU uno suele recurrir a CUDA. En cuyo caso, parece que lo más importante es cuantos… Seguir leyendo GTX vs Quadro
Interesante artÃculo sobre microbinarios, compilación cruzada y saltarse libc, de Chris Wellons (autor de Elfeed, un lector RSS para Emacs)
En paralelo, cada vez hay más distribuciones que recurren a alternativas minimalistas a GNU libc, como ulibc o musl
Inkscape: exportar en PDF multipágina
Inkscape no soporta per-se múltiples páginas (por el rechazo del estándar SVG). Sin embargo, pueden simularse como capas, guardarlas por separado («Layers as separate SVG, .tar»). Extraer esos svg del tar, y luego convertirlos a PDF (con algún comando como cairosvg, o el propio inkscape) Por último, se pueden combinar todos esos PDF sueltos en… Seguir leyendo Inkscape: exportar en PDF multipágina
Varias recetas para compilar el compilador C/C++ de GNU (valga la redundancia :-p)
Receta «complicada» (estática)
Si tienes N cores/CPU, puedes añadir «-j N» al make para acelerar el proceso.
Igualmente, si sólo necesitas (por ejemplo) C, C++ y Fortran, puedes indicarlo con «–enable-languages=c,c++,fortran»
cd gcc ./contrib/download_prerequisites cd .. mkdir objdir cd objdir ../gcc-4.7.2/configure --prefix=~/gcc --enable-languages=c,c++,fortran make -j 8 make install
El artÃculo «Security Guide: How to Protect Your Infrastructure Against the Basic Attacker» de las gentes de Mailgun es exhaustivo a la par que claro, por lo que resulta una estupenda forma de iniciarse en los misterios de la «securización de servidores». Incluye ejemplos de cortafuegos, restricción de recursos, monitorización…
Algunos puntos particularmente interesantes:
- «demonización»: (systemd / initd) + monit, supervisord, skarnet s6, daemontools
- «capabilities» en lugar de setuid/sudo
- Usar ProxyCommand en vez de ssh-agent (cuando hay pasarelas/bastión por medio)
- balanceo de carga (apache / nginx / haproxy / vulcand) que separe el servidor de aplicaciones (privado) del servidor web público
La charla «Simple but Effective Server Hardening», de Kyle Rankin, va bastante más al grano. Pero también merece la pena echarle un ojo.
A destacar:
- evitar fail2ban
- SSH: impedir login como Ruth :-p, o el uso de «claves tecleadas». Usar opciones de cifrado seguras (aes256-gcm@openssh.com, curve25519-sha256@libssh.org, hmac-sha2-512-etm@openssh.com …)
- Usar pares de claves seguros (ver abajo)
- Two factor authentication. como Google Authenticator
- Control de versiones de los ficheros de configuración de los servidores
- Acceso remoto por pasarela («bastión»)
# pares de claves "seguros" (en 2015...) ssh-keygen -t rsa -b 4096 ssh-keygen -t ed25519
El servidor cayó – hora del postmortem
Antes de la muerte súbita, uno puede plantearse muchas cosas. A toro pasado, poco más que hacer un análisis forense… Si tienes programadas alertas para posibles fallos, tu nagios (o equivalente) te habrá avisado con antelación para prevenir la catástrofe. Si además tienes montado algo más o menos altamente disponible, el impacto no suele ser… Seguir leyendo El servidor cayó – hora del postmortem
ATI ofrece una forma sencilla de cambiar entre la tarjeta integrada (menor rendimiento, bajo consumo) y la tarjeta con aceleración 3D (mayor rendimiento, consumo energético más alto):
# comprobar qué tarjeta se está usando aticonfig --pxl # usar GPU sudo aticonfig --px-dgpu # usar tarjeta integrada sudo aticonfig --px-igpu
Después del cambio, hay que reiniciar el servidor X. Lo más sencillo para ello es cerrar sesión y volver a entrar (login)
systemtap es una completa herramienta que permite cotillear lo que se cuece en el kernel (en la lÃnea del Ãnclito dtrace). En la documentación (/usr/share/doc/systemtap-doc/examples) hay multitud de ejemplos interesantes de sus posibilidades. Algunos ejemplos:
- general/watchdog.stp: procesos de usuario relacionados con una llamada que tarda más de lo esperado
- interrupt/interrupts-by-dev.stp: interrupciones por dispositivo
- io/disktop.stp: procesos con entrada/salida más intensa
- process/sigkill.stp: señales de terminación
La única «pega» es que necesita la versión debug del kernel…