Este es más o menos el material presentado en [1] para proponer el uso de Erlang en el proyecto CIAA [2]
La introducción al proyecto CIAA corresponde a lo mismo expuesto en CAFELUG, asi que no voy a copiar y pegar, sólo agregar acá lo de Erlang
Hubo un streaming de todo el evento en [3], que estuve revisando para volcar algunos datos acá y es aburridísimo, al menos la parte mía. Sirve verlo para quien quiera hacer una presentación de la CIAA no cometa los mismos errores. La parte de CIAA+Erlang comienza cerca de 1 hora 40.
CIAA + Erlang
La propuesta me nace de tener muchos pies puestos en muchos lugares, siendo dos de ellos el proyecto CIAA y erlang. En este último más que pisar acaricio con el pié, pues aunque he tenido alguna experiencia[4], no he llegado a superar la barrera de entrada, la que te permite retomar en cualquier momento sin tener que mirar ningún manual. En este momento soy incapaz de escribir un hello world, como para ser claro.
La presentación agrega estas preguntas/reflexiones a la presentación de CIAA:
- plc y micropython están orientados a facilitar la programación de cara al humano.
- esta iniciativa está orientada a la alta disponibilidad de erlang, no la facilidad.
- aportaría el hot upgrade soportado por erlang (*)
- ¿para que querríamos el microErlang si podemos ejectuarlo en la ciaa-full con linux?
- A nivel industrial no tendría sentido con ciaa-nxp
- Pero si con una nueva placa industrial reducida, como picociaa
- Y fundamentalmente para estudiantes con la edu-ciaa
- Como lidiar con el garbage collector, java (HVM) lo ha hecho
- Asi como web fue de servidor con aplicación a servidor con cliente rico con javascript y luego javascript ha ido al servidor,
pensamos en erlang como el servidor de IoT, pero los dispositivos son cada vez más power. Si es suficientemente power y tiene linux, le ponemos cualquier cosa, pero si no es tan power, eh?
- Podemos al menos enviar los mensajes en formato nativo de Erlang, distribuir la carga de procesamiento y reducir la latencia del servidor.
(*) En la siguiente charla el "hot upgrade" fue correctamente contextualizado, quizás no cuente.
A lo cual agrego de conversaciones posteriores:
- Erlang originalmente corrió en un switch telefónico, probablemente baremetal, quizas el alcance sea portar R2
Revisando el video, extraigo estos aportes de la concurrencia:
En la algunas conferencias hubieron presentaciónes con estos interesantes títulos
Orlando 2016 [5]
Berín 2016 [6]
En el paquete de OTP existe Inteface, mencionó El Brujo, que permite que un programa en C o java se haga pasar por un nodo erlang, según entendí. Por ejemplo existe una implementación para java [7] de Inaka.
No me comprometo, pero quizás avance algo por ese lado. El problema es que supongo debe necesitar TCPIP y eso no está en baremetal o sAPI, al menos a mi alcance. Y aún no he llegado al RTOS, aviso cualquier novedad.
Muero por tener algo listo para presentar en la conferencia que mencionó El Brujo a realizar en marzo/abril del 2016 en BsAs. Es más, probablemente muera por ser incapaz de no intentarlo.
¿Qué me olvidé o decidí no mencionar?
Olvidé
contar que en el proyecto CIAA hay gente muy capaz, docentes
universitarios, personas que han colaborado en la construcción de los
satélites argentinos, hay personas que trabajan con FPGA, arman la sAPI o diseñan
las placas, que para mí son como Dumbledores o Gandalfs, según sea tu
tara.
No tenía los links apropiados para los Cursos Abiertos de Programación de Sistemas Embebidos (CAPSE)[8].
Me dió como aversión al autobombo contar
que mi colaboración con el proyecto también pasa por haber dado un curso
de linux en el SASE 2016 y que en dos semanas probablemente dicte un
curso de seguridad orientado a IoT [9].
¿Qué puedo aportar yo?
- Estar hoy acá:
O sea, invitar a comenzar.
- Comenzar el año que viene:
Mi vida es muy complicada ahora y tengo otras prioridades técnicas, que incluso son base para esta iniciativa, como estudiar RTOS.
- Ahora puedo colaborar iniciando los contactos y traduciendo.
- No participar:
No tengo ningún orgullo ni territorio que defender, bien puede ocurrir que haya gente capacitada e interesada, yo no quiero ningún mérito si puedo ser un estorbo. Me encantaría poder decir "Charli hizo el trabajo de ...", pero me alcanza y sobra "Alguien hizo que Erlang quedara integrado a CIAA mediante ...".
[1] http://seguridad-agile.blogspot.com/2016/09/ciaa-cafelug.html
[2] http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=start
[3] https://www.youtube.com/watch?v=I7DAssZI_XM
[4] http://seguridad-agile.blogspot.com/2013/07/mutation-testing-framework.html
[5] http://www.elixirconf.com/#elx-speakers
[6] http://www.elixirconf.eu/
[7] https://github.com/inaka/jinterface_stdlib
[8] http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=educacion:cursos:cursos_programacion_ciaa
[9] https://groups.google.com/forum/?hl=en#!topic/embebidos32/6ohgy4E1D0E