martes, diciembre 01, 2009

WaldeP@y en la Apple Webapp Store

Hace unos días comentaba en Twitter que había desarrollado una aplicación iPhone Web utilizando GeneXus y la librería jQTouch.

La aplicación se llama WaldeP@y y surgió para llevar las cuentas de "Waldenei", que no se bien qué vendría a ser, pero es algo que reune, desde más o menos 1996, a 10 amigos todos los miércoles a cenar, charlar, tomarse unas (cuantas) y escapar por unas horas de los respectivos hogares.

El hecho de juntarnos semanalmente implica un par de gastos como por ejemplo el alquiler del departamento, los gastos comunes, la limpieza, las bebidas, los cigarros, la comida, la luz, etc etc.
Por lo cual hace ya tiempo decidimos poner todos una cuota mensual para sobrellevar los gastos y tener un resto por las dudas.
Yo me ofrecí para llevar "la caja" hace un tiempo y hasta ahora usaba una planilla excel, pero ya se me estaba complicando, dado que te pagan de a puchos, no todos pueden ir siempre y se acumula la deuda etc etc.

Fue asi que a Pablo se le ocurrió hacer una aplicación... y dado que ambos habiamos adquirido iPhones, se le ocurrió hacer una aplicación para poder acceder desde el teléfono.

Eso, juntado con mis ganas de hacer algo más para iPhone resultó en esta aplicación que es muuuy específica para nuestra necesidad y realmente poco útil para otra persona (a menos que tengas que llevar una caja y cobrarle cuota a alguien).

Toda esta historia que les resumí, fue la introducción para contarles mi sorpresa hoy.

Comencé a ver en los logs un montón de ingresos... cosa que me llamó la antención ya que nadie sabia la URL (a menos que Marcos te hayas dedicado a entrar y salir de la aplicación durante todo el día :) )... y me acordé que, casi sin querer, por sacarme las ganas nomás, la había enviado al iPhone WebApp Store de Apple a ver si la aprobaban... sin mucha letra, pensando que nunca la iban a publicar...

Sorpresa hoy!! Estaba publicada aca!

Ahora me arrepiento de no haberle puesto un poco mas de color (a la foto, el icono y la descripcion) pero bue...

En verdad para que le sirva a alguien deberia hacerla en inglés y no tan específica como está ahora en la cual existe un unico usuario administrador que puede realizar todas las acciones.
Asi que para la versión 2, si es que alguna vez hay, voy a tratar de hacer algo más útil... y con algun boton de "donate" por el camino :)

Aca les dejo un video que subí el otro día para mostrar el desplazamiento y animaciones que se logra con jQTouch.





lunes, noviembre 23, 2009

iPod cumple 8 años

El iPod cumplió 8 años. Increible como pasa el tiempo, da la sensacion que los MP3 Players estuvieron en la vuelta hace muchisimo mas. El primer modelo tenia 5 GB de espacio en un disco duro (el flash era incipiente aun), costaba casi 400 dolares y solo funcionaba con Mac (era Firewire). Posteriormente salio la version USB para Windows, pero si querias Windows, era otro modelo solo para esa plataforma.

En ese momento solo servia para pasar los discos que teniamos a MP3, porque no habia iTunes Store donde comprar música (ni mucho menos la AppStore). En la presentación Steve regalo a los periodistas un iPod y 10 CDs, para que comprendieran la magia.

A todos los que admiramos Apple por lo coherente de sus productos, el diseño, la facilidad de integración, resulta muy interesante ver este video de cuando Steve Jobs hacia la presentación inicial del iPod. Notense algunas diferencias con los lanzamientos estelares actuales:

  • El escenario: parece un cine viejo y no el escenario estilo “entrega de la quinuagesimanosecuanto Oscar” de hoy en dia. La pantalla de fonto tan caracteristica hoy es una pantalla como las que hay en cualquier sala de presentación
  • La tecnologia: no es universal como pretende ser hoy en dia, habia que ser un poco geek para comprenderla y usarla
  • El posicionamiento frente a la competencia es abierto
  • El foco en calidad, usabilidad y diseño se nota desde el primer dia

Mas alla de las observaciones, obviamente Steve y quienes haya trabajado en este producto en aquel entonces se merecen toda la gloria que tienen, crearon o redefinieron un mercado, y hoy, 8 años mas tarde, pese a la infinidad de clones, MP3s y MP4s que hay en la vuelta, y pese a que siguen siendo mas caros, tienen el 74% del mercado de los reproductores.

Recomiendo el post de David Gomez en La Vida U de donde saque casi toda esta info.

jueves, noviembre 19, 2009

Uruguay a Sudáfrica 2010 !!

Todos en Uruguay sabemos de fútbol, todos somos técnicos y también críticos... asi que para no ser menos, voy a comentar algunas impresiones de esta selección de Uruguay que nos devuelve la alegría de estar en un mundial !!

Fuimos una vez más al estadio, como de costumbre, con la ilusión de ver ganar a la selección y meternos entre las 32 mejores del mundo. Yo en lo personal creía que el partido iba a ser mucho más fácil de lo que resultó y que entre Uruguay y Costa Rica había 3 goles de diferencia a favor nuestro a las risas!. La cosa es que costó, sufrimos y mucho pero estamos en el mundial!

La primera sorpresa de la noche fue el himno nacional cantado por el Zurdo Bessio. Una versión murguera que sonaba bastante bien.
Me gustó la idea de cambiar aquella voz del "sodre" en la que se escucha la pua del disco de pasta haciendo ruido atrás y perder el "miedo" a cantar el himno de forma diferente.... pero no me gustó que se cantara la versión larga del mismo... es demasiaaaado larga!!.
Y además yo prefiero, en el estadio, el himno cantado por 70.000 personas, haciendole sentir la localía al otro equipo e inyectando adrenalina en nuestro equipo ... se me pone la piel de gallina!

En cuanto al partido, creo que merecimos mejor suerte con el trámite (esta frase se la debo haber copiado a algun periodista, porque sonó igual a ellos).
Merecimos algun gol en los primeros minutos para jugar más tranquilos, pero bueno, esta selección de Tabarez no se caracteriza por ser goleadora, es mas bien muy avara con el ataque y bastante conservadora con el juego en general.

Qué destaco?... Lodeiro... que jugador este pibe!

Además de verlo jugar todos los fines de semana en mi cuadro y pedirlo a gritos en la selección desde hace tiempo a falta de un "10" que tanto necesita Uruguay, y luego de haber jugado un muy mal partido en Costa Rica, ayer se tomó revancha y la descosió... el mejor de la cancha.

