Aplicações remotas: um exemplo com o Octave

Muita gente esquece que é possível executar remotamente qualquer programa instalado em um servidor web. Como exemplo, vou mostrar como criar um formulário e um script para rodar como um CGI do Apache o Octave, que é um aplicativo GNU para cálculos e gráficos matemáticos.

[ Hits: 39.558 ]

Por: Paulo Buarque Guimaraes em 31/03/2005


Exibindo os gráficos



Agora vamos partir para exibir a saída gráfica. Como vimos no início desse artigo, o Octave mostra os gráficos, via gnuplot, em uma janela X, o que não é possível via Web. O truque é jogar o gráfico para um arquivo que será depois transmitido pelo Apache.

Para desviar a saída gráfica para um arquivo PNG, por exemplo, basta usar os seguintes comandos do Octave:

gset terminal png
gset output nome_do_arquivo

Nosso programa PHP passa a ser:

<?php
//Executa um script octave - etapa 2

$workdir = "/tmp/";
$script = $workdir."xxx.m";
$graph = $workdir."xxx.png";
if (file_exists($graph)) unlink($graph); // apaga o gráfico, se existir

$f = fopen ($script,"w");
fwrite ($f,"gset terminal png\n"); // escreve os novos comandos
fwrite ($f,"gset output \"$graph\"\n"); // no script octave
fwrite ($f,$_SERVER['QUERY_STRING']);
fclose($f);

header ("Content-type: text/plain");
passthru ("octave -q $script");

if (filesize($graph)>0){ // verifica se algo foi gravado
   header ("Content-type: image/png"); // cria o header para arquivo png
   readfile($graph); // "lê" o gráfico
   unlink($graph);
};
unlink($script);
?>

Para testar (observe o ; para separar os comandos octave):

http://localhost/octave.php?x=(-pi:pi/10:pi);plot(sin(x))

Página anterior     Próxima página

Páginas do artigo
   1. Usando o Octave
   2. Vetores e gráficos
   3. Arquivos de comandos
   4. Interligando com o Apache
   5. Exibindo os gráficos
   6. Criando uma interface web para o Octave
   7. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Transmission-CLI - Gerenciando torrents via CLI

Como fazer NAT com cable modem

Conectividade Social vs. proxy Squid transparente

Firefox com cara de emacs com o conkeror

Conceito de NAT detalhadamente

  
Comentários
[1] Comentário enviado por jeffestanislau em 31/03/2005 - 11:02h

Parabéns!!!
Ótimo artigo, muito bem estruturado!!!

[]´s

[2] Comentário enviado por franklinbr em 31/03/2005 - 11:49h

Pow ficou legal esse artigo !!

Acho que falta artigos sobre programas cientificos, mesmo achando que a maioria dos fresquentadores do recinto nao tenham uma ligacao com a area de pesquisa. Mas eu acho que podia ter colocado mais exemplos para praticar ehehehe

parabens !

[3] Comentário enviado por Anjinhoo em 31/03/2005 - 23:52h

excelente artigo.
:>

[4] Comentário enviado por marcelogpl em 02/04/2005 - 23:45h

Parabéns !!!

Realmente é impressionante o poder e o conhecimento que o software livre permite. Este artigo está muito bom e esclarecedor, sugiro que traga mais informações avançadas sobre esta assunto.


Mito bom !!!

[5] Comentário enviado por rtb1023 em 04/04/2007 - 00:51h

f


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts