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á.

lunes, 19 de enero de 2015

¿Qué lenguaje de programación me conviene aprender?


Una de las preguntas más frecuentes que tienen aquéllos que desean iniciarse por primera vez en el mundo de la programación es: "¿Qué lenguaje de programación me conviene aprender?". Esta es una simple y muy buena pregunta que, sin embargo, no tiene una respuesta sencilla. Esto es debido a que existen muchas variables a considerar en la elección de un lenguaje de programación para iniciarse en este mundillo. A pesar de ello, es posible emitir algunas recomendaciones y principios a seguir para hacer esta importante elección.

Antes de revisar las recomendaciones, debemos tener en cuenta que, no importa cuál lenguaje se escoja para empezar, el primero siempre será el más complicado de aprender. Una vez que se aprende y domina un lenguaje, aprender el segundo es mucho más fácil, dado que en general se aplican los mismos principios e incluso existen lenguajes con sintaxis muy parecidas (como C# y Java), por lo que dar el salto es más sencillo. 

Programa que muestra en pantalla la frase "Hello, World!" en Java y C#. Sus sintaxis son muy similares.

¿Por qué quieres programar?

La primera pregunta que debemos hacernos es: ¿por qué queremos aprender a programar?. Y es que la gran variedad de lenguajes de programación que existen suelen clasificarse según la clase de aplicaciones que se desea desarrollar. En ese sentido, la gente de Dev/Code/Hack ha dividido los diferentes lenguajes y tecnologías según el área a la cual nos queramos dedicar:


Área de desarrollo Lenguajes y tecnologías
Desarrollo de back-end y aplicaciones del lado del servidor Python, Rubyy, PHP, Java o .Net (C# o Visual Basic). Conocimientos de bases de datos y posiblemente de administración de sistemas.
Desarrollo de front-end y aplicaciones del lado del cliente HTML, CSS, Javascript. Posiblemente sean necesarios conocimientos de diseño.
Desarrollo de aplicaciones móviles Objective C o Java (para Android). HTTML / CSS para sitios web móviles. Posibles conocimientos sobre servidores.
Desarrollo de videojuegos C/C++, OpenGL, Animación. Es recomendable tener buenas dosis de conocimientos de diseño y artísticos.


Este lenguaje sí me gusta, matarile-rile-ro...

Un segundo punto a considerar, por muy trivial que pueda parecer, es el gusto personal. Esto tal vez tenga más sentido luego de conocer al menos los fundamentos de más de un lenguaje de programación para tener los elementos para definir un gusto particular. Sin embargo, es bueno tener en cuenta que es importante que nuestro gusto juegue un papel determinante en la elección de un lenguaje porque a fin de cuentas la programación debe ser una actividad que, dentro de todo, nos divierta y nos distraiga.

¿Java o C#?

Dos lenguajes que suelen dividir mucho el gusto y la preferencia de los programadores son C# (parte de la iniciativa .NET de Microsoft) y Java (de Oracle). Cada lenguaje tiene sus pros y sus contras, sus defensores y sus detractores. La verdad es que no importa cuál de los dos decidamos elegir (porque a fin de cuentas son muy parecidos en su sintaxis y sus principios generales), la clave es aprender al menos uno de los dos. Después de echar un vistazo general a ambas plataformas, es importante elegir el que uno siente que más le gusta. En lo personal, yo voy por el lado de C#.

Para empezar

Si se tratara de elegir un lenguaje por su potencial para darnos más herramientas a la hora de aprender nuevos lenguajes de programación, entonces JavaScript es el candidato ideal. Esto es debido a una variedad de razones, entre las que podrían listarse:

* No se necesitan muchas herramientas adicionales para programar. Basta con tener un programa editor de textos simple (como Notepad de Windows) y un navegador web instalado (como Chrome o Firefox).
* Muchos de los principios de sintaxis de JavaScript son aplicables a otros lenguajes de programación.
* Los resultados de lo que se programa en JS son rápidamente visibles, por lo que podemos probar nuestras aplicaciones de una manera rápida y sencilla.
* Aprender JS nos abre el camino para desarrollar aplicaciones para las dos grandes plataformas dominantes en la actualidad: la web y los dispositivos móviles.

Desarrollo para móviles.

Otro punto importante a considerar es la tendencia actual del uso de dispositivos. Es bien sabido que con la llegada de smartphones y tablets cada vez más potentes, el uso de dispositivos de escritorio (e incluso de laptops) va en picada y esta es una tendencia que no va a disminuir en el futuro próximo. Por eso es importante que dentro de nuestro arsenal consideremos poseer conocimientos, aunque sea básicos, del desarrollo de aplicaciones móviles para las dos grandes plataformas del mercado: Android e iOS.

Y entonces, ¿cómo empiezo?
Hemos dicho que lo recomendable es aprender tres cosas fundamentales para iniciarse en la programación:
* Javascript
* Java o C#
* Desarrollo para dispositivos móviles

Existen dos rutas para lograr abarcar estos tres requisitos al mismo tiempo. Una de ellas es aprender primero Javascript, luego dar el salto a Java y entonces orientarlo a la programación para Android. La otra ruta es comenzar por Javascript, luego dar el salto a C# y de ahi orientarse al desarrollo de aplicaciones móviles mediante plataformas como Xamarin, la cual permite desarrollar aplicaciones móviles para Android e iOS usado C# como lenguaje de programación.

Algunos últimos consejos

* No importa cuál sea la ruta que decidamos seguir, lo importante es comenzar y no parar.
* Para comenzar a programar, es importante embarcarse en un proyecto pequeño, que pueda completarse en 1 o 2 semanas como máximo.
* Hay que ponerse metas cortas, de modo que podamos ir obteniendo pequeñas victorias que nos mantengan motivados a continuar.

¿Ya decidieron comenzar a programar? Lo mejor que pueden hacer es poner manos a la obra echando mano de los múltiples recursos que existen en línea. 

No aprende el que no quiere.

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.





miércoles, 14 de enero de 2015

Los 10 libros que todo programador debe leer



Hace un par de años, a los usuarios de StackOverflow se les hizo una pregunta simple y peculiar:

"Si pudieras volver en el tiempo y decirte a ti mismo que leas un libro en especifico al comienzo de tu carrera como programador, ¿qué libro sería?"

Hubo muchas y muy diversas respuestas, pero de todos los libros recomendados, estos son los principales 10 que, según la comunidad de desarrolladores, todo programador debería leer:

1.- Code Complete (2nd Edition)
By Steve McConnell
Published: July 7, 2004
Publisher: Microsoft Press
Amazon Link: here

2.- The Pragmatic Programmer: From Journeyman to Master
By Andrew Hunt and David Thomas
Published: October 30, 1999
Publisher: Addison-Wesley Professional
Amazon Link: here

3.- Structure and Interpretation of Computer Programs, Second Edition
By Harold Abelson, Gerald J Sussman and Julie Sussman
Published: August 1, 1996
Publisher: McGraw-Hill Science/Engineering/Math
Amazon Link: here

4.- The C Programming Language (2nd Edition)
By Brian W Kernighan and Dennis M Ritchie
Published: April 1, 1988
Publisher: Prentice Hall
Amazon Link: here

5.- Introduction to Algorithms
By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Published: July 31, 2009
Publisher: The MIT Press
Amazon Link: here

6.- Refactoring: Improving the Design of Existing Code
By Martin Fowler, Kent Beck, John Brant and William Opdyke
Published: July 8, 1999
Publisher: Addison-Wesley Professional
Amazon Link: here

7.- Design Patterns: Elements of Reusable Object-Oriented Software
By Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides (Also known as “The Gang of Four“)
Published: November 10, 1994
Publisher: Addison-Wesley Professional
Amazon Link: here

8- The Mythical Man-Month: Essays on Software Engineering
By Frederick P. Brooks
Published: August 12, 1995
Publisher: Addison-Wesley Professional
Amazon Link: here

9.- Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)
By Donald E. Knuth
Published: July 17, 1997
Publisher: Addison-Wesley Professional
Amazon Link: here

10.- Compilers: Principles, Techniques, and Tools (2nd Edition)
By Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman
Published: September 10, 2006
Publisher: Prentice Hall
Amazon Link: here

Error 'JavaScript runtime error: Invalid character' de IE y su solución

En ocasiones, al desarrollar una aplicación Web que incluye el uso de algunos scripts externos de Javascript que manejan JSON como su formato de intercambio de datos (como el caso del framework ExtJS), Internet Explorer puede presentar el error de que hay algún caracter inválido en alguna de las funciones que se encargan de hacer el cambio a JSON o simplemente en "caracter: 1, línea: 1" de alguno de los scripts. Algo como esto, por ejemplo:



Es cierto que el problema puede venir de muchas fuentes -vaya, incluso puede que realmente nuestro script tenga algún error o el formato del JSON que estamos tratando de procesar sea realmente inválido. Pero si esas opciones ya están revisadas y descartadas, hay que echar un ojo a la configuración de IIS de la máquina donde estamos tratando de correr nuestro sitio web. En particular a la configuración de los tipos MIME.

Si nuestra instancia de IIS no posee una definición para el tipo ".json", le será imposible procesar adecuadamente cualquier petición que incluya dicho tipo, por lo que la solución es agregar el tipo de forma manual. Estos son los pasos a seguir:

  1. Ir a Panel de Control > Herramientas Administrativas  > Administrador de Internet Information Services (IIS).
  2. Buscar el icono de "Tipos MIME" en la ventana principal y hacer doble clic en él.
  3. Hacer clic en "Añadir", en la barra de la derecha.
  4. Escribir ".json" en la Extensión y "application/json" en el tipo.
  5. Hacer clic en OK para agregar el tipo.
  6. Regresar al sitio web y actualizar.


Ojalá sea de utilidad para alguien por ahi.

martes, 13 de enero de 2015

Orígenes I: Parteaguas en la historia de las computadoras



Computadoras. Estos días parecen estar en todos lados. Desde las grandes computadoras que controlan prácticamente todas las transacciones financieras o las comunicaciones del mundo hasta la computadora que traemos cargando todos los días a la que solemos llamar teléfono, las computadoras nos abruman con su evidente omnipresencia. Tanto nos hemos acostumbrado a la tecnología que recordar esas tareas "analógicas" que antes realizábamos de manera cotidiana ahora nos parece algo hilarante: enviar una carta por correo, tener que ir hasta el banco a realizar una transacción, leer noticias en el periódico, rentar una película, comprar un casette, usar las hojitas correctoras para desaparecer esa letra que pusimos de más al hacer la tarea en la máquina de escribir... todas estas son tareas que hoy podemos realizar de un modo mucho más sencillo con un dispositivo que nos cabe en la palma de la mano. Una potente y multifuncional computadora.

Pero claro, esto no siempre ha sido así. Hoy disfrutamos los resultados de varias décadas de investigaciones, desarrollos y descubrimientos (algunos accidentales) que han ido dando forma a la computadora (en todas sus variedades) como la conocemos hoy en día.

Esta es la primera de una serie de publicaciones en las que pretendo compartir con ustedes los principales momentos en la historia de la computación. ¿Y por qué revisar esta historia de nuevo? por una simple razón: saber que cada uno de nosotros es capaz de realizar grandes hazañas si tenemos la misma dedicación que aquellos que nos legaron este dispositivo que hoy es parte indiscutible de nuestra vida: la computadora.

En esta ocasión les presento esta útil infografía que resume (en inglés) los avances más importantes en la historia de la computación. ¡Disfruten!


A Comprehensive History of Computers - Infographic
http://www.testking.com/techking/infographics/a-comprehensive-history-of-computers-infographic/
Testking = http://www.testking.com/ Techking = http://www.testking.com/techking/

El patrón MVC



Model View Controller o MVC, como popularmente se conoce, es un patrón de diseño de software para el desarrollo de aplicaciones web. El patrón MVC se conforma de los siguientes elementos:

  • Modelo: El nivel más bajo del patrón, que es responsable de mantener los datos.
  • Vista: Es responsable de mostrar todos o una parte de los datos al usuario.
  • Controlador: Código que controla las interacciones entre el modelo y la vista.

MVC es popular dado que aísla la lógca de la aplicación de la capa de interfaz de usuario y esto permite una mejor separación de tareas. El Controlador recibe todas las peticiones a la aplicación y entonces trabaja en conjunto con el Modelo para preparar los datos requeridos por la Vista. Ésta entonces usa los datos que le son proporcionados por el controlador para generar una respuesta final que le presenta al usuario. La abstracción de MVC puede ser representada gráficamente como se muestra a continuación.

Copyright © IsraelCapetillo.com - Un blog de tecnología, noticias geek y más Compartido por Gooyaabi Templates | Powered By Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com