O 1º encontro oficial do [self SP]; foi um sucesso!

Depois de quatro meses de vida, conseguimos realizar o primeiro encontro oficial do [self SP];, graças ao @fer_bass (que organizou quase tudo), à PoisonLabs (que patrocinou o CoffeBreak), à Caelum (que liberou o auditório para o evento) e ao Hugo Borges (que gravou o evento todo).

Obrigado a todos os palestrantes e aos participantes, foi realmente muito bacana!

Seguem algumas fotos (e os títulos das palestras):


“OpenGL com GLKit” (xissburg)



“CoreGraphics Performance” (Glenn Marcus)



“Conhecendo e entendo o ARC” (Ferbass)



“Testes automatizados para sua aplicação iOS” (Ricardo Valeriano)



“Funcionalidades dinamicas do Objective-C” (Diego Chohfi)

Como acelerar a exibição das suas rotas no Rails

Procurando uma forma de acelerar a saída do comando “rake routes”, encontrei uma gem interessante: https://github.com/bcaccinolo/routes.

Ela cria um cache da saída do comando e renova o conteúdo automaticamente quando você atualiza o arquivo config/routes.rb.

Não é necessário incluir a gem no Gemfile do projeto, basta incluir o diretório oculto /.routes no .gitignore. Para instalar, rode: gem install routes. Depois, entre no projeto e rode: routes.

4 coisas simples que a Apple poderia implementar no iOS

  1. Permitir mais de uma assinatura para e-mails (atualmente só é possível criar uma única assinatura);
  2. Tranferência de fotos e vídeos via bluetooth (qualquer celular ridículo faz isso);
  3. Permitir a inclusão de imagens ou vídeos dentro da app Mail (atualmente você precisa abrir a foto ou vídeo e selecionar a opção que manda por e-mail);
  4. Acessar de forma mais prática algumas configurações, como por exemplo ativar / desativar o 3G.

Como gerar diagramas de projetos Rails

A dica é velha, mas ainda é muito útil!

Pra gerar diagramas (de models, de controllers, etc) de seus projetos Rails, você pode utilizar a gem railroad. Testei com projetos Rails 2.3.x e Rails 3.0.x e funcionou em ambos os casos.

Instalação

gem install railroad

Criação do diagrama

Pra gerar uma imagem com o diagrama, entre no diretório do projeto e rode:

railroad -M -out models.dot

Para mais opções, verifique a documentação do projeto: http://railroad.rubyforge.org/

Pra vizualizar arquivos *.dot, editá-los ou convertê-los em uma imagem, utlize o software Graphviz, o qual possui versões pra Mac OSX, Linux, Windows e até Solaris: http://www.graphviz.org/

Outra opção, é gerar um arquivo *.svg diretamente:

railroad -M | dot -Tsvg > models.svg

Como ordernar linhas no Vim

Comando sort – ordenar linhas

Algo que todo mundo que usa o editor Vim deve conhecer é o comando:

:sort

Ele ordena alfabeticamente as linhas de seu texto. Você também pode selecionar algumas linhas e ordernar apenas estas. Para isso, pressione shift-v para entrar no modo de seleção por linha, depois rode:

:'<,'>sort


Comando sort u – ordenar linhas excluindo as repeditas

Algo que uso muito também é o parametro u, o qual permite ordernar as linhas, mas excluindo as repetidas:

Antes:

Lucas
Lucas
Lucas
Catón
Catón

:sort u

Depois:

Catón
Lucas


Comando sort /regex/ – ordenar linhas utilizando alguma coluna

E hoje aprendi mais uma coisa realmente interessante ao ordenar um arquivo: como ordernar um texto usando alguma coluna:

Imagine o seguinte texto:

36993 vim 26M
39140 ssh 10M
34551 bash 17M


Nosso objetivo é ordenar pela terceira coluna. Para isto, basta rodar o comando sort passando uma expressão regular como parâmetro, a qual representa o que será ignorado pelo vim até começar a ordenação, ou seja, a partir da coluna que a expressão regular não “casar” mais, ele começará a ordenar. Sendo assim:

:sort /.\+\s.\+\s/

Essa expressão regular casa com [qualquer caracter em qualquer quantidade] + [um espaço] + [qualquer caracter em qualquer quantidade] + [um espaço], conforme representado abaixo:

36993 vim 26M
39140 ssh 10M
34551 bash 17M


O conteúdo depois disso será a chave para a ordenação.

Resultado:

39140 ssh 10M
34551 bash 17M
36993 vim 26M


Se quisessemos ainda ordernar pela segunda coluna:

sort /\d\{5\}\s/

Bom, é isso! Qualquer dúvida, postem nos comentários!
E se quiserem aprender mais sobre expressões regulares, vejam minha apresentação :-)

O que eu uso pra me organizar

Vou listar as ferramentas que uso diariamente pra me organizar e proteger meus dados.

Confesso que eu já perdi dados importantes no passado (com quem nunca aconteceu?) e isso acabou me deixando neurótico com backups.

Agenda de contatos

