TI

Tecnologia da Informação

Consumindo web service do Protheus com JAX-WS

2

O que é web service?

De acordo com a W3C, web service é um software projetado para suportar interação máquina-máquina de forma interoperável através de uma rede. Ele tem uma interface descrita em um formato máquina-processável (especificamente WSDL). Sistemas que interagem com o web service de uma maneira prescrita por sua descrição, utilizam mensagens SOAP, normalmente transmitidas através de HTTP com uma serialização XML em conjunto com outros padrões web.

 

O caminho.

Para a integração com outros sistemas, o ERP Protheus da Totvs provê uma série de web services e ainda existe a possibilidade de desenvolver e publicar serviços customizados dentro da plataforma.

Figura 1 – Página com a descrição dos serviços disponíveis do Protheus.

 

O problema.

Ao iniciar o desenvolvimento de uma aplicação em Java 6, utilizando o Netbeans 7.0 como IDE e a biblioteca JAX-WS para o consumo dos serviços, foi exibida a mensagem “WEBSERVICE ERROR : Soap Prefix Missing : USERPORTAL : PRTLOGIN : Formato do Pacote Soap DESCONHECIDO.” ao tentar executar uma chamada simples ao serviço USERPORTAL, método PRTLOGIN.
(mais…)

Como descobrir seu dispositivo desconhecido.

0

Algumas vezes é necessário formatar o computador, porém, utilizar aquele DVD de restauração padrão que vem com a máquina acaba instalando coisas além do necessário, consumindo recursos do sistema que poderiam ser utilizados em atividades mais nobres.

Desta forma surge o primeiro inimigo da formatação: o DISPOSITIVO DESCONHECIDO.

Mesmo depois do advento do plug and play e Windows Update alguns dispositivos acabam sendo esquecidos e quando vamos atualizar o sistema operacional eles aparecem de forma alienígena.

Exemplificando, podemos ver na imagem abaixo um dispositivo denominado Co-processador não sendo reconhecido pelo Windows 7 64-bit, então o que fazer?
(mais…)

Redes em malha sem fio

0

Resumo

Este post tem como objetivo principal realizar a apresentação do padrão para redes sem fio com múltiplos saltos proposto pelo IEEE 802.11s. Este padrão propõe uma solução de encaminhamento através de múltiplos saltos no nível de enlace, assim diferenciando-o das soluções tradicionais que operam no nível de rede. Inicialmente serão abordados os principais conceitos de redes locais IEEE 802.3, redes locais sem fio que seguem o padrão IEEE 802.11 e a junção destes padrões na infraestrutura. Apresentar brevemente a solução para comunicação em múltiplos saltos no nível MAC e projetos piloto que implementam este tipo de comunicação.

(mais…)

Será que o do Mac também é bom?

2

Não é exatamente para isso que server essa App, mas ela também se propõe a mandar as entradas no “journal” para um blog.
Já que é assim, resolvi criar esse texto pra ver como funciona tal característica da App.

O corretor ortográfico é “estilo Word” com a linha sublinhada e tudo mais, também faz a inclusão de imagens sem problemas no estilo “drag-n-drop”.

Só falta testar mesmo o envio para o WordPress, se você conseguir ler isso é porque funcionou.

wpid-Screenshot2011-01-19at14.12.52-2011-01-19-14-10.jpg

Windows Live Writer, alguém já usou?

0

Por algum motivo surgiu um “assistente” do Windows Live Writer na minha máquina pedindo para que fosse feita a configuração do software. Como eu gosto sempre de testar coisas resolvi fazer esse post no próprio e até agora parece bom.image

Ele buscou as categorias já definidas no blog, deixa escolher a data de publicação e as “marcas” (aka keywords) também. O corretor ortográfico existe mas não é automático como no Word (aquelas cobrinhas podem sem um bocado chatas mesmo!). Existe um preview que utiliza inclusive o tema fazendo aquela “velha” expressão WYSWYG ser mais verdadeira do que nunca. Finalmente para os puristas o “código-fonte” em html também está numa aba para ser editado! E tudo isso sem timeout e sem alguns bugs que encontrei no editor nativo do WordPress.

