Essas tais de ciclovias…

Amigo, se você está lendo esse post provavelmente é um dos meus conhecidos. Afinal, esse blog não é nem um pouco famoso.

Isso não importa, vamos ao que interessa

Essas ciclovias e ciclofaixas e ciclococôs* por aí

Muito já se disse sobre as ciclovias do “prefeito-pintor” Fernando Haddad, mas eu ainda não disse nada nesse blog, por isso aqui vai a minha opinião.

Por que alguém pedalaria em São Paulo?

Existem diversos artigos de cicloativistas falando das vantagens, dos pormenores e por aí vai. Bem, como aqui é a minha opinião vou dizer por que pretendo pedalar (num futuro que tenha uma bike, coragem e melhor ambiente no trânsito): necessidade.

  1. Eu não preciso de mais um carro, nem de uma moto. Minha cidade não precisa que eu ande com um guarda-chuva de 2 toneladas cuspindo CO2. Espero que meu filho possa morar nessa cidade quando crescer. Para isso eu PRECISO fazer a minha parte, me locomovendo para o trabalho  de transporte público, fazendo home office ou, como é o objetivo declarado nesse post, ir trabalhar pedalando;
  2. Adquirir um segundo veículo seria custoso: segunda vaga para estacionar, seguro, combustível, impostos (40% na compra e IPVA todo ano!). Para alguém na minha situação geográfica e financeira isso é inviável;
  3. Seria IRRESPONSÁVEL com as pessoas à minha volta e todos os outros habitantes dessa cidade;
  4. Ah, eu sou um cara de computadores e “naturalmente” sedentário, preciso de um exercício e sempre gostei de andar de Bike, graças ao meu pai que me deu a minha primeira (e única por enquanto) quando eu fiz 7 anos. Valeu pai!

Antes que você comente: Não, eu não sou petista.

Muito pelo contrário, cada vez acredito menos na política. Tem gente no meu círculo de amizades dos dois lados (PSDB e PT) e gente que, como eu, não aceita ser unilateral. Unilateralidade não acrescenta nada quando o tema é política, religião ou futebol. Se você é um unilateral (e não é filiado a um partido), essa é a hora de parar de ler esse post, tenha um bom dia. (olha como eu sou legal, não te fiz perder mais tempo!)

Bom, então onde eu me encaixo? Me considero um “cicloativista-não-praticante”.

 

 

 

Ah, você pode ser “católico-não-praticante” e eu não posso ser cicloativista-não-praticante? Bacana sua lógica, hein.

“Cicloativismo é uma forma de fazer política para andar de bike. Não uma forma de andar de bike para fazer política”

Eu, agorinha

Tem gente que confunde essas duas coisas. Você votou no Kassab? Eu votei. Me arrependi? Amargamente.

Algumas coisas não vão bem pro Haddad, tipo isso. Não, ele é o prefeito-perfeito. MAS, me diga uma promessa do Kassab que foi cumprida e que realmente melhorou a vida das pessoas? Pode começar pela sua vida, não tem problema. Obrigado, de nada.

Bem, mas e essas faixas que saem com uma lavadora de altas pressão mestre?

Diferenças entre projetos

Se você esteve fora de São Paulo nos últimos anos (por que voltou? Não tem água aqui, fera), não deve saber que temos uma grande malha cicloviária de 200km na cidade. Mas não, a malha cicloviária não é composta apenas por ciclovias, tem também as ciclofaixas.

Que são ciclofaixas?

Chão pintado ou recapeado. Ou seja, ainda dentro das ciclofaixas temos diferenças entre coisas ruins (pintada) e bom (recapeado). Por que o recapeado é melhor? Pois o pintado tem textura próxima às que faixas de pedestre tem. Se você nunca esteve em um veículo sobre rodas em uma dessas saiba: é liso feito sabão quando chove. Caso pretenda pedalar na chuva, recomendo esse artigo. As ciclovias que tem recapeamento de concreto são melhores: duram mais, os buracos demoram a aparecer e a tinta não vai atrapalhar, nem deixar o calçamento mais escorregadio. É coisa linda de Deus. Claro que isso não é uma verdade absoluta.

Que são ciclovias?