Pra começar, como minha agenda de contatos não ficava na nuvem e já perdi ela quando trocava / perdia celular, acabei usando por muito tempo uma agenda de papel. Eu sei, é muito estranho, mas eu me sentia seguro. De um tempo pra cá, a substituí pela agenda de contatos da Apple (presente no Mac OSX e no meu iPod Touch), sincronizados pelo iCloud (e backup lá também). Óbvio que armazenar essas informações eletrônicamente é infinitamente mais vantajoso. Guardo fotos dos contatos, vários e-mails, telefones, usuário do twitter, endereço, etc.

Agenda de compromissos

Assim como minha agenda de contatos, eu também usei por muitos anos uma agenda de papel. Mas finalmente me desapeguei e não comprei uma agenda 2012. Substitui esta por dois softwares, os quais estão me atendendo muito bem:

iCal: Onde anoto todas os compromissos, os importantes com avisos sonoros e avisos por e-mail, também sincronizados entre o Mac e o iPod Touch via iCloud; e Wunderlist: que é um software para listar as coisas que você precisa fazer em determinado dia, no estilo “TO-DO list”. Ele possui versão web, versão pra Mac OSX e versão para iOS. Outra coisa que me fez gostar ainda mais é a possibilidade de editar / criar tudo offline no iPod Touch (já que eu não tenho 3G) e sincronizar tudo depois, quando estiver numa rede wi-fi.

Algumas tarefas ainda estão no Google Calendar (como aniversários e tarefas recorrentes, ambos com avisos por e-mail). Estou migrando estas aos poucos para o iCal.

Leitor de feeds RSS

Uso o Google Reader desde 2005 e funciona perfeitamente bem, nunca tive nenhum tipo de problema com ele. Atualmente tenho 175 subscriptions e leio aproximadamente 70% dos items de lá (dependendo se o título me interessar ou não). Uso bastante o recurso “starred” para selecionar os item que quero ler depois, quando não posso ler no momento. Uso bastante o recurso de envio de post por e-mail, pra comparilhar com quem possa interesar.

Bookmarks

Depois de muito tempo usando o Delicious, o abandonei e comecei a usar o Google bookmarks. Uso uma extension do Google Chrome pra adicionar item lá e uso com frequência pra me lembrar de páginas que já visitei e eram úteis em potencial.

Anotações em geral

Em 90% dos casos, uso o Evernote, software para o Mac OSX e iOS. Nos outros 10%, uso papel e caneta apenas, o que às vezes é insubstituível.

Armazenamento de senhas

Utilizo o LastPass, que possui uma extension pra todos os browsers atuais e em geral funciona bem. Uma vez tive um problema com ele, mas o pessoal do LastPass entrou em contato comigo em poucos minutos pra resolver meu problema (e olha que eu uso a versão free!).

Repositório de projetos

Meus projetos open-source ficam no Github, o qual tem ótimos recursos e boa usabilidade. Já meus projetos fechados ficam no Codebase, o qual gosto bastante, uma vez que além de servir como repositório git, também consigo gerenciar o projeto de forma integrada, criando tickets, milestones, atribuindo tarefas para usuários, configurando prioridades, etc.

Controle de contas ($)

Até hoje não achei um software que me atendesse 100%, o que me obriga até hoje a usar uma planílha salva no Google Docs. Mas isso está para acabar (espero!). Semana passada, iniciei um novo projeto (open-source), chamado Financial Control (sou péssimo para nomes). Já está no GitHub: https://github.com/lucascaton/financial_control, mas está apenas 15% pronto. Assim que eu o terminar, publico aqui no blog.

Redes sociais

Uso Facebook, Google+ e Twitter, mas não me comprometo a ler tudo que aparece por lá. O que mais uso, sem dúvidas, é o Twitter, e como a maior parte das pessoas que eu sigo são programadores, uso com o objetivo de me atualizar, descobrir e compartilhar coisas relacionadas à desenvolvimento de software.

Lembretes rápidos

Não tem como fugir. Vez ou outra, mando um e-mail pra mim mesmo com alguma tarefa rápida pra lembrar depois. A propósito, uso o Gmail desde 2004 e organizo com os labels e filtros que o serviço oferece, além da Priority Inbox (Caixa de entraga prioritária).

Backups

Como eu já falei, sou meio neurótico com backups:

  • Faço um backup dirário de todo conteúdo do meu Mac em um HD externo. Como trabalho com o Mac, levando ele diáriamente para o escritório, fiz seguro deste também!
  • A cada 6 meses faço um backup das coisas mais importantes em DVDs (uso aproximadamente 6 discos) e pra eu não esquecer, o Google Calendar me manda um e-mail semestral avisando: “Você precisa fazer um backup semestral em DVDs :-)”.
  • Mensalmente, faço backups dos seguintes items:
    • Subscribes do Google Reader
    • Address Book da Apple (além de já ter um backup no iCloud)
    • LastPass
    • iCal (além de também já ter um backup no iCloud)

Compartilhem o que vocês usam também!