video presentacion de Google Wave

Google Wave
Image via Wikipedia

Google Wave es una herramienta en linea para comunicacion y colaboracion en tiempo real. Un Wave puede ser varias cosas, una conversacion y un documento donde ambas personas pueden discutir y trabajar juntas usando un rico formateo de texto, imagenes, videos, mapas y mas…

Reblog this post [with Zemanta]
Anuncios

¿Qué significa Google Wave?

Este producto al parecer tiene el claro objetivo de convertirse en el nuevo modelo para que las personas interactúen en línea.

Explicarlo les confieso, es algo complicado, porque estamos hablando de una propuesta que finalmente va a integrar el rompecabezas que es Google y todos sus productos. Adicional a la integración, introduce una colaboración en tiempo real que no habíamos experimentado antes. Mientras nos hacían el demo de la aplicación (sufro en silencio por el hecho de no haberlo probado aún) ibamos descubriendo un mundo de opciones, demasiadas tal vez.

Lo que nos gustó de Wave

Con la demostración se puede pensar en una alternativa al email, una opción diferente de comunicación que integra muchas de las herramientas que utilizamos en la actualidad de forma dispersa, como los mapas, vídeos, contactos, imágenes, chats, compartir documentos en una misma herramienta.

Genera la posibilidad de un nuevo medio para comunicarnos y esto me hace pensar incluso en las posibilidades de educación a distancia que pueden mejorar. Hoy perdió Basecamp y la gente de 37signals. Hoy tiembla facebook y también vemos como Twitter ve un producto que con la fuerza del tiempo real puede empezar a hacerles daño (y que además nos tuvo a todos como usuarios de primero).

También creo que Friendfeed se queda fuera de juego, pero ya veremos con el tiempo. Sin embargo, tengo aún el problema de que el producto es revolucionario de tal forma que es complicado explicarlo. Pero eso es lo que me gusta, mientras lo miraba sabía que se estaba escribiendo un importante pilar hacia lo que veremos en la web del futuro.

Hablemos brevemente de lo técnico

Este es un evento para los desarrolladores y los retos superados, así como la mezcla de tecnologías impresiona:

  • Han lanzado el Protocolo Wave que hasta cierto punto propone lo que hace el SMTP y permite que sea distribuido e interoperable entre diferentes proveedores. El protocolo es abierto y se puede colaborar con su desarrollo. Revisen los principios de la comunidad, el draft del protocolo y más documentación de la arquitectura.
  • La plataforma busca empujar la masificación de HTML 5 como estándar
  • Un “wave” es una conversación, un documento, donde una o varias personas pueden comunicarse y trabajar compartiendo cualquier tipo de contenido y servicio de Google, así como de terceros (vimos integración de twitter por ejemplo)
  • Toda la plataforma es extendible por extensiones y robots que pueden ayudarte a automatizar tareas y procesos
  • El codename del proyecto es Walkabout y nace de Where 2 Tech, fundado por Jen y Lars Rasmussen y que fue adquirido por Google. Este producto les ayudó al desarrollo de Google Maps. También es interesante enterarnos que todo este proyecto nace de las oficinas de Google Australia

Por cierto, para profundizar más en lo técnico los invito a revisar los puntos de vista de Freddie sobre Wave.

Queremos probarlo ya mismo, es más, mientras redactábamos este artículo (fue hecho en colaboración con Stephanie) deseamos crearlo utilizando Google Wave.

El producto aún está bastante verde y quieren que solo los desarrolladores (específicamente los que estuvieron en Google I/O jueguen con él) y no se habla de más invitaciones para terceros.

Link de entrada original

Reblog this post [with Zemanta]

Google Wave, todo lo que tienes que saber

EL 28 de mayo en el Google I/O fue presentado Google Wave. Definirlo es complicado, pero de entrada hace obsoleto Gmail, Basecamp, Facebook, Office, Messenger, Flickr y los Wikis. Una “wave” es mitad conversación, mitad documento. Un email que se convierte en wiki, que se convierte en centro de conversación, que se convierte en un trabajo final, que hasta puede convertirse en un blogpost.

Lo que vimos es un preview para desarrolladores, pero de entrada podemos decir, sin dudas, que las tecnologías detrás de Google Wave cambiarán la web en el próximo año, de la misma manera que Gmail creó la Web 2.0.

Todo está basado en el navegador, HTML 5

Google está empujando MUY fuerte a HTML 5. Primero con la versión de Gmail para iPhone, luego con todas las novedades de Android y ahora con Google Wave.

Sin embargo, no son idiotas y saben que si quieren éxito, han de poder implementar esto en todos los navegadores. Por lo que desde ahora, todo navegador con el plugin Google Gears instalado obtendrá mágicamente las habilidades de HTML 5. Bases de datos offline, Canvas de dibujo vectorial (nada de SVG o SWF), videos nativos, etc.

Pero no se contentaron con HTML 5. Crearon una nueva tecnología para navegadores…

Drag and drop en el navegador

Imagina arrastrar una carpeta llena de fotos desde tu escritorio encima del navegador y subir automáticamente a Facebook o a Flickr todas esas fotos, son más clicks ni procesos que el arrastras y soltar. Eso es posible ya mismo en Google Wave. Es una de las capacidades que Gears incluirá para los navegadores, pero Google ya envió la proposición a W3C para ser incluido en el draft definitivo de HTML 5. Y ya vendrá implementado en las próximas versiones de Webkit, Google Chrome y Firefox.

Chat, edición y colaboración en tiempo real

Un nuevo protocolo de comunicación instantánea, aparentemente más veloz que lo que hemos visto en sistemas de mensajería como messenger o Google Talk, llamado Wave Protocol, está detrás de varias innovaciones de Google Wave.