Vias segregadas dos carros. Tem separação de alguma maneira: diferença de altura da via ou blocos de concreto separado ou uma calçada no meio do caminho. Algo grande que vai impedir que um carro invada facilmente.

Problemas que ainda existem

E eles precisam ser resolvidos, seja quem for o prefeito (esse ou o próximo, espero que esse ainda)

  1. Desconexões: nem tudo se conecta ainda, isso precisa melhorar. Conforme as obras avançam as coisas começam a fazer mais sentido e as ciclovias cada vez estarão mais cheias;
  2. Faixas mal-feitas: nossa senhora, tem muitas. Elas precisam ser corrigidas, não extintas. Falha de execução não implica em não-necessidade.
  3. Ladeiras: não há como escapar delas nessa cidade. Novamente, não implica em não-necessidade. A ciclofaixa da Otacílio Tomanik no bairro do Rio Pequeno é de longe a mais ingrime que eu vi – tem até oficina de bicicleta no caminho pra encher o pneu ou arrumar a corrente quebrada. As em volta da Sumaré e Pacaembu também são assustadoras. É verdade, tem uns malucos que sobem e descem esses pequenos K2 disponíveis na cidade, mas eles são uma minoria;
  4. Ciclistas “zueros”: você já viu ciclista sem capacete, na contra-mão, na calçada e por aí vai. Eles estão certos? Não. Isso muda o fato de que outros precisam de segurança para se locomover em vias seguras? Não. Uma coisa não exclui a outra. O “zuero” está errado, o motorista que atropela ele também está, pois – como diz o código de trânsito – é responsabilidade do veículo maior cuidar do veículo menor.
  5. Seria mais fácil seguir o código brasileiro de trânsito? Sim, seria. Você já acelerou acima da máxima permitida em uma via? Estacionou em local proibido? Parou em fila dupla? No código tudo isso é explicado claramente com um belo carimbo NÃO PODE FAZER, ZÉ!

Conclusões por ora:

  • O plano de ciclovias é eleitoreiro? CERTAMENTE, como tudo que é feito POR QUALQUER PARTIDO QUE EU CONHEÇO QUE ESTEVE NO GOVERNO DESSA CIDADE;
  • “Mas custa muito caro! 200mil o KM!”. Pergunto: quanto vale a SUA VIDA ou do SEU FILHO ou de alguém da SUA FAMÍLIA? A dos outros vale menos, suponho.
  • “Roma não foi construída em um dia” evidente que nem as ciclovias serão, mas a construção tem que começar de alguma maneira. E nem tudo sai como planejado, mas as pessoas vão se adaptar, somos capazes disso;
  • Finalmente: o fato das pessoas se preocuparem mais com o trecho de terra que estão perdendo para andar com seus SUVs em comparação com a falta de água é impressionante. Estou mais preocupado com a água, larguei o projeto da Bike por enquanto, assim que tivermos mais “segurança hídrica” volto a me preocupar com ela

Leia mais

Muito mais!

*Ciclococô é o apelido que os ciclistas deram à “super moderna e bem conservada ciclovia da marginal pinheiros” (que não tem iluminação, só funciona de dia)

E você? O que acha? Deixa um comentário aí.

Vale lembrar, comentários são moderados.

Das dificuldades desse “povo de TI” – Parte 1: prioridades que mudam

Nesse mundo de TI as prioridades mudam o tempo todo, muito comumente por um fato muito simples: na grande maioria das vezes nossa área é apoio à operação das empresas, e não o fim. Quando a operação tem que mudar, a TI tem que ir junto. Muita gente já falou sobre isso: que acontece o tempo todo, que os profissionais não gostam, bla bla bla, yada yada yada, tereréu tereréu tereréu.

Portanto, não faz sentido falar novamente a respeito disso, afinal a vida é feita essencialmente de três coisas:

  1. Problemas
  2. Soluções
  3. Fatos

Tudo que é problema, tem solução e tudo que não tem solução é fato. Simples assim. Mudar é difícil, especialmente prioridades, mas não é impossível – isso é fato.

Sendo as prioridades mudando uma constante, precisamos de formas de minimizar seus efeitos em nossas mentes. Algumas possíveis soluções:

Solução nº 1: entenda a razão da mudança