Para darse cuenta que un jugador tiene clase, basta con verlo parar la pelota, levantar la cabeza y hacer un pase rastrero de 40 metros al pie del compañero. Es diferente, toca la pelota de otra forma y siempre pegada al pie y siempre con la cabecita levantada. Le dio el "enganche" que Uruguay necesitaba entre el mediocampo y los delanteros para no tener que jugar al pelotazo. Se mostró en toda la cancha siempre pidiendo la pelota (cosa que es dificil ver en otros jugadores que esperan parados) y por si fuera poco también colaboró con la defensa, bajando corriendo como loco cuando los grandes de Uruguay subían a buscar un cabezazo y quedabamos en bolas abajo.

No tuvo la puntería que tiene en Nacional en general, pero todo no se le podía pedir!
Tiene 19 años, segundo partido con la selección y nunca jugó en Europa .... yo creo que este pibe va a ser el crack de Uruguay en los próximos años sin dudas.

El palito Pereira.... yo no entiendo como ocupa un lugar en la selección. No se de que juega. No se si es lateral o volante porque no funciona bien en ninguna de las dos posiciones. Lo vi jugar bien solo un partido y nunca más. No puede ser que no tengamos otro jugador para ocupar ese sector de la cancha. Tabarez... por favor!! es culpa del esquema conservador que aplica, haciendo que en buena parte del partido Uruguay juegue con linea de 5, ya que palito y maxi pereira bajan y juegan de laterales.

El ruso Perez, un tigre, muerde, raspa , va y va a todas las pelotas. Ayer estuvo muy impreciso con los pases (hasta con los pases a 1 metro) pero la verdad que lo que marcó y quitó lo hizo ser un jugador fundamental!!. El mejor después de Lodeiro.

El Loco Abreu... que se puede decir del loco?. Lo pedíamos (al menos el Turco y yo) deseperadamente desde los 5 minutos del segundo tiempo cuando se veía que el gol iba a llegar por arriba.
Abreu está tocado por alguna varita mágica, está destinado a goles importantes, a goles decisivos y además tiene la suerte de los goleadores.

Identificado sin dudas con Nacional, es increíble el sentimiento que genera en la gente, ya que hasta los hinchas de Peñarol lo piden y corean el "oleeee oleee olee olee locooo locooo". Esto lo atribuyo a que es terrible gente, humilde, es un tipo que se hace querer.

Si alguien se merecía este gol, ese era Abreu y si hay un jugador que siempre quiero que vuelva a Nacional, también es Abreu!

Por si fuera poco, salvó un gol olímpico que poca gente vio en el estadio... tiraron rápido un corner que se metía!! y el loco la sacó de cabeza en palomita.

Suárez anda bajísimo, pero es tremendo jugador... no se.. habrá que esperarlo supongo.

El resto, bien. Lugano se consolidó definitivamente como el capitán de Uruguay, el Paolo Montero de esta nueva generación. Mentalmente maduró y está mucho menos loquito. En lo futbolístico creció un montón siendo decisivo en las dos áreas.

Forlán siempre juega bien, se nota su clase, al igual que con Lodeiro, cada vez que la toca.
Cuando las papas quemaban, se puso el equipo al hombro, la quería siempre y generó un par de faltas importantísimas para que el tiempo pasara al final del partido.

Destaco al flaco Fernandez que entró por Lodeiro y entró enchufadísimo en el peor momento de Uruguay. Un par de jugadas donde se vio que tiene que ser titular (en lugar de palito???), demostrando clase para llevar la pelota y desbordar como los punteros de antes.

Una verguenza el lio que se armó entre la gente de Tenfield y los suplentes de Costa Rica. Como podrán notar, no se encuentra ni una noticia que hable de esto. Pasión no mostró nada de la pelea. Tapalo con diarios fue la orden al parecer!!
Como diría el banana de Julio Rios : IM-PRE-SEN-TA-BLE

Y bueno, la cosa que jugando más o menos, sufriendo pero poniendo siempre todo en la cancha, estamos en el mundial!! Y lo estamos disfrutando y festejando!! Un festejo que tenemos más que merecido!! Fuimos al estadio todos los partidos, a pesar de los precios, a pesar de que tenian que darnos 2x1 para que fueramos, a pesar que se fijaban los precios 3 dias antes dependiendo de otro resultado, a pesar de la lluvia ... a pesar de todo esto siempre estamos!.

Y si bien, tenemos que mejorar mucho en cuanto al fútbol colectivo para poder hacer un buen papel en el mundial, estar ahi representa mucho!

Representa que vamos a poder disfrutar del sorteo!.
Que vamos a poder mirar con ganas todos los programas sobre el mundial que van a hacer todos los canales uruguayos!! (porque la verdad que los de Alemania 2006 ni los miré).
Que tenemos asegurados como 7 asados con amigos y cerveza!!! 4 partidos amistosos y 3 partidos en el mundial por lo menos!!

URUGUAY NOMAS!!!


miércoles, noviembre 04, 2009

iPhone 3GS Unlock - Blacksn0w

Make it ra1n

Ayer, 3 de noviembre 2009, fue liberada la aplicación Blacksn0w que realiza el 'unlock' del iPhone 3G/3GS con cualquier firmware de una forma increiblemente sencilla!

No voy a hacer el tutorial de cómo hacer el unlock del teléfono ya que hay varios en la web. Uno muy bueno que pueden leer es este, en el blog de Sebastian Page .


Más bien voy a contarles brevemente la historia de esta aplicación, ya que la tuve que seguir desde el comienzo cuando un amigo consiguió un iPhone 3GS que venia con el último firmware y con la ultima baseband (05.11.07).... por lo cual, no existía un método para hacer el Jailbreak ni para hacer el Unlock... o sea, era un precioso ladrillo de 600 dólares!!

Hace un mes más o menos, empecé a escuchar el nombre de George Hotz (geohot de ahora en adelante), un púber de apenas 20 años que había sido el primero, junto con un grupo de 5 hackers, en desbloquear el primer iPhone allá por el 2007.

Sonaba en el Twitter y en los blogs el hecho de que geohot había vuelto a las canchas y estaba desarrollando una aplicación llamada Blackra1n, que realizaba el jailbreak de cualquier iPhone (2G,3G,3GS). La motivación de geohot era que no existía una forma única de hacer el jailbreak, sino que los métodos variaban dependiendo de la versión del iPhone y del firmware instalado, y por lo tanto quería hacerlo más fácil para los usuarios.

En 2 semanas aproximadamente, ya estaba liberada la primera versión de Blackra1n y unos días despues la versión final. (La cual usé para hacer el Jailbreak del iPhone de mi amigo).

Hasta acá todo era color de rosa, pero geohot dejó helada a la comunidad que lo sigue al anunciar que no trabajaría en el unlock del teléfono. Blackra1n sería solo una aplicación para hacer jailbreak. Este anuncio implicaba que seguiríamos teniendo un ladrillo pero al cual le podriamos instalar aplicaciones no firmadas por Apple.
Esto no solo afectó a la comunidad de usuarios de iPhone, sino también a los que lucran con la desinformación de la gente y se dedican a vender freeware. Este es el caso particular de Jody Sanders quien ofreció a geohot U$S 10.000 por hacer el unlock!


Después de esta mojada de oreja, geohot decidió trabajar en el unlock "for free".
Lo increible de esta historia es que el muchacho este anunció que trabajaría en el unlock y que además lo tendría listo en una semana!!! Anunció que liberaría la aplicación Blacksn0w el 4 de Noviembre del 2009.
Eso es tenerse fe!!!. Con lo complicado que es para los programadores estimar fechas de entrega, este chico se la jugó y tiró una fecha muy cercana para realizar algo que nadie había podido hasta la fecha.

En el twitter iba comentando agujeros que iba encontrando en el código y "exploits" que aprovechaba para inyectar su código... en verdad era chino básico.. el código y la explicación!

Finalmente, el 2 de Noviembre publicó un video con el primer unlock en vivo de un iPhone 3GS con el último firmware y el 3 de Noviembre (un día antes de lo anunciado) liberó la aplicación.
Ayer mismo utilizamos esta aplicación para realizar el unlock de nuestro iPhone y funcionó a la perfección. Es tan, pero tan sencillo que cuesta creerlo!.

No se si geohot alcanzará, mediante donaciones, la cifra de U$S 10.000 que rechazó, pero sinceramente que se lo merece!

Una reflexión que nos merece este chico: "la p... madre!! tiene solo 20 años!"



viernes, octubre 23, 2009

GPS en iPhone con mapas de Uruguay y Argentina

Lo prometido es deuda. Llevó un poco más de tiempo de lo que esperabamos por un tema de disponibilidad de los mapas.

Tenés tu iPhone pronto? tenés una red wifi? tenés un rato libre? bueno, acá hay un tutorial de cómo instalar el TomTom con navegación por voz y con los mapas de Uruguay y Argentina.

Lo primero y fundamental es que tengas tu iPhone "jailbroken".
En caso que no lo tengas o no sepas qué es esto, podés leer este post que te va a explicar qué es y te va a ayudar a hacerlo.

En caso que lo tengas, ya mismo podés empezar con el tutorial.

1) Primero necesitamos 2 aplicaciones en el iPhone. Para esto vamos a agregar una source a Cydia (abri Cydia, en la parte de manage, sources, add: cydia.hackulo.us )

2) Una vez agregada la source, vamos a buscar e instalar estas dos aplicaciones: openSSH e Installous

3) En el PC necesitamos un programa para poder transferir archivos via ssh al iPhone. Uno muy bueno es el winSCP, es gratis y lo pueden descargar desde aca: winSCP

4) Descargá el archivo de la aplicación TomTom que ya incluye los mapas desde acá: TomTom

5) Descomprimí el archivo de la aplicación TomTom (tiparur.zip) en algún lado (va a quedar un archivo tiparur.ipa)

Hasta acá ya tenemos todo lo necesario para empezar a instalar la aplicación.

6) Conectá el iPhone a una red wifi y verificá el IP que se le asignó. Esto lo podés ver en las propiedades de la red a la cual se conectó.

7) Ejecutá el winSCP en el PC y creá una conexión al IP asignado al iPhone. (es muy similar a un cliente FTP). Conectate usando el usuario: root
La password por default es: alpine

Quizás te pregunte algo sobre claves RSA, decile que se conecte igual y guarde la clave.

8) Una vez conectado, navegá en el panel de la derecha (directorios del iPhone) hasta la carpeta: /private/var/mobile/Library/Downloads
(si la carpeta Downloads no existe, crearla con permisos 0775. Esta es la carpeta donde Installous guarda los archivos descargados, y como recién lo instalaste y no bajaste nada, aun no existe)

9) Copiá el archivo tiparur.ipa a esa nueva carpeta (arrastrandolo en el winSCP)

10) Una vez que termine la transferencia, andá al iPhone y ejecutá el Installous. Movete al tab "Downloads" y ahí vas a ver la aplicación "tiparur", cliqueá sobre la misma y dale Install.

(no te preocupes si parece que el iPhone se "congeló" mientras descomprime el archivo, dale tiempo porque demora)

Una vez que finalice la instalación, verificá que te creó el icono en la pantalla principal.
Si es asi, ya tenés el navegador instalado!!

Este tutorial es la primer versión del mismo, ya que lo escribí de memoria luego de instalar la aplicación en mi iPhone... si alguien se encuentra con algún problema o ve que falta algún paso por favor avisenme y lo corrijo!

Si te sirvió el tutorial, regalanos una cerveza!!






domingo, octubre 11, 2009

Ancel encuentra

Ancel Encuentra es un servicio nuevo de Ancel para localizar a tus contactos que asi lo permitan. Es una especie de Google Latitude pero que no necesita una conexión a internet y puede ser utilizado desde la web o via mensajes de texto (sms).


La agenda de contactos no es la de tu celular, sino que es una agenda que te vas armando en la web (o via sms) con el numero de celular que queres localizar y un nickname asociado.
Una vez que agregás un número a esa agenda, se envia un sms pidiendo permiso a tu contacto para que tu lo localices. Esta localización es configurable... en la web podés activar o no la localización e incluso definir un "schedule" con dias y horarios en los cuales te pueden localizar.

Casi toda acción que realices tiene un costo asociado, salvo agregar un contacto a la agenda... después si queres modificarlo sale 1 peso, si queres encontrarlo 3 pesos , etc etc. Se puede ver la lista de precios aca: Precios Ancel Encuentra.

Es posible realizar un seguimiento de tu contacto, lo cual te envía su ubicación cada n segundos y hasta 720 veces.

Yo realicé una pruebita y anduvo bastante bien localizandome a 4 cuadras de donde yo realmente estaba (este test lo hice via web)



Luego hice el test utilzando el servicio via sms, enviando un sms "ENCUENTRA 099xxxxxx" al 36633 y el resultado me localizó tambien a 4 cuadras de donde yo estaba, pero hacia el otro lado de 21 de setiembre.... yo esperaba que me enviara la misma ubicación que en la web, ya que la hice practicamente al mismo tiempo. Este es el resultado via sms:


La verdad que me gustó el servicio, muy útil para padres nerviosos. Piratas abstenerse y buscar excusas para no participar!!.
Está muy bueno sobre todo para quienes no cuentan con un teléfono con conexión a internet o con gps y no tienen acceso a google maps o latitude.

Muy bien Ancel esta vez.

Esta es la página web para comenzar a utilizar el serivicio: Ancel Encuentra

viernes, octubre 02, 2009

Google Traductor

Hoy me topé con este sitio de Google casi sin querer y no me aguanté de hacer una pruebita!

Agarré una página de un sistema hecho con GxX que está en español y le apliqué la API para traducirlo a otro idioma automáticamente... la traducción al inglés queda muy bien, muy fiel al texto original, luego probamos con la traducción al sueco y aprovechamos la sabiduría de Martin (el "sueco") y su fluidez para hablar esa lengua nórdica y parece que la traducción no es tan buena como la del inglés...

Esta es una captura de una de las páginas del sitio traducida al árabe... si alguno se anima a decirme si está bien lo que dice, arriba!


jueves, septiembre 24, 2009

GeneXus y iPhone III


Luego de haber desarrollado la aplicación web, haber embebido la misma dentro de una WebView para transformarla en una aplicación nativa iPhone y haber testeado con éxito la misma en el simulador de iPhone que viene con el SDK, es momento de transferir esta aplicación a un teléfono de verdad, ya que el comportamiento en el mismo es diferente al que se aprecia en el simulador debido básicamente a que el hardware del teléfono no es tan potente como el que utiliza el simulador.

Estaba pensando como armar un tutorial, cuando me di cuenta que tendría que pasarme por lo menos una hora pegando screenshots y escribiendo los pasos a seguir, por lo que me pareció más beneficioso (al menos para mi) compartir el link a este sitio donde encontré el mejor y más claro tutorial de la web.


Cuando yo decidí pasar mi aplicación al teléfono, obviamente lo intenté hacer sin leer nada y a lo guapo... primero intenté con el iTunes, luego con un software que permite explorar los archivos en el iPhone (iPhone Explorer) y luego mediante SSH usando un terminal que bajás de Cydia... pero no logré nada, el teléfono no reconocia la aplicación como tal, por lo que empecé a buscar en internet como hacerlo.

Primero fui directo al sitio de Apple donde la documentación es excelente, pero como todo uruguayo desconfiado, no "acredité" cuando llegué a la parte donde decía "para poder transferir una aplicación a un teléfono, tenes que ser miembro del Programa de Desarrollo iPhone (IDP), y tenes que pagar U$S 99 para obtener un certificado para firmar el código y un provisioning profile para que el teléfono pueda ejecutar tu aplicación" ..... cric cric....

"Pero... entonces para poder testear mi aplicación en mi teléfono, tengo que pagar U$S 99 ???"
Yes sir... hay que pagar.

Esto, para alguien que realmente piensa desarrollar aplicaciones para iPhone, no suena tan caro... pero desalienta a quien quiere testear su primer y probablemente única aplicación !!

Después de leer y releer la documentación e intentar inscribirme al IDP sin pagar y no lograr avances, desistí de hacerlo por la derecha y pasé a leer la "otra" documentación... la que no va tan por la derecha (cosa que no apoyamos para nada!!! es más ... la repudiamos!!) y que en general te saca del apuro, al menos para el uso personal... yo solo quería ver mi aplicación en el teléfono!! no pensaba comercializarla ni subirla al Apple Store ( claro... si pagás los U$S99 obviamente el paso siguiente es postearla al Apple Store y esperar la aprobación ).

La cosa es que encontré algo de información respecto al tema... muchos workarounds para probar, pero ninguno que realmente funcionara. Hay un método que explica como crear un certificado y hacerle pensar al teléfono que tiene un provisioning profile y lograr que ejecute código no firmado, pero parece que dejó de funcionar luego de la version 2.1 del S.O. del iPhone. (lo digo con propiedad ya que tuve que reinstalar el SDK luego de tocar muchos archivos al parecer importantes para el funcionamiento del mismo :P ).
Si alguien lo quiere probar, este es el link How to deploy an iPhone application without an IDP membership

O sea... en resumen, (increiblemente) no aconsejo perder tiempo intentando hackear el proceso oficial. Si querés transferir la aplicación al teléfono, lo mejor es tomarse el tiempo y tener la paciencia de llenar formularios y seguir el tutorial del link que les pasé más arriba.
Una vez que hacés esto y tenés bien configurado todo, el camino de ahi en más es bastante más sencillo, incluso para la publicación en el Apple Store.

Existe una alternativa al Apple Store llamada Cydia que vendría a ser un repositorio de aplicaciones de código no firmado. Aun no lei mucho de como realizar un deploy en Cydia, simplemente vi muy por arriba que también es un proceso complicado ya que hay que armar un paquete de determinada forma... espero poder hacer un post con este otro proceso cuando tenga un tiempo para investigar.


Si te sirvió el tutorial, regalanos una cerveza!!





sábado, septiembre 19, 2009

GeneXus y iPhone II

En este post les cuento como transformar tu aplicación web para iPhone en una aplicación nativa Objective-C.
La ventaja es que no parece una aplicación web y no muestra las barras de dirección y la barra de navegación del browser, permitiendo aprovechar al máximo la pantalla.
Las desventajas (al menos las que me encontré yo en mi primer aplicación) son que no podes abrir nuevas ventanas (tipo target=_blank) y que no podés guardar cookies como lo harías en el browser común.

La primer desventaja es facil de sobrellevar ya que no hay necesidad de navegar hacia otra ventana, es más, se me ocurre que lo mas prolijo y el mejor método para que parezca una aplicación no-web es diseñar la pantalla utilizando un "gran" div que sirva de contenedor e ir modificando sus elementos via ajax, asi nunca "cambiamos" ni siquiera de pagina.
Yo haría una pagina, llamemosle aindex.aspx (es un procedure GX main http). Esta pagina tiene dentro un div "contenedor" con 2 divs hijos "header" y "body". El div header se reescribe por javascript, si es necesario, cada vez que se cargan nuevos contenidos en el div body y al div body se le va cambiando el contenido via ajax usando jquery (para aprovechar los efectos de transicion), de esta forma siempre estariamos parados en index.aspx. Pero esto es solo una idea.

La segunda desventaja se puede solucionar utilizando el motor de base de datos que tiene incorporado el iPhone y crear una tabla donde almacenar las cookies, sesiones o cualquier otro dato que se necesite.

