Translate

domingo, 14 de febrero de 2016

5 programadores que cambiaron el mundo.

Leí un articulo sobre 5 programadores que cambiaron el mundo. La verdad no me gusto mucho el resultado, en la lista estaban:

  • Dennis Ritchie
  • Bjarne Stroustrup
  • Linus Torvalds
  • Bill Gates
  • Mark Zuckerberg


Hasta Bill Gates estaba todo bien, pero Mark Zuckerberg?? Me parece mucho, pero bueno.

En mi opinión debería estar, Alan Kay. Por la programación orientada a objetos por supuesto.

Y vos que pensas que agregarías o sacarías?

Dejo link:
http://www.techora.net/2016/02/top-5-influential-programmers.html

sábado, 13 de febrero de 2016

Scala vs. Python para utilizar con Apache Spark



Leí un articulo por demás interesante, Apache Spark nos permite utilizar varios lenguajes para interactuar con él. La pregunta es, que lenguaje es mejor?

Por supuesto se puede tender a decir el más conveniente técnicamente, pero tambien existen consideraciones ajenas a lo técnico.

El articulo intenta dar luz sobre que lenguajes es mejor a nivel técnico para interactuar con Spark. Para ello nos muestra esta tabla comparativa:


Les recomiendo la lectura de este articulo. 

Dejo link:
https://www.dezyre.com/article/scala-vs-python-for-apache-spark/213

viernes, 12 de febrero de 2016

Remix OS, el android de escritorio


Remix OS es un sistema operativo que trata llevar lo mejor de android a la PC. Cuenta con modificaciones, para que android funcione en la PC.

Este sistema se puede descargar de forma gratuita y prueba que Android tiene muchas posibilidades en el escritorio de una PC.

Con Remix OS llega una propuesta que trata de demostrar que esa dualidad no es necesaria y que este fork de Android puede convertirse en una opción válida para los usuarios. En este SO nos encontramos con diversas opciones que transforman la experiencia móvil en una experiencia de escritorio, a saber:

  • Multitarea
  • Menú de inicio
  • Atajos de teclado y ratón
  • Explorador de archivos

Dejo un video:



Dejo link: http://www.jide.com/en/remixos

martes, 9 de febrero de 2016

Manual sobre desarrollo y arquitectura de vídeo juegos.


Quiero compartir un manual sobre vídeo juegos escritos en c++. Si bien es bastante básico nos enseña conceptos básicos y avanzados de c++ que nos permiten desarrollar vídeos juegos.

Este tutorial de 306 paginas esta escrito por la Escuela Superior de Informatica de Ciudad real. 

Les dejo el indice: 

