Posts TaggedWindows

Dica rápida: Executar um arquivo batch através do PHP

Uma dica rápida pra quem está tentando executar um arquivo .bat usando o php. Dê permissão ao usuário do apache ou IIS para executar o cmd.exe, feito isso, chame o seu bat usando como ponte  prompt de comando: exec(“cmd.exe \c arquivo.bat”)

Lembre-se que seu script batch não deve ter interação com o usuário ;)

Abrasss

Add comment Outubro 13, 2009

JasperServer – Backup/Export Repositório

O JasperServer é uma excelente opção gratuita para desenvolver relatórios de forma profissional, rápida (na maioria das vezes) e segura. Não sei porque parece que não ganhou muitos adaptos ou os usuários não costumam falar sobre a ferramenta :) . É muito difícil achar algum material sobre Jasper/iReports. Então vou dando minhas trumbicadas diárias e postando aqui as soluções que encontro e/ou invento.

Hoje precisei publicar um repositório do JasperServer em um servidor de desenvolvimento. Já vi por ai que muita gente dizendo que faz o backup/export usando o dump do banco do jasper server. Não me pareceu uma opção muito segura e resolvi procurar uma outra forma de fazer e dai lembrei do js-export e js-import que usei para migrar do jasperserver 3.1 para o 3.5 (Upgrade do JasperServer 3.1 para o 3.5). Esses dois scripts, como o nome já diz, exportam e importam dados do repositório do JS. Para exportar todos os dados do repositório, use o comando:

Linux:

js-export.sh --everything --output-zip js-backup.zip

Windows:

js-export.bat --everything --output-zip js-backup.zip

Onde –everything diz que tudo será exportado, –output-zip indica que o formato de saída será um arquivo compactado e js-backup.zip é o arquivo de saída.

obs.: Os scripts citados estão no diretório <JASPERSERVER_HOME>/scripts

Para exportar apenas um ou N repositórios, basta usar a opção –uris.

Linux:

js-export.sh --uris /reports/samples,/reports/cms --output-zip js-backup.zip

Windows:

js-export.bat --uris /reports/samples,/reports/cms --output-zip js-backup.zip

Para importar os dados, execute o js-import:

Linux:

js-import.sh --input-zip js-backup.zip

Windows:

js-import.bat --input-zip js-backup.zip

Se o repositório já existir, use a opção –update.

Não se desespere se aparecer um erro do tipo:
blábláblá bundles.jsexceptions_messages, locale pt_BR blábláblá
jsexception.folder.details.not.found

ou ainda:
blábláblá jsexception.uri.not.found

Fique calmo, provavelmente foi um erro de digitação no js-export. Cuidado com as “/” e com as letras maiúsculas e minúsculas. Ao informar o caminho para o repositório, coloque extamente o caminho apresentado no JasperServer.

Abraços e até o próximo post.

Add comment Setembro 15, 2009

Perl + DBI + MySQL

Essa semana precisei criar alguns scripts de migração e estatística de dados em bases MySQL. Esse tipo de problema é bem a area do Perl e Python. Ambos tem uma boa performance em tratamento de dados principalmente arquivos.

Vou tentar explicar como instalar os recursos necessários para fazer uma aplicação em Perl que possa manipular bases de dados em MySQL.

DBI

O DBI é uma interface de acesso e manipulação de dados. Funciona como uma camada entre o script perl e o driver especifico de um SGBD. Com o DBI não é necessário saber a API  de cada SGBD ( Oracle, MySQL, PostgreSQL, etc ). Quando um métido da interface é invocado, a ação é transferida para o driver especifico de forma transparente para o usuário final.

Vamo fazer o troço funcionar.

INGREDIENTES

  • Internet
  • Perl ou ActivePerl ( Caso seja usuário Windows )
  • Teclado

INSTALANDO

Vá até o shell ou prompt de comando e digite:

ppm install DBI

ppm install DBD-mysql

Pronto, agora é só incluir o modulo DBI e já está pronto para usar.

use strict;
use warnings;
use DBI;

my $conexao = DBI->connect('DBI:mysql:database=meu_banco;host=servidor;port=3306','usuario','senha');

