Run, Alfred! Run!

A primeira vez que loguei uma “corrida” foi há exatos 7 anos: 27/04/2008.

Na época eu corria munido de um Nike+ iPod Sport Kit que nada mais é que um contador de passos e um adaptador conectado ao iPod. Apesar de primitivo comparado com o que temos hoje, foi a primeira vez que tive uma forma automatizada de registrar a minha atividade física.

Primeira Corrida
Minha primeira “corrida” no Nike+

Eu pus corrida entre aspas porque essa primeira não foi exatamente uma corrida – foi uma caminhada. A meta era caminhar por uma hora e neste tempo eu percorri estimados 5.5Km.

Na época eu era um sedentário e devia estar pesando alguma coisa em torno de 90Kg. Eu já tinha tentado emplacar uma rotina de atividade física, mas nunca colou. Sempre apareciam coisas mais interessantes para fazer. Ou para não fazer.

Alfred Myers na Times Square em 19/04/2008
Com cara de Biscoito Traquina na Times Square em 19/04/2008

Uma coisa bacana do sistema do Nike+ era que ele mandava os dados da atividade para um website onde você poderia acompanhar a sua evolução. Para um cara como eu fissurado em tecnologia, números, métricas, etc, era o paraíso. I was hooked.

Num primeiro momento eu tratei de aumentar o tempo da caminhada para alguma coisa em torno de uma hora. Depois eu fui introduzindo a corrida na medida em que o fôlego deixava. A quantidade e a duração das corridas dentro de cada sessão foram aumentando gradativamente até que em agosto eu corri quase 5Km ininterruptos – pela primeira vez na vida adulta.

Quase 5Km
Quase 5Km correndo direto

Apesar de ter chegado perto, ainda ia demorar um pouco para que eu chegasse à marca dos 5Km.

Em 31/12/2008 eu resolvi ir pra São Silvestre de alegre. Era óbvio que eu não completaria os 15Km da prova correndo, mas eu queria ver o quanto eu conseguiria correr e mais importante, ver como era fazer parte daquela festa. Fiz os primeiros 4Km correndo e depois alternei corrida e caminhada como sempre. Subi a Brigadeiro toda andando e ao virar a esquina com a Paulista, eu vi a chegada e corri até cruzar a chegada. Durante todo o percurso, a galera toda na rua gritando, incentivando, batendo palmas. Quando você chega de volta na Paulista pro trecho final, toda essa energia mexe contigo ainda mais. Acho que pela primeira vez na vida eu tive uma descarga de endorfina. I was hooked! Again!

São Silvestre 2008
São Silvestre 2008

No comecinho do ano seguinte eu incluí a corrida como uma das resoluções de 2009 e de fato ao chegar no final do ano, eu tinha aumentado bastante o número de quilômetros rodados.

A brincadeira tinha começado a ficar “séria” e entre o final de 2009 e o começo de 2010 o Nike+ ainda não suportava monitores cardíacos. Foi então que eu resolvi comprar um relógio com monitor cardíaco. Mas isso vai ficar para o próximo post… 🙂

 

P.S.: Hoje era dia de treino e achei que ao invés de fazer os 12Km planejados inicialmente, seria interessante correr os mesmos 5.5Km da primeira corrida para fazer uma comparação. 00:30:01 contra 01:00:48. Metade do tempo. Que tal? 😀

7 anos depois
7 anos depois, os mesmos 5.5Km da primeira “corrida” na metade do tempo.

Bye, bye Locaweb! Não sentirei saudades…

Meu primeiro domínio de internet foi criado para a empresa que tenho no começo de 1999.

Já faz bastante tempo e sinceramente não lembro se hospedei de cara na Locaweb ou se eu hospedei primeiro no provedor de internet da cidade onde morava na época e depois transferi pra Locaweb.

Em todo caso, o primeiro registro transações com a Locaweb que eu ainda tenho data de 2006.

Em todo esse tempo como cliente da Locaweb, a sensação que fica é que a Locaweb é um provedor de hospedagem que não dá problema – desde que você não precise mexer no que está lá. E isso pode ser um problema bastante sério num ambiente como a internet onde as coisas estão mudando – e por consequência sendo mexidas – o tempo todo.

O plano contratado na Locaweb consistia basicamente em um site e “n” caixas de e-mail.

O site não dava problema já que como eu não estava mais operando a empresa, não tinha o que mexer. Inclusive, depois de um tempo por falha minha, a hospedagem descartou os arquivos do site que ficou vazio desde então. Até aqui, tudo bem.

Já a parte de e-mail eu continuava usando, principalmente para uma idéia que eu tive para diminuir a quantidade de spam que eu recebia. A idéia consistia em criar um alias específico para cada site que exigisse um endereço de email para fazer login.  Todos os alias apontavam para a mesma caixa de e-mail e assim, tudo ficava concentrado numa única caixa postal. Caso o endereço do alias vazasse para algum spammer, era só questão de excluir aquele alias em específico. Um pouco trabalhoso, mas extremamente eficiente.

Pois é… Aqui começam os problemas: Toda vez que eu precisava criar um novo alias, eu tinha que esperar no mínimo duas ou três horas para que o alias entrasse em funcionamento. Não muito eficaz já que geralmente os sites te enviam um email com link de confirmação assim que você pressiona o botão de conclusão do cadastro. Na minha santa paciência, eu interrompia o cadastro, criava o alias, e continuava o cadastro horas depois.

Agora compare isto com o Google Apps que contratei no ano passado. Os alias entram em funcionamento instantaneamente!

Há algumas semanas quando eu decidi usar WordPress, a minha primeira opção foi a de usar o contrato que eu já tinha com a Locaweb.

Mais uma vez começam os problemas…

O meu site estava hospedado num servidor Windows Server 2003. Abri um chamado para atualizar para a versão mais recente que eles disponibilizam: Windows 2008.

Entre o pedido e o início do atendimento algumas horas depois, eu acabei descobrindo que o ambiente Windows oferecido por eles não disponibilizava todos os recursos necessários para o funcionamento total do WordPress. Um dos recursos do WordPress não suportados eram as URLs amigáveis.

Pedi para o helpdesk para que eles segurassem o upgrade até que eu entendesse melhor a situação. Pesquisando o material disponibilizado no site deles, não encontrei muita coisa além da falta de suporte para URLs amigáveis.

Em todo caso, como as URLs amigáveis são importantes para SEO, eu resolvi entender melhor a oferta de Linux deles para uma eventual mudança de plataforma. No entanto, eles não tem nenhum comparativo entre os recursos disponibilizados para cada um dos ambientes para auxiliar nesta decisão.

Como eu já não tinha mais nenhuma dependência em componentes de infra-estrutura do Windows para rodar o site, que afinal seria refeito do zero, resolvi arriscar a ida para o ambiente Linux mesmo com conhecimento zero da plataforma.

Nesse momento, o atendente me informou de que eu precisaria fazer um backup local de todos os meus e-mails. Mas peraí! A oferta de e-mail da Locaweb não roda na mesma infra-estrutura do servidor web. É provável que nem rode em Windows! Segundo o atendente, isso era necessário já que a mudança de plataforma exigia o término do plano atual e a contratação de um novo plano seguindo a estrutura atual de preços. Ou seja, eu poderia fazer upgrade do Windows e continuar com o plano atual, mas se quisesse migrar pra Linux, teria de mudar de plano.

Nem tudo era ruim. A nova estrutura de planos era mais barata, mas agora eram dois problemas: Backup dos e-mails e mudança de plano/contrato. O problema não era técnico. Era um problema simplesmente burocrático. Alguém lá inventou essa regra que agora estava sendo imposta a mim.

Eu que não gosto nem um pouco de ser forçado a fazer coisas que não fazem sentido, desisti de migrar pra Linux e reiniciei o processo de upgrade para Windows 2008 para fazer uma experiência e ver até que ponto o WordPress era suportado.

Depois deles terem feito o upgrade, eu comecei o processo de tentar instalar o WordPress. Primeiro usei o instalador deles para instalar o MySQL, pré-requisito do WordPress. Depois tentei usar o instalador deles pra instalar o próprio WordPress, mas o instalador deu pau. Acionei o helpdesk e eles terminaram de instalar.

Nesse momento, o WordPress estava funcionando no site principal. Depois de pesquisar bastante e apanhar um pouco eu consegui botar até as URLs amigáveis pra funcionar. Pensei: “Agora vai!”

Apanhei mais um bocado para descobrir que para instalar plug-ins eu tinha que escancarar as permissões de escrita nas pastas necessárias. E apanhei de novo para descobrir como fazê-lo já que a versão mais recente do Painel de Controle da Locaweb não suporta a funcionalidade. Tive que navegar por links e links entre a versão atual e versões antigas do site (que ainda estão no ar) para achar a ferramenta que possibilitava isso.

Mas enfim, as URLs amigáveis estavam funcionando e eu tinha conseguido instalar alguns plugins. Aleluia!!!

O próximo passo era testar com o blog, já que o blog já tinha bastante conteúdo. Configurei um domínio adicional (este aqui, o alfredmyers.com), importei o conteúdo e BAM! As URLs amigáveis não funcionavam no domínio adicional. Passei o dia todo pesquisando e tentando criar uma regra que funcionasse em domínios adicionais – sem sucesso.

Enfim, tinham me convencido a migrar pra Linux. Mas para isto, eu teria de resolver o problema de fazer um backup local dos e-mails. Vejam que isto é um problema quando você não usa um cliente local de e-mails há 18 meses. Tirando as apps de celular Inbox by GMail (pra uma conta GMail que tenho) e do GMail (pra conta de email do Google Apps), eu não uso clientes locais de e-mail pra nada. No laptop só uso webmail. Para. todas. as. contas.

Depois de passar horas vasculhando emails e excluindo tudo o que não era mais necessário, cheguei a umas vinte e poucas mensagens que eu achava que realmente precisava guardar. Dei forward de cada uma delas para minha conta no GMail onde seria fácil encontrá-los com a ferramenta de buscas.

Problema do email “resolvido”!

Fui dormir pensando em no dia seguinte solicitar a migração pra Linux, mas quando acordei, me veio a idéia de que talvez fosse bom manter a hospedagem Windows na Locaweb e contratar hospedagem Linux em algum outro lugar. Assim, eu teria um ambiente Windows disponível caso decidisse desenvolver alguma coisa (todo o meu know-how de desenvolvimento é em ambientes Microsoft) e um outro ambiente em Linux onde eu poderia rodar o WordPress. De quebra, eu poderia ver como é trabalhar com outros hostings que não a Locaweb. A idéia parecia interessante.

Como eu já tinha comprado vários domínios com a name.com, me pareceu razoável contratar o hosting com eles. Em 25 minutos eu:

  • contratei e paguei por um ano de hosting Linux;
  • alterei os registros de DNS do blog (alfredmyers.com) saindo da Locaweb para o name.com;
  • instalei MySQL e WordPress usando uma ferramenta que eu não conhecia, o cPanel;
  • fiz um backup do conteúdo deste blog no servidor anterior;
  • restaurei o blog neste servidor;

25 minutos! Deixa eu repetir: 25 minutos!! 25 minutos!!!

Vejam… Eu me bati por dias tentando por a coisa toda pra funcionar na Locaweb e em 25 minutos tudo estava instalado e funcionando no name.com.

Quer dizer, quase tudo. No laptop que usa servidores DNS do Google, o site apontava para o novo host. Em devices que usavam servidores de DNS brasileiros, o site continuavam apontando para a Locaweb.

Um breve parênteses: Não dá pra fazer uma comparação direta entre os tempos gastos na Locaweb e no name.com já que houveram várias indas e vindas na Locaweb, mas dado que o instalador de WordPress deles não funcionou e que cada iteração com o help-desk leva no mínimo 2 ou 3 horas pra ter resposta, a diferença de tempo para executar qualquer procedimento é bem significativa.

Voltando: Depois de dois dias esperando que revogassem a autoridade sobre o domínio, já cansado, fui direto pra Ouvidoria e abri uma reclamação. Na sequência liguei pra eles e a moça que já estava com o meu caso em mãos, providenciou a liberação. Em instantes, os servidores DNS brasileiros estavam apontando para o novo host. Agora sério… Me diz: Precisava eu abrir um caso na ouvidoria e ligar?