Bien, tenemos nuestra aplicación web (ver post GeneXus y iPhone) y queremos transformarla en una aplicación nativa iPhone. Voy a tratar de hacerlo en forma de wizard asi queda mas ordenado:

1) Conseguite una Mac o una maquina Intel, instalate el MacOS Leopard 10.5.X o instalate alguna distro de MacOSX86 para pc e instalá el SDK del iPhone.

2) Abrí el XCode y seleccioná crear una aplicación "view-based", ponele un nombre que tenga que ver con tu aplicación web, para este ejemplo le pongo "Eventos".




3) Localizá el archivo EventosViewController.h, abrilo en el editor y modifcalo para dejarlo asi:

#import <>
@interface EventosViewController:UIViewController {
IBOutlet UIWebView *webView;

}
@property (nonatomic, retain) UIWebView *webView;
@end




4) Localizá el archivo EventosViewController.xib y abrilo haciendo doble click, te debería abrir un editor llamado Interfase Builder que sirve para diseñar las pantallas. Arrastrá desde la librería de controles el control llamado UIWebView.
Luego tenés que hacer un link entre el objeto File's Owner y la UIWebView que agregaste... esto lo haces cliqueando con el botón derecho en File's Owner y arrastrando hasta la UIWebView y seleccionando "view" en las opciones que te presenta. Ya podés salvar y cerrar el Interfase Builder.






5) Localizá el archivo EventosViewController.m, abrilo y modificalo para dejarlo asi (cambiando la url para apuntar a tu aplicacion) ... aca se ve feo, pero en el editor no es tan entreverado:

#import "EventosViewController.h"
@implementation EventosViewController
@synthesize webView;
-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
}
return self;
}
-(void)viewDidLoad {
NSString *urlAddress = @"http://www.miservidor.com/eventos/aindex.aspx";
//Create a URL object. NSURL *url = [NSURL URLWithString:urlAddress];
//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[webView loadRequest:requestObj];
}
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
-(void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
-(void)dealloc {
[webView release];
[super dealloc];
}
@end



6) Cliqueá el boton Build & Go del XCode y listo!! Ya tenes una aplicación iPhone nativa!
Luego podes modificar el archivo Eventos-info.plist (es el archivo de configuración de la aplicación) para agregarle datos, como por ejemplo, el nombre, el ícono (debe ser un png de 57x57 pixels), etc etc.

Resumiendo, poniendo un poco de pienso en alguna funcionalidad de la aplicación que utilice cookies u otra funcionalidad que no se comporte como debe (que a mi no me sucedió) y escribiendo solo unas pocas lineas de código, tenemos una aplicación iPhone ... lo bueno, además, es que esta aplicación "cambia" segun cambiemos el código en nuestro server ya que esta hosteada allí.
Se podría también importar todos los fuentes de la aplicación web al proyecto en XCode y apuntar la UIWebView a un archivo local a la aplicación ... pero esto depende de la naturaleza de la aplicación... si se nutre de la web no tiene sentido ya que de todos modos consumiría datos el server... no se.. es otro approach válido.

Una vez que lograste compilar y ejecutar esto en el simulador del iPhone en el SDK, seguramente te sientas entusiasmado y quieras transferir la aplicación a tu celular para probarla y para mostrarle a tus amigos!!!
Bueno... no te emociones mucho, porque eso que parece una tontería no es para nada sencillo (@Enrique: ojalá fuera solo transferirla con iTunes al teléfono).

Pero esto.... esto es lo que guardamos para el siguiente post!!!
( y si che... tanto tiempo sin escribir nada que tengo que ir largando de a poco las cosas!!)

Si te sirvió el tutorial, regalanos una cerveza!!










jueves, septiembre 17, 2009

GeneXus y iPhone


En el evento se mencionó timidamente la palabra iPhone en alguna charla, pero más que nada como caso particular de los "smartphones" en general.
Una aplicación iPhone es lo que está de moda, es lo que todo el mundo quiere hacer y es lo que muchos se preguntan cómo hacer.

Una aplicación iPhone puede ser de 2 tipos (ambos son aceptados en el Apple Store o en Cydia). Puede ser una aplicación nativa desarrollada en Objective-C o puede ser una aplicación web (webapp) que respete una serie de recomendaciones de Apple.

Si queremos desarrollar una aplicación nativa, necesitamos una máquina donde podamos correr el sistema operativo MacOS y utilizar el editor XCode que se instala con el iPhone SDK. Necesitamos además aprender a programar en Objective-C. La ventaja de una aplicación nativa es que tenemos acceso a todas las funcionalidades y features del teléfono, como por ejemplo la cámara, el acelerómetro, los contactos, etc.

Si queremos desarrollar una aplicación web, tenemos varias opciones.

1) Desarrollar una aplicación utilizando el Dashcode (iPhone SDK y MacOS) que nos brinda varios templates y una libreria de controles que podemos poner en la pantalla mediante drag&drop. Consumimos webservices para la comunicación con el server.

2) Desarrollar una aplicación web como lo hacemos habitualmente, utilizando html, css y javascript y ejecutar la misma en el browser del teléfono.

3) Idem al punto 2, pero luego embeber esta aplicación en una "cáscara" de aplicación nativa de iPhone utilizando el XCode en MacOS. Esto lo que hace es ejecutar un browser dentro de una aplicación nativa de tal forma que no te das cuenta que es web.

Dado este entorno, y si tuviera que hacer una aplicación iPhone, no elegiría hacer una aplicación nativa ya que no veo conveniente hacer algo que corra solo en una plataforma (además de aprender Objective-C para terminar haciendo simplemente altas, bajas y modificaciones en una base de datos).
Asi que iría por el lado de las aplicaciones web.

El punto 1 lo probé, me pareció muy piola sobre todo porque ya te resuelve todo el tema de las "animaciones" y "transiciones" tan bonitas que tiene el iPhone para pasar de una pagina a otra o para hacer efectos. Es simplemente decirle como hacer la transicion (similar a elegir un efecto en Power Point). En cuanto al código, lo bueno es que solo hay que saber javascript, por lo que podes hacer request ajax para comunicarte con el server y ejecutar procedures main HTTP o webservices de gx.

