Mostrando postagens com marcador Dicas. Mostrar todas as postagens

[TUTORIAL] How to easily convert Audible AAX files to MP3 on Linux

Easily convert Audible AAX files to MP3 on Linux: https://github.com/paladini/aax2mp3-easy


If you bought audiobooks from Audible and use Linux in your daily live, you're probably in bad hands: besides Audible web player, there's no client that you can run using Ubuntu or a Linux distribution. In order to listen to your Audible stuff you can use this Web Player, but what if you don't have Internet access in the moment? In this case the best thing you can do is convert your AAX files to MP3 files, allowing you to listen to your Audible stuff using any media player at any given moment.

So you're looking for a way to convert your Audible AAX files (.aax) to MP3 files (.mp3) on Linux? There's two programs and some Python dependencies that can make it for you: Audible Activator and AAXtoMP3. The problem is that you don't have a integration between these two softwares and for those who don't have knowledge with scripts, programming or even basic Linux, using these two softwares can be little challenging.

With this people in my mind, I've made a little script that allows you to easily convert Audible .aax files to .mp3. Just download a single script, run it with the correct parameters and it's done!

You can take a look in aax2mp3-easy here. There you can find some instructions on how to download, install and use aax2mp3-easy too. If you have any problem, feel free to contact me in Github or even using the blog comments.




How to use Robomongo to connect to MongoDB server running in a Docker container inside AWS EC2

Using Robomongo to connect to MongoDB server running in a Docker container inside AWS EC2

Recently I've meet the awesome Rocket.Chat and for internal reasons I need to access its database using Robomongo, a cross-plataform MongoDB client. The problem is that Rocket.Chat was running in a Docker container, it's MongoDB database was running in another Docker container, all running inside an Amazon Web Service (AWS) EC2 instance.

I thought that would be very hard to connect to my MongoDB database using Robomongo, but it was actually quite easy. In the following steps you'll discover how to use Robomongo to connect to a MongoDB database running in a Docker container inside an AWS EC2 instance.

1º Step) Discover your EC2 instance public IP and make sure you can access it through SSH. You can find your instance public IP from your EC2 Management Console:




2º Step) Discover the IP from Docker container running your MongoDB server / database. In order to do that, login to your AWS EC2 instance through SSH and then run:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' <YOUR_MONGODB_DOCKER_INSTANCE_NAME>
If you don't know your instance name, type "docker ps" and try to figure it out. In my case the instance name was "chat_db_1", so I run:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' chat_db_1
And it gives me:
[ec2-user@ chat]$ docker inspect --format '{{ .NetworkSettings.IPAddress }}' chat_db_1
172.17.0.2
From here we'll call this value by "MongoDB IP".

3º Step) Now that you have the public IP from your AWS EC2 instance and also the IP from the Docker container running MongoDB, open Robomongo and create a new connection filling the "Address" field with MongoDB IP and the "Port" field with 27017 (MongoDB default port):




Now go to the "SSH" tab and fill the fields with the following:

SSH Address: public IP from your AWS EC2 instance. Port 22.
SSH User Name: "ec2-user"
SSH Auth Method: select "Private Key".
Private Key: select the .pem file you use to access your EC2 instance through SSH.

Right now you should have the following:


4º Step) Done! Now you can visualize, edit and insert new data as you want.



If you have any questions or issues following this tutorial, let me know through the comments. Leave your comment if you liked it, too!

[Dica] Como evitar que o servidor / Dyno do Heroku durma?

[Dica] Como evitar que o servidor / Dyno do Heroku durma? - Fernando Paladini

Se você usa o plano gratuito do Heroku provavelmente sabe das suas limitações. A principal limitação do plano gratuito do Heroku é que muitas vezes o servidor / Dyno pode "dormir" ou "entrar em hibernação" se o seu site não tiver muitas visitas frequentes.

Resolver esse problema é muito simples - pelo menos atualmente - e não exige praticamente nenhum esforço seu. Tenho utilizado o serviço gratuito UpTime Robot e acredito que ele tem feito o seu trabalho muito bem.