1.1. El desarrollo de videojuegos
1.1.1. La industria del videojuego. Presente y futuro
1.1.2. Estructura típica de un equipo de desarrollo
1.1.3. El concepto de juego
1.1.4. Motor de juego
1.1.5. Géneros de juegos
1.2. Arquitectura del motor. Visión general
1.2.1. Hardware, drivers y sistema operativo
1.2.2. SDKs y middlewares
1.2.3. Capa independiente de la plataforma
1.2.4. Subsistemas principales
1.2.5. Gestor de recursos
1.2.6. Motor de rendering
1.2.7. Herramientas de depuración
1.2.8. Motor de física
1.2.9. Interfaces de usuario
1.2.10.Networking y multijugador
1.2.11.Subsistema de juego
1.2.12.Audio
1.2.13.Subsistemas específicos de juego
2. Herramientas de Desarrollo
2.1. Introducción
2.2. Compilación, enlazado y depuración
2.2.1. Conceptos básicos
2.2.2. Compilando con GCC
2.2.3. ¿Cómo funciona?
2.2.4. Ejemplos
2.2.5. Otras herramientas
2.2.6. Depurando con GNU GDB
2.2.7. Construcción automática con GNU Make
2.3. Gestión de proyectos y documentación
2.3.1. Sistemas de control de versiones
2.3.2. Documentación
2.3.3. Forjas de desarrollo
3. C++. Aspectos Esenciales
3.1. Utilidades básicas
3.1.1. Introducción a C++
3.1.2. ¡Hola Mundo! en C++
3.1.3. Tipos, declaraciones y modificadores
3.1.4. Punteros, arrays y estructuras
3.1.5. Referencias y funciones
3.2. Clases
3.2.1. Fundamentos básicos
3.2.2. Aspectos específicos de las clases
3.2.3. Sobrecarga de operadores
3.3. Herencia y polimorfismo
3.3.1. Herencia
3.3.2. Herencia múltiple
3.3.3. Funciones virtuales y polimorfismo
3.4. Plantillas
3.4.1. Caso de estudio. Listas
3.4.2. Utilizando plantillas en C++
3.4.3. ¿Cuándo utilizar plantillas?
3.5. Manejo de excepciones
3.5.1. Alternativas existentes
3.5.2. Excepciones en C++
3.5.3. ¿Cómo manejar excepciones adecuadamente?
3.5.4. ¿Cuándo utilizar excepciones?
4. Patrones de Diseño
4.1. Introducción
4.1.1. Estructura de un patrón de diseño
4.1.2. Tipos de patrones
4.2. Patrones de creación
4.2.1. Singleton
4.2.2. Abstract Factory
4.2.3. Factory Method
4.2.4. Prototype
4.3. Patrones estructurales
4.3.1. Composite
4.3.2. Decorator
4.3.3. Facade
4.3.4. MVC
4.3.5. Adapter
4.3.6. Proxy
4.4. Patrones de comportamiento
4.4.1. Observer
4.4.2. State
4.4.3. Iterator
4.4.4. Template Method
4.4.5. Strategy
4.4.6. Reactor
4.4.7. Visitor
5. La Biblioteca STL
5.1. Visión general de STL
5.2. STL y el desarrollo de videojuegos
5.2.1. Reutilización de código
5.2.2. Rendimiento
5.2.3. Inconvenientes
5.3. Secuencias
5.3.1. Vector
5.3.2. Deque
5.3.3. List
5.4. Contenedores asociativos
5.4.1. Set y multiset
5.4.2. Map y multimap
5.5. Adaptadores de secuencia
5.5.1. Stack
5.5.2. Queue
5.5.3. Cola de prioridad
6. Sistemas del Motor de Bajo Nivel
6.1. Subsistema de arranque y parada
6.1.1. Aspectos fundamentales
6.1.2. Esquema típico de arranque y parada
6.1.3. Caso de estudio. Ogre 3D
6.1.4. Caso de estudio. Quake III
6.2. Contenedores
6.2.1. Iteradores
6.2.2. Más allá de STL
6.3. Subsistema de gestión de cadenas
6.3.1. Cuestiones específicas
6.3.2. Optimizando el tratamiento de cadenas
6.3.3. Hashing de cadenas
6.4. Configuración del motor
6.4.1. Esquemas típicos de configuración
6.4.2. Caso de estudio. Esquemas de definición
7. El Bucle de Juego
7.1. El bucle de renderizado
7.2. El bucle de juego
7.3. Arquitecturas típicas del bucle de juego
7.3.1. Tratamiento de mensajes en Windows
7.3.2. Esquemas basados en retrollamadas
7.3.3. Tratamiento de eventos
7.3.4. Esquema basado en estados
7.4. Gestión de estados de juego con Ogre3D
7.5. Definición de estados concretos
8. Importador de Datos de Intercambio
8.1. Formatos de intercambio
8.1.1. Archivos binarios
8.1.2. Archivos en texto plano
8.1.3. XML
8.2. Creación de un importador
8.2.1. Justificación y estructura XML
8.2.2. Lógica de dominio
8.2.3. La clase Importer
9. Recursos y el sistema de archivos
9.1. Gestión básica de recursos
9.2. Gestión de recursos con Ogre3D
9.3. Gestión básica del sonido
9.3.1. Introducción a SDL
9.3.2. Reproducción de música
9.3.3. Soporte de efectos de sonido
9.3.4. Integrando música y efectos
9.4. El sistema de archivos
9.4.1. Gestión y tratamiento de archivos
9.4.2. E/S básica
9.4.3. E/S asíncrona
9.4.4. Caso de estudio. La biblioteca Boost.Asio C++
9.4.5. Consideraciones finales
10.Hilos y Concurrencia
10.1.Fundamentos básicos
10.1.1.El concepto de hilo
10.1.2.El problema de la sección crítica
10.2.La biblioteca de hilos de ICE
10.2.1.The Internet Communications Engine (ICE)
10.2.2.Manejo de hilos
10.2.3.Exclusión mutua básica
10.2.4.Flexibilizando el concepto de mutex
10.2.5.Introduciendo monitores
10.3.Multi-threading en Ogre3D
10.4.Caso de estudio. Procesamiento en segundo plano mediante hilos




