Category: General

En un post anterior estube comentando acerca de como modificar una maquina tragamonedas para que tuvieras la oportunidad de tener mejor revenue(ganancias) sin embargo cuando llegue al susodicho lugar a hacer las modificaciones que había pensado para la misma maquina, resulta que no es posible cambiar el orden de los botones en el teclado.

No quiero decir que supe como funciona totalmente la maquina pero al menos descubrí que ese tipo de maquinas tragamonedas no puede modificarse tan facilmente sin que la misma maquina se ponga como loca, por ejemplo si desconectas el monedero, la maquina se traba (WTF!!).

Pero despues (claro de un par de intentos ingenieriles mexicanos) deduje que el problema en donde radica la ganancia de dinero es justo saliendo del monedero, ya que el uso desgasta la entrada de dinero y hace que se vaya toodo el dinero hacia “la ruleta” -un mecanismo encargado de sacar dinero y en muuuuucha menor proporcion hacia el cajon de ganancias-.

Pues ya saben como tiendo a meterle tecnologia a cualquier aparato que cae en mis manos, construí un servomecanismo controlado por un fabuloso AVR (atmega16) que sensa la entrada de dinero y desvia 2 de cada 3 monedas hacia el cajon, garantizando que los usuarios traviesos no se queden con todo el dinero que le entra a la maquina (ja ja ja, -risa sarcastica-).

En tres dias mis clientes garantizan $400 de entrada cuando antes eso lo sacaban en 6 dias.

Saludos!!

Algunas veces me plantean los mas extraños ofrecimientos de trabajo, y pues resulta que en esta ocación no ha sido la excepcion, y quiero compartir este pequeño hack por que tal vez muchos de ustedes pueden encontrarse en la misma situación.

Seguro conocen las maquinas tragamonedas, en donde se pretende que el jugador gane dinero insertando un par de monedas y jugando al azar seleccionando cierto numero o figura, pues bien estás máquinas tienen detalles, tal es asi que mi cliente me pidio que no “regalara” tanto dinero ya que no tenia suficiente revenue.

Pues bien le sugeri un par de opciones pero el optó por la siguiente:cambiar el orden del teclado, de esta forma los usuarios siguen teniendo la oportunidad de jugar pero ahora deben ademas descubrir el nuevo orden lo que llevara un par de monedas mas de lo habitual, haciendo ganar tanto a mi cliente como a su cliente.

Las maquinas a las que me refiero son las siguientes

saludos!

He estado viendo un par de ejemplos en la red con flash 10.1 que involucran sonido, -son bastante buenas-, y mientras tanto nosotros trabajamos en nuestra propia aplicación que involucra un poco de lo mismo, sonido y flash 10.1, sin embargo este no es un post en el que quiera hablar de lo que otros están haciendo sino de lo que nosotros estamos empezando a hacer, hace unas horas un cliente vino a nosotros con la esperanza de automatizar una máquina (voila!!!, automatización uno de mis topicos favoritos) y pues como en todo tema de automatización, se cree que la máquina a automatizar se encarga de suministrar el aire limpio del hambiente ( ja ja risa sarcastica).

Pero en realidad lo que esperamos es algo que haga algo interesante e impresionante. Mi sorpresa fue algo de todo, la máquina en cuestion se trata de una productora de calcetas/medias y vaya que si tiene lo suyo, son máquinas de los años 1924 y otras de años más adelante.

Maquina para la creación de calcetines

Maquina para la creación de calcetines

La imágen anterior es de una de esas máquinas de 1924 aunque esta es digamos con un “cranck” algo asi como manual con cuerda, pero el dueño casi comparado con Ciro Peraloca

Ciro Peraloca

Ciro Peraloca

(jajajaja) En fin, el punto es que ese tipo de máquinas ya están automatizadas con motores de 1/4HP y venga ya, nunca creí que los calcetas de niña de primaria eran hechas por una máquina de más de 80 años.

Pasando de topico, la máquina en sí que hay que automatizar es japonesa y francamente no la he encontrado en la red, pero dos cosas que debo comentar de ella son:

El programa de como hacer el dibujo (rayado) esta grabado en un cassette, (si de esos cassettes de los años 70’s)

Cassette donde se guarda el programa

Cassette donde se guarda el programa

Increible que esos japos supieran como hacer toda la electronica para una máquina y guardar el programa en un cassette, el modulo que reproduce el cassette es el siguiente:

Reproductor de cassette electronico

Reproductor de cassette electronico

