Mostrando entradas con la etiqueta Recursos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Recursos. Mostrar todas las entradas

domingo, 10 de julio de 2016

Patrones de diseño: herramientas fundamentales para el programador



Ya sea que seas un desarrollador de software experimentado o que a penas comiences tus primeros pasos en este apasionante mundo, seguramente en más de una ocasión te toparás con el término "patrones de diseño". O si no lo has escuchado como tal, seguramente ya estás usando alguno sin darte cuenta.

Los patrones de diseño son una de las herramientas más útiles que deben encontrarse en el arsenal de todo programador. Y si bien hay bastantes patrones distintos, no está de más que todo desarrollador conozca, al menos, los más utilizados.


¿Qué son los patrones de diseño?


Los patrones de diseño fueron definidos por primera vez por Christopher Alexander en 1977 de la siguiente forma:

Un patrón describe un problema que ocurre una y otra vez en nuestro entorno, y luego procede a describir la esencia de la solución a dicho problema de un modo tal que uno puede utilizar la solución un millón de veces, pero sin aplicarla dos veces de la misma manera.

Lo interesante de la definición anterior es que Alexander no está hablando sobre diseño de software sino sobre arquitectura (como en la construcción de edificios, casas, puentes, etc.). Tomemos un momento para analizar la definición a fin de comprender su significado.

Un patrón describe un problema que ocurre una y otra vez en nuestro entorno...