O que ele faz é pingar os sites que você configura a cada 5 minutos (no plano gratuito, no pago pode ser em intervalos ainda menores). Caso você não saiba o que é pingar, é como se esse serviço acessa-se o seu site a cada 5 minutos. Por conseguinte, o seu Dyno no Heroku nunca vai entrar em estado de hibernação, pois tecnicamente ele está recebendo visitas. 

O Uptime Robot permite até 50 "monitores" que prometem pingar um site cada a cada 5 minutos no plano gratuito, o que é muito mais do que suficiente para não permitir que o servidor do Heroku hiberne - evitando assim vários constrangimentos para os usuários.

O que está esperando para cria sua conta no Uptime Robot, configurar o ping para seu site e evitar com que o seu site entre em estado de hibernação? É tudo muito simples e se você tiver alguma dúvida basta postar aqui nos comentários!

Fernando Paladini.

[Tip] How to compare strings or char pointers case insensitive in C++?

[Tip] How to compare strings or char pointers case insensitive in C++?

Do you want compare two strings or two char pointers case-insensitive using C++? Here's the most useful and intuitive form I have found to make this comparison.

This way you just need include a standard library for C++: that is, you don't need download anything nor create a new method. Below we'll see some quick examples of how to compare two strings or char pointers by case-insensitive in C++ - but I already must say: it's very simple.

Comparing strings:
#include <strings.h>
#include <string>

string var1 = "goal", var2 = "boal";
if (strcasecmp(var1.c_str(),var2.c_str()) == 0) {
    cout << "This will NOT print" << endl;
} else {
    cout << "This will print." << endl;
} 

Comparing char pointers:
#include <strings.h>

char* var1 = "goal", var2 = "boal";
if (strcasecmp(var1,var2) == 0) {
    cout << "This will NOT print" << endl;
} else {
    cout << "This will print." << endl;
} 

The comparision of equals 0 is needed because strcasecmp returns an integer, so if the returned integer is equals to zero, the chars / strings are equal. Any different value from zero indicates that the strings are different.
You can find the documentation here: http://man7.org/linux/man-pages/man3/strcasecmp.3.html

Thanks!
Fernando Paladini.

LaBitconf: o maior evento de Bitcoin da América Latina acontecerá no Brasil!

[Fernando Paladini] LaBitconf: o maior evento de Bitcoin da América Latina acontecerá no Brasil!

A LaBitconf ("Latin American Bitcoin Conference") é o maior evento de Bitcoin da América Latina e um dos maiores eventos do mundo sobre o assunto, isso é inegável. Em sua edição passada, na Argentina, foi um evento super elogiado e considerado por alguns o melhor evento de Bitcoin do ano. Este ano a LaBitconf 2014 retorna no final de Dezembro e para o espanto de todos ela será realizada no...Brasil! 

A Fundação Bitcoin Argentina (que está no país que possui o maior ecossistema de Bitcoin da América Latina) e a Fundação Bitcoin Brasil, organizadoras do evento, estão trazendo o evento para o Brasil com o objetivo fomentar o mercado nacional nessa área de moedas digitais, criptomoedas e tecnologias baseadas no Protocolo Bitcoin. 

[Fernando Paladini] LaBitconf: o maior evento de Bitcoin da América Latina acontecerá no Brasil!

O evento trará mais de 25 palestrantes internacionais de peso para o país, além de 10 palestrantes nacionais, tradução simultânea e temas de extrema importância para o Bitcoin no mundo, como regulação da moeda digital, mineração e impactos sociais que as criptomoedas podem causar. 

Entre os palestrantes estão: 

Jeff Garzik: desenvolvedor do núcleo do Bitcoin. Já colaborou em outros projetos open-source grandiosos como o kernel do Linux e o projeto Gnome.  

Ronaldo Lemos: líder de projetos da CreativeCommons no Brasil, professor de direito, diretor do Instituto Tecnologia e Sociedade do Rio de Janeiro; além de ser membro da Fundação Mozilla, Stellar e AccessNow.org. 

Nicolas Cary: CEO do Blockchain.info, um dos maiores sites-serviços de Bitcoin do mundo. 

Tony Gallippi: co-fundador e CEO do Bitpay, a startup que recebeu mais de US$30 milhões em investimento recentemente - o que a torna a maior startup de Bitcoin do mundo.

Para os interessados, o evento acontecerá nos dias 06 e 07 de Dezembro no Hotel Othon Palace, no Rio de Janeiro. A programação completa e demais informações do evento podem ser encontradas na página oficial da LaBitconf 2014.  


Fernando Paladini.

[DICA] Como desativar o 'Visualizada às' no Facebook

[DICA - Fernando Paladini] Como desativar o mensagem "Visualizada às" no Facebook

Um recurso que muita gente detestou quando o Facebook lançou foi o "Visualizada às", um pequeno texto no canto inferior do chat do Facebook que indica que determinada mensagem já foi vista pelo seu contato. 

Essa mensagem é prática quando se quer saber se determinada pessoa já leu uma mensagem e não respondeu, entretanto isso nem sempre é algo desejável. Bem, pelo menos não é desejável quando você não quer que saibam que você já leu uma mensagem e não respondeu.

Para esses casos existe uma extensão para o Mozilla Firefox / Google Chrome que "desabilita" esse recurso do Facebook. (Existe uma descrição mais técnica para quem quiser, mas não é muito difícil de imaginar o que essa extensão faz se você for desenvolvedor web).

Para baixar essa extensão salvadora chamada "Chat Undetected", clique aqui. Dúvidas podem ser tiradas nos comentários logo abaixo. 

Os melhores sites para saber em quem NÃO votar nessas eleições!

O ano de 2014 foi o primeiro ano em que votei em uma Eleição. Sim, este ano foi o meu primeiro ano escutando o barulhinho das duvidosas urnas eletrônicas brasileiras na hora de confirmar o voto. Como participei e defendi muito as manifestações das chamadas "Jornadas de Junho (2013)", achei necessário fazer o que todos chamam de voto consciente.

[Fernando Paladini] Os melhores sites para saber em quem NÃO votar nessas eleições!

Como já faz algum tempo que me interesso MUITO por política e economia, votar de forma consciênte não era uma opção, mas uma obrigação para mim mesmo. Acabei por preparar uma pequena lista de sites e serviços onde puderia conhecer mais sobre cada candidato e principalmente saber em quem eu NÃO queria votar.

Esses sites realmente me ajudaram muito na decisão dos candidatos (principalmente os primeiros da lista, que foram os mais importantes para mim), por isso decidi compartilhar por aqui. Espero que possam fazer um bom proveito.   

Saiba em quem NÃO votar nessas eleições:

Maior enciclopédia sobre políticos brasileiros:
 
http://repolitica.com.br

Ranking dos políticos brasileiros:
 
http://www.politicos.org.br/

Conheça todos os candidatos e suas propostas básicas:
 
http://www.eleicoes2014.com.br/

Saiba qual candidato despejou mais "lixo político" nas ruas do país:
 
http://lixopolitico.com/

Descubra qual deputado federal combina mais com você:
 
http://www.votoaberto.com.br/extratoparlamentar/index.php

Estatísticas detalhadas dos gastos de deputados federais e senadores:
 
http://www.farejadordoplanalto.com.br/politicos?locale=pt_br

Veja o ranking dos partidos que mais acionaram a Justiça (negativamente):
 
http://www.eleicaotransparente.com.br

Lista de todas as candidaturas do Brasil no site do TSE:
 
http://www.tse.jus.br/eleicoes/eleicoes-2014/sistema-de-divulgacao-de-candidaturas

Bom, acho que essa já é uma boa lista. Se conhecerem outros sites ou tiverem sugestões para a lista é só avisar pelos comentários!

Obrigado,
Fernando Paladini.

[Tutorial] Como ativar o clique no botão do meio (scroll) do mouse no Fedora / Ubuntu / Gnome

Você é um dos que está totalmente acostumado a utilizar o "clique no botão do meio do mouse" para algumas tarefas simples, como abrir links em outras abas, colar conteúdo copiado e fechar abas do navegador? 

Se sim, conhece o grande problema que é não ter essa ferramenta disponível no seu dia-a-dia, o custo que é para se adaptar. Se você não consegue utilizar o "clique no scroll do mouse" no seu Fedora, Ubuntu ou qualquer outra DISTRO que tenha como interface o Gnome, saiba que aqui você vai encontrar a solução.

