nachopro yendo de la cama a la compu…

18Nov/112

Borrar MBR y tabla de partición

Hola a todos!

En esta oportunidad les cuento cómo, desde Linux/OSX, reventar un disco rígido para dejarlo "0km".

# dd if=/dev/zero of=/dev/sda bs=1M count=2

Con esto lo que hacemos es llenar de ceros los primeros 2MB del disco rígido, donde se encuentra el MBR y la tabla de parción (o parte de ella). Con esto dejamos el disco preparado para ser particionado sin dejar basura en él.

pd: esto no deja el disco vacío, de hecho sus datos pueden ser recuperados!

23Oct/112

Telmex, Claro, HG850a y la repú

Bueno, todos mis allegados conocen las peripecias que vivo con Telmex/Claro en mi conexión hogareña a internet. Voy a pegar dos emails que mandé y en los que me responden cosas como "es un problema en su red internar, no podemos hacer nada".

Tengo un GPON Huawai HG850a y Telmex de 5Mb.

Estimados, necesito hacerles una consulta técnica. Intenté evacuarla por teléfono pero nunca me pudieron dar una solución.

La prueba consiste en bajar del mismo servidor una imagen de CD de Ubuntu o ver un mismo video HD en Youtube.

Cuando conecto:
* una PC con determinadas placas de red (Realtek, Nvidia);
* notebooks;
* playstation;

directamente al módem de ustedes la conexión anda de mil maravillas:
Descarga de 400KB/s a 600KB/s aprox (ya sea que use Windows o Mac OS X).

El problema viene cuando conecto routers (tengo uno Linksys, TPLink, NetGear y una PC Linux que tengo desde siempre).
En ese caso por más que haya una única PC conectada al router, no logro bajar a más de 90KB/s.

Por otro lado usando una PC con Windows XP y su Internet Connection Sharing como router se navega perfectamente teniendo 2 o 3 PCs descargando simultaneamente.

Quisiera saber si el módem que ustedes me proveen detecta de alguna manera que conecté un router y en base a eso activa algún sistema de QoS, porque si no no encuentro razón alguna para que suceda esto.

En los routers que tengo he desactivado siempre el QoS, verificado que el MTU esté bien, que las reglas de NAT y routing sean las correctas pero no logré mejorar esta situación. También, sospechando que el módem pueda detectar mis routers probé cambiando la Mac Address por alguna de Realtek, Intel o Nvidia... pero tampoco funcionó.

Realmente me gustaría que me den una respuesta concreta, ya que telefónicamente me dicen que es un problema del router, que lo reinicie y cosas de ese estilo. Llevando mi mismo router y con la misma configuración a la casa de un vecino que tiene el mismo servicio todo funciona correctamente. Esto lo he comentado telefónicamente e insisten en que el problema es mío y no del servicio o configuración del módem de fibra óptica.

Espero poder resolver este problema, porque la realidad es que si bien la latencia de la fibra óptica es genial para jugar en internet, estoy pagando 170 pesos para navegar a 100KB/s y me parece un despropósito.

Muchas gracias.

Luego mandé este segundo, mucho más jugoso!

Estimados, me vuelvo a contactar para ampliar la consulta en base a
unas pruebas que he realizado.

Hoy cuando charlé con la persona de soporte técnico me encontraba en
mi lugar de trabajo. Al llegar a mi domicilio realicé las siguientes
pruebas:

Prueba 1

1. Conecté un switch (no un router, un simple switch) directo al módem
de fibra que ustedes me asignaron.
2. A este switch conecté por cable dos PCs, una Laptop y una playstation.

* Al verificar los equipos, todos habían adquirido IPs públicas del
tipo 186.182.122.x;
* Cada uno de ellos navegaba a un máximo de 90KB/s;

Prueba 2

1. Conecté un switch directo al módem de fibra de ustedes.
2. A este switch conecté una única PC.

* dicha PC tomó una IP pública y navegaba a un máximo de 90KB/s

Prueba 3

1. Conecté una PC con Windows XP e Internet Connection Sharing como
router directo al módem.
2. Conecté un Router (con la misma configuración que lleva cuando lo
conecto directo al módem de ustedes) a esa PC con Windows XP.
3. Conecté mis otras PCs al router.

* Todas las PCs conectadas el router navegaban de mil maravillas,
entre 150KB/s a 600KB/s

Con estos resultados se da por entendido que:

* el módem que ustedes me dieron efectivamente detecta cuando hay un
switch conectado a él y reparte el ancho de banda de forma fija aunque
haya un único equipo conectado;