Este no es reproductor normal, sino que al introducir la cinta, esta se reproduce a alta velocidad y junta los sonidos convirtiendolos en “1″ o “0″ almacenandolos en una EEPROM, acto seguido el programa ya se encuentra en la máquina y empieza a cargar y hacer lo que deba. Quizás alguno se pregunte, y ¿Cómo suena ese cassette si se intenta reproducir? , pues suena un solo sonido (un alto o “1″ muy agudo) y un espacio en blanco (un bajo o un “0″) de modo que es fácil leer, no obstante algunas partes tienen sonidos muy distintos, lo que me hace pensar que no es tan fácil como ponerlo todo a “0″ y “1″.

Aquí es donde entra la parte en flash 10.1, usando el microfono (que es una de las nuevas capacidades del 10.1) se capturan los datos en forma de bytes, algo conocido como “byteArray”. Y se hace que flash interprete todos esos sonidos en forma de bytes a sonido nuevamente( con las clases de microfono y sonido simultaneamente), de forma que sea flash mismo el que reconstruya la cinta pero con calidad superior, digamos que usa la cinta para hacer un mapeo del sonido y luego la analiza para reconstruir su versión totalmente digital, de manera que podamos tener una cadena laaaarga de bytes que nos permitan descompilar el programa y de allí partir a crear un lenguaje ensamblador de la máquina de los calcetines.

Ahora bien, esto quiere decir que la máquina tendrá un panel en el cual se podrá introducir la imágen que deseamos dibujar en la calceta y flash creara el ensamblador necesario para poder portarlo al cassette y de allí a la producción.

El anterior es uno de mis “approaches” pero existe otro, es posible evitarse la parte del “desensamblado” del codigo del cassette y pasar a una parte totalmente digital, con memoria SD y varios microcontroladores (por supuesto AVR) ya que la máquina cuenta con 156 agujas que deben conectarse en paralelo para poder controlar el color del tejido de la calceta para cada aguja. Mi approach aquí es usar varios atXmega ya que tienen la capacidad de trabajar simulataneamente en varias tareas (algo asi como multi-core y además son de 16 bits de procesamiento -un cerebro humano normal debe trabajar a unos 3 bits jaja-)

Parte frontal del lector de SD multiproposito

Parte frontal del lector de SD multiproposito

Anverso del lector SD de multiproposito

Anverso del lector SD de multiproposito

Las siguientes dos imágenes pertenecen al mismo lector de tarjetas SD que puede ser accesado desde un AVR (que por cierto tienen un AVR interno para hacerla de driver, -tomate esa PIC-).

Espero publicar algunas noticias de cual fue el “approach” que utilizamos y cuales han/fueron los resultados.

Saludos!

Flash Builder 4, es dos cosas:

  • Un SDK (compilador) que interpreta codigo en forma de HTML y lo convierte en código comprensible para el flash player (esto quiere decir en classes y paquetes, ya ahondaremos más en esto)
  • Un entorno de desarrollo “IDE” en el cual nos permite programar y crear archivos SWF.

Flash builder se creo para cerrar ese hueco que existe entre Flash y los desarrolladores web con respecto a la forma en que ambos programan, y de hecho los “desarrolladores” web hacen más aplicaciones que interactuan más con datos, por ejemplo formularios, registro de usuarios,compras en linea etc.

Y la única forma de atraer ese mismo ingenio aplicado en HTML puesto en Flash era ofrecerles a todos los desarrolladores con una herramienta que aumentara la experiencia de usuario pero que usara los mismos conocimientos que ya se aplicaban en HTML. Fue cuando nació Flex, que tiempo después ha pasado a convertirse en flash builder.

Cuando programamos en HTML tenemos esta básica estructura de una página:

<html>
<head>

<script language="JavaScript" type="text/javascript">
<![CDATA[
//something of JS here
]]></script>
</head>
</html>

Tenemos los tags de html y head, asi como un lenguaje que nos ayudara a interactuar con los distintos elementos en caso de ser necesario, ese lenguaje es JavaScript. Ahora bien, si nos enfocamos en el codigo en Flash Builder notaremos algunas similitudes:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" width="514" height="316">

<fx:Script>
<![CDATA[

//something of AS3.0

]]>
</fx:Script>
<fx:Declarations>
<!– Place non-visual elements (e.g., services, value objects) here –>
</fx:Declarations>

</s:Application>

Lo primero que salta a la vista son los tags y que cada uno de los ejemplos tiene una parte de “Script”, en donde se utiliza codigo respectivo al entorno (JS o AS).