É isso ai … a documentação está aqui: http://search.cpan.org/~timb/DBI/DBI.pm
divirtam-se!

Add comment Maio 23, 2009

Tomcat 6 – Falha ao inicializar serviço

Se ao tentar iniciar o tomcat 6 numa máquina com Windows XP você recebe o erro abaixo no log

=========================

[173 javajni.c] [error] Can’t create the specified module.
[764 prunsrv.c] [error] Failed creating java
D:\Programs\Java\jdk1.6.0\jre\bin\server\jvm.dll
[982 prunsrv.c] [error] ServiceStart returned 1

=========================

Basta copiar o arquivo msvcr71.dll da pasta bin do JRE ( JRE_HOME\bin\msvcr71.dll ) para a pasta windows ou para CATALINA_HOME\bin que seu problema estará resolvido.

Esse problema aconteceu comigo essa semana, duas máquinas com as mesmas versões de JRE, Tomcat e Windows mas apenas uma funcionava. E o mais engraçado é que a máquina que funcionava não tinha o arquivo msvcr71.dll nem na pasta Windows e muito menos na pasta bin do tomcat :| ????????

Mas por que isso acontece? … Só Deus e agora a Oracle sabem :) – I Love PHP

3 comments Maio 2, 2009

Aplicações desktop com php – parte 2

Saudações phpzeiros! Depois de um tempo sem postar graças ao trabalho, estou de volta :D . E vamos voltar a série de posts de aplicações desktop com php-gtk. Hoje vamos falar um pouco de containers.

Containers são componentes (widgets) que encapsulam outros componentes. Janelas, painés, frames são exemplos de containers.

Os dois tipos básicos mais usados de containers são GtkBin e GtkBox. O primeiro só permite um componente filho, enquanto o segundo permite que vários widgets sejam acoplados ao container. Essas duas classes são abstratas e como tal não podem ser instânciadas diretamente.

Vamos então falar dos containers mais usados:

  • GtkHBox, GtkVBox
    Organiza os componentes filhos em uma única linha horizontal (GtkHBox) da esquerda para a direita ou vertical (GtkVBox) do topo para a base. Os métodos usado para adicionar os componentes são pack_start e pack_end.

    Estrutura do GtkHBox
    Componente 1 Componente 2 Componente n
    Estrutura do GtkVBox
    Componente 1
    Componente 2
    Componente n
    $vbox = new GtkVBox();
    $vbox->pack_start( new GtkEntry() );
    $vbox->pack_start( new GtkEntry() );
    $wnd->add($vbox);
  • GtkTable
    Organiza os componentes no formato de uma tabela usando linhas e colunas. Os componentes podem ocupar mais de uma linha/coluna.
    Os componentes são adicionados usando o método attach do GtkTable. Nele você deve dizer em que linha/coluna o componente deve iniciar e terminar.

    $table->attach($label, 0, 2, 0, 1);
    

    No exemplo acima, o label vai iniciar na coluna 0 e terminar na coluna 2 (ocupando duas colunas), iniciar na linha 0 e terminar na linha 1 (ocupando 1 linha apenas).

  • GtkFixed
    O mais flexivel na minha opinião. O desenvolvedor informa as coordenadas x e y em que o componente deve ficar posicionado na tela. O método usado para adicionar os componentes é o put ou move. Para tal, basta indicar a posição (x,y) de onde o componente deve ser colocado no formulário.

    $fixed->put( new GtkEntry(), 8, 24);
  • GtkWindow
    Esse é o container mais usado. Como se trata de um GtkBin, só permite apenas um componente filho. O método usado para adicionar os componentes é o add.

    $win = new GtkWindow();
    $win-&gt;set_title("Exemplo GtkWindow");
    
    $fixed = new GtkFixed();
    $fixed->put( new GtkEntry(), 8, 24);
    
    $win-&gt;add($fixed);

É isso ai galera. Até o próximo post.

Add comment Agosto 25, 2008

Aplicações Desktop com PHP – Parte 1

