martes, 13 de diciembre de 2016

Usa Libib para organizar tu colección de libros


Tengo un problema que me encanta: soy adicto a los libros. Cada que veo un libro interesante lo compro y lo agrego a mi colección para leerlo ya sea en seguida o en un momento posterior. Sin embargo, con el crecimiento de mi colección viene otro problema: empiezo a perderle la pista a los libros que tengo.

Buscando alguna solución para ponerle orden a mi biblioteca personal, me encontré con Libib, un fantástico servicio online gratuito que permite organizar colecciones personales no sólo de libros, sino también de música, películas o videojuegos. 

Con Libib podemos crear colecciones de libros e incluir en cada colección todos los títulos que tenemos disponibles; para agregar un título, sólo basta introducir su ISBN para que se haga la búsqueda en la base de datos del servicio y con eso nuestro libro queda añadido a la colección. Luego podemos visualizar todos los libros de nuestra colección en orden alfabético ya sea con o sin detalles.


Para cada uno de los títulos de nuestra colección, contamos con una serie de opciones adicionales como escribir una reseña, calificar su contenido, indicar cuántas copias poseemos, añadir notas, etiquetas y mucho más.


Y eso no es todo, pues Libib cuenta con su propia aplicación para Android e iOS con la cual podemos organizar nuestra colección e incluso nos permite añadir libros con sólo escanear el código de barras que contiene el ISBN de nuestro libro. ¡Es muy sencillo!

El servicio de Libib es totalmente gratuito, aunque cuenta con una versión de paga que nos permite crear más librerías así como usar algunas funciones adicionales.

Definitivamente encontré en Libib justo la herramienta que estaba buscando. Espero que de ahora en adelante sea mucho más sencillo mantener orden en mi biblioteca personal. ¡Vale la pena probarlo!








jueves, 1 de diciembre de 2016

La Navidad de las Máquinas



Dos investigadores de la Universidad de Toronto que trabajan en una red neuronal de aprendizaje que interpreta imágenes un día se preguntaron cómo reaccionaría su plataforma a la música, por lo que la "alimentaron" con más de 100 horas de música pop y luego le pidieron que compusiera una canción basándose en la imagen de un árbol de navidad.

El resultado fue el primer villancico creado por una inteligencia artificial y suena absolutamente escalofriante, escuchen:


Neural Story Singing Christmas from Hang Chu on Vimeo.


Los investigadores aclaran que la computadora no sabe de música y por lo tanto la "canción" puede no tener tanto sentido ni estética musical, pero sin duda es un interesante ejercicio que demuestra el potencial de la inteligencia artificial aplicada a las artes. Imaginen que esta tecnología fuera aplicada a algún servicio de música como Pandora o Spotify para que dichas aplicaciones crearan canciones específicas para cada usuario según alguna fotografía que el mismo coloque en la plataforma. Sería una aplicación por demás interesante.



Fuente: MI-PRO

lunes, 28 de noviembre de 2016

Los cómics podrían salvarnos de la Rebelión de las Máquinas...



Es verdaderamente sorprendente (y completamente terrorífico) lo que la Inteligencia Artifical puede hacer en nuestros días: desde crear su propio algoritmo de cifrado que nadie puede descifrar o crear verdaderas Máquinas de Pesadillas hasta predecir quién es un criminal en potencia con base en sus rasgos faciales. Todos estos avances son impresionantes y, a pesar de su utilidad, podrían representar un grave (y muy real) peligro para la humanidad. Incluso el filósofo y neurocientífico Sam Harris (al igual que muchos otros especialistas del tema) ha advertido que debemos buscar pronto un modo de protegernos de la amenaza de una Inteligencia Artificial que se salga del control de la humanidad y comience a tomar acciones por sí misma que podrían conducir a nuestra aniquilación. Suena a ciencia ficción, pero el peligro es MUY real.



Afortunadamente, un curioso experimento llevado a cabo por un grupo de investigadores de la Universidad de Maryland podría arrojar una forma de defensa ante tal amenaza: descubrieron que una Inteligencia Artificial no puede entender el lenguaje visual de los cómics.

Para dicho experimento, los investigadores alimentaron a la I.A. con más de 1.2 millones de viñetas de la galería de imágenes del Digital Comics Museum y descubrieron que era extremadamente difícil que la I.A. pudiera predecir la imagen o texto de un personaje en un cómic que no hubiera analizado antes. La razón de ello es que los humanos comprendemos el complejo lenguaje formado por las secuencias de imágenes y textos de un modo que una I.A. (todavía) no puede comprender. En palabras de los propios investigadores:

Ninguna de las arquitecturas de IA ha logrado superar a los seres humanos en la tarea asignada, lo que dice mucho de la complejidad de los cómics. Los rasgos aprendidos de otras historietas no logran capturar la enorme variación de estilos de dibujo, y los modelos de interpretación de texto se ven incapaces de procesar la riqueza y ambigüedad de un lenguaje coloquial que además depende completamente del contexto visual.



