Australia

Por algún motivo este artículo ya no se puede encontrar en Cracked, y solo lo he podido encontrar en la Wayback Machine, así que lo reproduzco aquí porque una joya así no se puede perder.

Australia is a wonderful, beautiful island continent home to a peaceful, happy, and loving people… that Mother Nature hates so much she can taste stabbing.

You can say Octopuses or Octopodes all you want; if it’s good enough for The Beatles, it’s good enough for Cracked.

Just The Facts

  1. Australia is the largest island nation in the world, straddling the border of the Pacific and Indian Ocean.
  2. It has a rich and exotic ecosystem supporting fantastic flora and fauna…all of which were unfortunately eaten by the monsters that live there.
  3. Its primary spoken language is screaming.

From the Abyss It Is Birthed

Back in the 1770s the British Empire discovered Australia and, after finding it generally unfit for human habitation, proceeded to send all of their criminals and generally unwanted peasants there…because basic human empathy was not to be invented until the year 1821.

After somehow managing to survive on Monster Island for over a century, it was considered only fair to grant the Australian citizens their freedom and on January 1st, 1901, Australia gained federation of its colonies, and The Commonwealth of Australia was born.

Things in Australia that Will Kill You

Everything. No, seriously: Everything.

First there’s the wildlife: If something appears to be cute and harmless in Australia, then we promise you – it has only evolved that way to lure you close enough for the thousands of ravenous, prehensile blade-tongues to descended upon you.

Then there’s the Geography: Consisting mostly of arid, dry desert, (populated by over 100 venomous species of snake,) the harsh local climate is peppered with small, livable areas presumably just to lull human beings into a false sense of security.

Ah, but the tropical beaches, you say! Surely the paradise on Earth that is the Australian beach makes up for an entire continent of biological weapons. And it’s true: Australia is known for having some of the best beaches in the world…all you have to worry about are the Saltwater Crocs, Great White Sharks, poisonous Stonefish, or being stung by the Box Jellyfish: The deadliest and most painful sting of any Jellyfish species in the world.

Your best bet is just to stay in the city then, right? Enjoy the local culture; go visit the capital of Canberra, or visit beautiful Sydney and see the wonder of the Opera house. And that’s totally safe: Just remember to wear protective clothing, stay in well travelled areas, always know the nearest path to a hospital, and just generally try not to exist – because Australia is also home to over 280 species of poisonous spider, including that aforementioned Sydney Funnel Web Spider. What, did you think it was just a name? No, it lives in cities, in garages, in tool sheds and houses – it even swims. IT FUCKING SWIMS.

Seriously: Everything in Australia evolved solely to kill everything else in Australia – and you show up with your soft, unarmored skin, tiny, rounded teeth, and ridiculously non-poisonous spit and expect a vacation?

You just walked into Mother Nature’s Thunderdome, friend. And in this analogy, you’re not Max; you’re the dead retard.

Things in Australia that Will Not Kill You

….

Hugh Jackman seems nice.

Permitir tráfico web en instancias de Oracle Cloud

Oracle Cloud nos permite usar dos instancias (básicas, pero bastante decentes) gratis de por vida. El proceso de creación es similar al resto de proveedores cloud, y aquí hay una guía muy completa.

El motivo de esta entrada es por si en el futuro se me olvida que una vez abiertos los puertos 80 y 443 en la lista de seguridad de la VCN de nuestra instancia hay además que abrirlos en el firewall de Ubuntu:

sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save

Configurar cuenta de Office 365 en GMail

La parte de POP no da problemas siguiendo las instrucciones oficiales, pero para enviar correos los datos de configuración del servidor SMTP no funcionan.

Hay que usar como servidor SMTP smtpout.secureserver.net y como puerto 465.

Editado: para poder enviar email desde PhpMailer hay que usar como contraseña una contraseña de app que hay que generar previamente.

Notas sobre diseño de APIs

Después de releer el libro de Phil Sturgeon Build APIs you won’t hate dejo aquí estas notas a tener en cuenta para el diseño de APIs:

  • No usar un número autoincremental como identificador de los recursos, es mejor utilizar un identificador alfanumérico.
  • Nombres de los recursos en plural (places, users, etc.)
  • Los nombres de los recursos no deben ser verbos sino sustantivos. Por ejemplo, en vez de /users/5/send-message es mejor /users/5/messages
  • Para generar documentación: Api Blueprint
  • Principales códigos de respuesta:
    • 200 – Generic everything is OK
    • 201 – Created something OK
    • 202- Accepted but is being processed async (like video encodings)
    • 204 – The server has successfully fulfilled the request and that there is no additional content to send in the response payload body
    • 400 – Bad Request (should really be for invalid syntax but some folks use it for validation)
    • 401 – Unauthorized (no current user and there should be)
    • 403 – The current user is forbidden from accessing this data
    • 404 – That URL is not a valid route, or the item resource does not exist
    • 410 – Data has been deleted, deactivated, suspended, etc
    • 405 – Method Not Allowed (your framework will probably do this for you)
    • 500 – Something unexpected happened and it is the APIs fault
    • 503 – API is not here right now, please try again later
  • Ejemplo de paginado:
{
  "data": […],
  "pagination" :
  {
    "total": 1000,
    "count": 12,
    "per_page": 12,
    "current_page": 1,
    "total_pages": 84,
    "next_url": "/places?page=2&number=12",
  }
}

Enviar enlaces ed2k a mldonkey (configurar xdg-open para el protocolo ed2k)

Es habitual tener un ordenador pequeño tipo Raspberry Pi o similar encendido continuamente como servidor de archivos, y seguramente tengamos corriendo en él mldonkey, que es un cliente tipo eMule de línea de comandos.