En flash builder a diferencia de html, es posible usar tags que no tienen elemento visual y estos se deben escribir dentro del tag “declarations” ya que en HTML todos los tags son elementos visuales, lo que complica usar un tag para que almacene datos o que no aparezca, incluso estos tags pueden mal deformar una página web (creo que la mayoría sabe a lo que me refiero).

Si notan, en la parte que empieza la aplicacion de Flash Builder tiene unas direcciones, bueno esas direcciones se conocen como NameSpaces y son librerias que se importan y que pueden ser usados en forma de tags, por ejemplo:xmlns:mx="library://ns.adobe.com/flex/halo", significa que hay una libreria que se llama “ns.adobe.com/flex/halo” y que podemos accesar a sus elementos mediante “la variable” -mx-, permitiendonos hacer el siguiente codigo:

<mx:Button x=”109″ y=”206″ text=”Servo 3″/>

Eso es en formato MXML (o HTML version flash), pero para que quede totalmente comprendido vamos a aclarar que una cosa es usar el namespace para que puedan usarse componentes en los tags como el boton anterior y otra muy distinta es importar las clases necesarias en la parte del codigo para acceder a componentes que no tienen forma de aparecer con tags, como es el caso de un componente alerta:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" width="514" height="316">

<fx:Script>
<![CDATA[

import mx.controls.Alert;

Alert.show("Hello World","Hello");

]]>
</fx:Script>
<fx:Declarations>
<!– Place non-visual elements (e.g., services, value objects) here –>
</fx:Declarations>

</s:Application>

Hasta aqui lo fundamental de la estructura en Flash Builder 4, espero que haya quedado masomenos claro la estructura y el por que de la creacion de Flash Builder alias Flex.

Saludos!

Quiero empezar con un tutorial que hace tiempo escribí para una página en donde me pidieron fuera colaborador.
La plataforma flash se caracteriza por tener su propio código, y la ventaja de no depender de un esquema muy estrecho es su capacidad para perfeccionar el lenguaje. Actualmente flash tiene 3 versiones de su lenguaje, estos son ActionScript 1.0, ActionScript 2.0 y ActionScript 3.0

Conforme fue avanzando el tiempo el lenguaje también fue evolucionando y en cada una de las versiones se agregaron metodos para escribir aplicaciones más complejas. Las versiones 1.0 y 2.0 en escencia son la misma, el salto a la versión 2.0 fue un incremento en las funciones de trabajo del reproductor (oooops palabra nueva) AS1.0 fue creado primariamente para las animaciones, AS2.0 para la programación orientada a objetos pero AS3.0 fue reescrito para convertirse en un lenguaje estricto que acelera el trabajo y propagación de eventos con una estructura muy similar a Java.

Aclarado el punto de que flash tiene su propio lenguaje, queda señalar los distintos tipos y sabores de flash:

  • Flash player: Encargado de la reproducción de los archivos hechos en formato SWF (pronuncia suif). En otras palabras es como una videocasetera en forma de programa, le metemos una pelicula (también se le llama pelicula a un archivo SWF) y esta la reproduce en pantalla.
  • Flash: Es el entorno de programación en el cual desarrollamos animaciones, programas, formularios, juegos etc.
  • Flash Builder ó Flex: es una forma especial de Flash que permite programar Flash en un estilo HTML o XHTML para todos los programadores de la DISQUE Web2.0
  • Flash Catalyst: En realidad catalyst debería formar parte de Flash Builder, ya que este programa se encarga de convertir dibujitos (sip dibujitos tal cuales y viles) en componentes como botones, sliders, scrollbars, etc.
  • Adobe AIR: Es un runtime (o emulador) que permite simular un archivo SWF como si fuera un programa normal de PC o MAC dandole capacidades de acceso al sistema.

La versión más reciente del Flash Player hasta la fecha es la 10.1 con la versión de programación ActionScript 3.0 y que puede usarse en Flash CS4 y CS5 asi como Flash Builder 4.

Una cosa que me encanta recalcar, es que la plataforma Flash existe en todos los sistemas operativos comerciales como Windows, OSX,Linux,iPhone,Windows Mobile,Android y Symbian. Si me salte alguno me dicen.

Algo que ningún otro lenguaje puede abarcar, y todo con las mismas herramientas y versiones del codigo SIN alterar la forma de programar.

Saludos!

Our lovely logo Hola, bienvenido al area un tanto informal de nuestro sitio, donde conversamos de lo que sucede con la tecnología flash, conlusions.....before getting the products :)