Como alterar o sistema para usar a versão mais atual do interpretador Python no Linux.

Muitos sistemas operacionais atuais, vem com mais de uma versão do interpretador da linguagem Python instaladas e prontas para usar.
A versão padrão é normalmente a mais segura a ser utilizada e, provavelmente, não é a mais atual disponibilizada na sua instalação.
É possível ver quais as versões do interpretador instaladas digitando “python” na linha de comando e pressionando TAB, em seguida, para autocompletar.
Você pode também pedir a versão do interpretador padrão diretamente:

python --version

Python 2.7.12

Outro meio, é listar as versões disponíveis no diretório de programas:

ls -lah --color /usr/bin/python*

Na minha listagem, é possível notar que python, python2 são links, que apontam para o interpretador python2.7.

lrwxrwxrwx 1 root root    9 Jun  3 11:39 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root    9 Jun  3 11:39 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 3,4M Jun 29 09:20 /usr/bin/python2.7
lrwxrwxrwx 1 root root    9 Jun  3 11:41 /usr/bin/python3 -> python3.5
-rwxr-xr-x 2 root root 4,3M Jul  5 11:20 /usr/bin/python3.5
-rwxr-xr-x 2 root root 4,3M Jul  5 11:20 /usr/bin/python3.5m
lrwxrwxrwx 1 root root   10 Jun  3 11:41 /usr/bin/python3m -> python3.5m

Isto quer dizer que, no meu sistema, ao digitar ‘python’ na linha de comando, o link irá me direcionar para o interpretador do Python 2.7.
Se você tiver as cores corretamente configuradas no seu sistema, os links estarão diferenciados dos binários.
python links default interpreter
Alterar o binário para o qual o link ‘python’ aponta é fácil, como você talvez já tenha percebido — mas não é seguro e nem recomendado.
O problema é que há algumas incompatibilidades entre as versões.
Alguns aplicativos importantes no seu sistema dependem da versão anterior e se referem a ela apenas como ‘python’.
Se você alterar o link, para que ele passe a apontar para a versão mais atual do interpretador, poderá acabar com um sistema quebrado.

O modo seguro de resolver

Muitos usuários querem executar seus scripts, da linha de comando, digitando apenas ‘python’ — e desejam que o interpretador executado seja o mais atual (3.5, por exemplo).
A documentação oficial (links no final do texto) recomenda alterar as variáveis específicas de cada perfil de usuário.
Esta solução resolve o seu problema, sem causar interferências no seu sistema.
Alternativamente, faça referência à versão do Python desejada dentro do seu script.
Vamos conhecer, a seguir, os detalhes de cada solução, de acordo com as sugestões das comunidades de desenvolvedores.

Use o alias para redefinir as suas preferências

Com o comando alias, é possível (re)atribuir qualquer comando ou conjunto de comandos a uma palavra ou “alias“.
Esta solução é simples e não interfere nas configurações do sistema:

### verifique a versão do interpretador python
python -V
Python 2.7.12
alias python=python3
### verifique a versão do interpretador python
python -V
Python 3.5.2

Se preferir, pode se referir ao nome completo do binário, deste jeito:

alias=/usr/bin/python3.5
### verifique a versão do interpretador python
python --version
Python 3.5.2

Este ajuste só terá validade durante a sessão atual. Se abrir outro terminal, o sistema voltará ao seu padrão.
Esta solução, permite que você use uma versão do interpretador em um terminal e outra versão em outro. Veja a figura abaixo.
python vrsions
Para tornar esta configuração persistente, adicione esta linha de comando ao arquivo ~/.bash_aliases ou ao ~/.bashrc:

### fazer backup, antes de alterar arquivos de configuração
cp .bash_aliases .bash_aliases.backup
### O operador '>>' adiciona uma linha ao arquivo. 
echo "alias python=/usr/bin/python3.5" >> .bash_aliases

Com este procedimento, daqui pra frente, novas sessões do seu usuário, apontarão para a versão do interpretador que você escolheu.

Indique dentro do script qual a versão do Python a ser usada