Se um projeto de repente é mais importante que o outro, certamente existe uma razão para isso. Mesmo que ela seja muito desconcertante (exemplo: por que eu quis), vai ser melhor resolver o novo projeto sabendo de sua importância superior do que resolver sem saber e ficar remoendo aquela mudança inesperada que, provavelmente, se deu devido à falta de planejamento de outrem. Mais do que isso: vai te fazer ter mais carinho e cuidado com o que está fazendo.

Ah, sabendo da razão você pode aprender com isso e tentar evitar uma nova ocorrencia desse tipo de urgência.

Solução nº 2: prepare-se melhor

Essa é mais difícil. Preparar-se melhor geralmente significa fazer menos tempo as coisas que você mais gosta. Se você gosta de programar, certamente não é muito fã de escrever documentos longos que não geram efeito nenhum na vida de alguém.

Fazer essa mudança é difícil, especialmente se você já está há muito tempo fazendo algo, digamos, artesanal e que adora.

Solução nº 3: trabalhe em um lugar que você goste das pessoas, clientes, trabalho, lucros, independente das prioridades

Se tudo isso for verdade, dificilmente as mudanças de prioridades vão te fazer tão mal assim.

Respostas automáticas e redirecionamento de e-mail no outlook 2013/OWA 2013

Vai sair de férias? Não esqueça de inserir uma mensagem automática informando de sua ausência.

Como faz?

No desktop

Acesse as opções, clique em respostas automáticas, configure a mensagem e o período.

Na web

Clique sobre a engrenagem, ao lado da sua foto, no canto superior direito da tela

Agora em “Definir respostas automáticas”.

Configurações

Em ambos os casos deve-se marcar para enviar respostas, definir um período em que elas vão ser enviadas e duas mensagens diferentes (uma para pessoas de dentro da organização e outra para contatos externos).

Opcionalmente você pode enviar apenas para os seus contatos. Isso é particularmente útil para aquele SPAMMER não saber que seu endereço existe de fato.

Exemplos de mensagens automáticas

Dentro da organização

Olá,

Obrigado por sua mensagem.

No período de xx/xx a xx/xx estarei de fora do escritório com pouco acesso a meus e-mails.

Em caso de urgência me ligue no XX XXX-XXX-XXX

Atenciosamente,

Fulano

Fora da organização

Olá,

Obrigado por sua mensagem.

No período de xx/xx a xx/xx estarei fora do escritório com pouco acesso a meus e-mails.

Em caso de urgência por favor entre em contato pelo telefone XX XXXX-XXX com a equipe de TAL.

Atenciosamente,

Clique aqui!

Por que tudo na internet tem um clique aqui?

Já parou pra pensar que esse “call to action” é muito intromissor?

Eu acho um saco escrever clique aqui em sites e peças – dá a impressão que o usuário é idiota aos olhos do construtor da peça. Por vezes não entendemos a importância de um clique aqui em um texto. Afinal de contas, você só quer clicar, não é mesmo?

E é o que o usuário vai te perguntar (cadê o meu clique aqui?) quando não encontrar. Seus olhos passeiam pelo texto buscando o clique aqui.

Uma experiência bacana que vi há alguns anos é um site feito inteiramente sem o uso de cliques (é em flash, portanto só no desktop).

É fascinante ver o quanto somos condicionados aos clique aquis mundo afora e o quanto é automático clicar aqui.

Agendamentos recursivos no outlook – inclusive de reuniões com outras pessoas

Mais um da série sobre Outlook! Dessa vez vamos falar sobre reuniões e atividades recursivas.

Recorrência, o que é

A rigor, algo que acontece mais de uma vez em períodos específicos. Exemplo: seu aniversário é um evento recorrente com intervalo de um ano.

Por que isso é importante no outlook?

Por vezes você pode se deparar com situações em que facilitaria muito ter alguém te lembrando de fazer algo.

Um calendário de aniversário, de revisões do carro, de reuniões para acompanhamento de um projeto, de followup de uma questão qualquer.

Fazer esse mapeamento no outlook manualmente seria altamente cansativo. Se você já tentou, já sabe que é um saco.

Recorrência é algo realmente simples no outlook: abra um novo evento, clique em recorrência, defina os valores, BUM, tá pronto.

Defina os parâmetros para criar um evento recorrente
Defina os parâmetros para criar um evento recorrente

Bloco de cima – hora do compromisso

  • Início: marca o inicio de cada ocorrência
  • Fim: final de cada ocorrência
  • Duração: um menos o outro. Alterando o final esse box muda e alterando esse box o final muda

Bloco do meio – Padrão da recorrência

  • Diário, semanal, mensal, anual: intervalo a aplicar (melhor colocar anual a cada dois anos do que a cada 730 dias)
  • Bloco central “a cada”: varia de acordo com o período especificado. Troque as opções da lateral para definir esses valores

Bloco final – intervalo de ocorrência: até quando você precisa desse evento?

Interessante. E se eu precisar convidar participantes (fazer uma solicitação de reunião) recursiva, dá?

Sim, exatamente da mesma forma que você viu no trecho anterior, no mesmo menu recorrência.

A melhor parte? Usando alguma conta que sincronize esses eventos com seu calendário (exemplo: exchange) você não precisará fazer mais nada para que ele apareça em outros devices conectados na mesma conta, como seu smartphone, tablet, o que quer que seja.

Meu outlook está lento! E agora?

Se você nunca teve um problema de lentidão no outlook, provavelmente não usa ele a tempo suficiente.

Já falei um pouco sobre como organizar e-mails e algumas regras interessantes para escrevê-los. Pois bem, não importa o quanto você tente, cedo ou tarde o outlook vira uma carroça – pelo menos no Windows.

Os arquivos de dados

O outlook tem essa solução/problema chamada arquivos de dados. Fazendo um paralelo rápido: ele guarda seus e-mails em “livros-caixa”, quando o espaço acaba ele adiciona novas folhas. O problema é que continua atualizando o índice, afinal esse é o livro-caixa corrente e é bem provável – em suas premissas, claro – que isso venha a ser importante em breve. Você precisa ajuda-lo a saber o que é livro-caixa passado e o que é atual.

Aqui entram os arquivos PSTs. Sem mais alongamentos, vamos nos fazer uma pergunta simples: nós sabemos o que é arquivo antigo e o que é novo? Pode parecer bobo, mas essa pergunta é a chave de tudo. Se você não sabe, seu outlook não vai adivinhar.

Novamente, como exemplo óbvio vou usar a minha organização de e-mails. Meu trabalho é altamente projetizado e a grande maioria do fluxo de refere-se a projetos. Pois bem, cada projeto tem sua pastinha com seus respectivos e-mails.

Assim que um projeto termina, vai para o arquivo de dados (PST) de projetos mortos desse ano.

“Tá, gênio, e se eu usar o Outlook pra Mac? Gera o mesmo problema?”

Sinceramente? Não sei. Quando eu souber eu atualizo o post.

“Ah, fantástico. E como eu faço isso?”

Moleza.

Outlook 2013/2010

  1. Clique em arquivo
  2. Vá em configurações de conta e depois configurações de conta (sim, os menus tem o mesmo nome)
  3. Clique na aba Arquivos de dados
  4. Clique em Adicionar
  5. ESCOLHA (isso é importante) o local onde sua pst será gravada, dê um nome a ela e, opcionalmente, insira uma senha – não esqueça essa senha JAMAIS
  6. Clique em OK

Com isso feito você notará que surge uma nova pasta no seu oulook com o nome da sua PST (no meu caso, 2015) e dentro dela uma pasta Itens Excluídos e outra Pastas de Pesquisa.

Agora basta mover as mensagens para lá. A partir disso o Outlook vai parar de criar indices para os e-mails antigos, liberando performance para você poder fazer coisas mais interessantes.

Lembra que falei que é importante indicar o local do arquivo? Quando você terminar, a MELHOR coisa que pode fazer é uma cópia dessa PST (que é um arquvio) e lembrar de fazer backups periódicos dela. Dessa forma você não perde e-mails antigos.

Uma vez que seus e-mails dos anos anteriores deixarem de ter relevância, volte a acessar o menu de criação das PSTs e remover o vínculo com o outlook – isso vai faze-lo iniciar mais rápido.

Por hoje é isso crianças!

A arte de enviar e organizar e-mails

Sim, isso vale um post. Pode parecer maluquice mas é verdade: enviar e-mails não é uma tarefa fácil nem trivial. Depende de uma série de regras e definições.

Mas por que eu deveria me preocupar com isso?

Simples: seres humanos leem e-mails. E eles, em geral, merecem respeito. Alguém vai ler a sua mensagem, pense nele. Ele vai entender? Vale a pena mandar esse e-mail? Será que não é melhor um telefonema? Seria mais intrusivo ligar ou mandar e-mail?

Muitas perguntas, não? Não adianta me mandar e-mail a respeito, siga lendo…

Problemas do mundo moderno

Reply to all (responder a todos)

É mania nacional. Você responde a todos. Sem se preocupar se todos devem ler aquela mensagem que você está mandando.

Se receber um e-mail de uma lista de distribuição, ANALISE, se o que você vai dizer todos devem saber.

Chat no e-mail

Se você respondeu a mesma mensagem mais de duas vezes em menos de 30 minutos é necessário utilizar outra ferramenta para essa comunicação. Skype, Lync, Messenger do facebook, Hangouts do google, face-time, chat do uol, whatsapp, o bom e velho telefone… opções não faltam.

Regras de “etiqueta”

Existem algumas regras que não encontrei muitos artigos a respeito mas já vi bastante gente falar e em geral, convergir para essas regras abaixo:

  1. Se alguém precisa ler um e-mail e responder ele, essa pessoa tem que estar no “to” ou “para”
  2. Se alguém precisa receber um e-mail e saber apenas da existência daquele assunto, essa pessoa tem que estar no CC ou cópia
  3. Se alguém precisa receber um e-mail em copia oculta, ele deve ser encaminhado em APÓS O ENVIO DO E-MAIL PRINCIPAL ao destinatário e não enviado na copia oculta. Vai que ele tem a doença do repy to all?
  4. Listas de e-mails grandes e comunicados para muitas pessoas, envie na copia oculta. Novamente, se algum dos destinatários tem o problema do reply to all você não enche a caixa de todos com as respostas.

Antes de apertar enviar REVEJA se as pessoas certas estão na linha certa.

Nesse maremoto de e-mails que você manda e recebe todo dia, certamente sua caixa deve estar constantemente cheia. Há aqueles que se copiam nos próprios e-mails para ter “roteamento” de seus e-mails. Não precisa mais fazer isso gente. Juro.

O que nos leva ao próximo assunto: organizando e-mails.

Utilizando ferramentas do Microsoft Outlook

Você tem aquele ataque de ansiedade quando vê a caixa de e-mails cheia? E quando vê a de um colega com 5 mil e-mails? Bom, eu tenho e essa é a razão de escrever esse post.

Verdade seja dita: eu nunca usei nenhum outro software de gerenciamento de e-mails. É um mal do meio, talvez, mas realmente não me interessei por outras ferramentas – o outlook resolvia todos os problemas e não gerava muitos outros. Portanto, vamos aprender um pouco de “autíluque”, sim?

Regras de mensagens

Você pode utilizar regras para organizar os e-mails por “grupos de afinidade” ou “urgência”, que é o meu caso. Utilizo um método que Scott Hanselman vive postando e palestrando a respeito que é a forma que ele faz. Pra mim deu resultado.

A ideia básica por trás do método de Hanselman é escolher seus e-mails utilizando as seguintes divisões:

  1. E-mails enviados para mim (estou na linha “para” do e-mail)
  2. E-mails de pessoas de FORA da minha organização – clientes, parceiros, fornecedores, familiares
  3. E-mails nos quais eu fui copiado – portanto, não preciso responder imediatamente
  4. Convites de reuniões – alguém quer conversar comigo em algum momento (ainda não utilizo isso pois não é parte constante da minha vida, mas é uma ideia interessante…)

Entendeu agora o porque das regras anteriores?

Dessa forma você sabe: 1: itens que preciso ver já; 2. algum cliente mandou um e-mail, ele deve ser importante, leia logo; 3. itens que talvez não tenham tanta relevância; 4. dependendo da quantidade de reuniões que você participa, faz todo sentido separar isso

Genial, como eu faço uma regra? É mais simples do que você imagina. Acesse o menu regras e crie uma nova regra. Explore os menus, seja curioso – não faz mal não.

Tenha em mente:

  1. Computadores são burros, eles não são capazes de decidir o que fazer sozinhos, você precisa dizer para eles o que fazer
  2. A ordem do que você diz pra fazer, faz toda diferença

Etapas rápidas

Elas são muito úteis. Gerencio minha caixa de entrada por projeto. Cada projeto tem sua pasta específica e é pra lá que e-mails lidos vão.

Depois de um tempo a quantidade de projetos aumenta, e ficar arrastando e soltando e-mails em pastas se torna uma tarefa chata e interminável.

Crie uma pasta que faça sentido na sua vida. Por exemplo o nome do projeto.

Clicando com o botão direito sobre uma mensagem existe uma caixa chamada “etapas rápidas”, no final dela tem um menu para criar uma nova etapa rápida.

Essa funcionalidade foi desenvolvida justamente por que o trabalho de criar regras é bem demorado e burocrático – e não é algo que você vai fazer toda semana.

Logo no começo tem algumas opções mais comuns, a primeira delas é “mover para uma pasta”. Ao escolher a pasta para qual o e-mail deverá ser movido e dê um nome à essa etapa. Em geral eu uso o nome da pasta.

Note que no topo do outlook essa etapa rápida aparece agora para você escolher e executar para as mensagens em foco na pasta atual. Ao clicar nela o e-mail é enviado para a pasta, magicamente.

Nunca mais você terá 5 mil e-mails na caixa de entrada.

Hanselman diz ainda que não verifica e-mail pela manhã. Ainda não consegui chegar nesse nível de desapego da caixa postal… isso fica para um próximo post.

Links interesantes:

The Three Most Important Outlook Rules For Processing Mail

Don’t Check Your Email in the Morning

Oredev Keynote – Information Overload and Managing the Flow: Effectiveness and Efficiency

Getting Organized While Drinking from the (Outlook) Fire Hose

III Fórum Microsoft para Gerentes de Sistemas

Depois de 4 meses…

Recentemente estive no III Fórum Microsoft para Gerentes de Sistemas, evento anual da Microsoft. Nesta edição foi dado muito foco ao lançamento do SQL Server 2012, com presença de Douglas Leland – gerente do produto para o planeta terra.

ATENÇÃO: o relato abaixo é apenas a minha opinião.

A palestra dele foi muito rasa, abordou muitos temas, nenhum deles relevante. A demo no meio da palestra foi bem interessante, mas curtinha… outro palestrante (não me recordo o nome, perdão) mostrou como o SQL Server 2012 é interessante para trabalhar com dados chamados “big data”.

Na sequencia, Rodrigo de Carvalho, gerente de produto do VS e TFS no brasil apresentou como a Microsoft organiza o desenvolvimento de suas aplicações, como não poderia deixar de ser eles usam TFS e – toma essa turma do RUP 😛 – metodologias ágeis (no caso deles Scrum).

Na parte da tarde a coisa foi bem interessante, fui para a track 2, focada em ALM e Cloud.

Rodrigo Benin da Allmatech iniciou a track com a palestra Orientando um projeto de software para o caminho certo através de governança, descrevendo alguns processos e premissas para o gerenciamento de desenvolvimento de aplicações. O foco maior foi no TFS – tem plugin pra eclipse, conecta com o project server, é escalável e “personalizável”. Bem bacana, vale segui-lo no twitter.

Em seguida tivemos Marden Menezes da Microsoft apresentando alguns casos de sucesso de ALM usando o TFS. Siga-o.

Luciano Condé – o cara que cuida do Azure na Microsoft Brasil – falou sobre todas as features do produto e fez algumas demos. Bem legal.

Por último Igor Abade falou sobre muitas novidades do TFS 2011, testes de software e qualidade, tirou dúvida de Kambam (tá bacana isso) e… o tempo acabou…. espero que tenhamos os ppts para tirar dúvidas com ele. Será que ele faz um video com o restante da palestra?

Se bobear a Microsoft libera o conteúdo que passou na track 1 para assistirmos em streaming, nela tivemos a transmissão simultânea o dia todo.

Brevemente o conteúdo (espero eu) deverá ser disponibilizado – altero quando souber as novidades.

jQuery: Filtro de tabela estilo Excel 2003

Oba!

Terceiro post e já estou falando de jQuery.

