Desligando o computador quando acabarem as músicas na sua lista de reprodução do MPD
O título é autoexplicativo. Sobre o "#!/usr/bin/env bash", podemos quebrar em duas partes: O sheebang é a forma padrão de especificar que um certo arquivo é um script. O "/usr/bin/env" tem um artigo na Wikipédia só para ele ( https://pt.wikipedia.org/wiki/Env ) e várias perguntas/respostas no StackOverflow. O comando grep é usado para filtrar a saída do comando mpc. A opção "-F" tem o mesmo efeito do comando fgrep, mas é preferível devido a recomendação da manpage, "Direct invocation as either egrep or fgrep is deprecated". A opção "-q" é usada por questões de desempenho. Como só estamos interessados em saber se o padrão "playing" está presente ou não, não faz sentido imprimir as ocorrências e, também, não faz sentido continuar a busca após descobrir que a ocorrência existe. Além do desempenho, nós realmente não queremos que a saída seja impressa. A opção "-s" é usada para suprimir mensagens de erro. Algumas pessoas gostam também de especificar a opção "-o", para instruir o grep a só imprimir o padrão que foi pesquisado, mas é inútil dada que a opção "-q" foi utilizada. Talvez seja útil como uma garantia maior em ambientes diferentes que usam implementações diferentes do bash, mas já utilizamos comportamento específico do grep GNU de qualquer forma (consulte a manpage). O comando ":" é o comando que não faz nada (se não acredita, consulte "help :") e é usado, porque a construção while exige um corpo. Poderia ser substituído por "sleep 1", para não ficar consumindo processamento da CPU o tempo todo, mas como meu PC é um quad-core e esse script exige poucos recursos, não me importei com isso. Também poderia ser substituído por "mpc current -w", que faria o trabalho de esperar a música atual acabar, mas isso pode criar uma race condition não desejada. Por último, temos o já conhecido comando "shutdown -h now", que hoje em dia poderia (algo desnecessário) ser substituído por "systemctl halt".
Por: Vinícius dos Santos Oliveira
Sequência fibonacci com 35 linhas e for
Após dias sem abrir o arquivo-apostila eu continuei a ler e vendo o comando "for". Então tive a idéia de fazer um programa para calcular a sequência fibonacci. Você digita quantos números quer ver e a sequência fica limitada apenas pelo computador.
Por: Vinícius dos Santos Oliveira
Mini-editor de texto intuitivo em ncurses
Editor de textos simples feito em ncurses que tem as funções de abrir, salvar e pesquisar. Usa uma lista duplamente encadeada para manipular o texto e o ncurses para a interface (getch e printw) com o usuário.
Por: Vinícius dos Santos Oliveira
Biblioteca estática para manipulação de pilhas
Precisei fazer uma biblioteca de manipulação de pilhas em C, então estou compartilhando (GPL) ela. Ela manipula pilhas (aqui chega a 32768) de todos os tipos (é só modificar um typedef). Ela usa comentários estilo doxygen. Stack_id minha_pilha = stack_new(); a = stack_pop(minha_pilha);
Por: Vinícius dos Santos Oliveira
Ordenar sequência de números
Este script em C organiza sequências de números de forma crescente ou decrescente. Finalmente comecei a me divertir escrevendo códigos-fonte interessantes. A sequência pode ter quantos elementos o usuário quiser para o mesmo código-fonte, estando limitado apenas pelo computador. São 48 linhas que usam "for, do...while, vetores, etc".
Por: Vinícius dos Santos Oliveira
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Criando uma VPC na AWS via CLI
Multifuncional HP imprime mas não digitaliza
Dica básica para escrever um Artigo.
Como Exibir Imagens Aleatórias no Neofetch para Personalizar seu Terminal
Função que recebe 20 números inteiros e retorna o 6° maior elemento do... (3)
Partição e erro fatal do disco (9)
Pfsense com Squidguard transparente bloqueando Skype (0)