Entradas

Mostrando entradas de 2015

C++ a toda máquina

Si quieres una tecnología, un lenguaje vibrante que avance a toda máquina, novedades y ritmo a tope… C++ es para ti. Se está celebrando el  cppcon 2015 Las charlas y anuncios son sorprendentes. Para los que pensábamos que que C++11 y C++14 eran un gran cambio, una gran evolución, un gran cambio de filosofía… cppcon 2015 nos muestra que eso era sólo el principio. La máquina se mueve a una velocidad trepidante y sigue acelerando… Una declaración de intenciones… https://www.youtube.com/watch?v=1OEu9C51K2A Una muestra real que se puede tocar… https://www.youtube.com/watch?v=hEx5DNLWGgA Una guía de estilo oficial, una librería que acompaña, anotaciones atómicas cuando quieras saltarlas, y a aprovechar las novedades con un  NUEVO  estilo, un nuevo lenguaje. Un lenguaje  seguro a tipos , elegante, moderno, multiparadigma (como siempre) pero funcional bien integrado… NOTE Sí C++ type safe, no estás soñando Por fin una ventana

PostgreSQL algunas razones

Me gusta PostgreSQL… He utilizado bastante firebird con un resultado muy bueno (poco mantenimento, pocos problemas, poca administración…) firebird es una base de datos con características avanzadas, potente, rápida… Es un fork de interbase en unas condiciones "extrañas", y esta a su vez es hija de GrotonDB, que ha sido la base de datos pionera en la tecnología  MVCC  que ahora "todo" el mundo utiliza. MySQL y MaríaDB ahora no está muy mal, especialmente desde que pueden utilizar el motor innodb. No obstante, MySQL sigue validando sentencias sql que no soporta e ignorando la parte que no sabe tratar. También tiene una coherción de tipos poco afortunada. Le faltan algunas características importantes, pero están trabajando muy bien en otros. Pero he venido a hablar de PostgreSQL… PostgreSQL se está haciendo más popular día a día en el mundo del software libre. En parte, puede deberse a la compra de MySQL por parte de Oracle y su po

Optimizaciones Rust.

Rust utiliza LLVM y toda su infraestructura de opctimizaciones. A persar de lo dicho durante años con los compiladores  jit  la realidad ha  demostrado que las estrategias más efectivas para conseguir el mejor rendimiento,  son las optimizaciones en tiempo de compilación apoyadas en tipado estático. En este sentido, Rust es fuerte. Pero tanto en Rust como en C++, hay cuestiones que se dejan al compilador. Por ejemplo el  RVO , hasta hace poco, era una opción del compilador. En otros veteranos lenguajes, como Pascal, por ejemplo, es algo explícito que  viene de serie. Y por ser explícito es sencillo y fácil de entender. En C++, saber cuándo y cómo el compilador hace su magia con el  RVO  u otras  optimizaciones complejas, dificulta el poder afinar al máximo en rendimiento. Otro ejemplo let mut a : [ i32 ; 4 ]; Podemos crear una variable sin darle un valor. Podemos dárselo más tarde, pero  en el caso del array, Rust nos pide amablemente que inicialicemos los valore

Un poquito de seguridad, por favor

Nos encontramos en un periodo de guerra civil. Las naves espaciales rebeldes atacando desde una base oculta, han logrado su primera victoria contra el malvado Imperio Galáctico. Durante la batalla, los espías rebeldes han conseguido apoderarse de los planos secretos del arma total y definitiva del Imperio: la web, una especificación enrevesada con potencial suficiente para destruir todos los ordenadores de la galaxia. Perseguida por los siniestros agentes del Imperio, la princesa Leia vuela hacia su patria a bordo de su nave espacial llevando consigo los planos robados que podrán salvar los ordenadores y devolver la libertad a internet… Contexto Los navegadores, renderizadores y máquinas virtuales, se han convertido en grandes monstruos difíciles de controlar. Todas las tecnologías de navegadores web están en C++ El paso del tiempo y la complejidad de la especificación, han hecho que alcancen tamaños poco manejables. A esto hay que añadirle que C++, tiene implícito "unde

Charla elixir en erlunge Madrid 2014-10

En octubre de 2014, tuve la oportunidad de hablar de Elixir en una reunión Erlunge en Madrid. Las diapositivas están  aquí Son muy pesadas y cargarlas todas toma su tiempo. El código fuente de las mismas…  aquí La experiencia fue fantástica, pero quise abarcar demasiado. La reunión fue muy larga a pesar de tratar los temas a gran velocidad. Quise aprovechar la ocasión para tratar temas básicos y otros nada básicos que son realmente importantes para entender la aportación que puede hacer Elixir al ecosistema Erlang. En definitiva, demasiado alcance y contenido. No obstante, reitero que la experiencia fue sensacional.

Dart, desarrollo web

He escrito mis primeros dos programas  cliente web . El primer programa, una prueba de concepto sencilla…  link El segundo, consiste en un puzle con la característica fundamental de que se puede configurar con tres topologías…  link Se trataba de crear aplicaciones interactivas 100% cliente (ejecución en el navegador). Son pruebas de concepto escritas con el lenguaje  Dart . Una vez superado este punto, ya es posible crear interfaes para aplicaciones y servicios, que seguramente consistirán en la entrega del programa  cliente web  (página  html ), y esta realizará peticiones  http  y/o  REST , recibiendo respuestas casi seguro  JSON . Además de utilizar en algunos casos  websockets . Investigo con frecuencia nuevos lenguajes de programación. Muchos de estos, por lo nuevo que son o su orientación, no disponen de  bindigns  con  toolkits  gráficos tipo  Qt ,  WxWidgets ,  GTK … Crear un servicio  http  y/o  REST  suele ser sencillo en todos los lenguajes.