Tecnologia e Conhecimento

tecnologia, esporte, computação, livros, pensamentos, opiniões... 
Filed under

software

 

Menos é Mais - Java no APP Engine

Complementando e atualizando o post anterior, agora o Google App Engine está dando suporte a Java!

Além disso, está rolando uma promoção de acesso para os primeiros 10 mil a assinarem o serviço.

O serviço suporta Java 6 e, para quem por qualquer motivo ainda não podem contar com essa versão, como os usuários de Mac OS X, há também o suporte a Java 5. A persistência é feita através de JDO acessando o Google DataStore.

Há também um plugin para o Eclipse que facilita o desenvolvimento das aplicações com o SDK do AppEngine.


Loading mentions Retweet
Filed under  //   programação   software   tecnologia  

Comments [0]

Menos é Mais - Hospedagem de Aplicações

Dando continuidade ao post anterior, vou falar um pouco sobre escalabilidade de aplicações, cloud computing, Rails, SaaS e a tendência minimalista dos novos tempos.

Até dois anos atrás ninguém discordaria de que um projeto de software que tivesse a expectativa de um alto volume de acessos ao mês (e aí estou me referindo aos milhões) deveria ser construído numa arquitetura de software robusta, distribuída, obedecendo a padrões bem estabelecidos. Na verdade, acho que hoje ainda todos concordam com isso. Mas uma coisa parece estar mudando fundamentalmente. 

Onde antes havia uma grande preocupação com a plataforma de desenvolvimento, framework de persistência, inversão de controle, distribuição de transações e dados, especificações de arquitetura, serviços e infinitos padrões de projetoagora vemos investimentos para garantir disponibilidade e tempo de resposta direcionados para o software básico, ou seja, sistemas operacionais, bancos de dados, balanceamento de carga, virtualização. As aplicações começam a ser desenvolvidas com foco apenas na aplicação em si (uau!), com o mínimo de camadas, o mínimo de código ortogonal.

O mesmo acontece no mundo do Ruby. O Rails, o framework MVC mais conhecido na plataforma Ruby, não tem NADA que faça alusão a distribuição de objetos da aplicação, padrões de projeto complexos, especificações rígidas. Ao contrário, é tudo muito simples, minimalista, baseado em convenções. Construa sua aplicação como se fosse executá-la apenas para você. Depois, se precisar escalar, basta fazer o deploy num ambiente com estrutura mais robusta em termos de hardware ou cluster e até mesmo nuvem. Há uma série de 13 screencasts produzida pela New Relic tratando somente sobre escalabilidade de aplicações em Rails. Veja por si só o que estou dizendo.

O Google App Engine é o ambiente de computação em nuvem do Google, lançado para concorrer com o Amazon Web Services. O App Engine tem um SDK (Software Development Kit) baseado em Python com o qual se pode desenvolver as aplicações e hospedá-las na infra-estrutura oferecida pelo serviço. O SDK fornece algumas classes básicas para persistência com tratamento de transações. A persistência é feita num datastore do próprio Google. O importante é que quem desenvolve a aplicação não precisa se preocupar com interfaces remotas, filtros, múltiplas camadas de negócio, etc. Apenas codifique sua aplicação como se fosse standalone. Quando fizer o deploy, poderá escalar conforme a necessidade, sem precisar mexer na aplicação.

Parece que o ciclo de gato e rato da corrida entre software e hardware está na fase do hardware na frente, onde o agrupamento de processadores está dando o tom da música do processamento corporativo de alto desempenho. Obviamente, hardware sem software é apenas silício e cobre, então o suporte a vitualização e clustering em sistemas operacionais e servidores de aplicação, além da combinação de estratégias de cache e balanceamento de carga, tem tornado possível o acesso de pequenas empresas a uma estrutura robusta e barata sem a necessidade de grandes conhecimentos técnicos por parte da equipe de desenvolvimento. Menos custo, menos tempo, menos código, menos treinamento, menos manutenção...

Loading mentions Retweet
Filed under  //   programação   software   tecnologia  

Comments [1]

Implementando GTD

Estou testando 3 ferramentas que me auxiliem a implementar os preceitos do GTD - Getting Things Done, conforme ensinados pelo David Allen em seu livro Getting Things Done: The Art of Stress-Free Productivity.

À moda dos Flintstones

A primeira ferramenta que comecei a testar foi o bom e velho par papel e caneta. Apesar de a técnica do GTD recomendar que se esvazie a mente, o fato de estar obrigado a escrever e carregar o papel pra cima e pra baixo me ajuda a manter o entusiasmo no controle das tarefas, me dando a satisfação de ver o que eu já consegui realizar.



Lembre-se do leite

Depois comecei a testar o Remember The Milk, uma ferramenta simples, mas poderosa. Oferece um gadget para ser colocado na página inicial personalizada do Goggle, integração com ferramentas baseadas no formato iCalendar, sincronização com Blackberry e Windows Mobile, feed RSS, compartilhamento da lista de tarefas com contatos cadastrados, etc... O grande problema para o meu objetivo: não é contruído sob os modelos do método GTD, embora seja possível aplicar grande parte dos conceitos, e não tem configurações flexíveis para a funcionalidade de impressão das listas de tarefas.



Mesmo assim, é a ferramenta que estou usando efetivamente agora. As vantagens práticas para mim são a agilidade oferecida para entrada de dados, com teclas de atalho, muito AJAX e uma confortável interface, bem limpa e clara. Apesar de grátis, não é software livre, impedindo que eu customize a aplicação com minhas idéias de melhorias ou que a adapte para minhas necessidades.

Trilhando o caminho

Finalmente, hoje instalei o Tracks, essa sim uma ferramenta desenvolvida como software livre, com código aberto. Mas o Tracks não é um serviço, como o Remember The Milk, ou seja, quem quiser usá-lo, terá que baixar o pacote, instalá-lo, executar um servidor web local, enfim, coisas que pessoas comuns não fazem. Como eu sou cientista da computação, instalei um cópia do Tracks num servidor que eu já tinha configurado para outros projetos, com banco de dados, servidor web e toda a infraestrutura necessária.



O Tracks é feito totalmente baseado nos preceitos do livro do David Allen, fornece todas as funcionalidades necessárias para a perfeita prática do GTD como orientado.  Entre suas funcionalidades estão as tarefas recorrentes, criação de contextos e projetos para estruturar as tarefas, além da possibilidade de se visualizar gráficos de estatísticas, como número de tarefas completadas no mês, tempo médio gasto para completar as tarefas, etc.

Ainda não comecei a usar de fato, acabei de concluir a configuração, mas aparentemente é um software bem completo. Vou aproveitar o fato de se tratar de software livre para dar minhas contribuições ao projeto do Tracks, a começar pela criação da opção que deveria ser dada ao administrador do sistema de permitir ou não que usuários façam seu próprio cadastramento. A versão original do Tracks só permite que o administrador cadastre novos usuários.

Talvez surja daí um novo serviço na web baseado nas técnicas "oficiais" do GTD. Vou pensar melhor sobre isso, quem sabe colocar uma anotação para o futuro :-)

Loading mentions Retweet
Filed under  //   gtd   software  

Comments [0]