HommerCorra, corra, você tem que saber isto, do contrário você pode ser chamado de burro, ou as pessoas podem não lhe achar tão inteligente, corra, eles estão chegando, vá logo rapaz, já não basta você não ter acreditado em Ruby, e ter escrito uma aplicação em RubyOnRails, vamos, não há tempo a perder, você precisa ser “fashion” e logo…logo isso vai surgir no café da empresa, e se você fizer cara de pânico ao receber a pergunta “Daí fulano, você tem usado Scala?”.

Piadas a parte, tenho visto várias movimentações sobre esta nova linguagem, talvez a minha área de atuação me leve a não ter muito interesse nessas milhões de coisas que surgem todos os dias, mas já vi alguns posts de pessoas dignas de respeito sobre esta linguagem. Vou esperar uma oportunidade de fazer algo útil com ela, enquanto isso, eu ainda consigo sobreviver sabendo apenas Java :)
Documentações: http://www.scala-lang.org

Em ambientes de integração, onde falamos de milhares de transações por dia ou por hora, minuto etc, é muito importante atentar para as atividades que acontecem e com isto tomamos alguma ação, para isto damos o nome de “evento”.

CEP vem de (Complex Event Processing) e ESP (Event Stream Processing), ok, siglas bonitas, para quando preciso usar CEP?

  • Imagine processar milhões de verificações por dados de objetos e com base nissso tomar algumas decisões, seja para monitoração ou gerar eventos que executem outras atividades.
  • CEP e ESP estão focados em processamento de grandes volumes.
  • É fácil confundir CEP com RulesEngines, mas uma coisa é o Pattern Matcher e outra coisa é o processamento de grandes volumes de informações de objetos, ainda que numa janela de tempo, onde alguns Garbage Collectors tenham sido executados.
  • Como os produtos de CEP têm implementações de Pattern Matching não tão poderosas, a idéia é juntar o poder de do Drools (Engine Rules) e CEP.

Vamos imaginar um cenário de atividades de transito, como um evento : “O veículo mudou de jurisdição”, quais os fatores estão envolvidos?

  1. Exemplo, meu carro é licenciado no Detran-Rio Grande do Sul (claro que este processo é apenas de exemplo)
  1. O Detran-SP envia todas as multas aplicadas no estado de SP para um broker do Denatran (por exemplo um ESB ou um SCA)
  2. O Denatram envia num mês milhões de transações enviando todas as multas para as jurisdições regionais
  3. O Detran-RS recebe um grande lote de notificações
  4. Dessas notificações que foram processadas, por hipótese (claro :) ), há várias infrações do meu veículo num periodo de 2 anos.
  5. Podemos chegar a conclusão que este veículo pode ter mudado de jurisdição e uma notificação via e-mail poderia ser enviado para o proprietário.

A grande questão acima, não é a apenas a regra, mas o volume de transações, sendo assim, o uso de CEP aliado a um ESB, é algo que particularmente me chama a atenção, um barramento de serviços aliado a algo além de um simples BAM.

O Drools em suas próximas versões estará suportando CEP, nosso amigo brasileiro Edson Tirelli entre as muitas coisas, está trabalhando exatamente nestes aspectos no momento, tive acesso a um trunk que já contempla algumas coisas relacionadas a CEP já no Drools.

Se você tiver um maior interesse, recomendo utilizar a mesma implementação que tenho usado para estudo, que é o Esper, que inclusive tem uma versão a Java, e uma .net.

Bons estudos

E

Falamos outro dia sobre REST aqui neste blog, estudei a implementação de referência do JAX-RS Jersey, funciona super bem, baixei os fontes, é de fato simples utilizá-la dentro do NetBeans, tive alguns problemas de classloader dentro do JBoss, mas nada que adaptar a forma de carregamento e procura dos resources do Jersey, não fizessem funcionar. Para estudos e quem sabe até algumas coisas em produção o recomendaria.

Edgar e Bill Burke numa festa do hotel W no JavaOne2007

Há um cara na JBoss que respeito muito que é o Bill Burke, e não por ele ter pagado várias Guiness para mim e outros amigos no JavaOne 2007, mas principalmente porque o cara é de fato um cara que onde ele se mete, as coisas acabam saindo do outro lado, sendo assim, mesmo com o jeitão dele meio "polemico" as vezes, lançou o projeto RestEasy, que é a implementação REST da JBoss.Pequeno Exemplo com EasyRest

O EasyRest suporta tanto os mecanimos de publicação, como os de clientes, e até mesmo os conceitos de Comet do Grizzlly, abaixo um pequeno exemplo :

  1. package rest;
  2.  
  3. import javax.ws.rs.GET;
  4. import javax.ws.rs.Path;
  5. import javax.ws.rs.ProduceMime;
  6. import javax.ws.rs.ext.Provider;
  7.  
  8. @Path("service")
  9. @ProduceMime("text/plain")
  10. public class Subscritption {
  11.  
  12. @GET
  13. public String status() {
  14.  
  15. return "JBoss REST Works!";
  16. }
  17.  
  18. }

Para acessar este seviço, basta digitar no browser o endereco:

http://localhost:8080/jboss-rest/service

Um outro exemplo seria por exemplo uma pesquisa de Voos para o dia de hoje para uma agencia de turismo:

  1. @ProduceMime("text/plain")
  2. @Path("/trip")
  3. public class TripService {
  4.  
  5. @GET
  6. @Path("/flight/today/{from}/{to}")
  7. public String getFlightsFromToday
  8. (@PathParam("from")String from,
  9. @PathParam("to")String to){
  10. //here you can perform your search and ruturn simple plain text as the return
  11. //but if you want, you can change to XML
  12.  
  13. return String.format
  14. ("Performing searching from %s to %s",
  15. from,
  16. to);
  17. }
  18. }

A url para chamar este serviço seria:

http://localhost:8080/restsample/trip/flight/today/gru/bel

Claro, este pode não ser dos melhores tutoriais, em breve algumas coisas mais interessantes por aqui.

[]s

E

Ainda que haja o JustJava, os eventos de Java realizados pelos JUGs em algumas capitais vem dando lugar a eventos super profissionais, a exemplo de São Paulo, teremos no dia 18 de Maio o "Falando em Java", que é organizada pela respeitadissima empresa de treinamento Caelum, onde profissionais como: Paulo e Guilherme Silveira, Fabio Kung, Alexandre Magno e até Emmanuel Bernard (Hibernate/JBoss), e outras feras, estarão apresentando vários tópicos interessantes sobre tecnologia.

Outro evento de Java, ainda esse ano deverá ser o The Developers Conference, realizado pela GlobalCode, que trará também um super evento para a comunidade, o evento se realizará em São Paulo, na última semana de Julho.

De fato, isso é muito importante, mostra renovação, nova motivação, novas perspectivas e objetivos. Parabens a comunidade.

E

Olá Pessoal, deveria ter feito este post no dia 17 de noite, mas não tive tempo, e com a chegada da minha noiva me visitando, não poderia deixar de dar atenção a ela =), sendo assim, para quem pôde ter ido as 19:00 da quinta 17/04 ir até a Sala Richard Stalmann meu muito obrigado.
Obrigado também as pessoas que fizeram perguntas, que pararam para conversar nos corredores, em geral a Organização do FISL que sempre dá um show. E ao Google por ter me pago um jantar no CTG35 de Porto Alegre, de fato é uma experiência que você que ainda foi, definitivamente deve ir. Infelizmente não pude ficar o resto do evento, mas tenho certeza que será ótimo. Até o próximo evento, no caso,o da minha agenda é em Recife no Forum de SL de lá na próxima quarta dia 24, e aguardem o JBoss 5.0 final, que a priori deve chegar em Julho/Ago 2008. Veja os slides aqui:

Clique aqui para fazer o download

WebServices é uma grande tecnologia, mas lembro que quado trabalhei num grande projeto da Caixa, a missão era transacionar dados via um Servlet e um XML que o biding era feito via JAXB. Isso, fazem quase 4 anos, nesse tempo o XStream ficou muito mais famoso, e mais performático, enquanto SOAP, vem melhorando, ganhando força em padronizações e enriquecendo em termos de complexidade. Eis que surge o REST, que traz uma forma bem mais simples como resposta para integração de sistemas que envolvam XML ou até mesmo outros formatos de metadados.

