Translate

jueves, 7 de mayo de 2015

¿Podrá ser Dart y no Java el futuro de Android?

No era de esperar? Google es dueño de dos lenguajes Go y Dart. Tiene latente la amenaza de denuncias por patentes utilizando java, si bien todo eso ya paso Oracle no es una empresa que reconozca que perdio y se va a quedar en el molde.

A la vez java es un lenguaje que evoluciona a su ritmo, ritmo que Google debe esperar.

Por lo tanto, yo que google, cambio de lenguaje hace rato. Lo raro es que se haya inclinado por dart y no por go. Tendrá pensado en algún futuro hacer la plataforma Android multilenguaje? Lo veo bastante fácil y abarcaría a todo tipo de desarrolladores.

Dejo un link a un buen articulo: http://hipertextual.com/2015/05/dart-android

Java vs Javascript

Muchas veces se refieren a javascript como java o confunden los dos lenguajes como si tuvieran algo que ver. Cosa que me saca de mis casillas.

No soy quien para juzgar estos dos grandes lenguajes, a mi entender ninguno es mejor solo fueron hechos para objetivos diferentes, para hacer diferentes cosas. En fin leí este resumen y me pareció bastante acertado:

I was trying to explain to someone the difference between Java and JavaScript. "It is like the difference between Star Trek and Star Wars."

Java is Star Trek. It was first, and it is all uniforms, regulations, and red alerts. JavaScript is Star Wars. Grit, chaos, and mysticism.


sábado, 2 de mayo de 2015

Visual Studio Code, editor de código de Microsoft para Windows, OS X y GNU/Linux


Como sabrán venimos acompañando el movimiento de microsoft a open source. Ahora un notición liberaron un editor multiplataforma, para linux, Windows y OS X.

No solo eso, sino que se puede programar en diferentes lenguajes, ya sean propios de Microsoft como C#, F# y Visual Basic, o de otros como PHP, Phyton, Perl, SQL, shell scripting en Bash y Java. También soporta html y Css. Además se integra con GIT.

Que más decir, impensado, por lo menos para mí. Vamos a tener que probarlo.

Dejo link: https://code.visualstudio.com/

viernes, 1 de mayo de 2015

10 funcionalidades de Java 8 de las que no has oído hablar


Quiero recomendarles este articulo de java 8 de la gente de javahispano, dado que nos da otra mirada de java 8.

Les dejo el link: http://www.javahispano.org/portada/2015/4/28/10-funcionalidades-de-java-8-de-las-que-no-has-oido-hablar.html

El dificil trabajo de llevar un mundo estocástico a uno binario


Como sabrán vivimos en un mundo imperfecto, donde el cambio es el rey  y señor. En ese mundo el profesional informático debe especificar requerimientos, hacer estimaciones y vivir.

Esto provoca muchos problemas, los cuales son los más caros sino se los detecta a tiempo. Como sabrán un defecto en los requerimientos provoca el mayor coste de retrabajo, no solo porque desarrollamos algo que no se usa sino porque tenemos que removerlo y luego volverlo a desarrollar. O podemos modificarlo, lo que conlleva que insertemos muchísimos bugs y la funcionalidad quede con vicios.

Por lo tanto lo que se hace normalmente es hacerle muestras a el usuario de lo que estamos trabajando, lo importante de esto es que el usuario debe tener el conocimiento y estar preparado para entender que es solo una carcasa que falta terminar.

Utilizando scrum por ejemplo deberíamos tener un compromiso mayor de los usuarios, es más un usuario debe ser parte del equipo pero esto no sucede con normalidad, el problema es que un proyecto que utiliza scrum pocas veces es vendido como un proyecto scrum, por lo tanto se trata de adaptar scrum a una fecha de entrega y a no tener un usuario como parte del equipo lo que conlleva a un desastre.

Scrum pide muy pocas cosas y deberíamos respetarlas o no hacer scrum. Y si no tenemos la suerte de trabajar con scrum, debemos tratar de lograr un compromiso con el usuario, hacer entregas tempranas, validar los requerimientos, revisión por pares etc.

domingo, 26 de abril de 2015

Ideone


Ideone Es una pagina web donde se pueden ejecutar programas de forma online en diferentes lenguajes. Esta muy buena si buscas aprender. La lista de lenguajes es larga:



Dejo el link: http://ideone.com/


Web Frameworks Benchmark 2015

InfoQ publico un benchmark por demás interesante sobre frameworks web. Básicamente este benchmark compara frameworks web de diferentes lenguajes y tecnologías. Y la velocidad se mide en request por segundo.
Veamos el benchmark:


Como es de esperar cuando hablamos de performance el ganador es C y le sigue C++.

Otra cosa que saco de este benchmark es que existen varios Framework que no conozco. Tendré que estudiar más.

Dejo link: http://www.infoq.com/news/2015/04/web-frameworks-benchmark-2015



Disponible Debian 8 ‘Jessie’


Me hago eco de una gran noticia, esta disponible Debian 8 Jessie, sin dudas viene con novedades más que interesantes, para muchos la versión más innovadora de los últimos años.

