Consola con estilo

Filed under: linux — Tags: , , , , — cleek en 07/04/2008 @ 10:02 pm



Saludos a todos, hace un rato (¿un rato?) que no escribo algo aquí pero es por que soy muy flojo hay una causa de fuerza mayor que evita que se me ocurran ideas bueno, por lo que sea. Esta vez vamos a adentrarnos en el extraño mundo de las terminales y lineas de comando para que los chicos (y las chicas también) vean que tanto se puede hacer.

Vamos a instalar una terminal y a configurarla a manera que sea la cosa con más onda del planeta, algo extra cool para presumirle a sus amigos e impresionar chicas, esto seguro les dará la popularidad que siempre esperaron tener con el sexo opuesto al iniciarse en el mundo del Linux pero que nunca creyeron ver llegar. Espero se entretengan un rato.

gnome-terminal

Empezaremos abriendo una terminal (digamos que estás en Gnome) Aplicaciones->Utilidades->Terminal debería abrirte algo una ventana parecida a esta:

gnome-terminal por default

se ve bastante fea, simple y sin chiste, cambiemos eso. Abre el menú Editar->Perfil Actual y te debería aparecer una ventana como esta:

config2

Ve a la pestaña colores, Quita la marca de ‘Usar colores del tema del sistema’ y en ‘Esquemas incluidos’ cambialo a Blanco sobre negro.

config2

Luego ve a la pestaña Efectos y marca el radio botón (de los redondos) ‘Fondo transparente’ y desliza la barra hasta un nivel de transparencia que te agrade.

config2

Presiona Cerrar. Tu terminal debe verse mucho más linda que antes

config2

Por si te lo preguntabas, este no es el fin real de este tutorial, De hecho es apenas el principio. Esto fue para no sentirnos mal mientras instalamos algo mejor.

tilda

Ya en una terminal medianamente decente, podemos instalar algunas otras cosas. escribe

sudo apt-get install tilda

Te pedirá tu password y preguntara si deseas instalar otros paquetes de los que depende el programa (si es que no los tienes instalados aún), dile que deseas instalarlos (S) y espera un momento.

Ya que se hayan terminado de instalar y configurar los programas, en la terminal escribe:

tilda

y en la primera vez que se ejecute te mostrará una ventana así:

config2

Marca la casilla ‘Enable Double Buffering’ y ve a la pestaña ‘Appearance’

En la sección Height, en el campo Percentage, escribe 60 (60% de la pantalla es bastante decente para una primera consola).

En la sección Width, en el campo Percentage, escribe 100 (porque 100 se ve muy en la onda).

En Extras.

marca la casilla ‘Enable Transparency’ y en ‘Level of Ttransparency’ marca un 30 (0 sin transparencia, 100 totalmente transparente)

marca la casilla Animated Pulldown y ponle algún tiempo razonable, 500 (medio segundo) o 1000 (1 segundo).

NOTA: Si usas Ubuntu Gutsy, hay un bug para las personas que no han actualizado el VTE a una versión más reciente, para evitar el bug, en ‘Animation Delay’ tienes que escribir forzosamente 1. O actualizar el VTE.

Esto afecta a tilda 0.9.4, pero se arregla actualizando el VTE y cambiando a tilda 0.9.5 compilado con transparencia real (no tengo ganas ahora de mostrarles como se hace todo eso, lo pueden buscar uds mismos).

config2

Probablemente esté bien pero ve a la pestaña Color y verifica que esté marcado ‘White on Black’ en ‘Built-in Schemes’.

Finalmente ve a la pestaña Keybindings, ahí puedes cambiar la combinación de teclas que quieras usar. Creo que por default usa F1, ponle algo útil como Win+W o Win+Up para que lo tengas a la mano siempre.

Perfecto, ya solo presiona el botón Cerrar y tendrás una consola en onda, presiona la combinación de teclas que le hayas asignado para que veas lo fácil que es tenerla a mano. Ahora solo falta registrar el programa para que se inicie cada vez con el sistema, pero esa es harina de otro costal.

config2

