Crivo de Eratóstenes Simples em Ada 95
A linguagem de programação Ada foi assim denominada em homenagem à Condessa Ada Lovelace (1815 — 1852), filha do poeta, maconheiro e revolucionário inglês Lord Byron (1788 — 1824). Ada Lovelace foi a primeira programadora da história, colaborando com os cálculos da máquina analítica de Charles Babbage. A máquina analítica é uma espécie de computador mecânico. Também chamada de máquina das diferenças, pois calculava diferenças de polinômios programados. Como disse em outra oportunidade, Ada possui semelhanças com Pascal. Na verdade foi implementada com base em Pascal e algumas outras linguagens como Simula, COBOL e BASIC. Mais tarde adquiriu elementos de C++ e Java. É um sonho de padronização de uma linguagem universal. Ada é uma linguagem de programação estruturada, com tipagem estática, imperativa, orientada a objetos, de alto nível, orientada à escalonamento de sistemas de tempo real e com suporte à programação de threads (programação paralela). Foi criada pelo Departamento de Defesa dos EUA (DoD) para substituir outras centenas de linguagens usadas por lá. Existe até uma implementação chamada de A# (A Sharp) para a plataforma .Net. Exemplos de quem usa ou usou Ada: sistema de bordo de aviões a Boeing e da Embraer, transporte metroferroviário de algumas capitais europeias, alguns projetos científicos da NASA. A maior parte das afirmações está esparsa pela internet. Há muito ainda para se dizer. Voltando ao programa, algumas semelhanças com Pascal: * Operador de atribuição := * Operador de igualdade lógica = * Operadores Lógicos, exceto o de diferente * Cálculo de resto de divisão * Conectores lógicos Comentários no programa começam por um duplo hífen no começo da linha. Após isto, o programa começa com uma invocação de módulos (melhor chamados de packages) nas cláusulas With e Use. Como são usadas expressões com tipo de dados inteiro e ponto flutuante, com funções do sistema, são chamados os módulos para os mesmos. A declaração de variáveis e arrays devem ser feitas antes do Begin da procedure principal do programa. O operador de diferente é expresso de uma forma curiosa. Ao invés de != (como em C) ou <> (como em Pascal) é expresso por /= que em C teria um significado bem diverso do apresentado. É possível converter tipos de dados como entre Integer e Float, de modo semelhante ao type casting de C++. Sendo Integer(X) e Float(Y) respectivamente uma conversão para tipos Integer e Float. Aparentemente não existem funções de incremento e decremento de valores numéricos. Posições de arrays são marcadas entre parêntesis. Podem existir arrays multidimensionais separando os índices por vírgulas, dentro do mesmo par de parêntesis. Existem três tipos de laços (loops) neste programa com as seguintes estruturas: While (...) Loop Exit When (...) End Loop; For (...) in <reverse> (...) Loop Exit When (...) End Loop; Loop Exit When (...) End Loop; O primeiro laço é condicional, um while simples, como aparece na maioria das linguagens. A diferença é a cláusula Exit When. O segundo é um for que percorre um conjunto, que pode ser um vetor ou uma sequência de números demarcados por pontos, como por exemplo 1..10, que vai de 1 a 10. Pode ainda ter em opcional a cláusula Reverse, que faz os itens do conjunto serem percorridos do fim para o começo. Novamente aparece a cláusula Exit When. O terceiro comeca apenas com a palavra Loop e encerra com a expressão End Loop. Seria apenas um laço perpétuo se não estivessem com a cláusula Exit When entre eles. A cláusula Exit When (...) serve para sair do laço caso a expressão lógica que vem após When seja verdadeira. A estrutura condicional If assemelha-se à do Pascal, com uma leve diferença no fechamento do bloco. Segue If ... Then ... <Elsif> ... <Else> End If. Com Elsif e Else sendo opcionais caso a lógica do programa necessite. A função Put() serve para a escrita de dados como a função Write do Pascal. E a mudança de linha se dá com a função New_Line. As duas combinadas tem o mesmo efeito da função WriteLn do Pascal.
Por: Perfil removido
Conversor de áudio para PS4
Quem tem PS4 sabe que o Media Player dele é bem fraco, e não lê mp4 com áudio em mp3, mas esse script vai converter só o áudio para acc, mantendo o vídeo intacto.
Por: Lucca Biagi
Converter arquivo em PDF e enviar por e-mail pelo terminal
Script para converter arquivo em PDF e enviar por e-mail pelo terminal. Programas usados: Enscript, ps2pdf e sendEmail. Tudo foi feito em um CentOS 6.7 minimal: http://mirror.centos.org/centos/6.7/isos/ http://centos.ufes.br/6.7/isos/i386/CentOS-6.7-i386-minimal.iso Requisitos: Desabilitar o SELinux: https://wiki.hackstore.com.br/Desabilitando_SELinux_na_fam%C3%ADlia_de_distros_baseado_em_RedHat_(RHEL,_CentOS,_Fedora) # vim /etc/sysconfig/selinux Mude isso: SELINUX=enforcing Para isso: SELINUX=disabled Atualizar o sistema: # yum -y update Instalar o Enscript e o ps2pdf: # yum install enscript ghostscript Instalar o sendEmail: http://caspian.dotconf.net/menu/Software/SendEmail/ # yum -y install wget # wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz # tar -zxvf sendEmail-v1.56.tar.gz # cp -a sendEmail-v1.56/sendEmail /usr/local/bin # chmod +x /usr/local/bin/sendEmail # yum install perl.x86_64 perl-Net-SSLeay perl-IO-Socket-SSL O pacote perl.x86_64 é importante porque se trata do interpretador Perl. Já os pacotes perl-Net-SSLeay e perl-IO-Socket-SSL dão suporte a TLS (Transport Layer Security). Referência: http://mytracelog.blogspot.com.br/2011/11/enviando-email-pelo-terminal-com.html Para um melhor aproveitamento o script deve ser copiado na pasta /usr/local/bin e dada permissões de execução: # chmod +x /usr/local/bin/geraPDF No terminal utilize desta forma: # geraPDF arquivo_desejado.txt email_para@ser_enviado.com.br
Por: Daniel Gusmão
Cálculo da Aplicação Financeira
Foi pedido por um colega no fórum, fiz o script e optei por colocar aqui, assim mais pessoas podem visualizar/utilizar. Bastante simples, informe o valor, taxa de juros e período. É mostrado uma "tabela" com o reajuste mensal.
Por: Marcelo Oliver
VMware - Linux HotAdd CPU/Memória
Script que permite a adição de vCPU e memória em VMs Linux sem reinício da VM. * É preciso que a opção HotAdd esteja habilitada. Deixe o script agendado para rodar no cron a cada 1 minuto. Com isso basta acrescentar vCPU ou memória à maquina e no máximo 1 minuto depois os novos recursos já estarão disponíveis. Exemplo de /etc/crontab: */1 * * * * root PATH/script.sh
Por: Edson Rosa dos Santos Júnior
Busca string em arquivos
Recebe como input o diretório e a string desejada e faz uma busca recursiva em todos os arquivos do diretório.
Por: Bmsantos
Crivo de Eratóstenes Simples em XBase (Clipper)
Atenção: código Clipper em Caixa Alta é Nostálgico! Esta é uma homenagem a uma linguagem que foi extremamente popular no Brasil durante a segunda metade dos anos 80 e a primeira metade dos anos 90. Alguns chamam-na de Clipper. Outros de XBase. Tudo começou com um sistema de banco de dados chamado dBase. Ele possuía uma sintaxe de operações mais simples que SQL. Vinha também com uma linguagem de programação embutida, que permitia criar interfaces modo texto de uma forma absurdamente simples e era extremamente satisfatório para as atividades em MS-DOS. A coisa toda era feita geralmente com um programa multiuso chamado Sidekick. Ele vinha com editor de texto, tabela ASCII, calculadora e outras firulas. Ele tinha uma característica peculiar, chamada de programa que termina e fica na memória. Através das teclas <Ctrl>+<Alt> ,o programa era chamado e utilizado seu editor. Com outro uso das teclas, ele voltava para a memória. Com isto não era necessário usar Wordstar. Vale lembrar que esse programa usava um truque divulgado por uns livros na época. Na era da multitarefa isto é dispensável. Ou mesmo no Unix, com seus comandos bg e fg. É por isto que me espanto em comparar MS-DOS dos anos 80/90 com o que Unix fornece. Para melhorar a performance dos programas feitos para dBase, dois amigos tiveram a ideia de escrever um compilador usando programação em C e Assembly. Resolveram chamar-lhe de Clipper. Uma coisa que chamou a atenção é que cada versão lançada vinha com o nome da estação do ano da época. Logo chamaram-nas de Clipper Winter '85, Clipper Autumn '86 e a popular Clipper Summer '87. Tenho até hoje um livro comprado à época, detalhando esta versão. Quem se lembra do Antonio Vidal? Continuando, após a versão de 1987, Clipper deu uma salto para ser independente da plataforma dBase, que se não me engano teve as versões 1, 2, 3 (a mais popular tida por muitos como a melhor, chamada dBase III Plus) e a 4. Clipper deslanchou com versões 5.0, 5.0.X, 5.1, 5.2, 5.3 ... Clipper funcionava, por exemplo, em um disquete onde vinha o próprio compilador, um linkeditor (que podia ser o Plink, o Tlink ou o Rtlink) e livrarias de código nomeadas como CLIPPER.LIB e EXTEND.LIB. Ainda havia uma coisa chamada overlay que era uma quebra de partes do programa compilado por causa da memória da máquina ser muito pequena. Overlays eram lidas de cada vez para não comprometer a memória. Falamos de algo da época dos 386 e 486. Pentium? Ainda não... Uma coisa cultural da época eram os sistemas de fluxo de caixa feitos em Clipper. O lugar mais icônico de sistemas Clipper eram as videolocadoras. E lugares bons de se encontrar sisteminhas Clipper à venda prontos eram em bancas de jornal. Houve algumas empresas negociando a marca Clipper na jogada, com interesses comerciais diversos, como a Oracle, por exemplo, de olho em migrar as bases de dados para seu carro-chefe. Clipper foi passado de mão em mão até seus compiladores perderem poder comercial. Nantucket, Borland, Computer Associates etc. Por volta de 1998, 1999 (?) houve um programador da Usenet que teve a ideia de criar um compilador do tipo do Clipper só que no modelo Open Source (quem conhece uma historinha parecida? Usenet... compartilhar códigos... etc.) e o projeto foi para frente. Chama-se Harbour. Harbour é um jogo de palavras com Clipper. Clipper é um veleiro rápido e Harbour é porto. Ainda surgiram alguns projetos, como o xHarbour, que me pareceu extremamente ambicioso e que tentou ser um fork do Harbour só que bem mais comercial. Da última vez que li algo, parece que tiveram muitos problemas entre eles. E o Harbour continuou firme e forte sem puxão de tapete. Também teve o Clip, projeto russo. Abandonado. O código aqui exposto mostra os rudimentos básicos da linguagem (como todo código de crivo bem o faz). Ainda existem funções e procedimentos inimaginados como @ ...TO ... e @ ... BOX ... que dadas as coordenadas, desenham molduras na tela. @ ... SAY e @ ... GET ... PICTURE ... que também com coordenadas, exibem texto e recebem dados em formato de formulário, navegando pela tela com as setas. As funções SAVESCREEN() e RESTSCREEN() ,que salvavam e restauravam respectivamente em/de variáveis partes da tela e que através de manipulação de dados das cores da tela nas variáveis faziam efeitos de sombra na tela, como o Dialog o faz. E funções incríveis como a DBEDIT() que permitia navegação completa pela base de dados. Links: - O básico * https://pt.wikipedia.org/wiki/Clipper_(linguagem_de_programa%C3%A7%C3%A3o) * https://en.wikipedia.org/wiki/Clipper_(programming_language) * https://es.wikipedia.org/wiki/Clipper_(lenguaje_de_programaci%C3%B3n) - Abandonwares * http://vetusware.com/download/dBASE%20III%20PLUS%203/?id=4877 * http://vetusware.com/download/Clipper%20Autumn%2086%20Autumn%2086/?id=7260 * http://vetusware.com/download/Clipper%20Summer87/?id=8144 * http://vetusware.com/download/CA-Clipper%205.3b%20Intl/?id=8460 Essas acima são boas para se testar no DOSBOX, DOSEMU ou no WINE como comando de DOS - Artigos do VOL * https://www.vivaolinux.com.br/artigo/Clip-no-Slackware-(compilador-Clipper) * https://www.vivaolinux.com.br/artigo/Compilador-Clipper-opensource-compile-sem-problemas-os-sistemas-.PRG-no-Linux/ - Site do Harbour * https://harbour.github.io/index.html - Site do xHarbour * http://www.xharbour.org/ - Páginas brasileiras * http://www.vagucs.com.br/ * http://www.pctoledo.com.br/ Agora quanto ao programa: A partir da versão 5.0 veio uma enxurrada de comandos e operadores que deixou o Clipper/XBase mais parecido com C. O sinal de igual simples nativo em Summer '87 ganhou os dois pontos, ficando semelhante à atribuição em Pascal. E o sinal de diferente é <>. Comentários podem ser feitos como em C, com duas barras // ou barra e asterisco abre e fecha /* ... */ Para declarar uma matriz (array) com alocação dinâmica usa-se a sintaxe PRIMES := {} de modo simples. O comando AADD(VAR,VALOR) cria uma nova posição ao final do array VAR e coloca VALOR como conteúdo desta posição. Laços while são escritos como DO WHILE e encerrados com ENDDO, tudo junto. A estrutura IF segue um modelo semelhante: IF ... ELSEIF ... ELSE ... ENDIF. No código ELSEIF não aparece. O comando SQRT() calcula a raiz quadrada de um dado número. O comando INT() trunca as casas decimais de um número não-inteiro e assim retorna um inteiro. Índices de matrizes usam colchetes. Há operador de incremento como em C, como por exemplo VAR++ ou VAR+=3. Os valores e operadores lógicos aparentemente vieram do Fortran. Para verdadeiro e falso usa-se .T. e .F., para negação, e e ou usa-se .NOT, .AND. e .OR., respectivamente. A operação de módulo, ou resto de divisão, é feita com a função MOD(A,B), onde A é o dividendo e B é o divisor, retornando o resto da divisão. Laço FOR é feito com uma contagem em uma variável e ao final do laço é escrito NEXT junto com o nome da variável. O comando ? imprime uma mensagem na tela com quebra de linha. É semelhante a um comando chamado PRINT, mas usa-se ? para abreviação. O comando ?? faz o mesmo sem quebra de linha. Uma sequência de ?? imprimirá mensagens na mesma linha. A função STR() converte um número em string alfanumérica. Isto é feito para se concatenar com aquele espaço em branco entre aspas que aparece no código. A função TRIM() serve para remover espaços em branco do lado esquerdo e direito de uma string. Por algum motivo não funciona neste exemplo. O operador + presente ao final do código serve como concatenador de strings.
Por: Perfil removido
Instalar Tor Browser
Script bem simples que facilita a instalação do Tor Browser no Linux.
Por: Lucas Alves Santos
Instalação Completa e Configuração Básica do Void Linux
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Samba 4 AD-DC 2026: Backup & Restore
Samba 4 AD-DC 2026: LAPS (Randomizando senhas locais).
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Linus Torvalds e Bill Gates se encontram pela primeira vez (3)
Não consigo instalar as bibliotecas em Python pelo terminal. (2)









