terça-feira, 25 de agosto de 2015

Dica rápida: Acessar repositórios do git na rede local no Docker


Bem, antes de começar a postagem. Estou um tanto atrasado com postagens aqui, estou escrevendo uma postagem longa, mas vou demorar um pouco pra terminar. Então, vou jogar pequenas dicas aqui conforme os problemas que eu for encontrando no serviço. Assim resolvo meus problemas e o de mais alguém que estiver na mesma situação.

O problema

Ao tentar usar o git clone para baixar um repositório na rede interna dentro de um container docker recebi este belo erro:
ssh: Could not resolve hostname git.internal: Name or service not known
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

quarta-feira, 1 de julho de 2015

Lista de cursos MOOC

Uma postagem mais simples pra dar um sinal de vida. Estes dias minhas coluna não estava muito feliz. Acabei tendo que deixar de lado vários cursos, meus projetos ficaram um bocado parados para que eu pudesse ficar quietinho descansando enquanto a coluna melhora. Ainda não melhorou de tudo e estou no pc além do horário do serviço de teimoso. Mas falei que o Legauss estava voltando a ativa e ele vai voltar a ativa. Estou escrevendo devagar, mas tenho algumas postagens em andamento.

Bem, a postagem de hoje não é bem minha. É uma lista de cursos MOOC que postaram no grupo de programadores Python do facebook e está fazendo um bocado de sucesso. Como o facebook não é um bom lugar para guardar informações, vou deixar a lista aqui. É uma lista muito boa e razoavelmente extensa. Dificilmente não vai ter algo de seu interesse aí.

Ah! Pra quem não sabe o que é MOOC é uma sigla que significa Massive Open Online Courses. Traduzida como Curso Online Aberto e Massivo. Ou seja, dizer curso MOOC é mais ou menos como dizer curso curso. Mas está valendo. Todos os créditos vão para Renato Fabri e a postagem original se encontrava aqui quando postei. Só fiz algumas correções de digitação e removi algumas anotações pessoais dele.

"PS. um curso de ~8 semanas em geral dá para ser visto em 1-3 dias assistindo com concentração. Os conteúdos em geral são
surpreendentemente bons, em geral melhores que cursos de pós graduação (ao menos dos que vi, em geral de exatas). Em geral, dá para acompanhar sem conhecimento prévio. Nos próprios cursos de escrita científica (e de negócios parece) avisam que video tem dominado.
"

quinta-feira, 14 de maio de 2015

Wordpress - Trabalho direto com o banco de dados

Em 2013 trabalhei em um projeto que consistia de migrar o conteúdo de um sistema feito em Xoops para WordPress.
Não sou um grande entendido de ambos, por isso, releve se eu falar besteira.

O Xoops conheci bem pouco, mas pareceu ser um CMS bem prático que permite até um completo leigo construir um site razoável. Porém, a versão que o cliente usava (não lembro qual era exatamente) tinha várias falhas de segurança já descobertas - nem preciso falar que estavam fazendo a festa no servidor dele - e não dava pra atualizar. Haviam customizações em vários pacotes e não dava para "simplesmente" atualizar o Xoops para uma versão mais nova (no caso da versão dele, atualizar direto não funcionava direito). Então o cliente preferiu migrar tudo para outra ferramenta fácil de usar e customizável. O escolhido foi o WordPress. Que é um projeto muito maior, mais estável, com muito mais suporte e tudo mais.

quarta-feira, 13 de maio de 2015

O retorno da salsicha

"Que a salsicha esteja com você"
Olá a todos! O nome da postagem é só por ter lembrado do filme mesmo.

Pra quem achava que o blog tinha morrido - e tinha mesmo - vou tentar ressuscitá-lo postando todos os rascunhos de postagens que deixei por fazer/terminar. São mais de 100 postagens, fora um volume grande de dados que deixei guardado no meu computador e nos meus favoritos. Algumas, como a que vou postar logo depois desta aqui, por serem coisas que fiz faz mais de dois anos, podem faltar explicações por não me lembrar mais como fiz tudo. Mas, serve como um norte né?