Esta outra solução é simples e, também, totalmente inofensiva para seu sistema.
Consiste em indicar dentro de cada script a versão do interpretador a ser usada.
Acrescente, na primeira linha, o código:

#!/usr/bin/env python3

ou

#!/usr/bin/python3

O env é mais adequado para uso misto em ambientes virtuais.

Referências

Há outras soluções relatadas, nos artigos e nos comentários, nos links que seguem.
As que testei e funcionaram para mim, estão descritas acima e, portanto, são as únicas que endosso. Elas também têm a vantagem de poder ser facilmente desfeitas.

http://askubuntu.com/questions/320996/make-default-python-command-to-use-python-3.
https://linuxconfig.org/how-to-change-from-default-to-alternative-python-version-on-debian-linux.

Como testar se seu hardware tem suporte a hibernação, suspensão ou suspensão-híbrida

A hibernação é um recurso que pode causar perda de dados em sistemas de hardware que não estejam preparados para ele ou que não sigam padrões abertos.
Felizmente, o Ubuntu e o Debian dispõem de ferramentas para testar a compatibilidade do seu hardware com os utilitários que aplicam estes recursos.
Não esqueça de conferir, ao final do texto, alguns links para artigos sobre hibernação, suspensão e suspensão-híbrida — há coisas interessantes, lá! 😉
ubuntu desligar hibernar
Um dos utilitários que fazem o teste é o pm-is-supported e faz parte do pacote de ferramentas pm-utils.
Por exemplo, para testar se seu sistema tem suporte a hibernação, use o comando assim:

pm-is-supported --hibernate

Não se preocupe se não vir resultado algum.
O fato é que o utilitário foi feito para ser usado dentro de scripts.
Para montar um script bem simples de testes, abra um terminal e crie um arquivo com o nome hibteste.sh (claro que você pode usar outro nome… ).
A seguir cole o seguinte texto dentro dele:

#!/bin/bash

if pm-is-supported --hibernate;
        then
        echo 'sim';
        else
        echo 'não';
fi

Em seguida, torne o arquivo executável e rode-o:

chmod +x hibteste.sh
./hibteste.sh

Agora, sim. Você não vai ficar sem resposta.
script pm-is-supported
O utilitário pm-is-supported pode ser usado com outros parâmetros:

  1. --suspend — para verificar se há suporte a suspensão do sistema.
  2. --suspend-hybrid — para verificar se há suporte a suspensão-híbrida do sistema.

Ele vai retornar 0 (para recurso disponível) ou 1 (para recurso não disponível).
Este artigo é um spin-off do Como habilitar a opção de hibernação no Ubuntu, onde o teste é necessário.

Referências

  1. Quais as diferenças entre Suspender, Hibernar e Suspender-híbrido? — https://elias.praciano.com/2014/09/suspender-ou-hibernar/.
  2. Como configurar o laptop para hibernar ou suspender, quando fechar a tampa? — https://elias.praciano.com/2015/11/como-configurar-o-notebook-para-suspender-ou-hibernar-quando-fechar-a-tampa-no-debian-e-ubuntu/.
  3. Como ativar a opção Hibernar no menu do Ubuntu? — https://elias.praciano.com/2016/04/como-habilitar-a-opcao-de-hibernacao-no-ubuntu/.
  4. Como ativar a opção suspend-sedation? — https://elias.praciano.com/2015/11/como-configurar-o-sistema-para-o-estado-suspend-sedation/.

Como verificar erros nas queries MySQL dentro de scripts PHP

Veja como adicionar código para verificar e apontar erros nas suas queries, dentro dos seus scripts PHP.
Até conseguir fazer um programa começar a funcionar direito, há um processo — por vezes, longo — de testes e depuração.
computador exibindo erro no mysql
Você pode testar as queries no MySQL e usá-las dentro do script apenas quando estiverem tendo o comportamento esperado, conforme mostrei aqui.
Adicionalmente, você pode antecipar os problemas, fazendo a verificação de erros durante a execução do script — o que facilita o seu trabalho.
É fácil incluir código de verificação de erros no PHP (bem como na maioria das outras linguagens de programação).
Neste post, vou usar parte do código de conexão/desconexão ao servidor MySQL, descrito neste artigo —. Portanto, se você ainda for iniciante e quiser entender melhor o seu funcionamento, dê uma olhadinha lá.
Os códigos de checagem vão ajudar você a descobrir onde estão os erros nos seus scripts e a corrigi-los.

Como lidar com erros nas queries MySQL, no PHP

No PHP, para obter informações mais específicas sobre operações relacionadas ao MySQL que fracassaram, use mysql_error() e mysql_errno():

  • mysql_errno() — retorna o código numérico do erro, de maneira que você possa consultar um manual para entender melhor o que houve.
  • mysql_error() — retorna uma descrição padrão do erro.

Ambas as funções podem receber um identificador (opcional), referente à conexão sobre a qual devem dar informações. Se você não quiser usar o identificador, elas irão retornar informações sobre a última conexão, como procedimento padrão.
Veja, em destaque, abaixo, um exemplo de uso:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Página de conexão ao banco de dados</title>
</head>

<body>
<?php # conecta.php - conecta ao servidor MySQL
echo "tentando uma conexão... <br />";
if (!($con = @mysql_connect ("localhost", "lobinho", "lupus43")))
    die("Não foi possível conectar: ".mysql_errno()." - ".mysql_error());
print ("Conexão bem sucedida <br />");
if (!@mysql_select_db ("tutorial", $con))
    die ("Não foi possível selecionar o banco de dados <br />");
mysql_close ($con);
print ("Conexão terminada <br />");
?>
</body>
</html>

No código, acima, usei um username e senha propositadamente incorretos (para obter um erro de conexão).
O resultado, no navegador é esse:

tentando uma conexão...
Não foi possível conectar: 1045 - Access denied for user 'lobinho'@'localhost' (using password: YES)

Após a minha mensagem “Não foi possível conectar”, a função mysql_errno() fornece o número do erro 1045 e a função mysql_error() fornece a descrição do erro “Acesso negado ao usuário lobinho… ”
Isto já é suficiente para eu saber onde meu erro se encontra e ir lá corrigir meu código.

mensagem de erro do MySQL - funções mysql_errno e mysql_error()
Clique, para ampliar.

O que vimos, neste post, é apenas um esboço do que pode ser feito com as funções de tratamento de erro PHP/MySQL. Use sempre estas funções para, entre outras coisas, informar os usuários com suas próprias mensagens customizadas sobre o que ocorreu ao acessar o banco de dados.

Como afinar seu violão com Linux

É possível reproduzir os tons de cada corda, para afinar o seu violão, com apenas uma linha de comando, no Linux.
Quem tem um computador, pode, se quiser, usar um programa específico para este fim. Mas usar estas linhas de comando tem a vantagem de não ocupar espaço algum — além do fato de que traz a oportunidade de aprender um pouco mais sobre Linux, shell scripting, Bash… em uma curta e divertida brincadeira.
Cordas de um violão

O que precisa estar instalado no Linux

Para conseguir ter sucesso na execução desta instrução é preciso ter o pacote do SoX instalado no seu sistema.
Quem usa Ubuntu, Linux Mint ou qualquer outra distro baseada no Debian, pode instalar o SoX com o comando apt-get:

sudo apt-get install sox

Quem usa Fedora ou outra distro baseada no Red Hat, pode usar o comando yum:

yum install sox

O SoX é o canivete suíço dos utilitários de processamento de som. Ele pode converter arquivos de áudio para outros tipos de arquivos populares e, ainda, lhes aplicar efeitos sonoros enquanto faz a conversão.

Como produzir as notas das cordas de um violão na linha de comando do Linux

A dica foi revelada pelo @climagic e consiste no uso de alguns utilitários e comandos Linux — nada que ocupe mais do que uma linha de comando. 😉
Abra um terminal e execute o seguinte código:

n=('' E4 B3 G3 D3 A2 E2);while read -n1 -p 'string? ' i;do case $i in [1-6]) play -n synth pl ${n[$i]} fade 0 1 ;; *) echo;break;;esac;done

