Archivo de la categoría Clayder

Arquitectura para el próximo siglo [WTF]

Se dice que siempre que se nos cierra una puerta, hay otra que se nos abre… lo que si, solo espero que no sea esta la puerta que se abra.

wtf1 

Bueno, es verdad que a la puerta en la foto anterior le hace falta una escalera, pero yo me pregunto… ¿habrá una escalera que le haga falta una puerta? =O

wtf2

Para que pregunte –_–

Un ingeniero…

Seguro que la mayoría ya ha leído esto, pero me pareció interesante el postearlo =P.ingeniero

Murió un Ingeniero y fue a las puertas del Cielo.

Sabido es que los Ingenieros por su honestidad siempre van al cielo…

- "Ajá!"… Buscaron en la puerta del cielo el archivo, pero últimamente andaban un poco desorganizados y no lo encontraron en el montón de papeles, así que le dijeron:

- "Lo lamento, no estás en las listas…"

El Ingeniero  fue a la puerta del infierno, donde inmediatamente le dieron albergue y alojamiento.

Al poco tiempo el Ingeniero se cansó de padecer las miserias del infierno…

Leer el resto de esta entrada »

Threads: wait() y notify()

Como ya todos sabemos los hilos se usan para poder dividir las tareas que va a realizar nuestra aplicación. Si le asignamos un hilo a cada tarea, vamos a poder ser capaces de manejarlos a nuestro antojo, a diferencia de que si lo agrupáramos en métodos o clases, ya que la clase Thread y la interfaz Runnable de java nos permite controlar aun mas a fondo cada tarea. Por ejemplo, si tengo una tarea dentro de mi programa, que en cierto momento necesita parar por un rato y esperar a q termine otra tarea para que siga; o simplemente quiero darle prioridades a las tareas o tal ves ejecutarlas todas al mismo tiempo. Pues para todo esto -y otras cosas que aun no me entero =P- están los hilos.

Duke_Thread

Poner un ejemplo de un programa que use hilos es bastante sencillo, así que ahora –y para no olvidarme- me centraré en los métodos wait() y notify() de la clase Object. Según lo que estuve leyendo, entendí que los métodos wait() y notify() son la contraparte de los métodos suspend() y resume() de la clase Thread, los cuales están deprecados por estas razones.

Leer el resto de esta entrada »

Etiquetas: ,

Queriendo hacer un brazo robótico (I)

Para demostrar lo que voy aprendiendo en mis cursos, a mí me gusta expresarlo en los proyectos. No soy de esas personas que se esmeren por sacar un 20 en un examen –aunque debería- ya que siento que un examen es como en el momento de patear penales, uno puede meter el gol como no, pero eso no significa que eres el mejor o el peor jugador, o en este caso, estudiante.

Esto trajo sus recompensas, sobre todo el ciclo pasado; ya que dos proyectos que anduve haciendo en vacaciones me salvaron la vida de dos cursos. Últimamente había dejado estos proyectos debido a razones ya expresadas en un post anterior. Sin embargo, hoy me dieron ganas de seguir y pues me puse manos a la obra y decidí ir posteando a ver cómo me va, esto también me servirá a no dejar el proyecto a medias, ya que tendré este post recordándome lo que aun me falta por hacer.

En fin, la meta es hacer un brazo robótico. La base del funcionamiento de este proyecto son los motores. Para este caso estoy siendo mas o menos un chatarrero, ya que me puse a desarmar impresoras y algunas lectoras de CD para sacarles sus motores, en este caso los motores que saqué son motores PAP (Paso a Paso). Se llaman motores PAP porque su funcionamiento esta dado por pasos, un paso vendría a ser una secuencia de 1’s y 0’s que se le da a los terminales del motor para que este funcione, estos pasos deben ir con cierto retardo a modo de pulso de reloj, por lo que si no se está usando la PC, he visto que también es válido usar el integrado TIMER 555.

Para mi caso usé la PC, más específicamente, el puerto paralelo de la PC. Desde ahí controlo el giro horario y anti horario del motor PAP, el cual estado dado por 4 pasos:

Paso 1 = 0101 = 5
Paso 2 = 1001 = 9
Paso 3 = 1001 = 10
Paso 4 = 0110 = 6

Los cuales son enviados en forma de bits desde el registro de datos del puerto paralelo (378H, en las pc’s compatibles). Para esto y para ahorrarme la fatiga, use C++ y Java, enlazándolos mediante el JNI y su biblioteca. En esta ocasión, les mostrare como estoy probando el motor de una lectora de cd’s que compre en takorita por 5 lukas xD. El motor que verán moviéndose lo usare para una parte del codo, ya que es pequeño, para el resto del robot usare motores de impresora como el siguiente:

Ahora, como ya dije, pondré el video del funcionamiento del motor de una lectora de CD’s. Ah! me olvidaba, para todo esto se tiene que usar el integrado L293B, que es un puente H, mejor dicho es un puente H de transistores o visto de otra forma, 4 compuertas de 3 estados. Bueno, aquí les dejo el video.

Y aqui otro video de cuando le puse cartones para ver como se movia xD…

Algunas herramientas para tener en cuenta al distribuir tu aplicación java

Desde que yo empecé a programar en java (en mi época de cole), me di cuenta que eso del doble clic no estaba hecho para java –al menos no para esa época. Además, yo venía de tener un paso fugaz por visual BASIC 6.0, en el cual solo llegue a hacer aplicaciones recontra simples y más que nada de copiar el código de un librito que me compré. Bueno, a lo que me refería con el doble clic es que para ejecutar los programas java, uno tenía que irse al CMD (y no lo hacía por deporte u_U) y ejecutar el compilador y luego el interprete de java, los cuales anteriormente había q setear respectivamente modificando el archivo autoexec.bat (que creo que solo vino hasta Windows 98)

Luego llego mi época de universidad, en la cual felizmente ya disponía de internet en casa, lo cual me permitía encontrar mucha información. En fin, aquí sigue mas blah, blah, blah y esas cosas, pero antes de ir con el desarrollo del tema tengo que resaltar que en esa época el examen para JSCP (Java Sun Certified Programmer) costaba US$ 100.00, el cual ahora cuesta US$ 300.00 T_T.

En esa época me, yo ya me había dado cuenta que los ejecutables de java eran los jar, pero había gente que no lo sabía y que creía que para cada programa le correspondía un instalador y un ejecutable (exe). La verdad lo que quería hacer era un msn falso, en el cual se pudieran quedar grabadas las contraseñas de los que entraran a mi pc y pues bueno, no lo iba a hacer diciéndoles que ejecuten el jar =P. A esto encontré el primer programa que me ayudaría con esto, su nombre es Launch4j.

Launch4j es una herramienta lo que hace es coger tu archivo jar con las XYZ librerías más que tengas y los convierte a un .exe para Windows, claro que las librerías no las empacara en el mismo exe, por lo que si usas bastantes librerías y archivos adicionales pues debes guardarlo en una carpeta para luego dársela al usuario final. Ahora como decía, si tienes bastantes archivos que empaquetar, pues solo te queda la opción de hacer un instalador. En java hay bastantes de estos; sin embargo, para Windows yo use el Inno Setup, el cual te ayuda con este dilema. Finalmente ya tienes tu aplicación lista para repartirla a esos usuarios espesos que no saben ejecutar un jar mediante línea de comandos =P.

No explico cómo funcionan estas herramientas, ya que son bastante fáciles de usar, solo es cosa de usar tu intuición informática, sino vean estos screenshots.

Launch4j

Inno Setup

Apuesto a que no tendrán complicaciones para usarlos =D.

Hasta el próximo post, que espero sea muy pronto u_U.

IFX se renueva…

Desde la desaparición de Warroscar, IFX anduvo buscando el dream team para la temporada 2009-II y pues no nos quedamos atrás. Primero se comenzó con el cambio de skin por parte de will y pues no suficiente con ello nos fichamos a un nuevo “jugador”, quien prometió vestir la camiseta de IFX por un contrato indefinido. Este nuevo fichaje vino de las canteras de byte-delay y si que promete ya que hasta ahora tiene mas posts que oscar el warro. Estamos hablando de Carlitos Cross:

Y bueno, últimamente estamos negociando otro fichaje que se debe concretar en los últimos días y que junto a carlitos cross formará el dream team IFX de las próximas temporadas. Asi que agarrence! que nos vamos pa la libertadores u_U.

Me olvidaba!!, Antes de que Oscar se fuera a vivir la vida guarra, dejó un tutorial de cómo postear en ifx:

Primer aniversario!

UN AÑO IFX 

Hoy, 3 de Julio del 2009, este blog cumple un año desde que esta dirección se puso online! y lo tengo grabada la fecha ya que cuando cree mi usuario, el primero en el blog, fue el mismo día que se creo el blog y marca el día 3 de Julio del 2008 a las 00:59 Hrs, y bueno, aunque hemos sufrido considerables cambios, caídas, desuniones, transformaciones, pérdidas (Osquitar), etc etc; hemos seguido siempre con el mismo entusiasmo que cuando empezamos a bloguear hace ya como 3 años casi (aunque por ese tiempo todavía no teníamos este nombre), y bueno este año que ha pasado es sólo el comienzo, porque al menos para mí todavía estamos muy jóvenes con lo del blog, y falta bastante tiempo como para llegar a donde nos propusimos en un comienzo (entre otras cosas, la falta de tiempo para postear, y la poca cantidad de editores), pero seguiremos ahí tratando de postear cosas relevantes que vivimos en el día a día con la tecnología y la web 2.0. A todos los amigos y conocidos a por este medio, quiero agradecer por cada vez que han leído algún post de aquí, por cada vez que hayan comentado, y por cada vez que sugirieron o avisaron de algo a considerar en el funcionamiento. Espero que en el tiempo que se viene sigamos adelante y tengamos contenido del bueno en una labor informática con piscas de periodismo estudiantil (dice), y algunas que otras cosas a lo off-topic, pues nada, era todo lo que tenía que decir… así que..

Felíz Aniversario blogsito! :D

PD: Haber si Clayder se manifiesta con la Cena U_U … osea un par de SuperWin’s

Etiquetas: , ,

S.O.S: Ayuda Informática

Dentro de la universidad en la que estudio actualmente (Universidad Nacional de Trujillo), yo soy un alumno promedio (an average student) y pues como antes estudié en la UPAO (Universidad Privada Antenor Orrego) -donde me metieron Java hasta por las orejas- domino un poco más ese lenguaje de programación. Bueno, lo que sucede es que la vez pasada me pidieron ayuda para un proyecto de un curso que llevamos en la UNT. Para mi ayudar es algo placentero pues me hace sentir importante, así que por mi gustoso, PERO, esa personita que me pidió la ayuda lo hizo de una forma tan pero tan “…” que un poco mas y me obligaba a ayudarle y ni un “por favor” escuché. Esto me llego altamente, así que le dije que no podía hacerlo. O sea ¿qué tan difícil puede ser pronunciar la palabra “por favor“?

linterna

Por otro lado, antes de eso, ya me habían pedido ayuda, pero esa persona me lo pidió de una manera tan dulce, que no podía negarme. Me dijo por favor y prometió invitarme un lomito saltado (plato típico peruano), bueno yo no soy de comer en la calle, pero la intención es la que cuenta, por lo que con mucho gusto la ayude :D .

Quizás este post no tiene nada que ver con los anteriores que solo publicaba sobre código, algoritmos y otras cosas. Sin embargo, esta personita me saco de mis casillas, a tal punto que me dieron ganas de escribir este post.

Además, nunca esta demás un “por favor”, no?

Etiquetas: , , , , , , ,

Taking a C++ OOP online-course

Two months ago, my dad told me to suscribe on the ACM, because, as he said,  it would be very useful while studying my career(computer science). Now I am an ACM Student Member; however, I didn’t know how to use it nor how to take advantage of all the benefits that the ACM bring to its members. Well, the first time I entered my ACM internet account, I notice its website was not so friendly and I didn’t know what to do or where to start, I mean, what I’m use to find useful is when I see parts of source code or well described algorithms.

C++

After one month, I finally learned how to use my account(al least how to get more benefits from it). This happened when I found one of several emails sent to my gmail account. They were about 10 to 15 messages, that I hadn’t read. I could have ignored it, as always, but I saw a message that seems to be very interesting. I really don’t remember what was the title of the subject, I just remember the word “course”, so I decided to read that message. Leer el resto de esta entrada »

Java Look & Feel’s

Hace tiempo que no programaba GUI’s en Java. Ultimamente mas estaba dedicado a la programacion en C, punteros y tratando de hacer cosillas con los puertos de hardware de la PC.

Pero bueno, tuvieron que dejarme un trabajo en el curso de metodologias e ing. de software para volver a retomar mis actividades javísticas :-P .  Hace algun tiempo yo ya habia usado algunos look and feels, tales como el napkinlaf y el susbtance. Sin embargo buscando por ahí, me di con la sorpresa que desde Java SE 6 update 5, esta disponible -sin bajar un jar adicional- un L&F(look and feel) propio de sun.

Este nuevo L&F, tiene una apariencia muy bonita y bueno ya no los aburro mas y dejo aqui una captura de pantalla con el Nimbus L&F.

Lookn'Feel

Bueno y si quieren que sus ventanas se vean como esas solo tienen que agregar esta linea de codigo que en realidad es para cualquier look and feel q deseen, solo cambienle el argumento del metodo :P .

UIManager.setLookAndFeel("com.sun.swing.plaf.nimbus.NimbusLookAndFeel");

Saludos

Sobre punteros en C y C++

C y C++

Yo empecé a programar en java; bueno en realidad en visual basic(pero es algo que quiero olvidar) y por eso es obvio que tuviera algunos problemitas con los punteros al pasar a C.

Bueno, segun yo, ya los habia entendido; sin embargo, no fue así, ya que empecé a tener algunas dudas. En fin, segun la definicion de punteros, estos son variables que hacen referencia a una direccion de memoria, pues si es así, entonces yo supuse que si creaba 3 punteros de enteros seguidos, estos apuntarian a direcciones de memoria contiguas.

Leer el resto de esta entrada »

JavaFX

JavaFX es una nueva tecnologia de sun para RIA (Rich Internet Applications). Pues no florearé mucho, solo pondre una pequeña animación que hice con este nuevo producto de sun :D.