23/08/2007

Projeto Damn Linux Brasil 0.8.2 Alpha

Estou postando mais este sobre o Projeto Damn Small Linux Brasil que não só visa traduzir tudo possível no Damn Small Linux mais também fazer uma implementação gráfica no sistema para que fique alem de mais amigável e simples de ser utilizado por usuários menos experientes ou usuários avançados.
O projeto está sendo todo desenvolvido em Perl e se utiliza do modulo TK para a construção da interface gráfica com o usuário.
Alem de ser super leve até agora só tem cerca de 290 KB em sua compressão TAR ainda promete não só traduzir o sistema para o português mais também para outras linguagens como o Inglês, Alemão, Espanhol, Francês, etc...
O projeto que encontra-se em sua versão alpha 0.8.2 não tem previsão de ser concluído ou de ser lançado um beta estavel por problemas de tempo por conta do desenvolvedor(Eu no caso.... Hahuahuahuahuahuahuahua XD ) mais estou contado com toda a ajuda dos mais dedicados usuários do sistema para criar uma excelente base de tutoriais, dicas, artigos, ferramentas, etc para facilitar ainda mais o manuseio do nosso tão querido Damn Small Linux.
A esses bravos homens tenho de lhes agradecer imensamente não por mim mais por toda a comunidade de usuários brasileiros do Damn Small por sua dedicação e por todo o seu apoio. Meu Muito Obrigado a todos você meus amigos.
Abaixo quero postar algumas screenshots que tirei hoje mesmo com meu Damn Small e com o Projeto Damn Small Linux Brasil rodando para mostrar novas imagens do projeto pois aquelas que venho mostrando a meses já estão tão velhas que devem estar dando dor nos olhos de tanto ver... ^^
Vejam as screens para mais detalhes e/ou para ver o status da implementação gráfica feita no sistema.

Imagem do Damn Small rodando o DSL-BR


DSL-Br postando este artigo.

Espero que tenham gostado das imagem e espero que em breve vocês tambem possam estar usando esse maravilhozo sistema com todas as facilidades que promete o projeto Damn Small Linux Brasil

Daniel Shadow - daniel-shadow[At]linuxmail[dot]org

17/08/2007

Exemplo de programa simples em Perl TK

Bom nesse post eu mostrarei como exemplo um programa de minha autoria apesar de já existir versões para Web, Windows, Linux e até para o grande BeOS porem resolvi criar o meu próprio Post-It para o meu SO.
Usarei o Shadow Post-It para mostrar como o Perl utilizando Tk pode-se desenvolver ferramentas uteis e de tamanho bem pequeno.
Ok para esta demonstração imagino que o leitor ja tenha uma base de Perl caso contrário um excelente texto para isso poderá ser encontrado não seguinte endereço: http://perldoc.perl.org/perlintro.html

Abaixo segue o código com uma pequena imagem do utilitário cujo o código fonte tem aproximadamente 3Kb.



#!/usr/bin/perl

## Name: Shadow Post It
## Author: Daniel Vinciguerra - Daniel Shadow

## E-mail: daniel_5h4d0w@hotmail.com

## Site: http://danielshadow.blogspot.com

## Mantenha as referencias do autor original.

## Declaração dos modulos urilizados pelo programa.
use strict;
use Tk;
use Tk::Button;
use Tk::Frame;
use Tk::Text;

## Variaveis
my $postit;
my ($post, $arquivo);

## Aqui é declarada e chacada a localização do Banco de Dados ## Em SO Windows fica em C:\ já em SO Linux fica em /home/user/
if($ENV{POSTIT}){
$postit = $ENV{POST}
}else{
$postit = $ENV{HOME}.'/Post-it';
}

## Inicio da GUI (Interface gráfica do usuário)
my $mw=MainWindow->new(-title=>'Shadow Post It');
## Configurando o tamanho exato da janela
$mw->minsize(qw(150 150));
$mw->maxsize(qw(150 150));
my $Frame_Banner = $mw -> Frame ( -borderwidth=>2, -label=>'Shadow Post It', -relief=>'raised' ) -> pack(-fill=>'both');
my $Frame_Body = $mw -> Frame ( -background=>'Yellow', -relief=>'flat' ) -> pack(-ipady=>50, -ipadx=>80);
my $Text_post = $Frame_Body -> Text ( -background=>'Yellow', -relief=>'flat', -wrap=>'none', -state=>'normal' ) -> place(-height=>100, -width=>160);
my $Bt_Postit = $mw -> Button ( -background=>'Yellow', -text=>'Post It', -relief=>'flat', -state=>'normal', -command=>\&get_post ) -> pack(-fill=>'both');

## Checa para ver se o Banco de Dados existe...
## Caso exista ele extraira as informações dele e exibirá logo na execução.
if(-e $postit){
open(FILE, "< $postit") or die "\n Arquivo não encontrado!!!\n";
{
local $/=undef;
$arquivo = ;
}
$arquivo =~ s/^ //g;
$Text_post -> insert('end',"$arquivo");
close(FILE);
}
MainLoop;


## Iniciando a criação dos CallBacks (Funções do Programa)

sub get_post(){
## Este callback pegará as informações do Text Widget e ## salvará no Banco de Dados.

$post = $Text_post->get('1.0', 'end');

## Salvando informações no Banco de Dados...
open(POST, "> $postit") or die "\n Arquivo não encontrado!!!\n";
print POST ("$post");
close(POST);

## Limpa o Text Widget...
$Text_post -> delete('1.0','end');

## Inseri as novas informações no Text Widget...
open(FILE, "< $postit") or die "\n Arquivo não encontrado!!!\n";
{
local $/=undef;
$arquivo = ;
}
$arquivo =~ s/^ //g;
$Text_post -> insert('end',"$arquivo");
close(FILE);
return 0;
}



Pois bem isso é simplesmente um pequeno utilitário que construi devido minha constante falta de memória... Ele é bem util e bem pequeno como podem ver.
Porem meu objetivo aqui não é divulgar esta pequena ferramenta e sim mostrar como em poucas linhas pode-se se construir ferramentas e utilitários completamente funcionais e uteis com a Perl.

Por hoje é isso...

01/08/2007

Rodando Script Perl Tk sem abrir o Prompt de Comandos

Essa é uma dica para desenvolvedores Perl que atuam na plataforma Windows e desenvolvem scripts com interface gráfica tal como Tk, GTK, Prisma, etc...
Esse script tem como principal função executar seu script que contenha interface gráfica sem que o Prompt de Comandos(Janelinha Preta) fique aberta.

Segue o codigo:

#!/usr/bin/perl -w

# Executando um script Perl sem o Prompt

use strict;
use Win32;
use Win32::Process;

# Criando um processo.

Win32::Process::Create($Win32::Process::Create::ProcessObj,
"C:\\perl\\bin\\Perl.exe", # Localização do interpretador Perl.
"arquivo.pl", # Localização do seu script Perl
0, # Não herdar
DETACHED_PROCESS, #
".") or # Diretório
die &print_error(); #
sub print_error(){ #
return Win32::FormatMessage(Win32::GetLastError() );
}

$Win32::Process::Create::ProcessObj -> Resume();


Obs: Agradecimentos ao autor do código cujo não me lembro o nome por essa maravilhosa dica.