Que o PHP é uma das linguagens de programação mais usadas em ambiente web, todo mundo sabe. Mas pouca gente sabe que também é possível criar aplicações desktop com ela. E é isso que nós iremos fazer. Para tal, iremos utilizar o PHP-GTK.

O que é GTK/GTK+?
O GTK (Gimp Tool Kit) é uma poderosa biblioteca para desenvolvimento de aplicações GUI multi-plataforma, muito utilizada no mundo linux e que vem ganhando seu espaço também no windows.

PHP-GTK
É linguagem binding que permite aos desenvolvedores PHP criarem aplicações gráficas multi-plataforma sem abrir mão dos recursos do PHP.

Vamos então instalar os trecos \o/

Ingredientes

  1. PHP-GTK
  2. Uma caneca com café

Instalação do PHP-GTK no Windows
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.exe&use_mirror=ufpr o instalador, execute-o e seja feliz.

Instalação do PHP-GTK no Linux
Baixe aqui http://sourceforge.net/project/downloading.php?groupname=agata&filename=php-gtk2b.tar.gz&use_mirror=ufpr o pacote pré-compilado e siga os passos abaixo:

# tar -xvzf php-gtk2b.tar.gz
# mv php-gtk2 /usr/local/
# ln -sf /usr/local/php-gtk2/bin/php /usr/bin/php-gtk2

1,2,3, testando
Para testar crie um novo arquivo chamdo exemplo.php com o código abaixo:

<?php
if (!class_exists(‘gtk’)) {
die(“O módulo php-gtk2 não foi carregado corretamente. Verifique seu php.ini.”);
}$wnd = &new GtkWindow();
$wnd->set_title(‘Exemplo’);
$wnd->connect_simple(‘destroy’, array(‘gtk’, ‘main_quit’));
$label = &new GtkLabel(“Perdeu preiboy!’”);
$wnd->add($label);

$wnd->show_all();
Gtk::main();
?>

Para executar, vá até a linha de comando e execute:
No Linux

# php-gtk2 exemplo.php

No Windows

C:\php-gtk2\php.exe exemplo.php

É isso ai. No próximo post vamos explorar melhor os recursos do PHP-GTK.

Pra quem quiser saber mais sobre o projeto:
http://www.php-gtk.com.br/
http://gtk.php.net/
Abraços!

Add comment Junho 24, 2008

Ataque de pelanca do Windows Vista

No último final de semana pude finalmente tirar um tempo pra instalar o bom e velho slackware no notebook. Lembro que saiu uma matéria no WNews a um tempo atrás falando sobre o novo gerenciador de partições do Vista. Levando em conta os problemas de compatibilidade dos programas com o novo windows ( incluindo o partition magic ), um bom particionador já embutido no sistema ia quebrar um galhão.

No vídeo o cara cria, apaga, redimensiona, joga pra cima, faz um catatau de coisas com as partições. Fiquei até empolgado. Como neste final de semana resolvi instalar o slack 12 e precisava redimensionar a partição onde o vista está instalado e assim criar as outras, não tive dúvidas, fui pro gerenciador ( compmgmt.msc ) cliquei na opção Diminuir ( Shrink ) e me deparo com um botão desabilitado :S.

Isso acontece, entre n motivos, porque o desfragmentador de arquivos do vista não move os arquivos da MFT ( Master File Table ) para o início da partição. Daí você não pode diminuir a dita cuja. Vamos então a solução:

INGREDIENTES

  • PerfectDisk 2008
  • Algum conhecimento
  • Paciência