En el desarrollo de software, sin importar la aplicación que estemos desarrollando, siempre nos encontramos con la misma clase de problemas: tal vez necesitamos recibir una notificación cuando un proceso termine (como cuando se completa una llamada asíncrona), o tal vez necesitemos ser notificados cuando el estado de una propiedad particular cambie. Tal vez tenemos una API compleja que queremos compartir con otros desarrolladores, pero deseamos que sea fácil interactuar con ella, de modo que no se necesiten comprender los detalles complejos de dicha API. Tal vez queremos añadir funcionalidades aun objeto existente aún cuando no tenemos el código fuente de dicho objeto o somos incapaces de heredarlo (como en el caso de las clases selladas en C#). Tal vez queramos recorrer los elementos de una colección de modo que podamos mostrarlos o realizar alguna otra acción sobre ellos. Estos son sólo algunos de los problemas comunes con los que nos encontramos al desarrollar software, pero puede haber muchísimos más.

...y luego procede a describir la esencia de la solución a dicho problema...

Los patrones de diseño no nos dan una implementación específica, sino que nos describen simplemente las partes que debe incluir una solución y la interacción entre ellas. En otras palabras, son sólo el esqueleto de la solución a problemas comunes en el desarrollo de software. Los patrones de diseño, pues, brindan una solución ya probada y documentada a problemas de desarrollo de software que están sujetos a contextos similares.

...de un modo tal que uno puede utilizar la solución un millón de veces, pero sin aplicarla dos veces de la misma manera.

Este es un aspecto importante de los patrones de diseño: nosotros elegimos cómo implementarlos. Los patrones son conceptuales en naturaleza, por lo que su implementación concreta depende de la necesidad particular que queramos resolver. Por ejemplo, en el mundo de la arquitectura podemos tener un problema común: la necesidad de colocar un techo sobre un espacio abierto. Para resolverlo, podemos contar con diferentes patrones de techo: abovedado, con arcos, plano, de dos aguas, etc. Y cuando vamos a cada uno de estos patrones, podemos encontrarnos con aplicaciones más especificas para cada uno; por ejemplo, si elegimos el techo de dos aguas, este puede ser piramidal, en forma de cruz, con capo, etc. Y aún cuando seleccionemos uno de estos patrones, no tenemos todavía una implementación particular del mismo, como las consideraciones sobre la superficie a cubrir, los materiales a usar, los ángulos en los que se levantarán los techos, etc. Dada su naturaleza conceptual, los patrones de diseño serán interpretados e implementados de manera diferente por personas diferentes. No hay ningún problema en ello, pues los patrones sólo nos muestran la esencia de la solución y no sus detalles particulares.





Partes de un patrón de diseño.


Los patrones de diseño se encuentran descritos usualmente en catálogos, libros y artículos especiales sobre el tema y siempre poseen varios elementos en comun:


  • Nombre del patrón. Este es el nombre particular con el cual se identifica al patrón en las conversaciones entre desarrolladores. Algunos ejemplos de nombres de patrones de diseño son: Fábrica abstracta (Abstract Factory), Método de Fabricación (Factory Method), Fachada (Facade), Observador (Observer), Singleton, Cadena de Responsabilidad (Chain of Responsibility) entre muchos otros.
  • Descripción del problema. Como descubrimos en la definición de Alexander, existen problemas comunes en el desarrollo de software con los que nos toparemos en más de una ocasión, y en esta parte del patrón se define dicho problema a detalle.
  • Solución al problema. Consiste en la descripción de los elementos que conforman el diseño de la solución incluyendo las relaciones entre ellos, sus responsabilidades y la forma en que colaboran entre si para resolver el problema. Recordemos que esta es sólo la esencia de la solución y no una implementación concreta. Le toca al desarrollador determinar qué implementación es la más apropiada para un problema específico.
  • Consecuencias. Cada patrón tiene un costo, el cual es frecuentemente ignorado. Como desarrolladores acostumbramos hablar de las ventajas de un patrón en particular y de cómo representa la solución perfecta a un problema. Pero la realidad es que cada beneficio tiene un costo asociado. Cuando se trata de patrones de diseño, el costo suele ser un incremento en la complejidad de nuestro código. Debemos conocer bien las consecuencias de un patrón para sopesarlas cuidadosamente contra los beneficios de su implementación.



Clasificación de los patrones de diseño

Dado que el desarrollo de software es una disciplina que se encuentra en constante evolución, existen muchos patrones de diseño distintos que se aplican a distintos problemas comunes. Sin embargo y a pesar de su diversidad, los patrones de diseño pueden clasificarse en tres grandes grupos:

  • Patrones creacionales: Tratan sobre la mejor forma de instanciar, inicializar y configurar objetos en una aplicación.
  • Patrones estructurales: Se utilizan para separar la interfaz de la implementación. Se ocupan de cómo las clases y objetos se agrupan, para formar estructuras más grandes.
  • Patrones de comportamiento: Se usan para definir cómo las clases y los objetos interactúan entre ellos.



Esta clasificación aparece por primera vez en el libro Design Patterns: Elements of Reusable Object-Oriented Software, escrito en 1994 por un grupo de autores conocidos como The Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides. Este libro se ha convertido en el referente obligado sobre el tema y permanece vigente hasta hoy, por lo que debería formar parte de la biblioteca personal de cualquier desarrollador de software.

¿Por qué usar patrones de diseño?

Existen varias razones por las cuales un desarrollador debe aprender, comprender e implementar el uso de los patrones de diseño en su práctica diaria de escritura de código:


  • Los patrones de diseño son soluciones probadas. Alguien más listo que nosotros ya analizó el problema y desarrolló una solución. No hay necesidad de que reinventemos la rueda. Lo mejor que podemos hacer es comenzar con la solución de alguien más y ajustarla a las necesidades específicas de nuestra aplicación.
  • Los patrones de diseño nos proveen un vocabulario común. Todas las profesiones poseen términos especializados que emplean para comunicar conceptos específicos entre especialistas. Los patrones de diseño le dan a los desarrolladores de software esa misma clase de lenguaje especializado. Un vocabulario común nos permite usar lenguaje preciso cuando nos comunicamos con otros desarrolladores.
  • Hablar de patrones de diseño anima a otros desarrolladores a investigar y aprender sobre el tema. Después de todo, si un desarrollador escucha a otros hablando sobre el patrón de fachada y cómo resultó ser una buena solución para una aplicación particular, entonces dicho desarrollador probablemente será lo suficientemente curioso como para averiguar qué es ese patrón y por qué es tan bueno. Esto ayuda a difundir el uso de los patrones de diseño en nuestra industria y, por lo tanto, a mejorar la calidad del software que construimos.


En conclusión

El uso de patrones de diseño nos ayudará a estandarizar nuestro código de modo que sea más entendible para otros programadores (y aún para nosotros mismos). Si nunca has usado patrones de diseño, es hora de comenzar a hacerlo.


Enlaces




jueves, 23 de junio de 2016

¿Como convertirse en un desarrollador web? - eBook gratis


El sitio Web Code Geeks se especializa en compartir recursos para desarrolladores web, tanto los que a penas van iniciando en este mundillo hasta los más avanzados. Entre los muchos tutoriales y tips que comparten, destacan algunos eBooks gratuitos que pretenden ser manuales de introducción rápida al desarrollo web: desde los fundamentos de lenguajes como HTML o CSS hasta lenguajes de programación de backend como PHP o Ruby. 

El eBook que les recomiendo hoy será particularmente útil a quienes pretenden iniciarse en el desarrollo web. Se titula "How to become a web developer?" y en tan sólo 15 paginas cubre temas como:

  • ¿Qué hace un desarrollador web?
  • Pasos para convertirse en un desarrollador web
  • "Dos and Don'ts" del desarrollo web
  • Tendencias actuales
Definitivamente es una lectura fundamental para quien desee convertirse en desarrollador web o para quien simplemente tiene la curiosidad de saber qué hace uno en realidad.

Pueden leer (y descargar) el PDF gratuito en este enlace, aunque vale la pena registrarse al newsletter de Web Code Geeks para recibir acceso a muchos otros eBooks gratis y a sus excelentes tutoriales y tips.




Enlaces:

Aprende a programar apps para Android... ¡gratis!


Gracias a Internet, hoy es más fácil que nunca adquirir nuevos conocimientos y habilidades: desde aprender a planchar una camisa (créanme, en YouTube hay tutoriales para hacerlo) hasta programar aplicaciones sencillas y complejas para dispositivos móviles.

Ahora, gracias a una alianza entre Google y Udacity, podemos aprender a programar aplicaciones para Android mediante el curso "Android development for beginners", el cual es totalmente gratuito, aunque ofrece la opción de obtener un título (y otros beneficios) si se paga una cuota mensual de 199 usd.



El curso ha sido desarrollado por gente de Google, por lo que los contenidos que obtendremos vienen directamente de la compañía origen del sistema operativo, lo que garantiza que aprenderemos contenidos muy pertinentes. Además, está diseñado para principiantes, por lo que requiere muy pocos conocimientos previos para poder iniciar a estudiarlo. Si aun así sienten que necesitan aprender los prerrequisitos más esenciales, Udacity también ofrece gratuitamente los cursos introductorios para prepararse mejor.



En México, el salario mensual promedio de un desarrollador de aplicaciones Android es de 24,000 pesos (segun el más reciente estudio de salarios de profesionales de IT en México de la revista Software Guru) mientras que en países como EU, el salario anual promedio ronda los 94,000 dólares. Bastante bien como motivación para animarse a entrarle a aprender esta tecnología que pareciera estar hasta en los calcetines.

Si se animan a tomar el curso con todo y certificación, pueden entrar en este enlace. Pero si lo suyo es tomar sólo las clases del curso completo de manera gratuita, entren por acá.



Enlaces:








lunes, 9 de noviembre de 2015

Aprende a programar con Star Wars



Code.org es una organización no lucrativa cuya misión es fomentar el aprendizaje de la programación por parte de niños de todo el mundo. A través de cursos sencillos e iniciativas como la "Hora del Código", los niños pueden aprender los conceptos básicos de programación de computadoras para que descubran que cualquiera puede aprender a programar de una manera fácil y divertida.

Grandes nombres de la tecnología han aportado recursos para que esta Code.org lleve a cabo su labor, entre los que se cuentan a Microsoft, Google o Facebook. Y ahora, Disney ha decidido colaborar también permitiendo el uso de los personajes de Star Wars, y en especial del droide BB8, para enseñar a los niños a programar. Vean la introducción del curso:



Sin duda esta interesante iniciativa servirá para interesar a cada vez más niños en el mundo de la programación de computadoras, un campo en constante crecimiento y que cada vez demanda más y más profesionales dedicados a tal labor.



Enlace: Code.org





jueves, 1 de octubre de 2015

Microsoft te enseña a crear aplicaciones universales para Windows 10 ¡gratis!


Si alguna vez han deseado iniciarse en el desarrollo de aplicaciones para Windows pero no tienen absolutamente ninguna experiencia, Microsoft les tiene una solución.

A través del blog de Windows, la compañía ha puesto a disposición de todo el que quiera aprender el curso llamado "Windows 10 development for absolute beginners". Como su nombre lo indica, el curso (proporcionado en inglés, por supuesto) va orientado a principiantes absolutos, aunque se asume que el participante tiene algún conocimiento básico del lenguaje C#. Ahora bien, si no cumplen con este prerrequisito no hay problema, pues también está disponible una serie de videos de entrenamiento en C# para principiantes absolutos.

El curso trata sobre la creación de apps Universales para Windows que pueden funcionar por igual tanto en PCs como en teléfonos, tablets e incluso dispositivos como el Xbox y los próximos HoloLens. El contenido se divide en dos partes. Primero el enfoque se centra en aprender las habilidades básicas para la creación de apps simples. Después, se centra en el desarrollo de cuatro apps completamente funcionales:
  • Un tablero para reproducir sonidos divertidos cuando se hace clic en un icono
  • Una aplicación para mostrar el clima con mapas incluidos
  • Un juego para reconocer portadas de discos
  • Una enciclopedia de personajes de Marvel (usando la API oficial de Marvel Comics) que incluye integración con Cortana.


Además, en las lecciones aprendemos desde la planeación y la codificación de una aplicación hasta la publicación de nuestra app en la Windows Store.

Esta es sin duda una gran oportunidad para aprender de manera gratuita los fundamentos del desarrollo de apps para Windows 10 y vale la pena aprovecharla.


Enlaces: 





miércoles, 27 de mayo de 2015

MalMath, app para resolver ecuaciones paso a paso


MalMath es una calculadora para Android que resuelve ecuaciones simples y complejas y nos entrega una explicación de la resolución paso a paso a fin de que podamos aprender el proceso a detalle.

La calculadora cuenta también con funciones de creación de gráficas y hasta un generador de ecuaciones para practicar, en el cual podemos definir el nivel de dificultad para ponernos retos cada vez más interesantes.



Los creadores insisten en que esta es una app destinada a ayudar en las tareas al mostrar desde el planteamiento del problema hasta su resolución detallada y los gráficos correspondientes a la solución. Aunque bien sabemos que habrá estudiantes que lo usen como "acordeón" para resolver rápidamente la tarea sin pensar en lo que están haciendo. 



Como toda herramienta, puede usarse para bien o para mal. Todo depende de la persona que la use.

Enlaces:



martes, 26 de mayo de 2015

Scratch, programación para los más pequeños



Son cada vez más los países del mundo que incluyen en sus programas escolares oficiales la enseñanza de la programación de computadoras como una materia obligatoria desde los niveles más básicos. Así como la enseñanza del inglés como segunda lengua va cobrando fuerza en los sistemas educativos, la programación de computadoras se va abriendo camino como una habilidad esencial para las nuevas generaciones, tan inmersas en la era digital.

Pero mientras esa realidad educativa se implementa en los programas de estudios oficiales de nuestro querido país (que, para como vamos, seguro faltará mucho), podemos encontrar muy buenas herramientas gratuitas con las que los más pequeños de la casa pueden aprender a programar computadoras desde edades muy tempranas.

Tal es el caso de Scratch, una aplicación para Android que facilita a los niños el aprendizaje de la programación mediante juegos y actividades didácticas muy divertidas. La interfaz de la aplicación es muy colorida y sencilla para que los niños se vean atraídos a usarla. Scratch cuenta con dos versiones: la normal y una llamada Scratch Jr, para niños de 5 años en delante. 



La aplicación incluye tutoriales, tests y muchísimos bloques de programación prediseñados, todo diseñado de un modo muy didáctico para que los pequeños aprendan una habilidad que seguramente les será muy útil en el futuro, sin importar cuál sea el campo de actividad en el que se desenvuelvan.

Si quieren instalar y probar Scratch, dense una vuelta por su sitio oficial o descarguen directamente la aplicación desde Google Play. También, si quieren encontrar buenos recursos y tutoriales para iniciar con Scratch, encontrarán un sitio muy completo dando clic aqui.


Enlaces:





viernes, 22 de mayo de 2015

Taller GRATUITO: Internet de las cosas


¿Sabían que actualmente hay más cosas conectadas a internet que personas en la misma situación? Teléfonos, televisiones, tablets, computadoras, automóviles, relojes y hasta refrigeradores y hornos de microondas: vivimos en un mundo de dispositivos conectados a internet que se comunican y transfieren información entre sí, muchas veces con poca o nula intervención humana. Este es el mundo del Internet de las Cosas (IoT, por sus siglas en inglés) y si quieren profundizar más en este concepto o en las grandes oportunidades de desarrollo que presenta, no se pierdan el taller gratuito sobre el tema que se va a impartir en dos partes el próximo Jueves 28 de mayo. 

El taller será totalmente online y GRATIS, gracias a Donweb, empresa de hosting que provee el contenido del taller a través de dos especialistas en el tema: el ingeniero español Enrique Romero, un referente en el Internet de las Cosas que desde hace años viene incorporando e investigando las nuevas tendencias tecnológicas y Matías Albalá, un joven emprendedor tecnológico con más de 10 años de experiencia desarrollando distintos proyectos que conectan el mundo electrónico con la web.

Nada más entren al sitio oficial del taller y regístrense. ¡Hay pocos lugares! ¡Aprovechen!


viernes, 10 de abril de 2015

Office Remote, para controlar presentaciones PowerPoint desde Android


No cabe duda que la gente de Microsoft sigue demostrando que quiere aterrizar sus productos en todas las plataformas posibles (poniéndole, al fin, un punto final a su molesto exclusivismo de años pasados), pues ahora, además de las apps de Office, Outlook y muchas otras que ha publicado para Android, los de Redmond nos traen Office Remote, una aplicación que sirve no sólo para controlar nuestras diapositivas de forma remota desde nuestro celular Android, sino que también nos permite movernos en archivos de Excel y navegar documentos de Word.



Para hacerlo, sólo hay que descargar e instalar dos cositas: la aplicación de Google Play en nuestro dispositivo Android y un programita para nuestra computadora con Windows y Office (de momento sólo funciona con la versión 2013). Una vez instalados, basta con que emparejemos el teléfono y la computadora mediante una conexión Bluetooth y listo, podemos empezar a manejar Office desde nuestro Android.

El cambio de rumbo de Microsoft esta resultando bastante beneficioso para nosotros los usuarios; de eso no me cabe duda.

Enlaces:
 - Office Remote en Google Play
 - Complemento para Windows

miércoles, 8 de abril de 2015

GoConqr, excelente plataforma para maestros y alumnos


GoConqr es una plataforma para ayudar a profesores y estudiantes a mantener control sobre las asignaturas que imparten y estudian respectivamente. 

Su servicio es gratuito, nos permite gestionar de 1 a 3 asignaturas distintas y cuenta entre sus funcionalidades:
  • Una aplicación para iOS y Android para crear y visualizar nuestros contenidos.
  • Creación de mapas mentales.
  • Organizar nuestra información rápida en fichas con texto, imágenes, enlaces, etc.
  • Creación de tests de distintas clases.
  • Escritura de apuntes integrando texto, imágenes, mapas mentales, fichas de información, videos, enlaces y otros recursos.

Una herramienta muy útil para gestionar nuestro aprendizaje, independientemente de si somos estudiantes escolares o autodidactas.



Enlace: GoConqr


Pexels Videos, videos gratis para tus proyectos

videos.pexels.com
Hace unas semanas les compartía un enlace a PNGimg.com. un sitio que nos permite descargar cientos de imágenes sin fondo libres de derechos y gratuitas para usar libremente.

Ahora toca el turno a Pexels Videos, un sitio en el que podemos encontrar una amplia colección de videos libres de derechos para usar en nuestros proyectos. Ya sea para fondos de aplicaciones, banners o videos promocionales, los videos de Pexels Videos pueden resultarnos bastante útiles.

Los videos en el sitio se encuentran categorizados para encontrarlos más fácilmente y podemos descargarlos sin necesidad de registrarnos en el sitio. Lo único malo es que, de momento, el sitio no cuenta con un buscador, por lo que nos tocará echarnos un clavado a las distintas categorías para encontrar lo que buscamos.

Échenle un ojo a Pexels Videos y guárdenlo en sus favoritos. Uno nunca sabe cuándo le va a resultar útil.


Enlace: Pexels Videos



martes, 7 de abril de 2015

Cinco herramientas online para crear 'mockups' gratis

Una de las primeras tareas que tenemos que emprender al momento de desarrollar una aplicación es pensar en cómo se va a ver su interfaz una vez que la hayamos implementado. Esto implica imaginar dónde estarán los menús de opciones o de navegación, qué apariencia tendrán las ventanas, qué botones vamos a incluir y dónde van a estar ubicados, etc. Esta tarea es importante porque nos sirve como guía al momento de diseñar nuestra aplicación real, ya sea en un programa para edición gráfica o escribiendo el código que le dará forma.

Ejemplo de 'mockup' para una página web

Para poder definir la interfaz de una aplicación podemos usar lo que en la jerga informática se conoce como un 'mockup'. Un 'mockup' (bosquejo) es básicamente el 'esqueleto' de una aplicación o una página web. Es el modelo a seguir cuando estemos desarrollando nuestra aplicación real. La forma más sencilla de hacerlos es tomando lápiz y papel y dibujando lo que será la interfaz que hemos imaginado. Pero si son de los que  prefieren usar herramientas en la computadora para diseñar sus mockups más rápido y fácil, deben saber que existen varios servicios en la web que nos permiten diseñar prototipos de manera sencilla y gratuita. 

Estos son algunos de los más conocidos:

Frame Box

Muy sencilla, pero suficiente para crear la estructura general de un sitio o aplicación sin mayores complicaciones.

Wireframe.cc

Similar a la anterior, pero esta incluye un look más moderno y minimalista, además de soportar mockups para tablets y smpartphones, de modo que podamos ver cómo luciría nuestra aplicación en cualquiera de estos dispositivos.


iPhone Mockup


Como su nombre lo indica, nos permite diseñar interfaces destinadas a dispositivos móviles, particularmente los de Apple, aunque la interfaz que diseñemos puede pensarse para cualquier otra clase de dispositivo móvil. Posee además otra característica curiosa: nos permite elegir cómo queremos diseñar nuestro bosquejo, en modo lápiz (como si lo hiciéramos a mano) o en modo ilustración.

MockFlow


Este es famoso porque posee una aplicación para PC que puede descargarse e instalarse para usarla aunque no tengamos conexión a internet. Permite crear mockups de forma colaborativa. Es de paga pero en su versión gratuita soporta un sólo proyecto, lo cual puede ser suficiente para cuando nos enfocamos a desarrollar una sola aplicación a la vez.

moqups


Este es el que yo prefiero. Es similar a los anteriores, pues nos permite crear mockups muy variados y también es gratuito, aunque en su versión de paga nos ofrece muchas más funcionalidades interesantes.

¿Conocen alguna otra herramienta para crear mockups gratis? Déjenmelo saber en los comentarios.

TechMeAbroad, para encontrar ofertas de trabajo en TI en el extranjero



¿Les gustaría emprender la aventura de trabajar como profesional de TI en el extranjero pero no saben ni por dónde empezar a buscar ofertas de trabajo? Ya no batallen, con TechMeAbroad es ahora más fácil encontrar ofertas laborales en el área de TI en distintas partes del mundo.

Buscar opciones laborales puede ser engorroso usando sitios como OCC o LinkedIn, por lo que TechMeAbroad busca facilitar mucho las cosas en ese sentido. En la plataforma podemos ver concentradas las ofertas de trabajo de distintas empresas de todo el mundo, las cuales están dispuestas a pagar por el talento que pretenden atraer de donde sea que esté ubicado.

Las empresas que publican sus ofertas también están dispuestas a patrocinar todos los trámites de visa que sean necesarios e incluso dan apoyos para el traslado y la manutención inicial en el país al que se mude el candidato.

Es interesante notar lo que resalta Julien Barbie, creador de la plataforma: él dice que las compañías estadounidenses tratar de contratar a los propios estadounidenses, aunque la realidad es que existe más de medio millón de vacantes en los Estados Unidos que no se están cubriendo por falta de talento, de modo que hay que poner las miras al talento de otros países para cubrir dichas vacantes. Obviamente, la plataforma no ofrece sólo ofertas de compañías tecnológicas de los Estados Unidos, ya que también hay ofertas de compañías de otros países.

Sin duda vale la pena echarle un ojo a las distintas opciones de chamba en otras latitudes, ¿no creen?



Fuente: Blog.

viernes, 27 de marzo de 2015

SMART kapp, el pizarrón inteligente definitivo

Uno de esos pequeños problemitas cotidianos a los que se enfrenta cualquier maestro en clase es el de tener que esperar unos minutos durante la clase para que los alumnos copien las notas que escribió en el pizarrón para explicar algún tema. Esto, por supuesto, acarrea algunos inconvenientes como la pérdida de tiempo efectivo de clase, la pérdida del ritmo de la sesión o que los alumnos copien mal algún detalle de la clase en sus cuadernos de notas.

Todo eso puede resolverse con SMART kapp, un pizarrón inteligente presentado en la más reciente edición del CES Las Vegas



Todo lo que se escribe en el SMART kapp se transfiere automáticamente y en tiempo real a los smartphones o tablets de los alumnos, no sólo a quienes estén presentes en el salón de clase sino aún a quienes estén atendiendo la clase de manera remota; esto es gracias a la aplicación que acompaña al dispositivo, la cual se encuentra disponible para iOS y Android. Por si fuera poco, las notas creadas son respaldadas automáticamente en sitios de almacenamiento en línea como Dropbox o Google Drive para poder acceder a ellas en cualquier momento. Y no sólo eso, sino que no se requiere usar ninguna clase de plumón especial, pues funciona con la misma clase de marcadores que se emplean en los pizarrones regulares.

Chequen el video para que conozcan las fenomenales características de este dispositivo:



El pizarrón SMART kapp ya está a la venta en dos tamaños: 42 y 84 pulgadas, con precios de $899 y $999 dólares respectivamente, aunque por ahora su venta está limitada a ciertos países (México de momento NO está incluido, lamentablemente, aunque seguramente pronto lo estará).

¿Qué opinan sobre este dispositivo? ¿qué ventajas y desventajas ven en su aplicación?


Enlace: SMART kapp



Otra forma de compartir enlaces personalizados en Facebook

En un artículo anterior les mostré la forma en que se puede forzar a que Facebook aplique una determinada apariencia a un enlace que se comparta en esa red social. Esa forma requiere acceso al código fuente del sitio que estamos tratando de compartir y funciona bien para compartir sitios propios (como mi blog, por ejemplo). 

Pero, ¿qué pasa si se desea compartir, por ejemplo, un artículo de otro sitio web, una noticia o algún video de YouTube? En esos casos no tenemos ningún control sobre la apariencia del enlace que Facebook muestra dado que no tenemos acceso al código fuente de dicho enlace.

Sin embargo, para resolver ese problemita, podemos usar una muy sencilla herramienta gratuita: PostWithPicture. En este sitio podemos definir el título, la descripción y la imagen que se mostrarán cuando compartimos un enlace en Facebook o en Google+. En el caso de la imagen, podemos elegir una directamente de nuestra computadora, lo cual nos da todavía más libertad al momento de personalizar nuestros enlaces.



Sin duda una muy buena herramienta que más de una vez nos permitirá compartir enlaces en nuestras redes sociales favoritas dándoles nuestro toque personal.


Enlace: PostWithPicture.

jueves, 26 de marzo de 2015

Cientos de imágenes sin fondo listas para usar ¡gratis!

Cuando se trata de editar una foto para usar en alguna composición o en algún gráfico para la web, una de las tareas más tediosas es la de remover el fondo para usar sólo el objeto que nos interesa. 

Pues bueno, gracias a PNGimg.com ya no tenemos que trabajar tanto, pues el sitio nos ofrece una muy amplia y variada colección de imágenes sin fondo en formato PNG listas para descargar y usar en nuestros proyectos. Hay imágenes de muchísimos objetos diferentes y afortunadamente se encuentran categorizadas para encontrarlas facilmente.

Sin duda un gran sitio digno de tenerse en favoritos para sacarnos de más de un apuro.





Enlace: PNGimg.com

miércoles, 25 de marzo de 2015

Personalizar un enlace compartido en Facebook

Cuando intentaba compartir un enlace a este blog en mi cuenta personal de Facebook me di cuenta de un detalle bastante molesto. Cada que intentaba compartir la URL principal del blog (www.israelcapetillo.com), Facebook elegía una imagen al azar, tomada de cualquiera de los posts, como imagen del enlace a compartir en la red social. Y no sólo eso, sino que también el título y la descripción parecían tomados al azar. Algo asi:

Clic para agrandar

Como ven, al momento de intentar compartir el enlace en Facebook, se elige una imagen al azar (en este caso, de un post algo antiguo) y la descripción que se encuentra en el área de suscripción del blog. Eso me molestaba bastante y yo, perfeccionista y obsesivo como soy, me dispuse a buscarle alguna solución. Esta es la manera de personalizar la apariencia de un enlace compartido en Facebook:

1) Revisar el modo en que Facebook "ve" el HTML de nuestro sitio. Esto es importante porque de ahi es de donde Facebook toma la información que se presentará en la publicación al momento de compartir un enlace. Eso podemos revisarlo en la herramienta "Object Debugger" de Facebook. En ella, sólo basta con introducir la URL del sitio que queremos compartir para que podamos ver la información que Facebook obtiene al analizar el HTML de la misma. En el caso de mi blog, se veía algo asi:

