martes, 22 de septiembre de 2015

Mis podcasts favoritos

Un listado de los Podcasts que tengo configurados en la aplicación del móvil que uso para escucharos: Podcast Addict. También os la recomiendo encarecidamente. Los clasifico por temáticas, aunque casi todos son de programación. Pongo a mis favoritos un [*] a la derecha del nombre.




domingo, 20 de septiembre de 2015

Compite con los clásicos

"Hemingway advised Samuelson to avoid contemporary writers and compete only with the dead ones whose works have stood the test of time." (*)

Samuelson era un admirador de Hemingway. Lo mismo se podría aplicar hoy a los libros de programación. Hay que releer los "clásicos" ya que en ellos hay todavía mucha sabiduría encerrada que no hemos sabido interpretar bien.

(*) : Encontrado en un tweet de @MMFlint's
https://twitter.com/MMFlint/status/645489730356908032?s=09

martes, 8 de septiembre de 2015

Carta abierta para "Atención al Cliente" de Seur

Para que al menos el esfuerzo de escribir este correo no haya sido en valde. Los "blas", "bles", "blus" y "fulano" es para no poner mi dirección ni señalar a nadie en concreto.
Buenas tardes:

Quería transmitirles mi profundo malestar por la gestión en la entrega de los pedidos de la empresa Tienda Animal a mi domicilio. Mis datos y los datos del último pedido al cual me refiero figuran al final de este correo. Ya he recibido 3 pedidos con Uds. de Tienda Animal. Con el primero de ellos no hubo problemas, el segundo ya nos puso un poco en alerta, y esta queja es sobre todo por este último pedido.

El primer correo que recibo para la entrega de este pedido es del 4 de septiembre. Me dicen que lo entregarán el lunes 7 de septiembre en la calle "bla bla bla". Debido a que con otras entregas ya figuraba esta dirección incorrecta (realmente es calle ble ble ble, en mis datos de Tienda Animal figura esa dirección también y en el correo de confirmación que me manda Tienda Animal también figura la dirección correcta) pero se acabaron entregando correctamente, no me preocupo ya que supongo que finalmente llegará.

El lunes por la mañana no recibo ningún correo indicándome la hora de entrega (como en otras ocasiones), por lo que supongo que o me lo mandarán más tarde o me llamarán para concretar la entrega. Para mi disgusto, me llega un correo el lunes a las 16:09 diciéndome que no estaba en mi domicilio a las 13:22. ¿Cómo podía saber yo que el paquete iba a ser entregado a esa hora?

Llamo a su número 902 (cada vez que llamo me tienen en espera como mínimo 4 minutos y la última vez que he llamado hoy he estado esperando 9 minutos) preguntando por el pedido y comunicándoles que en realidad no sabía a qué hora se iba a entregar. Su empleado "fulano" (sin apellidos) me atiende. Le cuento mi caso y le comunico además que por las mañanas no hay nadie en casa para recepcionar los pedidos y que si acaso deberían pasarse a partir de las 15:00 de la tarde de hoy (martes). Parece que anota en la incidencia o su sistema de gestión este particular y que al día siguiente podré recepcionar el pedido.

Hoy martes tampoco recibo correo alguno concretando la hora de entrega, pero como hemos quedado ya que sería a partir de las 15:00, salgo del trabajo un poco antes y consigo llegar a casa a las 15:15. Cierto, 15 minutos después del "a partir" que informé pero no mucho más tarde. Recibo entonces un correo a las 15:57 de la tarde diciéndome que "Debido a su ausencia en su domicilio el día a las , no fue posible...". No indican los datos concretos de a qué hora se han pasado ni tampoco la dirección de mi domicilio. Tampoco me llaman al móvil. ¿Cuándo intentaron de nuevo la entrega? ¿Lo hicieron en la dirección correcta?

Llamo otra vez al 902 y me indican que la mercancía está disponible en la calle blu blu blu. Voy allí sobre las 19:00 de esta tarde y su empleado me indica que está en el almacén central en Vallecas, que vuelva mañana. La zona donde está la oficina es de pago y en la que es difícil aparcar. Con lo cual se pueden imaginar mi entusiasmo para volver al día siguiente.