Ficou claro pra mim, que havia alguma coisa muito errada na minha relação com a Locaweb. Mas sem saber, eles próprios se encarregaram de desfazer a única amarra que ainda me prendia a eles: o email.

Entrei na Central de Atendimento para solicitar o cancelamento de contrato e mais uma vez, o sistema havia sido alterado. Já não era mais possível cancelar o contrato pela web. Era preciso ligar para eles e assim o fiz.

Na saída, ao terminar o cancelamento eu perguntei se eu não teria problemas com a Locaweb não revogando a autoridade sobre o meu domínio principal. A moça muito prestativa e atenciosa disse pra eu ficar descansado que tudo estaria resolvido quando os registros de DNS fossem propagados em no máximo 72h. 240h depois, eles ainda não o fizeram…

Bye, bye Locaweb! Não sentirei saudades…

Porque usar WordPress?

Continuando de onde parei no último post, eu estava escutando o podcast do Tim Ferriss enquanto corria. No episódio em questão, ele estava num bate-papo com Matt Mullenweg, um dos criadores do WordPress.

Entre outras coisas, eu fiquei sabendo que o WordPress havia deixado de ser uma plataforma somente para blogs e tinha evoluído para ser um CMS (content management system – sistema de gerenciamento de conteúdo). Soube também que o WordPress era usado em 22% da web!

Chegando em casa eu dei uma pesquisada e descobri ainda que:

  • Existem por baixo 2.500 temas diferentes para WordPress;
  • Mais de 37.000 plugins;
  • Um dos plugins em particular, o JetPack, cuidava de alguns dos problemas de desempenho que andavam me preocupando lá nos portfólios do 500px;
  • Encontrei vários artigos falando sobre temas de WordPress voltados para fotógrafos e fotografia;
  • Você pode criar seu site ou blog no WordPress.com usando a infra-estrutura gerenciada pela Automattic ou rodar fora do ambiente deles, self-hosted.
  • Existe um amplo ecossistema em torno do WordPress com milhares de desenvolvedores, web designers, etc. Com isto é fácil encontrar suporte.

Decidí prototipar um site no WordPress.com. Em menos de dois dias, eu estava com um protótipo de site com a estrutura básica de navegação montada e com cerca de 50 páginas e mais de 200 imagens no ar.

Estava decidido: Os sites seriam construídos com WordPress!

Comparando os recursos oferecidos pelo WordPress.com com o que eu teria disponível se optasse por self-hosting, ficou claro pra mim que eu teria que partir para o self-hosting. Só para ficar em dois exemplos, nem o Google Analytics, nem o Google Adsense são suportados no WordPress.com, mas existem plugins para ambos na versão self-hosted.

O próximo passo era decidir pela empresa de hosting, mas isso vai ficar para o próximo post…

Restart Part 2: Loading…

No começo do ano passado eu soube que a Donuts tinha começado a operacionalizar uma série de novos gTLDs, entre eles, o .photography.

Num impulso eu comprei alguns domínios diferentes aproveitando o fato de, por conta do “.photography” ter sido recentemente lançado, vários nomes interessantes ainda estavam disponíveis e relativamente baratos.

Fiz o óbvio que foi segurar o meu nome (alfredmyers.photography). Os outros domínios podem ser vistos como uma reserva estratégica para garantir que eu tivesse bons nomes de domínio caso eu viesse a implementar algumas das idéias que eu tinha na cabeça.

Durante boa parte do ano passado eu trabalhei na pesquisa e coleta de material para um segundo projeto que ainda está em andamento e que será hospedado em um dos domínios que foram comprados na época.