Depois de muito pesquisar na Internet, achei uma solução simples que precisa de apenas uma linha de comando no Terminal. O comando a seguir deve ativar o clique no botão do meio do mouse.  Abra o seu Terminal (Ctrl + Alt + T) e digite o seguinte comando:

gsettings set org.gnome.settings-daemon.peripherals.mouse middle-button-enabled true

 Espero que isso tenha solucionado o seu problema, caso não, sinta-se à vontade para perguntar nos comentários. Se te ajudou, também deixe um comentário de incentivo :) 

Obrigado!

[Tutorial] How to install the unaccent extension for PostgreSQL 9.3

[Fernando Paladini] [Tutorial] How to install the unaccent extension for Postgresql 9.3

Sometimes you need to "unaccent" words, phrases or long texts, but how can you do that using a database? PostgreSQL, the "world's most advanced open source database" provide a nice solution to this common problem: the unaccent extension. 

Our point is not to show you how to use the unaccent extension, but how to install it. If you already know how to install this extension, you can read the official documentation of unaccent extension here

If you're receiving one of these errors:

ERROR: could not open extension control file "/usr/share/postgresql/9.1/extension/unaccent.control": No such file or directory
ERROR: could not open extension control file "/usr/share/postgresql/9.3/extension/unaccent.control": No such file or directory
This tutorial is for you. Now let's solve this thing once. 

How to install unaccent extension for PostgreSQL 9.3:

Ubuntu / Debian:
sudo apt-get install postgresql-contrib
Fedora:
yum install postgresql-contrib
CentOS:
sudo yum install postgres*contrib
I hope this solves your problem. If this not helps, please let me know through the comments below. Otherwise, I'm waiting for feedback in the comments too :)

Thanks!

[Tutorial] Instalar Afinador de Violão e Guitarra no Ubuntu 14.04

[Tutorial] Instalar Afinador de Violão e Guitarra no Ubuntu 14.04

Você toca algum instrumento como Violão e Guitarra e está com problemas para achar um afinador para Ubuntu? Neste pequeno tutorial pretendo mostrar como instalar um ótimo afinador para violão e guitarra no seu Ubuntu, seja o Ubuntu 14.04 LTS ou anteriores. 

Vou ensinar você a instalar o Lingot, um dos afinadores de violão e guitarra mais usados no Ubuntu. Será bem rápido e simples, para instalar basta abrir o seu terminal (Ctrl + Alt + T) e então digite o seguinte: 

sudo apt-get install lingot

Pressione a tecla "Enter" e então apenas insira sua senha e aguarde a instalação ser concluída. Depois disso basta abrir o aplicativo no seu Dashboard (lembrando, o programa se chama "Lingot") e ser feliz com o seu violão afinado!


[Tutorial] Lingot, um afinador de Violão e Guitarra para Ubuntu

Espero que aproveite o seu novo afinador e antes que eu me esqueça, boas cifras!

Um tutorial de Dublin Core para iniciantes

[Fernando Paladini] Um guia-tutorial de Dublin Core para iniciantes

Recentemente falei sobre SEO e as meta tags Dublin Core, mas sinto que deixei muita coisa para trás, então hoje vim me redimir.

Acabei de criar um guia tutorial para iniciantes em SEO e Dublin Core. Nesse guia, chamado de "Dublin Core Basics: The Beginners Guide", ou apenas "Dublin Core: O Guia dos Iniciantes", explico o que é, para que serve e como funciona a Iniciativa de Metadados Dublin Core. 

Se você gostaria de aprender o básico de Dublin Core e não sabe por onde começar, aqui está um ótimo começo - totalmente gratuito e voltado para iniciantes. O guia mostra uma introdução simples ao DC (Dublin Core) e já está disponível em Português e em Inglês.

Para variar, é um projeto open-source. Sinta-se a vontade para dar qualquer feedback.

O que significa 'FOSS' no mundo da informática?