Clic para agrandar

Como pueden ver, hay algunas propiedades (todas las que inician con "og") que no estaban bien definidas, por lo que Facebook infiere la información óptima para compartir. Si observan con cuidado, verán que en el caso de la imagen elige una entre muchas disponibles, pero ninguna que me convenciera. Igualmente en la descripción: Facebook trajo el texto que le parecó más adecuado.

Pero eso se puede corregir si modificamos un poco el HTML de nuestro sitio. Lo cual nos lleva al siguiente paso.

2) Incluir etiquetas en la cabecera (<head></head>) de nuestro HTML que incluyan la información personalizada que deseamos mostrar cuando se comparta nuestro enlace. Estas etiquetas son:

<meta property="og:url" content="tu_URL_personalizada" />
<meta property="og:title" content="tu_titulo_personalizado" />
<meta property="og:description" content="tu_descripcion" />
<meta property="og:image" content="tu_imagen" />

La primera le dirá a Facebook la URL del sitio que estamos compartiendo, la segunda el título del enlace que debe compartir; la tercera le indica nuestra descripción personalizada y la cuarta le especifica la imagen que debe usar en el enlace compartido. En mi caso, decidí incluir esta información:

<meta content='http://www.israelcapetillo.com' property='og:url'/>
<meta content='IsraelCapetillo.com' property='og:title'/>
<meta content='Mi blog personal donde comparto temas relacionados con mi pasión: el desarrollo de software. Además ¡cursos gratis!' property='og:description'/>
<meta content='http://www.estudioiq.com/images/Big_greenSticker.png' property='og:image'/>