sábado, 20 de abril de 2013

Pandoc

Pandoc é um conversor universal de documentos disponível em Linux, Windows, Mac, etc. Você pode escrever um documento em sua linguagem favorita: markdown, reStructuredText, textile, HTML, DocBook, LaTeX, ou MediaWiki markup e converter automaticamente para quase qualquer formato que quiser.

Atualmente estou usando para escrever meus posts. Eu escrevi esse post em markdown e o converti para HTML usando o Pandoc. Copiei o colei o fonte no blogger, depois fiz uns pequenos ajustes.

Por que eu faço isso? Bem, primeiro que nem sempre consigo tempo para ficar escrevendo direto no blogger. Escrever HTML diretamente é chato, trabalhoso e te deixa muito suscetível a erros. Escrever somente o texto do post, gera um trabalho grande depois de inserir os links e formatações necessárias.

sexta-feira, 19 de abril de 2013

Dica para o fim de semana - Worms Revolution

Até domingo você pode jogar de graça via Steam o jogo mais recente de uma das franquias de jogos mais divertidas, o Worms Revolution. Além disso o jogo também está com 50% de desconto, saindo por R$ 12,49 uma cópia ou R$ 37,49 pelo pacote com quatro cópias (aproximadamente R$ 9,38 cada cópia).

Esse novo jogo traz algumas novidades interessantes como a presença de água nas fases (você pode arrebentar uma parede e afogar alguém), apesar do jogo ainda ser em plataforma 2D os gráficos estão um pouco mais 3D e as minhocas agora estão divididas em classes e não são mais todas iguais.

A física do jogo foi melhorada e como no jogo anterior chapéus! Além de outros acessórios para personalizar suas minhocas. Dentre vários outros acessórios. O jogo conta com uma campanha single player para você que quer jogar sozinho e, como sempre, batalhas contra seus amigos num mesmo computador ou online.

Não dói jogar de graça então instale e divirta-se esse fim de semana, e se a experiência foi boa um 4-pack sempre vale a pena.

quinta-feira, 18 de abril de 2013

Gerenciador de contas inativas

Vamos falar de algo sério agora. O que acontece com a sua vida online quando você abandona uma conta? Talvez porque você tenha se cansado, esquecido ou mesmo morrido.

Pensando nisso, a Google disponibilizou um serviço (já faz um tempinho, eu sou lento para escrever posts) que permite você dizer o que fazer com a sua conta caso você nunca mais entre nela.

Primeiro você cadastra o seu celular (vai que você está vivo) para que o sistema te avise com um mês de antecedência que a sua conta será cancelada.

Então você define o período durante o qual não houve nenhum acesso a sua conta e ela pode ser considerada inativa. Esse período vai de três meses a um ano.

Depois você pode definir uma resposta automática para os emails que chegarem para essa conta e, o mais importante, pode escrever emails a pessoas de confiança que serão enviados quando a conta se tornar inativa. Além desse email você também pode compartilhar alguns dados da sua conta do Google (quase como um testamento).

Por fim, ao invés de disponibilizar os seus dados à pessoas de confiança, você pode escolher simplesmente apagar toda a sua conta, isso inclui email, youtube, blogger, enfim, todos os serviços do Google que você utiliza.

Por que acredito que isso seja importante? Bom, para começar, você para quem não sabe que a sua conta não é mais utilizada, continuaria te enviando emails e te xingando por nunca responder. Você continuaria aparecendo nas redes sociais e em resultados de busca. Alguém mal intencionado poderia se apoderar da sua conta, roubar seus dados, e/ou se passar por você.

Sua vida na internet é tão importante quando a sua vida no mundo real e deve-se cuidar dela tão bem quanto.

sábado, 30 de março de 2013

Sobre RSS e a morte do Google Reader

A situação é a seguinte: A google anunciou que vai abandonar o Google Reader (GR) junto com outros produtos menos conhecidos. Mas o que é o GR? O GR é um agregador de notícias na nuvem. Você registra sites e blogs e o GR coleta as últimas notícias e postagens e exibe para você no seu navegador ou celular. Como ele fica na nuvem  você possui uma visão única do seu conteúdo, ou seja, você pode começar a ver as notícias de manhã pelo seu celular e continuar pelo navegador quando chegar ao trabalho e terminar vendo no seu computador a noite. O GR se preocupa em sumir com o que você já leu e apresentar só as notícias não lidas. Além disso, o GR também permite aos usuários compartilhar essas notícias.

Por que matar o GR?

De acordo com a Google, eles estão sem planos para o produto, como o GR é um leitor de RSS, não é possível aplicar o modelo de negócios da Google (propagandas) de forma adequada. O GR também se transformou em uma rede social e isso não estava nos planos (talvez isso ameace um pouco o Google+), e como o GR, apesar de muito utilizado, não atingiu a escala mínima de usuários que o Google acha justificável (que é gigantesca) para ter uma equipe técnica alocada (leia mais aqui), então, resolveram cancelar o projeto.

Existe alguma alternativa ao GR?

Desde que surgiu a notícia da morte do GR, andei procurando alternativas e devo dizer que fiquei muito satisfeito. Eu estava acomodado com o GR, pois era integrado ao Google e fazia o que eu queria de forma minimalista.

Agora encontrei o Feedly e com ele temos:
  1. Importação automática de todos os feeds do GR;
  2. Armazenamento online dos feeds de forma que podem ser acessados via web;
  3. Plugins para Firefox e Chrome (Estou sendo omisso de propósito com o IE e o Safari, fica a dica);
  4. Interface bem construída, confortável de usar e bonita de se ver;
  5. Aplicativos para Android e iOS;
  6. Compartilhamento por email e nas principais redes sociais (Google+, Twitter, Facebook, etc)
Mesmo se as petições no change.org para que a Gogole não mate o GR, acredito que vou ficar com o Feedly. Poder ler meus feeds do PC de casa, trabalho e smarthphone sem esforço é muito bom, e fazer isso em uma interface legal é melhor ainda.

RSS

Como o LeGauss também é cultura, vamos falar um pouco mais sobre RSS.

O RSS (Really Simple Syndication), ou também 'RSS feed', 'webfeed' ou 'Atom', é um arquivo de texto, em formato XML, que descreve as novidades em um site ou blog. Normalmente, ele é gerado e atualizado automaticamente pelo site assim que surge algo novo. Ele contém informações a respeito das últimas postagens, contendo título, um resumo, um link para o artigo, comentários sobre o artigo postado pelos outros leitores do blog e algumas outras informações extras que não valem a pena de serem mencionadas.

Você passa o endereço desse arquivo para o seu leitor RSS e ele fica responsável por verificar, de tempos em tempos, quais as últimas notícias, o que você já leu, compartilhar o que você mais gostou e etc. Todo o esquema é inteligente o suficiente para que, para alguns sites, basta que você passe o endereço do site para o leitor de RSS que ele acha o arquivo RSS para você (viva a padronização) e cadastra o feed de notícias.

Os leitores do LeGauss podem adicionar o este maravilhoso blog em seu feed de noticias (se ainda nõa fizeram, claro) através do botão no lado direito (->) na caixa intitulada "Use seu leitor de RSS para nos seguir!". Se você já instalou o Feedly e clicar nesse botão e escolher a opção "Atom" ele vai abrir o blog no Feedly automaticamente e, a partir daí, é só apertar o botão +add no topo. Você também pode simplesmente passar o endereço do legauss para o Feedly e deixar ele se virar.

Fica a dica para o feriadão, grandes jogos com 75% de desconto...

Somente neste final de semana, dois grandes jogos com 75% de desconto no Steam.

Hitman: Absolution (R$ 17,49)


Jogo mais recente da série Hitman, novamente você joga como o famoso agente 47, assassino profissional. Não vou entrar em detalhes da história para não estragar o jogo, mas basta dizer que coisas deram muito errado e agora 47 é um agente renegado enfrentando um mundo de inimigos.

Em questão de gameplay, esse jogo traz diversas mudanças que podem agradar ou não os fãs antigos da série. A mais importante é como as fazes são apresentadas ao jogador. Nas versões anteriores, os mapas eram enormes e você era livre para explorar e observar, aprender rotas, descobrir formas de causar acidentes, e etc. Agora as fases são menores e mais lineares, porém ainda mantém o resto: explorar, observar e memorizar. Com isso, o jogador está livre para experimentar mais e poder re-jogar apenas partes específicas dos mapas. Você acaba jogando em uma mesma parte diversas vezes, em busca de conquistas, pontos ou apenas observar o que acontece se você fizer aquilo diferente.

Um ponto negativo dessa nova versão é que foi retirado o planejamento antes da missão, você não mais escolhe com quais armas começar e estuda os mapas e objetivos. Isso faz sentido dentro do jogo (lembre que você agora é um agente renegado) mas é um pouco triste.

Outra adição muito bem vinda é um pseudo modo multiplayer. Jogadores podem criar contratos e disponibilizar isso para outros jogadores para que possam competir por pontos. Um contrato é algo como: Na fase A matar os inimigos B1 e B2 com a arma C em D minutos sem ser visto e vestido como uma galinha. Sim, você pode colocar restrições nos contratos como com qual disfarce o jogador deve estar na hora de matar o alvo.

Em suma, Hitman: Absolution é um grande jogo e por R$ 17,49 é garantia de horas de diversão e consciência limpa por ter gastado tão pouco em um jogo tão bom! 

Grand Theft Auto IV: Complete Edition (R$ 11,24)


Você é um russo mau encarado tentando uma nova vida nos Estados Unidos. Você veio a convite de seu irmão, que já estava morando nos EUA faz um tempo e se gabava de uma boa vida. Ao chegar, descobre que tudo é uma mentira e ainda por cima descobre-se envolvido com a máfia russa.

Esse é o mesmo famigerado GTA de sempre. Você é livre para andar pela cidade fazendo o que bem entende, arrumando muita confusão, fugindo da polícia e, de vez em quando, parando para fazer as missões da história principal e avançando o jogo um pouco.

Os gráficos e a mecânica do jogo evoluíram bastante mas não há muito o que se falar, GTA é sempre GTA, muito divertido, mas dirigir pela cidade sempre cansa um pouco (odeio trânsito, mesmo que virtual). Mas por esse preço, vale muito a pena!

sexta-feira, 29 de março de 2013

Compre grandes jogos por preços incríveis e ainda ajude crianças e outras pessoas

Boas novas no mundo dos jogos. Dois novos The Humble Bundle estão no ar.
Para quem não sabe, o The Humble Bundle é uma coleção de jogos, que normalmente são excelentes, em que você paga o quanto quiser (a partir de um dólar americano) e escolhe como o dinheiro será usando: se doado para caridade ou indo direto para o criador do jogo. Normalmente, a maior parta da venda dos jogos vai para as empresas que publicam e não para os desenvolvedores. Você pode pagar usando tanto o Google Wallet quanto o Paypal e recebe um link para baixar os jogos, sem DRM para instalar onde e quando bem entender, sem as normais restrições. No caso dos jogos da THQ, também são fornecidas chaves para você adicionar os jogos na sua conta do Steam.

Sobre os jogos nesses bundles vale a pena destacar a Franquia do Darksiders (jogos 1 e 2) que são jogos excelentes de aventura, com uma história interessante e um gameplay fantástico. Já o bundle para Android conta com o famoso Plants vs Zombies, Metal Slug 3 e Anomaly Korea, além de muitos outros. No caso dos jogos de Android, o The Humble Bundle conta com um aplicativo próprio que gerencia todos os jogos já comprados por você e permite que você baixe e instale seus jogos facilmente.

Dentre as instituições ajudadas pelo The Humble Bundle estão a Child's Play que, através dos jogos eletrônicos, tenta melhorar a vida de crianças em hospitais, a Red Cross (Cruz Vermelha), que dispensa qualquer apresentação e a The Electronic Frontier Foundation que é uma organização que briga pelos direitos das pessoas no mundo digital.