Primeiramente, faça limpeza de disco usando o próprio assistente do windows ou o CCleaner
(http://www.ccleaner.com/download)
Desabilite restauração, arquivos de paginação e o despejo de memória fisica. Todas as opções se encontram nas propriedades do sistema (tecla win + break) nas abas Proteção do Sistema; Desempenho; Inicialização & Recuperação.

Depois que todos os itens estiverem desabilitados reinicie o computador. Baixa/instale/execute o PerfectDisk2008 ( http://www.raxco.com/products/downloadit/pd_download_home.cfm ).

É necessário fazer uma desfragmentação normal, que você pode fazer usando o próprio vista, o perfectdisk ou o auslogics disc e a outra é de arquivos de sistema … esse vai mover os famigerados MFTs. Esta última use o PerfectDisk. Escolha a opção System Files. Esse processo pode demorar um pouco eu não sei o tempo porque larguei o troço lá e fui dormir :D

Depois de finalizar as desfragmentações, a opção estará milagrosamente habilitada … diminua sua partição, habilite novamente as opções de sistema que desabilitou lá em cima, reinicie o PC e seja feliz :D .

Add comment Maio 7, 2008

Gerando documentos PDF com FPDF – Parte 02

Antes tarde do que nunca. Hoje iremos falar do método AddFont(). Este método serve para importar uma nova font TrueType ou Type1 ao documento PDF.

Ingredientes:

  • Conversor de fonts TrueType/Type1
  • Fonts TrueType/Type1
  • FPDF

>> ttf2pt1

Se você é usuário *nix, baixe a última versão aqui: http://ttf2pt1.sourceforge.net/download.html se for usuário windows, tente aqui: http://gnuwin32.sourceforge.net/packages/ttf2pt1.htm ou aqui: http://public.box.net/ischool

Após concluir o download, descompacte o arquivo em um diretório de sua preferência. Vá até a console ( bash, ksh, etc ou prompt de comando para os usuários do windows )  e execute o comando:

Windows
C:\Downloads\ttf2pt1>ttf2pt1 -a C:\WINDOWS\Fonts\Verdana.ttf Verdana
Linux
$./ttf2pt1 -a /mnt/WINDOWS/Fonts/Verdana.ttf Verdana

O comando acima irá produzir dois arquivos. Um com a extensão .AFM e o outro T1A. Agora vamos retornar ao PHP. Pegue os balai de gato gerados anteriormente e a fonte ttf ( em nosso caso Verdana.ttf ) e leve para o diretório font do FPDF. Agora estamos prontos pra criar o arquivo que irá gerar as fonts que serão usadas de fato em nosso script PHP. Crie um script PHP com o código abaixo.

<?php
require_once ‘makefont/makefont.php’;
MakeFont( ‘Verdana.ttf’, ‘Verdana.afm’, ‘ISO-8859-1′ );
?>

Tá pronta a bagaça. Agora basta executar o arquivo via CLI ( linha de comando ) ou por HTTP mesmo.

Pronto, agora você tem dois arquivos novos: Verdana.php e Verdana.z. Agora você já pode usar sua font Verdana em suas relatórios em PDF usando o método AddFont() como no exemplo abaixo.

<?phpdefine(“FPDF_FONTPATH”,”font/”);

require_once “fpdf_dir/fpdf.php”;

$pdf = &new FPDF(”L”,”mm”,”A4″);
$pdf->Open();
$pdf->AddPage();
$pdf->AddFont(“Verdana”);
$pdf->SetFont(“Verdana”,”B”, 14);
$pdf->Text(40,20,”Título do Relatório”);
$pdf->SetLineWidth(0.7);
$pdf->Line(40,22,200,22);
$pdf->SetXY(40,26);
$pdf->SetFont(,,12);
$pdf->Cell(30,5,”Modelo”,0,0,”C”,0);
$pdf->Cell(30,5,”Fabricante”,0,0,”C”,0);
$pdf->Output();

?>

É isso ai, mangaba não é não? Se ainda tiverem dúvidas, olhem este artigo feito pela iSchool http://ischool.000webhost.info/php/curso-fpdf-recursos-2 que é muito bom.

Abraços e até a próxima!

4 comments Abril 28, 2008


 

Dezembro 2009
S T Q Q S S D
« Out    
 123456
78910111213
14151617181920
21222324252627
28293031  

Arquivos

Tópicos recentes

Tags

Addfont apache Aplicações audio bash Carreira desabilitado desativado Desktop diminuir Documento emprego Encoding Firefox FPDF Gerenciador Google GTK+ HDA iconv iReport Jasper jasperserver Java Linux MakeFont mudo mysql Partição PDF Perl PHP postgres procedure redimensionar Relatorio script shell shrink SLACKWARE som ttf2pt1 vaga Vista Windows

Categorias

Blogroll