Abril 25, 2008: 7:11 am: BRIOEventos, GNU/Linux

El congreso de ingeniería C9, que fué llevado a cabo en veracruz en el World Trade Center.

Todo estuvo muy chido, por mi parte solo estuve en 2 conferencias, Hackers, mitos, leyendas y realidades …. y la de Virtualización.

Sobre la primera, ya hemos hecho la misma dinámica 2 veces, que es hacer algún pequeño hackeo, todo empezó en el Tec de Monterrey Campus Estado de México, en sus Tech Day’s, donde el vuelo del siguiente ponente se había retrazado y nos pidieron extendernos un poco mas.

Allí sacamos algunos exploits como el de Jesica Biel (bastante famoso), expliqué cómo funciona y nos metimos a las tripas del código, posteriormente pedí una máquina del público para que se viera que no era ningún tipo de fake. Y un chavo me prestó una máquina con Suse, al intentar correr el exploit no funcionó, ya que estaba parchada contra el exploit, así que tomando ese como base, le hicimos unas modificaciones para que funcionara :D .

Aquí unas fotos, la primera es de cuando el exploit tronó :P , la segunda fué ya funcionando :) (del evento del Tech Day’s)

Tech Day'sTech Day's
Y aquí con la organizadora del evento.
Tech Day'sTech Day's

De igual forma ahora en el C9, solo que ahora no fué con ningún tipo de exploit, sino que se realizó un pequeño ataque a una aplicación del Tec de Monterrey, su famoso blackboard, hubo unos pequeños problemas con el internet, pero todo funcionó :).

(De esta no tengo fotos, si alguien tiene, se le agradecería :D )

Posteriormente fué la de virtualización, en la cuál después de hablar sobre la virtualización, sus ventajas, tipos de virtualización, etc. Realizamos unas comparativas entre las herramientas que hemos utilizado xen, open vz y jail. El tema principalmente fué de virtualización sobre sistemas *nix, pero también salió a colación windows :P .

También fuimos a 3 antros jajajaja (no pudo faltar la pachanga :D ), el primero que se llama Kluv, en el cuál me encontré con una amiga de tehuacán (que es organizadora del Congreso de GNU/Linux de Tehuacán) y ya estuvimos por allí con sus amig@s. Al siguiente en el que estuvimos fué el Classico, un antro hasta la fregada de fresa, además tenían barra libre hasta las 11! y cuando llegamos a la barra y pedimos nos dijeron : “Ya se acabó la barra libre!”, así que pues nimodo… Pero otro punto malo… NO vendían cerveza! :S . Total, estuvimos allí un rato con la banda de tehuacán, hasta que la botella de tequila se evaporó xD y nos movimos a otro, este se llama la Bartola… mucho mejor… vendían cerveza :D y tenían mas espacio para bailar :P y un mejor ambiente :P .

C9C9C9
Y como no dejaban entrar con ropa rota… me puse a coser jajajajaja. Y como no vendían cerveza… Ahhh y el tema de la noche era sobre los piratas, creo que fuí el único pirata sin los dos ojos :P .
C9C9C9

Lo demás ya fué estar paseando un rato en la playa, nadando y luego a la alberca para terminar de cansarnos :D. Y al día siguiente, de regreso a casa, aunque hicimos una parada técnica en puebla para ir a comer cemitas, lástima que cuando llegamos ya no había :P, así que fueron unos tacos :D .

C9

Regresando al tema del evento, pues no me queda mas que agradecer a los organizadores por tan amable atención y por tener un evento tan exitoso :D .

C9

Saludos

Marzo 4, 2008: 11:58 pm: BRIOProgramación

El captcha es el acrónimo de Completely Automated Public Turing test to tell Computers and Humans Apart (Prueba de Turing pública y automática para diferenciar a máquinas y humanos).

