Hola erlangueros,
Soy Fernando Benavides y me dicen "El Brujo". Soy desarrollador
Erlang desde hace 2 años aproximadamente. Vivo en Monte Castro
(Ciudad de Buenos Aires) y actualmente trabajo en Novamens. Entre los
varios proyectos en los que trabajé, puedo mostrarles erfb pues es
público y también, aunque desarrollado en Haskell, los invito a
observar mi proyecto de tesis: λPage.
Me gustó mucho encontrar una lista de usuarios Erlang en mi idioma,
pues es muy bueno saber que uno no está solo en esto. Espero poder
contribuir y participar mucho en ella :)
Por último, tal como lo sugiere la página principal del grupo, les
comparto una versión de Hola Mundo inspirada en LocoArts, espero que
les guste :)
Saludos para todos
%%%-------------------------------------------------------------------
%%% @author Fernando Benavides <greenmellon@gmail.com>
%%% @doc Saludo para primer mensaje a la lista erlar@librelist.com
basado en LocoArts
%%% @reference Idea tomada de: <a href="http://
www.locoarts.com.ar">este sitio web</a>
%%% @end
%%%-------------------------------------------------------------------
-module(hola_erlar).
-author('Fernando Brujo Benavides <greenmellon@gmail.com>').
-export([saludame_como/1]).
%% @spec saludame_como(el_viejo | carlitox | alejo | valentina | john)
-> atom().
%% @doc El programa saluda al usuario
-spec saludame_como(el_viejo | carlitox | alejo | valentina | john) ->
atom().
saludame_como(el_viejo) -> 'hola, viteh';
saludame_como(carlitox) ->
{_,_,Micro} = erlang:now(),
case Micro rem 2 of
0 -> 'hola, vengo a flotar';
1 -> 'hola, vengo a revolear las patas'
end;
saludame_como(alejo) -> 'hoooolaa!';
saludame_como(valentina) -> 'tiiiiiiiiiiiiiiiiiii';
saludame_como(john) -> 'mi nombre es john, vengo a reparar la
tuberia...'.
Hola mi nombre es Alexander Sánchez, conoci la pagina buscando un problema
en internet, conoci el lenguaje porq desarrollo servicios para telefonia ip
.
-module(hola).
init() ->
io:format("Hola Mundo~n~n").
2012/2/9 Winston Sánchez <wsanchez@sidevox.com>: > Hola mi nombre es Alexander Sánchez, conoci la pagina buscando un problema > en internet, conoci el lenguaje porq desarrollo servicios para telefonia ip > . > > -module(hola). > init() -> > io:format("Hola Mundo~n~n"). Hola Alexander, bienvenido! Interprete bien que estas usando Erlang en el trabajo? Que envidia! Aprovecho el mail para preguntarles a los viejos y comunicarles a los nuevos, estan yendo al canal #erlar en freenode? Los canales oficiales #erlang y #erlounge tienen bastante buena onda. En fin, el IRC es una costumbre de pocos y un gusto adquirido, no a todos les va. saludos, Iñaki Garay. -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/GMU d- s:- a27 C++ UL+++ P--- E- W+ PS+++ PE- Y+ t++ 5+ tv- b++ DI+ D--- G e h! r y++ ------END GEEK CODE BLOCK------
Gracias por la bienvenida si ingrese al canal y si fue de bastante ayuda .. Envié una pregunta a los correos no se si me pueden ayudar orientandome en eso, del como hacer el Upgrade del codigo de un modulo en caliente, el cual se ejecuta en background. Saludos Alexander Sánchez El 9 de febrero de 2012 15:26, Iñaki Garay <igarai@gmail.com> escribió: > 2012/2/9 Winston Sánchez <wsanchez@sidevox.com>: > > Hola mi nombre es Alexander Sánchez, conoci la pagina buscando un > problema > > en internet, conoci el lenguaje porq desarrollo servicios para telefonia > ip > > . > > > > -module(hola). > > init() -> > > io:format("Hola Mundo~n~n"). > > Hola Alexander, bienvenido! > Interprete bien que estas usando Erlang en el trabajo? Que envidia! > > Aprovecho el mail para preguntarles a los viejos y comunicarles a los > nuevos, estan yendo al canal #erlar en freenode? > Los canales oficiales #erlang y #erlounge tienen bastante buena onda. > En fin, el IRC es una costumbre de pocos y un gusto adquirido, no a > todos les va. > > saludos, > Iñaki Garay. > > -----BEGIN GEEK CODE BLOCK----- > Version: 3.1 > GCS/GMU d- s:- a27 C++ UL+++ P--- E- W+ PS+++ PE- Y+ t++ 5+ tv- b++ > DI+ D--- G e h! r y++ > ------END GEEK CODE BLOCK------ >
Winston, no se qué tan complejo es lo que tenés que hacer, pero con code:load_file/1 podés cargar una nueva versión del módulo. Desde el shell de Erlang lo podés hacer también con l(). Esta es la forma más básica de hacerlo, pero si estás usando releases tenés formas más complejas que intentan automatizar el proceso de actualización para cuando tenés aplicaciones más complejas. Qué es lo que necesitás hacer? Saludos, Juanjo On Thu, Feb 9, 2012 at 5:37 PM, Winston Sánchez <wsanchez@sidevox.com>wrote: > Gracias por la bienvenida si ingrese al canal y si fue de bastante ayuda > .. > > Envié una pregunta a los correos no se si me pueden ayudar orientandome en > eso, del como hacer el Upgrade del codigo de un modulo en caliente, el cual > se ejecuta en background. > Saludos > Alexander Sánchez > > El 9 de febrero de 2012 15:26, Iñaki Garay <igarai@gmail.com> escribió: > > 2012/2/9 Winston Sánchez <wsanchez@sidevox.com>: >> > Hola mi nombre es Alexander Sánchez, conoci la pagina buscando un >> problema >> > en internet, conoci el lenguaje porq desarrollo servicios para >> telefonia ip >> > . >> > >> > -module(hola). >> > init() -> >> > io:format("Hola Mundo~n~n"). >> >> Hola Alexander, bienvenido! >> Interprete bien que estas usando Erlang en el trabajo? Que envidia! >> >> Aprovecho el mail para preguntarles a los viejos y comunicarles a los >> nuevos, estan yendo al canal #erlar en freenode? >> Los canales oficiales #erlang y #erlounge tienen bastante buena onda. >> En fin, el IRC es una costumbre de pocos y un gusto adquirido, no a >> todos les va. >> >> saludos, >> Iñaki Garay. >> >> -----BEGIN GEEK CODE BLOCK----- >> Version: 3.1 >> GCS/GMU d- s:- a27 C++ UL+++ P--- E- W+ PS+++ PE- Y+ t++ 5+ tv- b++ >> DI+ D--- G e h! r y++ >> ------END GEEK CODE BLOCK------ >> > >
2012/2/10 Juan Jose Comellas <juanjo@comellas.org>: > Winston, no se qué tan complejo es lo que tenés que hacer, pero con > code:load_file/1 podés cargar una nueva versión del módulo. Desde el shell > de Erlang lo podés hacer también con l(). Esta es la forma más básica de > hacerlo, pero si estás usando releases tenés formas más complejas que > intentan automatizar el proceso de actualización para cuando tenés > aplicaciones más complejas. Qué es lo que necesitás hacer? yo supuse que lo que quiere hacer es que si compila el modulo de nuevo y le manda un mensaje especial al proceso carga la nueva version.
EL problema es que tengo el modulo ejecutandose en background y cuando necesito hacer un cambio en el codigo me toca detener el proceso compilarle y mandar a ejecutar otra vez. estoy probando algunas opciones pero todavia o me resulta lo q quiero .... el proceso en background lo hago con el nohup en linux. El 10 de febrero de 2012 09:39, Mariano Guerra <luismarianoguerra@gmail.com>escribió: > 2012/2/10 Juan Jose Comellas <juanjo@comellas.org>: > > Winston, no se qué tan complejo es lo que tenés que hacer, pero con > > code:load_file/1 podés cargar una nueva versión del módulo. Desde el > shell > > de Erlang lo podés hacer también con l(). Esta es la forma más básica de > > hacerlo, pero si estás usando releases tenés formas más complejas que > > intentan automatizar el proceso de actualización para cuando tenés > > aplicaciones más complejas. Qué es lo que necesitás hacer? > > yo supuse que lo que quiere hacer es que si compila el modulo de nuevo > y le manda un mensaje especial al proceso carga la nueva version. >
1) Primero de todo, no necesitás usar nohup para levantar la VM de Erlang
en background. Esto lo podés hacer fácilmente pasando el parámetro
"-detached" cuando ejecutás el proceso de la VM. Por ejemplo:
erl -sname nodo1 -detached
2) Una vez hecho eso, podés conectarte a un shell corriendo en nodo que
levantaste con algo como (en Linux/Unix):
erl -sname nodo2 -remsh nodo1@`hostname`
3) Una vez que estás en ese shell podrías compilar y cargar el módulo a
mano. Mi sugerencia es que te crees un archivo Emakefile, que tiene una
sintaxis como:
{"src/*", [debug_info, {outdir, "ebin"}, {i, "include"}]}.
4) Y después compiles todos los archivos que hayan cambiado y los cargues
desde el shell remoto a la VM de Erlang haciendo:
make:all([load]).
5) Una vez que hayas terminado NO salgas del shell con q() o h(), porque
estarías bajando el nodo inicial (nodo1). Acordate que lo que hiciste en el
paso (2) fue crear un shell REMOTO. Para salir tenés que presionar Ctrl+G y
despus elegir la opción 'q' del menú que te va a aparecer.
Esa creo que es la forma más simple de hacer lo que necesitás vos. En un
futuro te convendría aprender cómo hacer un release de Erlang y cómo hacer
upgrades del sistema en tiempo de ejecución.
Cualquier otra duda, preguntá.
Saludos,
Juanjo
On Fri, Feb 10, 2012 at 11:49 AM, Winston Sánchez <wsanchez@sidevox.com>wrote:
> EL problema es que tengo el modulo ejecutandose en background y cuando
> necesito hacer un cambio en el codigo me toca detener el proceso compilarle
> y mandar a ejecutar otra vez. estoy probando algunas opciones pero todavia
> o me resulta lo q quiero .... el proceso en background lo hago con el nohup
> en linux.
>
> El 10 de febrero de 2012 09:39, Mariano Guerra <
> luismarianoguerra@gmail.com> escribió:
>
> 2012/2/10 Juan Jose Comellas <juanjo@comellas.org>:
>> > Winston, no se qué tan complejo es lo que tenés que hacer, pero con
>> > code:load_file/1 podés cargar una nueva versión del módulo. Desde el
>> shell
>> > de Erlang lo podés hacer también con l(). Esta es la forma más básica de
>> > hacerlo, pero si estás usando releases tenés formas más complejas que
>> > intentan automatizar el proceso de actualización para cuando tenés
>> > aplicaciones más complejas. Qué es lo que necesitás hacer?
>>
>> yo supuse que lo que quiere hacer es que si compila el modulo de nuevo
>> y le manda un mensaje especial al proceso carga la nueva version.
>>
>
>
Gracias si esta es la mejor opcion la primera parte no la sabia muchas gracias por la recomendacion. ya voy a probar, y si tienes alguna documentacion sobre la manera de hacer los releases en erlang seria de mas ayuda. Gracias por todo a todos. El 10 de febrero de 2012 10:07, Juan Jose Comellas <juanjo@comellas.org>escribió: > 1) Primero de todo, no necesitás usar nohup para levantar la VM de Erlang > en background. Esto lo podés hacer fácilmente pasando el parámetro > "-detached" cuando ejecutás el proceso de la VM. Por ejemplo: > > erl -sname nodo1 -detached > > 2) Una vez hecho eso, podés conectarte a un shell corriendo en nodo que > levantaste con algo como (en Linux/Unix): > > erl -sname nodo2 -remsh nodo1@`hostname` > > 3) Una vez que estás en ese shell podrías compilar y cargar el módulo a > mano. Mi sugerencia es que te crees un archivo Emakefile, que tiene una > sintaxis como: > > {"src/*", [debug_info, {outdir, "ebin"}, {i, "include"}]}. > > 4) Y después compiles todos los archivos que hayan cambiado y los cargues > desde el shell remoto a la VM de Erlang haciendo: > > make:all([load]). > > 5) Una vez que hayas terminado NO salgas del shell con q() o h(), porque > estarías bajando el nodo inicial (nodo1). Acordate que lo que hiciste en el > paso (2) fue crear un shell REMOTO. Para salir tenés que presionar Ctrl+G y > despus elegir la opción 'q' del menú que te va a aparecer. > > Esa creo que es la forma más simple de hacer lo que necesitás vos. En un > futuro te convendría aprender cómo hacer un release de Erlang y cómo hacer > upgrades del sistema en tiempo de ejecución. > > Cualquier otra duda, preguntá. > > Saludos, > > Juanjo > > > > On Fri, Feb 10, 2012 at 11:49 AM, Winston Sánchez <wsanchez@sidevox.com>wrote: > >> EL problema es que tengo el modulo ejecutandose en background y cuando >> necesito hacer un cambio en el codigo me toca detener el proceso compilarle >> y mandar a ejecutar otra vez. estoy probando algunas opciones pero todavia >> o me resulta lo q quiero .... el proceso en background lo hago con el nohup >> en linux. >> >> El 10 de febrero de 2012 09:39, Mariano Guerra < >> luismarianoguerra@gmail.com> escribió: >> >> 2012/2/10 Juan Jose Comellas <juanjo@comellas.org>: >>> > Winston, no se qué tan complejo es lo que tenés que hacer, pero con >>> > code:load_file/1 podés cargar una nueva versión del módulo. Desde el >>> shell >>> > de Erlang lo podés hacer también con l(). Esta es la forma más básica >>> de >>> > hacerlo, pero si estás usando releases tenés formas más complejas que >>> > intentan automatizar el proceso de actualización para cuando tenés >>> > aplicaciones más complejas. Qué es lo que necesitás hacer? >>> >>> yo supuse que lo que quiere hacer es que si compila el modulo de nuevo >>> y le manda un mensaje especial al proceso carga la nueva version. >>> >> >> >
Los releases en Erlang tienen cierta complicación. Antes de empezar a usarlos te recomendaría que estés un poco más cómodo con Erlang. Acá tenés una introducción a cómo usarlos: http://learnyousomeerlang.com/release-is-the-word Lo ideal es primero entender cómo funciona todo y después usar alguna herramienta que te simplifique un poco el proceso. De todas las que usé la más práctica para mi fue rebar, que se usa principalmente para compilar proyectos de Erlang , generar releases y también upgrades. La podés bajar de https://github.com/basho/rebar/ Saludos, Juanjo On Fri, Feb 10, 2012 at 12:17 PM, Winston Sánchez <wsanchez@sidevox.com>wrote: > Gracias si esta es la mejor opcion la primera parte no la sabia muchas > gracias por la recomendacion. ya voy a probar, y si tienes alguna > documentacion sobre la manera de hacer los releases en erlang seria de mas > ayuda. > > Gracias por todo a todos. > > El 10 de febrero de 2012 10:07, Juan Jose Comellas <juanjo@comellas.org>escribió: > > 1) Primero de todo, no necesitás usar nohup para levantar la VM de Erlang >> en background. Esto lo podés hacer fácilmente pasando el parámetro >> "-detached" cuando ejecutás el proceso de la VM. Por ejemplo: >> >> erl -sname nodo1 -detached >> >> 2) Una vez hecho eso, podés conectarte a un shell corriendo en nodo que >> levantaste con algo como (en Linux/Unix): >> >> erl -sname nodo2 -remsh nodo1@`hostname` >> >> 3) Una vez que estás en ese shell podrías compilar y cargar el módulo a >> mano. Mi sugerencia es que te crees un archivo Emakefile, que tiene una >> sintaxis como: >> >> {"src/*", [debug_info, {outdir, "ebin"}, {i, "include"}]}. >> >> 4) Y después compiles todos los archivos que hayan cambiado y los cargues >> desde el shell remoto a la VM de Erlang haciendo: >> >> make:all([load]). >> >> 5) Una vez que hayas terminado NO salgas del shell con q() o h(), porque >> estarías bajando el nodo inicial (nodo1). Acordate que lo que hiciste en el >> paso (2) fue crear un shell REMOTO. Para salir tenés que presionar Ctrl+G y >> despus elegir la opción 'q' del menú que te va a aparecer. >> >> Esa creo que es la forma más simple de hacer lo que necesitás vos. En un >> futuro te convendría aprender cómo hacer un release de Erlang y cómo hacer >> upgrades del sistema en tiempo de ejecución. >> >> Cualquier otra duda, preguntá. >> >> Saludos, >> >> Juanjo >> >> >> >> On Fri, Feb 10, 2012 at 11:49 AM, Winston Sánchez <wsanchez@sidevox.com>wrote: >> >>> EL problema es que tengo el modulo ejecutandose en background y cuando >>> necesito hacer un cambio en el codigo me toca detener el proceso compilarle >>> y mandar a ejecutar otra vez. estoy probando algunas opciones pero todavia >>> o me resulta lo q quiero .... el proceso en background lo hago con el nohup >>> en linux. >>> >>> El 10 de febrero de 2012 09:39, Mariano Guerra < >>> luismarianoguerra@gmail.com> escribió: >>> >>> 2012/2/10 Juan Jose Comellas <juanjo@comellas.org>: >>>> > Winston, no se qué tan complejo es lo que tenés que hacer, pero con >>>> > code:load_file/1 podés cargar una nueva versión del módulo. Desde el >>>> shell >>>> > de Erlang lo podés hacer también con l(). Esta es la forma más básica >>>> de >>>> > hacerlo, pero si estás usando releases tenés formas más complejas que >>>> > intentan automatizar el proceso de actualización para cuando tenés >>>> > aplicaciones más complejas. Qué es lo que necesitás hacer? >>>> >>>> yo supuse que lo que quiere hacer es que si compila el modulo de nuevo >>>> y le manda un mensaje especial al proceso carga la nueva version. >>>> >>> >>> >> >
Ya encontre una solucion para hacerlo con la opcion -remsh del erl para conectarme con un nodo diferente al nodo q se esta ejecutando y en ese shell hacer el upgrade compilando desde ahi gracias por su ayuda. El 10 de febrero de 2012 09:49, Winston Sánchez <wsanchez@sidevox.com>escribió: > EL problema es que tengo el modulo ejecutandose en background y cuando > necesito hacer un cambio en el codigo me toca detener el proceso compilarle > y mandar a ejecutar otra vez. estoy probando algunas opciones pero todavia > o me resulta lo q quiero .... el proceso en background lo hago con el nohup > en linux. > > El 10 de febrero de 2012 09:39, Mariano Guerra < > luismarianoguerra@gmail.com> escribió: > > 2012/2/10 Juan Jose Comellas <juanjo@comellas.org>: >> > Winston, no se qué tan complejo es lo que tenés que hacer, pero con >> > code:load_file/1 podés cargar una nueva versión del módulo. Desde el >> shell >> > de Erlang lo podés hacer también con l(). Esta es la forma más básica de >> > hacerlo, pero si estás usando releases tenés formas más complejas que >> > intentan automatizar el proceso de actualización para cuando tenés >> > aplicaciones más complejas. Qué es lo que necesitás hacer? >> >> yo supuse que lo que quiere hacer es que si compila el modulo de nuevo >> y le manda un mensaje especial al proceso carga la nueva version. >> > >
Hola todos, Una forma para es usar lo que dice Juan ‘code:load_file/1’ Desde una consola nueva haciendo rpc:call/3, para esto debes tener la misma cookie en ambos nodos. Saludos, Ariel. De: erlar@librelist.com [mailto:erlar@librelist.com] En nombre de Winston Sánchez Enviado el: viernes, 10 de febrero de 2012 13:02 Para: erlar@librelist.com Asunto: Re: [erlar] Hola mundo Ya encontre una solucion para hacerlo con la opcion -remsh del erl para conectarme con un nodo diferente al nodo q se esta ejecutando y en ese shell hacer el upgrade compilando desde ahi gracias por su ayuda. El 10 de febrero de 2012 09:49, Winston Sánchez <wsanchez@sidevox.com> escribió: EL problema es que tengo el modulo ejecutandose en background y cuando necesito hacer un cambio en el codigo me toca detener el proceso compilarle y mandar a ejecutar otra vez. estoy probando algunas opciones pero todavia o me resulta lo q quiero .... el proceso en background lo hago con el nohup en linux. El 10 de febrero de 2012 09:39, Mariano Guerra <luismarianoguerra@gmail.com> escribió: 2012/2/10 Juan Jose Comellas <juanjo@comellas.org>: > Winston, no se qué tan complejo es lo que tenés que hacer, pero con > code:load_file/1 podés cargar una nueva versión del módulo. Desde el shell > de Erlang lo podés hacer también con l(). Esta es la forma más básica de > hacerlo, pero si estás usando releases tenés formas más complejas que > intentan automatizar el proceso de actualización para cuando tenés > aplicaciones más complejas. Qué es lo que necesitás hacer? yo supuse que lo que quiere hacer es que si compila el modulo de nuevo y le manda un mensaje especial al proceso carga la nueva version. _____ No se encontraron virus en este mensaje. Comprobado por AVG - www.avg.com Versión: 2012.0.1913 / Base de datos de virus: 2112/4801 - Fecha de publicación: 02/10/12
-module(hola).
-export([hola/0]).
hola() ->
[io:format("~c",[Letra]) || Letra <-
72,111,108,97,44,32,109,117,110,100,111,46,10,83,111,121,32,110,117,101,118,111,32,101,110,32,108,97,32,112,114,111,103,114,97,109,97,99,105,111,110,32,102,117,110,99,105,111,110,97,108,32,101,110,32,103,101,110,101,114,97,108,32,121,32,101,110,32,101,114,108,97,110,103,32,101,110,32,112,97,114,116,105,99,117,108,97,114,46,32,72,97,99,101,32,117,110,32,97,110,105,111,32,109,101,32,104,97,98,105,97,32,99,111,109,112,114,97,100,111,32,101,108,32,108,105,98,114,111,32,100,101,32,74,111,101,32,40,80,114,111,103,114,97,109,109,105,110,103,32,69,114,108,97,110,103,41,32,112,101,114,111,32,110,111,32,104,97,98,105,97,32,112,111,100,105,100,111,32,101,110,103,97,110,99,104,97,114,46,32,76,117,101,103,111,32,97,115,105,115,116,105,32,101,110,32,108,97,32,101,99,105,32,97,108,32,99,117,114,115,111,32,100,101,32,34,108,105,98,114,101,114,105,97,115,32,100,101,32,115,101,103,117,114,105,100,97,100,32,99,111,110,32,112,121,116,104,111,110,32,121,32,104,97,115,107,1
01,108,108,34,32,121,32,100,101,99,105,100,105,32,116,111,109,97,114,32,101,108,32,116,111,114,111,32,112,111,114,32,108,97,115,32,97,115,116,97,115,46,32,67,111,110,115,101,103,117,105,32,34,69,114,108,97,110,103,32,97,110,100,32,79,84,80,32,105,110,32,97,99,116,105,111,110,34,32,121,32,108,101,32,100,105,32,100,117,114,111,32,104,97,115,116,97,32,113,117,101,32,112,97,115,111,32,108,97,32,112,97,114,116,101,32,100,101,32,101,114,108,97,110,103,32,121,32,99,111,109,101,110,122,111,32,79,84,80,46,32,65,104,105,32,109,101,32,100,105,106,101,44,32,104,97,121,32,113,117,101,32,114,101,102,111,114,122,97,114,32,121,32,114,101,103,114,101,115,101,32,97,108,32,112,114,105,109,101,114,32,108,105,98,114,111,32,121,32,97,113,117,105,32,101,115,116,111,121,46,32,10,67,111,109,111,32,116,97,114,101,97,32,109,101,32,104,101,32,112,114,111,112,117,101,115,116,111,32,104,97,99,101,114,32,101,110,32,101,108,32,116,114,97,98,97,106,111,32,117,110,32,99,108,105,101,110,
116,101,32,112,97,114,97,32,115,97,110,105,116,121,32,99,104,101,99,107,32,100,101,32,103,114,117,112,111,115,32,100,101,32,106,105,114,97,32,112,101,103,97,110,100,111,108,101,32,97,32,108,97,32,97,112,105,32,106,115,111,110,32,114,101,115,116,44,32,113,117,101,32,121,97,32,101,115,116,97,32,98,97,115,116,97,110,116,101,32,98,105,101,110,32,121,32,112,111,114,32,97,102,117,101,114,97,32,117,110,32,103,101,110,101,114,97,100,111,114,32,100,101,32,97,108,116,101,114,97,99,105,111,110,101,115,32,108,101,101,116,32,40,108,51,51,116,41,32,112,97,114,97,32,117,110,32,111,102,102,108,105,110,101,32,112,97,115,115,119,111,114,100,32,99,114,97,99,107,101,114,32,113,117,101,32,121,97,32,116,101,110,105,97,32,104,101,99,104,111,32,101,110,32,112,104,112,44,32,102,117,110,99,105,111,110,97,32,112,101,114,111,32,101,115,32,109,117,121,32,109,101,106,111,114,97,98,108,101,44,32,115,111,98,114,101,32,116,111,100,111,32,112,111,114,32,113,117,101,32,110,111,32,117,115
,101,32,98,105,101,110,32,108,97,32,114,101,99,117,114,115,105,111,110,32,121,32,109,101,32,99,111,110,115,117,109,101,32,100,101,109,97,115,105,97,100,97,32,109,101,109,111,114,105,97,46,10,84,101,110,103,111,32,116,97,110,116,97,115,32,112,114,101,103,117,110,116,97,115,32,113,117,101,32,104,97,99,101,114,44,32,104,97,121,32,116,97,110,116,111,32,113,117,101,32,105,103,110,111,114,111,32,112,101,114,111,32,97,100,105,118,105,110,111,44,32,113,117,101,32,118,111,121,32,97,32,105,114,32,103,101,110,101,114,97,110,100,111,32,98,97,115,116,97,110,116,101,115,32,109,101,110,115,97,106,101,115,44,32,111,114,100,101,110,97,100,105,116,111,44,32,117,110,32,116,101,109,97,32,112,111,114,32,109,97,105,108,46,32,83,111,121,32,101,108,32,113,117,101,32,99,111,109,111,32,97,108,117,109,110,111,32,113,117,101,32,115,101,32,115,105,101,110,116,97,32,97,100,101,108,97,110,116,101,32,121,32,112,114,101,103,117,110,116,97,32,121,32,99,111,109,111,32,100,111,99,101,110,
116,101,32,110,117,110,99,97,32,110,105,101,103,97,32,117,110,32,34,110,111,32,115,101,34,10,10,67,97,114,108,111,115,32,80,97,110,116,101,108,105,100,101,115,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,104,116,116,112,58,47,47,115,101,103,117,114,105,100,97,100,45,97,103,105,108,101,46,98,108,111,103,115,112,111,116,46,99,111,109,47,10,10]],
ok.
On Tue, Jan 17, 2012 at 1:40 AM, Carlos Pantelides <carlos_pantelides@yahoo.com> wrote: > -module(hola). > > -export([hola/0]). > bienvenido! tu hola mundo fue bastante detallado asi que no me quedan muchas preguntas para hacerte, solo esta: de que lado estas con respecto a la situacion de los caramelos media hora? una delicia o una porqueria? saludos!
> de que lado estas con respecto a la situacion de los caramelos media > hora? una delicia o una porqueria? Es una pregunta delicada y comprometida. Me resulta ajena la polémica, ya que hace mucho que como pocos, muy pocos caramelos en general. Trabajo cerca de un mayorista y hace un tiempo traje un bolsa de medio o un kilo de los susodichos. No me gané muchos amigos. Nunca he sido un adicto a tales caramelos, pero no me disgustan, me empalagan. No son los que más me gustan, sin embargo, si tuviera que morir por una bolsa de caramelos, de media hora sería. Charli
Para el lazy: ==== Hola, mundo. Soy nuevo en la programacion funcional en general y en erlang en particular. Hace un anio me habia comprado el libro de Joe (Programming Erlang) pero no habia podido enganchar. Luego asisti en la eci al curso de "librerias de seguridad con python y haskell" y decidi tomar el toro por las astas. Consegui "Erlang and OTP in action" y le di duro hasta que paso la parte de erlang y comenzo OTP. Ahi me dije, hay que reforzar y regrese al primer libro y aqui estoy. Como tarea me he propuesto hacer en el trabajo un cliente para sanity check de grupos de jira pegandole a la api json rest, que ya esta bastante bien y por afuera un generador de alteraciones leet (l33t) para un offline password cracker que ya tenia hecho en php, funciona pero es muy mejorable, sobre todo por que no use bien la recursion y me consume demasiada memoria. Tengo tantas preguntas que hacer, hay tanto que ignoro pero adivino, que voy a ir generando bastantes mensajes, ordenadito, un tema por mail. Soy el que como alumno que se sienta adelante y pregunta y como docente nunca niega un "no se" Carlos Pantelides ----------------- http://seguridad-agile.blogspot.com/ ===== Saludos, Nahuel Greco. On Mon, Jan 16, 2012 at 9:40 PM, Carlos Pantelides <carlos_pantelides@yahoo.com> wrote: > -module(hola). > > -export([hola/0]). > > hola() -> > [io:format("~c",[Letra]) || Letra <- > 72,111,108,97,44,32,109,117,110,100,111,46,10,83,111,121,32,110,117,101,118,111,32,101,110,32,108,97,32,112,114,111,103,114,97,109,97,99,105,111,110,32,102,117,110,99,105,111,110,97,108,32,101,110,32,103,101,110,101,114,97,108,32,121,32,101,110,32,101,114,108,97,110,103,32,101,110,32,112,97,114,116,105,99,117,108,97,114,46,32,72,97,99,101,32,117,110,32,97,110,105,111,32,109,101,32,104,97,98,105,97,32,99,111,109,112,114,97,100,111,32,101,108,32,108,105,98,114,111,32,100,101,32,74,111,101,32,40,80,114,111,103,114,97,109,109,105,110,103,32,69,114,108,97,110,103,41,32,112,101,114,111,32,110,111,32,104,97,98,105,97,32,112,111,100,105,100,111,32,101,110,103,97,110,99,104,97,114,46,32,76,117,101,103,111,32,97,115,105,115,116,105,32,101,110,32,108,97,32,101,99,105,32,97,108,32,99,117,114,115,111,32,100,101,32,34,108,105,98,114,101,114,105,97,115,32,100,101,32,115,101,103,117,114,105,100,97,100,32,99,111,110,32,112,121,116,104,111,110,32,121,32,104,97,115,107,1 > 01,108,108,34,32,121,32,100,101,99,105,100,105,32,116,111,109,97,114,32,101,108,32,116,111,114,111,32,112,111,114,32,108,97,115,32,97,115,116,97,115,46,32,67,111,110,115,101,103,117,105,32,34,69,114,108,97,110,103,32,97,110,100,32,79,84,80,32,105,110,32,97,99,116,105,111,110,34,32,121,32,108,101,32,100,105,32,100,117,114,111,32,104,97,115,116,97,32,113,117,101,32,112,97,115,111,32,108,97,32,112,97,114,116,101,32,100,101,32,101,114,108,97,110,103,32,121,32,99,111,109,101,110,122,111,32,79,84,80,46,32,65,104,105,32,109,101,32,100,105,106,101,44,32,104,97,121,32,113,117,101,32,114,101,102,111,114,122,97,114,32,121,32,114,101,103,114,101,115,101,32,97,108,32,112,114,105,109,101,114,32,108,105,98,114,111,32,121,32,97,113,117,105,32,101,115,116,111,121,46,32,10,67,111,109,111,32,116,97,114,101,97,32,109,101,32,104,101,32,112,114,111,112,117,101,115,116,111,32,104,97,99,101,114,32,101,110,32,101,108,32,116,114,97,98,97,106,111,32,117,110,32,99,108,105,101,110, > 116,101,32,112,97,114,97,32,115,97,110,105,116,121,32,99,104,101,99,107,32,100,101,32,103,114,117,112,111,115,32,100,101,32,106,105,114,97,32,112,101,103,97,110,100,111,108,101,32,97,32,108,97,32,97,112,105,32,106,115,111,110,32,114,101,115,116,44,32,113,117,101,32,121,97,32,101,115,116,97,32,98,97,115,116,97,110,116,101,32,98,105,101,110,32,121,32,112,111,114,32,97,102,117,101,114,97,32,117,110,32,103,101,110,101,114,97,100,111,114,32,100,101,32,97,108,116,101,114,97,99,105,111,110,101,115,32,108,101,101,116,32,40,108,51,51,116,41,32,112,97,114,97,32,117,110,32,111,102,102,108,105,110,101,32,112,97,115,115,119,111,114,100,32,99,114,97,99,107,101,114,32,113,117,101,32,121,97,32,116,101,110,105,97,32,104,101,99,104,111,32,101,110,32,112,104,112,44,32,102,117,110,99,105,111,110,97,32,112,101,114,111,32,101,115,32,109,117,121,32,109,101,106,111,114,97,98,108,101,44,32,115,111,98,114,101,32,116,111,100,111,32,112,111,114,32,113,117,101,32,110,111,32,117,115 > ,101,32,98,105,101,110,32,108,97,32,114,101,99,117,114,115,105,111,110,32,121,32,109,101,32,99,111,110,115,117,109,101,32,100,101,109,97,115,105,97,100,97,32,109,101,109,111,114,105,97,46,10,84,101,110,103,111,32,116,97,110,116,97,115,32,112,114,101,103,117,110,116,97,115,32,113,117,101,32,104,97,99,101,114,44,32,104,97,121,32,116,97,110,116,111,32,113,117,101,32,105,103,110,111,114,111,32,112,101,114,111,32,97,100,105,118,105,110,111,44,32,113,117,101,32,118,111,121,32,97,32,105,114,32,103,101,110,101,114,97,110,100,111,32,98,97,115,116,97,110,116,101,115,32,109,101,110,115,97,106,101,115,44,32,111,114,100,101,110,97,100,105,116,111,44,32,117,110,32,116,101,109,97,32,112,111,114,32,109,97,105,108,46,32,83,111,121,32,101,108,32,113,117,101,32,99,111,109,111,32,97,108,117,109,110,111,32,113,117,101,32,115,101,32,115,105,101,110,116,97,32,97,100,101,108,97,110,116,101,32,121,32,112,114,101,103,117,110,116,97,32,121,32,99,111,109,111,32,100,111,99,101,110, > 116,101,32,110,117,110,99,97,32,110,105,101,103,97,32,117,110,32,34,110,111,32,115,101,34,10,10,67,97,114,108,111,115,32,80,97,110,116,101,108,105,100,101,115,10,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,10,104,116,116,112,58,47,47,115,101,103,117,114,105,100,97,100,45,97,103,105,108,101,46,98,108,111,103,115,112,111,116,46,99,111,109,47,10,10]], > ok.
buenas!, mi nombre es Pablo Polvorin, vivo en Tandil provincia de Bs. As.
el hola munda de rigor:
spawn(fun() -> receive hola -> io:format("Hola!") end end) ! hola.
En mi caso, el primer contacto con erlang fue en el 2006, por medio de
ejabberd. El lenguaje me llamo mucho la atencion, y
como buen curioso aproveche para usarlo en un proyectito que justo en
ese momento estaba por empezar, un -simple- emulador de readers RFID.
Luego por un año mas o menos no volvi a trabajar en erlang, hasta
finales del 2007 donde, tiempo libre mediante,
realize algunas mejoras en tsung (una herramienta de load testing).
Desde 2008 trabajo en Process One, principalmente con ejabberd, tsung
y exmpp (biblioteca para el protocolo xmpp escrita en
erlang).
Saludos a todos,
parece que no somos tan poquitos como uno suponia! ;)
--
Pablo Polvorin
ProcessOne
Hola Pablo y bienvenido. Será chiquito el mundo, yo te envié uno parches para exmpp para facilitar el uso de pubsub, y suponía que francés no eras. Veo que hay varios argentinos trabajando para ProcessOne Saludos Álvaro On Jun 29, 2010, at 9:11 PM, Pablo Polvorin <pablo.polvorin@process-one.net> wrote: > buenas!, mi nombre es Pablo Polvorin, vivo en Tandil provincia de Bs. As. > > el hola munda de rigor: > spawn(fun() -> receive hola -> io:format("Hola!") end end) ! hola. > > En mi caso, el primer contacto con erlang fue en el 2006, por medio de > ejabberd. El lenguaje me llamo mucho la atencion, y > como buen curioso aproveche para usarlo en un proyectito que justo en > ese momento estaba por empezar, un -simple- emulador de readers RFID. > > Luego por un año mas o menos no volvi a trabajar en erlang, hasta > finales del 2007 donde, tiempo libre mediante, > realize algunas mejoras en tsung (una herramienta de load testing). > > Desde 2008 trabajo en Process One, principalmente con ejabberd, tsung > y exmpp (biblioteca para el protocolo xmpp escrita en > erlang). > > Saludos a todos, > parece que no somos tan poquitos como uno suponia! ;) > > -- > Pablo Polvorin > ProcessOne
Jaja, muy bueno lo de Loco Arts, Saludos, Alvaro On Jun 25, 2010, at 9:33 PM, Fernando Benavides wrote: > Hola erlangueros, > > Soy Fernando Benavides y me dicen "El Brujo". Soy desarrollador Erlang desde hace 2 años aproximadamente. Vivo en Monte Castro (Ciudad de Buenos Aires) y actualmente trabajo en Novamens. Entre los varios proyectos en los que trabajé, puedo mostrarles erfb pues es público y también, aunque desarrollado en Haskell, los invito a observar mi proyecto de tesis: λPage. > Me gustó mucho encontrar una lista de usuarios Erlang en mi idioma, pues es muy bueno saber que uno no está solo en esto. Espero poder contribuir y participar mucho en ella :) > > Por último, tal como lo sugiere la página principal del grupo, les comparto una versión de Hola Mundo inspirada en LocoArts, espero que les guste :) > > Saludos para todos > > %%%------------------------------------------------------------------- > %%% @author Fernando Benavides <greenmellon@gmail.com> > %%% @doc Saludo para primer mensaje a la lista erlar@librelist.com basado en LocoArts > %%% @reference Idea tomada de: <a href="http://www.locoarts.com.ar">este sitio web</a> > %%% @end > %%%------------------------------------------------------------------- > -module(hola_erlar). > -author('Fernando Brujo Benavides <greenmellon@gmail.com>'). > > -export([saludame_como/1]). > > %% @spec saludame_como(el_viejo | carlitox | alejo | valentina | john) -> atom(). > %% @doc El programa saluda al usuario > -spec saludame_como(el_viejo | carlitox | alejo | valentina | john) -> atom(). > saludame_como(el_viejo) -> 'hola, viteh'; > saludame_como(carlitox) -> > {_,_,Micro} = erlang:now(), > case Micro rem 2 of > 0 -> 'hola, vengo a flotar'; > 1 -> 'hola, vengo a revolear las patas' > end; > saludame_como(alejo) -> 'hoooolaa!'; > saludame_como(valentina) -> 'tiiiiiiiiiiiiiiiiiii'; > saludame_como(john) -> 'mi nombre es john, vengo a reparar la tuberia...'.