Aún cuando seguramente en el futuro podría surgir una I.A. que interprete de un modo mucho más eficiente el lenguaje de las viñetas de un cómic, de momento podemos guardar la esperanza de que, de verse dominada por una eventual Rebelión de las Máquinas, la humanidad podría descansar en las habilidades de los creadores del noveno arte para que les ayuden a cifrar sus comunicaciones de modo que una I.A. no los pueda comprender.

Pueden leer todos los interesantes detalles de este curioso experimento aqui.




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




Aprende lo que quieras ¡en sólo 20 horas!



Josh Kaufman es un autor que se dedica a escribir sobre temas como emprendimiento, administración personal, fundamentos de negocios y otros temas bastante útiles. También ha invertido una buena parte de su tiempo investigando cómo ser más eficientes cuando se trata de adquirir nuevas habilidades y conocimientos.

En su libro "En sólo 20 horas. Aprende lo que quieras de manera rápida", Kaufman describe un proceso de 4 pasos que nos puede ayudar a aprender las habilidades necesarias para desempeñarnos de manera más o menos eficiente en cualquier cosa que deseemos aprender: desde cómo programar una computadora hasta dibujar, tocar la guitarra o navegar en velero.

El método de Kaufman se divide en 4 pasos:

1. Fragmentar la habilidad


Cada habilidad puede ser fragmentada y dividida en pequeñas habilidades, de las cuales sólo debemos enfocarnos en las que son estrictamente necesarias y descartar las que no nos ayudarán en nuestro objetivo. Mientras más descompongamos las habilidades, será más fácil identificar aquellas que realmente necesitamos.


2. Aprender lo suficiente para poder autocorregirse

El siguiente paso es recopilar información sobre la habilidad que queremos desarrollar. Aquí entran los libros, páginas web, cursos, etc. Este aprendizaje tiene que estar enfocado en las pequeñas habilidades que se detectaron en el paso anterior. No se trata de pasar horas y horas leyendo, sino que se debe determinar aquello que realmente es necesario aprender. 


3. Eliminar las barreras que no nos permiten practicar

En este paso se deben eliminar todas las distracciones que podrían atentar contra nuestro propósito y desconcentrarnos de la práctica. Por eso, durante los momentos de entrenamiento, debemos alejarnos de la televisión, internet, smartphones y todas las cosas que son un obstáculo al momento de sentarse a trabajar. Cuanta más voluntad tengas para deshacerte de  las barreras que te impiden practicar, más posibilidades habrán de que realmente puedas hacerlo.


4. Practicar al menos 20 horas

Por último, aunque suene reiterativo, debes cumplir con las 20 horas de entrenamiento. Kaufman señala que la parte más difícil de esto es vencer la barrera de la frustración. Esta es una limitante que nosotros mismos nos ponemos. Es la fase en que sabemos que somos incompetentes e inútiles en lo que queremos hacer y es la razón más potente que nos lleva a desertar. Lo importante es no darse por vencido y lograr superar esta barrera. Kaufman dice que el mayor obstáculo para aprender algo nuevo no es intelectual, como muchos piensan, sino que es emocional.



En el siguiente video pueden ver una charla completa de Josh Kaufman describiendo este proceso e incluso mostrando cómo él mismo lo aplicó para aprender a tocar el ukulele. La charla tiene una duración de casi 20 minutos y pueden activarse los subtítulos en español.




¿Qué es lo que quieren aprender?


Enlaces:




jueves, 30 de junio de 2016

Orígenes VIII: Las antiguas unidades de cinta magnética



Cada día vemos nuevos y emocionantes avances en el campo de la tecnología informática, de modo que su avance parece ir cada día más rápido dejando obsoleto lo que a penas hace unos años se consideraba como vanguardista. Y cuando volteamos a ver a la tecnología que reinaba durante los (en realidad ni tan) lejanos años 50-60 del siglo pasado, no podemos sino asombrarnos con lo mucho que han cambiado las cosas desde entonces.

Tal es el caso de las enormes máquinas que se empleaban para leer cintas de datos en aquellos años, como la unidad de cinta magnética IBM 729 que data de 1959, la cual pueden conocer a detalle en el siguiente video, el cual muestra una de esas míticas unidades en funcionamiento dentro del Museo de Historia de la Computación (pueden activar subtítulos en inglés):



¡Cómo han cambiado las cosas!

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:








viernes, 8 de abril de 2016

Bing añade una fabulosa herramienta para desarrolladores



Sin duda alguna Bing, el buscador de Microsoft, está lejos de ser un rival digno para el aparentemente omnipotente Google. Sin embargo, de vez en cuando a los de Redmond se les ocurren muy buenas ideas y esta es una de ellas.

