photo

kino, interactúa entre tu iPad y todo lo demás

¿Estás interesado en programar, pero ponerte a leer manuales te marea? ¿Tienes un iPad? ¿Tienes dedos? Bueno, pues si cumples con esos requisitos prepárate para probar kino app inventor.

Antes de todo: no busquéis kino en Google. Encontraréis de todo (lotería, editor de vídeo, cafeterías, universidades…) MENOS este programa. Si lo he encontrado, ha sido por casualidad, como ahora os explicaré. Estaba interesado en una app de iPad para programación en Lua que no fuera Codea (10$ son demasiados para mi presupuesto). Tras leerme toda la página de resultados viendo lo aburridas o caras que eran las posibles alternativas, acabé encontrando como caído del cielo kino. Me llamó la atención que usara lo que parecían widgets y que tuviera compatibilidad con Arduino… aunque como no veía ni rastro de código fuente y la explicación de la app era muy corta, me quedé un tanto decepcionado y pasé de comprarla. Pero claro, me había tentado demasiado… así que, tras 15 minutos investigando, encontré el Facebook de Pad2Play (los desarrolladores), les pedí una trial para ver qué tal estaba kino… y aquí estamos.

Para empezar, como en Pad2Play no se les ha ocurrido una buena definición de su propio programa, me he dedicado un par de días a estrujarme una en la cabeza. Aquí la teneis:

kino app inventor es un entorno de desarrollo gráfico basado en objetos, que permite de forma sencilla realizar interacciones entre un iPad y cualquier tipo de dispositivo o servicio en la nube, sin ser un requisito tener conocimientos de programación.

No se trata, por tanto, del típico software tipo C++, Javascript ni Python… se trata de poder usar nuestros iAparatos como una especie de “panel de control”, donde podemos controlar todo tipo de cosas desde la comodidad de nuestro sofá, sin complicarnos la vida conectando cables y programando como un geek. Vamos pues a ver cómo funciona esta maravilla.

descarga

kino app inventor

1,79€ (en promoción)

Aquí tenemos el menú de inicio de kino, una gran combinación de minimalismo y skeumorfismo sin tener que parecer una app oficial de Apple:

photo_1

Vayamos ahora a crear un proyecto. Le damos a new project, pasamos de llamarle de manera alguna. Nos aparecerá ahora la siguiente pantalla:

photo_9

Es, probablemente, la interfaz más sencilla pero a la vez más compleja que he encontrado en mi vida. Tras la inocencia de esos iconitos encontraremos unos cuantos menús de los cuáles no entenderemos nada. Por suerte, podemos diferenciar una ?… ¿querrá decir ayuda?

photo_2

Pues a menos que estrujes la cabeza (cosa que me tocó a mí y por suerte conseguí aprender algo), te parecerá que la interrogación quiere decir “misterio” y no “ayuda”… porque ni siquiera lo menciona en el menú :P

Usando la imagen de arriba como referencia, os iré explicando cómo funciona kino. Todos los programas se basan en una especie de widgets llamados “básicos”. Estos objetos son, por tanto, los que definen el diseño del proyecto y aportan la funcionalidad básica. Tenemos los controladores, los botones, los labels, los objetos, las gráficas y las animaciones. Todos están disponibles en la barra superior. Tenemos además unos iconitos que corresponden a Home y Script en el lado izquierdo. Luego, a la derecha, hay Save (guardar, claro está), Wallpaper (cambiar el fondo del proyecto) y Send to… (parece que es para compartir el proyecto, pero salvo el Bluetooth solamente comparte una foto)