Muy utilizado en blogs, flogs y muchas otras cosas por el estilo, es un tipo “reto” que solo podría (según) responder un humano, distorsionando las imágenes (a veces tan distorsionadas que no se les entiende ni madres), añadiendo líneas ó manchas que tapen algunas partes de la imagen (y también a veces ni se distingue nada), hay muchos tipos de captchas que hacen que al humano le cueste mucho trabajo responder, poniendo demasiadas trabas visuales, en algunos casos también ponen una grabación de un mensaje que tampoco se entiende!. Pero de todos estos sistemas que he visto, hay uno en especial que me hizo reir un rato al imaginar diversas situaciones, a continuación la imagen:

captcha

Entonces por la misma definición del captcha, si no sabes contestar esa derivada parcial, no eres humano

De seguro habría personas encantadas con este tipo de captchas por el puro amor que le tienen a las mates y aumentar su nivel de frikismo como Michel. Pero en sí está demasiado original :D

Saludos

Marzo 1, 2008: 11:08 am: BRIOFreeBSD

Hace poco estaba conectado en el canal de freebsd, con el nick de CBJJ (si… CBJJ, no usé BRIO por que antes ya usaba el de CBJJ y pues ya no me reconocían xD ), pero bueno, a lo que iba:

Estabamos cotorreando muy tranquilos hasta que …


[jimmiejaz] CBJJ change your name
[lawrance] hi rep, storing any more naughties on your freefall lately? :-)
[xd GC] hehehehhehe
[cbjj] jimmiejaz, why?
[jimmiejaz] jj sets off my notify
[zaba_] ...
[cbjj] jajajajaja xD

Ps yo que culpa tengo xDDD


[cbjj] sorry jimmiejaz, but I don’t want to change it
[jimmiejaz] CBJJ, check the dates
[/jimmiejaz][jimmiejaz] you have a few months, I have five years
[/jimmiejaz][jimmiejaz] Nickname: CBJJ [ [ ONLINE ]]Registered: 40 weeks 6 days (2h 39m 59s) ago Nickname: jimmiejaz [ [ ONLINE ]] Registered: 5 years 47 weeks 3 days (16h 5m 3s) ago

Ahora resulta que hay derecho de antigüedad… Y hay que hacer todo lo posible por que los “viejos” estén lo mas cómodo posible….

Pero eso si, hay una comunidad que todo lo ve xD


[jpalmer] jimmiejaz: or you could just change your notify.
[jimmiejaz] I’m going to change a decade (not on this server, but others…) of using “”jj” ... why?
[jpalmer] and he’s going to change his nick… why?
[/jpalmer][jpalmer] luckily for you, my name is jeff palmer, and not jeff jalmer, because I absolutely assure you I wouldn’t change my nick just because it inconveniences your notify.
[ebilphish] You could just change your alert to only respond to jj and not cbjj
[jpalmer] there are tons of ways to handle the situation that would be more appropriate than demanding another user to change hsi nick
[jimmiejaz] 1 year vs. 5 years.
[zaba_] what kind of a notify is that anyway?
[cbjj] Why you don’t change your nick? and problem solved
[ebilphish] At 5 years your about due for a change
[zaba_] jimmiejaz, as if that matters
[jpalmer] jimmiejaz: asking another user to change his nick just because you haven’t spent the time to configure your clients notification setup is absurd. period.
[lawrance] i like listening to radio jjj
[caelian] hmmmm … i should change my nick to FreeBSD … and then demand people from constantly using the word FreeBSD because it keeps lighting up sentences not directed at me !!
[jpalmer] Caelian: haha
[zaba_] Caelian, nice one
[ebilphish] Just claim a letter, I call dibbs on ‘e’
[cbjj] I have to blog this ! xD
[jpalmer] /nick the “don’t say ‘the’!”
[caelian] well … C is obviously mine
[zaba_] Z is mine
[jimmiejaz] jpalmer, setting your client to notify on jj/JJ when you’rve been on openprojects(sorry, freenode)... you know what, you’re not worth my time

  • Sped patents JJ so everyone has to pay him to use it

