Feng Shui Digital

Posted Janeiro 26, 2008 by André Simões
Categories: blog, feng shui, organização pessoal

No sábado e no domingo passado eu publiquei uma série de posts um atrás do outro, na segunda-feira, depois do almoço, eu conversei com meu amigo Malcomtux e ele me questionou se não seria melhor ir publicando um de cada vez, em intervalos controlados para dar a idéia de regularidade ao blog. No geral ele está certo mas eu resolvi aplicar um pouco de Feng Shui no meu blog.

Segundo o site Estrela Guia:

“Feng Shui é uma antiga arte chinesa que busca a harmonia e o sucesso dentro de um determinado ambiente, através dos cinco elementos da Astrologia chinesa e o equilíbrio do Yin e Yang. Essa harmonia é alcançada através da energia Ch’i , que é a força universal da vida. Quanto mais energia Ch’i existir em um ambiente, mais equilibrado e harmonioso ele vai ficar.”

Não sou um cara esotérico mas um conceito dentro da filosofia Feng Shui sempre me chamou a atenção, livrar-se do velho e da bagunça para que a energia da renovação (esse papo de energia é que me deixa louco) traga novas as coisas novas. Para resumir bem eu preparei uma apresentação sobre os princípios desta filosofia:

Pensando dessa forma eu resolvi me livrar de todas as pendências do blog, reescrever o post sobre VBA/TDD , publicar todos os posts que estavam salvos como rascunho, incluir o botão de votação no rec6 e os botões de Social Bookmark no template do blog. Agora tudo o que era pendência foi resolvido e eu posso me dedicar aos planos que tenho para o blog em 2008, inclusive o de manter a regularidade.

Até o próximo!


Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License

<!–

–>Interessado em aprender mais sobre o Ubuntu em português?

Organização de cabos e acessórios

Posted Janeiro 21, 2008 by André Simões
Categories: low tech, organização pessoal

Esta é a forma que encontrei para organizar os cabos, usei a a idéia deste artigo. A grende diferença foi que ao invés de uma grelha de churrasco eu usei duas parte de uma prateleira de grades que eu já não usava mais.


Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License

<!–

–>Interessado em aprender mais sobre o Ubuntu em português?

Excel e VBA com cobertura de TDD

Posted Janeiro 20, 2008 by André Simões
Categories: agile, excel, microsoft office, tdd, vba


Atualização: O post original estava dando erro porque ele havia sido escrito no Google Texto & Planilhas e publicado diretamente de lá. O problema era que ao fazer alguma edição o blog todo ficava com o leiaute quebrado, por isso estou republicando este artigo.

Baseado em no trabalho Test Driven Development - using MS Excel and VBA de Clarke Ching (acessado em: outubro de 2007), resolvi fazer uma tradução/adaptação desse tutorial na forma de uma receita (quem sabe a Ana Maria Braga não me convida para o programa dela). Vamos lá.

Ingredientes

  • Microsoft Excel: o programa de planilha eletrônica escrita e produzida pela Microsoft.
  • VBA - Visual Basic for Applications: implementação do Visual Basic da Microsoft incorporada em todos os programas do Microsoft Office.
  • TDD - Test-Driven Development: técnica de escrever um pequeno teste que falhe, depois escrever um programa que faça o teste passar da maneira mais rápida e simples possível. Refatorar o código eliminando duplicação e código desnecessário incrementando o código e os testes de acordo com a necessidade.

Objetivo

Criar uma função que compara duas células e dependendo da combinação do conteúdo resultar em V (Verdadeiro), F (Falso) ou D (Duvidoso).

Preparando os ingredientes

Primeiro crie uma planilha em branco e verifique se está habilitada a execução de macros (menu Ferramentas, Macros, Segurança), eu recomendo deixar a segurança das macros no nível Médio (tá avisado). Em caso de dúvidas consulte o manual do Excel (sua cópia do Excel é original, não é?).

Na coluna A e B estarão as combinações possíveis para V, F ou D, na coluna RESULTADO colocaremos manualmente os valores esperados de acordo com a combinação das coluna A e B, na coluna FUNÇÃO a função =SALADA(A2;B2) e na coluna TESTE colocaremos a função =SE(C2=D2;“Passou”;“Falhou”) para comparar se a função SALADA está retornando o resultado esperado.

Agora pode colocar umas perfumarias como mudar fonte, colocar cor, borda, entre outras. Na realidade é tudo dispensável para este projeto, há apenas uma formatação que é necessária, mas eu mostro logo, logo. Agora é também a hora de preencher as células, inclusive colocando a função SALADA.