El punto 2 es el más sencillo de todos.
Ojo que no es solo hacer la pantalla más chiquita para que entre en el iPhone, es bastante más. Hay que repensar tu aplicación para que en cada pantalla puedas resolver las acciones utilizando solo 1 o 2 botones y tiene que ser altamente customizable (es decir, prendé fuego las tablas y utilizá solo divs y muchisimo css).
Me quedo con la ppt de Gastón Milano de "Los 3 fantásticos" son fundamentales para una aplicación web... html, css, javascript.
Lo ideal sería escribir a mano en procedures main HTTP el código html (evita tener que bajar el gxgral.js y el dojo.js que son muy pesados y si los usuarios que usan la aplicación son "one-time users" y no tienen cacheado estos javascripts, se aburren y cierran el browser antes de que cargue la aplicación) y no utilizar webpanels y menos transacciones, pero esa es una decisión de cada uno. (Hay que tener en cuenta que el tráfico en kbs y la cantidad de requests es crítica para que la aplicacion funcione correctamente).
Es necesario utilizar alguna libreria javascript que te permita emular las transiciones y animaciones, jQuery es suficiente, sin embargo hay librerias especializadas y pensadas para el browser del iPhone (PhoneGap, UIWebkit, etc).
(En un post futuro haremos una evaluación de PhoneGap que es muy poderosa ya que utiliza bibliotecas compiladas en Objective-C para poder acceder a features del iPhone mediante javascript... aunque el Apple Store no está aprobando las aplicaciones que utilizan este framework).

El punto 3 es el más atractivo para mi. Todo lo que hiciste para terminar tu aplicación en el punto 2, ahora lo podes poner facilmente en una cáscara de aplicación nativa y ver tu webapp "transformada" en una iPhone Application. Lo que se debe tener en cuenta es que no se puede abrir otra ventana del browser, asi que si tienen algun "target=_blank" por ahi, hay que sacarlo.

Qué otra ventaja tiene hacer tu aplicación web y no nativa... que esa misma aplicación si la pensaste bien, funciona en cualquier browser de cualquier teléfono móvil, y solo necesitas cambiar el css de la misma.

Ahora bien, mucho teórico y nada de práctica.... estas son unas screenshots de una aplicación generada con genexus y con mucho javascript para que la experiencia de navegación del usuario no sea diferente a la que tendría si fuese una aplicación nativa (cosa que no se verá en las fotos, pero espero poder hacer un video de como se ve en el telefono realmente). Esta aplicación está embebida en una aplicación nativa iPhone como mencionamos en el paso 3.

La aplicación sirve para organizar eventos, los invitados pueden confirmar su participación via email, via sms, via web... y ahora via iPhone. Se pueden subir fotos del evento y se pueden realizar comentarios.



En el siguiente post, si hay interés, les contamos cómo es la odisea de la publicación de una aplicación en el Apple Store... y sin ir mas lejos, cómo tenes que hacer para poder instalar tu aplicación en tu teléfono y los de tus amigos para poder testear el desarrollo.

También explicaremos como hacer el paso 3 que mencionabamos antes y poder transformar tu aplicación web en una aplicacion nativa iPhone en unos pocos y simples pasos.


Si te sirvió el tutorial, regalanos una cerveza!!





martes, septiembre 15, 2009

Por las calles de Montevideo...

Mientras toda la comunidad habla del Evento GeneXus... nosotros no...
Esta es la panorámica que me encontré hoy desde la ventana de la oficina!.



El único comentario que puedo hacer es "Arriba el bolso!!" :)

domingo, agosto 23, 2009

Dónde estoy???

Miren esta forma bien simple de "autolocalizarse"... funciona unicamente con Firefox (por ahora).
Copien este código en un archivo .html y abranlo con el Firefox....




<html>
<head>
<title>Donde estoy???</title>
</head>
<body>
<script type="text/javascript">
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(function(pos){ // OK
location.href="http://maps.google.com?q=" + pos.coords.latitude + "," + pos.coords.longitude + "(estoy aca)";
}, function(){ //
alert( "No se puede che...");
});
else
alert('el browser no puede... ');
</script>
</body>
</html>



domingo, agosto 16, 2009

iPhone 3G Jailbreak, Unlock e Internet Sharing con Ancel


Hacía mucho tiempo que no escribía en el blog.
No por falta de ideas ya que en estos meses "descubrí" muchas cosas interesantes relacionadas con la tecnología, la programación y sobre todo con celulares, que es un tema que me encanta!
Tuvo que ver el hecho del nacimiento de mi primer hijo, Lucas, que se lleva gran parte de mi tiempo libre y de mi sueño, por lo que el tiempo que me quedaba, lo ultimo que quería era pasarlo escribiendo :)

Espero que ahora que me decidí a retomar la escritura del blog, lo pueda hacer más seguido como antes.

En estos meses, me aburrí del Windows Mobile y me pasé a un iPhone 3G. Lograr comprar un iPhone 3G sin contrato y a un precio razonable es todo una experiencia... por suerte yo pude comprar el mio en eBay por U$S350 en un remate y conseguí que alguien me lo trajera de USA.

Sin tener idea de iPhones, Mac o cualquier producto de Apple, tenía por delante una tarea que al principio parecía imposible... desbloquear el celular!!
Google de por medio, aprendí que existen 2 términos "Jailbreak" y "Unlock". El primero significa levantar la restricción para poder instalar aplicaciones "no Apple" en el celular, y el segundo significa levantar la restricción del carrier (poder usarlo con Ancel o con otra compañia).

No voy a hacer un tutorial de como hacer el jailbreak y el unlock ya que están muy bien explicados acá y acá respectivamente. Simplemente quiero contar que, si bien me temblaban las piernas en cada paso, es realmente muy sencillo hacerlo (no gasten U$S40 llevandolo a un lugar "especializado" en desbloqueos).
Se utiliza el mismo software para hacer el jailbreak y el unlock y te va llevando paso a paso. Yo instalé en mi celular el OS 3.0, pero ya estaba la posibilidad de instalar el 3.0.1 (el unlocker de este último estaba en su primer release, por lo que no me animé).

Una vez que tenía el telefono desbloqueado y con linea ("74801" decía en la barra superior) me puse a jugar con él. La verdad es que está bien pensado y bien hecho. Para los que venimos de WM, la interfase e interacción con el usuario es muy superior.

No me quiero explayar en las virtudes del teléfono, sino que quiero contarles 3 cosas que no me convencían.
1) no se podía grabar video
2) no podía usar el teléfono como modem
3) no tiene navegación por voz (el gps es un a-gps).

La primera fue solucionada rapidamente... existe una alternativa al Apple Store para bajar aplicaciones gratis llamada Cydia de donde pude bajar e instalar una aplicación llamada "Cycorder" que graba y reproduce video.

La segunda fue un poco más complicada, por lo que quiero contarles el método para poder hacerlo. Utilizar el teléfono como modem (en windows se llamaba "Internet sharing" y en mac se llama "Internet tethering") es algo que me parece fundamental si tenes 3G y un plan de datos sobre todo si te vas para afuera con el notebook.