lunes, 8 de febrero de 2016

Cursos gratuitos de tecnología Microsoft


Microsoft Virtual Academy es el lugar ideal para comenzar a estudiar tecnologías microsoft. Yo creo que ya hice un post sobre mva, pero quiero reiterar dado la cantidad de cursos que se sumaron.

Tenemos cursos de:

  • Windows 10
  • Cloud Development
  • Game Development
  • Web Development
  • Database Development
  • C# / XAML
  • Visual Studio
  • HTML5 & CSS3
  • For Beginners
  • Y más, y más...

Dejo link:
https://mva.microsoft.com/

Como empezar con Clojure


Una forma es leyendo algo de lisp o common lisp. Otra es siguiendo este post que esta por demás interesante:

https://www.twilio.com/blog/2016/02/getting-started-with-clojure.html

Lenguajes de programación más solicitados y mejor pagados



Bueno ya publique esto cientos de veces, pero es bueno recordar las implicancias que esta tomando la programación funcional y si no me creen vean este post, sobre todo la parte que indica:

A pesar de su poca frecuencia, los lenguajes mejor pagados son: 

1.-Lisp 

2.-F# 

3.-Haskell 

4.-Scala 

5.-Clojure 

6.-Erlang 

7.-Lua 

Dejo link: http://www.taringa.net/post/info/19148330/Lenguajes-de-programacion-mas-solicitados-y-mejor-pagados.html




De programador a project manager


Volví un tanto reflexivo de las vacaciones, dado que escuche como tantas veces la frase, "si asignas las tareas de project manager a tu mejor programador, perderás un buen programador y obtendrás un pésimo project manager" y sin duda esto es así. Es decir sin capacitación de project manager, no obtendremos un buen project manager, ni de un programador, ni de nadie. En muchos casos no son tareas o decisiones que las pueda tomar cualquiera.

Sumo a esta problemática, lo que pasa por estos lares, que si sos un muy buen técnico no podes seguir creciendo con este sombrero, tarde o tempano tenes que transformarte en project manager. Que a mi entender es algo muy tonto dado que no hay peor cosa en el mundo que trabajar de lo que no te gusta.

Pero, ¿porque las empresas se empeñan en transformar programadores en project managers? En principio porque da buenos resultados. Si si, a pesar de todo lo que dije anteriormente. Es necesario que un project manajer tenga conocimiento técnicos. Con los cuales puede validar estimaciones, soluciones. Discutir con el cliente, ver que necesitan los desarrolladores.

Tal vez ustedes lo han sufrido, no existe nada más patético que tener que explicar una estimación a una persona no técnica y que esta persona sin ninguna idea te rechace la estimación solo porque es mucho tiempo.

Por lo tanto esta bueno que el project manajer sea técnico, pero no nos olvidemos que debe recibir mucha capacitación, no se puede pasar de programador a project manager de la noche a la mañana. También podemos optar por hacer un paso gradual donde el programador se le van delegando tareas de project manager de a poco y de menor dificultad.

Y a la vez las empresas deberían dar oportunidad de seguir en la carrera técnica. La idea sería la carrera de programador debería tener una bifurcación en la cual uno podría elegir que perfil toma su carrera.

No es nada fácil más que nada en empresas pequeñas, pero creo seriamente que es donde deberíamos tender.

miércoles, 3 de febrero de 2016

Java Browser Plugin van a ser deprecados en Java 9

Se lo que están pensando, los applet de java ni se usan. Pero créanme se usan y mucho. Todos los que tengan un desarrollo en java con esta tecnología han visto como cada vez nos pedía nuevos carteles de seguridad como anunciando la muerte de los applet.

También tenemos que ver que implicancias tiene con JavaFX. Saben algo?

Los que lo usan a ponerse a migrar!!

Dejo link:
http://www.infoq.com/news/2016/01/java-plugin-eol

Aprende a codificar en code.org



Code.org es una organización que promulga el aprendizaje de programación.

