What every beginner absolutely needs to know about the journey ahead

Quincy Larson was just a ”guy in a suit in an office” and decided he wanted to learn how to code. So he asked around. He started by picking up a bit of Ruby then found himself skimming through other languages like Scala, Clojure and Go. He learned Emacs then Vim and even the Dvorak keyboard layout. He picked up Linux, dabbled in Lisp and coded in Python while living on the command line for more than half a year. ...

February 8, 2015 · 1 min · 85 palabras · Nacho Cano

The Exceptional Beauty of Doom 3’s Source Code

What would ”nice looking”—or ”beautiful”, for that matter—actually mean when referring to source code? I asked some programmer friends what they thought that meant. Their answers were obvious, but still worth stating: Code should be locally coherent and single-functioned: One function should do exactly one thing. It should be clear about what it’s doing. Local code should explain, or at least hint at the overall system design. Code should be self-documenting. Comments should be avoided whenever possible. Comments duplicate work when both writing and reading code. If you need to comment something to make it understandable it should probably be rewritten. » Shawn McGrath | kotaku.com

February 8, 2015 · 1 min · 106 palabras · Nacho Cano

El increíble caso de Werner Koch y GPG

Así, cabe preguntarse por qué el principal desarrollador de una pieza de software tan sensible y popular “va a la quiebra”. ¿Problemas de juego? ¿Derroche sin más? Porque un programador de ese calibre, en esa posición, debería cobrar lo suyo y más en Alemania, país de Koch. Pero la pregunta adecuada no es por qué va a la quiebra o cuánto cobra, sino de qué vive este hombre. ¿De qué vive -repetimos- el principal desarrollador de una pieza de software tan sensible y popular como GPG? La respuesta, desafortunadamente, es que nadie le pagaba por su trabajo: vivía de la caridad, de las donaciones. ¿Suena duro? Es aún peor. ...

February 7, 2015 · 1 min · 113 palabras · Nacho Cano

Highly critical “Ghost” allowing code execution affects most Linux systems

The vulnerability in the GNU C Library (glibc) represents a major Internet threat, in some ways comparable to the Heartbleed and Shellshock bugs that came to light last year. The bug, which is being dubbed ”Ghost” by some researchers, has the common vulnerability and exposures designation of CVE-2015-0235. While a patch was issued two years ago, most Linux versions used in production systems remain unprotected at the moment. What’s more, patching systems requires core functions or the entire affected server to be rebooted, a requirement that may cause some systems to remain vulnerable for some time to come. The buffer overflow flaw resides in __nss_hostname_digits_dots(), a glibc function that’s invoked by the gethostbyname() and gethostbyname2() function calls. A remote attacker able to call either of these functions could exploit the flaw to execute arbitrary code with the permissions of the user running the application. ...

February 6, 2015 · 1 min · 149 palabras · Nacho Cano

Solucionado el error «AttributeError: '_ssl._SSLSocket' object has no attribute 'issuer'» en Ubuntu Utopic Unicorn

Si al usar la librería de Python para XMPP nos aparece el error: Traceback (most recent call last): File "./test_xmpp.py", line 12, in cl.connect() File "/usr/lib/python2.7/dist-packages/xmpp/client.py", line 205, in connect while not self.TLS.starttls and self.Process(1): pass File "/usr/lib/python2.7/dist-packages/xmpp/dispatcher.py", line 303, in dispatch handler['func'](session,stanza) File "/usr/lib/python2.7/dist-packages/xmpp/transports.py", line 330, in StartTLSHandler self._startSSL() File "/usr/lib/python2.7/dist-packages/xmpp/transports.py", line 309, in _startSSL tcpsock._sslIssuer = tcpsock._sslObj.issuer() AttributeError: '_ssl._SSLSocket' object has no attribute 'issuer' parece que es debido a un fallo en dicha librería. ...

February 3, 2015 · 1 min · 127 palabras · Nacho Cano

What happens when you type google.com into your browser’s address box and press enter?

Except instead of the usual story, we’re going to try to answer this question in as much detail as possible. No skipping out on anything. This is a collaborative process, so dig in and try to help out! There’s tons of details missing, just waiting for you to add them! So send us a pull request, please! » Alex Gaynor | github.com

January 30, 2015 · 1 min · 62 palabras · Nacho Cano

Coder creates smallest chess game for computers

A French coder has developed what is thought to be the smallest-sized chess computer program. BootChess is only 487 bytes in size, and the code can be run on Windows, Mac OS X and Linux computers. That makes it smaller than 1K ZX Chess - a Sinclair ZX81 computer game, which contained 672 bytes of code and had held the record for 33 years. » Leo Kelion | bbc.com