Numa nova demo-from-the-hell, pro JBoss ESB, fiz uma implementação de um servico em REST, usando simples Servlets e haja expressões regulares, para criar um serviço simples, mas também aproveitei para estudar o framework "REstLet".

No REst a liberdade impera, sendo assim, defini que meu protocolo seria:

http://meuservico:8080/rest/query/*/from/verticais

Com base nesta URL, minha linguagem de protocolo diz: Consulte todos de verticais , pronto isto é suficiente para definir meu serviço. Como Java agora está ser tornando uma droga de CLR(common language run-time) como a do .net, meu cliente mais uma vez usa uma linguagem trivial: O ObjectPascal, ou DelphiLanguage. Não que eu seja ainda alguém que ainda lembre de vários detalhes do Delphi, mas o cliente funcionou muito bem, utilizando os componentes Indy Components.

Trazendo para o mundo do ESB, estou na fase de como ativar eventos e notificações quando o Rest é chamado, isto eu já vi que é possível, com o RestLET. As pesquisas continuam. Em próximas apresentações por algum evento ai a fora, essa demo será uma das que devem ser apresentadas.

[]s

Eu sou daqueles caras que odeia pedir favor, afinal nunca sabemos quando a pessoa está 100% disponível para ajudar,  para evitar estressar  meus colegas eu pago a TeHospedo para hospedar meu site, um serviço relativamente caro, não me dão nenhum bonus, e vao lá e cortam o serviço mais rápido que a EletroPaulo :) .

Agora paguei 6 meses, eu disse 6 meses! Eu juro que nesse periodo vou fazer um backup do Wordpress, do meu banco Mysql, dos meus arquivos e tentar ter uma solução tao inteligente quanto a dos meus amigos Claudio Miranda e Paulo Jerônimo, que tem as infras dedicadas para fazer o que quiser :) .

Mas se a TeHospedo quiser oferecer algo, eu posso dizer que serviço é carinho, mas é bom, além de funcionar Java, Ruby e PHP muito bem, todas estas já testadas no meu dominio.

Bom, vejo voces sem cair agora por no mínimo 6 meses =)

Abracos

E

Não sou tão monstro em comandos Linux quanto meu amigo Cláudio Miranda , mas um comandinho que vem me ajudado bastante é o :

ps aux | grep =run.sh | grep -v grep | awk '{ print $6 }'
Que imprime pra mim quanto o JBoss está gastando de memória residente, não é a única métrica importante, mas é um sinal importante para medir quanto que alguns tunnings estão ou não surtindo efeito.

Outra dica interessante é o comando:

watch -d2 "ps aux | grep =run.sh | grep -v grep | awk '{ print \$6 }'"

Que mostra a mudança do valor dinamicamente de 2 em 2 segundos.

Há 5 anos atrás tinhamos uma necessidade de integração em um cliente:

a) Usar Java na camada Servidora aproveitando a performance e suporte transacional dos EJBs

b) Usar Delphi como cliente

Eis então que durante alguns dias trabalhei na criação de um componente, o qual demos o nome de Jacode, não me pergunte a origem do nome, talvez eu estivesse bebado demais. Este projeto era embasado em vários conceitos de interoperabilidade, segurança e governança que hoje é bastante presente nas demandas de SOA de mercado. Vários outros desenvolvedores, da minha antiga empresa (Argos), contribuiram, estes caras, a maioria está hoje no Rio de Janeiro, São Paulo e Belo Horizonte, entre eles: Ricado Ferreira(Squadra), David Farias(Squadra) e Fábio Cabral(IBM). Este componente é usado até hoje pelo cliente, e o que pensavámos que fosse nos deixar pelo menos bem de vida 5 anos atrás, ficou para uso de somente um cliente, sendo assim, resolvi buscar os fontes de muitos anos atrás e tentar readaptá-lo para trabalhar em conjunto com o JBoss ESB, tive um tempo estes últimos dias e isto foi possível, apesar de que ainda há vários java.util.Vectors espalhados pelo código, e sem usar nada de Java 5.

