Wednesday, March 26, 2008

Heroes Happen Here em Cedar Rapids - Iowa

Como todo bom profissional de informática interessado em se manter atualizado e principalmente empolgado com os novos lançamentos nao pude deixar de ir a um Launch Event da Microsoft. Para isso viajei 1 hora e meia de carro para participar do evento organizado pelo CRIneta, grupo de Usuários de Cedar Rapids, aqui em Iowa. O evento foi em uma sala de conference do Hotel Marriot, muito lindo o lugar! O evento contou com a participação de aproximadamente 60 pessoas, considerado um dos maiores públicos aqui da região, contando que o evento foi numa segunda-feira a tarde, realmente foi um sucesso. Tivemos 6 palestras dando um overview dos novos produtos e principais novidades, uma dinâmica um pouco diferente do que estamos acostumados no Brasil.

Outra coisa que nao estamos acostumados no Brasil é ter começar o evento com a melhor parte, ou seja , o coffe break. Verdade! Primeiro todo mundo comeu muita pizza e tomou muito refrigerante para em seguida começar as palestras. Uma hora depois , mais uma pausa para mais pizza. Que maravilha.

Aproveitei a oportunidade para conhecer o pessoal do Grupo. Para minha felicidade um dos organizadores já havia morado no Brasil , então pudemos trocar várias idéias sobre tecnologia e mercado comparando as regiões e os países, muito legal. Estive envolvido com o trabalho de comunidade de usuários desde o seu inicio no Brasil e estou contente de ter encontrado um grupo para poder participar por aqui. Para acessar o site do grupo clique em http://www.crineta.org/.

Além disso ainda sai com duas camisas do Visual Studio 2008 para completar a festa. Bem que eu poderia sair com um kit VS 2008, sql 2008 , win 2008, afinal eles sortearam 11! kits, fora os windows vista ultimate, e mais uma duzia de softwares de empresas parceiras.


Made with Slideshow Embed Tool

Have Fun!

Wednesday, March 19, 2008

Voce não está sozinho

Um sentimento que volta e meia eu passo é: caramba , quanta coisa está acontecendo e saindo no mercado, não estou dando conta de aprender tudo. Nem tive condições de brincar muito com o silverlight e já está saindo Silverlight 2. acabou de lançar o VS 2008 e ja tem CTP do VS "rosario" a nova versao, ASP.NET MVC, LINQ, etc , etc. É muita coisa. Eu tenho o habito de assinar RSS de vários lugares , sites, blogs e ao mesmo tempo que fico interado do que está rolando vejo a dimensão e a quantidade de coisas novas que tem por ai. Isso tudo nos leva a pensar :"Será que eu vou dar conta de conhecer isso tudo?

Gostaria de demonstrar que voce nao está sozinho nesse sentimento. Além de mim, hehe, a revista Visual Studio Magazine de Fevereiro , publicou uma pesquisa que perguntou aos leitores/internautas:Qual a sua maior frustaçao como desenvolvedor hoje? Veja os resultados:

36.2% - Falta de tempo
22.6% - Velocidade da tecnologia
19.9 - Politicas da empresa

fonte: Visual Studio Magazine (Fevereiro /2008)

Depois vieram itens como gerenciar segurança, encontrar gente qualificada, encontrar a informação que necessita, etc.

No mercado brasileiro essa questão se torna bem mais critico pois muitas empresas abrem vagas , mas sao tantos requisitos que praticamente ninguem consegue preencher as vagas , na verdade ninguem se sente apto a preencher as vagas e por isso nao concorre a elas. Isso se agrava pois algumas empresas terceirizam esse processo de contrataçao , e muitas vezes as pessoas que estão entrevistando nao sabem o que significa a sopa de letrinhas da descricao da vaga. Em consequencia disso eu já ouvi perguntas do tipo:

- Voce tem conhecimentos de .NET ou C#?
- Tem conhecimentos em C.. C...., C........, é C jogo da velha que se fala né?

Uma vez eu vi uma empresa em 2005 requerendo um profissional .NET com 5 anos de experiencia. Considerando que o .net 1.0 foi lancado em 2002, era melhor ter colocado na vaga : Contrata-se Scott Guthrie (co-inventor do asp.net).

O que posso dar de dicas nesse mundo tao corrido é:

É bom saber do que se trata de algumas tecnologias que estão despontando no mercado. Voce nao precisa nem saber fazer muita coisa, pelo menos do que se trata. Isso vai evitar que voce passe vexame na hora da entrevista(ou até mesmo da conversa na hora do almoço, ou an reuniao de projetos ) , caso te perguntem. Exemplo:

Errado:
- Voce sabe o que é WPF ?
- Claro.Eu já doei uma vez para uma campanha dos chimpanzés em extinçao no congo, é uma otima ONG.

Nao recomendado (mas é muito melhor que mentir):
- Voce sabe o que é WPF ?
- Nao sei.

Certo:
- Voce sabe o que é WPF ?
- Ainda nao tive a oportunidade de trabalhar com essa tecnologia, mas sei que ela trás grandes avanços para o desenho de interfaces graficas para aplicativos. Também conheco o Silverlight , antigo WPF/e. Tenho visto aplicaçoes impressionantes com essa tecnologia.


Voce nao precisa saber como fazer nada em WPF ou silverlight mas pelo menos saber do que se trata, já te coloca numa situaçao em que a companhia que esta te entrevistando vai saber que voce nao domina (pela frase acima , ela nao sabe o quanto voce nao sabe) mas que caso necessário um maior envolvimento nessa tecnologia , voce demostrou que sabe o caminho das pedras para se desenvolver dentro da empresa. É isso que as empresas precisam: um profissional na qual ela possa confiar.

No entanto, voce precisa ter um ponto forte em alguma coisa, algo que seja a sua marca enquanto profissional. Uma área ou tecnologia na qual voce se interessa e deseja ser especialista. Com isso voce "vira o jogo". Ao invés de procurar empresas , seu curriculo passará a ser interessante para todas as empresas. Por exemplo: quantos especialistas em teste de software voce conhece? quantos programadores fortes em segurança? quantos que sabem tudo de comunicacao (Web services, WCF, etc)? Quantos sao cranios em logica de programaçao e sao aqueles caras bem escova bits? Qualquer empresa precisa de um profissional desses. As empresas nao precisam de um cara "quase lá". Um profissional "quase lá" é aquele que sabe fazer de tudo um pouco , mas quando a coisa sai do normal, quando a mensagem de erro que apareceu e ele colocou no google e a resposta nao está bem clara nos primeiros 5 resultados ele joga a toalha. Esse profissional até sobrevive devido a carencia do mercado, mas é levar a vida perigosamente.

Resumindo. O mundo esta girando cada vez mais rapido SIM. NINGUEM consegue acompanhar TODAS as tendencias de mercado. (Todo mundo tem familia heheh). Preocupe-se SEMPRE em ter uma nocao basica do que há de novo mercado. Busque tornar-se um especialista em uma área para ter sempre uma boa colocaçao no mercado. Gere confiança!

Have fun!

Monday, March 17, 2008

Assista às Sessões do MIX 2008

A conferencia MIX 2008 , realizada agora em marco aqui nos eua pela Microsoft, tem como foco trazer as novidades da área de web e design. Um dos meus sonhos é poder dar um pulo lá. Embora esteja mais perto, esse ano ainda nao deu. A boa noticia é que foi disponibilizado no site do evento todas as sessões para ver online ou baixar, além dos PPTs. Se voce deseja ver o que esta rolando de mais atual sobre Silerlight, Expressions, Usabilidade, design e muito mais nao deixe de acompanhar. Conteúdo de primeira.

Confira o link no blog do amigo Roberto Soninno que é outra ótima fonte neste assunto. Acesse: http://virtualdreams.com.br/blog/2008/03/dica-do-dia-ms-ano-sesses-do-mix08-online/

Boa semana para todos.

Have Fun!

Friday, March 14, 2008

Links úteis para Team Foundation Server

Reuni nesse post uma lista de links úteis relacionados com o TFS 2005 ou TFS 2008. A maioria está em inglês. Com o tempo vou pegando algumas dicas ou textos e colocando aqui no blog. Aceito sugestões sobre quais traduzir.

Lista de Features do TFS 2008 – Brian Harry ,do time de Team Foundation da Microsoft, lista em seu blog as novas features do team foundation server 2008. Confira. Em inglês.

TeamSystem Brasil – Site dos amigos Marcus Garcia e Fábio Camara com informações, noticas e artigos sobre TFS, e o melhor, em português.

Team Foundation Overview – Excelente texto dando uma visão geral do tfs com links para vários “How-tos”. Para quem está querendo conhecer mais da ferramenta , é leitura obrigatória. Em inglês.

Visão geral do Team Foundation – Outro texto bem interessante para conhecer os recursos do Team Foundation. Também escritos pelo Marcus e pelo Fabio, esse texto tem um enfoque um pouco diferente do texto acima , pois sai do teórico e mostra na prática como funcionam alguns mecanismos dos sistema. Leitura mais que recomendada. Em português.

Team System Widgets – Toneladas de Add-ons para Team foundation (tambem tem bastante coisa para outros módulos do VSTS , VSTS architect edition, VSTS tester edition, etc.) . Talvez a funcionalidade extra que voce esteja pensando em desenvolver ja esteja pronta. Em inglês.

