martes, febrero 13, 2018

Sistemas Distribuidos (3ª edicción) disponible de manera gratuita

El libro Distributed Systems 3rd edition (2017), escrito por Maarten van Steen y "Andy" Tanenbaum, puede descargarse de manera gratuita, acompañado de las figuras y presentaciones del mismo. Ojo, porque a día de hoy, dado la cantidad de peticiones que ha recibido, no están procesando peticiones de descarga del libro, dada la avalancha que han recibido.

Está dividido en nueve capítulos:

  • Introduction
  • Architectures
  • Processes
  • Communication
  • Naming
  • Coordination
  • Replication
  • Fault tolerance
  • Security

Puede comprarse por unos 33 dólares en Amazon una copia en papel.

jueves, febrero 08, 2018

Borrado seguro en macOS Sierra

Hasta la versión 10.11 de macOS (El Capitan), el sistema operativo instalaba el comando srm, el cual se podía utilizar para hacer un borrado seguro de los ficheros,usando el métido Gutmann (opción -G). Apple partió de una versión semiabandonada de srm que fue actualizando en sus propias fuentes. Actualmente la versión de Sourceforge tiene los cambios y mejoras introducidos por Apple.

Si se quiere instalar en Sierra, se puede bajar las fuentes (última versión 1.2.15) , compilar e instalar de la siguente manera:

$ ./configure --prefix=/usr/local
$ make
$ sudo make install

A partir de macOS Sierra (OS X 10.11) Apple ha añadido una nueva opción al comando rm que realiza tres sobrescrituas del fichero antes de eliminarlo del disco:

-P    Overwrite regular files before deleting them. Files are
      overwritten three times, first with the byte pattern 0xff,
      then 0x00, and then 0xff again, before they are deleted.

¿Por qué se ha eliminado el comando srm?. Porque a día de hoy, las unidades de disco sólido (SSD) que traen de serie los Mac soporta el comando trim, donde el sistema operativo le indica a la unidad que bloques han quedado libres, encargándose la unidad de borrarlos internamente. De esta manera se evitan escrituras innecesarias a los bloques de datos.

Bajar el JDK desde Oracle en la línea de comandos

No entiendo demasiado la postura de Oracle a la hora de bajar el Java Developer Kit, que hace ir a página de descargas y asegurarse que se ha pulsado el botón de que se acepta la licencia del JDK. Sin embargo, hay una manera muy sencilla de bajarse el JDK sin necesidad de ir a dicha página y usando curl o wget. Se trata de añadir la siguiente cookie a la petición:

Cookie: oraclelicense=accept-securebackup-cookie

Por ejemplo, para bajarnos el JDK para Linux 8u162, bastaría usar esta orden:
curl -C - -L -O -# -H  "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz

¿Por qué esto es útil? Porque permite realizar instalaciones y provisionamientos de máquinas desde scripts o usando sistemas como puppet o ansible. En mi caso, lo utilizo para tras desplegar una máquina en un servicio EC2 de Amazon, ejecutar un script que lo deja con el software instalado que necesito.

miércoles, enero 31, 2018

PacketTotal

Supongo que muchos conocéis Virustotal, el sitio web creado por Hispasec Sistemas para analizar ficheros de todo tipo buscando malware. Pues con la misma idea, pero para analizar capturas de tráfico en formato pcap, ha nacido la web PacketTotal, donde los usuarios suben capturas de tráfico en formato pcap y una serie de motores de análisis , basados en The Bro Network Security Monitor y Suricata analizan los flujos de información que contiene la captura.

Por supuesto, estos pcaps serán luego públicos en PacketTotal, con lo cual se debe de tener cuidado con las capturas que se suben.

DIY C compiler: Artículos de Nora Sandler

El desarrollo de un compilador es de las tareas más complicadas que existen en ingeniería informática. Si además, lo que se quiere es compilar un lenguaje como C, la complejidad aumenta bastante.

Pero siempre se puede aprender - muestra de ello - es la serie de artículos que está públicando en en su blog Nora Sandler: La construcción de un compilador de C paso a paso, usando la técnica descrita en An Incremental Approach to Compiler Construction, un artículo publicado por Abdulaziz Ghuloum. Dejo en esta entrada las referencias a los artículos que ha publicado hasta ahora (eso si, están en inglés):