Quem sabe o blog volta a vida com esse software!

Mais um dá série: “Eu amo o Brasil” – Episódio: Comprar um Software

0

Ontem estava num momento de superação, resolvi vencer meus traumas e tentar novamente assistir Blu-Ray no PC.

Checklist:

  • Leitor de BD: OK!
  • Placa de Video com HDMI e Suporte à HDCP: OK!
  • Display com HDMI e Suporte à HDCP: OK!
  • Software Player: Fail!

Tinha que comprar um software… Procurei rapidamente pois a pizza já tava chegando. As três opções que encontrei são pagas (Dicas? Alguém tem uma solução free?) , fui ver o preço de todas.

Segundo o site que fez a análise, o PowerDVD estava mais caro do que o Total Media que por sua vez estava mais caro que o WinDVD. Não tive dúvida, WinDVD.

Ao “chegar” ao site do programa da Corel, tive uma supresa ao ver que ele detecta sua localização e coloca a versão apropriada para o visitante. Fui jogado no “.br” e fiquei abismado:

R$199,00!! Que absurdo!! Verifiquei que na parte superior do site tem um selecionador de paises e com apenas um clique…

Na versão US o preço virou US$39,99!!! Que pelo câmbio de ontem saiu em reais por R$68,57 através do PayPal!

Você também não ama o “Custo Brasil”…

P.S.: Sobre o Software: Não tem muita firula e faz o serviço.

Logitech Driving Force GT – Unboxing + Review

0

Caros leitores, eis meu primeiro post.

Espero que gostem!

Hoje recebi um dos meus sonhos de consumo, o volante Logitech Driving Force GT. Quem curte jogos de corrida sempre se imagina correndo utilizando um bom volante, um volante que dê a verdadeira sensação de direção de um carro. E este é o caso desta maravilha!

Ele vem muito bem embalado e assusta à primeira vista, devido ao tamanho da caixa.

Primeira Caixa

Segunda caixa

O produto é fabricado em plástico rígido de ótima qualidade e tem dimensões agradáveis para a direção (cerca de 28 cm)

Abrindo a caixa

Fora da caixa

Peças

Peças

Montado

Montado

Nos primeiros testes pude perceber que ele é muito preciso, tanto na direção como na aceleração e frenagem (No próximo post tentarei colocar vídeos da utilização). Possui funcionalidades específicas para o Gran Turismo que permite a modificação de alguns atributos do carro durante a corrida (O que não é muito simples pois temos que fazer o ajuste de forma correta sem esquecer de fazer as curvas).

Em uso!

Recomendo a todos os entusiastas de simuladores de corrida. O equipamento é excelente.

GUI para Scripts

0

Atualmente tenho desenvolvido scripts para automação de algumas rotinas e então fui apresentado ao Zenity.

Quando se escreve scripts, é possível usar o Zenity para criar diálogos simples que interajam graficamente com o usuário:

  • Você pode criar um diálogo para obter informações do usuáro. Por exemplo, você pedir ao usuário que selecione uma data em um diálogode calendário ou para escolher um arquivo por um diálogo de seleção de arquivo.
  • Você pode criar um diálogo para prover informações ao usuário. Por exemplo, você pode usar um diálogo indicador de progresso para indicar o estado atual de uma operação ou usar um diálogo de mensagem de aviso para alertar o usuário.

O Zenity lhe habilita a criar os seguintes tipos de diálogo simples:

  • Calendário
  • Seleção de arquivo
  • Lista
  • Ícone de notificação
  • Mensagem
  • Indicador de progresso
  • Entrada de texto
  • Informação de texto

Uma das funcionalidades que achei mais interessante e util foi a barra de progresso. Partindo deste ponto criei um script para mostrar uma barra te progresso enquanto aguardamos um período de tempo para que alguma tarefa seja executada novamente.