* el módem detecta cuando se conecta una PC y entonces le asigna todo
el ancho de banda (asignado por el plan que tengo) a ese único equipo;

* el módem interpreta que se le conectó un switch cuando en realidad
se le conecta un router, entonces todas las PCs conectadas a dicho
router quedan limitadas a 90KB/s que es lo que el módem le da al
router.

Una duda que me surge es que cómo yo contratando un servicio
residencial puedo gozar de tantas IPs públicas.

A esta altura, y con todas las pruebas que realicé no caben dudas algo
en la configuración del módem está mal, y no me refiero a los valores
del GPON, si no a su configuración operativa.

Por las dudas adjunto la Mac Address del módem: 28 6e d4 xx xx xx
(esto lo hago, porque hace un tiempo tuve una serie de problemas con
la conexión y me decían que estaba todo bien cuando el módem
directamente no sincronizaba y resultó ser que tenían otra mac address
en su sistema)

Bueno, quedo a la espera de una respuesta.

Muchas gracias.

Por lo pronto, navego a 1Mb :/

23Feb/110

Colas para gente como yo

En esta oportunidad les contaré sobre las colas y mi incursión en ellas :)

Primero que nada, amo las colas... las amo por el doble sentido que generan en nuestro idioma, seguramente tendré miles de hits con intenciones de dudooosa moralidad :P

¿Qué es una cola?

Una cola es una estructura de datos, es un elemento en el que podemos poner datos por un lado y sacarlos por el otro :P

¿Para qué sirve una cola?

Según lo recién expuesto, para ponerla y sacarla :P Esto aplicado a la informática serviría para que un programa, encargado de cierta tarea, pueda poner su resultado en la cola; luego, otro programa encargado de procesar esos resultados los tome y haga algo.

RabbitMQPasando a la parte seria del asunto voy a contarles de mi experiencia con RabbitMQ. Jaja, no puedo evitar reirme: colas, meter, sacar, rabbit (conejito), saquen sus conclusiones :P -aunque claro que PlayBoy no es algo del ambiente nerd-

Entendamos la infraestructura y aclaremos los tantos: RabbitMQ implementa el protocolo AMQP, cosa que no conozco en detalle -saliendo de que es un sistema de colas abierto- ni me interesa por el momento. Así hablaré basándome en RabbitMQ (siendo que la mayoría va a ser aplicable a colas basadas en AMQP).

Teoría de colas x $2.-

Vayamos por partes, en todo sistemas basados en colas tenemos tres elementos principales:

  1. Un emisor: Es el que origina un dato y lo pone en la cola.
  2. La cola: Es el lugar donde ese dato reside.
  3. Un receptor: Es el que toma un dato y hace algo con él.

Nos vamos a enfocar en el punto dos: La cola.

La cola en realidad comprende un concepto algo más complejo que un simple lugar donde se tiran cosas y de dónde se las sacan. En ella encontraremos:

  1. El message: Será el portador de nuestra información.
  2. El exchange: Será el recepcionista de nuestro mensaje y deberá saber qué hace con él.
  3. La routing key: Será una simple palabra o texto que nuestro exchange deberá conocer.
  4. La queue: Será la cola en donde realmente residirá nuestro message.
  5. El binding: Será el encargado de decirle al exchange en qué queue guardará el message dado según su routing key.

El message es un objeto que contiene la información concreta que le damos nosotros y una serie de propiedades, en la que destacamos el delivery_mode, que acepta dos valores 1: mensaje temporal, 2: mensaje persistente.

Las colas son demasiado flexibles para los que estamos acostumbrados a las cosas viejas de la informática, por ejemplo: Se declaran en tiempo de ejecución; se borran cuando el último cliente se desconecta y éstas están vacías; por parte del servidor no hace falta configurar un corno; etc; etc.

El exchange es un broker, es con quién charla directamente el programa que se conecta a la cola para meter un message. Él sabe, o debería saber, qué hacer con el mensaje que le damos -es decir, en qué cola guardarlo- y cómo distribuirlo: direct: es un método de trabajo donde una routing key define una única cola de destino, fanout: es un método en el que no importa nada, todo lo que llega va a todas las colas definidas, entre otros modos que hay y que no voy a tratar.

La routing key es un simple texto idenfiticativo, pero que no trataré en mayor detalle.

La queue es la amada cola, que puede ser o no persistente: es decír que puede existir mientras se use y luego desaparecer o bien durar en el tiempo, soportando que el servidor sea reiniciado.

