Um Manifesto!

...

  • Increase font size
  • Default font size
  • Decrease font size

Blog

Que tal aprender programação funcional

E-mail Print PDF

O próximo passo na cadeia evolutiva dos paradoxos de programação, a programação funcional é um método academico já antigo, que é extremamente simples mas por ser tão diferente de tudo que se costuma aprender a programar se torna uma passagem dificilmente feita.

Se cansou de programação imperativa, dos objetos e de variaveis... que variam, e tipo e mais tipos  é hora de entrar em um mundo onde as estruturas são imutáveis, onde tudo é função, de recursividade e concorrência natural.

Como eu ainda não sei nada disso, ficam os links :)

Have fun.

Last Updated on Thursday, 07 May 2009 10:30
 

A arte geek de aprender

E-mail Print PDF

Acho que todo bom nerd(Yeah, sou nerd!) gosta de aprender coisas novas, principalmente geeks da área de tecnologia, aonde surgem novidades a cada segundo. Basta um semana de feeds novos que vamos descobrir várias coisas novas, das quais pelo menos uma vai nos interessar em aprender.

Infelizmente, a grande quantidade de novidades empolgantes somadas as nossas atividades obrigatórias, como estudar e trabalhar, costuma atrapalhar nossa busca por novos conhecimento interessantes.

Na maioria dos casos de tecnologias novas, eu prefiro aprender fazendo. De preferência com alguma idéia nova, ou revitalizando algum projeto antigo usando as novidades. Criar um projeto novo especificamente para testar as novas tecnologias.

Nessa caso estou falando de tecnologias, de implementação. No caso de conceitos, a abordagem é diferente, começando pelo estudo. Por exemplo, para aprender Orientação a Objetos é interessante ler primeiro, para depois aprender a implementar(ai sim, na prática), ou para aprender sobre modelos de webservices(REST ou SOAP), são itens abstratos. Arquiteturas, Design, e por ai vai.

Mas se quer aprender uma nova linguagem ou framework, faça uma aplicação. Um tecnologia de virtualização, crie uma pequena rede virtual. Administração de sistema, instale e rode um servidor, mesmo que virtual. Um novo CMS, instale e use. Enfim, faça algo! Mesmo que seja numa aplicação pequena.

As vezes vou ao extremo nisso, crio o projeto antes de ler o primeiro tutorial. Começo o projeto e consulto a documentação conforme for avançando. E é importante lembrar sempre de fazer as coisas da nova forma, usando o máximo de recursos da nova tecnologia, e evitar cair na tentação de usar os métodos antigos “apenas aqui para ser rapidinho”.

E para complementar os estudos, que tal publicar artigos sobre o assunto? Tentar ensinar e passar conhecimento adiante é uma ótima forma de reavaliar seus conhecimento e aprimorar-se. 

Estes dias estou aprendendo JavaFX, que introduz o JavaFx Script, uma linguagem com sintaxe declarativa, e todo um novo pacotes de elementos ao Java. Além possuir conceitos diferentes quanto a criação de aplicações.

Não adiantaria muito se, por exemplo, eu fizesse as interfaces com swing, ou usasse o tempo todo a sintaxe padrão do Java, que é suportada. Assim não estaria aprendendo as novidades dessa tecnologia e não estaria aproveitando seus recursos únicos.

Seria o mesmo que aprender Orientação a Objetos, apenas para fazer listas de métodos chamados um após o outro de forma procedural. Ou tentar aprender um linguagem funcional sem usar closures, macros e currying. Ou usar um framework novo, e fazer gambiarras para usar os mesmos recursos do antigo. No fim não vai aprender a parte interessante da tecnologia, e ainda vai ficar reclamando que a tecnologia é ruim por que é diferente.

O interessante a notar é que a cada "milestone" do projeto, tem-se vontade de apagar tudo e começar do zero, por que nesse ponto você descobre que poderia ter feito tudo diferente e bem melhor. Ai o melhor é refatorar um pouco, deixe terminar o projeto. Ao final, faça a versão 2.0 do zero, pois ai você já tem a visão macro das melhorias e novidades.

Enfim, se quer aprender algo novo. Pegue uma das opções, e faça!

 

Configurando Java FX no Netbeans no Linux

E-mail Print PDF

Uma nova tecnologia promissora a entrar no mercado é o Java FX da SUN para o mercado de RIA, na área em que temos o Silverlight da Microsoft e o Flash/Flex da Adobe, e esta disponível no Java 6.

 

Java Fx

 