Pasemos a describir los iconos del lateral izquierdo:

  • Home: Pues eso, lleva al menú principal. A ese de antes que tiene celo…
  • Controladores: Esta es, probablemente, la característica más interesante de la app. Se trata de una especie de librerías, como las de C, Python y cada lenguaje medianamente normal… pero podemos ver todos los controladores a un golpe de vista, y además ver fácilmente toda el poder que contiene cada controlador (funciones, valores…). Tienen forma de widget rectangular que parece diseñado específicamente para ocupar innecesariamente espacio de la pantalla… algo que cumplen a la perfección. Hay controladores de todo tipo: GPS, opciones de Internet (PING… :D ), WebService… incluso Arduino. ¡Arduino! Imaginaoslo, con un poquito de esfuerzo podríamos crear una cafetera que nos hiciera el café con sólo pulsar un botón, da igual si estás en el sofá, en la cama o de camino a casa. Qué pena que no tenga el EthernetShield… ;(
  • Botones: Además de lo que el nombre indica, tiene interruptores, sliders y un selector de color.
  • Labels: Agrupa tanto a la típica salida de texto como a un TextField, un visor de imágenes y un Post-it :)
  • Objetos: Simple y típica salida digital, hecha más bonita. Con todo tipo de cacharros que jamás habrías imaginado.
  • Gráficas: Aquí por suerte son más útiles que en Excel. Mientras que algunas se programan autómaticamente por el simple hecho de recibir datos, otras se pueden alterar a mano usando scripts (a continuación). Hay también barras de progreso y un contador como el de los coches ;)
  • Scripts: Lo que buscaba desde el principio. Podríamos decir, aunque no del todo, que “brilla por su ausencia” al hacer programas. Muchas veces ni lo necesitarás, aunque cuando quieras hacer algo un poco diferente (como que un botón haga varias funciones), acabará resultándote una genial herramienta, tan útil como cualquier lenguaje tradicional. Usa una sintaxis surgida de la unión de Lua (==) y BASIC (dim), por lo que es muy sencillo pero a la vez muy potente. Por supuesto, puede integrarse con las demás características de kino, y es lo que hace interesante todo esto: puede automatizar prácticamente todo lo que quieras hacer.
  • Animaciones: Pues eso… animaciones…

Ya sabemos pues qué es lo que podemos hacer con kino. Ahora bien… ¿cómo se programa un proyecto, sin siquiera usar líneas de código? Bueno, aquí presento un pequeño esquema que os facilitará un poco la vida:

  1. Añade un controlador que realize una función. Toca y arrastra por la pantalla para colocarlo.
  2. Añade un objeto o label en el que quieras mostrar una información (hacer algo que permitiera entrada, como un botón, suele requerir programación). Déjalo donde quieras.
  3. Mantén el dedo sobre el objeto. Aparecerá ahora un menú. Selecciona en Source el controlador y en Target la función que quieras utilizar. ¡Listo!

la foto

La idea es, sencillamente, asombrosa. En un principio pensé que era un poco copia del Illumination Software Creator… pero no, tiene su propio toque que lo hace más sencillo y a la vez más organizado.

Veamos algunos ejemplos de lo que podemos hacer con solamente un iPad y un dedo:

la foto 2 la foto 3

Desde herramientas sencillitas…

la foto 1

hasta completos paneles de control.

photo_4

Te veo… ¡bua ja ja jaaa!

Realmente, kino es una maravilla… aun así he encontrado unas cuantas cosas que me han molestado. La primera (que he dejado más que claro) es que la ayuda y la documentación es muy pobre. Al final del post os adjunto unos links con más información, pero os advierto que está incompleta y que puede no aclararos demasiado.

La segunda es la poca cantidad de controladores que se pueden usar. No es que diga que no sean muy flexibles y útiles, es que siempre viene bien tener tantos como pueden haber. Aunque sí, a los que ya hay aún les falta un poco de flexibilidad…

Además, cabe mencionar que lo de que no pueda compartir el proyecto por Internet me ha fastidiado mucho. Para compartir una foto ya me hago yo una captura de pantalla y listo, pero era de esperar algo así como un archivo de texto o un ZIP camuflado que pudiera compartirse entre desarrolladores o, mismamente, gente normal que quiere publicar pequeños programas en su muro de Facebook.

Por último, no sabéis como me molesta ver este mensaje:

photo_7

En cuanto pongo un par de apps que consumen mucha RAM (PS Touch, Chrome, Sonic CD…), cambio a kino y me pongo a programar, me acaba apareciendo ese mensajito todo el rato. No, en serio… en cuanto arrastro un básico, me aparece ese mensaje. Vuelvo a arrastrar, y otra vez. Espero que no ocurra con el iPad 4, porque ya estoy viendo ratings de una estrella…