Yo vi que hay 2 alternativas. Una es bajar la aplicación "iphonemodem" desde Cydia que cuesta U$S 9.99 y hace una conexion wi-fi con el notebook permitiendo que éste use la conexión a internet del teléfono.
La otra es modificar "a mano" los datos del apn del carrier (suena complicado pero no lo es).
Esta última opción fue la que elegí... no por ratón y no pagar 10 dólares, sino porque ésta permite conectarte via bluetooth o via USB.

Pasos a seguir:
1) Bajate este archivo
2) Abri ese archivo con el WinRar
3) Descomprimi el archivo Payload\ATT_US.bundle\carrier.plist (es un xml)
4) Editalo (con el notepad para evitar caracteres raros)
5) Buscá esta sección en el archivo y modifica el apn, usuario y password segun tu plan de datos:



6) Volvé a meter ese archivo en el archivo ancel.rar y renombralo a ancel.ipcc
7) Ejecuta el siguiente comando en windows ( Inicio -> Ejecutar ):
"C:\Program Files\iTunes\iTunes.exe" /setPrefInt carrier-testing 1
8) Abrí el iTunes
9) Conectá el iPhone
10) En el iTunes, apretá "shift + boton actualizar", se te va a abrir un browser, seleccioná el archivo ancel.ipcc que modificaste y dale ok.

Una vez hecho esto, en el iPhone vas a "Ajustes -> General -> Red" y ahi vas a ver un nuevo botón "Internet compartir" .... entrás ahi, lo prendés y listo!! Tenes el iPhone funcionando como Modem para tu notebook!. ( ah.. y ya no dice "74801" sino que dice "Ancel").

EDITADO: Si esto no te funciona o el iTunes te da un error al intentar transferir el archivo ipcc (error desconocido 0xe8000050 por ej.) hay otro método quizás hasta más fácil.
Entrá desde tu iPhone a esta Url: http://help.benm.at/generator.php, ingresa los datos del apn, usuario, password y pone "ON" en "Enable Tethering" y apretá el botón "Generate!". Esto va a instalarte un archivo y listo... ya quedó pronto.




En cuanto a la tercera y el poder usar el gps con navegación por voz lo dejo para otro post!!

EDITADO: Lee este otro post donde explicamos como instalar el TomTom!!

Si te sirvió el tutorial, regalanos una cerveza!!





viernes, abril 24, 2009

Torrents... ilegales?


The Pirate Bay es un portal sueco, servidor de torrents, que es famoso por la cantidad de juicios y acciones legales y no tanto, de las que ha sido "víctima" en los últimos años. 

Hace un tiempo, la policía sueca irrumpió en sus datacenters y requisaron todos los servidores, en un afán por encontrar material ilegal o "copyrighted" guardado en sus discos, lo cual no ocurrió.
Es más, The Pirate Bay entabló una contra acción legal debido a que esos servidores también funcionan como hosting, por lo que la redada de la policía dejó sin servicio a muchas empresas.

En general, siempre han salido airosos de todos los líos en que se han metido... hasta ahora...
Parece que esta vez, retorciendo la ley y el concepto de las palabras, encontraron algo de lo cual son culpables y podrían ser sentenciados este viernes a cumplir una condena en la cárcel, ademas de pagar una indemnización de cerca de U$S1.000.000 cada uno.

Detalles de la acusación y el juicio se pueden encontrar en esta página y en Google.

Lo que sigue sin verse afectado es la originalidad con la cual defienden sus intereses.
Esta imagen es un snapshot de la página The PirateGoogle. Lean el texto de la misma.




domingo, abril 19, 2009

Compras por internet III

Le robo el título del post a PabloA ya que tiene que ver con el tema que él comentaba en su post "Compras por internet II".

Luego de leerlo, me interesó conocer un poco más del sitio Swoopo, asi que me registré en el mismo y comencé a seguir un par de productos. La idea del sitio ya fue explicada, asi que lo que yo les quiero contar es mi experiencia dentro de él en la función de ofertador.
La primera impresión que tuve del sitio fue de asombro, por dos motivos... 1) el precio final de los productos... y 2) todo el javascript que tiene metido ahí, donde a cada segundo, todos los productos se refrescan :) . Aca se ve un sector de la pantalla principal del sitio, donde se muestran las subastas más próximas a finalizar:

Yo seguí un iPhone 3G, una Mac Book y un Samsung Omnia.
La Mac Book aun sigue en oferta y ya alcanzó el precio de U$S 60.
El Samsung Omnia fue vendido en U$S 6.85 y el iPhone 3G fue vendido en U$S 14.89.

Analicemos la subasta del iPhone 3G.

Al comenzar la subasta, nos informan que cada oferta que hagamos tiene un costo de U$S 0.75 y que incrementa el precio del producto en U$S 0.01, y que también el tiempo remanente es incrementado en n segundos cada vez que alguien oferta (si ofertan 10 al mismo tiempo, el tiempo aumenta n*10 al igual que el precio 0.01 * 10 ).

Yo comencé a seguir la subasta cuando faltaban apenas 5 minutos para finalizar y el costo del producto estaba en U$S 1.12, asi que me hice un mate y mientras veia como el Tricolor se despachaba 2 a 0 a Bella Vista, miraba de reojo el notebook. (Por un motivo de salud mental, no compré créditos con mi tarjeta para no sentirme tentando de apretar el botón "Bid" ).
La cosa es que esta subasta llegó a estar a tan solo 1 segundo de finalizar un montón de veces, y todas esas veces caían un montón de ofertas juntas lo que hacía que el tiempo volviera atrás y que el precio aumentase un poco.
Terminó el partido de Nacional... y la subasta seguía... cené y la subasta seguía... me fui a dormir y la subasta seguía.... pero por suerte hoy de mañana figuraba como "Finalizada".

Analizando el resultado final, si bien me da un poco de envidia el ganador, no me hubiese gustado ser uno de los pobres que ofertó y se fue con las manos vacías... por qué?... miren esta foto:


Acá se puede ver el que iPhone finalmente le costó al ganador los U$S 14.89 + el costo de la cantidad de ofertas que hizo, en este caso fueron 382 que multiplicadas por 0.75 nos da U$S 286.5.
Asi que el costo total fue de U$S 301.39... desde el punto de vista del ganador, es negocio, ya que se ahorró más de 200 dólares (si lo hubiese comprado ebay por ejemplo, hubiera pagado casi 600 dólares).