Se trata de una interesante característica del buscador que será de bastante utilidad a quienes nos dedicamos al desarrollo de software. Y es que en más de una ocasión acudimos a los todopoderosos motores de búsqueda buscando algún snippet para alguna tarea simple y repetitiva que podamos implementar sin mayores complicaciones. La mayoría de las veces, nuestra búsqueda nos lleva a foros de ayuda como Stack Overflow en los cuales solemos encontrar lo que buscamos.

Pero ahora Bing, en colaboración con HackerRank, ha incluido en los resultados de búsqueda un editor de código interactivo cuyo resultado puede ejecutarse directamente desde esa página para entender cómo funciona. Si, por ejemplo, busco "array C#" en Bing, obtengo algo como esto:



Cabe mencionar que por ahora la funcionalidad regresa resultados para los lenguajes C, C++, C#, Python, PHP y Java (aunque incluirán más en el futuro) y que para que podamos ver estos resultados debemos especificar nuestra ubicación como EU y el lenguaje inglés en las preferencias del sitio, a las cuales accedemos mediante el ícono de un engrane ubicado en la esquina superior derecha.

Dudo mucho que alguien cambie de Google a Bing por esto, pero no deja de ser una herramienta bastante útil a tener en cuenta.






miércoles, 6 de abril de 2016

Rembrandt vuelve a pintar... con una computadora.

Puede que Rembrandt haya muerto en 1669 pero ahora, gracias al proyecto The Next Rembrandt, su genialidad vuelve a la vida (al menos en parte) con el trabajo de un conjunto de historiadores, desarrolladores de software, científicos, ingenieros y analistas de datos, quienes durante 18 meses enfocaron sus esfuerzos en "destilar el ADN de la obra de Rembrandt" mediante el análisis de cientos de las obras del artista, pixel por pixel, con el objetivo de imitar lo más cerca posible los trazos y las técnicas de Rembrandt.



¿El resultado? Un retrato de un hombre caucásico con vello facial, de entre treinta y cuarenta años, que usa ropa negra, un collar blanco y un sombrero, realizado con un estilo extremadamente similar al de Rembrandt.






Si bien el trabajo del algoritmo no es 100% correcto, sí es lo bastante cercano como para hacernos notar el avance de la tecnología de análisis de datos y su potencial para crear obras artísticas con el mero uso de técnicas computacionales avanzadas.



Enlace: The Next Rembrandt





jueves, 11 de febrero de 2016

Tema obscuro para las herramientas para desarrolladores de Chrome



Una de las peticiones más recurrentes que ha recibido el equipo de desarrollo de Google Chrome es la de un tema oscuro para las herramientas para desarrolladores que se incluyen con el navegador.

Pues bien, las plegarias de los developers han sido escuchadas y a partir de la versión 50 del navegador, se incluirá la posibilidad de cambiar el tema a su versión oscura para utilizarlas con más comodidad en esas jornadas nocturnas de desarrollo que solemos tener la mayoría de los devs.




Además del tema oscuro, se incluirá la posibilidad de usar variables CSS para hacer más efectiva nuestra labor como desarrolladores web.


Fuentes: TNW, Google Developers




jueves, 21 de enero de 2016

Crea logos gratis con estos útiles sitios web

Crear un buen logotipo es un arte que pocos dominan. Y es que no sólo se necesita saber manejar algún programa de diseño como Illustrator o CorelDraw, sino que se debe tener la habilidad de saber combinar formas, colores y tipografías para que el logo transmita el mensaje adecuado. Usualmente, la chamba de creación de logotipos se la dejamos a los diseñadores gráficos.

Pero si no tienen uno a la mano o si no tienen recursos para invertir en pagarlo, aquí les presento 3 útiles sitios web en los cuales podemos crear y personalizar nuestros logotipos de manera extremadamente sencilla y lo mejor: totalmente gratis. ¡Chéquenlos!

1. Squarespace logo
Basta con introducir el nombre de nuestra empresa para que Squarespace nos muestre un logo minimalista que podemos personalizar con íconos, fuentes, colores, etc. Incluso nos muestra una vista previa de cómo se vería nuestro logo en una tarjeta de presentación, sitio web o playera. Muy simple y útil.

2. Zillion Designs Free Logo Maker


Este útil sitio nos permite elegir una plantilla de logotipo en base a la categoría a la que pertenece nuestra empresa; una vez seleccionado un diseño, podemos personalizarlo añadiendo el nombre de nuestra empresa, cambiando formas, colores, fuentes, efectos y un sinnúmero de opciones en una herramienta bastante completa para generar el mejor logo posible.




Similar a las anteriores, pues con sólo introducir el nombre de nuestra compañía y la categoría a la que pertenece obtenemos cientos de propuestas de logotipos que podemos personalizar hasta el más mínimo detalle. Cuenta con el plus de tener versión en español, por si la lengua de Shakespeare no se les da mucho.



¿Cuál de estos sitios les pareció la mejor opción? ¿conocen algun otro que deba estar en este listado? ¡Déjenmelo saber en sus comentarios!






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