El binding es la acción de crear la siguiente regla: exchange-routing key va a la cola queue.

Hasta aquí, no van a entender un carajo... y mi idea no es ayudarlos, sino quedar como un duque en el tema y ganar minitas :P

Ahora vamos a las acciones básicas que tenemos en la cola:

  1. publish: Se le da el message deseado, el exchange a usar y la routing key.
  2. get: Se le da el nombre de la cola, para obtener un mensaje.
  3. consume: Se le da el nombre de la cola y queda a la escucha de mensajes.
  4. tx_select: Se usa para activar transacciones.
  5. tx_commit: Se usa para confirmar la transacción y automáticamente inicia otra.
  6. tx_rollback: Se usa para abortar la transacción y automáticamente inicia otra.

En fin, acá hay conceptos básicos y otros complejos... realmente esto lo pensé para mí mismo pero les prometo que en breve publicaré unos ejemplos en Python para que puedan aprender un poco más de cómo implementar esta teoría.

Hasta la próxima ;)

Filed under: Informática No Comments
6May/100

¿Firewall o no?

Hace un buen tiempo estoy a cargo de unos servidores, por así decirlo, y tuve que poner manos a las obras en cuanto a la seguridad de los mismos.

Según un referente en la materia (?), Ángel Freire, y con quién coincido: Es mejor controlar qué servicios se brindan y dónde escuchan, que desconocerlos y a causa de eso cargar reglas mediante iptables a nuestro querido net filter.

Pero algo se escapa, qué pasa con los ataques por fuerza bruta a servicios vitales como SSH? Bien, a continuación mi solución.

21Oct/090

crear un alias en Bash?

Simple y sensillo!

$ gvim ~/.bashrc

y luego agreamos algo como

alias lsa='ls -lha''

lsa va a ser el nombre del comando al que llamaremos desde la terminal. Lo seguido del igual, y entrecomillado, es lo que se va a ejecutar ;)

6Aug/092

excluir extensiones de archivo del svn?

Siempre me pasa que al crear un nuevo proyecto y agregarlo al repositorio SVN, se me añaden archivos .pyc .pyo y .swp, entre otros ¬¬

Para evitarnos dolores de cabeza hacemos lo siguiente:

1. nos situamos en el raíz de nuestro proyeco y creamos un archivo llamado .svnignore con un contenido similar a éste:

.pyc
.pyo
.tmp
.swp

y luego ejecutamos el siguiente comando:

svn ps svn:ignore . -F .svnignore -R

Con esto logramos que se aplique recursivamente la exclusión del monitoreo en todo nuestro proyecto ;)

24Jul/090

levantar un webserver con Python?

Muchas veces queremos compartir archivos entre dos o más PCs y Samba o Windows o lo que haya en el medio no coopera, por eso la mejor solución es situarse en el directorio que queremos compartir y ejecutar:

python -m SimpleHTTPServer

para tener un servidor compartiendo los ficheros por http ;)

11Jan/083

Instalar y configurar lighttpd + PHP + MySQL en Ubuntu

Si bien hay cientos de artículos de cómo instalar y echar a andar la fórmula lighttpd + PHP + MySQL, la gran mayoría peca de estar apuntada a un público intermedio/avanzado, y la poca minoría es difícil de encontrar :P .

Es obvio que tanto un intermedio como un neófito de GNU/Linux puede compilar desde las fuentes aunque seguramente utilice algún gestor de paquetes, pero no que la media de novatos logre hacer andar (configurar correctamente) los programas que instale. Por eso voy a ir paso a paso por el camino de instalar y configurar la fórmula antes mencionada.

6Jan/080

cdrdao: Crear imágenes .bin con .toc y .cue de PlayStation 1

Con la llegada del pSX a mi Ubuntu (gracias a Ensoñaciones y Linux) ya puedo resusitar mis queridos clásicos de PlayStation 1 que tenía tirados por ahí a causa de la rotura de mi consola.

Me encantó lo bien que emula al aparato de Sony, pero a los minutos me irritó tener que poner y sacar los CDs de mi lectora por lo que empecé a buscarle la vuelta como para poder ejecutar grandiosos títulos como "Collin McRae Rally 2" o "Legend" desde el disco rígido de la PC.

31Oct/074

Ajustando la hora según zona horaria en PHP

Muchas veces, los programadores, tenemos que resolver problemas y cálculos en donde alguna de sus variables es el tiempo. Un ejemplo clásico es guardar la hora en la que se realizó un ingreso al sistema o la registración de un cliente.

Filed under: PHP Continue reading