Ahora en la nueva consola, vuelve a escribir tilda y configura otra consola en algún otro lado de tu pantalla, hasta tener muchas consolas a la mano y ser el amo y señor (ama y señora) de las lineas de comando.

Espero les haya gustado. Saludos.


Como buscar errores de AMF en linux o la manera mas sencilla de capturar el trafico del navegador con todo y cabeceras

Filed under: linux,ruby — cleek en 15/12/2007 @ 1:08 am



Bueno, hace un rato que deje de escribir, pero todo fue para un bien mayor. Ahora es buena hora para retomar esto y con algunas cosas interesantes. Primero, como siempre, hay que plantear la situación. Como buen flashero debe saber, hay una utilidad casi maravillosa para relacionar un flash con un php sin tener que pasar los datos en medio por alguna bizarra manera que se te ocurra acomodar en un XML. Esto es el AMFPHP que lo único que hace es una traducción directa de php a flash (arreglos, cadenas, lo necesario). Hasta ahí todo es miel sobre hojuelas, te olvidas del loadVars y de una manera bastante sencilla.

Hasta que te topas con que algo no funciona, empiezas a googlear hasta que encuentras la maravillosa utilidad de Kevin Langdon que se llama Service Capture, gritas y saltas de alegría pues esta captura todo el trafico que pasa por el navegador, incluido el >AMF (Action Message Format) y te dice si se recibieron los paquetes, errores posibles, hasta te pone lo que se recibió en cada paquete, así puedes ver con patas, pelos y señales cual es el error que tiene tu programa. Incluso lo compras porque es un programa que realmente vale la pena.

Ahora no parece todo tan malo, el problema llega cuando se te muere te cansas del windows y tienes que hacer esas cosas en Linux. Lo primero que se te ocurre es emular el Service Capture usando WINE, pero eso no funciona. Luego buscas una alternativa libre entre los repositorios de tu distribución favorita, aquí encuentras todo tipo de espécimenes interesantes, desde el ethereal hasta el ksniffer pero ninguna te convence. ¿Cuál es la solución? Usar un script que te capture exactamente el trafico de los navegadores.

Ahora, como vamos a hacer algo que capture el trafico del navegador:

Ingredientes

  • Ruby
  • libpcap-ruby
  • un flashero necesitado (ese eres tú)
  • Un navegador de internet (cualquiera)

Primero, todos los ingredientes se consiguen en los repositorios de tu distribución de Linux favorita (buscalos, ahí están) y antes de empezar a soltar teclazos a lo pendejo, hay que decir unas cuantas cosas. Cosas como que vamos a capturar el trafico que vaya de salida de tu maquina a cualquier otra mientras sea al puerto 80 (el usual para el http), cosas como que para poder capturar el trafico necesitas ser un super-usuario, cosas como que todo el problema se resuelve en unas cuantas lineas de código.

Ahora si, a lo que nos truje:

#!/usr/bin/env ruby
require 'pcaplet'
$device = Pcaplet.new('-s 10240')
$filtro = Pcap::Filter.new('tcp and dst port 80', $device.capture)
$device.add_filter($filter)
for paquete in $device
  puts paquete.tcp_data if $filter =~ paquete
end

Sip, asi de sencillito es capturar los paquetes que necesitamos. Antes de explicar, guarda el código en algún archivo, digamos en snif.rb y para correrlo, tienes que decirle

sudo ruby snif.rb

en el directorio donde lo hayas guardado, te pide tu password y empieza a correr, intentalo y usa el navegador mientras esta ejecutándose el script.

Ahora si, que es lo que hace el programa, la primer linea dice que es un script de ruby, la segunda dice que vamos a usar la librería Pcap (packet capture), la magia empieza en la tercera. Le decimos que capture todos los paquetes que midan a lo mas 10 Kbytes (10240 bytes) y que guarde esos datos en $device, luego filtramos los paquetes para que nos den solo los que pasan por el tcp y con destino (dst) el puerto (port) 80 y llamamos a ese filtro (sorpresa) $filtro. Luego a la conexión ($device) le pegamos el filtro ($filter). Finalmente recorremos todos los paquetes que le hayan llegado a $device.

