domingo, 12 de dezembro de 2010

Solution 16414: Printing A Print Server Configuration Label Causes A 'Ribbon In' Error



Symptom

Printing a test label (Configuration Label) from the print server
results in a "Ribbon In" Error

The problem is seen on printers when the EPL version of firmware is loaded. Pressing the test button on the print server sends printer commands to the printer to produce the test label. The print server expects the printer to be in Direct Thermal mode. If in Thermal Transfer mode with ribbon loaded, the mode will change to Direct Thermal when the test button is pushed to print a print server configuration label.

To clear the error message on a ZM400 or ZM600 change Print Method back to Thermal Transfer through the Front Panel LCD.

On the S4M, change the Ribbon setting to 'Yes' through the Front Panel LCD.

segunda-feira, 6 de dezembro de 2010

Sem anti-virus

http://www.forumpcs.com.br/viewtopic.php?t=184052

Todo programa, quando executado, gera um ou mais processos para o sistema operacional. Um processo, é uma instância de um programa ou de um comando em execução. Existem formas para gerenciar estes processos. Logo, existem formas para gerenciar todo programa que roda no pc. Logo, existem formas para gerenciar qualquer programa, seja ele do mal, ou do bem. Basicamente é isso que precisamos para entender o tutorial, porém, recomendo uma leitura mais avançada sobre processos, sub-processos e threads. Google ajuda as vezes...

Ferramenta 1

Todo bom usuário do Windows conhece o gerenciador de tarefas, o famoso, CTRL+ALT+DEL. Mas não vamos usar ele. E não vamos usar ele, simplesmente porque existem programas mal intencionados que desativam a chamada do gerenciador de tarefas do Windows. Para nosso serviço, usaremos o Process Explorer .

Escolha a versão correta para seu sistema operacional. No tutorial usarei a versão para Win XP.
O programa é gratuito.

Ferramenta 2

Provavelmente você já deve ter tentando deletar algum arquivo em uso. Certamente, deparou-se com uma mensagem de erro. Com o Killbox, isso não vai mais acontecer. Vamos precisar dele também, baixe-o. Também é gratuito.

Conhecendo os programas

O Process Explorer (a partir de agora, PE) vem compactado e não tem instalador. Basta descompactá-lo para uma pasta qualquer e executar o arquivo procexp.exe.

Bem vindo a um gerenciador de tarefas expert! O PE reúne diversas informações sobre processos, uso da cpu, memória, etc. Não precisamos conhecer o programa integralmente para usarmos. Antes de prosseguir, passeie pelos menus do programa para familiarizar-se. Clique no menu View -> Select Columns. Marque todas as opções disponíveis e clique em OK.

Clique para ampliar

No quadro a esquerda, seguem os processos e seus sub-processos. Observe como tudo é mais organizado do que o gerenciador do Windows.
A direita, temos um quadro com informações dos processos, como o ID (PID), parcela que está usando na CPU, uma breve descrição, nome da companhia, nome do usuário que iniciou o processo, título da janela (se tiver), sessão, diretório aonde está o programa/arquivo que instanciou o processo (isso é muito importante!), e estado da janela. Vou ressaltar novamente, que quero deixar o tutorial prático e objetivo. Quem se interessar em conhecer as peculiaridades do PE, pode ler o arquivo de ajuda, que está bem completo.

Vamos praticar um pouco. Abra o PE e maximize-o para melhor visualiação. Clique em Iniciar->Executar e digite notepad . O bloco de notas do Windows se abrirá. Agora, observe que um novo processo, chamado notepad.exe, é instanciado no PE. Feche o bloco de notas pelo botão fechar na barra de título e observe que o processo é destruído da lista de processos. Agora, abra novamente o bloco de notas. Vá ao processo correspondente a ele no PE, o notepad.exe, e clique com o botão direito do mouse. Um menu pop-up se abrirá com algumas opções. Clique em Kill Process Tree, e observe como a janela do bloco de notas se fecha e o programa se encerra. Oque você acabou de fazer foi finalizar o processo do notepad.exe, interrompendo a sua execução forçadamente. É isso que iremos fazer com as pragas!

Agora, precisamos aprender como diferenciar oque são processos do sistema e processos que o usuário abre. Repare que os processos possuem um campo User Name no quadro a direita. Quando nesse campo constar AUTORIDADE/XX SYSTEM (ou em inglês), ou AUTORIDADE /XX NETWORK, quer dizer que estes processos foram iniciados pelo sistema operacional, ou seja, não houve intervenção do usuário. Quando este campo constar o nome de seu PC e seu nome de usuário, quer dizer que este processo foi iniciado com a intervenção do usuário.