#!/bin/bash
(
   for(( i=0; i<=$1; i++))
   do
      j=`echo $i \* 100 / $1 | bc`;
      sleep 1;
      echo $j;
   done
) |
zenity --progress --percentage=0 --auto-close --title="Titulo da Janela" --text="Mensagem de conteudo da janela"

Para acessar a documentação completa do Zenity é só conferir a página do projeto.

Tradução Prey para português Brasil!

1

#!/bin/bash
####################################################################
# Prey – by Tomas Pollak (http://bootlog.org)
# Portuguese (Brazil) lang file v 0.2 – by Gustavo Vinocur (http://www.oslunaticos.com.br)
# URL : http://preyproject.com
# License: GPLv3
####################################################################

if [ -n "$DEFAULT_INSTALLPATH" ]; then # estamos rodando o instalador

# mensagens do instalador

HELLO_IN_LANGUAGE=” — Prey vai falar em português então!”
WHERE_TO_INSTALL_PREY=” -> Onde você quer que instalemos o Prey? [$DEFAULT_INSTALLPATH] ”
USING_DEFAULT_INSTALL_PATH=” — Bom, usando o caminho de instalação padrão…”
INVALID_INSTALL_PATH=” !! Caminho de instalação inválido. Diretório pai não existe!\n”
SETTING_INSTALL_PATH=” — Certo, definindo $INSTALLPATH como nosso caminho de instalação.”

IT_SEEMS_PATH=”Parece que você já instalou o Prey em”
DIFFERENT_PATH=”\nA nova versão usa um caminho diferente para a instalação,”
REMOVE_OLD_FILES=”então devemos remover os arquivos antigos, já que eles não serão mais usados.”
ASK_RM_OLD_FILES=”Você quer que façamos isso automaticamente pra você?”
DELETING_OLD_FILES=” — Removendo os arquivos de instalação antigos do Prey…\n”
CONFIG_FILE_EXISTS=” -> O arquivo Config já existe! Quer pular todas aquelas perguntas chatas? (Não recomendado) [n] ”

SKIP_INSTALL_QUESTIONS=” — Certo, então atualize somente os arquivos necessários!\n”

DEFINE_REPORT_METHOD=” -> Que método de reporte você gostaria de usar? (http, email) [http] ”
IS_REGISTERED_ON_WEB=” — Você já se registrou no site?”
DEFAULT_REPORT_METHOD=” — Usando o painel de controle (http) como nosso método de reporte. Tudo certo!”
ADD_API_KEY=” -> Por favor entre com sua chave de API (API Key) fornecida pelo web service: ”
INVALID_API_KEY=” !! Chave de API inválida! Lembre-se de se registrar em preyproject.com para receber uma.\n”
ADD_DEVICE_KEY=” -> Por favor entre com sua chave de dispositivo (Device Key) para este PC fornecida pelo web service: ”
INVALID_DEVICE_KEY=” !! Chave de dispositivo inválida! Lembre-se de se registrar em preyproject.com para receber uma.\n”

DESIRED_USER_WEB=” — Certo, então deixe-nos fazer pra você. Por favor digite o seu nome completo: ”
ASK_EMAIL_WEB=” — Por favor digite o seu email: ”
DESIRED_PASS_WEB=” — Por favor digite a sua senha: (Nós só a usamos para se registrar por você!) ”
PROBLEM_SIGNUP_WEB=”Ocorreu um problema para se registrar no web service. Por favor tente novamente ou se registre diretamente pelo site”
PROBLEM_RESPONSE_WEB=”A resposta que tivemos foi:”

USING_DEFAULT_APP_URL=” — Usando caminhos para a aplicação web. Nada a escrever aqui!”

ENTER_EMAIL_ADDRESS=” -> Para qual endereço de email você gostaria que o email fosse enviado? (e.g. caixadeemail@dominio.com) [] ”
INVALID_EMAIL_ADDRESS=” !! Você precisa definir uma caixa de entrada. Saindo…\n”

