-->

Bitwise Magazine e Smalltalk Fazendo a coisa certa.

REPOS 1.3 b1

August 3rd, 2005

Repository of Erlang-Projects.Org Software (REPOS) é uma imagem (.iso) com uma coleção de aplicativos prontos para execução. Como são 229MiB, você pode gravar a imagem em um CD ou PenDrive ou copiar para o disco rígido. Depois é só arregaçar as mangas e baixar a cabeça. Não importa se você está no Windows, Linux ou Mac.

Não é um LiveCD. Apenas possui Erlang/OTP R10B-6 (última versão) para as três plataformas citadas anteriormente e os aplicativos, prontos para rodar.

J-EAI (Jabber-based Enterprise Application Integration), que é uma plataforma para a integração de aplicações, não apenas para uma empresa mas como também de organizações diversas.

Yaws (Yet Another Webserver) que é um servidor HTTP de alta performance que pode ser utilizado isoladamente ou como parte (embedded) de uma aplicação em Erlang.

ejabbered, um servidor de alta performance para mensagens instantâneas. Também permite que os usuários se comuniquem com outras plataformas como AOL Messenger, ICQ, MSN, et Yahoo Messenger.

EUnit, para criar testes automatizados para as aplicações.

Dialyzer (DIscrepancy AnaLYZer for ERlang programs) que faz uma análise estática e identifica discrepâncias como erros de digitação, código que nunca é executado, testes redundnates, bytecode para a máquina virtual que pode se inseguro etc, em uma aplicação ou todos os módulos.

Esdl (SDL graphic library) para que os programas tenham acesso as bibliotecas SDL e Opengl. Permite que o Wings3D crie coisinhas assim.

Wings 3D (Modelador 3D) é um programa para modelagem tri-dimensional que roda no Winows, Linux e Mac, importando e exportando arquivos em diversos formatos como 3D Studio, Adobe Illustrator, etc.

SSH para implementar os protocolos SSH, SFTP e programas distribuídos em Erlang utilizando SSH.

IDX-Tsunami para a simulação e bechmark, gerando grande tráfego para os protocolos HTTP, HTTPS, Jabber e SOAP. (não roda no Windows :-)

BTT (Bluetail Ticket Tracker), para criação, armazenamaento e rastreamento de tickets. Um ticket descreve a emissão de alguma coisa como relatório de problemas, algo para fazer, etc. Pode ser ativado a função de alerta por email que irá avisar o responsável sempre que um novo ticket for emitido para ele.

Resumindo, uma idéia muito boa para um linguagem/ambiente também interessante. Evita que o usuário instale alguma coisa no computador (muitas vezes ele nem tem condições/permissões para tal, mas permite que o mesmo possa ambiente.

Outro aspecto que é muito interessante é a possibilidade de apresentar um determinado produto a um cliente sem a necessidade de instalação, tendo sempre um ambiente confiável (que não foi alterado como seria o caso de um CD) entre as apresentações. Até mesmo pode surgir uma oportunidade de apresentar o produto em uma situação qualquer. Basta pegar o CD ou a PenDrive e ir em frente. Sim, poderia ter um vídeo demosntrando o produto. Mas um bom vídeo não ficaria com um tamanho muito menor, sem contar a necessidade do cliente ter um programa para a reprodução do mesmo e a não possibilidade de demonstrar casos específicos.

Agora é só baixar, gravar em um CD, PenDrive, etc e testar. Só não esqueça do ponto para encerrar o comando no modo interativo. Aproveite o modo interativo para fazer alguns teste para ir treinando. :-)

1> Dobro = fun (X) -> 2 * X end.
#Fun
2> Dobro(345).
690
3> [P,S|R] = [1,2,3,4,5,6,7,8].
[1,2,3,4,5,6,7,8]
4> P.
1
5> S.
2
6> R.
[3,4,5,6,7,8]
7> toolbar:start().

8> TestaNúmero = fun (X) when X>0 -> positivo;
8> (X) when X negativo; (X) -> zero end.
#Fun
9> TestaNúmero(4).
positivo
10> TestaNúmero(-8).
negativo
11> TestaNúmero(0).
zero
12> filename:split("a:\\msdev\\include").
["a:/","msdev","include"]
13> 36#ERLANG.
892869676
14> http_base_64:encode("erlang").
"ZXJsYW5n"
15> lists:seq(1,20,5).
[1,6,11,16]
16> lists:zip([1,2,3],[a,b,c]).
[{1,a},{2,b},{3,c}]
17> lists:partition(fun(A) -> A rem 2 == 1 end, [1,2,3,4,5,6,7]).
{[1,3,5,7],[2,4,6]}
18> string:tokens("abc defxxghix jkl", "x ").
["abc","def","ghi","jkl"]
19> timer:apply_after(5000, io, format, ["~nHello World!~n", []]).
{ok,{1123028382850000,#Ref}}
20>
Hello World! %%% cinco segundos depois

Entry Filed under: Erlang