SmartyPDT 5.4

Acaba de sair do forno o novo Smarty Support for PDT v0.5.4, ou simplesmente SmartyPDT.

O SmartyPDT se trata de um plugin para o ótimo [[EclipsePDT]]. Infelizmente um bug chato, que apresenta um erro em toda primeira linha de todo template ainda resiste. Firme e forte.

Posted in programação | Leave a comment

Hello Blogosphere World!

Hello!

Posted in vida® | 2 Comments

Bem vindo ao WordPress!

Junto com o WordPress foi instalado o plugin “NextGEN Gallery” (uma galeria de imagens). Para ativar este recurso, acesse a administração do WordPress e no menu “Plugins” ative as extensões “NextGEN Gallery” e “NextGEN Gallery Widget”.

Posted in vida® | 1 Comment

SIG – Sistema de Informação Geográfica

imageUm SIG trata-se de um Sistema de Informação Geográfica, ou também Sistema de Informação Geoespacial.

Dois sistemas livres amplamente utilizados são o MapServer e o GeoServer. Conheço um pouco (bem pouco, na verdade) o MapServer e desconheço o outro. Minha intenção é documentar, nesta página, todo o processo para a instalação e configuração de ambos.

O MapServer é um WMS que roda como cgi, mas possui alguns módulos que dão suporte a algumas linguagens, como o PHP, e rodar diretamente do servidor Apache.

O GeoServer é uma aplicação java, que por esta razão necessita de um servidor de aplicações java para web. Além disso ele tem a possibilidade de, assim como o MapServer, obter dados a partir do PostGis

O PostgreSQL, ou postgres, é um banco relacional amplamente conhecido e utilizado. O PostGIS é um conjunto de extensões ao postgres que lhe confere a capacidade de realizar cálculos e armazenamento de informações georeferenciadas.

Ambientando-se

Alguns acrônimos e definições

  • OGCOpen Geospatial Consortium – padroniza os tipos de dados utilizados pelos diversos SIGs;
  • WMS – Web Map Service – através de pedidos embutidos em requisições em URLs, um WMS deve prover: metadados sobre o próprio serviço, um mapa geográfico e, opcionalmente, informações sobre itens particulares no mapa;
  • WFS – Web Feature Service – descreve operações sobre dados geográficos e suas características (features, dados que podem ser gerados para se criar mapas geográficos);
  • WCS – Web Coverage Service – agregando os serviços acima, permite a busca e transformações sobre os dados obtidos em uma rede de aplicações geográficas distribuídas;
  • CS-W – Catalog Service Web – padroniza a interface utilizada para consultar os serviços supracitados;
  • SFS – Simple Features – SQL – define como digitalizar informações geográficos, geralmente em um banco de dados relacional (point, linestring, polygon etc.);
  • GML – Geography Markup Language – um XML para transporte de dados geográficos.
  • SRS – Spatial Reference System, no contexto da OGC, são codificados na sintaxe definida pela EPSG (European Petroleum Survey Group). O SRS padrão definido pela OGC é 4326 (WGS84, World Geodetic System, grau decimal).

Vamos agora criar um ambiente de avaliação e desenvolvimento de sistemas SIG dentro do Ubuntu. Primeiro devemos proceder com a instalação dos pacotes postgresql, postgis, postgresql-8.2-postgis, libpostgis-java, sun-java5-bin.

Entre os outros pacotes instalados automaticamente está o proj4, que reúne bibliotecas e programas de conversão de dados.

Bom, após a instalação do Java pode ser necessário configurar a máquina virtual java padrão do sistema. Isto é feito, no Ubuntu, através do comando update-java-alternatives.

GeoServer

O Jetty é um servidor de aplicações java web escrito 100% em java. É conhecido por seu desempenho, em contraste com o ApacheTomcat. Uma opção para rodar o GeoServer é baixar o pacote binário e rodá-lo a partir do servidor Jetty embarcado no próprio GeoServer:

cd /opt
sudo unzip -xvzf geoserver-*-bin.zip
sudo export JAVA_HOME=‘/usr/lib/jvm/java-1.5.0-sun’
sudo export GEOSERVER_HOME=‘/opt/geoserver’
sudo $GEOSERVER_HOME/bin/startup.sh

Aponte seu navegador para http://localhost:8080/geoserver e poderá ver seu servidor GeoServer rodando. Para se entrar na área restrita o nome de usuário é admin e a senha é geoserver.