[Fernando Paladini] O que significa "FOSS" no mundo da informática?
Se você é uma pessoa muito ativa no mundo da informática, talvez já tenha se deparado alguma vez com o termo "FOSS". Confesso que a primeira vez que ouvi esse termo não fazia menor ideia do que hora, mas uma rápida pesquisa no Google me levou a resposta.

 "FOSS" é um termo muito usado na informática e principalmente na área de desenvolvimento de software. "FOSS" é uma sigla para "Free and Open-Source Software", traduzindo para o bom português, "Software livre e de código aberto". 

Caso você não saiba exatamente o que isso significa, vamos por partes:
Software: é um programa de computador, site, aplicativo - como você já deve saber.
Livre: nesse contexto, livre quer dizer gratuito para usar e copiar o software.
Código aberto: significa dizer que qualquer um tem permissão para visualizar, modificar e distribuir o código-fonte desse programa.

Espero que tenha ajudado na sua busca por uma definição concisa de FOSS. Caso queira algo mais elaborado, dê uma olhada nesse artigo da Wikipedia

SEO e as meta tags Dublin Core

[Fernando Paladini] SEO e as meta tags Dublin Core

Já faz algum tempo que gosto de me envolver e pesquisar sobre SEO - Search Engine Optimization -, é sem dúvida um campo de estudo muito legal. Recentemente (mas não muito), descobri um outro tipo de Meta Tags, meta tags que iam além dos simples name="description" e name="robots" (meta tags padrão) e dos mais complexos "og:title" (Open Graph - Facebook).

Conheci as meta tags Dublin Core, um conjunto de meta tags não muito conhecido mas ainda muito válido. Dublin Core "é um esquema de metadados que visa descrever objetos digitais, tais como, videos, sons, imagens, textos e sites na web.", segundo a Wikipédia. 

Abaixo, temos um exemplo de código das tags Dublin Core:
<meta name="DC.Title" content="Título">
<meta name="DC.Creator" content="Criador do conteúdo">
<meta name="DC.Subject" content="Assunto (tag)">
<meta name="DC.Description" content="Descrição">
<meta name="DC.Publisher" content="Publicador">
<meta name="DC.Contributor" content="Contribuidor">
<meta name="DC.Date" content="2014-02">
<meta name="DC.Language" content="en">
Agora uma aplicação real em um projeto meu, o "The History of Bitcoin":
<meta name="DC.Title" content="The History of Bitcoin, by Fernando Paladini">
<meta name="DC.Creator" content="Fernando Paladini">
<meta name="DC.Subject" content="Bitcoin">
<meta name="DC.Subject" content="History">
<meta name="DC.Subject" content="BTC">
<meta name="DC.Subject" content="Timeline">
<meta name="DC.Description" content="Discover the history of Bitcoin in an animated timeline.">
<meta name="DC.Publisher" content="Fernando Paladini">
<meta name="DC.Contributor" content="Fernando Paladini">
<meta name="DC.Date" content="2014-02">
<meta name="DC.Language" content="en">
Como você viu, é possível adicionar mais de uma vez a mesma meta tag, caso seja necessário. Vou criar um outro post especificamente para explicar de cada um desses campos, e enquanto isso não acontece, use esse Gerador de Tags Dublin Core.

Se quiser saber mais, fique a vontade para ler o site do projeto Dublin Core.

[Tutorial - Rails] Converter objetos para Script SQL

[Tutorial - Rails] Converter objetos Ruby para Script SQL de banco de dados (inserção)

Esses dias estava com um problema pois queria transformar objetos Ruby em scripts de inserção SQL. Sim, aqueles famosos "INSERT INTO ...". Encontrei uma "gem" chamada "models-to-sql", mas para minha infelicidade ela não suportava Ruby on Rails 4. 

Entrei em contato com o autor e este não se mostrou interessado em continuar dando suporte a gem. Como eu realmente precisava dela, dei um fork em seu projeto e descobri como portar ela para Rails 4. Mudei seu nome para "models-to-sql-rails" e você pode encontrar o repositório no Github.

Com o "models-to-sql-rails" você consegue facilmente converter objetos e array de objetos Ruby em scripts de inserção de banco de dados (em SQL). Se você precisa disso e quer uma solução fácil eu recomendo: baixe agora o "models-to-sql-rails"!

Telegram: o rival open-source e totalmente seguro do Whatsapp

[Fernando Paladini] Telegram: o rival open-source e totalmente seguro do Whatsapp

Você já ouviu falar em Telegram? Provável que não, mas se já: meus parabéns! O Telegram é um incrível projeto open-source que disputa de igual para igual com o gigante Whatsapp. É um serviço de mensagens totalmente gratuito, open-source e rápido que usa um sistema avançado de criptografia e auto-destruição de mensagens, garantindo segurança e privacidade total aos usuários.

O aplicativo está disponível para Android e iPhone, podendo ser baixado aqui. O app funciona como qualquer outro do estilo Whatsapp, portanto usá-lo não deve ser uma tarefa difícil. Confira abaixo algumas imagens do incrível app:

[Fernando Paladini] Telegram, a alternativa muito mais segura ao Whatsapp

[Fernando Paladini] Tela do Telegram, uma alternativa gratuita e segura ao Whatsapp


[Fernando Paladini] Tela do Telegram, um app estilo Whatsapp, mas muito melhor

Para se ter uma ideia de quão seguro é o protocolo de segurança do Telegram, os desenvolvedores criaram uma competição que dará US$200.000 dólares em Bitcoin para o hacker que conseguir decifrar uma mensagem específica. O desafio ainda está de pé, vai até o dia 1 de Março e até o momento nenhum hacker conseguiu vencer o desafio. 

Está esperando o que para baixar?

Lime, uma incrível alternativa open-source ao Sublime Text

[Fernando Paladini] Lime, uma incrível alternativa open-source ao Sublime Text

Se você é um programador e usa algum sistema operacional Unix, provavelmente já ouviu falar do famoso Sublime Text, o "editor de texto que você vai se apaixonar".

Sem dúvida é um dos melhores editores de texto existentes, mas muitos usuários se queixam que seu desenvolvimento não é aberto a comunidade e isso o torna um software que não atende as necessidades de quem o usa. Para resolver isso e para a felicidade dos amantes do software livre, aqui temos uma incrível alternativa ao Sublime: Lime
[Fernando Paladini] Lime, uma incrível alternativa open-source ao Sublime Text
O projeto foi desenvolvido na linguagem do Google, a Golang e é totalmente open-source. Está esperando o que?



Por Fernando Paladini.

[DICA] Leia mais, leia muito mais utilizando uma lista de livros lidos


Aqui vai uma boa dica para os leitores de plantão. 

Eu comecei a ler livros há não muito tempo atrás, aproximadamente dois anos, no máximo três. Mas não tardou muito para que eu percebesse um problema: eu queria ler muitos livros, mas eu não tinha como ler todos, mesmo querendo ler dezenas de milhares de títulos. 

Assim como todo leitor, fico triste por não ler todos os títulos que desejo (como começou a universidade, tenho lido menos ainda os livros de meu interesse), mas uma dica que me ajudou muito na época que comecei a ler foi: faça uma lista dos seus livros lidos. Sério, isso ajuda muito nas leituras pois você pode controlar quantos livros leu em determinado período de quanto tempo. O que é mais interessante, é que sem forçar, você percebe que a sua média de livros lidos por mês vai aumentando, assim como a qualidade deles. 


Para fazer a sua lista de livros lidos, ter um controle melhor do que anda lendo e o que é melhor, um histórico dos seus livros lidos, crie um documento em qualquer editor de texto. Nele você deve colocar o ano, em fonte grande, centralizado, e logo após ele os livros lidos, de fonte padrão. Uma coisa interessante a se fazer é colocar os livros em ordem decrescente, ou seja, os últimos livros lidos são os primeiros da lista deste ano. 

Essa é apenas uma sugestão, seja criativo, crie o seu próprio arquivo de controle - mas não seja muito rigoroso, isso cria burocracia, e burocracia não é legal


Recentemente eu perdi a minha principal conta do Google (perdi muito coisa, inclusive um site grande e um blog pessoal), e junto com ela o meu arquivo de controle de livros lidos se foi. Mas eu consegui me lembrar de parte dos títulos que li, então se você quiser dar uma olhada na minha lista e se basear nela para fazer a sua, clique aqui