Ideia-me! estou aqui!
Olá, eu sou o Jônatas e este é meu site pessoal. Através dele você pode acompanhar meus pensamentos sobre desenvolvimento de software/humano. Sou desenvolvedor desde 2004 e os conteúdos aqui descritos contam a respeito da minha vida/experiências trabalhando como programador e freelancer. Em 2007 conheci o Ruby e o Rails e sou muito apaixonado pelo meu trabalho.
Atualmente sou sócio da invent.to e também desenvolvo para algumas empresas de tecnologia como freelancer.
ps: Sinta-se livre para conversar comigo por email ou gtalk: jonatasdp@gmail.com.
Fim de semana bliss
Este fim de semana estive na minha pós graduação estudando sobre educação especial e arte. Então assisti um vídeo falando sobre a integração entre alunos especiais e sistemas de educação mais híbridos e multi-disciplinares com sistemas de inclusão e acessibilidade muito evoluídos. Então havia uma mãe falando o quanto havia mudado sua vida conhecer a linguagem “bliss”. Não bastassem as 15 horas de pós graduação me internei em uma série de links para aprender essa linguagem, mas desta vez não era de programação.
Apesar de existir também a linguagem de programação Blizz aqui estou me referindo exclusivamente a linguagem de símbolos bliss. Então a história começou pois o austríaco Charless Blizz foi para china e não conseguiu aprender a escrever mandarim e compreender como um todo com tanta eficiência. Então pensou em criar uma linguagem universal com símbolos ideográficos que tinham a capacidade de interagir com uma forma visual simples e cognitiva.
Essa linguagem também usufrui do . ou espaço de forma natural e o sistema é bem cognitivo.
Existem uma serie de exemplos de frases que ajudam bastante na compreensão prática da linguagem. Estou pensando em fazer um jogo de aprendizado desta linguagem, pois ela é tão lógica e dedutiva que se torna fácil de aprender brincando.

