Hace rato no posteaba sobre Windows Phone, pero hoy he creado para mis estudiantes y para sus proyectos de clase unos videos sencillos donde pueden practicar como hacer una aplicación simple de Windows Phone ahora que volvió a estar un poco más de moda por el lanzamiento de Windows Phone 8.
Cómo les decia en mi post anterior, no es bueno dejar de desarrollar aplicaciones para Windows Phone 7.5 aún. Es bueno continuar por que además de que tenemos más usuarios ahí que en el nuevo, lo que aprendan les servirá para Windows Phone y para Windows 8. Los que tengan la oportunidad de instalar el SDK de Windows Phone 8, háganlo pero sigan desarrollando para Windows Phone 7.5 si no necesitan nada particular de Windows Phone 8. Ese es mi consejo.
Las advertencias: son videos sencillos, no se aplica MVVM, se toca en lo más mínimo el XAML ya que todo lo trabajo a través de Expression Blend, así que lo único que necesitas saber para ver este tutorial es C#, además aprenderás sobre Linq to SQL en Windows Phone, que en terminos prácticos te sirve tambien para conectarte a un servidor y no a una base de datos local como hacemos con esta aplicación.
Para quienes están empezando, espero que noten como las herramientas de Microsoft nos evitan un montón de trabajo y facilmente podemos hacer aplicaciones, aunque mi recomendación es que saquen el tiempo adecuado para aprender XAML.
Disculpen el sonido del primer video, no habia notado que no tenia el micrófono de la diadema. Les dejo entonces los enlaces, espero les sirvan y hasta la próxima.
Ensamblando las bases de la aplicación
https://vimeo.com/53729403
Creando las pantallas en Expression Blend
https://vimeo.com/53729894
Codificando en Visual Studio
https://vimeo.com/53731227
Después de los videos puedes continuar con la Serie WP7, los Hands on Lab de la Maratón de Windows phone y los próximos días estaré retomándo mi congerlada serie de post de MVVM para los que les gusta aprender un poquito más de como hacerlo un poco mejor, pero ya hay varios videos así que pueden empezar mientras me pongo al día.
Saludos y hasta la próxima.
Sorey
sábado, 17 de noviembre de 2012
jueves, 15 de noviembre de 2012
Cross platform y prácticas para Web Móvil
En esto de la aventura con las aplicaciones móviles Cross Platform y el hecho de que estas aplicaciones tengan que ser diseñadas como pequeñas web móvil, recorde un conjunto de buenas prácticas que la W3C publicó en el 2010, espero que les sean de utilidad en este tema o en Web Móvil si las necesitan.
Les comparto los consejos de las fichas que me sirvieron de guía y también la versión renovada para aprender sobre este tipo de consideraciones.
Les comparto los consejos de las fichas que me sirvieron de guía y también la versión renovada para aprender sobre este tipo de consideraciones.
Introducción
Las “Buenas Prácticas en Web Móvil 1.0" son un Estándar Web del W3C cuyo objetivo es ayudar a los desarrolladores Web a diseñar y publicar contenido Web que funcione adecuadamente en dispositivos móviles. Estas tarjetas resumen, en diez puntos clave, las pautas descritas en el estándar. Al cumplirlas, se incrementará el público que puede acceder a los contenidos, creando sitios Web y aplicaciones eficaces y haciendo la navegación en la Web accesible desde más dispositivos. Más información en: http://www.w3.org/TR/mobile-bp/10 formas de hacer la Web móvil
Diseña para una Web única
Si diseñas el contenido teniendo en cuenta los diferentes dispositivos, reducirás costes, tu página será más flexible y satisfarás las necesidades de más personas.
COHERENCIA TEMÁTICA: Asegúrate de que el contenido al que se accede desde una URI aporta la misma información esencial al usuario, independientemente del dispositivo que utilice.
CAPACIDADES: Aprovecha las capacidades del dispositivo para proporcionar al usuario una mejor experiencia.
PROBLEMAS EN LA IMPLEMENTACIÓN: Toma las medidas convenientes para evitar problemas en la implementación.
PRUEBAS: Haz pruebas sobre dispositivos móviles y emuladores.
CAPACIDADES: Aprovecha las capacidades del dispositivo para proporcionar al usuario una mejor experiencia.
PROBLEMAS EN LA IMPLEMENTACIÓN: Toma las medidas convenientes para evitar problemas en la implementación.
PRUEBAS: Haz pruebas sobre dispositivos móviles y emuladores.
Confía en los estándares Web
En un mercado tan fragmentado como el de dispositivos y navegadores, los estándares son la mejor garantía de Interoperabilidad.
ETIQUETADO VÁLIDO: crea documentos que sean válidos según las gramáticas formales disponibles.
COMPATIBILIDAD DE FORMATO: envía el contenido en un formato que sea compatible con el dispositivo.
FORMATO DE CONTENIDO PREFERIDO: siempre que sea posible, envía el contenido en el formato deseado por el usuario.
COMPATIBLIDAD DE LA CODIFICACIÓN DE CARACTERES: asegúrate de que la codificación de caracteres del contenido es compatible con el dispositivo.
USO DE LA CODIFICACIÓN DE CARACTERES: indica la codificación de caracteres que se está utilizando.
USO DE HOJAS DE ESTILO: utiliza hojas de estilo para la maquetación y presentación del contenido, a no ser que el dispositivo no las admita.
ESTRUCTURA: utiliza las funciones del lenguaje de etiquetado para definir la estructura lógica del documento.
MENSAJES DE ERROR: intenta que tus mensajes de error sean informativos y facilita la forma de regresar al contenido anterior.
COMPATIBILIDAD DE FORMATO: envía el contenido en un formato que sea compatible con el dispositivo.
FORMATO DE CONTENIDO PREFERIDO: siempre que sea posible, envía el contenido en el formato deseado por el usuario.
COMPATIBLIDAD DE LA CODIFICACIÓN DE CARACTERES: asegúrate de que la codificación de caracteres del contenido es compatible con el dispositivo.
USO DE LA CODIFICACIÓN DE CARACTERES: indica la codificación de caracteres que se está utilizando.
USO DE HOJAS DE ESTILO: utiliza hojas de estilo para la maquetación y presentación del contenido, a no ser que el dispositivo no las admita.
ESTRUCTURA: utiliza las funciones del lenguaje de etiquetado para definir la estructura lógica del documento.
MENSAJES DE ERROR: intenta que tus mensajes de error sean informativos y facilita la forma de regresar al contenido anterior.
Evita los riesgos conocidos
Un diseño bien planificación ayuda a reducir los problemas de usabilidad causados por pantallas y teclados pequeños, u otras funciones de los dispositivos móviles.
VENTANAS EMERGENTES: Evita las ventanas emergentes, y no cambies de ventana sin informar al usuario.
TABLAS ANIDADAS: No uses tablas anidadas.
DISEÑO CON TABLAS: No uses tablas para maquetar.
GRÁFICOS PARA EL ESPACIADO: No uses gráficos para el espaciado.
MARCOS: No uses marcos.
MAPAS DE IMAGEN: Evita los mapas de imagen, a no ser que sepas que el dispositivo los interpreta eficazmente.
TABLAS ANIDADAS: No uses tablas anidadas.
DISEÑO CON TABLAS: No uses tablas para maquetar.
GRÁFICOS PARA EL ESPACIADO: No uses gráficos para el espaciado.
MARCOS: No uses marcos.
MAPAS DE IMAGEN: Evita los mapas de imagen, a no ser que sepas que el dispositivo los interpreta eficazmente.
Sé prudente con las limitaciones de los dispositivos
Cuando elijas una tecnología Web concreta, ten en cuenta que los dispositivos móviles tienen funciones muy diversas.
COOKIES: No cuentes siempre con que haya cookies disponibles.
OBJETOS O SCRIPTS: No dependas de los objetos o los scripts integrados.
COMPATIBILIDAD DE LAS TABLAS: No uses tablas a no ser que estés seguro de que el dispositivo es compatible.
ALTERNATIVAS A LAS TABLAS: Siempre que sea posible, utiliza alternativas a la presentación tabular.
COMPATIBILIDAD CON LAS HOJAS DE ESTILO: Organiza los documentos de forma que sea posible leerlos sin hojas de estilo.
TIPOGRAFÍA: No confíes en la compatibilidad de los tipos de letra.
USO DE COLORES: Asegúrate de que la información transmitida mediante colores también puede comprenderse sin color.
OBJETOS O SCRIPTS: No dependas de los objetos o los scripts integrados.
COMPATIBILIDAD DE LAS TABLAS: No uses tablas a no ser que estés seguro de que el dispositivo es compatible.
ALTERNATIVAS A LAS TABLAS: Siempre que sea posible, utiliza alternativas a la presentación tabular.
COMPATIBILIDAD CON LAS HOJAS DE ESTILO: Organiza los documentos de forma que sea posible leerlos sin hojas de estilo.
TIPOGRAFÍA: No confíes en la compatibilidad de los tipos de letra.
USO DE COLORES: Asegúrate de que la información transmitida mediante colores también puede comprenderse sin color.
Optimiza la navegación
La simplificación de la navegación y del uso del teclado son factores esenciales cuando se utilizan pantallas y teclados pequeños, y se tiene un ancho de banda limitado.
BARRA DE NAVEGACIÓN: Concentra la navegación en la parte superior de la página y redúcela al máximo.
NAVEGACIÓN: Utiliza mecanismos de navegación coherentes.
IDENTIFICACIÓN DEL DESTINO: Identifica claramente el destino de cada enlace.
FORMATO DEL DESTINO: Indica el formato del archivo de destino, a no ser que sepas con seguridad que el dispositivo es compatible.
TECLAS DE ACCESO RÁPIDO: Asigna teclas de acceso rápido a los enlaces en los menús de navegación y a las funciones más utilizadas.
URIS: Intenta que las URls sean cortas.
EQUILIBRIO: Intenta encontrar un equilibrio entre tener demasiados enlaces en una página y hacer que el usuario vaya de un sitio a otro hasta llegar a lo que está buscando.
NAVEGACIÓN: Utiliza mecanismos de navegación coherentes.
IDENTIFICACIÓN DEL DESTINO: Identifica claramente el destino de cada enlace.
FORMATO DEL DESTINO: Indica el formato del archivo de destino, a no ser que sepas con seguridad que el dispositivo es compatible.
TECLAS DE ACCESO RÁPIDO: Asigna teclas de acceso rápido a los enlaces en los menús de navegación y a las funciones más utilizadas.
URIS: Intenta que las URls sean cortas.
EQUILIBRIO: Intenta encontrar un equilibrio entre tener demasiados enlaces en una página y hacer que el usuario vaya de un sitio a otro hasta llegar a lo que está buscando.
Comprueba gráficos y colores
Las imágenes, los colores y el estilo destacan el contenido, pero hay dispositivos con pantallas de bajo contraste o problemas de compatibilidad con algunos formatos.
REDIMENSIÓN DE LAS IMÁGENES: Redimensiona las imágenes en el servidor si tienen un tamaño intrínseco.
GRÁFICOS GRANDES: Evita imágenes que no puedan ser mostradas desde el dispositivo. Evita las imágenes grandes o de mucha resolución a no ser que, sin ellas, se pierda información valiosa.
TAMAÑO DE IMAGEN ESPECIFICADO: Especifica el tamaño de la imagen en el etiquetado si tiene un tamaño intrínseco.
ALTERNATIVAS A LOS ELEMENTOS NO TEXTUALES: Facilita un equivalente en forma de texto para cada elemento no textual.
CONTRASTE DE COLOR: Asegúrate de que entre el color del fondo y el del primer plano hay suficiente contraste.
LEGIBILIDAD DE LA IMAGEN DE FONDO: Cuando utilices imágenes de fondo, asegúrate de que el contenido sigue siendo legible en el dispositivo correspondiente.
MEDIDAS:No utilices medidas en píxeles ni unidades absolutas en los valores de los atributos del lenguaje de etiquetado, ni en los valores de las propiedades de las hojas de estilo.
GRÁFICOS GRANDES: Evita imágenes que no puedan ser mostradas desde el dispositivo. Evita las imágenes grandes o de mucha resolución a no ser que, sin ellas, se pierda información valiosa.
TAMAÑO DE IMAGEN ESPECIFICADO: Especifica el tamaño de la imagen en el etiquetado si tiene un tamaño intrínseco.
ALTERNATIVAS A LOS ELEMENTOS NO TEXTUALES: Facilita un equivalente en forma de texto para cada elemento no textual.
CONTRASTE DE COLOR: Asegúrate de que entre el color del fondo y el del primer plano hay suficiente contraste.
LEGIBILIDAD DE LA IMAGEN DE FONDO: Cuando utilices imágenes de fondo, asegúrate de que el contenido sigue siendo legible en el dispositivo correspondiente.
MEDIDAS:No utilices medidas en píxeles ni unidades absolutas en los valores de los atributos del lenguaje de etiquetado, ni en los valores de las propiedades de las hojas de estilo.
Hazlo en pequeño
Un sitio Web de tamaño reducido supondrá un ahorro de tiempo y dinero para los usuarios.
MINIMIZAR: Utiliza un etiquetado conciso y eficaz.
LÍMITE EN EL TAMAÑO DE LA PÁGINA: Asegúrate de que el tamaño total de la página es apropiado para las limitaciones de memoria del dispositivo.
TAMAÑO DE LAS HOJAS DE ESTILO: Utiliza hojas de estilo pequeñas.
SCROLLING: Limita el scrolling a una sola dirección a no ser que sea imposible evitar un desplazamiento secundario.
LÍMITE EN EL TAMAÑO DE LA PÁGINA: Asegúrate de que el tamaño total de la página es apropiado para las limitaciones de memoria del dispositivo.
TAMAÑO DE LAS HOJAS DE ESTILO: Utiliza hojas de estilo pequeñas.
SCROLLING: Limita el scrolling a una sola dirección a no ser que sea imposible evitar un desplazamiento secundario.
Economiza el uso de la red
Las funciones de los protocolos Web pueden mejorar la experiencia del usuario al reducir los retrasos y los tiempos de espera en la red.
ACTUALIZACIÓN AUTOMÁTICA: No crees páginas con una actualización automática periódica, a no ser que hayas informado al usuario y éste pueda desactivarla.
REDIRECCIÓN: No uses el etiquetado para redirigir las páginas automáticamente. En cambio, configura el servidor para que ejecute redirecciones a través de códigos HTTP 3xx.
RECURSOS EXTERNOS: Intenta reducir el número de enlaces externos al mínimo.
CACHÉ: Facilita información para la caché en las respuestas HTTP.
REDIRECCIÓN: No uses el etiquetado para redirigir las páginas automáticamente. En cambio, configura el servidor para que ejecute redirecciones a través de códigos HTTP 3xx.
RECURSOS EXTERNOS: Intenta reducir el número de enlaces externos al mínimo.
CACHÉ: Facilita información para la caché en las respuestas HTTP.
Facilita la entrada de datos
En los dispositivos móviles, los teclados y demás métodos de introducción de datos pueden ser tediosos para el usuario. Un diseño eficaz minimiza su uso.
MINIMIZA EL USO DEL TECLADO: Reduce el uso del teclado al mínimo.
EVITA LA INTRODUCCIÓN DE TEXTO: Siempre que sea posible, evita la introducción de texto por parte de los usuarios.
SELECCIÓN POR DEFECTO: Siempre que sea posible, establece valores preseleccionados por defecto.
MODO DE ENTRADA POR DEFECTO: Especifica un modo de entrada de texto, un lenguaje y/o un formato de entrada, por defecto, si el dispositivo es compatible.
ORDEN DE TABULACIÓN: Crea un orden lógico mediante enlaces, controles de formulario y objetos.
ETIQUETADO DE CONTROLES: Etiqueta todos los controles de formulario adecuadamente y asocia explícitamente las etiquetas con los controles.
POSICIÓN DE CONTROLES: Coloca adecuadamente las etiquetas con respecto a los controles de formulario a los que se refieren.
EVITA LA INTRODUCCIÓN DE TEXTO: Siempre que sea posible, evita la introducción de texto por parte de los usuarios.
SELECCIÓN POR DEFECTO: Siempre que sea posible, establece valores preseleccionados por defecto.
MODO DE ENTRADA POR DEFECTO: Especifica un modo de entrada de texto, un lenguaje y/o un formato de entrada, por defecto, si el dispositivo es compatible.
ORDEN DE TABULACIÓN: Crea un orden lógico mediante enlaces, controles de formulario y objetos.
ETIQUETADO DE CONTROLES: Etiqueta todos los controles de formulario adecuadamente y asocia explícitamente las etiquetas con los controles.
POSICIÓN DE CONTROLES: Coloca adecuadamente las etiquetas con respecto a los controles de formulario a los que se refieren.
Piensa en los usuarios de la Web móvil
Los usuarios de la Web móvil necesitan información sintetizada al disponer de poco tiempo y existir distracciones externas.
TÍTULO DE LA PÁGINA: Ponle un título a la página que sea corto pero descriptivo.
CLARIDAD: Utiliza un lenguaje sencillo y claro.
CONTENIDO RELEVANTE: Asegúrate de que el contenido esencial de la página esté antes que el contenido que no lo es.
CONTENIDO LIMITADO: Limita el contenido a lo que el usuario ha solicitado.
ADECUACIÓN: Asegúrate de que el contenido es adecuado para su uso en un contexto móvil.
TAMAÑO PRÁCTICO DE LA PÁGINA: Divide las páginas en secciones manejables pero con un tamaño limitado.
CLARIDAD: Utiliza un lenguaje sencillo y claro.
CONTENIDO RELEVANTE: Asegúrate de que el contenido esencial de la página esté antes que el contenido que no lo es.
CONTENIDO LIMITADO: Limita el contenido a lo que el usuario ha solicitado.
ADECUACIÓN: Asegúrate de que el contenido es adecuado para su uso en un contexto móvil.
TAMAÑO PRÁCTICO DE LA PÁGINA: Divide las páginas en secciones manejables pero con un tamaño limitado.
http://www.w3.org/Mobile
Traducción realizada por http://www.w3c.es
©2007 W3C (ERCIM, Keio University, MIT)
;
martes, 13 de noviembre de 2012
De C#.NET a Ruby
Como les contaba antes, debido al nuevo reto en mi trabajo de trabajar con RhoElements, debo empezar una nueva etapa que me tiene incluso bastante animada, se trata como ya es obvio con el título de esta entrada, de cambiarse de .NET a Ruby, bueno, no de cambiarse, simplemente de aprender.
Recién estoy mirando los conceptos básicos tal como si empezara de cero otra vez y además decidí en paralelo buscar fuentes y personas que hablar del paso de .NET a Ruby y ha sido una experiencia que mentalmente te golpea.
Lejos de si estoy de acuerdo con los argumentos de las personas que he leido o escuchado, creo que el nivel de agresividad con el que se dirigen a los desarrolladores de .NET los demás desarrolladores, es brutal e innecesario cuando de motivar a otro se refiere, y espero que aunque llegue a enamorarme de Ruby lo suficiente, no me de por hablar de ese modo, en ese tono o esos términos jamás.
Nunca me ha molestado .NET, me ha pasado que toda la vida me han tocado cosas que yo considero fáciles, QBASIC, Pascal, Power Builder, Java, VB6 y por último y donde he permanecido largo tiempo C#.NET diría, con quien he crecido lo años más importantes de mi vida laboral. Pues bien, por escuela o no, siempre encontré en los IDE una forma de ser bastante productivo, lejos de lo ofensivo de llamarnos perezosos o idiotas en algunos casos, a las personas las hace lo que son y lo que pretenden aprender y hacer con lo que aprenden, y no necesariamente que tanto se quiebran la madre haciéndolo.
Si alguno de mis estudiantes me preguntaba de razones usaba un ejemplo muy sencillo y fácil de entender: Si quisieras abrir una lata de sopa tienes varias opciones, compras lata de sopa con abre fácil, usas un abre latas electrico, usas un abrelatas mecánico, o finalmente usas un cuchillo y lo haces a la antigua ¿el resultado? Comes sopa ¿verdad? En algunas de las opciones, más rapido y sin peligro, en otras con mayor esfuerzo, peligros de cortes y cosas asi, pero todos felices finalmente comen sopa (ojalá el software fuera tan simple). Después de esto les cuento como a pesar de los años, de los abre fácil y de los abre latas eléctricos, a mi madre le sigue pareciendo más fácil abrir las latas con un cuchillo y vieran lo hábil que es, mientras yo misma muchas veces daño los abre fácil y me toca usar un cuchillo :P.
Se que si alguno de los bastante ofensivos personajes que uno se encuentra en la red lee mi post, algo se inventará del mismo nivel ofensivo para escribir, antes que se ponga a planificarlo, el contexto de mi explicación va a un adolescente que está empezando a entender, y que vainas, parece que me gusta lo fácil, yo soy así y me gusta mucho hacerle entender a la gente de forma sencilla, debe ser por eso que me gustan los IDE y no tener que luchar con herramientas de linea de comando o instalar cientos de componentes adicionales, lo único que se es que en un IDE tan poderoso como Visual Studio te preocupas exclusivamente por hacer software y ya, eso no tiene por que ser tan endemoniadamente malo de ver.
Ahora, si sobreviviste a mis comentarios superficiales, aqui viene la parte en donde yo, que me siento tan feliz con Visual Studio decidí que es hora de aprender algo más, bueno, además de que como alguna vez con Java siento la necesidad de simplemente probar algo diferente y demostrarme a mi misma que puedo y además de que mi trabajo me lo pide, en mi cabeza quedó rondando hace semanas ver como lo primero que encuentras en todos los sitios que hablan de trabajar con base en editores de texto, es que los IDE son Satán o algo por el estilo y que el Intellisense es para idiotas.
Eso me dejo pensando, si que es cierto, pero ni mucho menos por semejantes razones tan tontas, yo misma uso IDE y al pasar años con mis alumnos teniendo que encontrar todos los errores de digitación que cometen tan solo con mirar sus pantallas considero que es un tema de costumbre y disciplina.
Creo que el tema de usar un IDE o no, no determina al nivel de que tan hábil u ordenado eres, no tiene que ver, incluso en las ultimas casas de software que trabaje, ademas del IDE instalábamos herramientas de estilo que nos permitian ver si los programadores seguian con orden el codigo, asi que ser ordenado o disciplinado con el código se trata no más que de uno mismo, teniendo un super IDE uno puede hacer las cosas mas terribles que pueda imaginar.
Ahora, lo que si es cierto es algo, en 7 años entre mas cosas nuevas salen, cada vez me veia con menos tiempo en mis materias para dejarles cosas utiles a la vez de actualizadas, y este semestre a razón de leer tantas criticas por el uso de IDEs empece a mirar el trabajo de mis alumnos con otros ojos, y como al tener una herramienta que hace tantas cosas por ellos, se limitan a que la herramienta lo haga y no a pensar, y ahí es donde no estuve de acuerdo, y me dejé como tarea personal salir de mi zona de comfort, pues tuve la necesidad personal y deseo de querer aprender y tener mas puntos de vista por mi cuenta y evitar defenderme de algo que no conozco, sin comportarme como los que no conocen o conocieron hace mucho algo, pero deciden simplemente criticar y criticar.
Me voy por un tiempo al universo Ruby, allá donde vivir sin IDEs les parece tan divertido y donde demorarse más tiempo haciendo todo es tan admirable, su razón ha de tener, eso si, espero aprender que dicen los clientes cuando las estimaciones de funcionalidades duran más y todo eso. No pienso que vuelva atrás, de hecho y es más que obvio voy adelante, a aprender cantidades de cosas, a ver que tan cool es todo lo cool de lo que hablan, la diferencia es que podré tener ambos criterios en real y no en imaginario.
Algo para finalizar que me gustó y en lo que definitivamente tienen razón, es que cuando usas un producto como Visual Studio, si no tiene alguna característica pues te limitas a esperarla en la siguiente versión, aunque bueno puedes construir, extensiones, snippets, paquetes de Nutget y demás, pero digamos que en algo tienen razón, la gente que trabaja con software libre, tiene más el espíritu de colaborar y crecer juntos, pero igual no son la mayoría como lo pretenden hacer creer los que te ofenden, lo que sí es que evidentemente son más, cosa que no hace cierta que en el lado de los que poco usamos software libre no haya gente con espíritu de colaboración.
Por el momento les comparto algunas cosas chéveres que encontré por ahí buscando como dar el paso lentamente por que lo que sí, es que sería mejor empezar de cero que con todos esos vicios de los IDE :P (Oh Dios, soy uno de ellos ahora XD #justkidding)
http://www.ruby-lang.org/es/
http://www.infoq.com/presentations/From-NET-to-Ruby
http://rubysource.com/category/switching-to-ruby/switching-to-ruby-from-dot-net/
http://rubybits2.codeschool.com
Saludos y deseenme éxito.
Sorey
PD: Les recomiendo unos videos de EnvyLabs a mi parecer muy chistosos, comparando Ruby con .NET, PHP y Java entre otros.
Recién estoy mirando los conceptos básicos tal como si empezara de cero otra vez y además decidí en paralelo buscar fuentes y personas que hablar del paso de .NET a Ruby y ha sido una experiencia que mentalmente te golpea.
Lejos de si estoy de acuerdo con los argumentos de las personas que he leido o escuchado, creo que el nivel de agresividad con el que se dirigen a los desarrolladores de .NET los demás desarrolladores, es brutal e innecesario cuando de motivar a otro se refiere, y espero que aunque llegue a enamorarme de Ruby lo suficiente, no me de por hablar de ese modo, en ese tono o esos términos jamás.
Nunca me ha molestado .NET, me ha pasado que toda la vida me han tocado cosas que yo considero fáciles, QBASIC, Pascal, Power Builder, Java, VB6 y por último y donde he permanecido largo tiempo C#.NET diría, con quien he crecido lo años más importantes de mi vida laboral. Pues bien, por escuela o no, siempre encontré en los IDE una forma de ser bastante productivo, lejos de lo ofensivo de llamarnos perezosos o idiotas en algunos casos, a las personas las hace lo que son y lo que pretenden aprender y hacer con lo que aprenden, y no necesariamente que tanto se quiebran la madre haciéndolo.
Si alguno de mis estudiantes me preguntaba de razones usaba un ejemplo muy sencillo y fácil de entender: Si quisieras abrir una lata de sopa tienes varias opciones, compras lata de sopa con abre fácil, usas un abre latas electrico, usas un abrelatas mecánico, o finalmente usas un cuchillo y lo haces a la antigua ¿el resultado? Comes sopa ¿verdad? En algunas de las opciones, más rapido y sin peligro, en otras con mayor esfuerzo, peligros de cortes y cosas asi, pero todos felices finalmente comen sopa (ojalá el software fuera tan simple). Después de esto les cuento como a pesar de los años, de los abre fácil y de los abre latas eléctricos, a mi madre le sigue pareciendo más fácil abrir las latas con un cuchillo y vieran lo hábil que es, mientras yo misma muchas veces daño los abre fácil y me toca usar un cuchillo :P.
Se que si alguno de los bastante ofensivos personajes que uno se encuentra en la red lee mi post, algo se inventará del mismo nivel ofensivo para escribir, antes que se ponga a planificarlo, el contexto de mi explicación va a un adolescente que está empezando a entender, y que vainas, parece que me gusta lo fácil, yo soy así y me gusta mucho hacerle entender a la gente de forma sencilla, debe ser por eso que me gustan los IDE y no tener que luchar con herramientas de linea de comando o instalar cientos de componentes adicionales, lo único que se es que en un IDE tan poderoso como Visual Studio te preocupas exclusivamente por hacer software y ya, eso no tiene por que ser tan endemoniadamente malo de ver.
Ahora, si sobreviviste a mis comentarios superficiales, aqui viene la parte en donde yo, que me siento tan feliz con Visual Studio decidí que es hora de aprender algo más, bueno, además de que como alguna vez con Java siento la necesidad de simplemente probar algo diferente y demostrarme a mi misma que puedo y además de que mi trabajo me lo pide, en mi cabeza quedó rondando hace semanas ver como lo primero que encuentras en todos los sitios que hablan de trabajar con base en editores de texto, es que los IDE son Satán o algo por el estilo y que el Intellisense es para idiotas.
Eso me dejo pensando, si que es cierto, pero ni mucho menos por semejantes razones tan tontas, yo misma uso IDE y al pasar años con mis alumnos teniendo que encontrar todos los errores de digitación que cometen tan solo con mirar sus pantallas considero que es un tema de costumbre y disciplina.
Creo que el tema de usar un IDE o no, no determina al nivel de que tan hábil u ordenado eres, no tiene que ver, incluso en las ultimas casas de software que trabaje, ademas del IDE instalábamos herramientas de estilo que nos permitian ver si los programadores seguian con orden el codigo, asi que ser ordenado o disciplinado con el código se trata no más que de uno mismo, teniendo un super IDE uno puede hacer las cosas mas terribles que pueda imaginar.
Ahora, lo que si es cierto es algo, en 7 años entre mas cosas nuevas salen, cada vez me veia con menos tiempo en mis materias para dejarles cosas utiles a la vez de actualizadas, y este semestre a razón de leer tantas criticas por el uso de IDEs empece a mirar el trabajo de mis alumnos con otros ojos, y como al tener una herramienta que hace tantas cosas por ellos, se limitan a que la herramienta lo haga y no a pensar, y ahí es donde no estuve de acuerdo, y me dejé como tarea personal salir de mi zona de comfort, pues tuve la necesidad personal y deseo de querer aprender y tener mas puntos de vista por mi cuenta y evitar defenderme de algo que no conozco, sin comportarme como los que no conocen o conocieron hace mucho algo, pero deciden simplemente criticar y criticar.
Me voy por un tiempo al universo Ruby, allá donde vivir sin IDEs les parece tan divertido y donde demorarse más tiempo haciendo todo es tan admirable, su razón ha de tener, eso si, espero aprender que dicen los clientes cuando las estimaciones de funcionalidades duran más y todo eso. No pienso que vuelva atrás, de hecho y es más que obvio voy adelante, a aprender cantidades de cosas, a ver que tan cool es todo lo cool de lo que hablan, la diferencia es que podré tener ambos criterios en real y no en imaginario.
Algo para finalizar que me gustó y en lo que definitivamente tienen razón, es que cuando usas un producto como Visual Studio, si no tiene alguna característica pues te limitas a esperarla en la siguiente versión, aunque bueno puedes construir, extensiones, snippets, paquetes de Nutget y demás, pero digamos que en algo tienen razón, la gente que trabaja con software libre, tiene más el espíritu de colaborar y crecer juntos, pero igual no son la mayoría como lo pretenden hacer creer los que te ofenden, lo que sí es que evidentemente son más, cosa que no hace cierta que en el lado de los que poco usamos software libre no haya gente con espíritu de colaboración.
Por el momento les comparto algunas cosas chéveres que encontré por ahí buscando como dar el paso lentamente por que lo que sí, es que sería mejor empezar de cero que con todos esos vicios de los IDE :P (Oh Dios, soy uno de ellos ahora XD #justkidding)
http://www.ruby-lang.org/es/
http://www.infoq.com/presentations/From-NET-to-Ruby
http://rubysource.com/category/switching-to-ruby/switching-to-ruby-from-dot-net/
http://rubybits2.codeschool.com
Saludos y deseenme éxito.
Sorey
PD: Les recomiendo unos videos de EnvyLabs a mi parecer muy chistosos, comparando Ruby con .NET, PHP y Java entre otros.
sábado, 10 de noviembre de 2012
WOWZAPP: Hackaton Mundial Windows 8
Por azares de la vida fuí invitada a dar un par de charlas en WOWZAPP en Medellín, la Hackatón Mundial de Windows 8 que se realiza este fin de semana en varias ciudades.
Les comparto algunos consejos y sugerencias personales para construir las apps, las diapositivas de las sesiones y una caja de herramientas con ejemplos simples para aplicarlos en sus apps que estaré construyendo durante mi día con los participantes del WOWZAPP. Además puedes descargar desde mi Github el codigo de Sugges.me, o si estás haciendo un RSS el ejemplo paso a paso está en el Developer Center de Windows. Te recomiendo además los videos de las charlas de introducción a las plantillas por defecto en Windows 8, de las charlas que di hace unos dias en Avanet.
Consejos para desarrollar apps para Windows 8 en la Hackathon
- Usa las plantillas por defecto, ahorra trabajo.
- La experiencia de la aplicación a es una mezcla de funcionalidad y apariencia, invierte en el diseño de tu aplicación. Si no cuentas con un diseñador, empieza con un diseño sencillo basado en símbolos, un set de colores sencillo y colores planos (Evita uso de relieves y el exceso de degradados)
- Manten archivos de recursos propios y los estándar. Personalmente uso minimo 2 archivos, uno para plantillas y estilos, otro para colores o datos simples.
- No olvides que en el archivo de estilos por defecto están los estilos para los botones más comunes, pero están comentados.
- Pensar en el modelo de datos de tu aplicación hará que comiences con una excelente buena base, adapta tu modelo a la plantilla base.
- No inventes la rueda, ya existen muchas cosas preconstruidas en el framework, consulta antes de intentar construirlo por tu cuenta.
- No coloques comandos de acciones en el contenido a menos que sean contextuales.
- Elije un mínimo producto viable y publica lo más pronto posible.
- Primero gratis, fortalece tu app, obtén calificaciones y luego añade el cobro.
- Ten a mano el check list de revisión de las apps y el set básico de pruebas de las funcionalidades principales de tu app, evita que te rechacen tu aplicación, el tiempo de revisión es de mínimo 3 días hábiles.
- Primera versión en inglés 100%, luego localización.
- Siempre usa el certification kit después de generar el paquete para la tienda.
- Es necesario habilitar el la selección de ítems en el grid para táctil. Por defecto la selección con deslizamiento en la experiencia táctil viene desactivada, no olvides activarla si usas selecciones en tus grids.
Espero que se animen a iniciar con sus aplicaciones, y que les sirvan algunos de los consejos y recomendciones que tambien hay en las presentaciones.
domingo, 4 de noviembre de 2012
Hackers & Developers Magazine #0 - #Butterfly
El día de hoy hemos realizado el lanzamiento del proyecto Hackers & Developers Magazine, una iniciativa creada entre mujeres programadoras de Hispano América, gracias a la iniciativa y liderazgo de @eugeniabahit, tod@s están invitados a enviar sus artículos. Este no es más que el resultado y otra de esas bonitas cosas que hacen las redes sociales bien usadas.
Mi artículo es una versión detallada de la conferencia que dí en Colombia 3.0, donde planteaba la situación alrededor de la alta demanda de profesionales de sistemas y la poca oferta de ingenieros calificados. Agradeceré mucho si me comparten sus perspectivas y sugerencias.
Me siento muy feliz de hacer parte de este proyecto escribiendo y manejando la comunidad de Twitter y Facebook de #HDMagazine, los invito a leernos, descargar y compartir la primera publicación que afectuosamente llamamos #Butterfly
Mi artículo es una versión detallada de la conferencia que dí en Colombia 3.0, donde planteaba la situación alrededor de la alta demanda de profesionales de sistemas y la poca oferta de ingenieros calificados. Agradeceré mucho si me comparten sus perspectivas y sugerencias.
Me siento muy feliz de hacer parte de este proyecto escribiendo y manejando la comunidad de Twitter y Facebook de #HDMagazine, los invito a leernos, descargar y compartir la primera publicación que afectuosamente llamamos #Butterfly
Etiquetas:
HDMagazine,
Ingenieria de Software,
Software Libre
Iniciando con los Cross Platforms
Como les contaba hace algún tiempo en mi post sobre, la parte no divertida de la movilidad, hoy en día las empresas que deben decidir por una estrategia móvil, están enfrentadas a serias, complejas y confusas decisiones.
Mientras a los proveedores de tecnología como es obvio, solo les interesa vender y que sus herramientas y dispositivos seas los más usados y populares al costo que sea, las empresas más pequeñas y dedicadas al negocio de construir tecnología se ven enfrentadas a la decisión de cual tecnología es la más adecuada para hacer sostenible el futuro de su negocio.
Pues bien, esto está lejos de ser algo claro, el mensaje cambia de un mes a otro de la propuesta de hacer aplicaciones nativas a hacer una aplicación para todas las plataformas, sin embargo, las volubles ideas provienen de sectores dedicados a construir las apps tan de moda hoy día o de las grandes empresas que no tiene problema en asumir mes a mes el cambio de moda como si fueran un par de calcetines nuevos.
Pero la realidad para muchos es bastante diferente, y ante esa realidad es que algunos optan por investigar acerca de los Cross Platform, con el fin de invertir su esfuerzo una sola vez para lograr cubrir la mayor parte de dispositivos que les sean posibles. Pues bien, eso tiene sus desventajas, entre ellas las limitaciones particulares frente a cada dispositivo que obviamente tienen estas alternativas, frente a las opciones nativas. Sin embargo, analizado desde la perspectiva de los negocios cuyos trabajos van más enfocadas al día a día de los negocios y a cubrir la base instalada de sus cliente, estas propuestas no son para nada descabelladas y por el contrario son una alternativa bastante viable a la incertidumbre.
Pues bien, una de esas propuestas es RhoMobile o RhoElements, no tan conocida, pero finalmente una alternativa, comparable y similar a PhoneGap. Pues bien, tal como PhoneGap, RhoMobile fue una alternativa totalmente Open Source que fue comprada por Motorola Solutions, por lo cual paso a ser RhoElements Cabe aclarar que Motorola Solutions no es la parte de Motorola que adquirió Google, es otra de las área de Motorola que trabaja más de cara a los negocios y que provee a muchas empresas todo tipo de terminables para el trabajo pesado de las organizaciones, y cuya base instalada cuenta mayormente con Windows CE como sistema operativo de base.
Es obvio, bajo los recientes cambios de Microsoft que Motorola Solutions tuvo que buscar una alternativa que lo hiciera menos dependiente de la plataforma y ese es RhoMobile, cuyo lenguaje de base es Ruby y que en su promesa está el soporte a sistemas operativos móviles como Windows® Embedded Handheld, Windows® CE, Windows® Phone 7, Apple® iOS, Android® y BlackBerry®.
Pues bien, resulta que en mi trabajo reciente, sufrimos por varios meses el tema de pensar cual sería nuestra estrategia de negocio para continuar adelante dando soporte a nuestros clientes y previendo la adaptación a los cambios futuros, y siendo Motorola Solutions nuestro principal proveedor de tecnología, RhoElements es a todas luces una de las alternativas que consideramos más viables.
Como siempre les he dicho, analizar el problema de las elecciones tecnológicas depende de cada escenario, el que tome decisiones de este tipo basado en la pasión o el gusto por algo, e inclusive en la popularidad o no de una herramienta, podría meterse en serios problemas. Seguro que para muchos lo de moda es la solución, pero si su negocio no son las apps, detengase y observe sus alternativas, pero en especial analice su ecosistema y determine cual opción aplica para su negocio o emprendimiento, según sus clientes y las necesidades que ellos tienen, no las que se sueñan, recuerde que la moda de la tecnología altera la percepción de las personas y es su trabajo como desarrollador, arquitecto o proveedor de soluciones hacer llegar a su cliente a las soluciones más convenientes.
Recien estoy aprendiendo HTML5 y CSS3, pero se me hace divertido como siempre contarles la aventura, puesto que además tendré que aprender sobre Ruby. Así que bueno, será una aventura poder enseñarles algo de lo que voy aprendiendo.
En fin, ese es el nuevo reto, vamos a ver que cosas aprendemos, Nos vemos ;)
Sorey
Sorey
viernes, 2 de noviembre de 2012
¿Windows Phone 7.5 o Windows Phone 8?
Desde el día del lanzamiento de Windows Phone 8 han surgido varias preguntas entre los desarrolladores referente al tema de Windows Phone 7.5 y el paso a desarrollar sobre la nueva versión.
Pues bien evidentemente como producto Windows Phone 8 es una gran promesa y a pesar de lo tardío de la entrada a escena de Windows Phone, el hecho de que haya una propuesta diferente a las ya monótonas propuestas de los competidores, hace que existan grandes posibilidades, más aun con el hecho de por fin contar con un ecosistema completo que quiza no todos observan con claridad: Azure, Skydrive, Visual Studio y las ultimas versiones de Windows y Windows Phone, hacen de la propuesta de Microsoft un ecosistema completo, tanto para usuarios como para desarrolladores, contando con el hecho para estos ultimos de que además ni siquiera se deberá adoptar los lenguajes de Microsoft si no que podrá optar por desarrollar con los muy populares HTML5 y Javascript.
Pues bien, para quienes ya vienen trabajando en Windows Phone 7.5 surge una duda producto del escenario planteado hace unos meses en el cual los telefonos con Windows Phone 7.5 no podrían ser actualizados a Windows Phone 8, esta limitante sigue existiendo y es real, y el día del lanzamiento de Windows Phone 8 no tuvimos noticias por parte de Microsoft acerca de la alternativa de actualización que teniamos al respecto Windows Phone 7.8, sin embargo en el contexto del desarrollo hay más claridad y lo sabemos quienes adoptamos ya como tecnología de desarrollo XAML e incluso quienes desde antes trabajaban con Silverlight.
Pues bien, el escenario de decisión es menos complejo de lo que parece, aunque sea el lanzamiento de Windows Phone 8, la base instalada actual es de Windows Phone 7.5 y a esa base hay que apuntarle aun. ¿Que pasa entonces con nuestras aplicaciones en los nuevos telefonos con Windows Phone 8? No es problema, las aplicaciones seguirán funcionando en Windows Phone 8 y así seguiremos creciendo en número de usuarios.
¿Qué fue lo que cambió entonces? ¿Qué pasará con lo que sabiamos cuando tengamos que enfrentarnos a Windows Phone 8?
Es simple, las cosas han mejorado y evolucionado, pero no los conceptos de base y la tecnología de base, XAML sigue ahí disponible, tal como ocurre para Windows 8.
Hoy, el desarrollador que quiera enfrentarse a los 3 escenarios debe tener una clara elección de tecnología, XAML. Lo mejor es que además de ser bastante fácil, todas las herramientas para desarrollar para Windows Phone y Windows 8 son gratuitas.
Lo que debemos considerar y que es muy importante es lo siguiente: Visual Studio 2012 solo puede usarse para construir apps de Windows 8 y Windows Phone 8, cuando es ejecutado sobre Windows 8, además del soporte hacia atrás en Windows Phone 7.5, allí radica la gran diferencia.
Desde Windows 7 y Visual Studio 2010 y 2012 podremos seguir construyendo aplicaciones para Windows Phone 7.5 que como ya les mencioné serán compatibles con Windows Phone 8, pero estas aplicaciones solo podrán ser desarrolladas con XAML y XNA el cual ya no está disponible para desarrollar aplicaciones en Visual Studio 2012.
Para quienes vamos paso a paso evolucionando con Microsoft y que contamos ya con Windows 8 los cambios han sido esperados con ansiedad, ahora el ecosistema está completo, la tienda de aplicaciones de Windows Phone, el centro de desarrollo y la comunidad alrededor de Windows Phone han madurado.
Tenemos Visual Studio 2012 en conjunto con Blend son grandes herramientas, que insisto además, son gratis, y sigo siendo enfática, todos los que ya empezaron alguna vez a aprender Windows Phone incluso desde el 7, no han más que construido la posibilidad de hacer parte de este nuevo ecosistema, una propuesta seria, diferente e innovadora de Microsoft, por lo cual, no se preocupen, en internet ya existen hace tiempo montones de recursos para aprender a desarrollar en Windows Phone, y en el centro de desarrollo de Microsoft para Windows Phone hay cantidad de herramientas y ejemplos disponibles de forma gratuita, para aprender codificando.
De mi parte los invito a leer el material disponible en blog respecto a Windows Phone, aprender sobre Metro o el nuevo estilo de aplicaciones Windows y a seguir la serie de post introductoria que reactivaré pronto.
Además en el centro de desarrollo se encuentran ya publicadas las nuevas caracteristicas incluidas en el SDK de Windows Phone 8. Recuerden que Visual Studio 2012 puede ser instalado en Windows 7, con la ya numeradas limitaciones de compatibilidad y otras más que pueden leer en la web oficial.
Saludos y nos vemos haciendo apps.
Sorey
Pues bien evidentemente como producto Windows Phone 8 es una gran promesa y a pesar de lo tardío de la entrada a escena de Windows Phone, el hecho de que haya una propuesta diferente a las ya monótonas propuestas de los competidores, hace que existan grandes posibilidades, más aun con el hecho de por fin contar con un ecosistema completo que quiza no todos observan con claridad: Azure, Skydrive, Visual Studio y las ultimas versiones de Windows y Windows Phone, hacen de la propuesta de Microsoft un ecosistema completo, tanto para usuarios como para desarrolladores, contando con el hecho para estos ultimos de que además ni siquiera se deberá adoptar los lenguajes de Microsoft si no que podrá optar por desarrollar con los muy populares HTML5 y Javascript.
Pues bien, para quienes ya vienen trabajando en Windows Phone 7.5 surge una duda producto del escenario planteado hace unos meses en el cual los telefonos con Windows Phone 7.5 no podrían ser actualizados a Windows Phone 8, esta limitante sigue existiendo y es real, y el día del lanzamiento de Windows Phone 8 no tuvimos noticias por parte de Microsoft acerca de la alternativa de actualización que teniamos al respecto Windows Phone 7.8, sin embargo en el contexto del desarrollo hay más claridad y lo sabemos quienes adoptamos ya como tecnología de desarrollo XAML e incluso quienes desde antes trabajaban con Silverlight.
Pues bien, el escenario de decisión es menos complejo de lo que parece, aunque sea el lanzamiento de Windows Phone 8, la base instalada actual es de Windows Phone 7.5 y a esa base hay que apuntarle aun. ¿Que pasa entonces con nuestras aplicaciones en los nuevos telefonos con Windows Phone 8? No es problema, las aplicaciones seguirán funcionando en Windows Phone 8 y así seguiremos creciendo en número de usuarios.
¿Qué fue lo que cambió entonces? ¿Qué pasará con lo que sabiamos cuando tengamos que enfrentarnos a Windows Phone 8?
Es simple, las cosas han mejorado y evolucionado, pero no los conceptos de base y la tecnología de base, XAML sigue ahí disponible, tal como ocurre para Windows 8.
Hoy, el desarrollador que quiera enfrentarse a los 3 escenarios debe tener una clara elección de tecnología, XAML. Lo mejor es que además de ser bastante fácil, todas las herramientas para desarrollar para Windows Phone y Windows 8 son gratuitas.
Lo que debemos considerar y que es muy importante es lo siguiente: Visual Studio 2012 solo puede usarse para construir apps de Windows 8 y Windows Phone 8, cuando es ejecutado sobre Windows 8, además del soporte hacia atrás en Windows Phone 7.5, allí radica la gran diferencia.
Desde Windows 7 y Visual Studio 2010 y 2012 podremos seguir construyendo aplicaciones para Windows Phone 7.5 que como ya les mencioné serán compatibles con Windows Phone 8, pero estas aplicaciones solo podrán ser desarrolladas con XAML y XNA el cual ya no está disponible para desarrollar aplicaciones en Visual Studio 2012.
Para quienes vamos paso a paso evolucionando con Microsoft y que contamos ya con Windows 8 los cambios han sido esperados con ansiedad, ahora el ecosistema está completo, la tienda de aplicaciones de Windows Phone, el centro de desarrollo y la comunidad alrededor de Windows Phone han madurado.
Tenemos Visual Studio 2012 en conjunto con Blend son grandes herramientas, que insisto además, son gratis, y sigo siendo enfática, todos los que ya empezaron alguna vez a aprender Windows Phone incluso desde el 7, no han más que construido la posibilidad de hacer parte de este nuevo ecosistema, una propuesta seria, diferente e innovadora de Microsoft, por lo cual, no se preocupen, en internet ya existen hace tiempo montones de recursos para aprender a desarrollar en Windows Phone, y en el centro de desarrollo de Microsoft para Windows Phone hay cantidad de herramientas y ejemplos disponibles de forma gratuita, para aprender codificando.
De mi parte los invito a leer el material disponible en blog respecto a Windows Phone, aprender sobre Metro o el nuevo estilo de aplicaciones Windows y a seguir la serie de post introductoria que reactivaré pronto.
Además en el centro de desarrollo se encuentran ya publicadas las nuevas caracteristicas incluidas en el SDK de Windows Phone 8. Recuerden que Visual Studio 2012 puede ser instalado en Windows 7, con la ya numeradas limitaciones de compatibilidad y otras más que pueden leer en la web oficial.
Saludos y nos vemos haciendo apps.
Sorey
Suscribirse a:
Entradas (Atom)