Una vez que incluí estas etiquetas en mi código, volví a ejecutar el Object Debugger de Facebook y esta es la información que la herramienta pudo detectar sobre mi sitio:

Clic para agrandar
Ahora si, ya puedo ver la URL, título, imagen y descripción que yo decido que se muestre. Ahora, si quiero compartir mi blog en Facebook, esto es lo que veo:

Clic para agrandar

¡Qué cambio! Asi que ya lo saben, la próxima vez que deseen compartir un enlace más personalizado en Facebook, lograrlo es bastante sencillo y no les lleva más que un par de minutos hacerlo.


martes, 24 de marzo de 2015

Desarrollo de software ¡sin instalar nada!

Una de las tareas más tediosas a la hora de desarrollar software es la preparación del entorno de desarrollo que vamos a utilizar. Dependiendo de tipo de desarrollo que vayamos a hacer, esto puede ser desde muy simple (como en el caso de HTML-CSS-JavaScript) hasta más complicado y tedioso (como el desarrollo con Java). Sin embargo, gracias al desarrollo de los servicios PaaS (Platform as a Service) hoy podemos evitarnos todo ese trabajo previo de modo que podamos enfocarnos en escribir y probar nuestro código al instante.



Esto es gracias a la existencia de algunos sitios que nos proveen de todas las herramientas para escribir y probar nuestro código de modo gratuito (en la mayoría de los casos) y además accesible desde cualquier computadora.

