Anterior Proxima

Script de compilação automática do GCC-5.3.0 para Debian/Ubuntu de 32 bits

Script de compilação automática do GCC para Ubuntu, Debian, Mint, Trisquel 12.04+ de 32 bits. Ele baixa e instala todas as dependências e compiladores automaticamente. Como executar: $ time sudo bash scriptgcc-5.3.0_32BITS.sh Pagina do projeto: https://sourceforge.net/projects/scriptkernel/files/?source=navbar

Por: Mário RPG


Compilação do kernel linux-libre 4.4.6 com cflags -march=native + -Ofast

Script em bash para compilação automática do kernel Linux-libre 4.4.6 no Ubuntu/Debian/Mint/Trisquel 32/64 bits para PC/notebooks que tenham no mínimo 2 GB de memória RAM. Ele baixa e compila tudo automaticamente usando "CFLAGS -MARCH=NATIVE + Ofast", só sendo necessário escolher a arquitetura exata do seu processador no menuconfig. Como executar no terminal: $ time sudo bash scriptkernel-libre-4.4.6.sh Página do projeto: http://sourceforge.net/projects/scriptkernel/

Por: Mário RPG


duplex_record: mixando áudio do microfone e saída de áudio de um programa via P

Clicadores e servos da Canonical, aqui começa mais um Script do Dino® trazendo para todos vocês mais uma loucura qualquer do tempo em que os dinossauros eram vivos e o Sílvio Santos vendia o Carnê do Baú para eles. No Script de hoje, vamos aprender como mixar o áudio do microfone com a saída de áudio de um programa via PulseAudio. Mixagem é o procedimento pelo qual dois canais de áudio distintos se transformam em um único. Assim, com este Script você pode mixar o áudio do microfone com a saída de um outro programa (por exemplo, o VLC) e enviar a mixagem para um outro programa (seguindo o exemplo, enviar a mixagem pelo Hangouts para que um amigo possa escutar uma música que você esteja a reproduzir localmente). COMO USAR Usage duplex_record [-c | -C | -L | -h | -v ] [ -m arg ] [ -l arg ] Options -c Required: create two virtual sinks -C Required: delete virtual sink. Ignores -m and -l options -m arg Optional: name virtual mic sink (default: Mic) "arg" must be a single-word, no quotes, no special characters, string -l arg Optional: name virtual line sink, (default: Line) "arg" must be a single-word, no quotes, no special characters, string -L Show GPLv3 licence abstract, ignores -m and -l options -h Show this help, ignores -m and -l options -v Show version and changelog info, ignores -m and -l options In case -c, -C, -L, -h or -v being issued at same time, only the last one will be considered</div> Escrevi em inglês porque isso pode ser útil não apenas para nós, Brasileiros. COMO FUNCIONA O Script do Dino® cria dois sumidouros virtuais (nomes padrão: Virtual_Mic e Virtual_Line), liga o monitor do segundo sumidouro virtual ao sumidouro padrão e ao primeiro sumidouro virtual via loopback, e então liga o primeiro sumidouro ao sumidouro padrão por loopback. Na prática, isso traça o seguinte mapa de áudio: Microfone (l) Saída de áudio de um programa ------> segundo sumidouro virtual (m)> primeiro sumidouro virtual (m)> sumidouro padrão Legenda: (l)> redirecionamento por loopback (m)> redirecionamento pelo monitor O truque aqui reside no uso sagaz e maroto dos monitores e dos loopbacks de sumidouros. O monitor é um canal do sumidouro que permite que ele seja escutado por outro sumidouro (monitorado é o termo certo). Já o loopback é um canal do sumidouro que permite a gravação da saída de áudio daquele sumidouro. Com este Script do Dino®, a saída do microfone padrão é enviado via loopback pro primeiro sumidouro virtual. Quando o programa é instruído a usar o segundo sumidouro virtual como sua saída de áudio (via pavucontrol), envia-se o loopback do monitor tanto para a saída padrão de áudio (para permitir que você escute o que está sendo reproduzido) quanto para o primeiro sumidouro virtual. Assim, o primeiro sumidouro virtual recebe ao mesmo tempo o microfone e o segundo sumidouro virtual. Para direcionar o resultado dessa mixagem para algum programa que aceite entrada de áudio (desde o Audacity até o Google Hangouts), basta apenas configurar, via pavucontrol, o programa que receberá o áudio para usar o monitor do primeiro sumidouro virtual (o PulseAudio não permite gravação direta de sumidouros virtuais).

Por: Luís Fernando C. Cavalheiro


Separando seu código em módulos no Perl

Hoje vamos ver como separar nosso código para que a gente possa agrupar vários métodos comuns em um mesmo módulo, facilitando assim a manutenção, refatoração e reaproveitamento dos códigos dos nossos scripts. O MÓDULO - Módulos, assim como as classes no Perl, são nomeados através de package (namespace) - Os módulos Perl podem ter a API no estilo procedural ou orientada a objetos - metacpan.org/pod/Exporter permite que seus subs seja chamados sem a necessidade de usar o namespace O módulo que veremos abaixo serve apenas como introdução e é diferente dos módulos que são publicados no CPAN (cpan.org) por diversas questões técnicas. Meu intuito aqui foi introduzir o leitor ao reaproveitamento dos seus códigos e ao princípio de uso de módulos para tornar seu trabalho mais profissional, organizado e para gerar curiosidade sobre a colaboração de códigos em Perl. Você pode construir módulos com qualquer finalidade, porém quando estiver desenvolvendo em Perl, dê uma passadinha no CPAN e procure pelo modulo que você esta precisando para saber se ninguém já implementou algo parecido e que atenda as suas necessidades. PRÉ-REQUISITOS - perl 5.10 ou superior REFERÊNCIAS http://perldoc.perl.org/perlmodstyle.html https://en.wikipedia.org/wiki/Perl_module EXECUTANDO $ perl module.pl

Por: Daniel Vinciguerra


Scalar - Alguns dos usos mais comuns deste tipo de variável do Perl

Perl possui alguns tipos de variáveis muito interessantes cujos principais são representados por $ para scalares, @ para arrays e % para arrays associativos ou hashtables. O tipo mais versátil da lista acima na minha opinião é o Scalar. A variável Scalar no Perl pode assumir valores unitarios como referencias de outros tipos, filehandles, objetos, etc... EXEMPLO DE SCALAR: my $string = 'Isso é uma Scalar em Perl'; Esta Scalar, no contexto acima, esta sendo utilizada como string mais a verdade é que ela pode assumir diversos outros tipos de valores como veremos neste script abaixo. PRÉ-REQUISITOS - perl 5.10 ou superior REFERÊNCIAS http://perldoc.perl.org/perlintro.html#Perl-variable-types http://perldoc.perl.org/perlref.html EXECUTANDO $ DEBUG=1 perl scalars.pl

Por: Daniel Vinciguerra


Orientação a Objetos - Criando e usando uma classe em Perl

Perl possui um sistema de Orientação a Objetos que é bem explicito, onde você "constrói as classes com suas próprias mãos" utilizando nada mais do que a sintaxe do próprio Perl e apesar de isso parecer um pouco trabalhoso, na verdade é uma ótima forma para conhecer como os sistemas de objetos funcionam. EM RESUMO: 1. Objetos em Perl são estruturas de dados. Sim! Objetos em Perl são estruturas de dados que são associadas a uma classe. 2. As classes são definidas com o package Sabe o package pelo qual você define os Módulos no Perl? É a mesma coisas com as classes! 3. Construtores abençoam as variáveis Os construtores são apenas sub's que retornam uma variável que foi abençoada (blessed) 4. Os métodos são subs Os métodos dos objetos são apenas sub's no escopo do seu package e que recebem a referência do seu objeto instanciado (blessed) Através deste script, pretendo mostrar de forma simples como trabalhar com orientação a objetos em Perl. PRÉ-REQUISITOS - perl 5.10 ou superior REFERÊNCIAS http://perldoc.perl.org/perlobj.html http://perldoc.perl.org/perlootut.html EXECUTANDO $ perl class.pl

Por: Daniel Vinciguerra


Exibir IP do cliente

Mostra IP do cliente no browser. Fazer upload do arquivo para um servidor Apache com suporte a PHP.

Por: Jonathan Ribeiro


DBIx::Custom para acesso ao Banco de Dados

IMPORTANTE: este script pretende apenas mostrar de forma introdutória como acessar dados do banco utilizando o DBIx::Custom. Caso necessário verifique as referencias para mais informações. INTRODUÇÃO O DBIx::Custom é um wrapper para DBI que tenta trazer benefícios e novas features a forma como nós manipulamos dados de bancos em Perl. Este módulo, além de fazer com que o trabalho com o banco fique mais simples, também permite que utilizemos algumas features bacanas como: utilizar estrutura de dados Perl no lugar do SQL, placeholders nomeados, suporte a Models, suporte a gerenciamento de conexões e algumas coisinhas a mais. QUERY USANDO DBI my $dbh = DBI->connect(...); my $sth = $dbh->prepare('SELECT * FROM usuario WHERE email = ?'); $sth->execute('usuario@teste.com'); while(my $row = $sth->fetchrow_hashref){ say "Usuário encontrado #$row->{id} - $row->{nome}"; } QUERY USANDO DBIx::Custom my $dbi = DBIx::Custom->connect(...); my $result = $dbi->select(table => 'usuario', where => {email => 'usuario@teste.com'}); while(my $row = $result->fetch_hash){ say "Usuário encontrado #$row->{id} - $row->{nome}"; } Como puderam ver o código é muito mais limpo, "moderno" e legível que o código usando apenas DBI. PRÉ-REQUISITOS - perl 5.10 ou superior - Módulo DBIx::Custom instalado - Driver do banco de dados (DBD::mysql, DBD::pg, etc... neste caso DBD::SQLite) REFERÊNCIAS https://metacpan.org/pod/DBIx::Custom https://metacpan.org/pod/DBIx::Custom::Result https://github.com/yuki-kimoto/DBIx-Custom/wiki EXECUTANDO $ perl dbix-custom.pl

Por: Daniel Vinciguerra



Anterior Proxima



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts