quinta-feira, 26 de novembro de 2009

Você não é uma vaca leiteira

…então, por favor, não trabalhe como se fosse.
Vale a pena prestar um pouco de atenção nos aspectos ergonômicos do seu ambiente de trabalho. Coisas como monitores bonitos, uma quantidade absurda de portas USB e uma biblioteca de música praticamente inesgotável são importantes para qualquer programador. Mas algumas coisas mais simples são igualmente importantes, como a altura da sua cadeira, a posição do seu teclado e, muito surpreendentemente, o bom e velho espaço livre.
Espaço livre não parece estar muito na moda ultimamente. É raro encontrar alguém que dá alguma importância para isso. Afinal de contas, o trabalho de um programador (e de qualquer trabalhador do conhecimento, para este efeito) acontece dentro da cabeça. Não é necessário muito espaço para abrigar a cabeça de uma pessoa, mesmo se levarmos em consideração que ela é inseparável dessa massa inútil e disforme que chamamos de corpo. Talvez seja por isso que tantas empresas dão o mesmo espaço de trabalho para os programadores que uma fazenda intensiva daria para uma vaca leiteira. Uns só precisam das tetas, outros só da cabeça. Quanto mais programadores couberem no mesmo espaço, mais software será produzido por metro quadrado. Simples otimização de chão de fábrica, certo?
dairy_cowders
Sim, é fato que sua cabeça (ainda) não pode viver separada do seu corpo. Portanto, mesmo que você não ligue para seu corpo em si, é melhor cuidar dele se quiser continuar usando sua inteligência por muito tempo. Esse cuidado passa por aspectos bastante óbvios (e penosos) como praticar exercícios regularmente e manter uma dieta equilibrada. Pode não ser muito fácil cuidar disso, mas os aspectos ergonômicos do ambiente de trabalho são muito mais controláveis. Mesmo assim costumam ser negligenciados.
Este é meu escritório de casa atualmente (bom, pelo menos a parte sobre a qual quero falar hoje):
my_office
A mesa é em geral o espaço onde você vai passar a maior parte do tempo. Não importa se você tem acesso a uma mesa de sinuca e a três video-games diferentes para jogar Rock Band com seus colegas durante o horário de trabalho. Se sua mesa for desconfortável, você não vai produzir muito. Pensando bem, se lhe derem uma mesa inadequada, é bem mais provável que você passe mais tempo jogando Rock Band do que programando.
A primeira coisa que você vai querer garantir para sua estação de trabalho é uma cadeira confortável. Ela precisa ter ao menos encosto reclinável, ajuste de altura e apoio para os braços. E estofamento macio, claro. Você não vai querer ficar sentado o dia todo numa pilha gigantesca de algodão. Tampouco em um banco de praça. Ache um meio termo que pareça bom para você e use-o. Não é preciso gastar dois mil reais numa cadeira para ter todos estes recursos, mas também não é um valor assim tão absurdo se considerarmos a durabilidade do equipamento e o custo do programador para a empresa.
O próximo item da lista é uma mesa espaçosa. Segundo o Peopleware, um estudo encomendado pela IBM há muitas luas atrás descobriu que a superfície mínima que uma pessoa precisa para ser produtiva é de aproximadamente 2,5m². Minha mesa deve ter aproximadamente 1,75. Ainda estou abaixo da meta, mas com certeza é mais do que os dois caras da foto têm e pelo menos é o suficiente para caber com sobra meus dois monitores.
O que nos leva ao próximo item indispensável a qualquer pessoa que desenvolva software: muito espaço de tela. Com dois monitores de 1280×1024 você obtém uma área útil de 2560×1024 pixels, o que é suficiente para abrigar ao menos um editor com seu código e o programa rodando ao mesmo tempo. Se apertar um pouco, cabe até uma janela para monitorar os testes automáticos. Mas você pode achar útil ter algum material de referência aberto para consultar rapidamente e talvez precise de um terceiro monitor para isso. Como você está lendo isso aqui, provavelmente já tem um dos monitores. Um extra deve estar abaixo dos 600 paus hoje em dia e a maioria das placas de vídeo modernas já aceita duas saídas. É produtividade de graça se você jogar na conta o tempo (e a paciência) que se perde chaveando janelas numa tela só.
Você também vai querer ter seus vários monitores posicionados corretamente. Uma distância entre 40 e 75cm entre seus olhos e a tela é o suficiente. É preciso tomar cuidado para posicioná-los na altura correta também (vale usar livros velhos quando o monitor não tem regulagem de altura). Você não vai querer ficar com a cabeça inclinada nem para cima nem para baixo o dia todo. As dores no pescoço podem ser bastante irritantes depois de um tempo.
Além da altura dos monitores, você também precisa regular a altura da cadeira e da mesa para manter suas pernas e braços em ângulos mais ou menos retos a maior parte do tempo. Isso vai aliviar bastante a coluna e pode garantir boas noites de sono. Simplesmente procure um pouco na web sobre ergonomia no trabalho que você vai achar várias dicas, há bastante material por aí.
Quando não estiver trabalhando, não esqueça de comer seus vegetais e fazer seus exercícios e lembre-se de que se exercitar durante o trabalho também é importante. Você não precisa levantar para correr meia-maratona no horário do almoço. Alguns alongamentos uma ou duas vezes ao dia já são suficientes. Você também pode querer manter por perto algumas daquelas bolinhas terapêuticas, daquelas vendidas em lojas de animais. Elas são ótimas para exercitar a musculatura do punho que tanto castigamos ao digitar o dia inteiro e ainda servem para massagear a tensão acumulada.
Um último toque que você talvez não encontre em todo site sobre ergonomia fica bem no canto direito na minha mesa. Uma foto de pessoas que você gosta (de uma viagem com a esposa, como esta minha) é importante para lhe lembrar que por mais que seu código pareça perfeito e sem falhas (e, acredite, ele nunca é) e que você passe o dia conversando em linguagens estranhas com essa máquina maluca de duas cabeças, no fim das contas você é apenas humano e precisa de outras pessoas assim como qualquer outro ser humano.

