DesconectadoSi quisieron entrar al blog recientemente posiblemente hayan notado que no estaba ahí. Por un problema con el dominio, el blog estuvo fuera de línea por un buen rato. La peor parte me la llevé por el correo electrónico, porque me quedé sin mi correo picandocodigo.net por todo ese tiempo.

El sitio seguía acá, base de datos, servidor, archivos, todo funcionando, pero sin el dominio, por lo que no se podía acceder.

Pero acá estamos de nuevo, espero que no hayan extrañado mucho. Ya que estamos, ¿cómo estás lector? ¿qué te trae por acá? ¿Qué contás de nuevo?

Todo empezó cuando descubrí que no funcionaba mi correo electrónico, llegué a que el dominio no funcionaba, e hice los trámites correspondientes para que se restaurara la cosa. Después de eso no había más que esperar. No dormí demasiado tranquilo sabiendo que todos los correos que llegaran a mi cuenta estaban rebotando…

Ayer cada tanto revisaba el sitio refrescando la url en una pestaña de Firefox. Como suele pasar con los programadores vagos como uno, cuando hay que repetir una tarea un par de veces en la computadora, terminamos escribiendo un programa que lo haga por nosotros.

Así fue que abrí Emacs y abrí el archivo nuevo “ping.rb”. Decidí volver a usar la gema requests (nota relacionada), que conocí hace poco en RubyConf Argentina. Se trata de una gema super simple para hacer pedidos HTTP inspirada en la biblioteca del mismo nombre de Python. También usé la gema tco, que permite imprimir con colores en la terminal. Fue así que escribí el siguiente código:

require 'requests'
require 'tco'
 
while true do
  begin
    response = Requests.request("GET", "https://picandocodigo.net")
    puts "WORKING".bg("#00FF00") if response.status == 200
    `vlc --fullscreen http://www.youtube.com/watch?v=wOh968qao74 &`
    break
  rescue => e
    puts e.message.fg("#FF0000")
  ensure
    sleep 60
  end
end

Cada 1 minuto revisar si responde el dominio y si el código de retorno del pedido es 200 (OK!), ejecutar vlc con este video que siempre me pone de buen humor. Mientras tanto, imprimir el mensaje de error si no encontraba el nombre o servicio. Este es el tipo de script del que estamos pendientes al principio, pero nos dejamos para sorprender al “yo” del futuro.

Así fue, lo dejé corriendo en una terminal, me entretuve con el trabajo y me olvidé por completo. Más tarde se dió la casualidad que estaba usando una de mis gemas ricojson para parsear la respuesta de una API en la terminal, y ya me estaba poniendo de buen humor con mi yo del pasado. “Qué bien que estuviste en escribir esa gema, por más que seas el único de los dos usuarios que tiene” (en RubyConf Argentina me contó Martín de cinemargentino que conocía a un usuario más 😀 )

En ese mismo momento me interrumpió VLC ejecutando el video en cuestión. Obviamente dejé lo que estaba haciendo, verifiqué que el sitio y el correo electrónico estaban funcionando correctamente de nuevo, y paré todo para mirar el video en cuestión…

El momento de la verdad

El momento de la verdad

Así que de ese tiempo oscuro en el que estuve aislado de mi correo electrónico y mi blog personal, saqué este post… El script lo ejecuté a las 12:08:12 y terminó a las 17:28 con algunos segundos:

ping-server-00

Así que estuvo 5 horas y 20 minutos funcionando 🙂

Algo que “aprendí” es que WordPress a veces cuando “se da cuenta” que perdió un post programado, lo publica. El post de ayer estaba programado para más temprano. Cuando finalmente pude entrar al Escritorio del sitio, fui a editarlo para darle una nueva programación, y se publicó solo.

Espero que no vuelva a pasar, y si pasa, prometo otro post al respecto. ¡Gracias por leer!

2 comentarios en este post

Feed de comentarios

Dejar un comentario

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.

Toasty!