[chronos_uk] Looks like I’ll have to have D. Caelian out-olds me…
[ebilphish] I would like to buy a vowel
[cbjj] and onw J is mine, the other is for jimmiejaz xD
[caelian] jimmiejaz: seriously … adjust your notify to trigger on word-boundaries and your problem IS Solved
[jpalmer] jimmiejaz: correction. this argument is not worth your time. you are wrong. period. asking another user to change his nick when it doesn’t violate any rules is absurd. making an issue out of it is just as absurd. not fixing your notify is additionally just as absurd.
[caelian] or are we not allowed to use words that happen to have “jj” in the middle of them somewhere either !?
[zaba_] jimmiejaz, I’d say, having notified when the trigger is in someone else’s nick is absurd too

Y la charla se siguió un buen rato… Ah! y por supuesto que no puse toooodo el log completo, ya que también había una que otra plática técnica que no venía al caso (ó tal vez esta discusión es la que no venía al caso? :P )

Pero bueno, esto fué un claro ejemplo de por qué freeBSD no avanza xDDD (es medio broma, no se vayan a exaltar)

ACTUALIZACIÓN


[jimmiejaz] CBJJ, I was wrong. /me was bad/wrong
[CBJJ] Ok, don’t matter :)
[jimmiejaz] I’m sorry, I lost it and toook it out on you, and I am sorry for pulling crap into the channel. It will NOT happen again.
[jimmiejaz] CBJJ, I aplogize, I did not mean to be agressive. ##freebsd I’m sorry for being an ass.

  • Caelian se ha marchado (“Ex-Chat”)

[phx] jimmiejaz, don’t worry, you’re not alone
[CBJJ] everyone gets a bad day ;)
[jimmiejaz] I’ve been shown my bad day, and I realize it. Appy-olo-gize droogs

Entonces se convierte en un ejemplo de por qué freeBSD si avanza! :P xDDD

Conclusión: FreeBSD se toma su tiempo xD

Saludos

Febrero 28, 2008: 7:15 am: BRIOCultura General, Otros

Les dejo un video que me pasó el buen Christo, el video está bueno …

El tiempo vuela y no solo el tiempo, también los sucesos…

Saludos

Febrero 9, 2008: 8:16 am: BRIOC, PHP, Programación

Alguna vez te has preguntado qué es mas eficiente…

usar llaves ({,}) ó no?

Hice 2 pequeños programitas que solo se entretienen….

Prueba 1:


int main(void){

  int i=0,j=0,k=0,z=0;
  for(i=0;i<1000;i++){
    for(j=0;j<1000;j++){
      for(k=0;k<1000;k++){
        z++;
      }
    }
  }
  return 0;
}

Prueba 2:


int main(void){

  int i=0,j=0,k=0,z=0;
  for(i=0; i<1000; i++)
    for(j=0;j<1000;j++)
      for(k=0;k<1000;k++)
        z++;
  return 0;
}

Hice varias pruebas tratando de ejecutar ambos programas en situaciones similares y en promedio los resultados de ambas pruebas fueron:

Prueba1:
real 0m2.890s

Prueba 2:
real0m2.992s

También me interesé por algunas pruebas de benchmark en PHP.
Las pruebas en PHP fueron sobre las comillas dobles (“,”) y las simples (‘,’)

Prueba 1:

$tmp[] = ‘aa $ aaaa $ aaaa $ a’;

Prueba 2:

$tmp[] = “aa $ aaaa $ aaaa $ a”;

Los resultados fueron (en milisegundos):

Prueba 1: 0 ms
prueba 2: 2ms

Para estas pruebas en php hay un paquete llamado php-benchmark
Para la prueba de C usé el comando time

Saludos

Enero 19, 2008: 7:32 am: BRIOCultura General, Otros

Apenas hace una semana estaba navegando por la página de la nasa y entré a una parte de un proyecto llamado : Near Earth Object Program seguí curioseando en la página cuando me encuentro con algo que no conocía y no había escuchado hablar del tema…