Imagina ir respondiendo un mensaje en Messenger y ver letra por letra lo que escribe la otra persona. Luego extiendelo a la edición de un documento. Donde cuatro personas pueden estar trabajando sobre el mismo documento, al mismo tiempo, en tiempo real. O quizás retocando una fotografía y dando comentarios punto por punto en cada zona modificada.

Y todo centrado en un “wave”, la visión de Google del futuro del email.

Publicación a blogs y otras plataformas de contenido

¿Cuantas veces una serie de emails se convierten en un post de blog? ¿Cuantas veces la cadena de correos que escribiste con el jefe se vuelven un comunicado de prensa o una carta para clientes? Google Wave toma todo este contenido, lo centraliza en un “wave” y tras terminar su edición (con colaboración en tiempo real), es posible publicarlo a un .doc, convertirlo a PDF, enviarlo por correo tradicional, ponerlo en blogger o en una multitud de plataformas, como quieras. Incluso exportarlo a HTML o a texto plano.

Además, el API de Google Wave permitirá que esta plataforma se conecte, virtualmente, a lo que te imagines.

Google Wave puede ser integrado en cualquier sitio web

Tomando una nota de Friendfeed, la capa de comentarios en tiempo real puede ser instalada en CUALQUIER sitio web, embebible. De modo que puedes poner comentarios realtime y colaboración en tu blog, foro o donde sea. Esta cosa tiene que cambiar la forma que usaremos internet y la centralización de las conversaciones.

Es posible hacer enlaces profundos entre emails y contenido o WaveLinks

¿Has imaginado poder hacer un link profundo a un email que enviaste antes para que todos los que lo leen tengan la referencia? Hasta ahora la unica forma era copypaste, pero Google Wave permite esto tan nativa e intuitivamente que es inevitable no hacerlo.

Un nuevo corrector ortográfico basado en la inteligencia artificial de Google Translator

Hace un año, Google analizó cientos de miles de libros escritos en varios idiomas, traducidos profesionalmente por humanos. Creo una serie de algoritmos que analizaran las conversaciones en esos libros y, usando este mapa de conocimiento, traducir cualquier tipo de conversación basada en el contexto.

Pues ahora los cabrones han tomado esta tecnología y han creado un corrector ortográfico que es capaz de analizar y entender el contexto de la conversación y corregir a un nivel que, honestamente, jamás se ha visto. Errores ortográficos, gramaticales o incluso de contexto.

Google Wave tiene gadgets colaborativos

Con el API abierto de Google Wave es posible crear aplicaciones para Wave. Las aplicaciones son básicamente widgets incrustables dentro de los “waves”. Pero sumándole la colaboración realtime y el historial de modificaciones, se crean interesantes posibilidades.

Imagina incrustar un juego de ajedrez. Dos personas juegan, pero para Google, cada movimiento del juego es una edición a un documento. De modo que si quieres dar un replay a una jugada, vas a una linea de tiempo colaborativa, mueves para adelante y atrás y ves estos cambios volviendo a ocurrir.

Los gadgets están hechos en Javascript y HTML 5.

Mapas colaborativos y “grabables”

Toma lo que dije de los gadgets y aplicalo a un mapa. Puedes grabar con instrucciones detalladas y comentarios una ruta en un mapa de Google Maps, enviar el “wave” a tu madre y decirle cómo llegar a tu nuevo apartamento, paso a paso.

Encuestas, formularios y minería de datos a través de waves

Es posible enviar formularios en waves y permitirle a Google Wave recibir, indexar y analizar la información que los destinatarios del wave llenen. De modo que puedes enviar una encuesta de calidad a todos tus empleados y ver en tiempo real las respuestas de ellos, quien ha respondiendo, quien no.

Sumale Google Charts y puedes tener gráficos analiticos de los resultados recibidos. Por supuesto, en tiempo real.

Google Wave Server, Google Wave instalable en tu servidor

Google Wave Server es Open Source. Puedes descargarlo e instalarlo en el servidor de la oficina, reemplazar el correo con waves y tener todo en tu empresa. Puedes personalizarlo con los colores y logos de tu empresa, crear una intranet… lo que sea. Es open source. Sólo necesitas un server Linux (o quizás windows, si está hecho en Java).

Fuck… instalable en tu propio servidor, open source…

Traducción real-time de lo que escribes

¿Recuerdan el corrector ortográfico con inteligencia artificial. Ahora, si hablas ahora mismo con un japones al otro lado del mundo, puedes hablarle en español y decirle a Google Wave que traduzca en tiempo real la conversación a japones para él. Él, por supuesto, puede hacer lo mismo.

Va de nuevo: Conversación entre dos idiomas diferentes con traducción en tiempo real. Si esto funciona a un 80% de calidad y llega al mainstream, cambiará el comercio y la conectividad del mundo a un nivel doloroso.

¿Cuando está disponible esto?

Hay invitaciones para la beta privada de Google Wave. Por lo que hemos escuchado en la rueda de prensa, aun es un trabajo en proceso y faltan muchas cosas, cómo ¿Cómo se borra un wave? ¿Quien es el dueño de un wave? Pero a medida que estas cosas terminen, seguro empezará a estar disponible para el público pronto.

Sospecho que en un año tendremos versión definitiva instalable en nuestros servers para todos.

Entrada original

Reblog this post [with Zemanta]

¿Con qué nos sorprendió Google en 2009?

Google Wave
Image via Wikipedia

Establece un panel de control

Google ha creado una nueva aplicación denominada “Panel de control”, en la que los usuarios pueden ver y gestionar la información de los diferentes servicios de Google que usan, como el correo o la mensajería instantánea o chat.

Google afirma que el objetivo es incrementar la transparencia en el tratamiento de los

datos y facilitar más a los usuarios su gestión.