OBS: Mesmo processos que carregam automaticamente com o Windows podem constar como que abertos pelo usuário, porque o usuário teve de instalar o programa.

O Killbox é muito simples de ser usado. Também não requer instalação. Basta executar o arquivo .exe que acompanha o pacote.

Usaremos o Killbox para apagar aqueles vírus que não podem ser apagados, porque ao terem seus processos finalizados, voltam a serem executados imediatamente, tornando assim, “impossível” sua remoção pelo método comum. O campo “End Explorer Shell While Killing File” deve estar sempre marcado para apagar esse tipo de arquivo.

O segredo da coisa!

Sempre que iniciamos o sistema operacional, seus processos necessários para funcionamento são carregados. Junto a eles, são carregados os processos que o usuário criou, carregados automaticamente pelo sistema. O grande segredo da coisa, é justamente saber diferenciar oque são processos do sistema (ou processos que você permite que estejam abertos) e processos maléficos. Abaixo segue uma imagem de um Windows XP limpo, sem nenhum processo aberto a não ser os que são do sistema.

Todos estes processos, com exceção do procexp.exe, que é o próprio visualizador de processos abertos, são os processos que você O “precisa” se preocupar . Aconselho a guardar esta imagem enquanto não decora quais processos são os originais do sistema. Ainda assim, existem vírus ou spywares que se disfarçam destes arquivos. Um dos mais comuns é o Isass.exe. Geralmente o processo falso do Isass.exe leva um ícone diferente deste original, um ícone como o de um arquivo .html e é carregado pelo usuário e não pelo sistema. É comum também, processos maléficos se disfarçarem de svchost.exe. Normalmente haverá umas 5 ou 6 instâncias do svchost (podem haver mais ou menos, tudo depende de quais serviços sua máquina carreg. Para ver os serviços que sua máquina carrega, digite services.msc em iniciar->executar e aperte enter). O svchost são processos individuais do Kernel do Windows e levam consigo uma lista de outros serviços rodando nele. Aponte o mouse sobre qualquer um deles e espere um tempo. Aparecerá a lista dos serviços referentes àquela instância do Kernel. Caso desconfie de algum processo svchot.exe, deixe o mouse apontado sobre ele e observe se na lista de serviços consta alguma coisa estranha. Geralmente, processos disfarçados de svchost.exe carregam consigo somente o serviço do vírus. Nestes casos, é possível que se repare também um processo do vírus instanciado, mas ao desativá-lo, ele volta, justamente por causa do svchost.exe disfarçado que o está chamando toda vez que você o apaga. (este não é o único caso em que um vírus vai voltar) Também é possível que em um svchost.exe original esteja infectado e carregando o serviço de algum vírus. Outro fator de exceção importante são os parâmetros passados ao processo explorer.exe. Existem vírus ou spywares ou adwares que ao invés de instanciar um processo, agregam um parâmetro ao explorer.exe que carrega a sua biblioteca. Desta forma, a praga ficará rodando em sua máquina e você não enxergará o processo dela. Para resolver isso manualmente, basta pesquisar pelo Google por ferramentas feitas especialmente para aquele caso. Na parte de prática deste tutorial, mais abaixo, eu dei um exemplo de um vírus do tipo.

Quando você rodar o PE aí na sua máquina, dificilmente vai encontrar seus processos como na imagem logo acima. Saiba diferenciar também, os processos de Drivers de hardware que o usuário instalou. Na primeira imagem lá em cima, vocês podem notar um ou 2 processos que se chama ati2evxx.exe. A direita, observe o nome da companhia que criou o arquivo: ATI Technologies Inc. Obviamente este processo faz referência a meu driver de vídeo, da minha placa da ATI. Notem que uma outra sacada é observar o nome da companhia do processo. É importante para isso, que o usuário saiba oque tem dentro de sua máquina e suas devidas marcas. Procurem por processos como processos de software de placas de som, de vídeo, modems, etc.

Para gerenciar direito a sua máquina, você deve reconhecer tudo oque está rodando nela. Abra o PE e procure reconhecer entre os vários processos, quais são do sistema, quais são de programas conhecidos e quais são desconhecidos. Os desconhecidos, você pode conseguir alguma referência usando o campo PATH no quadro direito do PE. Neste quadro, consta o diretório em que o arquivo do processo está, como já citado anteriormente. Observe qual o diretório em que se encontra, a companhia que o criou, e quem o está chamando (usuário ou sistema).

Passos para identificar processos

