Manual de Etiqueta Sustentável
Hoje caiu nas minhas mãos um folhetinho muito interessante com 50 dicas para enfrentar o aquecimento global e outros desafios da atualidade.
Felizmente há também uma versão online:
http://planetasustentavel.abril.com.br/manual/.
Veja como é possível promover pequenos gestos que conduzirão a grandes mudanças se forem adotadas por todos
- November 27, 2009
- No Comments
- Digg
- Del.icio.us
Talk on “State of Services” by Sanjiva Weerawarana
Apresentação recente de um dos papas da SOA, Mr. Sanjiva Weerawarana:
Achei legal:
- Confirmação de algo que todos já sabiam: “UDDI is dead with no real replacement”.
- Não tinha ouvido falar ainda nesse tal de rest-star.org, boa iniciativa
- Hipergráfico no slide 19, massa
- “WS-* powered SOA is the new English of the computer world”
- November 13, 2009
- No Comments
- Digg
- Del.icio.us
Google FriendConnect
Bem, ainda não tive tempo de ver a fundo e nem de saber se é novo ou velho, mas achei interessante a proposta do Google FriendConnect:
Adicionei a caixinha do FriendConnect ali ó ——->
Faça parte da comunidade do meu site, aiehiaehiaue. Depois eu adiciono os outros gadgets.
- November 6, 2009
- No Comments
- Digg
- Del.icio.us
Removendo arquivos fantasmas do svn
Dica do dia: caso você possua vários arquivos com status ! no svn, para removê-los do svn com apenas um comando, faça:
svn del `svn status | grep ! | awk '{print $2 " "}'`
isto vale para qualquer outro tipo de status, basta trocar a ! pelo status desejado no comando grep.
Nice
- November 4, 2009
- No Comments
- Digg
- Del.icio.us
Linguagens de Programação by Cesar Brod
“Java é quase livre
Se não fosse, nem pensar!
Python ensina a identar
Do jeito Deus sempre quis
De Ada, Prolog e Lisp
Eu escapei por um tris
Nutro paixões infantis
Por C, Cobol, outras tantas
Mas nunca deixo de ouvir
O que minha alma me diz
Meu amor mais profundo é o PHP
A melhor linguagem do mundo”
Cesar Brod (via @PorKaria)
Identifiquei-me principalmente com o “nutro paixões infantis”, aiehiaheiaue
- October 30, 2009
- No Comments
- Digg
- Del.icio.us
Minimizando qualquer aplicativo no tray
Há algum tempo eu lembro que havia outro aplicativo que fazia algo similar, mas não lembro o nome. No KDE também acho que existe uma opção no próprio gerenciador de janelas para habilitar a minimização no tray (bandeja? blargh!). Mas como resolvi adotar o Ubuntu as-is, acabei de encontrar outra ferramenta que permite forçar qualquer aplicativo a ser minimizado no tray: o alltray.
Se você também usa Ubuntu, basta fazer:
apt-get install alltray
Vá em Applications -> Accessories -> Alltray e o cursor do mouse vai se tornar uma cruz. Clique na janela do aplicativo que você deseja que seja minimizado no tray e pronto, funciona que é uma beleza.
Ufa! Eu já estava de saco cheio do Transmission no meio do meu trabalho.
- October 30, 2009
- No Comments
- Digg
- Del.icio.us
Como verificar se um float é NaN
Tem coisas que só o Javascript faz por você. Deseja convertar um valor de um input (string) para float em Javascript? Simples, utilize a função parseFloat(suaString). A função vai tentar converter, caso não seja possível ela vai retornar um NaN (Not a Number).
Agora a parte legal, como verificar se a parseFloat() retornou um NaN ou não? Comparar o valor com NaN não funciona. Bem, imagino que haja outras soluções mas uma delas é comparar a variável com ela mesma, se os valores(!) forem diferentes(!!!) então a variável é NaN.
Exemplo:
var minhaString = ""; // vai dar pau, parseFloat não converte para zero
meuFloat = parseFloat(minhaString);
if (meuFloat != meuFloat) {
alert('meuFloat é NaN!!!');
}
Como eu disse no início, tem coisas que só JS fazpor você
- October 30, 2009
- No Comments
- Digg
- Del.icio.us
Selenium IDE
Cá estava eu desenvolvendo um formulário de tamanho relativamente grande quando me veio um estalo: “Acho que tem jeito de automatizar isso.”. Lembrava vagamente de uma ou outra palestra sobre testes que falavam sobre gravar as ações do usuário para fazer testes. Depois de realizar umas consultas no https://addons.mozilla.org/en-US/firefox encontrei a Selenium IDE, uma grata surpresa. Vou descrever a minha rápida experiência, baseada em testes de formulários. É óbvio que dá pra testar qualquer coisa.
É tudo muito simples, você clica no botão vermelho pra começar a gravar, vai preenchendo o formulário e, para cada ação importante, a Selenium vai adicionando um comando no seu caso de testes. Por fim, após clicar no submit do form, você clica no botão vermelho da selenium de novo e voilà, seu caso de testes está pronto.
É claro que nem tudo são flores. Para que o seu caso de testes funcione assim de cara, o seu formulário tem que ser estático. Se o formulário for dinâmico, com requisições Ajax, por exemplo, como era o meu caso, você precisa fazer alguns ajustes no seu caso de testes, mas isso também é muito simples.
Um exemplo de erro: no meu formulário existe um campo de busca em que uma dialog é aberta com os resultados a serem selecionados. A Selenium apenas grava as ações importantes, lembram? Ela não sabe se o botão clicado foi gerado via Ajax ou coisas do tipo e vai tentar executar aquele comando. No meu caso aconteceu de a dialog não ter sido carregada ainda e dava pau. Como resolver? Simples: adicione um comando antes do comando de clique na dialog. Para isto, basta clicar no comando que deu erro com o botão direito do mouse e selecionar “Insert New Command”. Qual comando selecionar? Eu usei o ‘waitForElementPresent‘, que vai fazer a Selenium esperar até que a minha dialog seja carregada para continuar a execução dos seus comandos. Selecionado o tipo de comando, você precisa especificar o elemento (campo Target) pelo qual devemos esperar a geração, basta copiar o identificador gerado pela Selenium (olhar no comando que deu erro, logo abaixo). No final, o seu caso de testes vai ficar tipo o abaixo:
No exemplo da figura, o elemento fastAddCheckboxes é carregado via Ajax e eu usei o comando waitForElementPresent para fazer a Selenium esperar o seu carregamento, easy!
Caso você não encontre um comando que te ajude na automatização dos testes, existe também a opção de adicionar breakpoints na execução do seu caso de testes. Basta selecionar o comando e pressionar ‘b’. No meu caso, por exemplo, o Selenium, por algum motivo, não gravou o preenchimento de três campos. Eu adicionei um breakpoint no comando de submit do formulário e, na hora do teste, eu preencho os campos na mão e só então continuo o teste. É claro que esta é apenas uma medida paliativa que você pode usar na pressa. O ideal é ter testes 100% automatizados e tenho quase certeza de que dá pra resolver o meu problema usando os comandos da Selenium.
Este post serviu apenas pra compartilhar essa nova ferramenta que eu só fui descobrir agora. Mostrei apenas dois “artifícios” que podem ser usados para que os seus testes funcionem em contextos não tão simples. O Selenium tem vários outros comandos e várias outras opções. Conforme eu for aprendendo mais eu compartilho aqui no blog. Até a próxima.
- October 27, 2009
- No Comments
- Digg
- Del.icio.us
COMBO a collaborative animation by Blu and David Ellis
Sem palavras:
queria saber quantos litros de tinta e quanto tempo foram gastos. This is true art.
Podia ter twittado, mas achei melhor colocar no blog pra dar uma enfeitada
- October 26, 2009
- No Comments
- Digg
- Del.icio.us
2º Workshop do PHPMS – Como foi
Acabou de terminar o 2º Workshop do PHPMS, realizado no SENAC. Após uma semana cheia, um dia cheio, mas muito gratificante. Primeira boa surpresa foi o auditório e o suporte do pessoal do SENAC, perfeito. Auditório amplo, confortável, com ar condicionado na temperatura certa e laboratórios de hands on configurados conforme solicitado, valeu mesmo SENAC/MS.
O evento começou com a minha apresentação sobre Orientação a Objetos em PHP:
Depois da apresentação, um coffee-break e a primeira parte da palestra do Pablo Dall’Oglio sobre Design Patterns, quite interesting.
Um almoço rápido no SESC, últimos ajustes no hands-on sobre OO que estava por vir e vamos que vamos. Acabado o hands on ainda conseguimos aproveitar a metade final da mesa redonda, só com temas quentes
Pena que o tempo foi MUITO POUCO mas blz, no próximo vamos ter mesa-redonda novamente.
Pra finalizar, mais um coffee-break e o parte final da apresentação do Pablo, também interessante.
O evento por si só foi muito bom, se for se levar em conta os poucos membros envolvidos na organização (eu não pude ajudar dessa vez): vocês foram f*!(#, caras.
Pra finalizar, algumas fotinhas que eu tirei no evento:
http://www.flickr.com/photos/josericardodasilva/sets/72157622385014241/
Updates:
Post do Pablo sobre o Workshop: http://www.dalloglio.net/74.
Fotos que o Pablo tirou durante sua estadia: http://picasaweb.google.com/pablo.dalloglio/Phpms2010.
- October 3, 2009
- No Comments
- Digg
- Del.icio.us