Se puede acceder a la herramienta desde la configuración de la cuenta de cada usuario o directamente desde www.google.com/dashboard

Dentro del panel de control, cada usuario puede, por ejemplo, elegir la información que quiere guardar de sus conversaciones en el chat, de su correo o de sus visitas a Youtube.com.

Android en los celulares

Google incursionó en la navegación de teléfonos celulares con su sistema operativo Android 2.0, que está incluido en dispositivos como el Droid de Motorola.

El teléfono inteligente busca competir con el iPhone de Apple.

Google lanzará Google Maps, su tecnología para incluir direcciones y datos de carreteras en la nueva versión de Android para los teléfonos inteligentes.

Esta incursión en la navegación de teléfonos celulares por parte de Google hace improbable que TomTom, Garmin y Nokia recuperen sus recientes grandes inversiones en tecnología de navegación.

Nokia y TomTom  han gastado más de 12,000 millones de dólares en la compra de las empresas de cartografía digital Navteq y Tele Atlas.

Street View en México

Google anunció que México será el primer país de América Latina con el servicio de Street View dentro de los mapas.

El servicio de Street View permite a los usuarios tener una visión fotográfica de 360° de cualquier calle de las ciudades mapeadas.

Además de la presentación de Street View, Google dio a conocer un sitio especial para México (http://maps.google.com.mx/) en donde los usuarios podrán encontrar información sobre calles y puntos de interés en la plataforma de mapas de la empresa de Internet.

Los usuarios mexicanos podrán acceder al nuevo servicio de Google Maps a través de cualquier dispositivo con Internet, en el caso de teléfonos móviles, el acceso está determinado por los operadores.

El nuevo servicio también permitirá a los negocios de México poder enlistar su información y ser encontrados en los mapas.

Se lanza el proyecto Chromium

El proyecto Chromium permite a los desarrolladores acceder al sistema operativo de manera gratuita para trabajar sobre él y hacer sugerencias a Google.

El vicepresidente de administración de productos de Google, Sundar Pinchai indicó que actualmente se están trabajando en alianzas para presentar computadoras con el sistema operativo Chrome a finales de 2010, con lo que busca competir con Windows.

El directivo indicó que el sistema operativo sólo estará disponible en las computadoras que se vendan con él, posiblemente en Netbooks.

El nuevo producto de Google permite a los usuarios utilizar su máquina como si fuera el navegador Chrome, con las ventajas de que todas las aplicaciones serán Web, por lo que todos sus datos estarán disponibles en “la nube” (cloudcomputing) y podrán acceder a ellos a través de cualquier equipo con el sistema operativo de la firma.

El sistema operativo tendrá las mismas características que el navegador Chrome: simplicidad, rapidez, así como seguridad.

Google Wave, el más esperado

Google Wave prometió revolucionar la comunicación en Internet, con una aplicación que combina elementos de correo electrónico, mensajes instantáneos (chat), blogs, compartido de fotos y archivos, entre otros, para crear una forma de comunicación integral denominada “conversación sostenida” o una “wave” (ola).

En Google Wave los usuarios de la red pueden intercambiar mensajes, compartir y editar documentos o jugar juegos de una forma más integral y fácil.

Google mostró Wave por primera vez en mayo pasado ante desarrolladores en una conferencia en San Francisco, California.

Con información de Notimex

Google y Bing pagan 25 mdd a Twitter

CIUDAD DE MÉXICO (CNNExpansión.com) — Google y Bing pagaron 25 millones de dólares a Twitter, con el fin de que los contenidos de esta firma puedan ser encontrados en los buscadores de las dos empresas gigantes estadounidenses del Internet, de acuerdo con una nota que se publicó el martes en el sitio de BusinessWeek.El pago de 15 millones de dólares (mdd) por parte de Google y de 10 (mdd) más aportados por Bing, el buscador de Microsoft, permitirá que se puedan localizar comentarios en tiempo real dentro de los resultados de sus búsquedas.

El acuerdo fue anunciado desde octubre pasado, pero hasta ahora se desconocían los detalles, indicó la publicación estadounidense de negocios.

El dinero que recibirá Twitter, le permitirá ser una compañía rentable al cierre de 2009, a sólo tres años de haber nacido,  reveló la revista.

Reblog this post [with Zemanta]

CNN

La tecnología amenaza a las empresas

Es interesante el alcance que pueden llegar a tener las repercusiones de un blog o un sitio en internet, no se, se me ocurre un ejemplo, que alguien, algún cliente,conocedor de la tecnologia, recopile una mala atención en video, audio y la publique en internet, la reputación de esta empresa se viene abajo inmediatamente.

La verdad andar checando a cada rato las discusiones , blogs, etc. En internet esta medio cañon para las empresas y es un campo donde es dificil adentrarse.

El internet ha mejoradlo la libertad de expresión(xD, recordemos que libertad es igual a verdad, si conocemos la verdad somos libres, es decir tener libertad de expresión no es decir cualquier cosa, sino mas bien decirla con buenas bases) rompiendo las barreras de los paises, poniendo en riesgo tambien a aquellos que sean un poco…bueno eso ya cada quien responde no??

Ahora, los productos deben de salir al mismo tiempo,las firmas deben cuidar mas a los clientes, y no solo a lo que dicen los medios convencionales sino a los blogs , redes sociales, en fin a  sitios en internet

Creo que tendrán que asignar un departamento en especifico no?? si no es que ya fue creado.

Incluso algunos ya se saltan la tele, el radio, etc. Y mejor buscan a blogs, sitios en internet con mayor influencia para que publiquen sus cosas.

Ha de ser medio dificil eso no??? porque creo que ha de haber blogeros que tengan mayor influencia que ciertos canales o medios de comunicación

Ahora nosotros decidimos lo que queremos ver o si no nos gusta mejor hacemos un video y lo subimos a youtube xD

Es más. talves hasta el 80% de las personas leen noticias en linea, o si no buscan un link que les pusieron en Facebook o se los mandaron a traves de un e-mail,y creo que es hasta mas rápido.

Ademas de que los mismos blogs luego repiten la información y hace que fluya mas rápido.

En fin, asi somos los humanos.

“Hoy en día, para formar parte de la buena sociedad, uno tiene que alimentar a la gente, divertirla o escandalizarla.”

Oscar Wilde

java vs .net

Hola !!
Desde hace tiempo me hago esta pequeña pregunta…

Que sera mejor….¿Java o .net?

Algunos  dicen que es mejor .net(lo curioso es que trabajan en una empresa certificada por microsoft) y en otros lados he oido que es mejor java y la verdad no se que sea lo mejor

En internet me he puestoa investigar y he encontrado lo siguiente:

Transportabilidad: la versión 3.0 de .Net sólo está disponible en el .Net framework (creo que en Mono [máquina virtual de .Net en GNU/Linux] sólo está disponible la 2.0). No hay transportabilidad real. Repito: NO hay TRANSPORTABILIDAD real con .Net, lo que indica que estarás “encadenado” a Windows de por vida (o confiar en el proyecto Mono).

Antigüedad: Java tiene bastantes años más que .Net, por lo que es más sencillo encontrar código por internet, manuales y tutoriales.

Licencias: la máquina virtual de Java openjdk tiene licencia libre, y la oficial de Sun tiene CDDL (licencia casi de open source). Hay muchas máquinas virtuales comerciales y libres; desde la de IBM (comercial) hasta las libres de kaffe o la de GNU. .Net es código cerrado totalmente.

Entornos de desarrollo: aunque Visual Studio 2005 es muy profesional, es sencillo y está en español, hay más entornos tanto para Linux como Windows para el lenguaje Java. Además, el sistema de plugins de Eclipse permite que este IDE vaya incrementando su funcionalidad cada vez más.

Eficiencia: creo que la máquina de Java es más eficiente que el CLR de .Net, pero no te puedo dar muchos enlaces.

Libería de clases: .Net contiene más lenguajes que la JVM de Sun; de hecho, ésta sólo tiene Boo y Java. Java tiene un mayor número de clases para usar que por ejemplo, C#, pero toda clase y método que esté en un lenguaje de la plataforma .Net está en los demás, luego en realidad la cantidad de clases es inmensa. Pienso que Java gana, pero tampoco tengo fuentes, sólo es mi opinión.

Sintaxis: considero horrible la sintaxis de C# (cada método o función suele empezar en mayúscula) aunque se puede programar en Visual Basic o C++ en .Net. Por lo demás, la sintaxis de Java me gusta más.

Características de los lenguajes de cada VM: igualados, aunque C# tiene algunas características interesantes, como por ejemplo las propiedades en las clases, diferenciar entre variables pasadas por referencia o variab les sólo de salida, el uso de “override” en los métodos para sobreescribirlos… En realidad son pequeños detalles, que facilitan un poco el leer código. Pienso que .Net es superior en programación web, pero… no es multiplataforma.

En definitiva, ambos son muy similares pero Java tiene una experiencia difícil de superar y éste último se puede ejecutar sin problemas en Windows, GNU/Linux y MacOS.

Bueno esto lo encontre  aqui

Tambien encontre lo siguiente:

La JVM es mas eficiente que la plataforma Mono. .NET Framework de Microsoft no son multiplataforma.

Java y .NET tienen aspectos similares y cosas diferentes. Java es un lenguaje que se compila para correr en una maquina virtual JVM. Esta maquina virtual corre en casi cualquier sistema operativo: Windows, Linux, UNIX, Solaris, hasta en dispositivos mobiles. Es realmente fantastico ya que el mismo proyecto ya compilado como archivo .class o mejor .jar correra en cualquier otro sistema operativo sin ningun tipo de recompilacion. Basta con que des el archivo .jar y ya tienes una aplicacion completamente distribuitble. Incluso ademas si la combinas con las librerias SQLite puedes tienes en un tiro una aplicacion con base de datos totalmente portable y que se ejecutara en cualquier sistema operativo.

.NET no es multiplataforma y eso es algo que es importante resaltar. Hay un proyecto llamado Mono que hace los programas compilados con .NET corran sobre Linux y UNIX pero te sere sincero, todavia hay muchos cuelgues (te lo digo por experiencia propia). Este proyecto Mono incluye un compilador (2 versiones: mcs para net 1.1 y gmcs para net 2.0) y una maquina virtual (llamada mono) y es organizado por Miguel de Icaza. Mono es una maquina virtual que emula al .NET y trata de emular a Java en ser multiplataforma. Pero el estado de Mono es a verdad incompleto sobre todo en el paquete Windows Forms que no esta completamente portado y es inestable. Recuerda que aqui hay mucho trabajo de ingenieria inversa y eso siempre sera muy lento.

.NET aporta funcionalidad en que es posible ejecutar e interoperar diversos fragmentos de código escritos en distintos lenguajes, esto es, si codigas en C# o VisualBasic o J# todos estos lenguajes serán convertidos al lenguaje intermediario MSIL(”Microsoft Intermediate Language”) a través de un compilador determinado, este lenguaje intermediario es el que ejecuta el .Net Framework, de esta manera su código escrito en más de 20 lenguajes podrá interoperar. El codigo compilado desde cualquier lenguaje es compilado para correr sobre una maquina virtual que es el .NET Framework.
Mono trata de implementar este .NET framework.

Entonces aunque ambas son maquinas virtuales, la JVM y la .NET Framework son diferentes tambien, una es multiplataforma y la otra es solo para Windows. Una diferencia mas es que JVM es desde hace poco open-source desde que Sun la libero, asi que ahora es controlada ahora en su desarrollo por la comunidad y .NET si es controlada completamente por Microsoft.

Personalmente te aconsejaria ir por Java, dado que .NET es una plataforma privativa y siempre en el fondo estaras amarrado a Microsoft. Para Java tienes entornos de desarrollo muy bueno como Netbeans y Eclipse (ambos corren en Windows, Linux, etc). Ademas paquetes con clases en Java hay a montones, que te permiten hacer casi cualquier cosa, incluso un compilador para tu propio lenguaje (clases JLex y Java CUP). Conexion para base de datos las tienes con JDBC que te permite conectarte a casi cualquier gestor de base de datos: Postgres (la mejor base de datos libre), MySQL (tiene defectos en respecto a relaciones por sus tablas de tipo ISAM), SQLite (la mejor opcion si quieres hacer una base de datos de un solo usuario igualito que Microsoft Access y gratis), Oracle (que tiene una edicion libre personal para Linux y Windows)

Yo he comparado la performance actual en Linux Ubuntu de una aplicacion de ordenamiento de burbuja midiendo tiempo promedio y usando en cada medida un vector de 100 elementos con datos al azar, usando para compilarla el compilador C++ libre GNU, el compilador Intel C++ para Linux (libre tambien y se puede descargar de Internet), el compilador Java 1.6 y finalmente el compilador de Mono gmcs (para .NET 2.0) y los resultados son con respecto a performance:
de mejor a mas lento
1. Intel C++ Compiler y GNU g++ (empate, promedio de 0.24s para el algoritmo, ambos compilan a codigo maquina, puse nivel de optimizacion -O2)
2. Java 1.6 (promedio 0.34s)
3. Mono (usando gmcs para compilar y mono para correr: promedio 0.43s)

Algo interesante, he probado los tiempos tambien en Windows y los tiempos en Linux y son practicamente iguales, lo que indica que la JVM es superior a Mono en ambos sistemas. No he podido probar con Visual C++ 2005 asi que no podria decir si en codigo nativo en Windows es superior o igual o inferior a Linux.

Si quieres aplicaciones que compilen a codigo nativo tanto en windows como en Linux hay ademas un framework para C++ que se llama wxWidgets. Se programan con un IDE para C++ que trabaja tanto en Windows como Linux que se llama Code::Blocks. Es muy bueno y puedes construir aplicaciones graficas en minutos. Personalmente lo uso cuando quiero que mis aplicaciones sean muy rapidas ya que no compila a ninguna maquina virtual. Las clases provistas por la wxWidgets se parecen muchisimo a las MFC (Microsoft Foundation Classes) del Visual C++ asi que aprenderlas es muy directo. Las librerias wxWidgets tambien son libres y el Code::Blocks tambien. Para aplicaciones multiplataforma que quieres que sean de alta velocidad te las recomendaria sobre las librerias GTK y sobre las Qt (Qt no son gratuitas en Windows)

Finalmente mi recomendacion para aplicaciones con rapido tiempo de desarrollo, multiplataforma pero de verdad (no como con Mono), y que no estaras dominado a la larga por las decisiones de Microsoft, entonces usa Java + Netbeans + Swing + (Postgres o SQLite). No tendras que pagar a nadie por las herramientas de desarrollo y correra en cualquier plataforma: Windows, Linux (Ubuntu) o UNIX (PC-BSD). No aconsejo MySQL al menos por ahora (ya que la tabla por defecto ISAM no hacepta llaves foraneas e integridad referencial, el nuevo tipo de tabla InnoDB si).

Ahora si quieren hacer una aplicacion con alta performance compilado a codigo nativo, recomendaria usar Code::Blocks Nightly Build + GNU Compiler + WxWidgets 2.8

Este es otro ejemplo de una discusión en internet:

Perdona el doble post pero es que no puedo evitar contestar al FUD (pero tranquilo, no todo lo que leo es FUD xD) que veo por acá:

No soy un fanatico del software libre, aunque si me parece que es la opcion mas decente con respecto al sistema operativo. El sistema operativo y herramientas basicas de programacion deberian ser libres. Otra cosa son los programas en si (alli en mi opinion si podriamos hacer negocio por propiedad intelectual).

Ya. Como yo hago negocio con los programas en sí pues si vale la propiedad intelectual; pero como no lo hago con un SO o con herramientas de programación pues entonces ahí sí ya lo decente es el software libre…

Y si me vas a venir con “no lo digo por eso, sino que es que el SO es más seguro si es de código abierto” entonces TODO debe ser de código abierto, nada debe ser cerrado o sino ya no es decente.

Miguel de Icaza ha declarado reiteradamente que las patentes necesarias para la aplicación de las normas ECMA – 334 (C #) y ECMA – 335 (CLI) están disponibles en Microsoft “RAND + Royalty Free”. Esto pareceria un permiso efectivo de uso de la patente abierta de C#, y motivaria mas usar Mono. Pero perdonen, yo aun he visto una declaración oficial de Microsoft que este aceptando este royalty free.

Icaza nunca ha dicho tal cosa. Lo que ha dicho es que ya hay un acuerdo con MS para que las patentes que hay sobre el .NET framework no puedan ser usadas en contra de la comunidad. Además, las patentes no recaen sobre las normas ECMA o la BCL sino sobre las APIs extras que MS ofrece en su framework

En serio, ¿por qué buena parte de la comunidad del software libre se ha dedicado al FUD en contra de Mono?

Incluso si aceptamos este RAND+Royalty Free para usar C#/CLI hay que tener un acuerdo de licencia con Microsoft. Microsoft a la larga puede obligar a cualquier empresa que desarrolle a tener licencias para usar C# (si queremos ser pesimistas, includo el escritorio Gnome si lo programaran en C#).

Repito, no hay patentes sobre lo que hay en las normas ECMA. Por otro lado, lo que MS podría hacer el día en que se acabe el contrato es pedir al proyecto Mono que quite lo que está bajo patentes, no que no puede usar C# o la BCL (en pocas palabras, Mono no tiene porque dejar de soportar C#, eso no tiene sentido alguno).

Que institucion o empresa de prestigio dicta o usa C# con Gtk, lo mas usado es Java o .NET pero no Gtk#. Ni siquiera puedes poner eso en tu CV.

FUD. No hay como saber quien usa o no usa Mono internamente.

Programar con Mono y GTK# nos lleva a Sharpdevelop o Monodevelop y ambos IDEs no estan a la altura de Netbeans o Eclipse (y ambos libres), asi que si por madurez y si uno opta por una aplicacion profesional y no solo para experimentos, recomiendo Java.

Confiaré en que lo que dices en ese párrafo es porque no usas hace tiempo Mono.

1. Para personas que se inician Java+Netbeans es directo para aprender (en universidades, institutos, etc). A ver si Mono+Gtk# lo es. O habra que ver si instituciones de entrenamiento con prestigio o empresas grandes se deciden a programar en Mono+Gtk# (algo experimental) en lugar de .NET+Windows Forms o Java+Swing? (lo harian?)

Mono y GTK# no es algo experimental. Lo otro es que solo porque no hay empresas grandes que salen a gritar a los cuatro vientos que usan Mono no es razón para no usarlo, eso es ridículo ¿Después que será?, ¿que no usaré LISP o D porque no hay empresas gritando que lo usan (estos dos lenguajes tienen su uso en la NASA, por ejemplo)?.

2. Hay montones (literalmente) de librerias de clases disponibles en Java. Muchas de ellas son open-source (parece que los fanaticos de Microsoft, decir open-source es como una vulgaridad).

¿Eh?, los fanáticos no odian el open source, eso no tiene sentido porque para ellos eso también supone una ventaja.

3. Java tiene un conjunto de APIs totalmente multiplataforma, incluso para GUIs, multimedia, graficos, 3D, voz, telefonia mobil, y todas las futuras APIs (muy faciles de usar) seguiran siendo multiplataforma (Windows, Linux, …) Mono no tiene estas APIs, asi que hablar de multiplataforma con Mono es inmaduro. Microsoft usara seguro Direct Sound en C# y eso no es ni a balas multiplataforma.

Pero que seguridad para soltar semenjante estupidez. NO es posible que Microsoft use Direct Sound en un lenguaje. Si te refeires a la API pues no es ningún problema, Mono si se le da la puta gana puede implementar cosas propias de sistemas tipo Unix como POSIX… ¡Oh!, ¡espera!, ¡¡YA LO HACE!!

Al igual que en Java (es más, que en cualquier lenguaje), si usas algo propio del SO pierdes lo multiplataforma. Obviamente, MS no busca eso y por eso le vale poco buscar tal cosa en su framework, pero Mono sí.

4. Swing esta muy bien diseñada y usa los patrones de diseño MVC, en lo que se cae completamente Windows Forms.

Vale, ahí tienes razón. Pero recuerda, por usar .NET no necesariamente tienes que usar Windows Forms para interfaces gráficas al igual que en Java puedes usar SWT, o al igual que en C++ puedes usar cosas como Qt.

5. Java es mucho mas utilizado a nivel de estudiantes de postgrado con base solida en programacion orientada a objetos (OOP).

¿Y eso en que supone una ventaja? Claro, tampoco es una desventaja :).

6. Aunque no esta reconocida por un estandar internacional, Java es open-source controlado por por Sun y los miembros del JCP (los cuales son muchos, entre ellos Intel, Google, Samsung, Redhat, sino mira
http://jcp.org/en/home/index
). C# es un estandar tipo ECMA pero aparte de Microsoft pocas otras empresas han decidido implementarlo. Sun ademas segrega mucho menos que Microsoft con respecto a sus productos.

¿Y para que tener multitud de implementaciones? Tenemos la de MS (solo para Windows), la de Mono (multiplataforma) y DotGNU, ¿que ventaja supone tener multitud de implementaciones?

7. Otra cosa: el estandar C#/CLI ECMA solo es un subconjunto del framework .NET. Habra que ver si Microsoft decidira si enviara para estandarizacion las futuras APIs de .NET. (LO HARA?Huh?)

¿Para qué si Mono ya da APIs hasta extras?, ¿o es que MS tiene que enviar a estandarizar cada API del framework para que se considere C# algo útil?

Como nota final: mira nomas lo que dice Chris Williams, director de desarrollo de productos de Microsoft, que ellos aceptan la pirateria para motivar que la gente se familiarize con Microsoft y de alli al ocurrir eso pueden presionar con las leyes y obtener ganancias solo si ven que sera rentable (que tactica tan noble no?)

Una tática que también usan empresas como IBM, Sun y Google, ¿que creías?, ¿que solo MS busca la rentabilidad?

Usad lo que os guste, pero no vengan con el FUD clásico de que Mono está en fase experimental y de que no se pueden hacer grandes aplicaciones con él. Tampoco vengáis con que el estándar (sí, el ECMA) de C# está lleno de patentes porque eso es mentira.

Una de las personas involucradas en la discusion anterior tambien escribio esto:

Hola

dare mi opinion desde la perspectiva de los entornos de desarrollo y de la experiencia de un usuario final.

soy usuario de windows (XP SP2)y he tenido la posibilidad de probar el desempeño de dos IDE’s:

Net-Beans 5.5(Java+Swing) y MS Visual Studio 2005 (C++/C#+.NET),

y puedo decir que VS 2005 es muy superior en lo k a tiempos de respuesta se refiere (code-completion, intellisense y class-view) , por lo menos en mi maquina (celeron 2.4 GHz, 256 RAM) frente a Net-Beans (me consumia el 98% de la CPU, frente a un 30% del VS), cuyos tiempos de respuesta eran del orden de los segundos.

desde una perspectiva de un usuario final de PC SIEMPRE evito las aplicaciones hechas en java por el simple motivo de que son horrosamente lentas en comparacion con una aplicacion nativa analoga (BitComet(C++) vs Azureus, Visual UML vs Visual Paradigm, etc.).

Como desarrollador, nunca voy a usar este lenguaje, ya que:

* Los programas hechos con el no aprovechan al 100% la maquina del usuario.

* Utilizo solo librerias Multiplataforma (OpenGL/AL, HawkNL, DevIL, y wxWidgets).

* Y por ultimo, me dedico a un campo en el que Java nunca tendrá lugar: Aplicaciones multimedia de alto rendimiento.

En mi experiencia como desarrollador, recomendaria usar Java solo si es la opcion mas adecuada para resolver un problema, y no por un simple capricho personal

El .NET framework es mil veces más rápido que la JVM de Sun, esa es una realidad que cada uno puede (y debería) probar.

Otra cosa es que el que .NET framework sea joven ha supuesto también una ventaja al framework y a C#. Por eso tenemos sobrecarga de operadores, tipos sin signo, pasar tipos primitivos por referencia a los métodos, etc.

Que MS tenga control sobre el framework tiene sus ventajas y sus inconvenientes. El inconveniente más claro es que MS decide sobre el Framework y tiene unas licencias demasiado cerradas; pero como ventaja es que puede hacer cualquier cambio sin necesidad de preguntar (como lo tiene que hacer Sun a través del JCM (aunque en realidad SUN cuando se le dé la puta gana puede eliminar eso)) lo que ha hecho posible que tengamos grandes cambios en el framework y en C# sin tener que preguntar (buscad acerca de LINQ, por poner un ejemplo).

Sobre el entorno de VS decir que su consumo de RAM es menor, y que también soporta ser extendido por medio de plug-ins los cuales pueden programados en cualquier lenguaje que use .NET y C++.

Lo de la sintaxis prefiero no tocarlo porque me parece algo demasiado subjetivo (eso de mayúsculas por lo menos yo no le veo problema).

Así que como ven, .NET también tiene sus ventajas e inconvenientes, pero los inconvenientes más bien son por cuestiones de licencia, no de problemas técnicos en sí.

Una cosa que tengo que aclarar es que Mono no intenta ser una implementación 100% fiel al framework de MS, sino que intenta ofrecer un framework que funcione en varias plataformas (incluye a Windows) usando las ventajas que hay detrás de .NET, por lo tanto no es un problema que no sea una implementación 100% fiel al framework de MS (así como en Java no se usa WPF, pues si se usa Mono es cuestión de tampoco usarlo, por poner un ejemplo) y por eso ofrece también APIs propias (Mono.Cairo, Mono.Cecil, Mono.Posix, GTK#, etc).

Dicho esto, eso no elimina lo que dije antes y es que el lenguaje (oigase bien, el lenguaje) tiene muchas ventajas sobre Java al ser más joven, y además .NET tiene varias ventajas como el CLR.

Para concluir, que cada quien use lo que quiera :), eso sí, recomiendo siempre tener en mente las ventajas de C#, Java y sus respectivos frameworks (y reitero, probad a fondo Mono, que para programar ofrece muchas cosas y no solo es un .NET a medias que intenta implementar el framework de MS).

Este es otro comentario:

En lo personal me gusta más .NET que JAVA. Por las siguientes razones:

1. MSDN: Documentación de toda la plataforma .NET. No hay issue en .NET que no conozca el MSDN.

2. .NET con saco y corbata: básicamente .NET es una plataforma mucho más costosa que JAVA. Pero desde el punto de vista de negocios, .NET fue desarrollado para personas con dinero, grandes negocios, empresas mundiales y al trabajar con este sector los proyectos son mucho más grandes, con más expectativa y mucho más difíciles. Es un reto.

3. Sistemas en una semana: .NET te ofrece tantas ventajas para que el trabajo sea más rápido y lo digo porque me toco hacer un sistema en una semana con todas las de la ley(Arquitectura SOA a N capas).

4. Soporte: Para Microsoft partners hay soporte para todos sus productos 24 horas al día 375 días al año. Es decir que el primer inconveniente con tu aplicación se puede solucionar con una llamada. Algo que no me gusta mucho de sistemas operativos libres es que no me dan ese soporte. A quién llamo cuando tengo problemas al instalar Linux UBUNTU? a nadie! en estos momentos la página esta caída! puede ser gratis y todo pero lo barato te puede salir caro.

5. Muchas otras cosas más: herramientas y frameworks como -> AJAX.NET, silverlight, Workflow , comunication, presentation y muchas cosas más!
Yo he trabajado con las dos tecnologías y la verdad me aburrí de JAVA por que cualquiera implementación en formularios desktop es lenta tenga 2 gb de ram en mi pc corre lento.
Ahora es mi opinión muy personal del tema. No tengo nada contra JAVA pero .NET me parece mucho más divertido.
Acuérdense que los caprichos no le importan al usuario final. No piensen en ustedes mismo, sino en su usuario.

Tipos de geeks

La vida moderna


> Para saber qué es un geek

Geek (del inglés geek, pronunciado “guik” IPA /gik/) es un término que se utiliza para referirse a la persona fascinada por la tecnología y la informática. Se trata de un estilo de vida y una forma de ser. Aunque no suelen denominarse hackers o gurús, son en forma y fondo similares, con una afición concreta por algo poco habitual.

El término «geek» en español está relacionado sólo con la tecnología, a diferencia del uso del término geek en inglés, que tiene un significado más amplio y equivalente al término español friki.

Suele entenderse como Geek a una persona que prefiere la concentración y la dedicación hacia sus intereses, trabajo o aficiones; las cuales normalmente son de carácter técnico o, más bien, tecnológico; en lugar de dedicarse a la búsqueda de aceptación social o a cultivar estándares que, en su propia visión, forman parte de un Statu quo mediocre. Hecho último por el cual suele confundirse el término con Nerd. Se entiende que para una persona Geek no importa demasiado el grado de extravagancia que conlleva el aprendizaje o tiempo invertido en sus habilidades

Las connotaciones sociales de dichas características llevan al término Geek más allá de una simple definición para convertirlo en un estilo de vida del cual, habitualmente, el Geek suele estar orgulloso; algo en lo que, de nuevo, vuelve a coincidir con el Nerd. Pero, de hecho, la extraversión del primero, ligada a su visceral neofilia (atracción por la tecnología y curiosidad generalizada por lo nuevo), entra en confrontación directa con el último.

Ésta, al parecer, es una re-afirmación común pero no necesariamente habitual del mundo Geek, puesto que son muchas y muy variadas las características particulares de los y las geeks, quienes suelen mantener códigos de comunicación cerrados generalmente tendientes al aprecio por la programación, la ciencia ficción, las redes de información y los vídeo-juegos. Así como códigos de conducta estrictos, centrados en la libertad de expresión y el respeto por los demás; aunque suele acreditárseles modos de comportamiento algo más radicales.

Algunas desviaciones del comportamiento antes señalado los sitúan como un grupo social preferentemente endémico y, según personajes de la talla de Tim Berners-Lee (aveces llamado Padre de la Internet), incluso machista.

El Geek suele contar con bastantes habilidades técnicas, en especial en el área de la Informática, sea por vocación temprana o por dedicación. Y suele entender el término hacker con el respeto que implica un grado más alto en el escalafón del ámbito de la tecnología. Diferenciándose en este sentido de aquellos profanos en la materia que dan una connotación peyorativa a este último término, ámpliamente extendido en su forma vermicular

Aunque muchos de ellos puedan ser hackers resulta difícil que se reconozcan a sí mismos como tales puesto que, llamarse a sí mismos geeks, representa un cierto tinte de humildad. El término Hacker no suele emplearse a manera de etiqueta auto-impuesta sino de mérito obtenido por el reconocimiento y aceptación de una comunidad geek. En esta escala, muchos geeks intermedios son denominados wannabe (jerga en voz inglesa que significa Quisiera llegar a ser) ubicándose así dentro del tipo de los geeks que podrían llegar a convertirse en hackers. Sin embargo, este último término suele adquirir algunas veces una connotación negativa: Se cree un hacker, como se suele usar comúnmente entre algunos grupos de geeks.

La tecnología como forma de vida

Algunas definiciones de Geek, lo definen como una persona con una vida social irremediablemente unida a internet así como su tiempo libre. Por ello es muy fácil que el Geek esté inmerso en redes sociales, juegos online multijugador o MMORPG, chats, etc.

La anteriormente citada neofilia del geek, lo convierte en un consumidor compulsivo de tecnología de última hora. Así, suelen ser los primeros en conseguir los últimos «juguetes» en tecnología avanzada, como por ejemplo: móviles inteligentes de nueva generación, dispositivos de música novedosos, últimas versiones de modelos de ordenador y componentes, entre otros.

Cultura geek

Endémicos para algunos, queer (tanto en su acepción friki como GLBT) y no dados a la monogamia o simplemente salidos para otros, también se les suele catalogar, quizá no como esnobs exactamente pero sí con una cierta forma de vestir, por ejemplo, poco definida o mixta. Algunos pueden vestir de manera informal (casual), de marca, sport… lo importante para ellos es encontrar gente, a la que buscan denodadamente, para tratar esos temas tan raros (acepción queer) para el resto de mortales pero de los que tanto disfrutan juntos. Cuestión que no hace más que reafirmar el carácter extrovertido, difuso y abierto del Geek.

En España, un rasgo común en muchos geeks consiste en la inclusión de términos anglosajones abreviados en siglas, mezclados con el castellano para enfatizar expresiones coloquiales, sobre todo en el ámbito informático o técnico (Lenguajes como Leet, XAT o SMS, emoticones xD – 😀 — ^^! — O.O — oO?, abreviaturas y siglas en general usadas en dichos lenguajes tales como LOL, ROFL, LMAO…).

Los geek, generalmente también son aficionados y apuestan por el Software Libre, y a los sistemas operativos tipo UNIX como, por ejemplo, GNU/Linux, BSD, y Solaris.

Ciencia ficción, rol y comics

El geek presenta, en general, fascinación por temas como la ciencia ficción y en especial con obras cinematográficas, literarias o videojuegos como Star Wars, Star Trek, Stargate, StarCraft, Matrix, entre otros, considerándose como frikis de estas series o películas; pasando a considerarse, en su vertiente de videojuegos, un jugador friki (gamer), de juegos por ejemplo como Dragones y Mazmorras, Vampiro, Shadowrun Warhammer 40k, Battletech.

Además, suele tener algún tipo de cultura de coleccionista, tanto de elementos populares como poco populares; tales que películas de ciencia ficción, libros y demás elementos de la cultura pop.

Diferentes tipos de geeks

(click aquí para ver la imágen en tamaño más grande)

Este post es original de Internalshock’

Reblog this post [with Zemanta]