Ele pode rodar como os antigos applets diretos do browser, mas muito mais leves e rápidos, além de usar uma linguagem script muito mais prática para interfaces, deixando as desvantagens que levaram os applets a falharem no passado. Além de outras evolução do Update N, que tornaram a Maquina java mais modular e leve, com um “boot” mais rápido.

Interessante recurso também é a possibilidade de arrastar um applet para o desktop e utiliza-lo como stand-alone, transformando-o em uma aplicação desktop padrão. Há também o Java Fx Mobile, que virá em breve nos dispositivos embarcado.

Sendo principalmente uma tecnologia para interfaces ricas, possui ainda diversas ferramentas para integrar gráficos gerandos em diversas tecnologias direto ao Java Fx Script, com isso podemos por exemplo desenhar uma interface direto em vetor, com o Inkscape ou outro, e passar para o JavaFx Script, entre outras possibilidades.

Até o momento o suporte oficial é apenas ao Windows e ao Mac, mas como os bons usuários Linux não tardou um método para fazer funcionar, com a limitação de recursos de vídeo. Então, vamos colocar o ambiente para funcionar no Netbeans 6.5.1 com o JavaFX 1.1.1 no Linux.

O Método completo pode ser lido aqui, em inglês. Sequindo este vai resultar nestes arquivos, baixe-os e descompacte.

Em seguida, abra o Netbeans e use o menu Ferramentas > Plugins, na aba Baixados clique em Adcionar Plugins e selecione todos os arquivos do download e em seguida, com todos selecionados, em Instalar.

Basta reiniciar o Netbenas e pronto, o ambiente esta funcionando, pode agora usar os Samples que acompanham para ver o Java Fx em ação, e estudar essa nova tecnologia.

 

Netbeans com JavaFx no Linux
 

 

Last Updated on Tuesday, 07 April 2009 14:57
 

REST Server em segundo lugar!

E-mail Print PDF

Como publiquei no começo do mês de março, o RestServer foi nomeado ao innovation awards do phpclasses.org, o que já havia me deixado bem feliz, e esta semana saiu o resultado, e o pacote ficou em segundo! Yay. 

O pacote foi atualizado inclusive, com algumas melhorias internas e um exemplo bem melhor, pode-se conferir na página do RestServer ou no GITHUB.

Em primeiro lugar esta um outro pacote legal, o Online Zip Modifier, para edição e manutenção de arquivos ZIP "on the fly". 

Estou mega feliz com isso, e vou tentar agregar mais funções ao pacote para fazer valer a pena!

Obrigado a todos que votaram.

 

Anotações e Persistencia, no PHP.

E-mail Print PDF

Então eu já falei sobre anotações , e também sobre persistência. Vamos juntar as peças?

Um pacote em PHP para leitura de classes com anotações e geração da configuração do ORM a partir dessa. Por enquanto o ORM é o Outlet, pretendo ainda usar o Doctrine. Para annotation usa o addendum.

Então, como usar?

 $config = new PersistenceAnnotation('mysql:host=localhost;dbname=encontros','encontros','123');
 $config->addClass('User')->addClass('Encounter')->addClass('Device');
 // Starts the Persistence Framework
 Outlet::init($config->getConfig());
 $outlet = Outlet::getInstance();
 $outlet->createProxies();

E, é claro, os modelos, devidamente anotados:

  /** @Persistence('devices') */
  class Device {
  /** @Persistence(type='int',props={
  pk=true,autoIncrement=true}) */
  private $id ;
  /** @Persistence() */
  private $mac ;
  /** @Persistence() */
  private $time ;
  /** @Persistence() */
  private $user_id ;
  /** @Persistence({'many-to-one','User',{key='user_id',plural='user'}}) */
  private $user
 // resto da classe
  }

Basicamente é isso, e então continuar a usar o framework normalmente, mas sem escrever os arquivos de configurações do mesmo.

Pode-se obter o código no meu pacote no github

 

Nomeado ao Innovation Award no phpclasses.org!

E-mail Print PDF

Recebi um E-mail muito legal hoje(01-mar), avisando que fui indicado ao prêmio de inovação no PHPClasses.org. Que legal! O pacote indicado é o RestServer , implementação para webservices restful em php.

Fiquei bem feliz por que dediquei-me bastante neste pacote, e de fato o uso bastante, e recebo um feedback legal dele.

Quem for cadastrado no site pode votar na classe que achar mais inovadora através do link de votação

Uma boa maneira de começar o mês, huh? 

 


Page 7 of 20