Fonte : Thiago Arrais

Programador não é apenas um codificador

PDHeadInSand
Programadores são naturalmente introvertidos e não sabem se comunicar. Deve ser por isso que existem tantos programadores ruins. Programar é um exercício de comunicação.
Anos de experiência desenvolvendo software, conhecer muitas linguagens de programação, escrever códigos de qualidade, nada disso tem valor se você não conseguir se comunicar com outras pessoas. De nada vale ter muito conteúdo e guardar isto só para você.
Aqueles que desejam uma carreira bem sucedida como programadores, além possuir um conhecimento técnico acima da média também precisam estar constantemente melhorando suas habilidades de comunicação.
Inevitavelmente passamos horas em reuniões. Precisamos interagir com clientes e entender as suas necessidades. Escrevemos propostas e relatórios. Estamos em uma luta sem fim tentando convencer nossos companheiros e empregadores a adotarem uma nova tecnologia ou prática que tornará nosso trabalho mais produtivo e divertido. E acima de tudo: escrevemos muito código.
O código é uma combinação de signos utilizados para transmitir uma mensagem. Porém a comunicação só se concretizará se o receptor souber decodificar a mensagem. Computadores costumam fazer isto muito bem, mas não estamos escrevendo código apenas para máquinas. Um código mal escrito e cheio de ruído dificultará o trabalho de outros programadores quando houver a necessidade de estudá-lo.
Nosso trabalho se resume a pura e simplesmente comunicar-se, por isso é tão importante fazer isso bem.
Não importa se você está escrevendo um livro/relatório/e-mail ou se preparando para uma reunião, planejamento é tudo. Um dos segredos dos bons comunicadores é saber o que dizer, antes de sair abrindo a boca e despejando pensamentos. Pergunte-se: “Se eu falar desta maneira, será que todos entenderão com clareza a informação que eu estou tentando passar?”. Repita esta pergunta para si mesmo até que esteja convicto disso. Anote estas ideias e planeje como aborda-las.
Comunicação é repassar informações. Para que isto seja possível é vital que todas as pessoas presentes entendam o que você está dizendo. Antes de começar a argumentar sobre as vantagens de se utilizar um banco de dados não relacional no projeto, certifique-se de que todos sabem do que você está falando. Caso contrário, você não estará impressionando ninguém. Estará apenas sendo chato.
Se você está vendendo uma ideia, certifique-se de conhecer cada uma das pessoas envolvidas na negociação e fale somente o que ela precisa ouvir, nem mais nem menos. Talvez você precise convencer o seu gerente, o pessoal de marketing, o usuário final do aplicativo e até outros desenvolvedores. Trate cada grupo de forma individual.
Tão importante quanto dizer a coisa certa, é dizer na hora certa. Pegar seu gerente no corredor, logo após o seu supervisor lhe chamar a atenção por ele ter entregue um aplicativo cheio de bugs é uma excelente oportunidade para convencê-lo a adotar testes automatizados nos próximos projetos. Mas também será uma péssima hora para pedir um upgrade na sua máquina.
Para ser tornar um bom escritor é necessário ler muito, seguindo o mesmo principio se você deseja falar bem é importante escutar. Programadores tem sérios problemas para escutar. Durante uma reunião, assim que o cliente começa a explicar uma funcionalidade do novo aplicativo, a mente do programador abandona a sala e automaticamente já começa a trabalhar no código que precisará ser desenvolvido. Deste momento em diante tudo o que for dito na sala será ignorado. Concentre-se. Se você não escutar o que os outros estão dizendo, como espera ser ouvido?
Lembre-se disso: Não é somente o que você diz, mas também como você diz. A menos que você esteja trabalhando sozinho dentro de uma bolha, você deve ser capaz de se comunicar. E quanto mais eficaz for a sua habilidade de comunicação, mais influente você se tornará.