Como a função SALADA vai compara duas células ela será assim =SALADA(célula1;célula2), basta seguir o meu exemplo:

Ei, Deu erro!? … Calma! Deu erro porque nós não criamos a tal função “salada” por isso deu o erro “#NOME?”. Agora vamos trabalhar na coluna TESTE, coloque a =SE(C2=D2;“Passou”;“Falhou”). A célula vai resultar no mesmo erro da coluna D, o único jeito de resolver é colocando provisoriamente na coluna D a letra V na primeira e na segunda linha. Agora que a fórmula está funcionando coloque uma formatação condicional (menu Formatar e Formatação condicional…) e condicione que se o resultado forma “Passou” a célula deve ficar verde e se for “Falhou” que fique vermelha.

É importante ressaltar que a formatação condicional não é perfumaria, o destaque visual para o teste é algo que faz parte da metodologia TDD.

Colocando a mão na massa

Vamos começar a programar, antes que este artigo fique muito chato. Para acessar a IDE do Visual Basic for Applications basta teclar Alt + F11 ou pelo menu Ferramentas, clique em Macro e por fim Editor do Visual Basic. Você vai se deparar com esta interface:

O tempo vai fazer você vai perceber que a IDE do VBA é muito precária, principalmente se comparada com o Visual Basic ou outras IDE conhecidas, mas também deve notar que quanto mais você dominar a linguagem VBA, mais poderosas serão suas planilhas ou seus aplicativos criados no Access.

Vamos começar inserindo um novo módulo clicando no menu Inserir, seguido da opção Módulo. A IDE criar o arquivo do módulo e já deixe ele em uma pasta módulo, na propriedade (Name), logo abaixo, muda o nome para modSaladaMista.

Observação: Não vou explicar os detalhes da linguagem, o foco do artigo é demonstrar como usar TDD, o Excel e o VBA são apenas caodjuvantes, ferramentas usadas para explicar TDD.

Como comentado na primeira parte do artigo, a técnica TDD consiste em escrever um pequeno teste que falhe (já fizemos isso quando montamos a planilha), depois escrever um programa que faça o teste passar da maneira mais rápida e simples possível, portanto o primeiro teste da planilha espera que a função retorne V, então é isto que a primeira versão do nosso código deve fazer.

Public Function SALADA(Parametro1 As String, Parametro2 As String) As String
Application.Volatile
‘ Esta função faz a planilha atualizar
‘ seus resultados precionando-se F9
SALADA = “V”
‘ Para retornar um valor basta colocar
‘ o nome da funçao recebe o valor
End Function

É assim que deve ficar o nosso teste:

Quem tem alguma experiência em programação pode pensar que eu deveria programar de outra forma, afinal não parece muito inteligente uma função retornar diretamente um valor, sem tratamento nenhum, mas em TDD sempre devemos ter como preocupação primordial fazer o teste passar, depois refatoramos o código para melhorar. O próximo passo é fazer o segundo teste passar sem interferir no primeiro. Então vamos começar a colocar alguma lógica na nossa função mais:

Public Function SALADA(Parametro1 As String, Parametro2 As String) As String
Application.Volatile
If Parametro1 = “V” And Parametro2 = “F” Then
SALADA = “F”
Else
SALADA = “V”
End If
End Function

Agora temos dois testes estão passando:

Agora coloque a função de teste no restante das células. Reparem tudo que tem retorno “V” está com passou mas ainda não estamos tratando as células que possuem o valor “D”, então vamos tratar de colocar algum tratamento para isso:

Public Function SALADA(Parametro1 As String, Parametro2 As String) As String
Application.Volatile
If Parametro1 = “V” And Parametro2 = “F” Then
SALADA = “F”
ElseIf Parametro1 = “V” And (Parametro2 = “V” Or Parametro2 = “D”) = True Then
SALADA = “V”
End If
End Function

Olhem os testes agora…

…viu, não há retorno para os casos que não foram tratados, muito melhor não acham? Programar qualquer coisa usando a metodologia TDD é assim, basta tratar um teste após o outro e assim sucessivamente até que todos tenham passado. No próximo teste trata casos que possuem “F” e só de olhar podemos ver que todos resultam em “F”, vamos tratar isso então:

Public Function SALADA(Parametro1 As String, Parametro2 As String) As String
Application.Volatile
If Parametro1 = “F” Or Parametro2 = “F” Then
SALADA = “F”
ElseIf Parametro1 = “V” And (Parametro2 = “V” Or Parametro2 = “D”) = True Then
SALADA = “V”
End If
End Function