Estas plataformas incluyen editores de código, compiladores, debuggers, servidores de prueba y muchas otras herramientas que nos permiten desarrollar software rápido y sin preocuparnos de tener que instalar y configurar mil y una herramientas antes de poder escribir código.

Algunas de las grandes ventajas de este tipo de herramientas son:

  • No necesitas configurar nada. Con simplemente crear una cuenta de usuario ya contamos con un servidor de desarrollo listo para usar con los lenguajes de programación más habituales.
  • Probar en un entorno más realista, dado que nunca será lo mismo probar en un "localhost" en mi computadora que en un ambiente más similar a lo que sería un entorno de producción.
  • Trabajo en equipo. En estas herramientas usualmente podemos compartir un proyecto con otros miembros de modo que todos trabajen en el mismo proyecto y con el mismo código.
  • Trabajar desde cualquier computadora, con el único requisito de contar con una conexión a internet y un navegador.
Algunas de las herramientas más populares y que pueden empezar a probar desde ya son:

JSFiddle - para escribir pequeños "snippets" o bloques de código rápido incluyendo HTML, CSS y JavaScript así como una gran variedad de librerías externas para probar de manera más eficaz.




.NET Fiddle - para escribir desde snippets hasta programas completos en lenguajes de programación de la plataforma .NET, como C#, Visual Basic o F#