Ahore cuenta con un apartado en castellano. A la vez se puede aprender jugando, es decir podes aprender a programar jugando a minecraft o con startwar o con algún otro juego.

Esta muy bueno te invito a que visites la pagina.




Dejo link: https://code.org/learn

domingo, 31 de enero de 2016

Introducción al Business Intelligence y al Big Data

Otro curso gratuito recomendado, que ya esta por empezar!!

Este curso pretende ser una introducción al Business Intelligence (BI). Se presenta que es un sistema de BI, cuál es la arquitectura de estos sistemas, cuáles son las metodologías principales de Business Analytics (el Clustering y la Clasificación), y cuáles son las tendencias actuales en el área del Business Intelligence.




Les dejo link:
https://miriadax.net/web/introduccion-al-business-intelligence-2-edicion-

Try Python

La gente de codescholl nos regala un curso sobre python, de la misma modalidad de "Try ruby". Sin más les dejo más info:

COURSE DESCRIPTION

​Explore the basics of Python and learn what it means to store and manipulate numbers and words as well as make decisions with your program.

COURSE OVERVIEW

  1. Level 1 Try Python Badge

    LEVEL 1 FREE LEVELBirds & Coconuts 2 Videos | 6 Challenges

    Get started with Python by calculating how many swallows it takes to carry a coconut.
  2. Level 2 Try Python Badge

    LEVEL 2 FREE LEVELSpam & Strings 2 Videos | 7 Challenges

    ​Learn how to store characters in a string to combine, dissect, and slice words.
  3. Level 3 Try Python Badge

    LEVEL 3 FREE LEVELConditional Rules of Engagement 2 Videos | 7 Challenges

    Explore conditionals in Python to see how your program can make important decisions.

martes, 12 de enero de 2016

Que es React?


Si, si voy a hablar de otra librería javascript: React.js. Lo se, hay muchas librerías javascript. Como existe gente que crea otra y como hay gente que la estudia. no lo se. Pero lo que si se es que cuando el mundo parecía solucionado con Angular, apareció Rect.js que hizo ruido y si hizo ruido algo tendrá.

React es una librería Javascript de código abierto para crear interfaces de usuario, la idea es que sea una herramienta para las webs single-page  (que en castellano serían las web que se ejecutan en una sola pagina). Es mantenido por Facebook, Instagram y una comunidad de desarrolladores independientes.

React nos ayuda a modificar datos de forma dinámica. Su objetivo es para ser sencillo, declarativo y orientado a componentes. React utiliza el patrón MVC, y puede ser utilizada conjuntamente con otras librerías Javascript como AngularJS.

En otros post voy a seguir hablando de este fabuloso framework.

Dejo link: https://facebook.github.io/react/
y en español: https://github.com/jlobos27/react-espanol

lunes, 11 de enero de 2016

Linux Mint 17.3 "Rosa" ya se encuentra en todos sus sabores



La ditro Linux Mint 17.3 "Rosa" ya se encuentra para descargar tanto para mate como para cinnamo, Xfce y kde.

El sábado se lanzo la versión xfce y kde, completando así todos los saberes de Mint. Si bien no es una versión que traiga muchos cambios, es bueno mantenerse actualizado.

Para la próxima versión mint va a tomar como base Ubuntu 16.04 LTS. Linux Mint 18 con nombre en clave ‘Sarah’ llegará posiblemente hacia finales de mayo o principios de junio. Este va a tener nuevas meta: renovar el aspecto visual del escritorio, que falta le hace.

Los usuarios de Mint estamos agradecidos y esperamos un gran año para la distro.

Dejo link:
http://blog.linuxmint.com/?p=2978
http://blog.linuxmint.com/?p=2977

jueves, 7 de enero de 2016

Swift le gano a Objective-C en el indice TIOBE.



Todos recuerdan el indice TIOBE, es un indice que muestra los lenguajes más usados y en el mes de diciembre Swift paso a Objective-C.

Que tiene de especial esta noticia?

Bueno, es la primera vez que queda claro que el publico esta más interesado en Swift, que en Objective-C y me parece natural. Por lo tanto si queres programar en la plataformas de Apple, ponete a estudiar Swift.

Dejo link:
http://www.infoq.com/news/2016/01/swift-overtakes-objective-c