29 de nov. de 2011

Minha carreira no exterior: 1 ano de Europa

Dae gurizada...

Hoje resolvi contar um pouco da minha experiência morando e trabalhando com TI no exterior. Estou morando na Europa faz um pouco mais de 1 ano. Passei 8 meses em Londres e há 6 estou em  Dublin.



Vou contar mais sobre minha experiência em Dublin, pois vim pra cá "com meus próprios pés". Enquanto em Londres, fui como consultor de uma empresa gaúcha, na qual atrabalhei até Junho deste ano.

Mudei para Dublin na metade de Junho. Cheguei aqui sem nenhuma oprtunidade "pré-arranjada" e  acredtio que é essa história que vale a pena ser contada.

26 de nov. de 2011

Scala Tour - Part 1

Dae gurizada..

Nos últimos meses tenho acompanhado algumas coisas sobre Scala, e minha idéia é criar alguns posts explicando alguns tests.

Vou usar como referência este post do Martin Odersky, pai do Scala, onde ele separa alguns "níveis" de conhecimento. (Não vou entrar no mérito se estes níveis estão certos ou não, só vou usar como referência. E quando digo referência é porque não vou seguir extatamente o que está alí.)

Seguindo a idéia do Uncle Bob Martin, vou usar TDD para estudar a linguagem. Então, cada recurso da linaguem vai ser representado com um ou vários testes unitários.


Ambiente de Desenvolvimento

Eu fiz testes rápidos usando o Scala IDE no Eclipse e Eclipse + Maven. Não gostei de nehum deles. Eu encontrei alguns problemas mas não dispensei muito tempo tentando arrumar. Então, não use como base meus problemas para dizer se funciona ou não. Abaixo alguma explicação:

2 de ago. de 2011

Arquiteto de Software: O que você espera saber?


Atualmente ando repensando os caminhos da minha carreira profissional e resolvi colocar na ponta do lápis os conhecimentos que gostaria de adquirir nos próximos meses. 

Então criei esse mapa mental sobre o que EU acredito que um Arquiteto de Software deva conhecer. 

Mas espere! É óbvio que não estou criando uma receita de bolo, até porque não tenho condições para isso. É apenas uma reflexão e AGUARDO COMENTÁRIOS.

27 de jul. de 2011

Eclipse Fullscreen no Mac OS Lion

Dae gurizada..

Pra quem usa Mac com o Lion, segue uma o link de um Plugin para dexiar o Eclipse em Fullscreen mode.

http://alblue.bandlem.com/2011/07/full-screen-support-for-eclipse-on-osx.html

Basicamente é ir em: "Help -> Install new software" e colocar a URL: http://github.bandlem.com/

Fica a dica...

era isso..

Rode seus testes com jetty fácil..

Dae guriazada..

Eu conheço o Jetty faz algum tempo, mas nunca dei muita bola pra ele até ver como é fácil rodar uma aplicação web com ele. É perfeito pra fazer testes!!!

Este post é mais para eu mesmo lembrar do como fazer..rsrsrs


Primeiro crie uma aplicação web com maven.  Tem várias turorais por ai sobre como fazer isso.

Mas basicamente essa deve ser a estrutura do projeto:


Incluir o plugin do maven par rodar a aplicação com Jetty:


  
   
    org.mortbay.jetty
    maven-jetty-plugin
    
     /jetty-test
     
      
       8080
      
     
    
   
  
 
Acredito que esteja claro os parâmetros que o plugin recebe  (contexto e porta). Mais informações sobre o plugin aqui.


No console é só digitar:
mvn jetty:run

Depois acessar a url: http://localhost:8080/jetty-test/


E feito o carreto...


Era isso. Abraço

22 de jul. de 2011

Primeiro contato com Node.j e mais sobre non-blocking servers



Dae gurizada..

Na sequência do meus estudos sobre non-blocking web servers vou dar uma olhada no Node.js.


Vou utilizar como base esta apresentação do Ryan Dahl, que está disponível no site do node.js

Antes de olhar sobre Node.js é importante entender o C10K Problem e Non-blocking I/O

Node.js
Node.js nada mais é que uma biblioteca que roda em cima do virutal machine chamada v8. V8 é uma JavaScript Engine escrita pelos  engenheiros da Google e é utilizada no Google Chrome.

Node utiliza o v8 para fazer o trabalho de comunicação (networking) corretamente. 

Não existe "waiting time"
Óbvio, é isso que faze dele um non-blocking server: Não ter "waiting time".

Você não consegue mandar o node dormir (sleep). Não é que você seja encorajado a não fazer um "sleep", na verdade você não tem poder para isso. 

O que o Node faz é definir Timeouts e deixar processos em idle (ocioso), fazendo com que o consumo de CPU vá para zero.

De uma olhada nesse código:

19 de jul. de 2011

C10K Problem. O quê Deft, Node.js, Netty e outros estão solucionando

Dae gurizada,

A idéia de olhar para esse problema surgiu depois que o Diego Pacheco me deu a missão de falar sobre Deft e Loft em um lighting talk que fizemos há algumas semanas atrás.

O grande impecílio que tive para entender o conceito dos servidores Deft e Loft foi de entender o problema. Eis a motivação do post.

O que vou tentar explicar são as limitações existetes que fazem com alguns servidores não consigam processar mais que 10mil requisições simultâneas. E (se tudo der certo) você vai entender porque servidors como Deft, Loft, Tornado, Netty, Node.js e outros tem um desempenho diferente que os sservidores normais. 

C10k Problem

C10k significa 10.000 (dez mil) conexões simultâneas. Este é a limitação de conexões silmutaneas da maioria dos servidores de aplicação.

Isso acontece devido a forma que os servidores trabalham com cada conexão recebida.

Muitas destes problemas são ocasionaos pela forma que o servidor foi impelmentado e de como o Sistema Operaciona (OS) trabalha com sockets.

Eu vou descrever algumas destas limitações abaixo.