Apophis . Un asteroide que muy probablemente choque contra la Tierra en el año 2036 – 2037.
Apophis tiene una masa de 2,1 × 10^10kg .

De wikipedia:

diversos sistemas de cálculo de trayectorias de todo el mundo calcularon la próxima fecha de máxima aproximación, coincidiendo todos ellos en el 13 de abril de 2029. En ese día, Apophis brillará como una estrella de magnitud 3,3 (visible a simple vista). Esta aproximación será visible desde Europa, África y el oeste de Asia.

Seguidamente se calculó también la probabilidad de impacto. Contrariamente a lo habitual, durante los primeros días las nuevas observaciones hicieron aumentar la probabilidad de impacto en lugar de reducirla, llegando hasta un 2,7% (1 entre 37). Esta relativamente alta probabilidad combinada con la medida del asteroide hicieron que Apophis recibiese el nivel 4 en la escala de Turín y 1,10 en la escala de Palermo. Estos valores son los más altos que ningún asteroide haya conseguido jamás.

Según leo, varios estudios que se hicieron por el 2006 el asterioide tuvo una variación en tu trayectoria (6 milímetros) lo cuál reduce las posibilidades de impacto, las cuales se tornan de una entre 45.000 … Pero que si tiene una pequeña colisión con otro asteroide, sufriera de un pequeño roce ó cualquier cosa que pueda desviar su trayectoria un poco … Ahora si nos caería xD.

Según mas cálculos, el impacto sería en la zona del mapa

La velocidad de impacto estimada es de casi 13 kilómetros por segundo … No la suficiente para destruir al planeta, pero las consecuencias del impacto serían alrededor de mas de 20000 bombas atómicas.

Tal vez esto sea noticia vieja para muchos, ya que el riesgo de impacto de apophis surgió en el 2004. Pero yo apenas lo ví :P y como los estudios siguen en pie y no se ha cerrado el caso, decidí escribir un poco sobre esto.

Aquí están varios datos de la NASA sobre apophis

Saludos

Enero 16, 2008: 8:42 am: BRIOProgramación

Una Presentación en flash que me encontré sobre el funcionamiento del todo poderoso google.

This movie requires Flash Player 8

PD.- Si, ya sé que este flash tapa el menú ... xD

Saludos

Diciembre 20, 2007: 9:41 am: BRIOGNU/Linux, web

Quienes usan firefox, seguramente tienen la barra de google incluída y esta barrita no solo nos permite hacer búsquedas facilmente, sino que también es una calculadora!

Puede hacer sumas, restas, multiplicaciones, divisiones, potencias, raices, funciones trigonométricas (sin, cos, tan, etc), operaciones con logaritmos y mas

Usen Firefox ;)

: 7:29 am: BRIOC, Programación, ensamblador

Por que garaged lo pidió... (ven? pueden pedir xDDD)

En el post anterior, la onda era hacer una mezcla entre C y ensamblador, ahora será lo mismo, pero nuestro código de ensamblador será diferente.

Generemos como en el caso pasado nuestros 3 archivos que usaremos:

*main.c

*eject.s

*eject.h

El contenido de ellos será:

main.c

#include “eject.h”

#include

int main (void){

printf (“Buuuu n”); eject();
return 0;
}

eject.h

#ifndef EJECT_H

#define EJECT_H

void eject (void);

#endif

eject.s

.LC0:

.string “/dev/cdrom” .text
.globl eject .type eject, @function
eject: pushl %ebp movl %esp, %ebp subl $40, %esp movl $2048, 4(%esp) movl $.LC0, (%esp) call open movl %eax, -4(%ebp) movl $0, 8(%esp) movl $21257, 4(%esp) movl -4(%ebp), %eax movl %eax, (%esp) call ioctl leave ret .size eject, .-eject

Parámetros para gcc
Los parámetros que voy a usar son:

-Wall muestra todos los warnings
-O3 usa el tercer nivel de optimización
-c le dice que compile el archivo.c/s en el archivo objeto archivo.o

Primer Paso
generar el archivo objeto (object file) de main.c

