retardevs
retardevs
Os Devs Retardados
10 posts
Tutoriais, dicas e pensamentos devaneios que se passam na cabeça de dois desenvolvedores. Muito conteúdo para pouco tumblr.
Don't wanna be here? Send us removal request.
retardevs · 12 years ago
Text
Sobrescrevendo Um Commit no Git
As vezes nós precisamos editar nosso último commit, quando esquecemos de adicionar um arquivo. Isso é simples de resolver e basta adicionar o arquivo e fazer um amend:
https://gist.github.com/rafaelwinter/5290002
Isso resolve o problema na maioria dos casos, mas vamos dizer que você tenha conseguido fazer uma proeza num commit, algo que realmente precisa ser descartado. No meu caso eu estava com o computador numa data futura e fiz commit e push sem me dar conta. Oops!
Tumblr media
Calma, tem jeito!
Eu resolvi voltando o meu HEAD para o commit anterior, com isso todos os arquivos do commit defeituoso ficaram como modificados ou untracked no meu repo. Isso permitiu que eu refizesse o commit usando a data correta e que forçasse um push para o github:
https://gist.github.com/rafaelwinter/5290027
É importante usar o parâmetro --force no push, senão o git vai dizer que seu branch difere do remoto por um commit e vai pedir para você fazer um merge.
0 notes
retardevs · 12 years ago
Text
Ruby 2.0 - O que há de novo?
Opa pessoal, tudo bom?
A algumas semanas, o Ruby 2.0 foi lançado oficialmente. Depois de ter baixado no meu mac e dado uma lida no release notes e em alguns blogs, resolvi fazer um post com as features novas que eu achei mais legais.
Lista de símbolos
No Ruby 1.9, para se criar um array de símbolos, você precisava instanciar o array e colocar os símbolos que te interessavam nele. Agora, através da notação %i (%i é uma abreviação para "intern"). Abaixo você tem um exemplo de como ele funciona:
https://gist.github.com/pedronsouza/5249660
UTF-8 como default encoding
\o/ essa é uma das boas. Lembra quando você colocava caracteres especiais no seu .rb e não sabia por que o script não funcionava? Era devido o charset aceito. Por padrão, o Ruby 1.9.x tinha encoding US-ASCII. Então você era obrigado a definir o encoding através do magic comment. Agora, no ruby 2.0, o padrão é o UTF-8, facilitando a nossa vida.
Método protocolo to_h
Antigamente, precisávamos criar nossa própria implementação para transformar um objeto em um hash. No ruby 2.0 isso não será mais necessário através do método to_h
  https://gist.github.com/pedronsouza/5249798