Migrando para Team Foundation 2008 – Brian Harry, O cara, colocou em seu blog um resumo dos vários cenários de migraçao para o TFS 2008, com direito a como migrar da versao beta para a versao final. Em inglês.

Team Foundation Server Team Project Limits – Esse texto trás informações importantes sobre a performance e os limites do TFS. Ele fala também dos limites de um Team project. Nada que voce vai chegar em 1 2 anos (acredito), mas é bom ler e ter essa referência em mãos. Em inglês.

Permissoes no Team Foundation – Explica o que cada grupo tem direito e as demais permissões que podem ser concedidas aos usuários. Em inglês.

Tutoriais no VSTS Rocks – Página do clássico site VSTS Rocks com tutoriais sobre os mais diversos assuntos relacionados com TFS , claro. Em inglês.

Acho que por enquanto é só. Tentei focar esses links nos fundamentos do TFS e nas funcionalidades elementares do sistema. Num próximo post, colocarei links sobre assuntos mais variados, como técnicas de branching, build server, manipulação de work item, entre outros. Mas por enquanto esses links já vão te dar diversão por um bom tempo.

Have fun!

Tuesday, March 11, 2008

Termos técnicos sobre desenvolvimento em inglês

Amigos,

Fiquei em dúvida sobre publicar esse post aqui ou no meu blog pessoal (http://bottech.blogspot.com/), mas acabei publicando aqui mesmo devido ao caráter técnico do assunto.

Após estar trabalhando algum tempo aqui nos eua eu aprendi alguns jargões técnicos. Até agora me recordo de alguns poucos mas gostaria de compartilhar com voces na forma de curiosidade. Espero que nao seja nada old para voces. Bottech também é cultura.

Voce sabe o significado de???

Dev box: Servidor de desenvolvimento. Pelo menos aqui nessa região, box também significa servidor, entao QA Box, é servidor de QA (homologaçao, ou Quality Assurance)

Sand box: Caixinha de areia, onde as criançinhas brincam e fazem arte. Entao sand box, é aquele projeto ou servidor onde voce pode brincar e fazer arte. Desse eu gostei.

Playground:mesma coisa que o item acima só que mais , senao totalmente, relacionado com projetos para testar e tentar coisas novas antes de se arriscar em producao ou mesmo homologaçao.

Push code: Quando publicamos um código em outro ambiente , nós dizemos push the code, traduzindo seria algo como empurar o código. Empurrar para produçao, empurrar para homologaçao, seriam respectivamente Push to production e push do QA. legal né, esse achei bem doido.

Going Live: Ainda nao achei algo que represente a frase: o sistema vai para o ar , ou, o sistema está fora do ar; mas acho que esta expressão "going live" chega perto. Dizemos que um sistema "is going live" ou "we are going live" quando queremos informar que um sistema começará a ser operado em producao, ou vamos virar a chave de um sistema antigo para começar a usar o novo. Interessante tb.

Bem foi isso que eu aprendi até agora, quando eu ouvir (e entender o significado) de mais alguma eu coloco aqui.

Have fun!

Monday, March 10, 2008

Video do Randy Shoup Arquiteto do eBay: Assista!

Estava fazendo algumas buscas na web e acabei me deparando com esse video do Randy Shoup, um dos principais arquiteto do ebay, maior site de leilões do mundo, revelando alguns dos segredos da sua estrutura. O video começa com alguns números do ebay que ja deixam voce de boca aberta. Em seguida ele faz um overview de como funciona o sistema para manipular esses numeros colossais. É realmente uma aula! Espero que aproveitem, afinal é também uma chance de sair da realidade da nossa empresa e respirar outros ares. Vale muito a pena ver esse video.

http://www.infoq.com/presentations/shoup-ebay-architectural-principles

Have Fun!

Friday, March 7, 2008

Artigo: Dicas sobre promoçao de código entre ambientes

Ultimamente tenho trabalhado muito com a questão de ambientes e principalmente a promoção de código. Se por um lado nós progamadores não somos promovidos com tanta velocidade, o código no entanto, muitas vezes é promovido mais rápido do que deve. (piadinha de TI sempre é complicado, mas essa ficou engraçadinha vai, voce pelo menos pensou: putz não acredito que ele escreveu isso). O código sai da nossa maquina para um ambiente de homologacao (QA) e em seguida para a produção. Em alguns lugares há outros ambientes envolvidos. Cada ambiente é um ecossistema diferente , com configuracoes, permissões, softwares, componentes , enfim tudo pode ser diferente e mesmo assim o código "tem" que rodar e se moldar ao ambiente onde está. Bem esse tem sido o foco dos meus estudos ultimamente.

Relacionado a isso tenho usado um elemento que muita gente não conhece ou conhece mas não aproveita todo o seu poder. Eu, por exemplo, começei a dar mais atenção a isso há não muito tempo atrás.

Bem todos voces ja viram que ao lado do "Play" para rodar a aplicacão no Visual Studio.NET , há uma combo onde você define se voce vai rodar em modo Debug ou Release, também conhecido como Solution Configurations. Podemos tirar vantagem disso ao invés de lotar nosso código com chaves do web config. Basicamente o modo em que estamos compilando define quem estará utilizando a aplicação. Basicamente existem dois perfis macro de pessoas que podem ter algum tipo de contato com aplicação: aqueles que estão construindo a aplicação e aqueles que utilizam a aplicação. Nao confunda com perfil de usuário, que são as formas de um usuário acessar, mas são todos usuários finais do sistema. Porém, um desenvolvedor constrói a aplicação mas precisa testar como se fosse um usuário em muitos casos. Algumas vezes é possivel criar um usuário no banco de dados e dar algumas permissões e fazer o desenvolvedor utilizar essa conta e a aplicação se comportará exatamente como um usuário final. Mas quando a complexidade do ambiente aumenta fazer isso fica complicado. Por exemplo, imagine que voce tem um relatório que só pode ser acessado por usuários do grupo gerência do Active Directory. Um desenvolvedor programa essa funcionalidade que verifica o grupo do usuário logado na master page e o outro programador faz o relatório usando a master page. Como nosso pobre amigo que está programando o relatório poderá testar o seu código se ele não consegue mais acessar a página? Podemos resolver isso de várias formas, algumas bonitas outras nem tanto. Um solução que eu considero bonita é usar o recurso de Debug/release para diferenciar quem está pilotando a aplicação. Funciona assim: se estou rodando em debug mode significa que eu sou um desenvolvedor entao a aplicação não precisa verificar se eu faço parte do grupo de gerência ou não. Uma vez meu relatório pronto, eu posso rodar em release mode, que significa como a aplicação irá se comportar para os usuários. Eu acho que dessa forma o processo de desenvolvimento fica mais produtivo do que adicionar uma chave do tipo "emDesenvolvimento=true" no web.config e ficar chaveando por ele. Lembre-se: web.config também é gente, ops, quer dizer, web.config também é código , sujeito a source control, versionamento,e você corre o risco de não poder dar check out porque alguem deu lock no arquivo, etc.

Para essa mágica de Debug/Release funcionar é necessário colocar uma diretiva de compilação no código onde voce quer haja um comportamento diferente dependendo do mode em que está a aplicação esta rodando. Vejamos um exemplo de uma função que verifica se o usuário faz parte do role "gerencia" utilizando o conceito de compile mode.

public bool VerificaAcessoGerencia()

{

#if DEBUG


return true;


#else


return this.User.IsInRole("gerencia");

#endif

}

Basicamente estamos verificando se a aplicação está rodando em Debug mode. Se estiver, vamos sempre retornar true, caso contrário vamos fazer o que realmente deve ser feito, procurar pela role "gerencia" na coleção de roles do usuário logado.

Muita atenção agora para alguns detalhes:

- Na hora de publicar o seu código para outro ambiente, certifique-se de que voce compilou em Release mode, do contrário voce estará levando lógica errada para ambiente errado e vai ser complicado de descobrir (ou melhor, de lembrar) o que está causando todo o transtorno.

- Se voce está utilizando blocos de código completamente diferentes ou utilizando essa diretiva descontroladamente, compulsivamente , cuidado voce pode estar querendo resolver outros problemas que não tem nada haver com ambientes ou compilation mode. Use o bom senso para essas decisões.

É possivel criar outras modos de compilação, (novas solution configurations), o que eu considero um próximo passo, mas apenas para ambientes mais complexos, por exemplo, se voce precisar testar o código de forma diferente em cada servidor numa arquitetura de load balance. Acredito que somente debug/release cobre 95% dos casos.

Utilizando esse recuros fica para o web.config apenas as diferenças entre os ambientes (path de arquivos em prod e QA, por exemplo), deixando para o compilation mode toda essa questão de diferenciar a maneira como o sistema se comporta. Isso vai auxiliar o desenvolvedor nos testes, otimizar o processo de desenvolvimento e trazer mais qualidade ao seu build.

Este artigo foi publicado no site Linha de código confira: http://www.linhadecodigo.com.br/Artigo.aspx?id=1724

Até a próxima!

Wednesday, March 5, 2008

Saiu a versao beta do Internet Explorer 8

Tenho acompanhado pelo blog do time do IE os avanços desta nova versao e estou bastante animado para ela. O blog do amigo Rodrigo Kono contém os links para baixar o IE8 beta para voce começar a brincar com as novas features. Apenas lembre, é uma versao beta, portanto instale em uma virtual machine ou em algum ambiente de teste.

Have fun!

Link do blog: http://kono.spaces.live.com/Blog/cns!66AB4111C1117587!1148.entry