Si queremos que los enlaces ed2k de las páginas que visitemos se añadan como descargas podemos usar una extensión como esta, que envía los enlaces a nuestro servidor mldonkey.

Pero claro, lo más normal hoy día es que la página que visitemos esté bajo https, y nuestro servidor mldonkey esté bajo http, lo que hace que el navegador rechace abrir una URL no segura desde un sitio seguro.

Para solucionar este problema vamos a hacer otra cosa. Nos olvidaremos de la extensión del navegador y registraremos un manejador para el protocolo ed2k://. Este manejador abrirá los enlaces en una aplicación que vamos a crear que hará la conexión con el servidor mldonkey.

Dicho así parece mucho más complicado de lo que es, ya verás. Lo primero que haremos será crear un fichero ~/.local/share/applications/ed2k.desktop con este contenido:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Name=ED2K Link Handler
Comment=Sends ed2k links to remote mldonkey server
Exec=ed2kHandler %u
MimeType=x-scheme-handler/ed2k

Las dos líneas más importantes son las dos últimas, donde indicamos el programa al que se enviarán los enlaces y el tipo mime que queremos registrar. ed2kHandler es el nombre de nuestra pequeña aplicación y en el tipo mime la parte ed2k del final es lo que indica que queremos asociarla a las URLs que usen el protocolo ed2k.

Una vez hecho esto ejecutamos estas dos líneas:

sudo update-desktop-database
xdg-mime default ed2k.desktop x-scheme-handler/ed2k

y ya tendremos hecha la asociación del protocolo con nuestra aplicación. Ya solo nos faltaría crear la aplicación.

La aplicación la haremos con PHP, y para ello crearemos el fichero /usr/bin/ed2kHandler con este contenido (una vez creado hay que darle permisos de ejecución):

!/usr/bin/php
<?php

if (!isset($argv[1]))
    die("Usage: ed2kHandler elink\n");

$url = 'http://USER:PASS@192.168.0.4:4080/submit?q=';
$url .= $argv[1];
$url = str_replace('ed2k://', 'ed2k%3A%2F%2F', $url);

file_get_contents($url);

Reglas generales para el género de los sustantivos en alemán

Una de las partes complicadas del alemán es saber el género de los sustantivos, porque hay tres y no coinciden con los que usamos en español, así que me copio aquí unas cuantas reglas generales para tenerlas a mano y repasarlas de vez en cuando. Ojo que todas tienen excepciones, pero para salir del paso si no recordamos el género pueden servir:

Masculino

  • Sexo natural según el género: der Vater, der Sohn, der Onkel.
  • Profesiones: der Polizist, der Koch, der Lehrer. Para construir el femenino añadimos -in: die Polizistin, die Köchin, die Lehrerin.
  • En general los países no tienen género, pero los que lo tienen son masculinos: der Libanon, der Irak, der Iran, der Sudan, der Jemen.
  • Las estaciones del año (der Frühling, der Sommer, der Herbst, der Winter), los meses del año y los días de la semana.
  • Precipitaciones, tormentas, rayos y centellas: der Regen, der Schnee, der Sturm, der Donner, der Blitz,…
  • Los puntos cardinales: der Norden, der Süden, der Osten, der Westen.
  • Marcas de coches: der Audi, der BMW
  • Montañas, minerales y piedras
  • Nombres de bebidas alcohólicas (ojo, no das Bier claro)
  • Terminaciones de palabras típicas de masculino:
    • -and
    • -ant
    • -är
    • -ast
    • -ent
    • -er
    • -eur
    • -ich
    • -ig
    • -iker
    • -ismus
    • -ist
    • -ling
    • -or

Femenino

  • Sexo natural según el género: die Mutter, die Tante, die Tochter
  • Las especies de árboles: aunque el árbol es masculino (der Baum), las especies de árboles son femeninas: die Ulme, die Eiche
  • Las flores, los números, aviones, motos y barcos.
  • Terminaciones de palabras típicas de femenino:
    • -ade
    • -age
    • -aille
    • -aise
    • -anz
    • -e
    • -ei
    • -elle
    • -enz
    • -ette
    • -ie
    • -ik
    • -ille
    • -ine
    • -in
    • -ion
    • -isse
    • -ität
    • -itis
    • -ive
    • -heit
    • -keit
    • -schaft
    • -sis
    • -ung
    • -ur

Neutro

  • Metales
  • Elementos químicos
  • Hoteles, cines y cafés
  • Colores
  • Notas musicales
  • Unidades físicas
  • Letras del abecedario
  • Terminaciones de palabras típicas del neutro
    • -chen: todos los diminutivos son neutros.
    • -ett
    • -ing
    • -ma
    • -tel
    • -um

Fuentes: Crónicas germánicas, alemanista.com

Una acción de Nemo para reducir el tamaño de los PDF

Primero guardamos este script que es el que se ocupa de reducir el PDF:

Lo descomprimimos (WordPress no deja adjuntar ficheros .sh) y lo guardamos por ejemplo en /home/koas/bin.

Y para la acción de Nemo creamos un fichero en /home/koas/.local/share/nemo/actions con este contenido:

[Nemo Action]
Active=true
Name=Shrink PDF
Exec=/home/koas/bin/shrinkpdf.sh %F %F.pdf 300
Selection=S
Extensions=pdf;
EscapeSpaces=true

Mover carpeta de datos de MySQL

Hay ya miles de entradas sobre cómo cambiar la carpeta de datos de MySQL de /var/lib/mysql a cualquier otra, pero me costó encontrar la solución al problema “Error 13 – Permission denied” que me daba al intentar arrancar MySQL después de cambiarle la carpeta de datos.

El problema es que la nueva ruta estaba en /media/koas/Ext4Bucket, un segundo disco duro que tengo instalado. Para que funcione hay que darle a /media/koas permisos 777.