Os simbolos possuem seu sentido principal e seus modificadores e conectores.
Então é muito fácil de pegar o jeito e ir aprendendo esta linguagem bacana. Gostei muito de que existem uma série de exemplos de todos os níveis e conforme você vai treinando se torna mais simples e ágil de produzir a mensagem.
Não testei nenhum software com mapeamento de teclado pois meu objetivo era conhecer bem os simbolos e também tentar entender mais sobre a sinapse deste conhecimento.
As linguagens como elas são
Estive analisando como as linguagens e a diversidade dos meios de interação nos fazem pensar diferente. Hoje e ontem dediquei horas da minha energia para entrar na linguagem bliss e conhecer mais intimamente as combinações dos simbolos e a clarificação automatica do cérebro ao encarar a mensagem.
Como um fã de linguagens de programação me sinto muito feliz por entender esta linguagem sem som apenas visual e que esta por sua vez torna toda a estrutura da imagem iconográfica mais intuitiva e simples de se construir o pensamento.
Tente você mesmo observar como os ícones são intuitivos e o cérebro codifica rapidamente as variações depois que você vê os exemplos a aprende as regras.
Por fim estou muito feliz por terminar meu fim de semanas de uma maneira melhor aprendendo algo tão legal e divertido. Vou ver se imprimo alguns destes símbolos para ensinar para meu filho desde cedo sobre esta linguagem.
Git Post Receive
Hoje estive querendo transformar a página de categorias para ficar mais estilo ‘tag cloud’ com cada categoria com um tamanho diferente dependendo do número de posts que houvesse. Então tive uma série de problemas para adaptar um tamanho legal via css e resolvi procurar por um plugin para o jekyll. Após encontrar um plugin para o liquid templates, descobri que o jekyll do github está em modo safe e não aceita plugin algum, então como gostei da nova forma resolvi migrar meu site do github para minha VPS. E aí precisava automatizar o processo de deploy do site a cada novo post.
Como funciona
Nos repositórios do git, é possível usufruir dos métodos hook, que nada mais são do que possíveis eventos em torno do repositório git. Dessa forma é possível mapear os eventos em torno do git. Neste exemplo usei o post-receive.
Fui até o meu servidor e executei os seguintes comandos:
ssh jonatas@ideia.me mkdir ~/ideia.me cd ~/ideia.me git init --bare .
No código acima criei um repositório git que receberá os commits de minha máquina sendo este o servidor.
Em meu repositório local adicionei:
jonatasdp@~/Code/ideia.me$ git remote add deploy jonatas@ideia.me:~/ideia.me
Neste caso estou apontando diretamente para o repositório criado anteriormente com o meu usuário. Assim tive apenas que ripar o post-receive do wiki do jekyll e configurar o nginx.
Post receive
No post receive, nada mais faz do que clonar o repositório locamente e executar o jekyll para gerar o website estático novamente na versão mais atualizada:
jonatas@ideia.me:~$ cat ideia.me/hooks/post-receive GIT_REPO=$HOME/ideia.me TMP_GIT_CLONE=$HOME/tmp/ideia.me PUBLIC_WWW=/var/www/sites/ideia.me git clone $GIT_REPO $TMP_GIT_CLONE cd $TMP_GIT_CLONE jekyll --no-auto $TMP_GIT_CLONE $PUBLIC_WWW cd $HOME rm -Rf $TMP_GIT_CLONE
Com este post-receive o jekyll irá regerar meu site cada vez que envio um novo post.
git push deploy master
O jekyll é uma engine muito boa e valeu muito a pena desde o início. Agora estou totalmente livre do sistema de páginas do github e posso dar o deploy em minha VPS como bem entender :)
Configuração do nginx
Para configurar o Nginx criei o arquivo /etc/nginx/sites-enabled/ideiame com o seguinte conteúdo:
server {
root /var/www/sites/ideia.me;
index index.html;
server_name ideia.me;
location / {
try_files $uri $uri/ /index.html;
}
}
Valeu GIT!
Demorou um pouco para o site ficar 100% pois o DNS demora um tempo para migrar e na nostalgia ainda cheguei a ver uma primeira versão do meu site onlne durante o período da migração.Jekyll e Twitter Bootstrap
Sempre usei o jekyll para construir o site, mas resolvi migrar o estilo do site para o twitter bootstrap pois estava um pouco cansado daquele leiaute que eu fiz. Acabei usando o jekyll bootstrap para acelerar a migração. A organização do code é um tanto quanto melhor que a minha e então tive que substituir alguns detalhes em todos os posts ao mesmo tempo. Para não passar arquivo por arquivo, utilizei uma expressão regular com perl:
Para trocar o nome do leiaute
ls *.markdown | xargs perl -pi -e 's/layout: ideiame/layout: post/g'
Também removi o título e foi simples interno de cada post pois está sendo injetado pela nova template:
Para remover a linha do titulo de cada post
ls *.markdown | xargs perl -pi -e 's/# \\{\\{.page.title.}}//g'
Temas para o bootstrap
A estrutura do twitter bootstrap é simples e linda. E também permite usar temas de forma muito simples. Estou usando o tema cyborg do site bootswatch, e também adicionei um menu onde é possível trocar o tema. Agora só falta colocar um cookie para manter o mesmo tema do último acesso.
E aí gostaram do novo leiaute?
- 18 Apr 2013 »Observando a memória no ruby
- 18 Apr 2013 »Experiências com o Meteor js
- 08 Apr 2013 »Pixel no ar!
- 01 Apr 2013 »Flu.ideia.me no ar!
- 05 Mar 2013 »Concentração na era da distração
- 14 Dec 2012 »Retrospectiva 2012
- 03 Dec 2012 »Home office de mudança
- 24 Nov 2012 »Efetivamente....
- 11 Nov 2012 »Meu primeiro filho e seu primeiro ano
- 11 Nov 2012 »Arteterapia o início
- 08 Nov 2012 »Não me venha com churumelas!
- 18 Oct 2012 »Como foi a Rails Rumble 2012
- 01 Oct 2012 »Ideias sobre o Rails Rumble
- 13 Sep 2012 »Os programadores do futuro
- 23 May 2012 »Disciplina no home office
- 08 May 2012 »Sansung Galaxy Note N7000
- 09 Apr 2012 »Update ou upgrade parte 2
- 01 Apr 2012 »Cursando aulas da Stanford University
- 30 Mar 2012 »Recursos úteis para desenvolvimento na linha de comando
- 29 Mar 2012 »Update ou upgrade
- 25 Mar 2012 »Usabilidade versus simplicidade
- 13 Mar 2012 »Câmera Overlay Open Source
- 08 Mar 2012 »Chave Dicotômica
- 07 Mar 2012 »Pequenas mudanças e grandes decisões
- 27 Feb 2012 »Camera Overlay
- 12 Jul 2010 »Sinceridade não faz mal a ninguém
- 07 Jul 2010 »Inglês Legal
- 30 Jun 2010 »Problemas no software e hardware
- 27 Jun 2010 »Cognitividade da Interface
- 18 Jun 2010 »Meu iPad Chegou!
- 11 Jun 2010 »Palestra na Vizivali
- 30 May 2010 »SH Legal
- 21 May 2010 »Sistemas Operacionais - Gerência do processador - parte 1
- 19 May 2010 »Javascript Ninja Legal
- 18 May 2010 »Iteração legal
- 16 May 2010 »Coffeescript Legal
- 13 May 2010 »Google Api
- 13 May 2010 »As linguagens e o mundo
- 05 May 2010 »Nova roda mágica do google
- 03 May 2010 »Ruby Legal
- 03 May 2010 »Integrando API do Google Buzz no Ideia.me
- 29 Apr 2010 »Usufruindo do comando find do Unix
- 27 Apr 2010 »Jônatas Davi Paganini
- 21 Apr 2010 »Diário de um feriado
- 18 Apr 2010 »Novas cores no site
- 31 Mar 2010 »WebOrb + ActiveRecord
- 25 Mar 2010 »Gerência do Projetos
- 25 Mar 2010 »A importância dos baby steps
- 22 Mar 2010 »Helplate = Help + Template
- 18 Mar 2010 »gtR - gerência do projeto do gtR da nissan
- 11 Mar 2010 »gtR - um projeto da nissan
- 04 Mar 2010 »Aula de Sistemas Operacionais
- 04 Mar 2010 »Gerência de Projetos
- 02 Mar 2010 »Cartão de visitas
- 01 Mar 2010 »Expressões Regulares com grep
- 25 Feb 2010 »Inspecionando fórmulas em ruby
- 23 Feb 2010 »Expressões Regulares + Ruby = \*maravilhas
- 22 Feb 2010 »A linguagem SQL
- 21 Feb 2010 »PostgreSql Tricks
- 18 Feb 2010 »Gerência de Projetos
- 16 Feb 2010 »Inspecionando expressões regulares com Sinatra!
- 14 Feb 2010 »Leiaute para iPhone no Ideia.me
- 14 Feb 2010 »Google code playground
- 14 Feb 2010 »Estórias Bonitas vs Testes Unitários
- 13 Feb 2010 »RML - Resume Markup Language
- 11 Feb 2010 »De volta as aulas
- 03 Feb 2010 »Bom dia a dia do desenvolvimento
- 01 Feb 2010 »Portfolio::Base
- 01 Feb 2010 »Currículo
- 31 Jan 2010 »Protótipo do site