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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Problemas ao instalar o PHP (10)
Descompactar arquivos winrar no linux (9)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (12)