Ao executar o código, o sistema irá pedir para que você forneça um número de 1 a 6, correspondente à corda do violão. Qualquer outro valor, terminará o processo.

comando para produzir sons com o SoX
Clique para ampliar.

Se você tem a intenção de usar mais vezes este código, insira-o em um script.
Abra o seu editor de textos favorito e digite:

#! /bin/bash
# Script para auxiliar a afinar violão
n=('' E4 B3 G3 D3 A2 E2);
while read -n1 -p 'string? ' i;
	do case $i in [1-6])
		play -n synth pl ${n[$i]} fade 0 1 ;; *) echo;
		break;;
	esac;
done

Não se esqueça de tornar o script executável. Caso ele se chame afinar.sh, faça assim:

chmod +x afinar.sh

Agora, ele já pode ser executado:

./afinar.sh
string?

Divirta-se!

Referências:
Página oficial do SoX: http://sourceforge.net/projects/sox/

Monte um pequeno script BASH para listar, selecionar e tocar músicas no Linux.

O comando SELECT, combinado com o aplicativo mpg123, pode facilmente criar um mp3 player que te permita escolher as músicas que deseja tocar em um diretório.
O objetivo deste curto tutorial é dar um exemplo prático, simples e funcional do uso destas duas ferramentas, além de ajudar a aprender um pouco mais de Linux ou Unix, enquanto você se diverte.

comando selecto e mpg123 para escolher músicas mp3
Clique, para ampliar.

O que você precisa ter instalado no seu sistema

Tudo o que você precisa instalar é um pequeno aplicativo de leitura de arquivos mp3, chamado >mpg123.
Se você ainda não o tiver ou não souber como instalá-lo, leia aqui sobre como fazer isto.
Se você preferir, pode também baixar o código fonte e compilar o mpg123 (é muito fácil).
Como o comando select já faz parte do Bash, não há mais nada a ser adicionado ou instalado.

Como montar um script para selecionar as músicas

Todo o processo pode ser resumido em uma linha de comando, conforme nos ensina o @climagic:


Para que ele funcione, é necessário estar dentro do diretório em que se encontram os seus arquivos mp3:

select mus in *.mp3; do mpg123 "$mus"; done # Player de multipla escolha

Ao dar Enter, as músicas existentes no diretório atual serão exibidas e o comando select esperará que você digite o número da música desejada (na primeira coluna à esquerda):

 1) 01 - Queen - Another One Bites the Dust.mp3
 2) 02 - Blondie - Call Me.mp3
 3) 03 - J. Geils Band - Centerfold.mp3

...

16) 16 - The B-52's - Private Idaho.mp3
17) 17 - The Blasters - Marie Marie.mp3
18) 18 - The Boomtown Rats - I Don't Like Mondays.mp3
19) 19 - Squeeze - Tempted.mp3
20) 20 - Bob Marley and the Wailers - Redemption Song.mp3
#? 

Simples, assim.
Para sair, sem selecionar nada, basta pressionar Ctrl + C.

Monte um script para executar arquivos mp3

Se você incluir o código em um script, pode desfrutar de um pouco mais de comodidade.
Abra o seu editor favorito e inclua o código lá dentro:

#! /bin/bash
# Player mp3 de múltipla escolha
select mus in *.mp3;
do mpg123 "$mus";
done

Grave-o com o nome de toca.sh (ou outro nome de sua preferência) e mude a permissão do arquivo para executável.

chmod +x toca.sh

Agora, é possível executá-lo:

./toca.sh

Se quiser ter um pouco mais de comodidade, crie um diretório apenas para seus scripts, e coloque-o lá dentro para ser usado de qualquer lugar do seu sistema.
Veja como:

mkdir bin
mv toca.sh bin/
export PATH="~/bin:$PATH"

Com o procedimento, acima, é possível executar o toca.sh de qualquer pasta no seu sistema.
Experimente.
Tem alguma dica, para melhorar o script? Compartilhe conosco nos comentários. 😉