No esperes que sea una interfaz extra guapa como la del Service Capture, pero te dice exactamente lo que necesitas saber. Los paquetes del AMF se distinguen por el tipo MIME que es x-amf (y de verdad son bastante obvios).

Si te pasa que saca montones de datos y no puedes ver los que necesitas porque huyeron hacia arriba de la pantalla, puedes mandar toda la salida a un archivo de texto plano así:


sudo ruby snif.rb > resultado.txt

y puedes abrir el archivo mientras esta ejecutándose para ver como van moviéndose las cosas (recargando el archivo cada que creas necesario). Un detalle es que seguramente veas muchas lineas con nil, no les hagas caso.

Ahora ya puedes ser una persona mas feliz pues puedes debugear tus swf sin necesidad de un windows.

Si necesitas un filtro mas fino, puedes revisar la documentacion del pcap y acomodarlo a tu gusto.

Espero te hayas divertido.


Guia del completo novato en linux para Recuperar el linux despues de haber (re)instalado windows

Filed under: linux — cleek en 17/09/2007 @ 2:53 am



Planteemos una situación que por lo menos a mi me es bastante común. Pocamadre tienes tu maquinita funcionando bien, con windows y linux, de repente por alguna pendejada de mala programacion del windows un fallo completamente calculado, tienes que volver a instalarlo, lo instalas y sorpresa sorpresa, no pregunta y te sobreescribe el Master Boot Record y no puedes usar el GRUB para iniciar linux. Digo, que se te pierda el inicializador sí puede pasar por una infinidad de factores, desde que se quiera suicidar tu disco duro hasta que la luna este en alineación con júpiter y el ex-planeta plutón. El chiste es saber que hacer en estos casos.

NOTA: Es posible que nos metamos con el BIOS de tu computadora, nadamas haz las cosas con cuidadito para que todo funcione bien. Y como habias supuesto, no me hago responsable de cualquier daño a tu compu.

Ingredientes:

  • Una computadora (esencial).
  • Un disco de Ubuntu o cualquier distribucion que sea live-CD (osea que al ponerlo funcione el sistema operativo para que puedas ver como funciona y si te gusta como funciona pues instalarlo)
  • Tú, si tú eres una parte importante en el proceso de recuperación del sistema operativo, despues de todo, sin tí no se habría perdido el linux

Muy bien, esto es lo que vamos a hacer paso a paso para no perdernos.

  1. Empezaremos con la comptadora apagada, la enciendes (también indispensable) y rapidamente como un rayo le pones el CD de Ubuntu, si cuando lo pusiste ya había iniciado Windows, puedes esperar a que inicie y reiniciarla usando el menú inicio (la opción de los perdedores) o puedes presionar el botón de ‘RESET’ de tu gabinete, entonces hay dos opciones. Si empieza a leer del CD y te sale la pantalla de Ubuntu, eres suertudo y puedes pasar al paso 5. Si no eres suertudo y sigue iniciando Windows aún con el disco adentro, sigue leyendo.
  2. Tienes que reiniciarla y exactamente al encenderla aparecen unas letras que te dicen como entrar al ‘Setup’ o a ‘Configurarla’, usualmente y mayoritariamente puedes presionar Supr o F10 para entrar a la configuración más básica de tu computadora. Aquí hay que tener cuidado de no mover de más a menos que sepas lo que estás haciendo o puedes acabar con una computadora realmente inútil.
  3. Ya que tienes miedo porque es una aplicacion basada en texto, buscas la opción que diga algo así como ‘Boot sequence’, ‘Boot order’, ‘Secuencia de arranque’ o algo muy similar, muy muy similar. Busca bien, debe estar ahí. Si no la encuentras por ningún lado, la única opcion es buscar el manual de la computadora (porque lo guardaste, ¿verdad?).
  4. Ya que encontraste la opción, usualmente se explica por si misma, pones en primer lugar al cd-rom, guardas los cambios y listo, puede iniciar Ubuntu
  5. Ya reiniciaste tu compu y estas viendo el letrero de Ubuntu junto con sus opciones, la primera es tú opción, ‘Start from Ubuntu CD’, la marcas y presionas Enter. Esperas a que haya iniciado el Live-CD para poder seguir.
  6. Abres una terminal. Aplicaciones -> Accesorios -> Terminal.
  7. Escribes sudo grub Osease que quiere iniciar grub como superusuario.
  8. Ya en la consola del grub (que debe mostrar algo así: grub>) hay que buscar en que partición está el linux, para eso escribimos find /boot/grub/stage1, te regresa una lista de las particiones que pueden iniciarse con GRUB, debe decirte algo así: (hd0,1) la otra posibilidad es que diga algo como (sd0,1) pero solo si tienes un disco duro SATA, cualquiera es buena.
  9. Lo que te dijo, escribes root (hd0,1) o root (lo que te haya dado el paso anterior). Fácil, ¿verdad?.
  10. Finalmente escribes setup (hd0) hd0 si arriba le escribiste (hd0, algo ), tienes que poner el mismo hd o sd que le hayas puesto arriba.
  11. Felicidades, ya puedes reiniciarla computadora y tendrás el GUB otra vez. Para salir de grub escribe quit lo que te debe regresar a la consola normal y ahí escribes sudo reboot now