ENTER_SMTP_SERVER=” -> Qual servidor smtp devemos usar? (com a porta) [smtp.gmail.com:587] ”
DEFAULT_SMTP_SERVER=” — Iremos usar o do Gmail então! ”
ENTER_SMTP_USER=” -> Digite o seu nome de usuário smtp: (e.g. caixadeemail@gmail.com)”
DEFAULT_SMTP_USER=” — Certo, nosso nome de usuário SMTP será” # o instalador adicionará a variável email
ENTER_SMTP_PASS=” -> Digite a sua senha smtp: (Não será mostrada) [] ”
INVALID_SMTP_PASS=” !! Você precisa digitar uma senha válida. Saindo…\n”
YES_NO=”y/n”
YES=”y”
CHECK_URL_OR_NOT=” — Você gostaria que o Prey checasse uma URL? (Não significa que o relatório só será gerado a cada vez que o programa rodar) [n] ”
ENTER_URL=” — Certo, então qual será a URL? [i.e. http://meuservidor.com/url_checagem_prey] ”
INVALID_URL=” !! Você precisa definir uma URL. Saindo…\n”
SET_TIMING=” — Certo, essa é a última. Com que frequência (em minutos) você quer que o Prey seja rodado? [$TIMING] ”

INSTALLING_SOFTWARE=” — Certo, instalando programa necessário…\n”
COPYING_ISIGHTCAPTURE=” — Copiando iSightCapture para $INSTALLPATH…”
COPYING_FILES=”\n — Copiando os arquivos necessários para $INSTALLPATH e definindo as permissões…”
ADDING_CRONTAB=” — Adicionando uma entrada no crontab…”
INSTALL_OK=”\033[1m\n — Tudo certo! O Prey está funcionando agora. Você agora pode remover este diretório com segurança.
– Se algum dia você quiser desinstalar o Prey, é só remover o diretório $INSTALLPATH
e remover a linha do Prey no crontab raiz: \n
\t $ sudo rm -Rf $INSTALLPATH\n \t $ sudo crontab -l | grep -v prey | sudo crontab -\n
– Para atualizações lembre-se de dar uma checada em http://preyproject.com!\033[0m\n\n”

else # mensagens de status do prey

STRING_START=”\n ### PREY $version abre suas asas!\n”
STRING_TRY_TO_CONNECT=” — Tentando se conectar a primeira rede wifi aberta disponível…”
STRING_NO_CONNECT_TO_WIFI=” — Não foi possível encontrar uma maneira de se conectar a uma rede wifi aberta!”
STRING_CHECK_URL=” — Checando URL…”
STRING_NO_PROBLEM=” — Nada para se preocupar. :) \n”
STRING_PROBLEM=” — TEMOS UM PROBLEMA!!!”
STRING_WRITE_EMAIL=” — Escrevendo email…”
STRING_SENDING_EMAIL=” — Enviando o relatório…”
STRING_ERROR_EMAIL=”\n\033[1m !! Ocorreu um problema ao tentar enviar o email. Você tem certeza que ele foi configurado corretamente?
Se você está usando o Gmail, tente remover o ‘@gmail.com’ do campo smtp_username no arquivo de configuração do Prey.\033[0m\n”
STRING_REMOVE_EVIDENCE=” — Removendo todos os traços de evidência…”
STRING_DONE=” — Pronto! Boa caça! :) \n”

EMAIL_NOTICE=”"
EMAIL_HEADER=”Boas notícias meu amigo, parece que nós o encontramos.\n\nAqui está o relatório do seu computador:\n\n”
EMAIL_FOOTER=”\n\nAgora, vá pegar o desgraçado!\n\n–\nSeu humilde servente, Prey\nhttp://preyproject.com”

fi

Linux para aplicações específicas.

3

Escolher en qual linguagem de programação desenvolver é comparável a escolha do time de futebol ou até mesmo qual religião seguir. A mesma coisa se aplica em decidir qual sistema operacional utilizar. A partir disto tudo se transforma em uma verdadeira guerra.

Este post é bastante específico, como o próprio título sugere, e surgiu a partir da idéia de aproveitar um hardware obsoleto (processador Via 500Mhz com 256Mb de RAM e um HD que pouco importa) para executar uma aplicação muito específica.

Baseando no foco de desenvolvimento da plataforma Java, foi decidido usar uma versão muito simples do Linux que fosse rápida o suficiente para se enquadrar nos padrões atuais de usabilidade dos sistemas informatizados.

A distribuição escolhida para o experimento foi a Debian em sua versão de codinome Lenny (5.0). O fato de utilizar o Debian é devido a facilidade e simplicidade, sem contar que é a distro “pai” do Ubuntu: o “Windows” dos Linux, mas que possui uma comunidade participativa e produtora muito conteúdo.

Especificamente o arquivo de instalação utilizado foi debian-504-i386-netinst.iso que é uma versão compacta (180Mb) para instalação via rede.

Vamos de deixar de conversa fiada e partir para o que interessa. Instalação passo a passo e ilustrada do Debian Lenny.

Como este processo é experimental foi utilizado o VirtualBox com 2Gb de disco e 256Mb de RAM, o processador ficou com 1 núcleo de 2.4Ghz, valor incomparável com os 500Mhz do hardware que será utilizado. A rede está configurada como bridged adapter e possui um servidor DHCP na rede, desta forma já na instalação o SO reconhece a Internet sem problemas (Figura 1).

Figura 1

Quando iniciar o boot pelo CD-ROM, utilizar a instalação em modo texto (Figura 2).

Figura 2

Selecionar o idioma da instalação e padrão do sistema operacional (Figura 3).

Figura 3

Selecionar o país (Figura 4).

Figura 4

Seleção do layout de teclado (Figura 5).

Figura 5

Informar o nome da máquina (Figura 6).

Figura 6

Informar o nome do domínio (Figura 7). Neste caso não possuimos domínio.

Figura 7

Selecionar fuso horário (Figura 8).

Figura 8

Particionamento de disco (Figura 9). Neste caso será utilizado o disco inteiro e partição única.

Figura 9

Seleção do disco (Figura 10).

Figura 10

Seleção dos pontos de montagem em partições específicas (Figura 11). Neste caso todos os arquivos em uma única partição.

Figura 11

Verificar o particionamento (Figura 12).

Figura 12

Confirmar o particionamento (Figura 13). Depois dessa confirmação não tem mais volta, os dados já foram para o “espaço”.

Figura 13

A partir deste ponto será feita a intalação do sistema básico.

Informar a senha do root (Figura 14) e confirmar na tela seguinte.

Figura 14

Informar nome real do usuário que será criado para tarefas não administrativas (Figura 15).

Figura 15

Informar o nome da conta do usuário não administrativo (Figura 16). Na próxima tela será necessário atribuir e confirmar uma senha para este usuário.

Figura 16

Selecionar localização dos repositórios (Figura 17).

Figura 17

Selecionar o servidor dos repositórios (Figura 18).

Figura 18

Tela de configuração do apt.

Seleção de software (Figura 19). Instalar somente o sistema básico.

Figura 19

Instalação do GRUB (Figura 20).

Figura 20

Concluir a instalação (Figura 21). Não esqueça de remover o disco do driver.

Figura 21

Agora que a instalação foi concluída, iremos iniciar o processo de instalação dos demais softwares necessários. Para edição dos arquivos gosto de utilizar o mcedit, mas caso preferir o vi ou qualque outro, fique a vontade.

Efetue login como root.

  1. Instalar mc (Gerenciador de Arquivos e Editor de Texto).
    # apt-get install mc
  2. Modificar repositórios configurados.
    # mc /etc/apt/sources.list

    Alterações no arquivo de configuração dos repositórios (Figura 22).

    deb http://ftp.debian.org/debian/ lenny main contrib non-free
    deb-src http://ftp.debian.org/debian/ lenny main contrib non-free
    deb http://security.debian.org/ lenny/updates main contrib non-free
    deb-src http://security.debian.org/ lenny/updates main contrib non-free
    deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
    deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

    Figura 22

  3. Atualizar repositórios.
    # apt-get upgrade
  4. Atualizar sistema operacional.
    # apt-get dist-upgrade
  5. Instalar servidor ssh (Shell Remoto).
    # apt-get install ssh
  6. Instalar sudo (Executar aplicação com poderes administrativos).
    # apt-get install sudo
  7. Instalar xorg (Servidor Gráfico).
    # apt-get install xorg
  8. Instalar mingetty (Login Automático).
    # apt-get install mingetty
  9. Instalar fluxbox (Gerenciador de Janelas).
    # apt-get install fluxbox

    O fluxbox foi escolhido por ser um gerenciador de janelas leve. Dependendo do tipo de aplicação que for executada o gerenciador de janelas torna-se desnecessário.

Terminando de instalar estes softwares é necessário partir para a configuração.

  1. Login automático.
    Atenção: esta operação pode fazer com que seu sistema operacional pare de funcionar, caso seja realizada incorretamente. Muita atenção.

    Edite o arquivo /etc/inittab

    #mcedit /etc/inittab

    Procurar a linha:
    2:23:respawn:/sbin/getty 38400 tty2
    Alterar para:
    2:23:respawn:/sbin/mingetty –autologin usuarioqualquer tty2

    Figura 23

    Atualizar o inittab:

    # init q

  2. Reconfigurar servidor gráfico.Editar xorg.conf.
    #mcedit /etc/X11/xorg.conf

    Section “Device”
    Identifier     “Configured Video Device”
    Driver         “vesa”
    EndSection

    Section “Screen”
    Identifier     “Default Screen”
    Device         “Configured Video Device”
    Monitor        “Configured Monitor”
    DefaultDepth    24
    Option         “NoLogo” “True”
    SubSection     “Display”
    Depth           24
    Modes          “1024×768″ “800×600″ “640×480″
    EndSubSection
    EndSection

  3. Iniciar servidor gráfico automaticamente.Criar ou alterar o aquivo .bash_profile na pasta do usuário e adicionar as seguintes linhas no final do arquivo:
    #mcedit /home/usuario/.bash_profile
    if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty2 ]; then
    startx
    fi
  4. Configurar aplicações para serem iniciadas com o servidor gráfico.Criar o arquivo .xsession no home do usuário:
    #mcedit /home/usuario/.xsession

    fluxbox &
    xclock
    sudo halt

  5. Permitir o usuário desligar a máquina.Alterar o aquivo /etc/sudores.
    #mcedit /etc/sudores
    usuario ALL=NOPASSWD: /sbin/halt
  6. Alterar o tempo de espera do GRUB.Editar o arquivo /boot/grub/menu.lst
    # mcedit /boot/grub/menu.lst
    Procurar por:

    ## timeout sec
    # Set a timeout, in SEC seconds, before automatically booting the default entry
    # (normally the first entry defined).

    timeout 5

    Alterar o tempo na opção “timeout”, que está em segundos.

  7. Teste FinalReiniciar a máquina:
    #reboot
    O sistema deverá iniciar, logar automaticamente como usuário, iniciar o servidor gráfico e abrir a aplicação xclock.

    Figura 24

    Quando o relógio for fechado a máquina desligará.

Alterando o script de inicialização do servidor X, no lugar do xclock, deverá ser chama a aplicação que se deseja.

Como já informado anteriormente, o fluxbox pode ser desnecessário caso a aplicação não necessite um gerenciador de janelas.

O próximo passo é tentar otimizar a velocidade de inicialização da máquina.

Conto com a colaboração de todos para melhorarmos esse tutorial.

Go to Top
11 visitantes online agora
4 visitantes, 7 bots, 0 membros
Máx. de visitantes hoje: 12 às 11:00 pm GMT+3
Este mês: 17 às 02-01-2012 10:57 am GMT+3
Este ano: 30 às 01-15-2012 05:27 pm GMT+3
No total: 263 às 11-11-2009 02:50 pm GMT+3