Incrível, não? Eu só mudei a primeira linha do IF e todas as alternativas que possuíam “F” passaram nos testes. Veja a próxima figura.

Agora só faltam dois testes para terminarmos esta função. Antes de continuar com o “D” eu percebi que a segunda linha do IF poderia ser mais simples, vamos refatorar um pouco este código. Eu deveria fazer isso só no final do programa mas como eu achei que estava tão tosco, resolvi acertar agora:

Public Function SALADA(Parametro1 As String, Parametro2 As String) As String
Application.Volatile
If Parametro1 = “F” Or Parametro2 = “F” Then
SALADA = “F”
ElseIf Parametro1 = “V” And Parametro2 <> “F” Then
SALADA = “V”
End If
End Function

Vamos trata dos “D” agora. Vamos inserir mais um teste no IF:

Public Function SALADA(Parametro1 As String, Parametro2 As String) As String
Application.Volatile
If Parametro1 = “F” Or Parametro2 = “F” Then
SALADA = “F”
ElseIf Parametro1 = “V” And Parametro2 <> “F” Then
SALADA = “V”
ElseIf Parametro1 = “D” Or Parametro2 = “D” Then
SALADA = “D”
End If
End Function

Ops! Um teste que não passou. Vamos voltar para o código, o erro estava no primeiro ElseIf, vejam a correção:

Public Function SALADA(Parametro1 As String, Parametro2 As String) As String
Application.Volatile
If Parametro1 = “F” Or Parametro2 = “F” Then
SALADA = “F”
ElseIf Parametro1 = “V” Or Parametro2 = “V” Then
SALADA = “V”
Else
SALADA = “D”
End If
End Function

Pronto, agora todos os teste passaram.

Show de bola não? Há um meio de fazer o mesmo no Access, mas eu ainda não dominei a ferramenta. Este é um exemplo bem simples para ilustrar como um “programa” orientado a testes é desenvolvido.


Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License

<!–

–>Interessado em aprender mais sobre o Ubuntu em português?

A filosofia Todoist

Posted Janeiro 20, 2008 by André Simões
Categories: GTD, dicas, internet, organização pessoal

Todoist, é um serviço online para se armazenar listas de tarefas. Ele é mais simples que o Remember The Milk, mas eu me acostumei com ele e devo continuar usando-o por enquanto.

A filosofia do serviço é esta:

O Zen de Todoist
Agora é melhor do que tarde.
Tarde é melhor do que nunca.
Organizado é melhor do que desorganizado.
Coisas grandes são compostas por coisas pequenas.
Coisas pequenas são feitas de ações.
Pense como uma pessoa de ação.
Aja como uma pessoa que pense.
O início é metade de toda ação.
A mais longa jornada começa com o primeiro passo.
Tudo deverá ser feito tão simples quanto for possível.
Mas não simplório.
Comemore quaisquer progressos.
Não espere pela perfeição.
Prazos e stress são uma parte da vida.

Atualização: Precisei reescrever este post, eu testei a edição de um post utilizando o ScribFire e a edição quebrou leiaute do template do blog.

Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License

Interessado em aprender mais sobre o Ubuntu em português?

"Bloggar" é um vício para você?

Posted Janeiro 20, 2008 by André Simões
Categories: blog, comportamento, internet

Cuidado se você fizer este teste pode ser que não goste do resultado… faça o teste e descubra se você é viciado em blogs.

70%How Addicted to Blogging Are You?

Looking for payday loans?

Interessado em aprender mais sobre o Ubuntu em português?

Teste do ScribFire n° 2

Posted Janeiro 20, 2008 by André Simões
Categories: blog, extension, firefox, internet, scribfire, teste

Vou testar um post mais elaborado, com imagens e um pouco de html.

Resolvi colocar esse bebezinho (”Ti munitinho!”), usei o próprio ScribFire para redimensionar. A correção ortográfica está por conta do próprio Firefox.

Outra coisa, estou colocando tags para ver so elas serão atribuídas ao post como o Blogger faz. Agora texto aleatório para testar formatação:

Lorem Ipsum

“Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit…”

“There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain…”

import android.widget.TextView;