Les pregunto finalmente, a quien le pueda interesar: ¿por qué tengo que estar haciendo tantas gestiones y tomarme tantas molestias cuando me hubiera sido mucho más cómodo ir a comprar eso mismo a un centro comercial?

No sé si a Uds. les parece normal todo esto, pero desde luego si no me dan una solución o me compensan de alguna forma, me pondré en contacto con Tienda Animal informándoles del asunto y recomendándoles trabajar con otra empresa de transporte en un futuro. Y si puedo intentaré no tener que volver a tratar con Uds. ya que parece que tengo que hacer yo el servicio que les estoy pagando a Uds.

Gracias por el tiempo que le han dedicado a leer este correo.

Un saludo.
Guillermo.
[Datos del pedido omitidos]
No me extraña que Amazon trabaje con MRW. Pero unos saben tratar bien a la gente y otros no. O eso creo yo.

Ahí queda por escrito.



Actualización 22-9-2015:

Me escribieron hace unos días desde el departamento de atención al cliente de Seur pidiéndome disculpas por las molestias que he sufrido y prometiéndome tomar medidas para que no vuelva a ocurrir. O eso interpreto yo:
"Asimismo, tomamos nota de los hechos que han ocasionado este incidente, con el fin de tomar las acciones correctoras necesarias y poder garantizarle un servicio adecuado en el futuro."
No sé por qué, pero me temo que esta entrada no ha terminado aquí.

Continuará... :)

Actualización 03-11-2015:

Después de que Atención al Cliente de SEUR me respondiera al correo como indico en mi nota anterior, hoy después de realizar un pedido hace más de 7 días me ha vuelto a suceder lo mismo. Sólo me queda mandarles un correo indicándoles que no pienso volver a trabajar con ellos ya que no me tratan como cliente sino como un enemigo.

En fin... Ahora voy y lo twitteo también :)

viernes, 21 de agosto de 2015

La neutralidad de Telemadrid y Onda Madrid

Escribo esta entrada debido a que no me dejan enviar un comentario al post "Los presos del Valle de los Caídos" escrito por Miguel Platón en la web de telemadrid.es accesible en la URL:

La excusa que da el formulario es que mi dirección IP está excluida por ser origen de spam. Después de cambiar de IP varias veces (apagando y encendiendo el router) me sigue dando el mismo error. Por supuesto huelga decir que yo no me dedico a enviar spam a la web de Telemadrid. Intentaré escribir a los administradores de la página como sugieren pero soy muy escéptico.

Comentario al post de M. Platón :

Desde luego el libro tiene que conseguir explicar muchas cosas.

Como por ejemplo:

- Las cifras de siniestralidad durante esos 20 años, ¿quién las recopilaba? No me vale como respuesta que era el gobierno franquista.

- La conclusión de que en la realización de la obra los obreros  participaban de forma voluntaria me parece obscena. Supongo que el autor se apoyará en testimonios corroborables de trabajadores.

- Que un libro tan controvertido se publicite en un medio público con un comentario tan sesgado también me parece muy cuestionable.

Ahí queda mi opinión, si no es vetada de antemano.

Guillermo.

Actualización 8-9-2015: No, parece que lo tienen configurado por defecto para que no podamos opinar. Así es la libertad de expresión. Todavía tengo pendiente lo de pedírselo a los administradores. Pobrecitos, ¿qué excusa me pondrán?

Actualización 22-9-2015: Cualquier intento de contactar con los administradores de sistemas ha sido infructuoso. Esperado, pero no por ello menos decepcionante ;) Me pregunto desde qué rangos denegarán los comentarios. Ya que lo he intentado desde muchos sitios y desde todos se deniega. No hay más que decir. Adjunto captura con el error que me da. Por cierto, como chascarrillo: la IP que figura en el error está mal ya que ahora mismo lo estoy haciendo desde una IP estática y no es la que me están indicando.

Actualización 20-01-2016: Nada, parece que con el cambio de año tampoco deja. Lo dejaré por imposible. Malas noticias para la libertad de expresión.



Actualización 05-09-2016: Ahora da otro error. Bravo por los administradores de esta página. Aunque conociendo a Telemadrid seguro que los ha despedido.



viernes, 26 de diciembre de 2014

Lenguajes de alto nivel para microcontroladores