Desde el punto de vista de un ofertador que no ganó, es un negocio terrible y frustrante, ya que si suponemos que alguien realmente interesado hizo unas 100 ofertas, entonces "invirtió" U$S 75 y se fue con las manos vacias. Cabe aclarar que hay un "robot" ofertador que actúa siguiendo determinadas reglas puestas por el usuario, por lo que no hay que seguir una subasta todo el tiempo ya que el robot ofertará por nosotros.... una arma de doble filo...

Desde el punto de vista de Swoopo... wowww!!! que negocio!!!.
Si suponemos que el remate fue seguido por 10 personas y que cada una hizo 100 ofertas, la ganancia del sitio fue de U$S 750 dolares. Si somos más realistas y suponemos que más de 1000 personas siguieron esta subasta, las ganancias son bastante más! ... y esto teniendo en cuenta que esta subasta terminó relativamente con precio bajo... otros iPhones terminaron con precios superiores a U$S 70 ... imaginense la cantidad de ofertas que hubo!!.

Tengo que reconocer que es muy tentador invertir unos dólares y comprar un paquete de ofertas (se venden paquetes de por ejemplo 50 ofertas... o sea que tenes 50 posibilidades de apretar el boton "Bid") , pero tenés que tener mucha suerte realmente para salir ganador.
Además siempre está presente el escepticismo .. "no estarán ofertando del otro lado a propósito???"

Es otro ejemplo de viejos conceptos o viejas ideas conocidas aplicadas al software... cuántas veces jugamos en la escuela con eso de "6 grados de separación entre vos y cualquier persona del mundo" y te ponías a encontrar conocidos en común con tus compañeros ???? ... vino un flaco, lo aplicó a un software y hoy es millonario... ah.. lo llamó "facebook".

Un aplauso para esta gente!

Edit:
Agrego esta nota a posteriori para los interesados. Jeff Atwood hizo un post acerca de Swoopo, acusandolos de ser un juego de azar puro y no un sitio de compras. Se basa en este y este post que recomiendo leer. Un programador usó todo el arsenal posible, y llego a que apostando a mano no llegas lejos, la unica manera de ganar es mediante el autobidder, pagando por encima del precio, salvo que justo apuestes por un articulo que no genero interes (ergo, no hay competencia). Menciona un caso observado en que habia 2 autobidders de 2 usuarios auto-compitiendo entre si, que hicieron cerca de 130 apuestas en menos de 1 segundo. Si con tu apuestita manual le ganas a esos robotitos, es pura suerte. Pablo A

viernes, abril 17, 2009

Lost Temporada 5 Capitulos 11,12,13

Como sabrán formatee mi maquina... y entre las cosas que no me acordé de guardar, fue la password del FTP al cual subo las cosas de Waldenei....  si yo fuese usuario mio, me putearía...

Pero bueno... aca nos ponemos al día con los capítulos 11,12 y 13 en un mismo rar.


Está en inglés con subtítulos en español y muy buena calidad.

martes, abril 14, 2009

Compras por Internet II

El otro dia hablabamos de Woot como sitio peculiar de compras. Hoy queria comentar acerca de Swoopo. Este sitio, que a primera vista parece ser un sitio de ventas más, es en realidad una mezcla extraña entre un sitio de remates (tipo eBay) y un juego de azar.
 
La dinamica es la siguiente: los administradores del sitio ponen a la venta un articulo -tipicamente de electrónica- que se remata, arrancando en un precio ridiculamente bajo. Ejemplo: un LCD 42" salado a 0,75 dólares. Los usuarios del sitio hacen ofertas por este articulo, incrementando su valor en 0,15 por cada oferta. El ultimo en ofertar, se lleva el articulo.
 
Hasta ahi es un sitio convencional de remates. La particularidad es que cuando vos haces una oferta, pagas por hacerla, aunque no sea la oferta ganadora. Ahi es donde entra el azar, y lo que pagas se asemeja al costo de un número de loteria. Cada oferta te cuesta 75 centavos de dólar, incrementa el precio en 15 centavos y extiende el tiempo total del remate en unos 10-20 segundos.
 
Lo habitual es que el ganador se lleve el articulo a un precio ridiculamente bajo (por ejemplo ahora en la portada muestran una Panasonic Lumix a 100 dolares y un Apple MacBook de 13" a 103), pero hay un pueblo atras que pago 0,75 por cada 0,15 de incremento y no se llevo nada.

Swoopo en la mayoria de los casos gana largamente por encima del precio costo del articulo rematado, aun si el mismo se vende a la mitad de lo que vale, ya que gana mucho con cada oferta.
 
Siguiendo con el ejemplo del LCD que arranco en 0,75. A un minuto del final, hago una oferta, por lo que el nuevo precio es 0,90, y por hacerlo pago yo 0,75 (que se deducen de mis creditos previamente cargados en Swoopo). Naturalmente al ratito vendra otro y ofertará, llevando el precio a 1,05, que yo retruco y queda en 1,20 y asi sucesivamente. Pero en cada incremento, Swoopo se lleva 0,75 de mi cuenta, y extiende un poco el plazo del remate, haciendo que siga el juego. Como son muchos los que ofertan, la rueda sigue girando. En una de esas yo pierdo unos dolares por probar suerte, y como yo muchos. Y hay un ganador que consigue una ganga.
 
Segun Wikipedia Swoopo gana en la medida en que el precio final sea superior al 16,7% del previo de venta habitual. Si vos vieras esa tele a 167 dolares en vez de 1000, no invertirias 0,75 en una chance de llevartela? Lo habitual es que si, y ahi la ganancia enorme de Swoopo.
 
A mi me suena que tiene algo de engaño o estafa. No porque te estafen, sino porque la dinamica es perversa. Creo que la teoria se basa en el Dollar Auction: yo vendo un dolar al mejor postor, pero quien salga 2do tambien me debe pagar (sin llevarse el dolar). A oferta 0,10. Si B opera dentro de lo razonable, ofertará y pagara 0,11, que A contraofertara con 0,12. Asi sucesivamente. Cuando B llega a 0,99, a A le sirve subir la apuesta y pagar 1 dolar por mi dolar, ya que de lo contrario pagara 0,99 sin llevarse nada. En esa situacion, a B le sirve pagar 1,01 por 1 dolar, ya que si gana, minimiza la perdida: en vez de perder 0,99, pierde 1,01-1,00=0,01, por lo que el juego continua indefinidamente.
 
Evidentemente el Dollar Auction no funciona si tenes a las 2 personas sentadas en la misma mesa. Pero hacelo con muchos participantes, a miles de km de distancia, y en vez de un dólar hacelos ofertar por un LCD 42"..y funca, sino mira Swoopo.