1 – Nome do processo
Processos comuns normalmente levam nomes referentes ao da sua aplicação. Processos maléficos podem levar o nome de qualquer coisa, desde nomes sem sentido ou com nomes referentes a alguma palavra, marca, etc. Por isso, é importante que o usuário saiba e decore quais são os processos que seu sistema normalmente carrega, para caso algum outro carregue, saiba diferenciar. Em caso de dúvida, use a criatividade. Procure pelo nome daquele processo no Google e busque informações sobre ele. Existem sites especializados em descrição de processos, um que costumo usar e acho muito bom, apesar de ser em inglês, é este.Caso perceba que é algo maléfico, remova-o.

2 – Nome da companhia
Quem conhece bem a máquina que tem, sabe das marcas dos programas instalados. Processos maléficos geralmente não levam marca, ou levam alguma marca estranha.

3 – Caminho / Diretório
Processos maléficos gostam de residir em pastas do Windows, como a do system ou system32, ou até mesmo a pasta Windows, ou criar suas próprias pastas, das quais em geral, sempre levam o mesmo nome do processo.

Prática

Agora, vou rodar um spyware de exemplo em minha máquina (sim sim!) e mostrar a vocês, como eu o identifico e o removo. Vamos lá!

Observem na imagem, que carreguei os Spywares em minha máquina. Abaixo do procexp.exe estão os malditos.

Primeiramente, identifiquei os spywares, porque nunca havia visto estes processos em minha máquina, pelo nome estranho que eles levam (isamonitor? Estaria monitorando algo?), porque não possuem uma companhia e estão colocados em diretórios estranhos, C:\Arquivos de programas\VideoCodec\ (nunca instalei esse programa!) e algumas pastas do Windows. Outro detalhe estranho é o rundll32.exe estar carregada logo após aquele processo. Sempre que ver o rundll32.exe carregado pelo usuário, desconfie.

Como proceder:

Finalizarei os processos do spy, clicando com o botão direito do mouse sobre eles e selecionando a opção Kill Process Tree. Mas antes disso, anotei aonde estes arquivos residem, pelo campo PATH no quadro direto do PE, para que manualmente eu possa ir lá e apagá-los. Anote também o nome exato dos processos. Caso um processo seja sub-processo de outro, você deve matar o processo pai. No meu caso, terminei o lafC.tmp, o pmsngr.exe (com ícone de warning) e o isamonitor.exe. Automaticamente os processos filhos destes foram destruídos. Caso também um processo insista em voltar assim que você o apaga, simplesmente vá ao diretório aonde ele se encontra e apague-o usando o Killbox com os parâmetros passados acima. Mas ainda não terminou!

OBS: alguns processos maléficos possuem instaladores. Vá no painel de controle do Windows, adicionar/remover programas, e tente encontrar alguma entrada relativa. Se encontrar, clique e remova. Na maioria das vezes esse não vai ser o caso.

Como garantir que estes processos não vão mais voltar?

Simples. Existe uma ferramenta no Windows, chamada de msconfig. Com ela, você pode editar as entradas de programas que carregam automaticamente com a inicialização do Windows. Para acessar a ferramenta, clique em iniciar->executar e digite msconfig. Pressione enter, e vá na útlima aba, Inicializar. Aí constam todos os programas que inicializam automaticamente com o Windows. Localize os processos que acabou de matar. Geralmente eles estão com o mesmo nome, senão, observe que na direita consta também o diretório em que ele se encontra. Observe a linha integralmente, e repare que o nome do arquivo estará no fim da linha. Esse nome é o mesmo nome do processo que você matou. Desmarque toda e qualquer entrada destes processos.

Próximo passo:

Matar só os processos não adianta, temos de apagar também os arquivos!

Lembre-se sempre de anotar aonde esses arquivos residem antes de terminá-los para que você possa eliminá-lo de uma vez por todas de sua máquina. Se ao tentar apagar um arquivo e não conseguir por ele já estar em uso, apague-o usando o Killbox com os parâmetros passados acima.

Certo, matei os processos e apaguei os arquivos. Agora, com o nome dos processos, vou apagar as suas entradas no registro do Windows, caso haja alguma. Clique em iniciar->executar e digite regedit. Esse é o editor de registro do Windows. Aperte a tecla F3 e faça uma busca no registro pelo nome dos processos que finalizou e deletou. Se houver alguma entrada com o nome EXATO daquele processo, exclua.

Após tudo isso, minha máquina pareceu estar limpa. Quando reiniciei o PC percebi que um ícone do spy na bandeja do Windows ainda continuava enchendo o saco. Ora, mas deve haver algum processo por trás daquele ícone! Mas para meu azar, não havia nada a vista nem na lista de serviços dos svchosts. Então, certamente esse tipo de processo tem sua biblioteca carregada como parâmetro para o explorer.exe. E aonde estará essa biblioteca? E como apagar os parâmetros? Dará muito trabalho localizar todas essas informações, então, cliquei no ícone do spy, que estava na bandeja e carregou-se um site, chamado VirusBurst. Então, usando a criatividade, fui no Google e pesquisei pelo VirusBurst e encontrei facilmente uma ferramenta de remoção feita especialmente para ele, chamada SmitFraudFix. Baixei, executei e pronto! Agora sim, tudo eliminado.

Esse meu caso, foi só um exemplo. Na maioria dos casos, somente o passo de eliminar os processos da memória e apagar seus arquivos já resolverá o problema. Mas como sempre existem exceções, demonstrei um caso “dos piores”.

Tenha sempre em mente, que apesar de estar manuseando os processos do seu sitema, você sempre pode deixar escapar algo e ainda, não pode saber se o vírus é vírus, se não rodá-lo. Entradas de cookies infectadas, (geralmente casos insignificantes) e arquivos infectados na pasta temporária da Internet também são muito comuns e você não pode ter controle do que entra e sai. Para isso, preparei algumas dicas, porque tão importante quanto remover um vírus é saber evitá-lo.

Dicas

-Mantenha seu sistema operacional sempre atualizado!

-Desconfie de arquivos executáveis (.exe, .com) de tamanho muito pequenos, algo entre 10 e 100 Kbytes. Tenha certeza se aquele programa que você busca pode ser tão pequeno quanto

-Ao usar programas p2p, como o Kazaa, Shareaza, leve em conta também o item acima. Se você estiver baixando uma música, deve saber que uma música em MP3, WMA ou seja lá o formato, não pode ter tamanho menor que ~500Kbytes, a menos que seja um som curtinho ou um com uma qualidade horrível. A busca por arquivos em redes p2p pode retornar muitos vírus disfarçados. Sempre estes vírus possuem uma parcela de fontes enormes, uma banda altíssima e eleito o melhor entre todos. Tudo isso para atraí-lo.
Observe o screenshot abaixo:

Fiz uma busca por músicas, pelo artista e a busca me retornou uns arquivos estranhos, fazendo mix com o nome que passei como parâmetro da busca e palavras sem sentido, como “realease”, “serial”, “uncensored”, etc. Observe o tamanho desses arquivos, entre 100 e 400 Kbytes. Uma música não pode ter esse tamanho minúsculo!

- Ao receber emails com links, antes de clicar, aponte para o link e observe na barra de status para aonde o link o levará se você clicar. Se no endereço que aparecer, o final (as útimas 4 letras do endereço) for algo com .scr, .exe ou .com pode ter certeza que é vírus, a menos que seja algo que você saiba de quem está vindo.

- Sites de pornografia adoram instalar porcarias nas máquinas. Se você não consegue viver sem tais sites, NUNCA instale nada que o site te pedir. Por isso é importante manter o sistema e o navegador atualizado, assim ele o avisará se algo tentar se auto-instalar sem a sua permissão. Não instale, mesmo se não tiver outro jeito de prosseguir no site! Arranje outro site, ou vá ler um livro!

- Apague regularmente os cookies do seu navegador e os arquivos temporários da Internet. Aqui eu apago toda semana, 1 vez. Para fazer isso, basta ir em opções no menu ferramentas do navegador.

Bem, vou encerrar o tutorial por aqui, mas espero que a discussão comece e que podemos nos ajudar. Existem muitos adeptos ao “auto-clean” que não usam antivírus nem nenhum anti-qualquer coisa. Espero ter a colaboração destes, com dicas, macetes e truques, complementando este tutorial que representa só o básico nessa luta contra as pragas. Qualquer dúvida, postem um screenshot do PE com os processos rodando, e tentarei ajudar!

Publicar SVN Google Code

Enviar SVN
svn import -m "Imob ATS" . https://imobats.googlecode.com/svn/trunk/ --username crsilveira@gmail.com

Remover Pasta Projeto
svn rm https://atsscf.googlecode.com/svn/trunk/ --username crsilveira@gmail.com

Para Pegar a senha:
http://code.google.com/hosting/settings

Para fazer Checkout:
https://myproject.googlecode.com/svn/trunk

Enviando o fonte para o Google(TortoiseSVN):
No Windows Explorer, clica-se com o botão direito na pasta onde está o
código fonte da aplicação e vai na opção TortoiseSVN -> Import…
Abre-se uma tela onde pede para digitar a URL, que é a que fica na aba “Source” no projeto, no meu caso é https://cotacao.googlecode.com/svn/trunk/
Nessa tela tem um campo para digitar uma mensagem, que pode ser “Versão inicial” ou algo do gênero.
Pede login e senha. O login é o nome do Google Account, que também está na aba “Source” e no meu caso é cintra. Para descobrir a senha é só clicar no link googlecode.com password, nessa mesma aba.
Pronto, agora os arquivos estão no repositório.

Como pela opção “Import…” todos os arquivos dentro da pasta são enviados, é interessante verificar antes se não tem “lixo” na pasta, como arquivos temporários ou binários. O repositório de código é para armazenar apenas código!

No Google Codes existem 4 pastas:

branches (galhos): são versões derivadas de outras versões. Pode ser uma versão intermediária, que ainda não está estável. Não é uma cópia física da versão, apenas um “link”.
tags (etiquetas): no Source Safe era chamado de Labels, servem para identificar uma versão. Também não é uma cópia física da versão, apenas um “link”.
trunk (tronco): é a versão principal da aplicação e não deixa de ser um “branch”
wiki: é onde ficam as páginas wiki do site do projeto.
Então após ter subido o código fonte para a pasta trunk, eu criei uma tag para a versão que eu subi, que é a 2.4.1 e o procedimento também é muito simples.

Checkout

No Windows Explorer clicar com o botão direito do mouse em uma pasta e ir
em “SVN Checkout…” e fazer o checkout da pasta trunk do projeto
Clicar novamente na pasta e ir em “TortoiseSVN” -> “Branch/tag…”
Digitar a URL de destino (no meu caso deixei como https://cotacao.googlecode.com/svn/tags/2.4.1/)
Informar o “Create copy in the repository from:”. Como no meu caso é para usar a última versão, eu marquei a opção “Head”
Informar uma mensagem e mandar bala!

quinta-feira, 25 de novembro de 2010

Como instalar e configurar Apache-Tomcat 6 no Debian Lenny com o Apache2

Como instalar e configurar Apache-Tomcat 6 no Debian Lenny com o Apache2

Autor :

http://www.msilva.org/2010/11/como-instalar-e-configurar-apache.html

Após a instalação do Java, iremos editar o arquivo /etc/profile e incluir o caminho do Java para poder ser conhecido pelo ambiente adiconando os seguintes parâmetros;

export PATH

JAVA_HOME="/usr/lib/jvm/java-6-sun/"

export JAVA_HOME

Faça o download do Tomcat no site do apache fundation, estou utilizando a versão 6.0.29;

$wget -c http://ftp.unicamp.br/pub/apache//tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz

Instalando o Tomcat

$tar -zxvf apache-tomcat-6.0.29.tar.gz && mv apache-tomcat-6.0.29 /opt/tomcat

Criando o scrip init do Tomcat;

$vim /etc/init.d/tomcat

#!/bin/sh
# Tomcat Init-Script

case $1 in

start)

sh /opt/tomcat/bin/startup.sh

;;

stop)

sh /opt/tomcat/bin/shutdown.sh

;;

restart)

sh /opt/tomcat/bin/shutdown.sh

sh /opt/tomcat/bin/startup.sh

;;

esac

exit 0


Dê permissão 755 ao arquivo e colocaremos ele para executar na inicialização do SO;

$update-rc.d tomcat defaults

Temos que adicionar um usuário para podermos usar o Manager do Tomcat, editaremos o arquivo tomcat-users.xml;

$vim /opt/tomcat/conf/tomcat-users.xml

Antes da chave , iremos informar o usuário e senha de acesso;









Iniciando o Tomcat;

$/etc/init.d/tomcat start

Acesse o tomcat no seu browser e será solicitado o login e senha, informe os mesmo que foi editado no arquivo tomcat-users.xml;

http://SERVERNAME:8080/manager/html

Instalando o Apache2 e os conectores

O Tomcat pode ser usado como um Web Server, mas o Apache é muito mais podereso utilizando os seu módulos. Iremos instalar o apache2 e o módulo que irá realizar a conexão dele com o Tomcat.

$ aptitude install apache2 libapache2-mod-jk

Crie e edite o arquivo workers.properties conforme abaixo:

$ vim /etc/apache2/workers.properties
workers.tomcat_home=/opt/tomcat
workers.java_home=/usr/lib/jvm/java-6-sun
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
Configurando o arquivo JK