Voltando ao alfredmyers.photography, eu decidi implementar o site usando a plataforma de portfólios do 500px. Não demorou muito, no entanto, pra eu perceber suas limitações:

  • Número limitado de templates, ou seja, as diferentes caras que podem ser dadas ao site;
  • Limitações quanto a customização dos templates, ou seja, até que ponto você pode mudar a cara do site depois de ter escolhido um dado template como ponto de partida;
  • Eco-sistema pequeno. O que põe em dúvida a viabilidade econômica e o consequente desenvolvimento contínuo da plataforma. Por exemplo, o braço de venda de prints e wall art do 500px será fechado no final deste ano.
  • Desempenho sofrível. Antes de fazermos um upgrade no plano de banda larga daqui de casa, o primeiro acesso à página inicial do meu site demorava em média 45 segundos para carregar. Neste meio tempo, o visitante era contemplado com nada além de uma espécie de ampulheta. Com boa parte das pessoas migrando sua navegação cada vez mais para dispositivos móveis usando 3G, etc, o desempenho do site era simplesmente inaceitável.

Depois de avaliar algumas alternativas e sendo o control-freak que sou, eu cheguei à “brilhante” conclusão de que deveria estudar os fundamentos de programação web moderna e fazer tudo do zero para ter controle total sobre a plataforma e seu desempenho. Eu já tinha conhecimento anterior de HTML e Javascript. Era só questão de eu me atualizar. Quão difícil a empreitada poderia ser?!? Mergulhei a cara na web e estudei todo o material disponibilizado pelo Google.

O problema é que construir o que eu tinha em mente era uma tarefa dantesca e toda vez que chegava a hora de botar a mão na massa, eu arrumava alguma outra coisa “mais importante” pra fazer. Acho que era o meu subconsciente me dizendo “Isso vai dar merda, Capitão!”.

A questão só foi resolvida recentemente quando, escutando um podcast durante uma corrida matinal, fiquei sabendo de algumas informações e características interessantes a respeito de uma plataforma que eu havia descartado prematuramente e que basicamente eu vinha ignorando até então.

Mas isso vai ficar para o próximo post…

Restart Part 1: Shutting Down

É provável que eu devesse ter pulado o post de ontem e ter deixado para postar hoje, mas a falta de tempo (por conta de uma reunião fora) conjugada com a ansiedade de postar alguma coisa e divulgar o novo endereço do blog fizeram com que eu me limitasse a postar a imagem de ontem – reproduzida aqui.

re·start verb rēˈstärt/ 1. start again. "the talks will restart in September" noun ˈrēstärt/ 1. a new start or beginning.

Desde o último post há pouco mais de 3 anos (vamos ignorar o de ontem que cá pra nós, não conta), muitas coisas aconteceram na minha vida: Em agosto de 2013 eu larguei o meu emprego e uma situação profissional bem estável e embarquei num ano sabático que acabou se extendendo e pra dizer a bem da verdade, ainda não está totalmente terminado – já que ainda estou tocando alguns projetos pessoais, que espero estar divulgando em breve.

Nesses pouco mais de 18 meses eu viajei um bocado pelo Brasil (Minas, Rio de Janeiro, Bahia, Maranhão), dei uma esticadinha pro Chile, mergulhei de cabeça na fotografia, entrei e saí de um projeto de app que parecia ser bastante promissor e tive inúmeras distrações – poucas ruins, muitas boas e outras ótimas 🙂

Se tem uma coisa que marcou este período foi o meu empenho, ora consciente, ora inconsciente, em assumir pouquíssimos compromissos com outras pessoas e comigo mesmo. Não faltaram mudanças de planos na última hora e na maior parte do tempo, eu fiz o que me deu na telha.

Embora isso possa parecer interessante para muitas pessoas, a verdade é que corre-se o risco de se tornar refém da própria vontade. E ser refém nunca é bom – mesmo quando o raptor é você mesmo.

Erro ao tentar atualizar o NuGet Package Manager

Ao tentar atualizar o Nuget esses dias eu vinha recebendo um erro. Analisando o log, via se que o problema estava relacionado assinatura digital do pacote.

clip_image001

O erro é um problema conhecido do NuGet no Visual Studio 2010 SP 1: http://docs.nuget.org/docs/reference/known-issues

Embora você possa solicitar um patch junto ao suporte da Microsoft usando as instruções encontradas em http://support.microsoft.com/kb/2581019, eu não atualizo extensões com uma frequência que justifique a instalação deste patch.

No próprio documento de problemas conhecidos estão listados os passos necessários que eu reproduzo aqui na ordem correta e em português para a sua conveniência.

1. Abra o Visual Studio como administrador (Run As Administrator). Isto é necessário para poder desinstalar a versão atual do NuGet

2. Desinstale o NuGet

3. Reinicie o Visual Studio

4. Abra o Extension Manager (Tools -> Extension Manager), vá em Online Gallery, faça uma busca por Nuget e instale-o.

HTH

 

Alfred Myers

Cannot obtain value of local or argument ‘variableName’ as it is not available at this instruction pointer, possibly because it has been optimized away

… onde variableName é o nome da variável local ou parâmetro cujo valor você deseja inspecionar.

 

 

Na palestra do sábado passado (19/Mai/2010) eu falei sobre o acesso ao código-fonte do .NET Framework.

Um dos problemas quando você dá step-into o código do .NET Framework é que muitas vezes os valores das variáveis locais e parâmetros não são exibidos.

Isto ocorre por conta de otimizações feitas durante a compilação JIT.

Shawn Buke, um dos responsáveis pela liberação do código do Framework, postou sobre como resolver isto no começo de 2008.

http://blogs.msdn.com/b/sburke/archive/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source.aspx

 

Eu já tinha cruzado com este artigo e até twitei a respeito, mas os twits se “perdem” com o tempo. Por aqui vai ficar mais fácil de encontrar.

Estamos Contratando

Pessoal,

Temos vários projetos bacanas vindo por aí e para dar conta do recado, estamos contratando gente aqui para a ITGROUP.

Eu estou aqui desde setembro de 2006 e o que posso dizer é que o ambiente é bacana e o que não faltam são chances de trabalhar com coisas legais.

Se você se encaixa num dos perfís abaixo, mande um currículo para rh [at] itgroup.com.br.

Qualquer coisa manda uma Direct Message lá no Twitter em @AlfredMyers

 

– Analista de Sistemas .NET Jr

Buscamos profissionais dinâmicos, com paixão por tecnologia, facilidade de aprendizado e comunicação, com bons conhecimentos em programação, orientação a objetos, plataforma Microsoft .NET, Office e SQL Server.

Cursando a partir do segundo semestre de uma faculdade de tecnologia ou bacharelado na área, boa leitura em inglês e certificações Microsoft serão considerados diferenciais.

– DBA SQL Server Pleno

Buscamos profissionais dinâmicos, com facilidade de aprendizado e comunicação, com experiência em implementação da infraestrutura em alta disponibilidade, modelagem de dados relacional, tunning e operação de bancos de dados de missão crítica com altos volumes de dados e bons conhecimentos em modelagem multidimensional, ETL e soluções de BI com uso do Microsoft SQL Server e seus recursos avançados Analysis Services, Integration Services e Reporting Services.

Conhecimentos em desenvolvimento nas plataformas .NET, Office e SharePoint completam o perfil.

– Analista de Sistemas MSCRM

Buscamos profissionais com experiência em implantação do Microsoft Dynamics CRM 4.0, com conhecimento em configuração, parametrização e desenvolvimento de componentes customizados. Sólidos conhecimentos em programação, orientação a objetos, plataforma Microsoft .NET e SQL Server são primordiais, conhecimentos em metodologias de gestão de projetos e arquitetura são importantes e certificações Microsoft serão consideradas diferenciais. Dinamismo, facilidade de aprendizado e boa comunicação oral e escrita completam o perfil.

– Analista de Testes

Buscamos profissionais com experiência na elaboração de planejamentos de testes, realização de testes funcionais e homologação de sistemas. Conhecimentos em programação, plataforma Microsoft .NET e SQL Server, bem como em metodologias de gestão de projetos serão consideradas diferenciais. Dinamismo, facilidade de aprendizado e boa comunicação oral e escrita completam o perfil.

 

 

P.S: Ah… Também precisamos de analistas funcionais, mas eu não tenho o perfil necessário. Caso interesse, mande um e-mail para rh [at] itgroup.com.br pedindo detalhes.