brio@sophie:~/C_assembly_7$ gcc -Wall -O3 -c main.c

Segundo paso.
Ahora generemos el archivo objeto de eject.s

brio@sophie:~/C_assembly_7$ gcc -Wall -O3 -c eject.s

Tercer y último paso
Enlazar todos los archivos objeto para obtener el ejecutable

brio@sophie:~/C_assembly_7$ gcc eject.o main.o -o tryme

Y pues a probarlo (el ejecutable es tryme)

brio@sophie:~/C_assembly_7$ ./tryme
Buuuu

Ok … Logramos hacer lo mismo que en el otro post xD.

Lo importante aquí es la forma en que ahora expulso la unidad de CD, en el código anterior mandaba a llamar al comando eject (si, el código equivalente es hacer $eject && echo “Buuuuu“), pero ahora lo hago de manera diferente mando a llamar a ioctl (“Input/output control”).

Pues ya saben, si tienen alguna duda, comentario, etc, bienvenidos! ;)

Saludos.

Diciembre 15, 2007: 1:42 am: BRIOC, Programación, ensamblador

Hace unos días antes de dirijirme a la escuela estuve viendo el blog del buen Humo, y me encontré con que además de tener su propia tira, hizo un podcast que lo pueden encontrar aquí

Aunque ya hace tiempo había leído el texto que él lee en el podcast, pero ahora me quedó resonando eso de “Real Programmers” ... ensamblador, C, lisp, etc…. tantos lenguajes tan viejos y que aún seguimos usando :P, obviamente no al nivel en que ellos lo hacían, es mas, en la actualidad hay muchos que nisiquiera saben usar C y mucho menos ensamblador —Qué pensarían de nosotros aquellos verdaderos programadores? xD.

Pero bueno …. Manos a la obra!

Juguemos un poco con ensamblador y con C.

Se me ocurre hacer un pequeño ejemplo sencillo de cómo combinar C y ensamblador.
La dinámica del programa va a ser la siguiente, desde C mando a llamar una función en ensamblador, la cual abrirá la unidad de CD de la máquina.

Para darle elegancia separémos todo como debe de ser:
Es decir tendremos 3 archivos:

  • eject.s
  • eject.h
  • main.c

eject.s

.LC0:

.string “eject” .text
.globl eject .type eject, @function
eject: pushl %ebp movl %esp, %ebp subl $8, %esp movl $.LC0, (%esp) call system leave ret .size eject, .-eject

eject.h

#ifndef EJECT_H

#define EJECT_H

void eject ();

#endif

main.c

#include “eject.h”

#include

int main (void){

printf (“Buuuu n”); eject();
return 0;
}

Suponiendo que no tienen problemas con ensamblador ni con C, procedamos a compilar. (Si tienen dudas, me dicen).
Primer paso
generar el archivo objeto (object file) de main.c

brio@sophie:~/C_assembly_5$ gcc -Wall -O3 -c main.c

Como podrán ver, ahora ya tenemos un main.o.

Qué fué lo que hizo gcc????
-Wall muestra todos los warnings
-O3 usa el tercer nivel de optimización
-c le dice que compile main.c en el archivo objeto main.o

Segundo paso.
Ahora generemos el archivo objeto de eject.s

brio@sophie:~/C_assembly_5$ gcc -Wall -O3 -c eject.s

Tercer y último paso
Enlazar todos los archivos objeto para obtener el ejecutable

brio@sophie:~/C_assembly_5$ gcc eject.o main.o -o tryme

Y pues a probarlo (el ejecutable es tryme)

brio@sophie:~/C_assembly_5$ ./tryme
Buuuu

y es así como hicimos esta combinación de C con ensamblador.
Dudas, sugerencias, comentarios, etc:
todo.linuxero@gmail.com
blue_phantom20045@hotmail.com

ó aquí! :P

También puedes descargar el tutorial en PDF desde http://icenetx.net/index.php?contenido=sesiones

Saludos

Next Page »