Microsoft libera Micro Framework .NET como Open Source

Peter Galli, Open Source Community Manager da Microsoft anunciou no blog PORTA 25 que o Micro Framework .NET 4.0 está sendo disponibilizado em regime de Open Source.
O MF .NET é um ambiente extremamente enxuto, projetado para rodar aplicações .NET que utilizem um subset do Framework completo. Ele é compatível com CPUs mobile, como ARM, e roda no XBOX360. O footprint de memória é ridículo, meros 300KB.
Todo o código-fonte foi disponibilizado sob a licença Apache 2.0 (compatível com GPLv3), exceto as rotinas de criptografia, que segundo a Microsoft são utilizadas em outros produtos, e o stack TCP/IP, que é licenciado de terceiros e portanto não pode ter seu fonte disponibilizado.

Fonte: TuxRadar

Bagunça pode ser tudo o que você precisa


Já notou que sempre bangunçamos o ambiente em que estamos trabalhando? Se você não fizer um esforço bem consciente para organizar tudo enquanto trabalha ou quando termina de fazer o que precisa, as chances são que as coisas estejam um pouco mais bagunçadas do que no início. Já notou também que mesmo que tudo pareça bagunçado, você (quase) sempre consegue se achar na sua bagunça? E que se alguém fizer o “favor” de “organizar” as coisas para você há uma boa chance de piorarem sua situação? Isso acontece porque a bagunça era a sua bagunça.
E também porque provavelmente não era uma bagunça.
Por trás desse tipo de bagunça aparente, há sempre uma ordem não óbvia. Para usar um exemplo bastante simples discutido no livro Uma bagunça perfeita de Eric Abrahamson e David H. Freedman (prometo publicar uma resenha apropriada em breve), uma pilha de papéis jogados sobre uma mesa está ordenada por ordem de uso: os mais usados ficam no topo e os menos usados no fundo. Isso acontece naturalmente se você sempre devolver os papéis que precisou da pilha para o topo. Do mesmo modo, se você pedir a alguém para realizar alguma tarefa rotineiramente, as pessoas sem nem perceber acabam bolando procedimentos de modo a facilitar o trabalho, aproveitar melhor o tempo e tornarem-se produtivas. Por isso bons programadores acabam chegando a algo parecido com XP se não forem podados.
Mas este é um blog sobre desenvolvimento de software para programadores e o trabalho do programador é justamente eliminar a bagunça do trabalho das pessoas, escrever programas que as ajudem a se organizar melhor, identificar “processos de negócio” e coisa e tal, certo?
Errado, se o seu ego conseguir aceitar que as pessoas que estão lá fazendo o trabalho no fim das contas sabem muito mais dele do que você.
Muitas vezes o que precisamos não é bem organizar o que as pessoas estão fazendo. Às vezes precisamos somente tornar a bagunça mais eficiente. Quando se tenta organizar muito os processos de trabalho das pessoas a coisa acaba ficando engessada demais. O resultado são sistemas que atrapalham mais do que ajudam e gente que passa mais tempo tentando agradar os sistemas corporativos do que resolvendo problemas dos clientes. Já ouviu a célebre frase “eu entendo, mas o sistema não deixa” quando tentou algo minimamente fora do comum com um banco ou uma operadora de telefone? É disso que estou falando. Resultado dos sistemas paralisantes. Resultado da organização demasiada.
Por outro lado sistemas caóticos terminaram sendo alguns dos exemplos de maior sucesso em nossa indústria. O Unix, por exemplo, é descrito por Martin Fowler como a maior aglomeração de coisas coladas umas nas outras que o mundo já viu. A web, por sua vez, é uma imensa bagunça de documentos, links e referências em escala global. Os dois sistemas têm em comum a filosofia de fazer pouca coisa, mas fazer bem o que escolheram fazer, e permitir que os usuários façam o que bem entenderem utilizando essa fundação. Eles não tentam organizar cada mínimo aspecto da rotina das pessoas. Eles aceitam o fato de que nunca vão conhecer o trabalho das pessoas tão bem quanto elas mesmas e se concentram em permitir que elas tenham liberdade para fazer o que quiserem do jeito que quiserem.

quarta-feira, 25 de novembro de 2009

Escola é Fabrica de Fracassados


No último horaextra surgiu um assunto que a um bom tempo me interesso e gostaria de escrever sobre : A formação educacional.  Tal coisa apareceu após falarmos dos perfis das pessoas que tem sucesso – financeiro, político, público, científico, etc – e notarmos que a grande maioria desses tinha algo em comum:  nenhum deles seguia algum padrão dito normal pela sociedade.  Isso nos leva a pensar que talvez a forma que estamos educando não seja a melhor forma pois, a maioria dos vitoriosos não seguiram esta trilha e os que ela seguem não tem grandes chances de sucesso.
Não existe uma formula secreta para ser famoso ou rico. Existe é trabalho, sorte e muito sacrifício. Infelizmente isso ninguém ensina nos colégios.
Nossas escolas baseiam sua forma de ensinar em padrões que foram determinados já faz um bom tempo (não tenho certeza mas a última reforma foi a 20 ou 30 anos) e, com isso, é de se esperar que nenhuma das crianças atuais não consigam mais achar interessante ou desafiador o fato de estudar. O pior de tudo, em minha opinião, é que as escolas acabam  se tornando fábricas de fracassados, com suas formulas, padrões generalizados e com seus modelos ultrapassados. Desconheço a escola onde se ensina a criança a ter uma relação saudável com dinheiro; desconheço a escola onde se ensine coisas simples como empreendorismo.  Poderia ficar nisso o tempo que quisesse (enumerando lições interessantes que deveriam ser dados porém não o são). A questão que o modelo educacional adotado data de séculos e nunca foi feito até então uma reforma profunda. O que tenho visto, nas ditas escola modernas, é apenas uma maquiagem ou nova roupagem para o velho modelo, como por exemplo de uso de computadores mas ainda insistem ensinar matemática através de “decoreba” de tabuada.
Cansei de ter professores, por exemplo, de português que gastavam todas suas energias em me ensinar todos os termos ortográficas, pronomes, análises sintáticas, etc entretanto, nunca perderam 5 minutos de suas preciosas vidas para dizer coisas simples como pontuação pode mudar o sentido do texto; sujeito oculto e indeterminado pode ser um recurso interessante para dar uma imagem da narrativa, pronomes demonstrativos carregam o sentido da distancia, e um monte de outras coisas que acabei aprendendo com jornalistas, escritores, menos com professores de português. Isso não se limita aqui, exemplo diversos existem em matemática, história – quantas não foram as aulas que escutei por longo tempo datas e nomes os quais nunca fizeram sentido; somente tiveram sentido quando decidi ler romances e estudos históricos com outros enfoques.
Se tudo isso já não fosse argumento suficiente para mostrar que escolas são fábricas de fracassados, ainda existe o fato de que elas não refletem a realidade da criança. Hoje, um menino (ou menina) já tem acesso a um mundo de informação e está num mundo onde a comunicação acontece de forma simples e sem fronteiras.  As respostas estão todas a um clique ou busca no Google. Não existe mais a necessidade de sermos memórias vivas… Precisamos desenvolver o raciocínio para processar essa volume assustador de informação que recebemos a cada segundo. Para piorar, em lugar nenhum, até mesmo em casa, ninguém nos ensina a sermos empreendores, a não tem medo de realizarmos nossos sonhos, de nos lançarmos ao desconhecido de peito aberto.
Quantas não são as pessoas que ficam em livrarias, para ser mais exato nas sessões de auto-ajuda, em busca de algo que traga uma formula secreta e infalível que a tornará o melhor profissional, melhor pai (ou mãe),  ficar rico, famoso, etc. Tudo isso vem da crença que nos é passada na infância que para tudo deve existir um método e que correr riscos é algo ruim. Gosto de citar como exemplo o fato de que o Bill Gates e do Steve Jobs não terem feitos faculdade e hoje são  uma das maiores fortunas do mundo.  A questão que fica é: a escola ajuda ou atrapalha.
Antes que comecem a pensar que devamos fechar todas as escolas e mantermos nosso filhos em casa, vamos com calma.  Nem tudo é ruim. A escola é importante entretanto ela deve se transformar, se redescobrir e ao seus métodos em nossa era.  Todos devemos saber escrever, fazer contas, etc a questão que isso pode ser ensinado de forma interessante do ponto de vista do aluno.  Não adianta achar que isso é apenas usar computadores e datashow para dar aula: deve-se entender a cultura formada em torno.  Além disso, o mundo precisa de pessoas que desafiem a ordem instaurada, inovadores, empreendores.
Por vezes a resposta está em quebrarmos paradigmas; o sucesso pode ser em fazer algo que saia do lugar comum e que até quebrar com crenças ; quanto não são as histórias de pessoas que para obter sucesso naquilo que gostam de fazer tiveram que romper laços com familia….
Precisamos quebrar essa fábrica de fracassados e começarmos a pensar que temos que formar gente diferente da maioria que está por ai.