Entre las versiones de las aplicaciones y librerías:

  • Apache 2.4.10
  • Asterisk 11.13.1
  • GIMP 2.8.14
  • an updated version of the GNOME desktop environment 3.14
  • GNU Compiler Collection 4.9.2
  • Icedove 31.6.0 (an unbranded version of Mozilla Thunderbird)
  • Iceweasel 31.6.0esr (an unbranded version of Mozilla Firefox)
  • KDE Plasma Workspaces and KDE Applications 4.11.13
  • LibreOffice 4.3.3
  • Linux 3.16.7-ckt9
  • MariaDB 10.0.16 and MySQL 5.5.42
  • Nagios 3.5.1
  • OpenJDK 7u75
  • Perl 5.20.2
  • PHP 5.6.7
  • PostgreSQL 9.4.1
  • Python 2.7.9 and 3.4.2
  • Samba 4.1.17
  • Tomcat 7.0.56 and 8.0.14
  • Xen Hypervisor 4.4.1
  • the Xfce 4.10 desktop environment
  • more than 43,000 other ready-to-use software packages, built from nearly 20,100 source packages.
Vamos a tener que probarlo!

martes, 14 de abril de 2015

domingo, 12 de abril de 2015

Finalmente liberada la versión estable de Elementary OS Freya

Que más decir? tanto esperar llegan las alegrías!

Ya podemos bajar la versión Freya de Elementary OS.

Entre las novedades se destacan:

  • Vista multitareas rediseñada y mejorada.
  • Notificaciones interactivas desacartables y un nuevo panel de ajustes que establece el modo "No molestar" para no recibir interrupciones.
  • Una interfaz más refinada gracias a una nueva hoja de estilos, iconos mejorados, un nuevo tema oscuro para las aplicaciones, mejoras en las animaciones, nuevos iconos simbólicos, transparencia inteligente del panel superior, y otros detalles más.
  • Una nueva herramienta de cortafuegos que incluye un "modo privado".
  • Mejor soporte para emojis, y nuevas tipografías para la web.
  • El menú de aplicaciones ahora soporta operaciones matemáticas, acciones rápidas, y drag & drop desde el cajón de búsqueda.
  • Soporte para UEFI, la versión del kernel de Linux es la 3.16, y Freya usa Gtk 3.14
  • Cuentas de usuario rediseñadas, nuevos fondos de escritorio, nuevas pantallas, nuevas aplicaciones (Calculadora, Cámara, Video, Fotos), y nuevos ajustes para los elementos de fecha y hora.
  • Soporte para calendarios en linea (Google Calendar y CalDAV).
  • La terminal y el gestor de archivos ahora soportan búsquedas.

Que más decir? a bajarlo y probarlo!!

Dejo link:
http://elementary.io/

RethinkDB, la revolución de NoSQL


RethinkDB es una base de datos que desde Sillicon Valley está revolucionando el mercado en el mundo de bases de datos no relacionales o NoSQL.

RethinkDB es una base de datos orientada a documentos (usando el formato JSON), el lenguaje de consulta que utiliza el motor es ReQL, siendo este lenguaje muy intuitivo comparado con SQL y Javascript en MongoDB.

Entre sus características, podemos nombrar:

  • Soporte a Join en documentos.
  • Dashboard web integrado, al estilo de CouchDB pero optimizado para la administración de las bases de datos y el servidor.
  • Tiene soporte para callback al cambiar un documento, devolviendo el último cambio.
  • Fácil escalamiento horizontal.
  • Soporte para Docker.

Que se debe enseñar en la facultad?

Este post es solo una opinión personal y es también un ámbito de discusión madura.

Hablando con alumnos en la facultad me preguntaron por que no se dicta una materia donde se explique como desarrollar de forma rápida con una plataforma tipo rails o play o grails.

Lo que les conteste es que es peligroso que la facultad enseñe estas herramientas, primero porque si te enseñan a utilizar muy bien un martilla vas a ver a todo como un clavo. Segundo porque lo que debe darte la facultad son los conceptos, pero para afianzar los conceptos normalmente usa herramientas, pero siempre el objetivo son los conceptos.

Para hacer más didáctica mi punto de vista les explique:
Supongamos que hacen la facultad para desarrollar software de calidad. Por lo tanto su objetivo es hacer software, para llegar a ese objetivo van a tener que saber conceptos y utilizar herramientas:




La facultad brinda los conceptos y algunas herramientas para que el alumno pueda profundizar solo lo que más le guste.

Un error es pensar que la facultad debe enseñar herramientas, y es una tentación para los profesores ya que los alumnos se entusiasman más. Pero es problema es que saber herramientas sin tener una base hace que hagamos las cosas mal o que nuestro conocimiento sea muy frágil. Al vez nos volvemos esclavos de las herramientas.

A la vez el alumno por lo general no estudia conceptos base por sus propios medios, solo estudia herramientas. Por lo tanto es muy difícil revertir esta situación.



Como se ve en el gráfico, si se enseñan pocos conceptos la estructura cognoscitiva no es del todo firme y tampoco se puede construir a partir de algo así.

En conclusión los conceptos son necesarios y se deben dictar antes que las herramientas.

miércoles, 8 de abril de 2015

Mono adopta librerías .net (de Microsoft)


Como lo leen, Mono decidió sustituir librerías por librerías open source de Microsoft.
La pregunta es: para que mono va a trabajar en librerías que Microsoft libero? Y claro!! Lo más coherente es simplemente utilizarlas y esto hizo Mono.

Los siguientes namespaces fueron remplazados:

  • System.Collections
  • System.Collections.Concurrent
  • System.Collections.Generic
  • System.Collections.Specialized
  • System.ComponentModel
  • System.ComponentModel.Design
  • System.Diagnostic.Contracts
  • System.Linq
  • System.Linq.Parallel
  • System.Text.RegularExpressions
  • System.Runtime.CompilerServices
  • System.Threading.Tasks

Dejo link: