Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Porão do Trialforce

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Um blog sobre programação e arte, o conteúdo original pode ser acessado em trialforce.nostaljia.eng.br


Criando extensões para Inkscape usando Python

12 de Janeiro de 2012, 0:00, por Software Livre Brasil - 0sem comentários ainda

2012 chegou e o 2011 se foi, com isso novos artigos sobre novos assuntos aparecem, neste artigo vamos falar sobre a parte básica da criação de plugins para o Inkcape, utilizando a linguagem Python para o desenvolvimento. Eu possuo pouco conhecimento em Python, todo o meu conhecimento se baseia na sintaxe básica da linguagem e um plugin para Gimp que desenvolvi, mas isso não é suficiente para impedir alguém de criar uma extensão para Inkscape.

Como não existe a necessidade de reescrever o conhecimento básico, se achar necessário pode dar uma conferida em http://wiki.inkscape.org/wiki/index.php/ScriptingHOWTO (em inglês).

Inicialmente, para criarmos uma extensão para Inkscape devemos saber onde de encontra a pasta com o conteúdo das extensões, ou seja com os cripts, normalmente essas pasta ficam em:
Linux:

/usr/share/inkscape/extensions
~/.config/inkscape/extensions

Após isto teremos que criar dois arquivos plugin.inx e plugin.py onde plugin é o nome do plugin, uma observação importante é que eles não podem ficar dentro de pastas dentro da pasta extensions. Vale citar que os dois arquivos precisam de permissão de execucação (chmod +x plugin.inx).

O arquivo inx é o arquivo que define a interface inicial do plugin, sua interface (tela), parâmetros que vai receber e qual script python será chamado.

Já o arquivo py é o script python que será chamado.

Vamos começar com a descrição do arquivo inx, que basicamente é um XML com descrição do que o  Inkscape deve fazer. Segue exemplo de extensão (comentada) que está sendo criada para o editor de cenários da Engine Nostaljia, que utilizará o Inkscape como base.

Mais informações sobre o arquivos inx pode ser encontradas em : http://wiki.inkscape.org/wiki/index.php/INX_extension_descriptor_format ( em inglês).

Onde a extensão aparece no menu do inkscape

Onde a extensão aparece no menu do inkscape

<inkscape-extension>
<_name>Nostaljia Scenario Attributes</_name> 


Galeria Devianart

24 de Dezembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Olá Pessoal!

Estava acessando minha galeria do Devianart e resolvi dividir este recurso legal com vocês!

 

Feliz natal a todos! Hohoho!



Sony Bravia e Ubuntu – Disponibilizando conteúdo multimedia para a TV

6 de Dezembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Olá!

Recentemente comprei uma tevelisão Sony Bravia! Uma belezinha de teve digital por assim dizer.

Descobri que ela tem uma série de recursos legais.

Além de permitir uma série de “canais” online, tocar arquivos mp3,mp4, e mais uma série de formatos, ela permite acesso a um servidor DLNA.

Definindo um servidor DLNA

rede dlna

Rede DLNA

DNLA significa Digital Living Network Allliance, algo como “Aliança Rede Digital Viva”, um servidor DLNA  é um servidor de conteúdo multimedia criado pela Sony, com objetivo de compartilhar imagens, músicas e filmes (http://en.wikipedia.org/wiki/Digital_Living_Network_Alliance).

Já a Sony Bravia é um cliente DLNA ou seja ela pode acessar o conteúdo oferecido por um servidor. A imagem ao lado apresenta uma visualização de como funciona uma rede vivia digital.

Existem diversos clientes DLNA, o próprio Playstation3 da Sony, celulares, tablets e outros dispositivos móveis, uma lista completa pode ser encontrada em http://en.wikipedia.org/wiki/List_of_UPnP_AV_media_servers_and_clients.

 

MediaTomb – Um servidor DLNA

Agora que entendemos como funciona um servidor DLNA transformaremos o nosso computador pessoal (desktop ou notebook) e um servidor DLNA, para isso utilizamos o software Mediatomb.

Para instalar o servidor no ubuntu simplesmente executamos:

 sudo apt-get install mediatomb 

Ao executar o mediatomb recebemos as mensagens abaixo, essa é a mensagem de um resultado padrão, que é 100% funcional para a TV.

MediaTomb UPnP Server version 0.12.1 - http://mediatomb.cc/

===============================================================================
Copyright 2005-2010 Gena Batsyan, Sergey Bostandzhyan, Leonhard Wimmer.
MediaTomb is free software, covered by the GNU General Public License version 2

2011-12-06 17:22:45    INFO: Loading configuration from: /home/trialforce/.mediatomb/config.xml
2011-12-06 17:22:45    INFO: Checking configuration...
2011-12-06 17:22:45    INFO: Setting filesystem import charset to UTF-8
2011-12-06 17:22:45    INFO: Setting metadata import charset to UTF-8
2011-12-06 17:22:45    INFO: Setting playlist charset to UTF-8
2011-12-06 17:22:45 WARNING: You enabled the YouTube feature, which allows you
                             to watch YouTube videos on your UPnP device!
                             Please check http://www.youtube.com/t/terms
                             By using this feature you may be violating YouTube
                             service terms and conditions!

2011-12-06 17:22:45    INFO: Configuration check succeeded.
2011-12-06 17:22:46    INFO: Initialized port: 49152
2011-12-06 17:22:46    INFO: Server bound to: 192.168.1.102
2011-12-06 17:22:47    INFO: MediaTomb Web UI can be reached by following this link:
2011-12-06 17:22:47    INFO: http://192.168.1.102:49152/

Isso mostra que o servidor está iniciado e o endereço http://192.168.100.110:49152 informa o endereço da interface web onde podemos configurar quais pastas serão compartilhadas através do Mediatomb.

Interface web do mediatomb

Interface web do mediatomb. Simples de usar, mas não tão bonita ...

Na Bravia

Bravia internet video

Bravia internet video

Passo a passo para acessar os conteúdos na TV.

1. Na TV vamos em Home->Ajustes->configurações de rede para configurar a rede, vale lembrar que a TV vai precisar de um cabo de rede normal (aqueles azulzinhos) para entrar em rede.

2. Como segundo passo vamos ativar o servidor na TV, para isso vá em Home->Ajustes->Configuração de rede doméstica->Incluir/Omitir Serv. de Mídia, o servidor deve aparecer na lista, então é só ativar.

3. Feito isto vamos em Home->Mídia->videos->Mediatomb, no caso podemos escolher vídeos, músicas ou fotos.

Belezinha, tudo funcionando perfeito não é? NÃO!

A TV tem suporte limitados a codecs de vídeo, não é qualquer formato ou qualquer MP4 que vai funcionar não, e o mais legalzinho, não tem suporte nenhum a legendas SRT. Fudeu tudo?

Mencoder

Não,  o mencoder tem a solução para gente! Instalamos ele usando:

sudo apt-get  mplayer

No shell executamos o comando abaixo:

 
mencoder NOME_DO_ARQUIVO _VIDEO-slang br -sub NOME_DO_ARQUIVO_LEGENDA
-of lavf -lavfopts format=mp4 -oac lavc -ovc lavc -lavcopts
aglobal=1:vglobal=1:vcodec=mpeg4:mbd=1:vbitrate=4000:acodec=libfaac
-o ARQUIVO_DE_SAIDA.mp4
 
cowboys e aliens

Cowboys e Alliens

Feito, esse comando mágico converte nosso vídeo para o formato exato da TV, e com muita qualidade, caso queira menos qualidade, ou seja vídeos de tamanho menor mudei o vbritate=4000 para um valor menor, normalmente uns 1500 deve ser o suficiente.

Beleza, com isso assisti o meu primeiro filme em hd!

Cowboys e Aliens, o filme não tava tão bom vil? Mas a qualidade da imagem tava magnifica!!

Quem tiver dúvidas fique a vontade para fazer perguntas nos comentários do post!

E sim!! Eu recomendo muito a compra da TV!

 



Nova versão do phpSVG (Denovo)

20 de Novembro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Fala pessoal!

Estou aqui novamente falando do phpSVG.

Desta vez estou lançando uma atualização da biblioteca e inaugurando um pequeno site sobre o desenvolvimento da biblioteca.

A nova versão tem suporte a mais formas, gradientes e javascript.

http://phpsvg.nostaljia.eng.br/index.php

O site é somente em inglês por enquanto.

No site também consta a documentação completa da biblioteca:

http://phpsvg.nostaljia.eng.br/doc/html/index.html

Exemplo de uso de javascript na biblioteca (não adianta nada se seu browser não suportar SVG):

E o código fonte do exemplo acima:

$svg = SVGDocument::getInstance( );
$svg->setTitle("Javascript example");
 
#add some javascript functions
$svg->addScript("    
    function changeColor(evt, element)
    {
        destination = document.getElementById('destination');
 
        if ( evt.ctrlKey )
        {
            destination.style.stroke = element.style.fill;
        }
        else
        {
            destination.style.fill = element.style.fill;
        }
 
        evt.preventDefault();
        return false;
    }
");
 
#mount a simple color array
$colors[] = 'red';
$colors[] = 'green';
$colors[] = 'blue';
$colors[] = 'yellow';
$colors[] = 'orange';
$colors[] = 'gray';
$colors[] = 'black';
$colors[] = 'white';
 
$text = SVGText::getInstance( 10, 25, null, 'Left click for fill - control click for stroke');
 
$svg->addShape($text);
 
foreach ( $colors as $line => $color )
{
    $rect = SVGRect::getInstance( ( $line *60 )+10 , 40, null, 50, 50 );
    $style = new SVGStyle();
    $style->setFill($color);
    $style->setStroke("darkGray", 1);
    $rect->setStyle($style);
 
    $rect->addOnclick("return changeColor(evt,this);");
    $rect->addAttribute("onmouseover", "this.style.stroke = 'lightGray';");
    $rect->addAttribute("onmouseout", "this.style.stroke = 'gray';");
 
    $svg->addShape($rect);
}
 
$rect = SVGRect::getInstance( 140 , 100, 'destination', 200, 200 );
$style = new SVGStyle();
$style->setFill('none');
$style->setStroke("darkGray", 5);
$rect->setStyle($style);
 
$svg->addShape($rect);
 
$svg->output();

 

Segue abaixo relação completa do changelog:

VERSION 0.7 - Nov 16 2011
- Added support for line
- Added support for circle.
- Added support for ellipse.
- Added support for radial gradient.
- Added support for round rect.
- Added javascript support.
- Added support for title and description
Examples:
- Added javascript example.
- Added merge example.
- Added text replace.
- Addes Line graph example



Bom por hoje era isso pessoal!

 



Premio inovação agosto 2011 – PHP Classes para PHPSVG

9 de Outubro de 2011, 0:00, por Software Livre Brasil - 0sem comentários ainda

Para todos que acompanham o blog, devem ter reparado na classe de SVG para PHP que criei, sendo que o que deu inicio a ela foi realmente um post aqui do blog sobre SVG.

Matéria no informativo


Pois então, inseri a classe no PHPClasses e ela ganhou o Prêmio de inovação de Agosto de 2011.
Sem contar que após a premiação saiu uma matéria no jornal local contando sobre a premiação, a página do jornal pode ser vista ao lado.

O jornal na integra pode ser lido em www.informativo.com.br

Ah, também gostaria de agradecer as 40 mil visitas que o blog já possui.

Ando meio sumido do blog por um bom motivo (desta vez não é Nintendo Wii não), estou criando o protótipo do game Street of Chaos. Como o protótipo ainda não é uma versão de demonstração só ficaremos com uma screenshot por enquanto.

Street of Chaos - Protótipo

 

Abraço a todos!

 



Tags deste artigo: php gimp programação desenvolvimento pixel art