En conclusión: kino app inventor es genial para esos momentos en los que necesitas crear un panel de control en el que vigilar cualquier cosa desde el iPad, o para cuando quieres hacer un programa sencillito que te deje hacer de todo más rápidamente. Y aunque tiene sus fallos, es normal en una versión 1.0. Además, los de Pad2Play me han dicho que una 1.0.1 con fixes está a punto de aparecer, y que ya están con la 1.1… espero ver grandes mejoras (entre ellas el Bluetooth 4.0 y el soporte para Arduino BLE Shield que sí me dijeron que estaban en ello) :)

kino app inventor 1.0: **********

P. D.: Me gustaría ayudaros un poco más a enteraros cómo se usa, aquí teneis unos pocos recursos:

1984macintosh

¡Felicidades, Macintosh!

Hoy el Macintosh original cumple 29 años… ¡29 años del ordenador para el resto de nosotros!

Sin este pequeño Mac, muchos archiconocidos como el ratón o el escritorio basado en WIMP (windows, icons, menus, pull-downs) hubieran, por lo menos, tardado más en ser introducidos. Se trata de una pequeña genialidad de la Apple de los 80, esa Apple en la que buscaban siempre ser innovadores y traer algo revolucionario (aunque para ello tuvieran que dar parte de sus acciones a XEROX). Es un ordenador totalmente único, incluso hoy en día, ordenadores con un diseño All-In-One como el del Mac siguen siendo escasos… y por mala suerte, caros.

Bueno, pues para el entusiasta del Mac, dejo aquí unos cuantos recursos para celebrar este emblemático día:

  • Folklore: creada por el propio equipo original del Macintosh, nos cuentan al mínimo detalle una de las historias más interesantes del mundo de la informática, con diversas curiosidades y datos.
  • Artículo en Wikipedia. Cómo no… ;)
  • The Mothership: web llena de un montonazo de anuncios, revistas, software… todo relacionado con el universo Apple.
  • Macintosh Garden: descarga aquí prácticamente todo el software que ha existido. Incluso ex-empleados de la manzana y yo hemos subido contenido ;)

Y ahora un par de vídeos para ambientarnos en el momento:

happy-mac-icon

Happy birthday to you, Macintosh!

Bitcoin

Bitcoin: monedas virtuales

Hace poco me enterado por un artículo no precisamente muy positivo de The Verge de una extraña idea de la que al principio incluso me reí: los bitcoins. Empezé a investigar, viendo que se trataba de una moneda virtual P2P.

Esto, en un principio, tiene poco sentido… al fin y al cabo, parece más una idea para pasar un rato que un proyecto con futuro. Leyéndolo sin más, ni siquiera tiene sentido decir que es P2P… como no sea que la pasas de persona a persona, lo cuál puedo hacer con mis preciosos {inserte divisa aquí}

Pues bien, primero fui a la web oficial de Bitcoin. Lo que en principio no tenía lógica alguna, ahora tiene algo más de sentido: permite pagos a cualquiera en cualquier parte del mundo. Pero eso no lo hace muy interesante que digamos. Leo este párrafo, y ya no puedo volver marcha atrás:

The software is a community-driven open source project, released under the MIT license

¿Open source? ¡Esto se ve interesante! Le doy al “Learn more“, donde ahora me aclaro la idea:

Bitcoin is one of the first implementations of a concept called crypto-currency, which was first described in 1998 by Wei Dai on the cypherpunks mailing list. Building upon the notion that money is any object, or any sort of record, accepted as payment for goods and services and repayment of debts in a given country or socio-economic context, Bitcoin is designed around the idea of using cryptography to control the creation and transfer of money, rather than relying on central authorities.

These are the basic features of any Bitcoin-like network.

  • Bitcoins can be transferred between arbitrary nodes on the network.
  • Transactions are irreversible.
  • Double spending is prevented by using a block chain.
  • Transactions are broadcasted within seconds and verified within 10 to 60 minutes.
  • Transactions can be received at any time regardless of whether your computer is turned on or off.

Así pues, la idea es que se trata de una moneda encriptada (como no lo fuera…) que, al considerar que cualquier cosa puede ser utilizada como método de pago, se usa dinero criptográfico en la nube, sin ningún intermediario (bancos, gobiernos, bla bla bla…), evitando así posibles problemas como tasas e inflación, y facilitando el intercambio.

OK, ya me va gustando… ahora bien, ¿cómo consigo BitCoins? Esta vez visito WeUseCoins, y me pongo a ver el excelente vídeo de What is Bitcoin?

Además de insistir en que hagas tu propio negocio o compres monedas, encuentro algo interesante: mining. Y no, no está relacionado con el Minecraft. Se trata de generar bloques de bitcoins a partir de dejar que la GPU haga cálculos complicados. Literalmente, estamos creando dinero de la nada, y una vez se nos recompensa con 25 bitcoins, los bloques son utilizados para garantizar que no duplicamos nuestro monedero.

Antes de continuar con el tema del mining, hace falta mencionar qué es un monedero. Es, pues en un principio eso, un monedero. En realidad, es una especie de “cuenta bancaria” (recuerda que aquí no hay bancos controlando) en la que guardamos el dinero y se lo pasamos a otras personas. La diferencia está en que ni hay que registrarse: literalmente en este caso, querer es poder.

Usar un monedero es sencillo: en cuanto creas uno, obtienes una dirección aleatoria bastante larga que combina números y letras. Cuando vas a hacer una transacción, copias la dirección a la que vas a pagar, pegas en el monedero, metes la cantidad y listo. Pago inmediato, anónimo y sin que un banco se ría en tu cara.

Comenzé descargando el cliente oficial, bitcoin-qt. ¿Problema? Que no sabía que tenía que dejarlo siempre abierto… y es que no me extrañaría que haya perdido algo del mining por culpa de esto ( :P ). ¿Solución? Crear un monedero online. Decidí usar Instawallet, una web sencilla, bonita y sin registro, que además está perfectamente integrada con iOS y no te cobran nada por pagar/recibir bitcoins. Qué lujo… :D

Volvamos al mining. Como era algo nuevo para mí, me sorprendió el saber que usaba GPU y el OpenCL de Apple para hacer los cálculos (curiosamente, hasta ahora nunca encontré OpenCL en ninguna parte). Tras UN DÍA ENTERO instalando OpenCL en Ubuntu y en Windows, me puse a hacer mining usando cgminer, con la gran conclusión de que mi iMac de 1000€ no vale ni para sacar 0.00001€… literalmente. ¡BIEEEEEEEEEEN! :P

Finalmente tuve que pedir un ordenador para hacer mining, que esta vez sí que da “algo”.

Hay dos tipos de mining: el “solo” y el “pool”. Desde antes incluso de saber diferenciarlos, he hecho siempre pool mining. ¿Por qué? Bien: si bien el solo mining puede llevar MESES en ordenadores potentes, el pool mining es capaz de sumar la potencia de miles de ordenadores, logrando sacar bloques en cuestión de un par de horas. Eso sí, recibes una mínima parte de los beneficios… aunque siempre es mejor que nada.

Para hacer pool mining, recomiendo dos sitios: BitMinter y BitcoinPlus. Ambos usan un sencillo software Java que hace el trabajo duro por tí. Mientras que el primero es muy avanzado y permite aprovechar al máximo tu hardware; del segundo ni te enteras de lo que hace, pues basta con dejar una pestaña abierta para que trabaje. No viene mal decir que BitMinter crea además Namecoins, que son como los bitcoins pero peores. Sin embargo, como mis beneficios son de 0.00089552 BTC (sin haber recibido aún nada), finalmente decanté por no hacer mining.

Por último, hay una manera más de sacar bitcoins “de la nada”: webs que te dan dinero porque sí. Aquí os dejo una lista de mis favoritas:

  • BitVisitor: Deja puestos anuncios durante 5 minutos y listo. Un poco cansino, pero se gana “bastante”
  • CoinTube: De los creadores de BitVisitor. Ganas algo menos pero a cambio ves vídeos de YouTube.
  • CoinAd: Sencillamente, entra cada día (o cada hora registrándote) y gana dinero. Sin más. Además puedes ser afortunado y ganar algo más…
  • Daily Bitcoins: Igual que CoinAd, pero con más probabilidades de ganar un premio ;)

Finalmente, puedo deciros que he ganado en dos o tres días la asombrosa cifra de… 0.0058217 BTC. ¿No es increíble? :D

Como obviamente eso es una miseria, agradecería donaciones. En realidad no es difícil en absoluto ayudarme. Una manera es donando directamente a mi monedero, que teneis a continuación:

1LSPLEzdFnPWHSXfT2EpiffVLhdTnr6hYm

Otra manera es hacer mining en BitcoinPlus por mí. Aquí teneis la URL: http://www.bitcoinplus.com/generate?for=21823472

En cualquier caso, ¡muchas gracias! Y de paso, ¡gracias por llegar a las 3000 visitas! :)

De espectalll123 Publicado en bitcoin
20130106-135227.jpg

Reyes interesantes…

Bueno, 6 de enero, día de los Reyes Magos en España… y yo, como siempre, haciéndome algún regalito ;)

Primero, antes de todo, voy a celebrar algo importante: mi iMac cumple 3 años, mi blog 2 y mi iPad uno. Sin ellos no hubiera ni podido usar Ubuntu, ni programar en todas partes, ni compartir mis proyectos… Ya han soplado sus iVelas, por supuesto… :P

Segundo, todos los españoles sabemos que el día de Reyes los niños (y no tan niños) que se han comportado bien reciben dulces regalitos… Ahora mismo no necesitaba más que complementos para mi iPad y un superphone ubuntu, y esto es lo que al final me ha llegado:

  • Un teclado i-CaseBoard: personalmente, me hubiera comprado uno en DealExtreme y listo… pero es que el teclado es en español :O
    Es medianamente bonito y agradable de usar (recordando a un Macbook todo lo que puede recordar el plástico), y ya no tendré que preocuparme por si me quedo sin batería :)
  • 20130106-135313.jpg
    20130106-135326.jpg

  • Unos guantes táctiles: ¿no es increíble? #bestgiftever!
  • 20130106-135459.jpg

  • La camiseta oficial de Ubuntu One: todos nos acordamos del amargo App Showdown en el que quedó primero ese cutre Picsaw (no es una copia del de Mac OS 7 ni nada) y docenas de apps quedaron sin aprobarse (como la mía). Pues bien, al menos como compensación por lo caótico que fue el concurso, me ha llegado por fin mi camiseta:
  • 20130106-140417.jpg

    ¿No os creeríais de verdad que revelaría mi identidad tan fácilmente? ;)

    Bueno, y poco más tengo que decir… ¡salvo que quería que me regalaran un superphone ubuntu! D:

    ¡Feliz vuelta a la rutina a todos!

    20121229-180701.jpg

    Web apps como apps reales en iOS

    Bueno, hace tiempo que no ponía nada en mi blog… ya era hora de poner algo :D

    Y es que la mayoría del tiempo libre le dedico a la experimentación con HTML5, Python, ensamblador… Consiguiendo finalmente hacer algo con HTML5 y jQuery.

    No, en serio, no he usado jQuery más que un par de veces y no lo domino, es ahora que voy entendiendo cómo funciona. Y es que, al contrario de lo que yo creía, se ve muy funcional, sencillo y fluído. Además, es gratis y open-source. ¿Qué más se puede pedir? ;)

    Pues bien, el primer experimento con el que empezé a probar jQuery (de forma muy elemental) es una web app de iOS. En un principio eso no es mucha cosa. Lo interesante viene aquí:

  • Funcionamiento offline mediante un manifest.
  • Detección de conexión de red mediante Javascript.
  • Animaciones web y efectos CSS interactivos mediante jQuery.
  • Instalación de la web app en iOS mediante las APIs de Apple.
  • Todo programado usando únicamente mi iPad 2.
  • Para este experimento no he usado más que la app Koder (que hace menos de un mes recibió un nuevo diseño y muchos, muchos fixes), jQuery 1.8.3, su documentación oficial y toda la ayuda que Google pudo proporcionarme. La app, que no es más que la primera idea que se me vino a la cabeza ( ;) ), muestra a la mascota del kernel Darwin con un poco de texto, redireccionando a la web oficial siempre que se esté conectado a Internet. En un principio, funciona en cualquier aparato, pues salvo las APIs específicas de iOS, todo es HTML5, CSS, Javascript y jQuery ordinarios.

    Aquí os acompaño unas pocas capturas de pantalla de todo en general:

    20121229-180353.jpg
    20121229-180712.jpg
    20121229-180510.jpg
    20121229-180522.jpg

    Por ahora necesito experimentar más, he pensado en un editor de imágenes con filtros CSS… salvo exportar la imagen, no debería ser muy difícil :/

    Y por último, por si no estoy online para entonces… ¡feliz año nuevo! ;)