January 30, 2015 · 1 min · 69 palabras · Nacho Cano

Every Time Travel Movie Ever, Ranked

With the release of yet another time travel movie this week (Project Almanac), it’s time for us to look back at the great time travel movies of our past. Here are all the major time travel movies ever, ranked. Here are the rules: No animation. No short films. And no movies that where someone is frozen (or something) and then they wake up in the future (so Mel Gibson’s Forever Young, Encino Man are OUT). ...

January 29, 2015 · 1 min · 80 palabras · Nacho Cano

Against DNSSEC

All secure crypto on the Internet assumes that the DNS lookup from names to IP addresses are insecure. Securing those DNS lookups therefore enables no meaningful security. DNSSEC does make some attacks against insecure sites harder. But it doesn’t make those attacks infeasible, so sites still need to adopt secure transports like TLS. With TLS properly configured, DNSSEC adds nothing. » Thomas & Erin Ptacek | sockpuppet.org

January 29, 2015 · 1 min · 67 palabras · Nacho Cano

Cifrar un directorio sincronizado en Mega con encfs

Ya tenemos cuenta en Mega y las megatools instaladas. Ahora vamos a cifrar el directorio, pero en lugar de utilizar ecrypt tal como hicimos con Dropbox, esta vez usaremos encfs. Suponemos que tenemos dos directorios, ~/mega y ~/mega.enc. Utilizaremos encfs, disponible en los repositorios, para cifrar el contenido del primero en el segundo, y compartir el segundo en Mega. Creamos el directorio en Mega: $ megamkdir /Root/mega.enc Montamos el directorio cifrado: $ encfs --reverse /home/user/mega /home/user/mega.enc Creando nuevo volumen cifrado. Por favor, elige una de las siguientes opciones: pulsa "x" para modo experto de configuracion, pulsa "p" para modo paranoia pre-configurado, cualquier otra, o una linea vacia elegira el modo estandar. ?> x Seleccionado modo de configuración Manual. Los siguientes algoritmos de cifrado estan disponibles: 1. AES : 16 byte block cipher -- Soporta claves de longitud 128 hasta 256 bits Soporta bloques de tamaño 64 hasta 4096 bytes 2. Blowfish : Cifrado por bloques de 8 bytes -- Soporta claves de longitud 128 hasta 256 bits Soporta bloques de tamaño 64 hasta 4096 bytes Teclee el numero correspondiente a su eleccion: 1 Algoritmo seleccionado "AES" Por favor, elige un tamaño de clave en bits. El cifrado que has elegido soporta tamaños desde 128 a 256 bits en incrementos de 64 bits. Por ejemplo: 128, 192, 256 Tamaño de clave seleccionada: 256 Usando tamaño de clave de 256 bits Elige un tamaño de bloque en bytes. El cifrado que tu has elegido soporta tamaños desde 64 a 4096 bytes en incrementos de 16. O bien, pulsa Intro para elegir el tamaño por defecto (1024 bytes) Tamaño de bloque del sistema de ficheros: 4096 Usando tamaño de clave de 4096 bits Los siguientes algoritmos de cifrado de nombres de archivo estan disponibles: 1. Block : Codificación en bloques, oculta tamaño de los nombres de fichero 2. Null : No encryption of filenames 3. Stream : Codificacion en canal, guarda nombres de fichero tan cortos como sea posible. Teclee el numero correspondiente a su eleccion: 1 Algoritmo seleccionado "Block"" --reverse especificado, no se está usando unique/chained IV Configuración finalizada. El sistema de ficheros a ser creado tiene las siguientes propiedades: Cifrado del sistema de ficheros: "ssl/aes", versión 3:0:2 Codificacion del nombre de fichero: "nameio/block", versión 3:0:1 Tamaño de la llave: 256 bytes Tamaño de Bloque: 4096 bytes Agujeros en archivos pasados a través del ciphertext. Ahora tendrás que introducir una contraseña para tu sistema de ficheros. Necesitaras recordar esta contraseña, dado que no hay absolutamente ningún mecanismo de recuperación. Sin embargo, la contraseña puede ser cambiada más tarde usando encfsctl. Nueva contraseña Encfs: Verifique la contraseña Encfs: Si no queremos tener que introducir la contraseña cada vez que montemos el directorio, podemos un comando que vuelque el contenido de un fichero con dicha clave, por ejemplo ~/.encfs_passwd: ...

January 28, 2015 · 3 min · 589 palabras · Nacho Cano