Esto funciona para recuperar cualquier grub, no necesariamente el Ubuntu sino Fedora, Knopixx, Gentoo, cualquiera.

Espero te ayude o por lo menos te haya entretenido.


Guía del completo novato en linux para programar con AS3 (parte 2)

Filed under: as3,linux — cleek en 31/08/2007 @ 3:27 am



Hoy veremos como empezar con una sencilla aplicación en AS3.

Primero, necesitas el compilador de AS3, osease el Flex SDK. (instrucciones de como instalarlo).

Antes  que nada y como buen programador necesitas una carpeta para cada proyecto que vayas a hacer, nada de dejar un archivo regado por aquí y otr por allá. Y como buen linuxero también tienes que usar la consola. La consola es tú amiga.

  • Abre la consola:Aplicaciones > Accesorios > TerminalUna consola (usualmente) abre en tu directorio personal, y es aquí donde vamos a trabajar
  • Crea una carpeta para poner todo lo que programes de aqui en adelante. La carpeta la llamaremos ‘code’.

    mkdir code

    mkdir es un acronimo para make directory (hacer directorio) y code es el nombre que tendrá
  • Ve al directorio que acabas de crear

    cd code

    cd es otro acrónimo para change directory (cambiar directorio) y luego le decimos a que directorio queremos cambiar
  • Aquí creamos otra carpeta para el nuevo proyecto

    mkdir holamundo

    te acordaste que mkdir hace un directorio y el directorio que hace se llama holamundo, ¿verdad?
  • nos cambiamos a holamundo

    cd holamundo

    y aqui empezamos a aprender el arte del as3
  • primero, abrimos un editor de texto para empezar a programar

    gedit main.as &

    gedit es (si, adivinaste) otro acrónimo para gnome editor que es un editor simple de texto que será lo que necesitamos para hoy. Seguramente encontrarás otros y que se acomoden más a tus gustos pero mientras son peras o manzanas, este servirá. No se te vaya a olvidar poner el & al final, al poner un & le dices a la consola que te regrese inmediatamente a la linea de comandos, si no se lo pones, no regresará la linea de comando hasta que no termine la ejecucion del programa. Es importante porque vamos a usar los dos al mismo tiempo.

Bien, ahora vamos con el gedit y con la programacion en as3.

  • Empezamos por un esquema básico de como debe ser un programa en as3 para despues pasar a las explicaciones

    package {import flash.display.*;
    import flash.text.*;
    public function main():void {
    var tf:TextField = new TextField();
    tf.text = "Hola mundo!";
    addChild(tf);
    }
    }}

    mxmlc main.as

    Con lo que notarás que efectivamente compila y te genera un archivo .swf, ahora a explicar todo lo que hicimos Hay que entender que AS3 es un lenguaje completamente orientado a objetos. Cada objeto es una instancia de una clase y cada clase tiene que pertenecer a un paquete, el Flex tiene muchos y muy variados paquetes para que puedas entretenerte con ellos y seguramente ya tienes curiosidad de verlso todos, solo es cuestion de tiempo para que puedas usarlos.
    Entonces lo primero que le decimos es a que paquete va a pertenecer la clase que estamos a punto de teclear, esto lo hicimos con:

    package {
    }

    Nota los {}, uno para abrir y otro para cerrar porque en medio de estos es donde vamos a poner la clase. Si te preguntas porque no se escribe el nombre del paquete, esto es porque usamos el paquete por default, el que no necesita ningun nombre porque es la primer clase que se va a usar. confia, por mientras, en que así debe de ser.
    Lo siguiente que necesitamos decirle es que otros paquetes va a necesitar cuando intente ejecutar el programa, estos son los import:

    import flash.display.*;
    import flash.text.*;

    le decimos que vamos a usar los paquetes display y text del paquete mayor flash. En general, para la primer clase es NECESARIO incluir flash.display.* pues esta clase necesita ser un MovieClip(si va a ser de entrada una pelicula) o un Sprite(si se van a cargar el resto de las cosas en un frame estático).Lo siguiente es lo que vamos a poner en la escena, por ahora solo necesitaremos un lugar para escribir “Hola mundo”, y eso hacemos, le decimos que haga un nuevo TextField y que ese textfield se llame ‘tf’, entonces a tf le decimos que en su propiedad .text guarde el valor “Hola mundo!”, fácil ¿verdad?. Entonces ya que está hecho solo le pedimos a ‘main’ que lo agregue a la escena actual para que pueda ser visto.
  • Finalmente necesitamos comprobar que todo funciona en un navegador.
    1. De regreso en la consola, presiona enter si no tienes la linea de comando, luego escribe gedit holamundo.html&, lo que abre una nueva pestaña en el gedit.
    2. Como buen programador vas a hacer un xhtml que vaya con todas las reglas que marca la w3c y entonces le vas a poner:

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <title>holamundo</title>
      <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
      </head> <body>
      <p><object type="application/x-shockwave-flash" data="main.swf" width="400" height="300">
      <param name="movie" value="main.swf" />
      </object></p>
      </body>
      </html>

      Lo guardas presionando Ctrl+S
    3. muy bien, ya está todo listo y puesto, solo falta verlo. Regresas a la consola y le escribes
      firefox holamundo.html&, esperando que tengas firefox instalado, si no lo tienes, puedes conseguir algo mejor y usar Opera. Si ya tienes Opera puedes, en vex del aomando anterior escribir opera holamundo.html&. Ahora deberias ver Hola mundo! en la pantalla del navegador
      • Espero te haya sido de ayuda, si por algún motivo crees que me equivoqué es porque seguramente eres feo y estúpido.


Exactamente como programar en AS3 con Linux

Filed under: as3,linux — cleek en 17/08/2007 @ 9:06 pm



Me hicieron fanático del flash hace como un año y desde entonces estuve buscando como hacer para hacer Flash sin necesitar Flash sin mencionar que no es posible instalar el flash CS3 usando WINE, lo cual era un problema pues necesitaba usar todas las nuevas caracteristicas del AS3, ya no me bastaba usar el MTASC, el HAXE me ha encantado desde siempre pero no puedo depender de él por lo largo que se vuelve escribir un programa sencillo.

Cuando pensé que todo estaba perdido y estaba decidido a regresar al windows me encontré con que Adobe liberó un compilador de Flex que funciona en todas los sistemas operativos. Salté, grité y todo lo que pude para demostrar mi emoción cuando decidí instalarlo. De hecho el proceso de instalacion fue bastante lineal, no necesité compilar nada solo configurar las rutas

Tuve la precaucion de haber aprendido algo de AS3 antes de empezar con esto para estar muy emocionado de como iban los progresos. También he de aclarar que al usar flex no tuve que aprender nada de MXML como esperaba en un principio, todo funcionó a la perfección con lo que ya sabía de antemano acerca de AS3 con lo que dí brincos y saltos de alegria, mejor a lo que nos truje.

El tutorial del completo novato en linux para poder hacer Flash gratis (y legalmente).

Primero que nada, para empezar a hacer esto tienes que sentirte medianamente comodo usando una terminal, las terminales son la onda y cualquiera que diga lo contrario es feo y estúpido. De todas maneras intentaré hacerlo lo más sencillo posible. asumiendo que usas GNOME como gestor de ventanas (si, el de la patita con dedos cagados).

Al terminar cada paso puedes cerrar las ventanas que se hayan abierto durante.

  1. Descarga el Flex SDK. Ten paciencia pues son 38.1 Mb (es necesario crear una cuenta en adobe si no tienes una aún)
  1.   descomprime el flex en algún directorio coqueto:
    1. Primero hay que hacerle un lugar a los programas que instalamos. A mi me gusta usar para mis programas un directorio que se llame bin en mi carpeta personal.En tu escritorio (sino en el menú Lugares) hay un ícono que dice Carpeta Personal lo abres, en el menú Archivo está la opción Crear una carpeta la eliges y le pones como nombre a la carpeta bin
    2. Finalmente entras en la carpeta bin y creas otra carpeta que se llame flex
    3. Luego vas a donde descargaste el Flex SDK, es un archivo .zip, asi que le das doble click y a la ventana que abra le presionas el botón grande que dice Extraer.
    4. Te abrirá un cuadro de diálogo donde puedes escoger donde quieres que se extraigan los archivos, aquí escoges, desde tu carpeta personal bin luego flex y presionas Extraer
    5. Tomate un descanso, ya pasamos la parte pesada
  1. Establecemos las rutas para que podamos acceder al flex desde cualquier lugar:
    1. Abre una terminal: Arriba en tu pantalla, en el menú Aaplicaciones > Accesorios > Terminal
    2. en la terminal vas a escribir:gedit ~/.bashrc
    3. Bajas al final del archivo y le añades:export PATH=$PATH:~/bin:~/bin/flex:~/bin/flex/lib:~/bin/flex/binSin que te importe lo que esté antes, tu lo pones al final
    4. prueba que todo funcione bien: en la términal escribecd ~
      luego escribesmxmlcSi ves un mensaje como esteLoading configuration file /home/cleek/bin/flex/frameworks/flex-config.xml
      Error: a target file must be specified

      El compilador está correctamente instalado
    5. Salta de alegria por tu nuevo compilador
  1. Empieza a programar
    1. Descarga este archivo y descomprimelo en la carpeta que más te guste (asi como lo hicimos en el paso 1) es un esquema (muy personal) de como empezar un proyecto en AS3, contiene un archivo ejecutable (que se llama compile) para que con dos clicks compiles tu proyecto. (Si te pregunta que quieres hacer, quieres ejecutarlo en un terminal)
    2. la clase base esta en src, el archivo se llama main.as. Los resultados los pone en la carpeta build

Espero hayas aprendido como hacer funcionar el flex, ahora solo te falta un buen editor de ActionScript como el Notepad++ (que funciona muy bien en linux también) o el Scite que está en casi todas las distribuciones de Linux como un paquete descargable y de fácil instalación.

Por cierto, el archivo que puse como base de proyecto trae incluidas las librerias de Twitter, PaperVision3D, last.fm, y el Tweener. Además de tener un directorio especial para que pongas tus archivos(como imágenes o cualquier cosa que le quieras agregar al html). Todo por hacerte la vida más fácil. Disfrutalo y haz buenas aplicaciones.

Hay otra cosa fenomenal con el Flex SDK, trae incluido un generador de documentación que seguramente a mas de uno nos encantó, excepto por el minusculo detalle que NO FUNCIONA EN LINUX asi que cuando necesito generar alguna documentacion le robo la maquina a mi hermano y en menos de lo que piensas está lista la documentacion en un formato muy entendible y con colores sencilitos para que sea leida horas y horas.