Fonte: André Fonseca

Claro aposta em celular que permite personalizar funções

Um celular simples e extremamente leve que tem como principal característica ser modular. Isso quer dizer o seguinte:  o consumidor compra o equipamento com as funcionalidades básicas. A partir daí, ele pode adicionar os recursos que mais lhe apetecem, por meio de acessórios que são incorporados ao produto.
Esse  é o diferencial do moduTM phone, celular lançado nesta segunda-feira (23/11) pela Claro e fabricante de celulares modu, que tem sede em Israel.
O equipamento tem forte apelo funcional, é bem pequeno e tem mecanismo de armazenamento interno de memória de 2GB. Além disso, teclado de sete teclas.
O celular possibilita que o usuário alterne o uso o uso de acessórios.  Caso a pessoa queira um porta-retratos digital ou um cronômetro, por exemplo, basta inserir os respectivos acessórios com as funções.  
O modu phone estará nas lojas da Claro até o fim do ano. Ele será comercializado por 299 reais no pacote de 80 minutos, que custa 79,90 em São Paulo - para outras regiões o valor varia em função de impostos.
Criada em 2007, a modu desenvolveu um telefone que, segundo a companhia, é a o mais leve do mundo.  
modu_frente(2).jpg

Fonte: Clayton.melo, Glog



Oi deve oferecer iPhone a partir de dezembro

Empresa nega, mas funcionário afirma que o celular da Apple chega no mês que vem.


O namoro entre Oi e Apple é antigo. E parece que agora sai o casamento. Em dezembro, a operadora deve, finalmente, disponibilizar o iPhone, pelo menos em São Paulo.  O aparelho já é oferecido por Vivo, Claro e TIM.

O rumor sobre o acordo circula desde o lançamento  do iPhone no Brasil, em setembro de 2008, e ganhou fôlego nos últimos meses. No final de outubro, o Blog do iPhone anunciou que dezembro seria a data do lançamento do produto, que estaria disponível desbloqueado. Hoje (25/11) o blog MacMagazine voltou ao assunto, citando fontes internas e afirmando que o celular chega antes do Natal.
Procurada pela redação de Macworld Brasil, a assessoria de imprensa da Oi negou o fato e não forneceu data para o lançamento. A Apple também não se manifestou sobre o caso. Falamos, então, diretamente com a Oi. Pelo telefone, no 0800, a atendente não soube informar. Já pessoalmente, na loja da Oi na Vila Olímpia, em São Paulo, a informação foi confirmada: “não temos no momento, mas já estamos trabalhando com ele, chega em dezembro”, disse a atendente.
Fonte:  Daniel dos Santos, Macworld Brasil