public class HelloAndroid extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
TextView tv = new TextView(this);
tv.setText(”Hello, Android”);
setContentView(tv);
}
}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut malesuada, metus at viverra facilisis, massa neque venenatis ipsum, auctor accumsan lectus ipsum at leo. Fusce ultrices. Morbi ut nunc. Integer molestie auctor nisi. Duis auctor malesuada neque. Etiam in purus. Pellentesque enim eros, congue sit amet, fermentum a, facilisis non, mi. Morbi sit amet ipsum. Praesent quis magna in mauris venenatis pellentesque. Vestibulum tortor ante, aliquet sit amet, tempus ut, vestibulum eu, ligula. Ut vehicula turpis vel sem. Suspendisse potenti.

Generated 2 paragraphs, 148 words, 1018 bytes of Lorem Ipsum

Powered by ScribeFire.

Testando o ScribeFire

Posted Janeiro 19, 2008 by André Simões
Categories: blog, firefox, internet, scribfire, teste

Este post é um teste realizado no addon ScribeFire do Firefox.

Powered by ScribeFire.

Atualização: Coloquei as tags manualmente.

Meus 10 comandos mais rodados no linux

Posted Janeiro 19, 2008 by André Simões
Categories: internet, linux, meme, ubuntu

Resolvi continuar outro meme, esse é mais técnico, meus 10 comandos mais rodados no linux. Eu vi esse meme no Planeta Ubuntu e resolvi dar continuidade.

alsimoes@alsimoes-desktop:~$ history | awk ‘{print $2}’ | awk ‘BEGIN {FS=”|”} {print $1}’ | sort | uniq -c | sort -rn | head -10
182 sudo
33 cd
23 ls
11 dmesg
9 ./noip2-Linux-32bit
6 sh
4 wget
4 gedit
4 asadmin
3 man

Vamos lá Malcomtux, honre o seu nickname.

Interessado em aprender mais sobre o Ubuntu em português?

MEME: Me diga o que vier a cabeça

Posted Janeiro 17, 2008 by André Simões
Categories: blogs, internet, meme

Este é o primeiro meme que me convidam e eu já comecei não gostando, coisa boba, parece coisa daquelas apresentações de powerpoint chatas… hehehehe… Mas vamos lá, quem entra pra a blogosfera é pra se se molhar, certo?

  1. Uma hora: 14h AM
  2. Um astro: Chris Cornell
  3. Um móvel: Minha cama
  4. Um líquido: Tequila
  5. Uma pedra preciosa: Diamante
  6. Uma árvore: Pau-Brasil (nunca vi, mas foi a primeira coisa que vei na minha cabeça)
  7. Uma flor: Rosa
  8. Um animal: Cachorro
  9. Uma cor: Azul
  10. Uma música: It´s a long way to the top (if you wanna rock ´n´ roll)
  11. Um livro: Neuromancer
  12. Comida: Carne e Massas
  13. Um lugar: São Tomé das Letras
  14. Um verbo: Agir
  15. Uma expressão: “O que é um peido pra quem tá cagado?”
  16. Um mês: O que eu estiver de férias
  17. Um número: 12
  18. Um instrumento: Guitarra
  19. Uma estação: Inverno
  20. Um filme: Quase famosos

Interessado em aprender mais sobre o Ubuntu em português?

Por que enviamos piadas?

Posted Janeiro 9, 2008 by André Simões
Categories: citações

Por que enviamos piadas?

As vezes me pergunto, por que encaminhamos piadas aos nossos amigos sem escrever uma palavra sequer.

Talvez isso explique.

Quando você está muito ocupado, mas ainda deseja manter contato, adivinha o que você faz?

Você envia piadas.

Quando você não tem nada a dizer, mas ainda deseja manter contato, você encaminha piadas.

Quando você tem alguma coisa para dizer, mas não sabe o quê, ou não sabe como fazer, você encaminha piadas.

E também para informá-lo de que você ainda está sendo lembrado, que você ainda é importante ou que ainda é amado, adivinha o que você recebe?

Um e-mail com uma piada.

Assim, na próxima vez que você receber uma piada, não pense que tenha sido enviada porque seu amigo não tinha o que fazer. Pense que hoje, o seu amigo no outro extremo do computador, quis lhe enviar um sorriso.

Eu queria começar o ano com um texto que falasse sobre amizade e de uma das muitas listas de discussão que assino recebi esta mensagem. O E-mail estava em inglês, então me perdoem se com o meu inglês razoável eu cometi algum deslize.

Traduzido do e-mail “Why do we all send jokes?” de 08/01/2008, enviado pelo Professor Rubens Queiroz de Almeida para a lista English for Reading.

Interessado em aprender mais sobre o Ubuntu em português?