Refinements
Todos sabem que, em ruby, todas as classes são abertas. Você pode simplesmente, modificar um método que já existe e criar sua própria implementação. Um exemplo disse são os métodos secods, minutes, hours entre outros que você possui no ActiveSupport do Rails. Porém, no ruby 2.0 é apresentado o conceito de refinements e using, para que você possa encapsular esse novo comportamento e usa-lo apenas quando você, explicitamente, o inclui em sua classe. Segue um exemplo abaixo:
https://gist.github.com/pnicholas/5249857
De tudo que eu ví, foram as mais bacanas, mas existem outras. Vou listar abaixo alguns posts de blogs que contém outras features.
O que mudou no ruby 2.0 - SimplesIdeias
Ruby 2.0.0 By Example - Marc-Andre
É isso ai pessoal!
0 notes
retardevs · 12 years ago
Text
Letter Yourself - Meu primeiro app com Rails 4 (ou quase isso :/)
E ae pessoal, tudo bom?
Com o recente release do rails 4 beta, houveram algumas grandes mudanças em relação de como o Rails vai funcionar internamente, e algumas features novas. Pretendo falar mais sobre elas no decorrer da semana.
Basicamente, resolvi criar um app para ver se eu teria alguma dificuldade de modificar a forma como eu estou acostumado a trabalhar com Rails. Nenhum problema.
O aplicativo que eu resolvi criar, veio de uma ideia que eu tive vendo How i met your mother e fazendo um pão na chapa. Sempre ouvimos falar daquelas coisas de "escrevi uma carta e só vou ler daqui a 5 anos". Eis que me veio a ideia: E se tivesse um site que eu crio uma mensagem, coloco meu e-mail e recebo ela por e-mail daqui a 5, 10, 20 anos? (Palmas pra mim, só que não).
Basicamente, em nível de código, é realmente uma aplicação muito simples. Então resolvi criar esse app em rails 4. 
Como de costume, fui realizar meu deploy no heroku, e como imaginado, ele ainda não suporta o Rails 4. A mensagem de erro é:
Gem::InstallError: activesupport requires Ruby version >= 1.9.3.
O grande lance do Rails 4 é retirar o suporte as versões do ruby abaixo de 1.9, com a chegada do Ruby 2.0, era o mais natural de se esperar.
Então fui obrigado a realizar um downgrade do Rails 4, para o velho 3.2.8.
A URL para o aplicativo está aqui e abaixo o código fonte
Repositório com Rails 4
Repositório com Rails 3.2.8
Não tive muitas diferenças em relação ao que já estou acostumado, até porque o app é MUITO simples.
Pretendo falar mais sobre algumas features legais que eu já vi sobre o rails 4
Stay Tune boys!
0 notes
retardevs · 12 years ago
Text
Caindo de Cabeça no iOS - Parte 1
Nesta série de três artigos vamos abordar de forma bem simples como começar a programar para iOS. Até o momento precisamos das seguintes ferramentas para começar:
Computador Mac com OSX 10.7 ou superior
Xcode 4.6
Cérebro...
Apesar de alguns estudos experimentais demonstrarem que é possível instalar de maneira não-oficial algumas versões do OSX em máquinas PC, eu não recomendo essa abordagem porque costuma dar trabalho de configurar e no fim das contas você pode ser pego no dia em que quiser submeter um app. Qualquer Mac Mini (como esse meu) serve, contudo que tenha o OSX 10.7 (Lion) ou mais recente.
O Xcode é instalado através da App Store do Mac, confira esse link: https://itunes.apple.com/br/app/xcode/id497799835?mt=12
Após instalar o Xcode e os pacotes de desenvolvimento para iOS no seu Mac, vamos usar o cérebro para criar um novo projeto. Selecione a opção Tabbed Application, onde iremos explorar um padrão de interface comum do iOS, as telas com abas. Pressione Next e digite um nome de projeto em Product Name, selecione a opção Universal em Devices e marque as opções Use Storyboards e Use Automatic Reference Counting.
Tumblr media
Ao selecionar a opção Use Automatic Reference Counting você na maioria dos casos não precisará se preocupar com a gerência de memória e de ciclo de vida dos objetos do seu aplicativo. Em versões anteriores do iOS o programador era encarregado de controlar manualmente a maneira como os objetos deveriam ser destruídos ou persistidos durante a execução do programa. Isso acarretava escrever mais código para reter ou liberar objetos e portanto era um ponto crítico que eventualmente poderia causar problemas em tempo de execução, como utilização de objetos já desalocados. Em outra oportunidade falaremos detalhadamente sobre isso, mas esta imagem mostra o que o compilador LLVM faz para nós quando usamos ARC:
Tumblr media
Se você selecionou a opção Use Storyboards verá que o projeto trará uma Storyboard para iPhone e uma para iPad. Isso permitirá que no futuro seu projeto possa ter uma experiência de usuário desenvolvida especificamente para o iPad. As Storyboards permitem que o programador defina visualmente o layout e a interação entre as telas, facilitando a prototipação e também permitindo testar a navegação do app digitando pouco ou nenhum código.
Tumblr media
Aperte a tecla Run no Xcode (⌘R) para compilar e executar o aplicativo no target selecionado. É possível mudar o target clicando na caixa ao lado do botão Stop.
Por hoje é só, acompanhe o blog para dentro de alguns dias ver a continuação desse artigo.
0 notes
retardevs · 12 years ago
Text
O que a maioria da escolas não ensinam!
Recebi esse vídeo pelo twitter
A melhor citação do vídeo é: “Você pode aprender a programar. Eu sei que é intimidante, muitas coisas são intimidantes mas… o que não é?” Chris - NBA All-Star e programador na faculdade.
2 notes · View notes
retardevs · 12 years ago
Text
Atualizando seu Keon
E ae pessoal, de boa?
Essa semana me deparei com uma treta forte. Meu Keon encontrou, a tela azul da morte (mas com uma raposa no meio).
Tumblr media
O que isso significa? Seu Keon travou por algum motivo (ainda não descobri o porque), e você precisa atualizar sua versão do FirefoxOS. Graças a ajuda de um colega meu, consegui algumas informações de como atualizar o Keon. 
Eu utilizei o ubuntu para realizar o update. Abaixo está o gist com os comandos necessários para atualizar seu aparelho
https://gist.github.com/pnicholas/5035550
0 notes
retardevs · 12 years ago
Text
[Quicktip] Lidando com proxys no RubyGems
Opa pessoal, tudo bom com vocês?
Recentemente, estou trabalhando num projeto rails e meu local de trabalho utiliza proxy para acesso a internet (ATÉ QUANDO ISSO?). Enfim, abri o terminal do meu mac, criei um novo gemset no rvm e fui começar a codar.
Quando eu fui tentar executar o bundler para instalar as gems, me veio um problema chatíssimo. O rubygems não utiliza as configurações de proxy do sistema (Eu PENEI para saber isso). Portanto aqui vão dois comandinhos que podem facilitar sua vida para realizar a instalação
1 - Inserir o parâmetro --http-proxy diretamente no call do rubygems
https://gist.github.com/pnicholas/5008900
2 - Exportar a variável pro seu bash_profile (caso vc esteja usando bundler, se não tiver, deveria!)
https://gist.github.com/pnicholas/5008951
0 notes
retardevs · 12 years ago
Link
A free book to learn backbone.js
6 notes · View notes
retardevs · 12 years ago
Text
FirefoxOS - O Caminho das pedras
E ae pessoal, tudo bom? Espero que sim.
Bom, ta na hora de falar de algo muito bacana. Recentemente a mozilla anunciou seu novo sistema operacional e smartphone na Campus Party SP. A ideia é que o aparelho seja de baixo custo e com um sistema operacional completamente baseado no Gecko. Sim, é isso mesmo que você está pensando: O FIREFOX OS VAI RODAR APPS WEB \o/
Por que isso é bom? Você pode facilmente portar suas webapps para Android, iOS para o FirefoxOS. E caso você seja um desenvolvedor Web, vai se sentir em casa: O Desenvolvimento é completamente com Javascript, CSS e HTML5. Todos comemora o/
Mas como sempre, há um porém. A alguns dias venho trabalhando na minha primeira app para o FirefoxOS e tive algumas dificuldades em encontrar conteúdo relevante que ajudasse a entender melhor a plataforma. O objetivo desse post é compartilhar com vocês algumas coisas que eu já encontrei.
Onde encontro conteúdo relevante sobre a plataforma?
Bem, o bootstrap para encontrar bom conteúdo, é na parte de developers do marketplace da Mozilla. Lá você vai encontrar conteúdo relevante sobre como criar sua primeira app, as configurações necessárias para publicar seu app e algumas ferramentas (Como o validador de pacote).
Ok, mas e se eu quiser perguntar algo, onde eu vou?
Bem, a algumas opções:
O canal IRC da mozilla. Pode entrar lá e conversar com a galera logada, sempre tem alguém pra te ajudar
Também temos a lista de discussão, onde você pode postar suas dúvidas (caso o IRC não te agrade tanto quanto não me agrada :P). Vá lá e procure a lista "dev-b2g"
Onde eu posso ver uns códigos legais de apps para o FirefoxOS?
O código de todas as apps nativas do FirefoxOS estão no github, no repostiório do Gecko. Pelo que eu ví, sem sombra de dúvidas é o melhor lugar para se encontrar referências de boas práticas e como acessar as API's do aparelho.
Beleza, e como eu testo minha aplicação?
A mozilla criou um simulador do FirefoxOS. Muito fácil de usar. Porém um aviso: BAIXE A VERSÃO 2.0-pre. Tive inúmeros problemas com a versão anterior, cheguei até a pensar em formatar o mac :/. A versão 2.0-pre tem uma correção de diversos bugs. Também é legal ficar ligado no twitter da mozilla. A fundação da raposa está criando vários eventos de hack, e lá você terá a chance de testar sua app em um dos Aparelhos e ter uma experiência mais real de como seu aplicativo se comportará no sistema.
Show de bola, tem alguma recomendação de ambiente para desenvolver?
Claro! Se você já é um desenvolvedor web, e quer começar a portar suas aplicações web para o FirefoxOS, recomendo que continue com seu fluxo de trabalho e ferramentas que está mais acostumado. Mas, caso você deseja aprender algo novo (ou pode ser que não tão novo) Recomendo a dupla matadora do GRANDE nodejs: Volo e Bower. O Volo é um pacote do node que te ajuda a criar templates dos seus projetos webs e também a automatizar muitas tarefas que fazem parte do dia-a-dia de um Web developer (minify e obfuscation, por exemplo). Já o Bower, é um gerenciador de dependencias sensacional criado pelo time do twitter. Essas ferramentas vão dar bastante agilidade no seu desenvolvimento.
É isso ai pessoal, continuem aparecendo no retardevs que sempre vai ter conteúdo legal, e claro, mais sobre o FirefoxOS. 
0 notes
retardevs · 12 years ago
Video
youtube
Desenvolvendo aplicativos para iOS, minha palestra na Campus Party.
O repositório com a demo é esse: https://github.com/rafaelwinter/CPBRDemo
1 note · View note