Tem um certo tempo Semana passada ressurgiu uma necessidade: filtrar tabelas de páginas web de forma similar ao que fazemos em planilhes de excel.

Entao, por que não fazer em jQuery?

Abordagem do problema

Tabelas são feitas de linhas e colunas. Certo? Parece bobagem começar dessa forma, mas é a base do problema.

O que precisamos fazer basicamente e ler cada coluna de uma determinada tabela e gerar uma base de registros único desta tabela e trocar o cabeçalho por uma lista destes registros. Moleza.

Construindo as listas para filtragem

Para deixar as coisas mais interessantes, vamos utilizar apenas as colunas que tiverem uma classe especifica – neste caso defini a classe como “comFiltro” – marquei em negrito o que defini para filtro.

Idade Nome Cidade Email Endereço
22 João da Silva São Paulo asdjjhj@email.com Rua do Sobe Desce, 13
25 Maria da Penha Rio de Janeiro asdjjhj@email.com Rua do Sobe Desce, 13
36 Visconde de Mauá São João da Boa Vista asdjjhj@email.com Rua do Sobe Desce, 13
22 Ronaldo Zezzo Rio de Janeiro asdjjhj@email.com Rua do Sobe Desce, 13
10 André Gonçalves Rio de Janeiro asdjjhj@email.com Rua do Sobe Desce, 13
69 Graziella Nascimento São Paulo asdjjhj@email.com Rua do Sobe Desce, 13
33 Gabriel Lima São João da Boa Vista asdjjhj@email.com Rua do Sobe Desce, 13
34 Hélio Bertagnolli São João da Boa Vista asdjjhj@email.com Rua do Sobe Desce, 13
12 Carolina Souza São João da Boa Vista asdjjhj@email.com Rua do Sobe Desce, 13
10 Luciana Prado Vitória asdjjhj@email.com Rua do Sobe Desce, 13

Então fazemos o seguinte:

  • Buscar o primeiro tr dentro da sua tabela
  • Para cada th dentro dela vamos usar a funcao hasClass para descobrir se essa coluna deve ser filtrada.
  • Se sim, enfileiramos um booleano true.
    No nosso exemplo teríamos nessa fila {true; false; true; false; false}, ou seja apenas as colunas 0 e 2 teriam filtros habilitados. Isso é bem útil quando uma das colunas tem dados não normalizados, como no nosso exemplo o nome de uma pessoa – homônimos não são coisas realmente muito comuns, mesmo se você se chamar João da Silva.

Com esta tabela teremos o seguinte processo:

  • Varremos cada coluna e cada linha.
  • Para cada registro encontrado comparamos com o que já temos usando busca binária.
  • Se não estiver nessa lista inserimos na mesma e ordenamos (importante: ordene só se inserir, não gaste a maquina do seu pobre usuário ordenando a lista sem necessidade).
  • Depois de varrer todas as linhas e ter uma lista de registros únicos escrevemos o código HTML que vai ser a lista (não esqueça de dar um nome bacana para ela).
  • Inserimos no topo da lista o valor original do cabeçalho da coluna e depois os demais registros.
  • Trocamos o valor atual do topo da tabela pela tag html da lista para seleção.
  • Isto feito, podemos ligar o evento change da lista à função encarregada de efetuar o filtro na tabela.

Filtrando dados baseado nos resultados dos select lists

Recapitulando: definimos quais as colunas que devem ser filtradas, para cada linha e coluna identificamos se temos que ter filtros e adicionamos num vetor o valor atual; inserimos no topo da coluna a lista com os itens selecionáveis e atribuímos um evento quando o filtro tiver seu valor alterado. Vamos escrever a função que cuida desse evento.

Quando o evento for disparado:

  • Mostramos todas as linhas da tabela
  • Para cada célula do cabeçalho
  • Se houver uma lista de seleção
  • Filtrar cada linha visível, se algor for escolhido nessa lista e o valor for diferente, esconder a lista

Com isso temos um componente que funciona como filtro de tabela no Excel 2003 – o operador lógico entre os filtros é sempre E, nunca OU.

Exemplo funcional

Deixei um exemplo desse código todo no skydrive, leia o arquivo js e o post ao mesmo tempo, tudo fará sentido – eu acho.