Usando o Jacode com JBoss ESB

A idéia é doar/integrar os códigos do Jacode no core do ESB, isto se os caras quiserem/deixare/estiverem de bom humor e etc, que basicamente são 2 classes. a principal: org.jboss.soa.esb.ext.transformers.jacode.Jacode possui um método chamado de : getData(java.sql.Connection conn, int xmlType, int maxResults, String sql); este por sua vez devolve dados através de qualquer camada do JBoss ESB, podendo ser um Socket, ou para facilitar a vida um WebService. Veja exemplo da chamada:

@WebMethod(operationName = "getData")
public String getData(@WebParam(name = "sql")
String sql) {
try {
jacode = new Jacode();
return jacode.getData(ConnectionFactory.getConnection(), Jacode.XMLDELPHI, 30, sql) ;
} catch (SQLException ex) {
Logger.getLogger(DelphiBridge.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(DelphiBridge.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}

Na Cadama Delphi

Na camada Delphi, existe a classe da VCL TFieldDataLink que alimenta os DataControls através da referência a um DataSet, no caso este DataSet é um Stream que é o resultado String de nosso método, que é carregado para dentro de um componente TClientDataSet, que por sua vez possuirá o resultado em forma de um DataSet, exibindo os dados num DBGrid por exemplo, ou alguma ferramenta de Cubo de Decisão ou Relatório do Delphi. Veja o código de Exemplo na camada Delphi:

procedure TForm1.Button1Click(Sender: TObject);
var
service: DelphiBridge;
stream: TStringStream;
begin
service:= HTTPRIO1 as DelphiBridge;
ClientDataSet1.close;
stream:=TStringStream.create(service.getProductsSLAs);
ClientDataSet1.LoadFromStream(stream);
ClientDataSet1.open;
ShowMessage('Data Loaded');
end;

Integração é a Chave

Como você pode observar não há limites para as integrações no JBoss ESB, o que mais me chama a atenção é que estas são as realidades quando falamos de SOA no Brasil, os exemplos dos livros sempre falam de ERPs magnificos como PeopleSoft, SAP, mas quando pegamos algo em Delphi, VB, Clipper ou DataFlex, aí sim vem a pergunta se realmente sua ferramenta lhe ajuda a integrar sistemas de forma produtiva e realista, ou não!

Se você quiser assistir uma DEMO (meio complicada de criar pois o Wink no Linux é osso), clique aqui. 

[]s

No link: http://www.forbes.com/2007/03/27/07forbes2000_map.html

Você pode ver as 2000 maiores empresas do mundo, entre elas algumas brasileiras, no caso a mais bem colocada é a Petrobrás ocupando o número 50 no ranking do Forbes, ainda atrás de até várias empresas de tecnologias norte-americanas.

A lista das brasileira é a seguinte:

Rank Company Country Industry Sales ($bil) Profits ($bil) Assets ($bil) Market Vaue ($bil)
50 Petrobras-Petróleo Brasil Brazil Oil & Gas Operations

74.12

12.14 95.61 99.29
130 Vale do Rio Doce Brazil Materials 20.82

6.17

57.60 77.38
147 Banco Bradesco

Brazil

Banking 29.84 2.37 124.38

37.21

166 Banco do Brasil Brazil

Banking

22.15 2.78 138.68 26.78
330 Itaúsa Brazil Banking

13.87

0.98 66.36 17.18
411 Unibanco Group Brazil Banking 9.88

0.80

48.56 16.49
572 Eletrobrás

Brazil

Utilities 8.89 0.42 51.09

12.02

763 Usiminas Brazil

Materials

5.58 1.68 7.43 10.19
846 CSN-Cia Siderurgica Brazil Materials

4.29

0.86 10.27 9.02
863 Tele Norte Leste Brazil Telecommunications Services 7.16

0.48

11.20 6.61
887 Metalurgica Gerdau

Brazil

Materials 11.03 0.63 12.39

3.90

963 Cemig Brazil

Utilities

3.52 0.86 8.12 8.01
1082 CPFL Energia Brazil Utilities

4.18

0.66 6.15 6.41
1173 Embraer Brazil Aerospace & Defense

3.91

0.30 7.13 8.36
1396 Banco Nossa Caixa Brazil Banking 3.12

0.33

14.29 2.02
1606 Aracruz Celulose

Brazil

Materials 1.68 0.46 4.49

5.51

1674 Sabesp-Saneamento Basico Brazil

Utilities

2.12 0.37 7.33 3.82
1680 Braskem Brazil Chemicals

5.43

0.05 7.52 2.37
1685 Ipiranga Brazil Oil & Gas Operations

12.04

0.08 1.69 0.49
1690 Brasil Telecom Brazil Telecommunications Services 4.34

-0.01

7.37 4.12
1779 GOL Linhas Aéreas

Brazil

Transportation 1.78 0.32 1.76

5.63

1840 CBD-Brasil Distribuição Brazil

Food Markets

5.74 0.11 4.51 4.19

Fonte: Forbes

Neste artigo   o autor mostra vários pontos importantes sobre como balancear carga de processamento entre tomcats, o que pode valer para JBoss também. O interessante que há uma tabela comparativa sobre "Balanceamento de Dados" e "Clustering", que esclarece alguns conceitos triviais sobre estes conceitos. Boa leiutra.

Em Delphi(TM) havia alguns truques via RTTI(Run Time Type Information) que sem ser programadores paranormais com truques do tipo "limpe 50 TEdits com 3 linhas de código" animavamos todo o time de desenvolvimento. Com Java, RTTI tem um nome mais bonito Reflection.

O saudosismo deste post, deve-se a lembrança de práticas similares, no caso, eu precisava criar uma classe BeanToProperties e PropertiesToBean, para que fosse possível ler um properties e todas sua chaves fossem passadas para atributos de um bean, claro com atributos com memso nome (já que não há um decoador "de para"), e vice-versa. Acho que até pode existir isso num Apache Commons da vida, mas como eu estou passando grande parte dos meus dias em aeroportos e apertado nos assentos da Tam e Grande Onibus Lotado, onde há pouca internet disponível, então resolvi criar um recurso destes para finalizar uma atividade no projeto, veja então o resultado.

Primeiro, eu preciso saber se o atributo da Classe em questão é equivalente a uma chave do Properties que tenho carregado, veja então:


public static java.util.List getFieldsFromClass(
Properties props) {

java.lang.reflect.Field[] methods = new ClientProperties()
.getClass().getDeclaredFields();

ArrayList< ?> a = Collections.list(props.propertyNames());

java.util.ArrayList fieldList = new java.util.ArrayList();

for (java.lang.reflect.Field m : methods) {
if (a.contains(m.getName())) {
fieldList.add(m);
}
}

return fieldList;
}


Em seguida, preciso obter os dados das chaves e atribuir aos atributos usando os métodos gets, para isso, veja o método:


ClientProperties bean = new ClientProperties();

List fields = getFieldsFromClass(props);
for (Field f : fields) {
try {
String methodName = "set"
+ f.getName().substring(0, 1).toUpperCase()
+ f.getName().substring(1, f.getName().length());

Class[] params = new Class[] { String.class };

Method method = bean.getClass().getDeclaredMethod(methodName,
params);

method.invoke(bean, props.getProperty(f.getName()));


Com isso, o objeto "bean" irá executar para a propriedade core o mesmo que: bean.setCore(prop.getValue("core")); , só que se eu tiver 58 propriedades, este método me economiza um super tempo!

Espero que esta dica ajude, ela está aqui com certeza para me ajudar, caso amanha eu esqueça como já fiz isto, mais ou menos como quase tudo que há em nível de códigos nesse blog. Até a próxima.

[]

Edgar

JMX é de fato uma das APIs mais notáveis presentes em Java, alguns servidores de Aplicações comerciais só vieram a implementar tais recursos somente a poucas anos atrás. No caso do JBoss, todo o MicroKernel foi concebido em torno desta tecnologia, o que torna mais simples a criação de ferramentas de monitoração, controle, monitores transacionais e até os profilers.
Como exemplo de invocação de chamadas JMX diretamente via código Java, veja a seguinte porção de código:


Hashtable environment = new Hashtable();
environment.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
environment.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
environment.put(Context.PROVIDER_URL, "jnp://127.0.0.1:1099"); // remote machine IP
InitialContext ic = new InitialContext(environment);
RMIAdaptor server = (RMIAdaptor) ic.lookup("jmx/invoker/RMIAdaptor");
ObjectName name = new ObjectName("jboss.system:type=ServerConfig");
System.out.println("ServerTempDir="+server.getAttribute(name, "ServerTempDir"));


O código imprime o valor da propriedade ServerTemp que pode ser obtida facilmente através do JMX-Console num browser qualquer, qualquer outra propriedade do ServerConfig que está dentro do domínio jboss.system poderia ser obtida através do contexto JMX obtido via JNDI (RMIAdaptor) .

Alterações podem ser solicitadas também, isto também é possível também de forma programática.

Aguardem o que está por vim de interessante o novo JBoss Micro-Container.

Aqui os primeiros screenshots do JBoss Profiler 2.0, em breve o time deverá publicar o download do primeiro release do JBoss Profiler2.0, mas vejam aqui os screenshots:

screenshot-jboss-profiler-20.png
screenshot-jboss-profiler-20-clientproperties.png
FISL9

Recebi um email com a confirmação que a palestra:

JBoss 5 - As novidades da versão penta para a Comunidade Livre!

Foi aprovada! Então vejo vocês no dia 17, 18 e 19 de Abril na PUC em Porto Alegre, vai ser minha terceira vez neste evento, desde que eu fui na primeira vez, deixaram de fazer na PUC, e este ano está de volta, o que significará mais pessoas. O FISL é considerado como um dos maiores e mais importantes eventos de Software Livre do mundo, sendo assim, se você puder: Prestigi-o!

Nesta palestra vamos abordar as novidades do JBoss5, assim como as questoes de Micro-Container, novo Console, Plugins, e o JBoss Profiler 2.0.

Vejo vocês em Porto Alegre, e de noite no restaurante Mercado Del Puerto, comendo um Entrecot ao molho de vinho :)

JBossWorld

Minha correria de final quarter e ano fiscal na empresa, o meu provedor que dificulta manter meu site no ar, me impediram de blogar sobre o JBossWorld, evento que estive último fevereiro, mas há blogueiros como o Guilherme da Globo.COM, que fizeram uma cobertura fantástica em seu Blog, recomendo que todos leiam.

Bom, meu ano começa para valer agora, como alguns dos focos deste ano é consolidar as duas plataformas novas da JBoss: O SOA Platform, que está a um tempo sendo bastante divulgada aqui e em vários outros blogs, e o JBoss Communications Platform, este último deve dar o que falar para o nosso mercado que pede e exige bastante interatividade nas aplicações voltadas para o mercado de voz sobre IP e Telecom de modo geral. Logo, alguns posts sobre estas tecnologia que acima de qualquer outra coisas é: 100% Opensource, e claro, sua contribuição seria extremamente bem-vinda, veja mais em: http://labs.jboss.org/mobicents ou no site do projeto MobiCents, projeto adquirido ano passado pela Red Hat para fazer parte do leque de soluções JBoss.

Voltando a vida normal após o susto, e ter perdido várias implementações de ESB e de Seam, resolvi concentrar em algo novo para distrair, o esbgen module.

Quando você baixa o JBoss ESB, talvez pelos conceitos, ou por certa complexidade nas inúmeras possibilidades de protocolos, ações e etc, nos perdemos por onde começar quando queremos criar um projeto ESB. Sendo assim, inspirado em várias ferramentas similares, criei um módulo para o ESB que é um assistente para criação de projetos usando um utilitário de linha de comando. Veja os exemplos aqui:

esb1.png

Figura 1- Criando o Projeto inicial.

esb2.png

Projeto ESB com todos os arquivos necessários criados. Se você trabalhar com os QuickStarts, você terá toda a estrutura para deploy e testes de seus projetos.

Se você ficou curioso, veja o design e estágio atual da ferramenta clicando aqui.

Para ver em resoluções menores, clique aqui.

Abraços

Edgar

Desculpem os RSS Readers! Desculpem a revolta, mas é revoltante algumas coisas em nossas vidas. Vocês que estudaram como desgraçados, comeram em bandeijão, pegaram onibus lotados, daqueles que é tanta gente que você pode dormir em pé que as Leis de Newton não farão efeito!

Você orgulha seus pais e a si mesmo, vai, estuda engenharia, estuda seja lá o que ou até onde for, e nesse caso, não adianta nada, você ainda vai ganhar mal, e você sabe o por quê? Porque você é um burro e honesto, que ao invés de roubar, você resolveu estudar.... Você é um burro!

Quanto é sua hora de trabalho? 100, 200, 300 reais? E você se acha o cara?! Você é um bosta, assim como eu, pois veja: Em 1 minuto eu fui assaltado, e me levaram:

  • Meu laptop (DELL, Duo Core 2 GB , 15.5 wide): 6.500
  • Nextel Motorola: 550,00
  • TIM Motorola : 650,00
  • IPod: 500,00
  • Pen-Drive: 100,00
  • Mochila com vários acessórios(do JavaOne para os nerds de plantão): 200,00

Isto totaliza cerca de 8.500 Reais, em cerca de 1 minuto de trabalho por parte dos grandes profissionais de mercado de São Paulo, se você multiplicar por 60(1 hora), a hora deles então custa: 510.000 Reais. E você se achando seu bosta!

O pior, é você ir fazer um BO (Boletim de Otário), e os servidores públicos no momento da sua descrição do fato, vê a funcionária fumar a merda de um FREE vagabundo, e entre uma pergunta e outra, baforar uma nuvem de fumaça na sua cara! E no final, depois de várias piadinhas, do tipo: "Os caras fizeram a feira com você", tu pegas seus míseros papéis e começa a rezar para o próximo dia no PoupaTempo, onde 2 horas na fila consegue-se apenas comprando lugares na mesma...

Este é um desabafo de um otário como eu, que ama a merda desse país, que desde 1999 morando em São Paulo, nunca havia presenciado nada de violento, e eis que tudo veio num pacote único, o que nos deixa apenas revoltados, frustrados, sem ação....

E ai como descedente de Judeus que droga eu fui fazer na vida... Estudar, os caras ganham mais que os bostas da TV Brasileira! Tá vendo? Somos uns bostas! E eles são os Mickeys, só nos resta ser os "patetas".

Desculpem o desabafo!

Edgar

ps- Local do Assalto: Vila Olimpia, em frente ao Ceasar Park. Atenção: Roubos na Berrini são frequentes em São Paulo, como as empresas de TI ficam grande parte nessa região cuidado nunca é pouco.

Calma, isso nada tem a ver com a linguagem Ruby, uma linguagem que respeito, mas que pouco usei na vida, e sim apenas fazer uma pequena homenagem a este rítimo que quem vai a Belém e não faz questão de ser fechado e se permite apreciar o que é local acaba no mínimo respeitando. Eu como um paraense apaixonado e saudoso da minha terra, tinha que aproveitar esse tema da minha área para fazer essa "brincadeira". Ora, o Rio tem funk, vários lugares do interior de SP, Goiás, Minas tem o Sertanejo, o sul tem o vanerão, o nordeste tem o forró, o Amazonas tem o Boi, o Maranhão tem Reggae da jamaica brasileira, o Pará tem o que é conhecido como Techno brega, um ritimo engraçado, mas que mobiliza pessoas humildes, de posses, cultas outras sem tantas oportunidades, mas que se tornam comum numa festa onde o rítimo seja este, apenas uma homenagem, fruto das mini-férias que tive passando com a minha familia e mulher em Belém :) .



Lyoto Machida, filho do lendário e respeitado mundialmente professor de Karatê Machida de Belém, é um paraense que vai longe veja a última luta dele no UFC.

Quando ele fala de Belém, claro que o orgulho vem todo a tona. Parabéns Lyoto!