<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Codes on Meu nome é Elton Minetto</title><link>https://eltonminetto.dev/categories/codes/</link><description>Recent content in Codes on Meu nome é Elton Minetto</description><generator>Hugo</generator><language>pt</language><copyright>{year}</copyright><lastBuildDate>Fri, 04 Jan 2013 14:00:00 +0000</lastBuildDate><atom:link href="https://eltonminetto.dev/categories/codes/index.xml" rel="self" type="application/rss+xml"/><item><title>Migrando do Wordpress para o Octopress</title><link>https://eltonminetto.dev/2013/01/04/migrando-wordpress-para-octopress/</link><pubDate>Fri, 04 Jan 2013 14:00:00 +0000</pubDate><guid>https://eltonminetto.dev/2013/01/04/migrando-wordpress-para-octopress/</guid><description>&lt;p>Eu mantenho esse site desde meados de 2003 e nesse tempo venho usando o Wordpress como plataforma. Ele sempre foi uma boa opção, mas um detalhe vinha me deixando nervoso nos últimos tempos: eu passava mais tempo formatando os textos, imagens e códigos do que realmente escrevendo o texto.&lt;/p>
&lt;p>Recentemente descobri o &lt;a href="http://daringfireball.net/projects/markdown/">Markdown&lt;/a> para realizar as marcações e gostei muito, tanto que &lt;a href="http://eltonminetto.net/blog/2012/05/14/usando-jekyll-e-github-pages/">usamos no novo site&lt;/a> da &lt;a href="http://coderockr.com">Coderockr&lt;/a> e eu &lt;a href="http://eltonminetto.net/blog/2012/11/29/escrevendo-um-livro-do-modo-nerd/">usei para escrever&lt;/a> o e-book &lt;a href="http://www.zfnapratica.com.br">Zend Framework 2 na prática&lt;/a>.&lt;/p>
&lt;p>Na construção do site da Coderockr nós usamos a dupla Jekyll e Github Pages. Nesse site eu usei uma solução um pouco diferente: Octopress, Google Analytics, Disqus e Amazon S3.&lt;/p>
&lt;p>Nesse post vou comentar sobre o processo de migração e as ferramentas usadas&lt;/p></description></item><item><title>Gerenciando assets por módulos no Zend Framework 2</title><link>https://eltonminetto.dev/2012/12/21/gerenciando-assets-por-modulos-no-zend-framework-2/</link><pubDate>Fri, 21 Dec 2012 14:44:59 +0000</pubDate><guid>https://eltonminetto.dev/2012/12/21/gerenciando-assets-por-modulos-no-zend-framework-2/</guid><description>&lt;p>&lt;em>Obs: Esse é um post avançado sobre Zend Framework 2. Se você não está familiarizado com os novos termos e conceitos do framework eu recomendo esse &lt;a href="http://code-squad.com/screencast/introducao-zf2">screencast com a introdução&lt;/a> ou o e-book &lt;a href="http://www.zfnapratica.com.br">Zend Framework 2 na prática&lt;/a> (eu sei que é cara de pau hehe)&lt;/em>&lt;/p>
&lt;p>Uma das funcionalidades mais úteis do Zend Framework 2 é a forma como os módulos agora podem ser facilmente incluídos ou removidos de um projeto. Um módulo agora é realmente uma porção de código que pode ser reaproveitada facilmente. Nesse post vou mostrar isso usando um módulo muito útil chamado &lt;a href="https://github.com/RWOverdijk/AssetManager">AssetManager&lt;/a>.&lt;/p></description></item><item><title>Gerando dados para testes de aplicativos</title><link>https://eltonminetto.dev/2012/07/19/gerando-dados-para-testes-de-aplicativos/</link><pubDate>Thu, 19 Jul 2012 11:27:15 +0000</pubDate><guid>https://eltonminetto.dev/2012/07/19/gerando-dados-para-testes-de-aplicativos/</guid><description>&lt;p>Ontem passei novamente por uma situação que imagino ser bem comum para a maioria dos desenvolvedores. Estava testando um novo projeto e precisava alimentar algumas tabelas com dados, para poder fazer testes de usabilidade, performance, etc.
Resolvi investir algumas pesquisas no Google e acabei encontrando uma boa solução para o caso, o site &lt;a href="http://generatedata.com/">http://generatedata.com/&lt;/a>
Com o site é possível gerar diversos dados, em vários formatos como SQL, XML, CSV e HTML. Para exemplificar o uso eu gravei um pequeno vídeo mostrando a geração de SQL para testar uma tabela de pessoas&lt;/p></description></item><item><title>Maldito segmentation fault</title><link>https://eltonminetto.dev/2012/04/27/maldito-segmentation-fault/</link><pubDate>Fri, 27 Apr 2012 15:30:50 +0000</pubDate><guid>https://eltonminetto.dev/2012/04/27/maldito-segmentation-fault/</guid><description>&lt;p>Esse é um daqueles posts que serve mais para me ajudar, mas acho que pode ser útil para mais pessoas.
Já tive vários casos onde uma aplicação PHP gera um erro muito genérico nos logs do Apache, o famigerado &amp;ldquo;Segmentation fault&amp;rdquo;. Na prática significa que alguma coisa deu tão errado que o processo do Apache que estava executando o seu script PHP foi cancelado. Mas o log não ajuda muito, pois podem ser várias coisas.
Nesse post vou descrever o processo que fiz para encontrar um problema em uma aplicação. Os passos foram feitos em uma máquina virtual Ubuntu, a que eu gerei com o &lt;a href="https://eltonminetto.dev/blog/2012/04/02/usando-o-vagrant-para-criar-maquinas-virtuais-para-desenvolvimento-e-testes/">Vagrant&lt;/a>.
O primeiro passo é instalar os pacotes necessários para conseguirmos toda a informação possível:&lt;/p></description></item><item><title>News feed usando nodeJS, Pubsub.io e jQuery</title><link>https://eltonminetto.dev/2011/07/19/news-feed-usando-nodejs-pubsub-io-e-jquery/</link><pubDate>Tue, 19 Jul 2011 15:00:25 +0000</pubDate><guid>https://eltonminetto.dev/2011/07/19/news-feed-usando-nodejs-pubsub-io-e-jquery/</guid><description>&lt;p>Um dos projetos que estamos desenvolvendo na &lt;a href="http://www.coderockr.com">Coderockr&lt;/a> é uma rede social, da qual vamos dar mais detalhes no futuro, e um dos componentes é um news feed, algo parecido com o &amp;ldquo;mural do Facebook&amp;rdquo; onde são mostrados os eventos mais atuais aos usuários (novas notícias, novos pedidos de amizade, novos conteúdos, etc).
Estamos estudando algumas tecnologias para melhor solucionar esta necessidade, e uma das soluções é algo bem novo para nós, o uso quase que total de Javascript: &lt;a href="http://nodejs.org">nodeJS&lt;/a>, &lt;a href="http://pubsub.io/">Pubsub.io&lt;/a> e nossa velha amiga jQuery.
O nodeJS é uma das tecnologias mais interessantes que surgiu nos últimos tempos. O mago do Javascript &lt;a href="http://twitter.com/jaydson">@jaydson&lt;/a> escreveu alguns posts muito legais fazendo uma &lt;a href="http://jaydson.org/nodejs-introducao">introdução&lt;/a> e mostrando os &lt;a href="http://jaydson.org/nodejs-instalacao">primeiros passos&lt;/a> na ferramenta. Recomendo a leitura.
O Pubsub.io é construído sobre o nodeJS e é um &amp;ldquo;query based message hub&amp;rdquo;, trabalhando com o conceito de publishers (programas que publicam conteúdo) e consumers (os que consumem as mensagens), e adicionando a possibilidade de usar uma query language baseada na usada pelo banco NoSQL MongoDB para filtrar os resultados.
A solução que estamos testando funciona da seguinte forma: sempre que um evento acontece (uma nova foto é salva, por exemplo) o componente que executou o evento (um model ou um controller de uma aplicação Zend Framework, por exemplo) faz uma requisição http para uma url servida pelo nodeJS e este publica uma mensagem no Pubsub.io. Na aplicação client, no navegador web, usando a biblioteca JS do Pubsub.io e o jQuery mostramos as mensagens na tela. Vamos tentar explicar com códigos :)
Após instalar o nodeJS e o npm (&lt;a href="http://howtonode.org/introduction-to-npm">node packet manager&lt;/a>) é preciso instalar o Pubsub.io, usando o comando abaixo, no mesmo diretório onde ficará o script server.js (script nodeJS mostrado abaixo):
&lt;code>npm install pubsub.io&lt;/code>
Agora é preciso instalar e executar o servidor do Pubsub.io:
&lt;code>git clone git@github.com:pubsubio/pubsub-hub.git ./pubsub-hub/lib/server.js&lt;/code>
Ele ficará ouvindo na porta 9999
O próximo passo é escrever o &lt;a href="https://gist.github.com/1093224">código do aplicativo&lt;/a> do nodeJS e executá-lo com o comando:
&lt;code>node server.js&lt;/code>
Como o nodeJS fica executando na porta 8080 podemos publicar novos eventos usando algo simples como um comando curl, via linha de comando:
&lt;code>curl -d &amp;quot;title=new photo&amp;amp;detail=http://localhost/photo/id/1&amp;amp;user=eminetto&amp;quot; http://127.0.0.1:8888&lt;/code>
O -d indica que estamos usando o comando POST para enviar.
Podemos também usar o curl no PHP:
&lt;code>$url = 'http://127.0.0.1:8888'; $postvars = 'title=new image&amp;amp;detail=http://localhost/image/id/1&amp;amp;user=eminetto'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST ,1); curl_setopt($ch, CURLOPT_POSTFIELDS ,$postvars); curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1); curl_setopt($ch, CURLOPT_HEADER ,0); curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); $Rec_Data = curl_exec($ch);&lt;/code>
Na parte client vamos usar a biblioteca Javascript do Pubsub.io e jQuery para mostrar ao usuário a notificação: &lt;a href="https://gist.github.com/1093252">ver código&lt;/a>&lt;/p></description></item><item><title>Contabilizar espaço usado em FTP usando Python</title><link>https://eltonminetto.dev/2010/03/10/contabilizar-espaco-usado-em-ftp-usando-python/</link><pubDate>Wed, 10 Mar 2010 11:34:05 +0000</pubDate><guid>https://eltonminetto.dev/2010/03/10/contabilizar-espaco-usado-em-ftp-usando-python/</guid><description>&lt;p>Aqui na &lt;a href="http://www.drimio.com">empresa&lt;/a> temos duas contas de FTP contratadas no nosso plano de hospedagem para usarmos como espaço de backup. As duas contas tem um espaço limitado e toda semana eu preciso monitorar quanto espaço estamos usando, para evitar erros no script de backup. Para facilitar esse controle eu criei um pequeno script Python para navegar em todas as pastas e me dizer quanto espaço estou usando. O script ficou assim:&lt;/p></description></item><item><title>Enviando DMs do Twitter via shell script</title><link>https://eltonminetto.dev/2010/01/28/enviando-dms-do-twitter-via-shell-script/</link><pubDate>Thu, 28 Jan 2010 20:38:19 +0000</pubDate><guid>https://eltonminetto.dev/2010/01/28/enviando-dms-do-twitter-via-shell-script/</guid><description>&lt;p>Monitorar os servidores e serviços é uma tarefa importante para manter seus sites e sistemas sempre em ordem. Existem diversas ferramentas bem completas como o Nagios que fazem praticamente todo o serviço. Eu uso o Nagios para monitorar quase tudo e ele me avisa via e-mail de quaisquer problemas. O problema é que nã verifico e-mail o tempo todo.  Uma solução seria mandar os avisos via SMS, mas isso envolve alguns custos.&lt;/p></description></item><item><title>Material da palestra no PHPSC Conf 2009</title><link>https://eltonminetto.dev/2009/06/10/material-da-palestra-no-phpsc-conf-2009/</link><pubDate>Wed, 10 Jun 2009 17:48:17 +0000</pubDate><guid>https://eltonminetto.dev/2009/06/10/material-da-palestra-no-phpsc-conf-2009/</guid><description>&lt;p>Finalmente me organizei e fiz o upload dos slides da palestra que ministrei no PHPSC Conf 2009.
Coloquei no Slideshare. Se alguém precisar do arquivo em outro formato é só me avisar.
&lt;a href="https://eltonminetto/dev/files/talks/memcache-090610153348-phpapp01.pdf">Melhorando a performance de aplicações com o uso do MemCache&lt;/a>&lt;/p></description></item><item><title>Procura-se beta testers</title><link>https://eltonminetto.dev/2009/02/13/procura-se-beta-testers/</link><pubDate>Fri, 13 Feb 2009 14:11:24 +0000</pubDate><guid>https://eltonminetto.dev/2009/02/13/procura-se-beta-testers/</guid><description>&lt;p>Depois de alguns meses de desenvolvimento finalmente posso começar a comentar sobre o projeto que estou trabalhando. Chama-se &lt;a href="http://blog.drimio.com/2008/12/mas-quem-e-a-drimio/">Drimio&lt;/a>.&lt;/p></description></item><item><title>Lock em arquivos usando SVN e Subclipse</title><link>https://eltonminetto.dev/2008/11/25/lock-em-arquivos-usando-svn-e-subclipse/</link><pubDate>Tue, 25 Nov 2008 15:09:44 +0000</pubDate><guid>https://eltonminetto.dev/2008/11/25/lock-em-arquivos-usando-svn-e-subclipse/</guid><description>&lt;p>Outra novidade para mim ao usar o Subversion foi o controle de Locks. &lt;/p>
&lt;p>Eu sempre usei o CVS integrado ao Eclipse para gerenciar os projetos que eu trabalhava e com essa duplinha é bem fácil configurar para evitar que dois programadores alterem o mesmo arquivo.&lt;/p></description></item><item><title>Dicas de performance para scripts PHP</title><link>https://eltonminetto.dev/2008/05/26/dicas-de-performance-para-scripts-php/</link><pubDate>Mon, 26 May 2008 16:31:50 +0000</pubDate><guid>https://eltonminetto.dev/2008/05/26/dicas-de-performance-para-scripts-php/</guid><description>&lt;p>Excelente artigo com dicas de performance para scripts em PHP.&lt;/p>
&lt;p>&lt;a href="http://blog.lucas-ts.com/programacao/traducao-39-dicas-de-perfomance-php/">Vale a leitura&lt;/a>&lt;/p></description></item><item><title>pyBovespa</title><link>https://eltonminetto.dev/2008/05/01/pybovespa/</link><pubDate>Thu, 01 May 2008 12:49:13 +0000</pubDate><guid>https://eltonminetto.dev/2008/05/01/pybovespa/</guid><description>&lt;p>Neste ano eu comecei a investir em ações. É algo ao mesmo tempo emocionante e apavorante porque você pode ganhar e perder dinheiro em questão de horas. Por isso é importante ficar sempre atento as alterações dos valores das ações. Existem vários programas e sites que permitem o acompanhamento das alterações. Mesmo assim, eu aproveitei a manhã de feriado, enquanto me recupero de uma pequena ressaca, e fiz um script em Python que busca os dados da Bovespa e permite o acompanhamento da sua &amp;ldquo;carteira de ações&amp;rdquo;. Assim dá para deixar um terminal aberto e ir acompanhando o mercado.
O script foi feito por diversão e uso pessoal, mas se servir para alguém mais legal. O código:&lt;/p></description></item><item><title>Plugin para o Wordpress fazer Highlight em fontes</title><link>https://eltonminetto.dev/2008/04/25/plugin-para-o-wordpress-fazer-highlight-em-fontes/</link><pubDate>Fri, 25 Apr 2008 11:01:10 +0000</pubDate><guid>https://eltonminetto.dev/2008/04/25/plugin-para-o-wordpress-fazer-highlight-em-fontes/</guid><description>&lt;p>Encontrei esse plugin para o Wordpress que faz highlight em códigos nos posts:&lt;/p>
&lt;p>&lt;a href="http://wordpress.org/extend/plugins/highlight-source-pro/">http://wordpress.org/extend/plugins/highlight-source-pro/&lt;/a>&lt;/p>
&lt;p>Muito útil&lt;/p></description></item><item><title>Criando uma pseudo-coluna no CakePHP</title><link>https://eltonminetto.dev/2008/04/25/criando-uma-pseudo-coluna-no-cakephp/</link><pubDate>Fri, 25 Apr 2008 10:48:42 +0000</pubDate><guid>https://eltonminetto.dev/2008/04/25/criando-uma-pseudo-coluna-no-cakephp/</guid><description>&lt;p>Estou desenvolvendo um sistema grande usando o framework CakePHP e surgiu uma necessidade. Precisava criar uma pseudo-coluna com o resultado do cálculo de outras duas. Seguindo o conceito de MVC, achei mais interessante fazer este cálculo no Model para poder usar em todos os programas que utiizam aquela tabela. &lt;/p></description></item><item><title>python-mcrypt</title><link>https://eltonminetto.dev/2008/04/22/python-mcrypt/</link><pubDate>Tue, 22 Apr 2008 17:19:10 +0000</pubDate><guid>https://eltonminetto.dev/2008/04/22/python-mcrypt/</guid><description>&lt;p>Recentemente precisei criptografar alguns dados gerados por uma aplicação em Python. Para isso resolvi testar o &lt;a href="http://niemeyer.net/python-mcrypt">python-mcrypt,&lt;/a> módulo desenvolvido pelo brasileiro Gustavo Niemeyer.&lt;/p></description></item><item><title>Aptana</title><link>https://eltonminetto.dev/2008/04/16/aptana/</link><pubDate>Wed, 16 Apr 2008 18:14:57 +0000</pubDate><guid>https://eltonminetto.dev/2008/04/16/aptana/</guid><description>&lt;p>Faz um bom tempo que tenho usado o Eclipse como IDE para trabalhar com PHP, principalmente por causa do suporte a CVS que preciso para alguns projetos.&lt;/p></description></item><item><title>Professor Nerd</title><link>https://eltonminetto.dev/2008/02/28/professor-nerd/</link><pubDate>Thu, 28 Feb 2008 17:57:39 +0000</pubDate><guid>https://eltonminetto.dev/2008/02/28/professor-nerd/</guid><description>&lt;p>Nas disciplinas que ministro sempre aplico vários trabalhos para reforçar o conhecimento dos alunos. Todos os trabalhos são divididos em duas partes: 7 pontos a entrega do texto/código e os outros 3 pontos vem da apresentação oral. Quando o trabalho é em grupos eu sempre sorteio um dos componentes para apresentar e a nota da apresentação vale para o grupo todo. Tem dado certo. O único problema era fazer o sorteio dos alunos de forma justa. Para isso fiz um&lt;a href="https://eltonminetto.dev/codes/sorteio_alunos.php"> script em PHP&lt;/a> que resolve isso pra mim.&lt;/p></description></item><item><title>Editores de programação para Mac</title><link>https://eltonminetto.dev/2008/01/26/editores-de-programacao-para-mac/</link><pubDate>Sat, 26 Jan 2008 15:45:39 +0000</pubDate><guid>https://eltonminetto.dev/2008/01/26/editores-de-programacao-para-mac/</guid><description>&lt;p>Nesses meses como novo usário de MacOSX testei alguns editores para trabalhar com programação, principalmente com PHP, Python, HTML e CSS. Encontrei alguns interessantes. Deixo aqui minhas opiniões sobre o assunto.&lt;/p></description></item><item><title>Material sobre Zend Framework 1.0.1</title><link>https://eltonminetto.dev/2007/10/25/material-sobre-zend-framework-101/</link><pubDate>Thu, 25 Oct 2007 15:34:52 +0000</pubDate><guid>https://eltonminetto.dev/2007/10/25/material-sobre-zend-framework-101/</guid><description>&lt;p>Gostaria de indicar um material muito legal sobre o Zend 1.0.1 escrito pelo &lt;a href="mailto:flavio.lisboa@serpro.gov.br">Flavio Gomes da Silva Lisboa&lt;/a>&lt;/p></description></item><item><title>slimPHP 1.1</title><link>https://eltonminetto.dev/2007/10/18/slimphp-11/</link><pubDate>Thu, 18 Oct 2007 16:08:36 +0000</pubDate><guid>https://eltonminetto.dev/2007/10/18/slimphp-11/</guid><description>&lt;p>Aproveitando o lançamento da nova versão do Ubuntu, aproveito para fazer o lançamento da versão 1.1 do framework &lt;a href="http://slimphp.sourceforge.net">slimPHP&lt;/a>. Este é um framework que desenvolvi a algum tempo atráz e foi adotado como principal ferramenta de desenvolvimento de novos aplicativos na universidade onde trabalho, a &lt;a href="http://www.unochapeco.edu.br">Unochapecó&lt;/a>.
Esta nova versão contou com a colaboração dos desenvolvedores da Unochapecó Odair Lopes, Francis Perini, Clemente Scaratti e o professor Jorge Antônio Di Domenico.&lt;/p></description></item><item><title>Arquivos palestra I Boot</title><link>https://eltonminetto.dev/2007/09/22/arquivos-palestra-i-boot/</link><pubDate>Sat, 22 Sep 2007 16:49:36 +0000</pubDate><guid>https://eltonminetto.dev/2007/09/22/arquivos-palestra-i-boot/</guid><description>&lt;p>Ontem ministrei a palestra sobre CakePHP na Unoesc em Xanxerê.
O arquivo da apresentação pode ser copiado &lt;a href="https://eltonminetto.dev/docs/xxe.pdf">aqui&lt;/a> e o aplicativo criado neste &lt;a href="https://eltonminetto.dev/docs/blog_xxe.zip">link&lt;/a>.&lt;/p></description></item><item><title>Exemplo de RMI</title><link>https://eltonminetto.dev/2007/08/27/exemplo-de-rmi/</link><pubDate>Mon, 27 Aug 2007 22:41:40 +0000</pubDate><guid>https://eltonminetto.dev/2007/08/27/exemplo-de-rmi/</guid><description>&lt;p>Estou novamente ministrando a disciplina de Sistemas Operacionais Distrubuídos. É uma disciplina bem complexa mas muito divertida. Já me rendeu algumas horas de programação e diversão.&lt;/p></description></item><item><title>slimPHP</title><link>https://eltonminetto.dev/2007/01/02/slimphp/</link><pubDate>Tue, 02 Jan 2007 14:51:07 +0000</pubDate><guid>https://eltonminetto.dev/2007/01/02/slimphp/</guid><description>&lt;p>Finalmente criei o projeto do slimPHP no Sourceforge.&lt;/p>
&lt;p>slimPHP é o nome, pouco criativo, que dei para o pequeno framework que desenvolvi e que estamos utilizando aqui na Unochapecó no desenvolvimento de novos aplicativos.&lt;/p></description></item><item><title>Cake PHP e Oracle</title><link>https://eltonminetto.dev/2006/09/24/cake-php-e-oracle/</link><pubDate>Sun, 24 Sep 2006 11:49:39 +0000</pubDate><guid>https://eltonminetto.dev/2006/09/24/cake-php-e-oracle/</guid><description>&lt;p>O &lt;a href="http://www.cakephp.org">Cake PHP&lt;/a> é um framework de desenvolvimento em PHP 5 baseado nos conceitos de MVC. É uma ferramenta muito interessante para gerar aplicações padronizadas como cadastros, relatórios, etc.&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2006/08/27/metodo-de-monte-carlo-distribuido/</link><pubDate>Sun, 27 Aug 2006 12:42:17 +0000</pubDate><guid>https://eltonminetto.dev/2006/08/27/metodo-de-monte-carlo-distribuido/</guid><description>&lt;p>Texto que usei na disciplina de Sistemas Operacionais Distribuídos que estou ministrando. É uma implementação em Python de um programa usando sockets para demonstrar a comunicação em um sistema distribuído.&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2006/07/25/minha-aplicacao-web-20/</link><pubDate>Tue, 25 Jul 2006 21:31:21 +0000</pubDate><guid>https://eltonminetto.dev/2006/07/25/minha-aplicacao-web-20/</guid><description>&lt;p>Estou entrando na Onda 2.0 também. Desenvolvi uma aplicação em PHP+AJAX para controlar as despesas pessoais direto no browser.&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2006/07/14/formulario-dinamico/</link><pubDate>Fri, 14 Jul 2006 18:19:05 +0000</pubDate><guid>https://eltonminetto.dev/2006/07/14/formulario-dinamico/</guid><description>&lt;p>Um amigo me mandou um e-mail pedindo se eu conhecia alguma maneira de criar formulários dinamicamente. Por exemplo, um formulário de cadastro onde a pessoa pode ter que cadastrar um número indefinido de filhos ou de produtos.&lt;/p></description></item><item><title>Miniframework AJAX</title><link>https://eltonminetto.dev/2006/06/02/miniframework-ajax/</link><pubDate>Fri, 02 Jun 2006 17:17:01 +0000</pubDate><guid>https://eltonminetto.dev/2006/06/02/miniframework-ajax/</guid><description>&lt;p>Seguindo a idéia do meu &lt;a href="https://eltonminetto.dev/blog/2006/05/11/miniframework-php">Miniframework PHP&lt;/a> criei o Miniframework AJAX. Não tem nada de complexo, a idéia e &amp;ldquo;escrever menos código sem ter que aprender muita coisa nova&amp;rdquo;.&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2006/05/30/medindo-tempo-de-execucao-de-scripts-python/</link><pubDate>Tue, 30 May 2006 11:56:06 +0000</pubDate><guid>https://eltonminetto.dev/2006/05/30/medindo-tempo-de-execucao-de-scripts-python/</guid><description>&lt;p>Numa aula eu estava explicando a técnica de programação &amp;ldquo;Divisão e Conquista&amp;rdquo;, que consiste em dividir um problema grande em pequenos subproblemas e resolvê-los separadamente de forma que o resultado deles seja o resultado do problema original. Um exemplo de algoritmo desenvolvido nessa técnica é o de busca binária, onde o espaço de busca é sempre dividido pela metade, diminuindo o tempo de pesquisa. Para ilustrar a diferença desenvolvi dois scripts em Python para mostrar o tempo de execução de um algoritmo de pesquisa usando &amp;ldquo;força bruta&amp;rdquo; e a pesquisa binária. Para isso usei o módulo &lt;a href="http://www.python.org/doc/2.4/lib/module-timeit.html">timeit&lt;/a> do Python. Com este módulo é possível medir o tempo de execução de pequenos trechos de código. Abaixo os códigos usados:&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2006/05/17/padroes-algoritmicos-em-python/</link><pubDate>Wed, 17 May 2006 18:17:06 +0000</pubDate><guid>https://eltonminetto.dev/2006/05/17/padroes-algoritmicos-em-python/</guid><description>&lt;p>Um dos conteúdos que estou trabalhando na disciplina de Algoritmos e Estruturas de Dados III é Padrões Algoritmicos.&lt;/p></description></item><item><title>Conjuntos em Python</title><link>https://eltonminetto.dev/2006/05/12/conjuntos-em-python/</link><pubDate>Fri, 12 May 2006 15:26:26 +0000</pubDate><guid>https://eltonminetto.dev/2006/05/12/conjuntos-em-python/</guid><description>&lt;p>Em uma das disciplinas que ministro, Algotimos e Estruturas de Dados III, consta o conteúdo de Teoria de Conjuntos aplicada em computação e Estruturas de Dados para Conjuntos. A primeira é a aplicação das teorias matemáticas de conjuntos nas linguagens de programação. O livro que utilizo [1] traz exemplos em Pascal. Pesquisando um pouco na internet encontrei exemplos em Python:&lt;/p></description></item><item><title>Miniframework PHP</title><link>https://eltonminetto.dev/2006/05/11/miniframework-php/</link><pubDate>Thu, 11 May 2006 18:13:08 +0000</pubDate><guid>https://eltonminetto.dev/2006/05/11/miniframework-php/</guid><description>&lt;p>Nas últimas semanas fiz uma pesquisa para encontrar um framework PHP que eu pudesse usar em meus aplicativos/sites. Encontrei vários frameworks interessantes como:&lt;/p></description></item><item><title>Biblioteca C-Paint</title><link>https://eltonminetto.dev/2005/11/11/biblioteca-c-paint/</link><pubDate>Fri, 11 Nov 2005 17:04:02 +0000</pubDate><guid>https://eltonminetto.dev/2005/11/11/biblioteca-c-paint/</guid><description>&lt;p>Lendo a edição 63 da revista &lt;a href="http://www.europanet.com.br/euro2003/index.php?cat_id=3">www.com.br&lt;/a> tomei conhecimento de uma biblioteca chamada &lt;a href="http://cpaint.booleansystems.com/">C-Paint&lt;/a>. Segundo uma livre tradução do site:
&amp;ldquo;CPAINT (Cross-Platform Asynchronous INterface Toolkit) é um toolkit multi-linguagens que ajuda os desenvolvedores web a implementar aplicações AJAX com facilidade e flexibilidade. Ela nasceu da frustração e desapontamento do autor com outros toolkits open-sorce para AJAX. É construído nos mesmos princípios do AJAX, usando JavaScript e objetos XMLHTTP no lado do cliente e uma linguagem de script apropriada no lado do servidor, para completar o círculo de envio dos dados do cliente para o servidor e vice-versa.&amp;rdquo;
Como é citado acima, do lado do servidor pode-se usar tanto PHP quanto ASP, o que confirma a flexibilidade desejada.
Fiz alguns testes e achei o código resultante muito mais limpo que usando-se o SAJAX, por exemplo. Além de ser bem mais simples de entender e programar. Refiz o &lt;a href="https://eltonminetto.dev/?p=70">exemplo&lt;/a> que tinha feito antes com o SAJAX para demonstrar.&lt;/p></description></item><item><title>Softwares de RSS</title><link>https://eltonminetto.dev/2005/08/03/softwares-de-rss/</link><pubDate>Wed, 03 Aug 2005 21:52:42 +0000</pubDate><guid>https://eltonminetto.dev/2005/08/03/softwares-de-rss/</guid><description>&lt;p>A tecnologia de RSS é realmente muito útil. Poder ler as notícias de vários sites em um lugar só é muito prático. Desenvolvi um pequeno script em PHP que busca as notícias dos meus sites preferidos, grava em uma tabela do MySQL de onde eu posso pesquisar mais tarde pelas informações arquivadas. O código do script está &lt;a href="https://eltonminetto.dev/codes/noticias.php">aqui&lt;/a>.
Mas ontem acabei encontrando (via um dos resumos RSS) um software chamado &lt;a href="http://devlog.gregarius.net/">Gregarius&lt;/a> que faz exatamente isto que eu tinha desenvolvido, mas de uma forma muito mais organizada e bem feita. Segundo o site, o Gregarius é:&lt;/p></description></item><item><title>PHP5 e Webservices</title><link>https://eltonminetto.dev/2005/05/09/php5-e-webservices/</link><pubDate>Mon, 09 May 2005 23:06:02 +0000</pubDate><guid>https://eltonminetto.dev/2005/05/09/php5-e-webservices/</guid><description>&lt;p>Hoje consegui um pouco de tempo para dar uma pesquisada e aprender mais um pouco sobre webservices. Resolvi ver como funciona o suporte nativo a SOAP embutido no PHP5. Para isso, pensei em reescrever o código &lt;a href="https://eltonminetto.dev/index.php?p=44">deste exemplo&lt;/a> de cliente PHP que tinha escrito um tempo atrás.
O primeiro passo, lógico, foi instalar o PHP5 no meu Ubuntu. Nenhum mistério até aqui, é o mesmo procedimento que venho fazendo desde o PHP3, apenas com a adição da opção &amp;ndash;enable-soap no na execução do configure.
Depois de uma pesquisada no &lt;a href="http://www.php.net/manual/">http://www.php.net/manual/&lt;/a> consegui fazer algums ensaios. Existe a opção de instanciar a classe SoapClient passando os parâmetros, desta forma:
&lt;code>$client = new SoapClient(null, array('location' =&amp;gt; &amp;quot;http://localhost/soap.php&amp;quot;, 'uri' =&amp;gt; &amp;quot;http://test-uri/&amp;quot;, 'style' =&amp;gt; SOAP_DOCUMENT, 'use' =&amp;gt; SOAP_LITERAL));&lt;/code>
indicando o servidor e a uri onde o serviço está instalado, mas depois de várias tentativas não obtive sucesso. A construção que parece ser a oficial e mais correta é :
&lt;code>$client = new SoapClient(&amp;quot;some.wsdl&amp;quot;);&lt;/code>
Então precisava criar o arquivo wsdl contendo a descrição e os detalhes do serviço. Como gerar algo deste gênero não é uma coisa trivial e muito menos produtiva pesquisei algo que me ajude neste sentido. Nestas pesquisas acabei encontrando este &lt;a href="http://www.javafree.com.br/home/modules.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=42">artigo&lt;/a> que explica a utilização do Axis.
Usando as palavras do autor:
[&amp;hellip;]Axis é um conjunto de ferramentas para desenvolver WebServices. Dentre suas principais funcionalidades estão:&lt;/p></description></item><item><title>Programa em Forth</title><link>https://eltonminetto.dev/2004/08/24/programa-em-forth/</link><pubDate>Tue, 24 Aug 2004 19:14:54 +0000</pubDate><guid>https://eltonminetto.dev/2004/08/24/programa-em-forth/</guid><description>&lt;p>Pequeno programa que desenvolvi para uma disciplina da pós-graduação que estava cursando. É uma implementação na linguagem Forth que calcula as subnets possiveis em uma rede Classe C, a apartir da mascara de rede passada. Não é muito útil, serviu apenas para aprender a linguagem.
&lt;a href="https://eltonminetto.dev/codes/subnet.frt">Fonte&lt;/a>&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2004/06/14/automatizacao-de-tarefas-do-openoffice-usando-o-python/</link><pubDate>Mon, 14 Jun 2004 19:18:03 +0000</pubDate><guid>https://eltonminetto.dev/2004/06/14/automatizacao-de-tarefas-do-openoffice-usando-o-python/</guid><description>&lt;p>O projeto OpenOffice possui uma característica muito útil e pouco utilizada que é a capacidade de integrar seu funcionamento com outros aplicativos. Isto é possível através do UNO (Universal Network Objects), que é um modelo de componentes do OO. UNO oferece interoperabilidade entre diferentes linguagens de programação, diferentes modelos de objetos, diferentes arquiteturas e processos, em uma rede local ou mesmo através da internet. Seus componentes podem ser implementados e acessados por qualquer linguagem de programação que possua acesso aos bindings do UNO. Atualmente existem bindings para as seguintes linguagens:&lt;/p></description></item><item><title>Pequeno exemplo do uso de SOAP para criar um webservice</title><link>https://eltonminetto.dev/2004/05/05/pequeno-exemplo-do-uso-de-soap-para-criar-um-webservice/</link><pubDate>Wed, 05 May 2004 19:21:10 +0000</pubDate><guid>https://eltonminetto.dev/2004/05/05/pequeno-exemplo-do-uso-de-soap-para-criar-um-webservice/</guid><description>&lt;p>Segundo &lt;a href="mailto:mas_mauro@hotmail.com">Mauro Sant&amp;rsquo;Anna&lt;/a> em &lt;a href="http://www.linhadecodigo.com.br/">http://www.linhadecodigo.com.br/&lt;/a>,
&amp;quot;
O SOAP é um protocolo elaborado para facilitar a chamada remota de funções via Internet, permitindo que dois programas se comuniquem de uma maneira tecnicamente muito semelhante à invocação de páginas Web.&lt;/p></description></item><item><title>phpDBform</title><link>https://eltonminetto.dev/2004/04/12/phpdbform/</link><pubDate>Mon, 12 Apr 2004 19:24:26 +0000</pubDate><guid>https://eltonminetto.dev/2004/04/12/phpdbform/</guid><description>&lt;p>&lt;a href="http://www.phpdbform.com/">phpDBform&lt;/a> é um conjunto de scripts em php que auxiliam a criar formulários, vinculados ou não a um banco de dados, para editar, incluir, atualizar e excluir dados, provendo uma apresentação agradável para o usuário.
É um projeto Open Source no qual colaborei com o script que conecta com o banco de dados Oracle&lt;/p></description></item><item><title>Algoritmo de bully em Python e sockets Unix</title><link>https://eltonminetto.dev/2004/03/19/algoritmo-de-bully-em-python-e-sockets-unix/</link><pubDate>Fri, 19 Mar 2004 19:26:10 +0000</pubDate><guid>https://eltonminetto.dev/2004/03/19/algoritmo-de-bully-em-python-e-sockets-unix/</guid><description>&lt;p>Programa que desenvolvi para a disciplina de &lt;a href="http://www.unoescsmo.edu.br/poscomp/primeira.php?cont=sis_distribuidos">Sistemas Distribuídos&lt;/a> na Pós-Graduação que estou fazendo.
Trata-se de uma implementação do &lt;a href="http://www.inf.pucrs.br/~fldotti/sod/AD-Eleicao.PDF">algoritmo de bully&lt;/a>, um algoritmo de eleição usado em ambientes distribuídos, usando sockets Unix em python
&lt;a href="https://eltonminetto.dev/codes/bully.py">Ver o código&lt;/a>&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2003/11/26/script-para-desligar-maquinas-linux/</link><pubDate>Wed, 26 Nov 2003 19:32:42 +0000</pubDate><guid>https://eltonminetto.dev/2003/11/26/script-para-desligar-maquinas-linux/</guid><description>&lt;p>A idéia destes dois scripts é criar uma forma fácil e segura de, a partir de um servidor poder desligar outras máquinas.
Foi criado para suprir uma necessidade bem específica minha. Um dos meus servidors Linux fica conectado a um nobreak gerenciável, via conexão serial. Quando a carga deste nobreak está chegando ao fim ele avisa este servidor, que envia um comando via rede para os outros servidores que são desligados antes que a energia acabe.
Nos servidores que serão desligados, o script servidor_shutdown.py é executado na inicialização, da seguinte forma:
servidor_shutdown.py x.x.x.x onde x.x.x.x é o endereço IP do servidor ligado ao nobreak. Somente através deste endereço IP é permitido o desligamento da máquina.Quando este comando é executado, o script fica &amp;ldquo;ouvindo&amp;rdquo; em uma porta TCP, a 50007.
Quando o nobreak avisa à máquina que a energia está acabando, esta executa o comando:
cliente_shutdown.py z.z.z.z onde z.z.z.z é o endereço IP da máquina q será desligada. O script envia um comando para a porta 50007 da máquina a ser desligada, que verifica se o IP e o comando recebido são os permitidos e desliga-se.
Utilizando regras de firewall para controlar o acesso a esta porta TCP apenas ao endereço IP permitido é possível desligar todos os servidores de uma maneira segura.&lt;/p></description></item><item><title>None</title><link>https://eltonminetto.dev/2003/11/26/conexao-com-oracle-usando-python/</link><pubDate>Wed, 26 Nov 2003 19:27:50 +0000</pubDate><guid>https://eltonminetto.dev/2003/11/26/conexao-com-oracle-usando-python/</guid><description>&lt;p>A linguagem python está me surpreendendo a cada dia. Além de ser muito fácil e gerar um código limpo e bonito ela é extremamente útil.
Em pesquisas na Internet atrás de maneiras para utilizar o Python com o Oracle, encontrei este módulo muito completo e fácil de usar.
É o cx_Oracle que pode ser encontrado em
&lt;a href="http://starship.python.net/crew/atuining/cx_Oracle/index.html">http://starship.python.net/crew/atuining/cx_Oracle/index.html&lt;/a>
Com este pequeno exemplo dá para ilustrar a facilidade e praticidade deste módulo.
&lt;a href="https://eltonminetto.dev/codes/oracle.py">Ver o código&lt;/a>&lt;/p></description></item></channel></rss>