Codeanywhere - una potente herramienta para desarrollo web totalmente en línea que nos permite trabajar con lenguajes como HTML, CSS, JavaScript, PHP, Ruby, Python, C++ y una gran variedad de frameworks adicionales. Cuenta también con apps para Android e iOS para desarrollar desde aún más dispositivos y en cualquier lugar.




Cloud9 - similar a Codeanywhere, también nos permite conectarnos a nuestras cuentas de Dropbox, Google Drive o a algún servidor FTP para almacenar y editar nuestros archivos.




Codenvy - similar e igualmente potente que los dos anteriores.




Como ven, la oferta de herramientas para desarrollo desde la web son muchas y muy variadas. Asi que ya saben, si desean empezar a desarrollar software sin la tediosa tarea de tener que configurar un entorno de desarrollo, creen una cuenta en alguno de los servicios presentados y ¡empiecen a probar!

viernes, 23 de enero de 2015

Visualizar fotos de Instagram en Twitter... ¡otra vez!



En Diciembre de 2012 Twitter decidió que no podríamos ver cualquier foto compartida en Instagram directamente en nuestro timeline; en su lugar, sólo nos dejó con un aburrido link simplón para irnos a verla al sitio de Instagram, cosa que en lo particular me parece bastante molesto.

Sin embargo, gracias a una extensión gratuita para Chrome, hoy podemos deshacernos de ese problemita. InstaTwitt es una extensión para el navegador de Google que nos permite recuperar la visibilidad de las fotos de Instagram directamente en nuestro feed de Twitter, sin necesidad de saltar a otro sitio. 