Outra opção é pegar o pacote war e implantá-lo no ApacheTomcat. Com o Tomcat rodando, entre em sua interface de gerenciamento, provavelmente http://localhost:8180/manager para fazer o deploy. Talvez seja preciso editar as políticas de sistema para que tudo funcione, como pode ser visto no Southern Tip blog.

Caso você tenha shapefiles para testar, recomendo este tutorial.

PostGIS

PostGIS logoNo Ubuntu, após instalar o pacotes referentes ao PostgreSQL e ao PostGIS é preciso executar o seguinte procedimento para criar um template no postgres habilitado a executar funções SIG:

Entre como o usuário postgres:

sudo su - postgres

Crie um banco de dados. Coloque o sufixo template_ para facilitar tua vida:

createdb template_gis

Habilite a linguagem plpgsql para criação de stored procedures:

createlang plpgsql -d template_gis

Alimente o banco com as funções e tabelas de referência do sistema SIG (serão criadas várias funções e inserções no banco, aguarde):

psql template_gis -f /usr/share/postgresql-8.2-postgis/lwpostgis.sql
psql template_gis -f /usr/share/postgresql-8.2-postgis/spatial_ref_sys.sql

Entre no banco criado (isto abrirá um terminal de comandos do postgresql):

psql template_gis

Finalmente transforme o banco criado em um template:

UPDATE pg_database SET datistemplate=‘true’ WHERE datname=‘template_gis’;

Saia do terminal do postgres:

\q

A partir daí pode-se criar novo bancos SIG a partir do nosso template criado. Recomendo a utilização do pgAdmin III (pacote pgadmin3).

Atenção: caso ainda não tenha feito, é preciso criar uma senha para o usuário postgres no próprio banco de dados. Abra um terminal de comando do postgres:

sudo -u postgres psql template1

Altere a senha do usuário postgres:

ALTER USER postgres WITH PASSWORD ‘secret’;
\q

E se for necessário logar no postgres remotamente, isto é, via tcp/ip a partir de outra máquina (útil para separar o banco de dados da aplicação SIG), é preciso editar o arquivo /etc/postgresql/8.2/main/postgresql.conf:

#listen_addresses = 'localhost'
listen_addresses = '*' #isto faz com que o postgres aceite conexões de outros endereços de rede

E o arquivo /etc/postgresql/8.2/main/pg_hba.conf:

#IPv4 local connections:
#qualquer computador com endereço 192.168.0.* se conecta se tiver um usuário configurado no postgres
host  all  all  192.168.0.0/24 md5

GeoServer: Configuração e testes

GeoServer

Para carregar shapefiles siga os passos contidos neste ótimo tutorial. Só houve um problema que ocorreu comigo foi do sistema não encontrar automaticamente o número EPSG (Wikipedia:EPSG). Tive de obter a listagem gerada pelo próprio GeoServer e buscar o número correspondente aos dados.

Shapefiles no PostGIS

Para carregar os shapefiles no postgis é preciso utilizar o programa shp2pgsql, instalado com os pacotes referentes ao postgis:

shp2pgsql -s SRID arquivo.shp nom_tabela > arquivo.sql

Onde SRID é um número que você deve encontrar da seguinte maneira:

  • Abra o arquivo .prj em um editor de texto. Você encontrará algo como:
PROJCS["SAD_1969_UTM_Zone_23S",GEOGCS["GCS_South_American_1969",DATUM["D_South_American_1969",SPHEROID["GRS_1967_Truncated",6378160.0,298.25]]
e
UNIT["Degree",0.0174532925199433]
  • Abra a ferramenta de consulta do PgAdmin III e entre com a seguitne consulta (pode demorar alguns segundos):
select srid, srtext, proj4text from spatial_ref_sys where srtext ILIKE '%SAD_1969%'
  • Anote o srid (no caso 29193) da entrada mais próxima do esperado.

Referência: started with PostGIS http://www.bostongis.com/?content_name=postgis_tut01

Isto criará um arquivo de comandos SQL arquivo.sql. Tive outros problemas ao tentar executar os comandos contidos no arquivo SQL: ele não estava em utf8, e sim em latin1; e o usuário geo_user que criei não tinha as permissões necessárias para criar tabelas no banco.

Bom, como meu banco está em utf8 tive de converter o arquivo SQL com o seguinte comando:

iconv  -f latin1 -t utf8  -o arquivo.sql2  arquivo.sql

Quanto às permissões, é preciso conceder ao usuário em questão acesso à tabela geometry_columns, pois ela controla as colunas com as geometrias (pontos, linhas, polígonos) das demais tabelas no banco em que se deseja guardar informações geográficas. Também é preciso conceder permissões sobre a tabela spatial_ref_sys, que possui os dados geográficos necessários para o funcionamento do SIG.

Após tudo acertado basta executar o seguinte comando para criar uma tabelas contendo os dados geográficos extraídos do shapefile:

psql -d geo_bd_name -U geo_user -f arquivo.sql2

Para configurar o GeoServer siga os passos do seguinte tutorial.

Plugins para acesso a outras fontes de dados podem ser encontrados na página na sourceforge.

ArcSDE como fonte de dados

O ArcSDE é um sistema proprietário desenvolvido pela ESRI que efetua a conexão entre o sistema ArcGIS e diversos SGBDs. O GeoServer pode ser configurado para utilizar o ArcSDE como fonte de dados de suas requisiçõs.

Tutorial de como utilizar o plugin para conexão com o ArcSDE (note que o plugin não funciona no GeoServer 1.6 RC2 ou RC3.

Lembre-se de baixar o pacote com o patch da ESRI ArcSDE e colocar os todos os arquivos jar necessários (é só ver o tutorial) no diretório $GEOSERVER_HOME/webapps/geoserver/WEB_INF/lib/.

OpenLayers

Instalado o GeoServer é preciso pensar: como criar um aplicação PHP com ela? Ok, não é preciso pensar nisso, mas é o que estou me perguntando agora.

A interface com o usuário apresentada pelo GeoServer é baseada na biblioteca de OpenLayers, que se trata de uma biblioteca javascript aberta e livre para criação de sistemas semelhantes ao Google Maps ou ao MS Live Earth.

A configuração e personalização do openlayers exige bastante programação javascript, por isso recomendo a utilização do plugin do Eclipse jseclipse.

Referências

Posted in software | Tagged , | 3 Comments

Apache Tomcat

O Apache Tomcat é um servidor de aplicações Java. Vamos instalá-lo no Ubuntu Feisty Fawn.

Primeiro instale os seguintes pacotes:

sudo apt-get install sun-java6-jre sun-java6-jdk tomcat5.5 tomcat5.5-webapps tomcat5.5-admin

Talvez seja preciso definir qual o Java padrão do sistema.

Depois edite o arquivo /etc/default/tomcat5.5, colocando a seguinte linha:

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

E crie o arquivo de log, removendo o pipe quebrado (dica do fórum do Ubuntu):

cd  /var/log/tomcat5.5/
sudo rm catalina.out
sudo touch catalina.out
sudo chown tomcat55:nogroup catalina.out
sudo chmod uo-wrx catalina.out

Como instalamos o pacote tomcat5.5-admin, basta apontar para o endereço http://localhost:8180/admin que será apresentada uma tela de login. Mas que usuário e senha utilizamos? Nenhum, ainda falta configurá-lo. Devemos editar o arquivo /var/lib/tomcat5.5/conf/tomcat-users.xml, editando a seguinte linha:

<user username="tomcat" password="tomcat" roles="tomcat"/>

Para algo como isto:

<user username="tomcat" password="senhadotomcat" roles="tomcat,admin"/>

Reinicie, ou inicie, o bichano:

sudo /etc/init.d/tomcat5.5 restart
Posted in software, web | 1 Comment

eeeXubuntu no Asus Eee PC

AsusEeePC e Toshiba 14 polegadas 2

Adquiri recentemente um AsusEeePC e apesar do sistema instalado ser razoavelmente bem acabado, o XandrOS, me senti um pouco amarrado, seja pela falta de softwares nos repositórios oficiais, seja pelo KDE (prefiro o estilo Gnome).

Decidi então testar o Xubuntu, que tem o XFCE como desktop environment, além de compartilhar com o Ubuntu a vasta gama de softwares contidos em seus repositórios.

Existe um site dedicado àqueles que tem um Eee PC, o http://www.eeeuser.com, além de alguns projetos que objetivam modificar distribuições linux para que sirvam perfeitamente no Eee.

Criando um Live CD USB flash drive

live_flash_drive
Para criar um bootable USB flash drive é preciso:

  • um USB flash drive, é claro (também chamado de pendrive)
  • os arquivos a serem colocados no pendrive
  • o syslinux, um bootloader que opera a partir de um sistema de arquivos FAT (basta instalar o pacote syslinux).

Com o pendrive na mão, o primeiro passo é baixar o eeeXubuntu. Com a ISO em seu disco, monte-o como loop device:

sudo mount eeeXubuntu.iso /cdrom/ -o loop

Isto fará com que o conteúdo da ISO fique disponível no diretório /cdrom. A alternativa é queimar um CD usando a ISO.

Depois basta entrar no diretório /cdrom e executar o script mkusbinstall.sh:

sudo /cdrom/mkusbinstall.sh --autodetect

Sistema funcional

Para aqueles que usam Windows, ainda acostumados a caçar drivers pela internet afora, o Xandros funcionou com o VivoZap. Bastou plugar, configurar uma conexão dialup, informando o número a ser discado, nome de usuário e senha, e pronto!

Tenha em mãos um pendrive de pelo menos 1GB e siga as instruções. Será necessário marcar o pendrive como um dispositivo de boot. Para isto eu utilizei o Gparted.

Durante a criação do Live USB flash drive, surgiram para mim montes de mensagens do tipo:

cp: failed to preserve ownership for `/media/usbdev.Jp7694/install/sbm.bin': Operation not permitted

Mas elas podem ser ignoradas. Agora basta plugar o flash drive no seu Asus Eee PC, ligá-lo e segurar o ESC até surgir uma tela de escolha de dispositivo de boot. Faça a escolha apropriada e aguarde o Xubuntu carregar!

Posted in linux | Leave a comment

Loja virtual do Santo Grão

caféO Santo Grão é uma cafeteria e marca de café gourmet de São Paulo. Como bom apreciador da bebida fiquei interessado em comprar alguns pacotes de café, que são vendidos na loja virtual do site.

Infelizmente o sistema deles não funciona muito bem. Após efetuar uma compra e pagar com cartão de crédito, me foi apresentado uma mensagem de erro. Ponto negativo. Sem receber nem um email de confirmação da compra, e sem um sistema de acompanhamento de na loja virtual, entrei em contato via email – que me espantou pela prontidão. Ponto positivo!

Me foi explicado que a venda não foi realizada, pois a bandeira do cartão não autorizou a venda. Fazer o quê? Após uns dias acabei indo na loja pessoalmente e comprei dois pacotes: o Mogiana e um blend da casa. Infelizmente o café foi moído fino demais, nem era preciso fazer esforço para fazer o café na prensa francesa.

Após um tempo, e acabado o café, comprei mais um par de pacotes. Avisei para moer grosso, mas não fui ouvido. O que é uma pena, pois o sabor do café é muito bom.

O problema é que agora apareceu na fatura de meu cartão a compra feita lá atrás, no início desta história. Parece que até para o nosso cafezinho temos de enfrentar alguns bugs de programação…

Envei um email. Veremos se recebo ou não meu café. E, se receber, se ele estará moído ou não no ponto!

Meu café chegou! Após um atendimento rápido e prestativo via email com a Vanessa Mills o café chegou. E moído no ponto. Fica a dica: compre direto na loja ou via telefone/email. O atendimento humano é muito bom, a loja virtual nem tanto.

Atualização – 13 de out de 2009: reformularam a loja virtual. Será que melhoraram?

Posted in vida® | Leave a comment

Window Maker

Gerenciador de janelas oficial do projeto GNUStep. é leve, prático e fácil de utilizar. É baseado no NEXTStep, sistema criado por Steve Jobs em sua empresa NEXT, criada após sua saída da Apple.

Eu gosto muito dele, principalmente em computadores menos robustos. No momento estou utilizando um Pentium 4 1.8GHz com 621MB de RAM. Usando o Gnome + Firefox + Eclipse + PGAdmin III + LAMP + pequenos aplicativos o consumo de RAM estava em 90% + uns 500MB de swap.

Utilizando o WindowMaker estou consumindo 120MB de swap, com a diferença eu ter ligado o Gimp e vários desklets além de tudo citado acima.
Um aspecto legal é que o projeto foi criado por um brasileiro: o Alfredo Kojima.
Um aspecto não tão legal é que o projeto anda meio parado. A última versão, a 0.92, data de 2005. Talvez seja hora de usar o Xubuntu.

Referências:

Posted in linux, software | Tagged | Leave a comment

I3Geo

logo do I3GeoNas palavras do Portal do Software Público: “O I3Geo é um software para internet baseado em um conjunto de outros softwares livres, principalmente o MapServer. O foco principal é a disponibilização de dados ao público aliados a um conjunto de ferramentas de navegação, geração de análises, compartilhamento e geração de mapas sob demanda.”

Para baixar o pacote contendo o programa é necessário se cadastrar gratuitamente no portal, bastando um email válido. Bom, baixado o I3Geo, tentei instalá-lo no Ubuntu Gutsy Gibbon. É preciso ter instalado o PHP5, o servidor Apache e outros pacotes, dentre os quais o cgi-mapserver e o php5-mapscript.

Bom, abri o pacote no diretório em que coloco meus sistemas de teste, editei o arquivo ms_configura.php para refletir o ambiente de minha máquina, apontei o navegador para o sistema recém instalado e… não funcionou.

RTFM

Documentação para instalar o I3Geo. Caso não se utilize os caminhos padrões pré-configurados, basicamente deve-se editar o arquivo ms_configura.php, e os mapfiles de configuração do MapServer.

Outra alternativa é, após configurado o o arquivo ms_configura.php, apenas criar links simbólicos, a partir dos locais esperados pelo sistema, apontando para sua instalação. Lembre-se de que o Apache deve estar configurado para seguir links simbólicos.

else //se for linux
{
	$editores = array("");
	$dir_tmp = "/var/tmp/ms_tmp";
	$temasdir = "/home/seiti/Workspace/i3geo/temas";
	$temasaplic = "/home/seiti/Workspace/i3geo/aplicmap";
	$locmapserv = "/cgi-bin/mapserv";
	$locaplic = "/home/seiti/Workspace/i3geo";
	$locsistemas= "http://mapas.mma.gov.br/i3geo/menutemas/sistemas.xml";
	$locidentifica = "http://mapas.mma.gov.br/i3geo/menutemas/identifica.xml";
	$locmapas = "http://mapas.mma.gov.br/abremapa.php?id=xml";
	$R_path = "R";//se vc não instalou o R no seu servidor, tente o endereço $R_path = $locaplic."/pacotes/r/linux/r";
	$postgis_con = "";
	$srid_area = 1;
	$postgis_mapa = "";
	/*
	$menutemas = array(
		array("idmenu"=>1,"arquivo"=>"http://mapas.mma.gov.br/i3geo/menutemas/menutemas.xml")
		);
	*/
	$menutemas = "";
	$utilizacgi = "sim";
}

Criação dos links:

sudo mkdir /opt/www
sudo mkdir /opt/www/html
cd /opt/www/html
sudo ln -s /home/seiti/Workspace/i3geo .
mkdir /tmp/ms_tmp
sudo chown www-data:www-data /tmp/ms_tmp
cd /var/tmp
sudo ln -s /tmp/ms_tmp .
Posted in web | Leave a comment

Esquema do BD do Travian

RomanosO Travian é um MMO de estratégia em tempo real (ou surreal?), onde suas construções podem ficar prontas em minutos ou em algumas dezenas de horas.

O parte interessante, deixando o jogo de lado, é que os servidores deste jogo disponibilizam parte de seu banco de dados para os usuários, possibilitando a criação de inúmeras ferramentas de suporte ao jogo.

Para acessar estes dados basta entrar no endereço url_do_travian/maq.sql, onde url_do_travian é o endereço de algum servidor travian (ex: http://s6.travian.pt/map.sql).

Para baixar de um jeito mais fácil que pelo navegador, é só digitar a seguinte linha de comando:

wget http://s6.travian.pt/map.sql

Para carregar este dados em seu próprio banco de dados basta criar um banco qualquer e a seguinte tabela (considerando que você esteja usando o MySQL):

CREATE TABLE x_world (
lochash MEDIUMINT UNSIGNED PRIMARY KEY NOT NULL,
x SMALLINT NOT NULL,
y SMALLINT NOT NULL,
race TINYINT NOT NULL,
town_id MEDIUMINT UNSIGNED NOT NULL,
town_name CHAR(20) NOT NULL,
owner_id MEDIUMINT UNSIGNED NOT NULL,
owner_name CHAR(16) NOT NULL,
guild_id MEDIUMINT UNSIGNED NOT NULL,
guild_name CHAR(8) NOT NULL,
population MEDIUMINT NOT NULL,
INDEX(town_name), INDEX(owner_name), INDEX(guild_name),
INDEX(owner_id), INDEX(guild_id), INDEX(x), INDEX(y),
INDEX(race), INDEX(population)
);

E para carregar os dados no seu banco:

mysql -u nome_usuario -p nome_bd < map.sql

Trocando, é claro, nome_usuario pelo nome do usuário no BD (root?) e nome_bd pelo nome do banco onde se encontra a tabela x_world criada anteriormente.

Mais info no help do Travian.

Posted in programação, web | Tagged , | Leave a comment