Crie e edite o arquivo jk.conf conforme abaixo:

$ vim /etc/apache2/conf.d/jk.conf

JkWorkersFile /etc/apache2/workers.properties
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel error

/etc/init.d/apache2 stop
/etc/init.d/tomcat restart
/etc/init.d/apache2 start
Criando um novo Virtual Host
Feito as configurações no Apache, podemos então já realizar o deploy da aplicação Java no Tomcat. Vamos tomar como exemplo uma aplicação de nome "exemplo" onde terá o endereço de virtual host do tipo "exemplo.com.br", ao realizar o deploy através da interface web do Tomcat, ela ficará no diretório /opt/tomcat/webapps, podemos então no diretório do Apache e criar o nosso virtual host.
$ vim /etc/apache2/sites-avaliable/exemplo

JkMount /*.jsp default
DocumentRoot /opt/tomcat/webapps/exemplo
ErrorLog /var//logs/apache2/error.log
CustomLog /var/logs/apache2/access.log common
<directory /opt/tomcat/webapps/exemplo>
Options -Indexes
directory>
Criando o vhost exemplo:
$a2ensite
$ /etc/init.d/apache2 restart
Configurando o vhost no Tomcat
$ vim /opt/tomcat/conf/server.xml
http://www.exemplo.com.br/ –>
unpackWARs=”true” autoDeploy=”true”>
path=”" docBase=”exemplo” debug=”0″ reloadable=”true”/>
directory=”/var/logs/apache2” prefix=”tomcat_access_” suffix=”.log”
pattern=”common” resolveHosts=”false”/>
Feito isso reinicie o Tomcat com o comando /etc/init.d/tomcat restart e pode testar sua aplicação Java através do browser.

terça-feira, 23 de novembro de 2010

Pentaho - Metadata-Editor

Ao publicar um relatório criado em outro servidor estava carregando os dados corretamente mas o css estava buscando da máquina onde o Rel. foi criado. Para corrigir , editei o arquivo /tomcat/webapps/pentaho/WEB-INF/web.xml e alterei onde constava o ip do servidor anterior para o novo.

quinta-feira, 2 de setembro de 2010

Configurando Virtual Host Tomcat

Bom, este post veio porque ontem ajudei um grande amigo meu com um probleminha neste aspecto. Queira aproveitar a oportunidade para deixar um grande abraço aqui pra ele, Daniel Kühl Lima, um dos únicos LPI3 do Brasil.

Normalmente quando você publica um servidor com um tomcat servindo uma aplicação, o que costuma-se fazer é simplesmente publicar a aplicação e passar a url para o usuário, por exemplo: www.meudominio.com.br:8080/aplicacao, e o usuário para acessar sua aplicação precisa digitar a url como consta ali, caso ele digita até o / ele irá cair naquela página default do tomcat, com links pra o Administrador e Manager.
Isso é beeem feio. Existe algumas maneiras de se fazer isso de uma forma mais "descente".
Primeiro, para melhorar, o usuário não precisa saber qual a porta para acessar a aplicação, então passar 8080 na url, é feio. Então o mais comum para arrumar isso é levantar o Tomcat com a porta 80. Para isso, é necessário alterar o arquivo /conf/server.xml trocando a porta na seguinte linha (normalmente está ~ pela linha 76):
< port="8080" maxhttpheadersize="8192">
trocar a linha pela
< port="80" maxhttpheadersize="8192">
Com isso resolvemos o problema de o usuário ter que digitar a porta 8080 na url. Porém, se o usuário digitar somente o seu domínio ele ainda acessará a página default do tomcat.
O que muita gente faz para corrigir isso, é instalar um Apache + Conector para Tomcat (para saber como configurar ver o Tutorial), e assim, ele configura para que o apache intermedie requisições para o tomcat, para que quando for acessado o raiz (www.meudominio.com.br) ele redirecione para a aplicação e pronto, o usuário não precisa mais saber qual o nome da aplicação.

Isso funciona. Mas para que ter que configurar mais uma coisa para acessar o tomcat, mais um possível ponto de erro!?
O que muita gente não sabe é que o próprio Tomcat tem suporte a Virtual Hosts.
Por default, o tomcat já vem com um Host configurado, que é justamente o raiz da aplicação, que é aquele host que está no arquivo server.xml.
< Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

< !-- UM MONTE DE COMENTÁRIO AQUI-- >

< /host >

Para configurar então o tomcat para que assim que o usuário digitar a url do seu domínio ela acesse diretamente sua aplicação, você pode apenas definir o Default Context.

< Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false" >

< path="" docbase="aplicacao">

< /Host >

O path="" significa que será o context default, ou seja, assim que o usuário acessar o raiz de seu domínio, ele acessará a aplicação que você definiu no docBase.
Isto funciona para a maioria dos casos onde você tem apenas uma aplicação no servidor. Mas se você tiver um servidor que serve para vários domínios, você então precisará configurar Virtual Hosts, assim como era feito no Apache, quem administra servidores, sabe o que, e como fazer isso. Então, para fazer isso no Tomcat, basta você adicionar um novo Host, parecido com o do exemplo acima, porém, passando o domínio como name do host. Ex:

< name="www.meudominio2.com" appbase="/caminho/aplicacoes">
< path="" docbase="aplicacao2">
< /host >
Agora, este novo host, você pode definir um context default ou não, isso depende da sua configuração. Caso você tenha multiplos domínios e apenas um servidor, basta ir adicionando eles a este arquivo. Lembre-se que todos os elementos Host ficam dentro do elemento Engine.

Nota importante:
Fiz alguns testes, e o tomcat se comportou de maneiras distintas em algumas versões diferentes. O que notei foi que o / tanto no appBase do Host, quanto no docBase do Context, faziam diferença. Então, caso não esteja conseguindo configurar, tente remover, ou inserir as barras tanto no início do caminho, quanto no final.

Bom, é isso, hoje não estou muito inspirado para escrever, então, eu sei que o post ficou com um português meio ruinzinho... Mas, sobretudo, espero ter ajudado alguém. Qualquer dúvida poste ai que eu tento responder.

domingo, 29 de agosto de 2010

Pentaho - Publish Password

Para fazer uma publicação no Bi-Server edite este arquivo e coloque a senha:
\bi-server\pentaho-solutions\system\publisher_config.xml

quinta-feira, 26 de agosto de 2010

Compactar e Clonar VirtualBox

  • Compactando o VDI

Obs: esse exemplo é para máquinas em que o janelas está virtualizado.

1º Faça a Desfragmentação do Disco da maquina Guest (Maquina que está sendo virtualizada)
- Iniciar, Programas, Acessórios, Ferramentas de Sistemas, Desfragementador de disco

2º Ainda na maquina Guest, Faça o download do arquivo nullfile-1.02.exe (http://www.feyrer.de/g4u/nullfile-1.02.exe) e salve no C:\
- Abra o prompt de comando (CMD) e digite:
C:\nullfile-1.02.exe sdelete -c

- Após conluir o comando, desligue a maquina virtual.

3º No computador host (Maquina principal)
- Abra o terminal
- e digite o comando: (não precisa ser root)

VBoxManage modifyhd /home/joao/.VirtualBox/HardDisks/winxp.vdi compact

- winxp.vdi é a maquina que será compactada.

Ao Concluir será exibido:

VirtualBox Command Line Management Interface Version 2.2.4

(C) 2005-2009 Sun Microsystems, Inc.

All rights reserved.

0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%

E deu, o arquivo terá o tamanho real.

  • Clonando o VDI

VBoxManage clonehd /home/joao/.VirtualBox/HardDisks/winxp.vdi /home/joao/.VirtualBox/HardDisks/winxp2.vdi

winxp.vdi – disco original

winxp2.vdi – disco clonado

quarta-feira, 4 de agosto de 2010

BI - Links

As principais informações sobre o AgileBI estão dentro do site do pentaho, nesse link:

http://www.pentaho.com/pdi_4/?hp=y

Se você quiser testar o Community Edition, você pode baixar o PDI 4.0 no SourceForge. Depois de baixar no PDI 4.0, no próprio sourceforge eles tem um arquivo txt mostrando onde você deve baixar o plugin do AgileBI e onde ele deve ser instalado.

Link para o PDI 4.0:

Windows:

http://sourceforge.net/projects/pentaho/files/Data%20Integration/4.0.0-stable/pdi-ce-4.0.0-stable.zip/download

Linux:

http://sourceforge.net/projects/pentaho/files/Data%20Integration/4.0.0-stable/pdi-ce-4.0.0-stable.tar.gz/download

Link para o TXT explicando o módulo do AgileBI:

http://sourceforge.net/projects/pentaho/files/Data%20Integration/4.0.0-stable/Agile_BI_Plugin-Download.txt/download

quinta-feira, 15 de julho de 2010

Delphi com Oracle - BCD

Para passar os parametros estes tem que ser do tipo AsBcd .....

// Refugo de Materiais
if (dm.sProcRefugo.Active) then
dm.sProcRefugo.Close;
dm.sProcRefugo.ParamByName('COFDET').AsBCD := StrToInt(RefOf); <--
dm.sProcRefugo.ParamByName('CODPRO').AsString := RefProd;
dm.sProcRefugo.ParamByName('QTDREF').AsBCD := StrToFloat(refQtde); <----
dm.sProcRefugo.ParamByName('MOTREF').AsBcd := StrToInt(RefMotivo); <-----
dm.sProcRefugo.ParamByName('USUARIO').AsString := RefUser;
dm.sProcRefugo.ParamByName('CODSEQ').AsString := refSeq;
dm.sProcRefugo.ParamByName('COLETOR').AsString := refColetor;

quarta-feira, 14 de julho de 2010

ATS - Assessoria em Tecnologia e Serviços

Delphi mudar o Cursor

var

Save_Cursor:TCursor;
Begin
Save_Cursor := Screen.Cursor;

Screen.Cursor := crHourGlass; { Show hourglass cursor }

try
{ Do some lengthy operation }
finally
Screen.Cursor := Save_Cursor; { Always restore to normal }
end;

end;

sábado, 10 de julho de 2010

BPL em Delphi

Materia publicada no site: http://www.portaldaprogramacao.com/artigos2.asp?n=882

Run Time:

O Delphi tem como padrão , carregar alguns pacotes no momento da execução do aplicativo. No entanto podemos optar por carregar os pacotes em arquivos separados ou anexados ao executavel .Uma das desvantagens deste tipo de pacote é o executavel ficará com alguns Kb a mais.Embora , não será preciso carregar outros arquivos com a sua aplicação como .pas ou .bpl. Pois estes estaram concatenados com o seu aplicativo.

Exemplificando:

- Abra o Delphi.
- Va no menu File > New > Application
- Insira no form um label , um botao e um edit
- Salve
- Compile o programa

Note que o programa ficou com o tamanho de 367 Kb

"Note que a janela files do nosso pacote se divide praticamente em duas partes contains e requires. Contais é os arquivos que contem o pacotes são os “modulos utilizados “. Ja requires são as bibliotecas (pacotes) que esses modulos precisaram para executar"

- Agora va no menu Project>Option
- Selecione a aba Packages
- Marque o check Build With Runtime Packages
- Apage toda a linha
- Digite vcl;rtl (que são a bibliotecas que comtem os objetos padrão)
- Precione o botão Ok
- Recompile o programa

Agora o programa ficou com 16 Kb. O Delphi retirou do codigo do executavel as demais bibliotecas desnecessarias .Deixando só as que foram informadas a vcl e a rtl, nas quais contem os objetos padões utilizdos em praticamente qualquer aplicação.

Podemos verificar tambem a existencia dos pacotes de Desing Time, esses pacotes tem por finalidade carregar objetos para a IDE do Delphi.




Pratica:

No nosso exemplo iremos criar um from no qual ira pedir ao usuario uma senha e um login.

- Menu File
- New
- Application
- Adicione dois labels e dois edits
- Adicione tambem um botão
- Troque o caption dos labels respectivamente para usuario e senha
- Troque o caption do botão para ok
- Salve o aplicação o fonte com o nome de untlogin.pas e o projeto de prjlogin.dpr
- Compile e feche o projeto

- Menu File
- New
- Other
- Na aba New selecione Package
- Ira abrir uma janela , precione o botão add
- Va na pasta onde voce salvou o untlogin.pas e selecione-o

- Salve o pacote com o nome de Login60
- Clique no botão compilar. O pacote ira mostrar um erro , clique no botão Ok que ele ira adicionar um novo pacote a sua aplicação a vcl.
- Procure o arquivo Login60.bpl e login.bcp (\arquivos de programas\borland\delphi6\bin) e mova para a pasta que esta os fontes do pacote
- Salve e feche o pacate

O pacote estara pronto para uso tanto estaticamente como dinamicamente.


Usando pacote estaticamente:

- Menu File
- New
- Application
- Project|Options
- Packages
- RunTime Packages
- Precione o botão add
- Selecione o arquivo login60.bcp
- Va no form selecione o evento onshow e digite
frmlogin:=Tfrmlogin.create(application);
try
frmlogin.showmodal;
finally
freeandnil(frmlogin);
end;
- abaixo da seção implementation digite
uses untsenha;

O pacote esta anexado ao executavel estaticamente

Autor: Rafael Ferreira

Delphi - Never-build package requires always build package

Erro no Delphi : Never-build package requires always build package

1) View the package source
2) Modify the value {$IMPLICITBUILD OFF} to {$IMPLICITBUILD ON}