Asi que si quieren volver a ver selfies de celebridades, fotos de comida o videos de gatitos de Instagram en si Twitter, ya saben cómo resolver el problema.

Pueden instalar la extensión si hacen clic acá.

viernes, 16 de enero de 2015

SnapLock, una genial pantalla de bloqueo para Android


Get it on Google PlayUna de las cosas que me encantan de Android es su capacidad de personalización. Siempre estoy buscando apps que hagan que mi terminal se vea elegante y que a la vez siga siendo práctico y fácil de usar. Fue en esa búsqueda que me topé con SnapLock, una app para reemplazar la pantalla de bloqueo por default de Android por una totalmente personalizable.

Para empezar, el usuario puede seleccionar sus propios accesos directos a las aplicaciones más frecuentes para que aparezcan en la pantalla de bloqueo. Pero también, posee una funcionalidad que coloca accesos a las aplicaciones más utilizadas. Para abrir una aplicación basta con deslizar el dedo mientras está sobre el ícono correspondiente.

Además, muestra las notificaciones en la pantalla de modo que podemos ya sea ignorarlas (deslizándolas a la izquierda) o acceder a ellas (deslizándolas a la derecha)

Finalmente, la app cuenta con un conjunto de wallpapers para personalizarla o podemos elegir conservar el wallpaper de nuestro teléfono en su lugar.

Lo que realmente me convenció de esta aplicación es el hecho de que me permite controlar mi reproductor musical (yo uso PowerAmp) desde la misma pantalla de bloqueo, cosa que muy pocas aplicaciones permiten.

Estas son algunas otras de sus características:

  1. Las alertas de nuestras aplicaciones favoritas aparecen inmediatamente en SnapLock.
  2. SnapLock aprende cuáles son las apps que más usamos y coloca accesos directos automáticamente en la pantalla de bloqueo para abrirlas más rápidamente.
  3. Podemos cambiar el wallpaper a nuestro gusto.
  4. Está diseñada pensando en las versiones más recientes de Android, por lo que la experiencia de uso se ve potenciada.
  5. La app es completamente gratuita y no tiene ni publicidad y compras In-App, lo cual se agradece bastante.


La app está disponible en la Play Store y pueden acceder a ella haciendo clic aqui.





Copyright © Mi rincón del código Compartido por Gooyaabi Templates | Powered By Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com