Últimamente estoy bastante interesado en la búsqueda de algún lenguaje funcional que me pueda servir para programar microcontroladores. En concreto investigo acerca de lenguajes funcionales que se puedan usar para programar las dos familias más populares de microcontroladores: los PIC y los Atmel AVR.

Hay muchas opiniones en internet sobre cuál de las dos familias es mejor que la otra. Después de leer varios post sobre este tema, mi conclusión es que ambas están muy parejas y que la elección tal vez dependa de nuevo de los gustos de cada cual. Aunque si me tuviera que decantar por alguno de los dos yo tiraría por los Atmel quizás porque últimamente son más populares que los PIC (con el apoyo de la comunidad que tiene detrás) y porque tienen algunas versiones que pueden funcionar con 0.7V de alimentación (para poder alimentarlos con una celda solar barata).

Como resultado de mi investigación (no muy fructífera) he encontrado algunos proyectos interesantes. Enumero a continuación no sólo lenguajes funcionales sino toda la variedad de lenguajes de alto nivel que he encontrado para programar microcontroladores (a parte del ensamblador del propio microcontrolador que no lo considero de alto nivel, aunque en él hay que programar las partes que requieren mayor rendimiento):
  • OCaPIC (OCaml)
  • PicoBIT (Scheme) - PIC
  • Forth: (la opción más viable, porque al menos a priori puede caber fácilmente en un micro)
    • avrforth 
    • amforth (8 a 12 KB de flash, 80 bytes de EEPROM, y 200 bytes de RAM). El amforth es muy prometedor.
    • rforth1: Un compilador de Forth para la familia 18Fxxx de microcontroladores PIC. Este mismo autor tiene también un Forth para la familia 16Fxxx de PICs.
  • .NET Micro - Aunque no investigado mucho este, parece que es sobre dispositivos más grandes.
  • uJ (Java) - PIC
  • NanoVM (Java) - Atmel.
  • B#: la "huella" en memoria es un poco grande (<24KB de flash y <2KB de RAM). Pero es un lenguaje de programación orientado a objetos específicamente diseñado para MCUs.
  • PyMite (Python): Huella de memoria grande (64KB de flash, 4KB de RAM).
  • eLua. Para MCUs muy grandes, me da la impresión.
  • ¿Alguna opción más? Seguro. Dejádmelo en los comentario y la pongo ;)
En uno de los enlaces que refiero abajo también sugieren programarse un intérprete personalizado de "pcode" que interprete un conjunto de instrucciones que tú definas.

Esto último parece una idea interesante así como también suena bien eso de poder crearse una especificación de máquina virtual que pudiera correr sobre dispositivos como MCUs. Hay algunas ya, pero visto que la JVM de Oracle/Sun son unas 200 microinstrucciones en la capa de VM parece factible poder generar un estándar o conjunto de instrucciones que pudiera servir para dispositivos de recursos más limitados.

¿Existe ya ese estándar? Porque estos dispositivos tienen una serie de características hardware que se podrían abstraer para luego poder programarlos más fácilmente.

Por último, hace poco terminé de leer y entender (que son dos cosas distintas) el paper de investigación que propició la creación del lenguaje Lisp y toda la belle époque de la inteligencia artificial de los años 80 y 90. Se trata de un artículo del gran John McCarthy titulado "Recursive Functions of Symbolic Expressions and Their Computation by Machine" (¡del año 1960! y todavía hoy en día relevante, que se lo apunten algunas mentes pensantes de nuestra época).

A partir de este paper se pueden extraer las operaciones fundamentales que dieron lugar a las primeras implementaciones del lenguaje Lisp. Con este germen tan prometedor: ¿se podría definir una VM basada en estas operaciones sobre MCUs?

En resumen:
Aunque parezca contradictorio, el poder programar un microcontrolador (MCU) con un lenguaje de alto nivel diferente a C (y al ensamblador, que de por sí no se puede calificar de alto nivel) aunque pueda resultar una idea peregrina a mí al menos me resulta altamente interesante. Máxime cuando la tendencia es que haya cada vez más dispositivos "embebidos" / empotrados / móviles como son los que constituyen la "Internet de las cosas" (IoT ó Intenet of Things en inglés).

¿El futuro o el pasado? Dejo al lector elegir.

Enlaces: