miércoles, 15 de febrero de 2023

La paloma de la paz

Relato que forma parte del recopilatorio "Cuentos", del certamen Antonio Robles, año 1.987. Ya con 7 años tenía inquietudes, aunque el final suena un poco precipitado.


Título del microrelato: La paloma de la paz. 3.er Curso E.G.B.


      Erase una vez una paloma que no tenía amigos. Un día caluroso hubo una gran tormenta de truenos muy fuertes. Se había ordenado refugiarse a todas las palomas.

      En una cueva muy grande había murciélagos, basuras. Muchas basuras y chatarras se encontraban en la cueva.

      Amaneció. Todas las palomas salieron a buscar comida.

      Había un hombre que disparó con una escopeta y todas las palomas se asustaron mucho y echaron a volar.

      Una se iba por el sur, otra por el oeste, más por el este y la paloma de la paz se fue por el norte.

      Y finalmente se perdió. No sabia por donde ir y como no tenia comida se murió.

Guillermo Bayón del Oso
7 años - 3.° A
Colegio Público Alhambra

miércoles, 18 de enero de 2023

Información sobre oposiciones TIC al Ayuntamiento de Madrid, y otras oposiciones TIC

Información sobre Oposiciones y Ofertas de Empleo Público del Ayuntamiento

 

 

Información específica de Técnico/a Superior TIC del Ayuntamiento de Madrid

 

Información específica de Técnico/a Medio TIC del Ayuntamiento de Madrid

 

Información específica de Técnico/a Auxiliar TIC del Ayuntamiento de Madrid

 

Información sobre Oposiciones del Estado

[OEP del Estado] BOE.es - BOE-A-2021-12608 Real Decreto 636/2021, de 27 de julio, por el que se aprueba la oferta de empleo público para el año 2021.


Normativa, actualizaciones de oposiciones, etc


 

Academias

Algunas venden/dan acceso temarios desarrollados también, las marco con (*):

 

Recursos gratuitos

 

 

Redes sociales

  • Canales de Telegram
    • Para preparar el test:
  • Twitter de PreparaTIC (sobre todo, anuncios relacionados con la Oposición TIC-A1 del Estado, aunque también informa de nueva normativa y demás):

martes, 23 de agosto de 2022

Sueldo de un funcionario TIC en 2022

Cálculo del sueldo bruto

De forma resumida:

Sueldo bruto anual = (Parte Fija) + (Parte Variable)

Parte Fija = Sueldo +
             C.Destino + 
             Trienios + 
             C.Específico + 
             C.Residencia (AGE)

Parte Variable = C.Productividad +
                 Gratificaciones

De estos valores, en función de la categoría (C1, A2, A1) y nivel (14, 16, 18, ..., 29, 30) los Presupuestos Generales del Estado (P.G.E.) establecen los tres primeros: Sueldo (categoría), Complemento de Destino (nivel) y Trienios (antigüedad).

Los trienios se dan al acumular años de servicio activo en la administración. Como su nombre indica, se concede un trienio cada 3 años de servicios ininterrumpidos. Se pueden traspasar entre administraciones (hay que solicitar "el traspaso"), y están asociados al nivel que se tenía cuando se prestaron esos servicios.

El Complemento Específico varía en función de la administración:

Órganos constitucionales > Diputación > Ayuntamiento > Comunidad Autónoma > Administración General del Estado (AGE)

Además, estos complementos suelen ser mayores en los primeros de esta lista (órganos constitucionales), con respecto a los últimos (AGE), estando ordenado en orden decreciente. Es decir, en una Diputación se cobra más que en un Ayuntamiento, y más en un Ayuntamiento que en una entidad de Comunidad Autónoma.

El Complemento de Residencia sólo se cobra en la AGE, cuando se está destinado a una región extraperiférica o ciudades autónomas.

El Complemento de Productividad también varía en función de la Administración, siendo por lo general mayor en algunas (AGE) que en otras (EE.LL.). Además hay productividades ordinarias mensuales, asociadas normalmente a la realización de 1, 2 o 3 tardes, y otras extraordinarias (que no se dan en todas las administraciones, e incluso dentro de la misma administración hay organismos que las dan y otros que no). Las extraordinarias pueden ser 1, 2 o 3 veces al año, y su asignación es a discrección de los organismos.

Por último, las gratificaciones son compensaciones en nómina por servicios fuera del horario de trabajo (por ejemplo una guardia en fin de semana) o por dietas (viajes, etc). También se pueden compensar en días libres. En la empresa privada, las horas fuera de horario son equivalentes a las horas extraordinarias, aunque no se pagan igual que en la privada.

Ejemplos

Sueldos brutos anuales de diferentes perfiles:

  • C1:
    • C1 Nivel 18 de Universidad: 32.000 €
  • A2:
    • A2 Nivel 18 de la AGE: 30.000 €
    • A2 Nivel 20 de Ayuntamiento: 40.000 €
    • A2 Nivel 22 de Universidad: 40.000 €
    • A2 Nivel 22 del Congreso de los Diputados: 43.000 € (cifra conservadora)
    • A2 Nivel 26 de Ayuntamiento: 60.000 €
  • A1:
    • A1 Nivel 24 de Ayuntamiento: 58.000 €
    • A1 Nivel 26 de AGE: 38.000 €

Los sueldos de Ayuntamiento son para el de Madrid, puede que en otros Ayuntamientos salgan cifras menores.

Cualquier comentario se agradece, sobre todo para confirmar/desmentir los sueldos que he reflejado arriba como ejemplos.

lunes, 5 de septiembre de 2016

Enlaces interesantes. Agosto de 2016.

A modo de backup, vuelco aquí los enlaces interesantes que he encontrado este verano.


Cursos, MOOCs, Transparencias

Crimen, Mafia

Literatura y libros

Matemáticas

  • "This is a wiki-lab for collaborative work on Mathematics, Physics and Philosophy — especially from the n-point of view: insofar as these subjects are usefully treated with tools and notions of category theory or higher category theory.": https://ncatlab.org/nlab/show/HomePage

Juegos de rol

IoT, Microprocesadores, Electrónica

Programación

Seguridad informática

BigData, AI, NLP, Data Sets

Administración de Sistemas

Viajes

viernes, 17 de junio de 2016

Fragmento de El americano tranquilo

Hacía frío después de oscurecer en Hanoi y las luces eran más tenues que las de Saigón, más apropiadas a los vestidos más oscuros de las mujeres y a la propia guerra. Subí por la rue Gambetta hasta el Pax Bar - no quería beber en el Metropole con los altos oficiales franceses, sus mujeres y sus hijas -, y cuando llegué al bar percibí el tamborileo distante de los disparos en dirección a Hoa Binh. De día se veían ahogados por el ruido del tráfico, pero ahora todo estaba tranquilo con la excepción del tintineo de las campanillas de las bicicletas, donde los conductores de trishaw esperaban clientes. Pietri estaba sentado en su lugar de costumbre. Tenía un extraño cráneo alargado que se asentaba sobre los hombros como una pera en una fuente; era un oficial de la Sureté y estaba casado con una bella tonkinesa que era la propietaria del Pax Bar. Era otro hombre que no tenía ningún deseo especial de regresar a casa. Era corso, pero prefería Marsella, y antes que Marsella prefería en cualquier momento su asiento en la acera de la rue Gambetta

Me pregunté si conocería el contenido de mi telegrama. 

- Quatre-cent-vignt-et-un? - me preguntó.

- ¿Por qué no? 

Empezamos a jugar y me pareció imposible que pudiera volver a tener otra vida, lejos de la rue Gambetta y de la rue Catinat, del sabor soso del vermú con cassis, del sonido familiar de los dados, y del fuego de los cañones que se movía como las agujas de un reloj en el horizonte.

- Me vuelvo -le dije.

- ¿A casa? -me preguntó Pietri, arrojando un cuatro a uno. 

- No. A Inglaterra.

lunes, 30 de mayo de 2016

Receta de Okonomiyaki

Ingredientes:

Medio repollo mediano - pequeño cortado en juliana
1 huevo grande o 2 medianos
Un poco de jengibre en polvo, fresco rallado o mejor encurtido (si te gusta)
Cebollino bien picado
Un chorrito de soja (como 6 cdas)
1 sobre pequeño de dashi, diluido en 1 vgdi lleno de agua templada
1 vgdi de harina de trigo
Agua templada (lo que necesite)

N.B. Medidas: 1 v.g.d.i. = 1 vgdi = 1 vaso grande de ikea (vienen a ser 35 cl) ; 1 cda = 1 cucharada como las que se usan para tomar sopa

Para el relleno:

Relleno 1 : Setas: portobello, shitake, shimeji, enoki, champiñones, etc.
Relleno 2 : Salmón (suprema cortada en tiras como para nigiris)
Relleno 3 : Bacon ahumado y surimi

Salsas y toppings:

Queso rallado (mezcla, parmesano, grana pagano, etc)
Salsa Okonomiyaki
Mayonesa japonesa (se puede sustituir por mayonesa normal)
Alga aonori en polvo
Katsuobushi

Receta:

Mezclar en un bol grande el dashi diluido en 1 vgdi de agua, el/los huevo/s, el repollo, el jengibre y la harina incorporada poco a poco. Se puede hacer también con un robot de cocina. Podemos echarle también un poco de cebollino picado a la masa. Mezclar bien. Tiene que quedar una masa líquida pero no demasiado.

Ahora dependiendo del relleno, en una sartén con un chorrito de aceite de oliva virgen extra:
  • Si son setas: extendemos una capa de masa y luego se ponen las setas encima. Despues se echa el queso rallado encima de las setas. Estrictamente entonces no es un relleno, pero por unificar.
  • En los otros dos rellenos: ponemos una capa de masa más fina, luego encima el relleno y el queso rallado y después otra capa de masa.

Lo dejamos a fuego medio-bajo con una tapa encima unos 10-12 min por cada lado (para que se cueza). Se le da la vuelta como a una tortilla. Tiene que dorarse un poco. Si no es muy anti-adherente la sartén las setas se puede pegar, por lo que conviene agitar la sartén de vez en cuando y poner un poco más de aceite al darle la vuelta.

Cuando lo tienes ya en el plato para servirlo, haces una espiral desde el centro con la salsa okonomiyaki, otra espiral con la mayonesa, espolvoreas el alga aonori, el cebollino picado y finalmente pones una capa de katsuobushi cuando todavía está caliente. Eso le da el efecto orgánico tan característico además de un sabor increíble.

Bonus:

¿Dónde puedes comprar los ingredientes en Madrid?
  • c/ General Margallo (hay 3 supermercados chinos en donde se pueden comprar productos asiáticos de importación).
  • Bajos de Plaza de España.
  • Tienda Tokio Ya (c/ Presidente Carmona). Es más caro.
Agradecimientos:

Todo el mérito de esta receta es de Andrés. ¡Gracias por pasárnosla!

martes, 19 de enero de 2016

¿Qué libros lee Dabiz Muñoz?

Después de ver dos capítulos de la serie documental "El Xef" en la cadena Cuatro le entran a uno muchas ganas de ver los dos últimos capítulos y tiene la sensación de que le van a saber a poco. El documental sigue al chef David (o Dabiz, como ha reescrito su nombre) Muñoz durante unos meses y nos cuenta su vida y proceso creativo, 

De momento nos está gustando mucho las experiencias de este genio extremadamente inspirador para cualquiera que quiera perseguir sus sueños. Una de las frases que más me han gustado es esa de que aunque algo ya funcione hay que modificarlo, bien para mejorarlo o bien para escapar de la rutina y no aburrirse. Está claro que este principio conviene aplicarlo con cautela en función del tema del que se trate. Pero como idea a considerar no está mal.

En esta entrada quería centrarme en otro tema: en el documental se ve fugazmente una pila de libros encima de una silla y un estante de una estantería del apartamento donde vive Dabiz. Quiero listar a continuación esos libros por si alguien quiere beber de las mismas fuentes de las que bebe este monstruo de la cocina. Admito que no tengo ni he leído ninguno de ellos.
  • MATSUHISA, Nobuyuki. Nobu: The Cookbook. De Niro, Robert (introducción); Stewart, Martha (prólogo); Watanabe, Fumihiko (fotógrafo) y Kodansha International Ltd (fotógrafo). 1ª Edición. Londres: Quadrille Publishing Ltd (12 de octubre de 2001). 200 páginas. Enlace Amazon. ISBN-10: 1903845203.
  • OVADÍA, Daniel. La cocina de Daniel Ovadía: Historias y recetas de Paxia. Barcelona: Larousse, 2013. Enlace Amazon. ISBN-10: 6072107745.
  • LECHUGA LÓPEZ, Daniel. La cocina de la carne. Barcelona: RBA, 23 de septiembre de 2010. 176 páginas. Colección: Gastronomía y Cocina. Enlace Amazon. ISBN-10: 8498678390.
  • GABRIEL, Jean-Pierre. Thailand: The Cookbook. Viena: Phaidon Press (5 de mayo de 2014). 528 páginas. Tapa dura. Enlace Amazon. ISBN-10: 071486529X.
  • MYHRVOLD, Nathan y YOUNG, Chris. Modernist cuisine. Colonia: Taschen (15 de octubre de 2015). 2440 páginas en 6 volúmenes. Tapa dura. Edición: Box Spi Ha. Enlace Amazon. ISBN-10: 3836532581.
  • BEST, Mark y PETANEN, Pasi. Marque: A Culinary Adventure. Londres: Hardie Grant Books (1 de abril de 2012). 304 páginas. Tapa dura. Enlace Amazon. ISBN-10: 1742702333.
  • ATXA AZURMENDI, Eneko. en3ko aTxa azurmendI. Barcelona: Montagud (28 de noviembre de 2013). 256 páginas. Enlace Amazon. ISBN-10: 8472121496.
  • KELLER, Thomas. Under Pressure: Cooking Sous Vide. Nueva York: Artisan Division of Workman Publishing (6 de octubre de 2008). 304 páginas. Tapa dura. Enlace Amazon. ISBN-10: 1579653510.
  • BOTTURA, Massimo. Never Trust a Skinny Italian Chef. Viena: Phaidon Press (6 de octubre de 2014). 296 páginas. Tapa dura. Enlace Amazon. ISBN-10: 0714867144.
  • SHOUSE, Heather. Food Trucks: Stories and Recipes from America's Best Kitchens on Wheels. Berkeley, CA: Ten Speed Press (15 de mayo de 2011). 176 páginas. Enlace Amazon. ISBN-10: 158008351X.
Los demás libros no los distingo en las capturas de pantalla que me hice. Si viste el documental y quieres añadir alguno de los libros en los comentarios luego lo citaré también en la lista.

sábado, 19 de diciembre de 2015

Idea — Asistente personal de viaje

Siguiendo la propuesta que hice en 2011 de reflejar aquí mis ideas locas por si a alguien le diera por hacerlas realidad en algún momento, propongo o lanzo otra idea al aire: la creación de un asistente personal durante viajes.

El planteamiento que me hago es que durante un viaje necesitamos que se nos hagan propuestas sobre los sitios que hay que visitar allá donde viajamos, bien porque no tenemos tiempo para realizar una investigación previa nosotros del lugar o bien porque no tenemos acceso a las fuentes de información relevantes. Incluso puede complementar nuestros conocimientos y sugerirnos planes útiles, interesantes, curiosos... sobre la marcha, que añadan interés a nuestro viaje.

Lo que yo haría sería crear una aplicación móvil que haga de asistente personal durante un viaje que hagamos al extranjero. El asistente tendrá a su disposición diversas fuentes de datos. Algunas podrían ser:

  • Mapas de la zona del país que se está visitando. Estos mapas pueden ser mapas de carreteras, temáticos, atlas, o simplemente mapas capturados de satélite.
  • Guías (Lonely, El País Aguilar, etc).
  • Webs sobre turismo (en donde se puedan consultar eventos, mercadillos, etc. que se produzcan en la zona de interés).
  • Información adicional sobre zonas de especial interés (catedrales, monasterios, museos, etc).


Con todas estas fuentes (disponibles vía web a través de la internet que nos ofrezca el hotel o apartamento donde estemos alojados, como documento offline, bases de datos descargables, etc) el asistente se dedicará a analizar la información que tiene y procesarla, de manera que nos presente finalmente la información cocinada para cada día de nuestro viaje de forma personalizada.

El proceso de esta información se podría hacer con alguna de las siguientes herramientas:

  • Procesado de lenguaje natural.
  • Análisis y clasificación de imágenes. Redes neuronales para procesamiento de imágenes.
  • Aprendizaje máquina (ML = Machine Learning). Técnicas de análisis de Big Data.
  • Arañas (spiders) que analicen páginas web.
  • Bases de datos que puedan "cachear" la información en el dispositivo que usemos para procesar la información. Por ejemplo, una base de datos tipo PouchDB, H2, DB4O, neo4j (almacena grafos), ... También estaría bien disponer de una base de datos documental que pueda almacenar documentos y que funcione bien embebida.

Por último la información cocinada se debe presentar al usuario de una forma accesible y comprensible. Se me ocurre que se pudiera mostrar de alguna de las siguientes maneras:

  • A través de un navegador, bien online u offline. Preferiblemente esta última, ya que si estamos de viaje no solemos disponer de datos.
  • Mediante un PDF generado a primera hora del día siguiente, antes de comenzar la "jornada turistera".
  • Mediante un interfaz que presente información documental (tipo xml, json, markdown, etc).

También tenemos que pensar en el dispositivo que se va a encargar de cocinar los datos durante la jornada anterior y presentarlos o enviarnos esa información cocinada. Se me ocurren varias opciones:

  • Un SBC (Single Board Computer) tipo Raspberry Pi. La ventaja de este es que tiene más capacidad de procesamiento. Ocupan poco espacio y son baratos. Si vienen con caja pueden ser también compactos y manejables. La desventaja es que no suelen tener WiFi, por lo que en un entorno de hotel o apartamento habría que tener otro aparato que les permitiera conectarse de red cableadad a red inalámbrica.
  • Un teléfono móvil barato. Hay muchos teléfonos que se venden en países como la India, que tienen características muy interesantes a precios muy reducidos. Es una alternativa muy interesante, suelen tener almacenamiento local intergrado (no hay que comprarlo como en la mayoría de los SBC). La RAM no es una maravilla, pero si la programación de la aplicación es buena no debería ser un problema. Además, si se hace como un proyecto de software libre es mucho más probable que llegue a participar más gente.

Esta es la idea, luego habría que desarrollarla.

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:

miércoles, 4 de diciembre de 2013

Características de las diferentes versiones de Java

A partir de Java 5 (1.5 en la numeración estándar de Oracle/Sun) se añaden a este lenguaje algunas características muy interesantes que intentan acercarlo a otros lenguajes "más modernos" diseñados "para el siglo XXI". Me refiero por ejemplo a Ruby, Python, Scala, etc. Enumero a continuación cada una de ellas, con la esperanza de poder hacer un artículo de cada una en el futuro.


Java 1.5


  • Genéricos (generics)
  • Bucle "for/in" (for/in loop)
  • Autoempaquetado/desempaquetado (autoboxing/unboxing)
  • Enumeraciones seguras con tipo (typesafe enums)
  • Argumentos variables (varargs)
  • Importaciones estáticas (static imports)
  • Anotaciones/metadatos (annotations/metadata)

Java 1.6


  • Servicios web y procesado de XML (web services and XML processing)
  • JDBC 4.0
  • Programación basada en anotaciones (annotation-based programming)
  • APIs de compilación de Java (Java compiler APIs)
  • APIs de escritorio (desktop APIs)
  • Scripting


Java 1.7


Las características de Java 7 y 8 están sacadas de la página web de OpenJDK, que tiene un formato bastante interesante en plan tabla "plain text".

Category    Description
================================================================================
vm          JSR 292: Support for dynamically-typed languages (InvokeDynamic)
            Strict class-file checking
lang        JSR 334: Small language enhancements (Project Coin)
core        Upgrade class-loader architecture
            Method to close a URLClassLoader
            Concurrency and collections updates (jsr166y)
i18n        Unicode 6.0
            Locale enhancement
            Separate user locale and user-interface locale
ionet       JSR 203: More new I/O APIs for the Java platform (NIO.2)
            NIO.2 filesystem provider for zip/jar archives
            SCTP (Stream Control Transmission Protocol)
            SDP (Sockets Direct Protocol)
            Use the Windows Vista IPv6 stack
            TLS 1.2
sec         Elliptic-curve cryptography (ECC)
jdbc        JDBC 4.1
client      XRender pipeline for Java 2D
            Create new platform APIs for 6u10 graphics features
            Nimbus look-and-feel for Swing
            Swing JLayer component
            Gervill sound synthesizer [NEW]
web         Update the XML stack
mgmt        Enhanced MBeans [UPDATED]

Java 1.8


Category    JEP     Description
================================================================================
--/--       126     Lambda Expressions & Virtual Extension Methods
            138     Autoconf-Based Build System
            160     Lambda-Form Representation for Method Handles
            161     Compact Profiles
            162     Prepare for Modularization
            164     Leverage CPU Instructions for AES Cryptography
            174     Nashorn JavaScript Engine
            176     Mechanical Checking of Caller-Sensitive Methods
            179     Document JDK API Support and Stability
vm/--       142     Reduce Cache Contention on Specified Fields
vm/gc       122     Remove the Permanent Generation
            173     Retire Some Rarely-Used GC Combinations
vm/rt       136     Enhanced Verification Errors
            147     Reduce Class Metadata Footprint
            148     Small VM
            171     Fence Intrinsics
core/--     153     Launch JavaFX Applications
core/lang   101     Generalized Target-Type Inference
            104     Annotations on Java Types
            105     DocTree API
            106     Add Javadoc to javax.tools
            117     Remove the Annotation-Processing Tool (apt)
            118     Access to Parameter Names at Runtime
            120     Repeating Annotations
            139     Enhance javac to Improve Build Speed
            172     DocLint
core/libs   103     Parallel Array Sorting
            107     Bulk Data Operations for Collections
            109     Enhance Core Libraries with Lambda
            112     Charset Implementation Improvements
            119     javax.lang.model Implementation Backed by Core Reflection
            135     Base64 Encoding & Decoding
            149     Reduce Core-Library Memory Usage
            150     Date & Time API
            155     Concurrency Updates
            170     JDBC 4.2
            177     Optimize java.text.DecimalFormat.format
            178     Statically-Linked JNI Libraries
            180     Handle Frequent HashMap Collisions with Balanced Trees
core/i18n   127     Improve Locale Data Packaging and Adopt Unicode CLDR Data
            128     BCP 47 Locale Matching
            133     Unicode 6.2
core/net    184     HTTP URL Permissions
core/sec    113     MS-SFU Kerberos 5 Extensions
            114     TLS Server Name Indication (SNI) Extension
            115     AEAD CipherSuites
            121     Stronger Algorithms for Password-Based Encryption
            123     Configurable Secure Random-Number Generation
            124     Enhance the Certificate Revocation-Checking API
            129     NSA Suite B Cryptographic Algorithms
            130     SHA-224 Message Digests
            131     PKCS#11 Crypto Provider for 64-bit Windows
            140     Limited doPrivileged
            166     Overhaul JKS-JCEKS-PKCS12 Keystores
web/jaxp    185     JAXP 1.5: Restrict Fetching of External Resources



Semántica de las categorías:

vm:     comp, gc, rt, svc
core:   lang, libs, i18n, net, sec, svc
client: gui, sound
web:    jaxp, jaxb, jaxws, corba