Recapitulando, excelentes jogos, excelente preço e caridade, tudo num lugar só. Só cuidado que essas campanhas possuem um prazo de validade, corram e aproveitem!

quarta-feira, 27 de março de 2013

Django - Processadores de contexto

Sempre que vamos processar um template por meio de uma view precisamos especificar diversas variáveis em todas as views. Por exemplo, é uma boa prática especificar as urls completas nos templates ao invés de só o caminho relativo. Para isso, precisaríamos recuperar o endereço base do seu site em todas as views manualmente. Ou então, dados processados relativos ao usuário atual. Teríamos que, na melhor das hipóteses, chamar um mesmo método em todas as views. Não seria muito mais fácil especificar isso uma vez só e o django carregar isso como valores "globais" em suas views? Pois bem, é exatamente isso que os processadores de contexto fazem.

Os processadores de contexto te permitem especificar diversas variáveis que são definidas automaticamente em todos os contextos automaticamente - sem precisar ficar as especificando em cada chamada ao método render_to_response(). Mesmo que os valores armazenados por essas variáveis necessitem ser processados para serem gerados, ou recuperados de um banco de dados.


terça-feira, 26 de março de 2013

Django admin: inlines obrigatórios

Um problema recorrente nos projetos em que trabalhei com Django foi tornar inlines obrigatórios no admin. Fiz diversas gambiarras, conforme a situação,  para tentar resolver isso, mas nunca havia encontrado uma forma satisfatória de resolver esse problema, até agora. Pois sabemos como os usuários são: você avisa que se não fizer de tal modo vai dar problema. O que acontece? Eles ignoram, isso causa um monte de problema e, claro, no final nós desenvolvedores somos os culpados. Enfim.

Depois de bastante tempo de procura, acabei caindo nesta discussão sobre o assunto que me levou a um snippet, um fragmento de código, que resolve o problema. O código a seguir foi obtido aqui. Ele altera o comportamento padrão da classe BaseInlineFormSet que é usada pelo admin para montar seus formulários, fazendo com que obrigue o usuário a salvar ao menos um inline.

segunda-feira, 25 de março de 2013

Dica rápida: Como obter o IP a partir de uma URL

Qualquer coisa online tem um endereço IP associado, seja um computador extra poderoso ou uma calculadora, eles terão endereços associados para poderem se comunicar. Assim como cada um de nós tem um nome, um rg, um cpf, etc para nos identificar unicamente no mundo.

Bem, para que não tenhamos que lembrar esses endereços para navegar na internet foram criados os servidores DNS. Estes servidores fazem a tradução de uma url como http://www.legauss.blogspot.com.br para o IP 74.125.234.235. O primeiro é muito mais simples para nós, mas os computadores não o entendem. Só entendem o segundo.

quarta-feira, 13 de março de 2013

Dica rápida: Como remover entidades HTML no MySQL?

Trabalhando com uma migração me deparei com o problema de ter de substituir entidades HTML por seus respectivos caracteres. Melhor ainda se fossem removidos acentos e caracteres especiais, pois esse valor é usado para gerar links permanentes.

domingo, 10 de março de 2013

Como gerar sitemaps a partir dos modelos do Django

Antes de qualquer coisa, o que é um sitemap?

É um formato de arquivo XML, definido aqui, que possui links para as páginas do seu site. Seu objetivo é facilitar o trabalho dos crawlers (bots de sistemas de busca que varrem os sites para indexação de conteúdo). Um dos critérios principais que todo crawler usa é não dar muita relevância para páginas muito profundas do seu site, ou melhor, páginas em que o usuário deve clicar em muitos links para chegar. Para essas páginas o sitemap é especialmente importante, pois ele ajuda a dar uma relevância muito maior a essas páginas, que poderiam ser consideradas pouco significantes para o crawler.

Sitemaps também facilitam muito o trabalho dos crawlers, os quais vão poder indexar um volume grande de páginas de seu site rapidamente, pois não vão precisar ficar varrendo página por página em busca de links. Porém, para sites muito grandes é aconselhável fazer múltiplos sitemaps, divididos em seções, para que não haja muitos links em uma página.