Arquivos da categoria: software

soft só no nome

Cache e camadas no ArcGIS Server

Estou trabalhando com o ArcGIS Server 9.3.1 e tenho de inserir alguns serviços nele. Cada serviço corresponde à uma camada, ou  layer, em meu mapa.

Para melhorar o  desempenho – sofrível se comparado com o MapServer – existe uma opção para a utilização de cache no ArcGIS Server que funciona bem. Ao invés do servidor ter de reconstruir a imagem, toda vez que ela é requisitada, ele gera esta imagem apenas uma vez, grava em algum lugar e depois apenas a repassa para o servidor de aplicação.

Isto gerou um problema. Quando as imagens era geradas dinamicamente, havia a possibilidade do ArcGIS Server reprojetar e/ou reposicionar o mapa para  combiná-la com todos os layers.  Se um serviço usa EPSG:4618 e outro usa SR-ORG:95,  por exemplo. Mas com o uso do cache, a imagem criada possui apenas o sistema de referenciamento definida no serviço, não podendo mudar.

Assim, ao combinar dois layers cujos sistemas de referenciamento espacial são diferentes, temos as seguintes situações:

  • Os dois layers são dinâmicos:  um sistema é escolhido e os dois layers utilizam este;
  • Um dos layers é dinâmico e o outro possui cache: o dinâmico é projetado/adaptado ao sistema do que tem cache;
  • Os dois layers usam cache: apenas um deles é exibido. Não há reprojeção.

O ideal então é manter um único sistema de referenciamento espacial nos serviços. E aproveitar para deixar todos no SIRGAS2000.

ArcSDE e MS SQL Server 2008

O ArcSDE é um produto da ESRI que consiste-se em uma camada sobre bancos de dados relacionais, tornando-os capazes, se já não forem, de manipular informações geograficamente referenciadas, ou dados geo.

O MS SQL Server 2008 é o banco de dados relacionais da Microsoft.

A versão mais recente do ArcSDE, a 9.3, tornou possível utilizar o tipo de geometria nativa: o ‘GEOMETRY’ . Mas como configurar o sistema de forma a utilizá-lo?

Existe uma entrada no banco de dados que deve ser alterada. Ela se encontra na tabela sde.db_tune. Dê uma xeretada para verifcar seu conteúdo:

SELECT *
FROM sde.dbtune
WHERE
    keyword like 'DEFAULTS'    AND
    parameter_name like 'GEOMETRY_STORAGE'

A entrada que deve ser alterada é esta:

UPDATE sde.dbtune
SET config_string = 'GEOMETRY'
WHERE
    keyword like 'DEFAULTS'    AND
    parameter_name like 'GEOMETRY_STORAGE'

A listagem de tipos disponíneis em seus respectivos sistema pode ser obtido no help do ArcSDE.

Regulamentação de profissões na área de TI

Há alguns dias recebi por email um link apontando para um projeto de lei (PLS - PROJETO DE LEI DO SENADO, Nº 607 de 2007)tramitando em nosso senado. O texto inicial é de autoria do senador Expedito Júnior,  com relatórios subseqüentes por Eduardo Azeredo e Marconi Perillo.

Meu ponto de vista, compartilhada por muitos, é de que é uma lei desnecessária. Inútil.

Imagino que o objetivo do projeto de lei, ao regulamentar a área, seja de atribuir responsabilidades à alguns tipos de pessoas.  Para isso precisamos:

  1. identificar as responsabilidades;
  2. identificar as pessoas.

Estas responsabilidades,  ao menos até o último texto, são descritas como:

É privativa de Analista de Sistemas a responsabilidade técnica por projetos e sistemas para processamento de dados, informática e automação, assim como a emissão de laudos, relatórios ou pareceres técnicos.

E as pessoas descritas como (grifo meu):

Art. 1º É livre, em todo o território nacional, o exercício das
atividades de análise de sistemas e demais atividades relacionadas com a Informática, observadas as disposições desta Lei.

O grande  problema é de tentar atribuir uma ampla gama de responsabilidades a um espectro imenso de profissionais.  Contornando este último  problema define-se Analista de Sistemas, profisisonal apto a exercer análise de sistemas e demais atividades relacionadas com a Informática, como a pessoa formada nos cursos superiores de Análise de Sistemas, Ciência da Computação ou Processamento de Dados.

Isto não leva em conta muitas questões, levantadas por pessoas mais aptas que nossos representantes no legislativo: a ACM, a IEEE e a SBC, como cita Phillip Calçado. O resultado a que chegaram:

ACM e IEEE:

“ACM is opposed to the licensing of software engineers at this time because ACM believes it is premature and would not be effective at addressing the problems of software quality and reliability.

SBC:

1. Exercício da profissão de Informática deve ser livre e independer de diploma ou comprovação de educação formal.
2. Nenhum conselho de profissão pode criar qualquer impedimento ou restrição ao princípio acima.
3. A área deve ser Auto-Regulada.

Sabemos que na prática esta lei não mudará nada, a não ser a necessidade de,  em orgãos públicos ou que prestam serviços ao governo,  existir algum Analista de Sistemas para assinar e se responsabilizar por um sistema de informação.

Acredite, se quiser

Muita gente clama pela lei e espera que ela seja selada, registrada, carimbada, avaliada, rotulada, aprovada. Acreditam que uma lei diferenciaria os profissionais entre competentes e não-competentes. Acreditam que é necessária uma lei para distinguir entre competentes e não-competentes. Acreditam que este é um bom modo de justificar o tempo e dinheiro gasto para se formarem.  Acreditam que empresas que não sabem contratar, vão passar a saber depois da lei.  Acreditam que seus salários vão subir. Acreditam que a profissão está banalizada, e este é um passo para torná-la séria.

É muita coisa para se acreditar.  Sinto muito, mas não acredito em nenhuma delas.  Acredito que produzir melhor e com mais eficiência seja mais importante. Uma graduação não te garante isto. Uma boa graduação ajuda. Bastante. Ou inteligência, habilidade  e perseverança. Deixe o mercado separar o joio do trigo. Ele tem mais prática e competência neste jogo.

Contramão

Enquanto nossos políticos se preocupam em regulamentar uma profissão, há quem diga que ela está morta.  O controle é ilusão, ao menos nos projetos que importam:

Consistency and predictability are still desirable, but they haven’t ever been the most important things. For the past 40 years, for example, we’ve tortured ourselves over our inability to finish a software project on time and on budget. But as I hinted earlier, this never should have been the supreme goal. The more important goal is transformation, creating software that changes the world or that transforms a company or how it does business. We’ve been rather successful at transformation, often while operating outside our control envelope. Software development is and always will be somewhat experimental.

Regulamentar, controlar, guiar. Parece não ser o caminho para obtermos melhores resultados.

DSpace em um CentOS 5.3

Novamente estou eu implantando o DSpace em um servidor Linux, desta vez um CentOS 5.3, um sistema operacional baseado nos pacotes disponibilizados pelo Red Hat Linux. Mas desta vez é a versão 1.5, ao invés da 1.4. Hora de desbravar novos bugs

O DSpace é uma biblioteca digital, mas pode ser encarado como uma ferramenta de gestão de documentos eletrônicos. No entanto sua construção tem como objetivo organizar e tornar acessível material técnico e científico, que por sua vez são incluídos no sistema pelos próprios autores (self-archiving).

Da versão 1.4 para a versão 1.5 ocorreram inúmeras mudanças. Dentre elas a adoção do Maven, para tratar das dependências de bibliotecas Java, e o estabelecimento de uma interface XML/XSLT denominada Manakin, embora a antiga interface em JSP continue sendo distribuído e funcionando.

Relato aqui então particularidades da instalação com relação ao CentOS. Detalhes e uma melhor descrição da instalação podem ser vistos na documentação oficial.

Continue lendo

Firefox 3.5 disponível!!!

Foi lançado hoje a nova versão deste formidável navegador.
http://www.getfirefox.com

Além de maior suporte aos padrões web mais atuais (HTML 5, CSS 2.1), aumentou bastante o desempenho, crucial para visitar sites Ajax:

O Firefox mais rápido de todos

As coisas mudam rapidamente na web, por isso melhoramos o motor do Firefox para assegurar que você possa acompanhá-las: o Firefox 3.5 é duas vezes mais rápido que o Firefox 3 e dez vezes mais rápido que o Firefox 2.* Dessa forma, aplicações Web como emails e sites de fotos estarão mais rápidas e sem atrasos.

Meu uso indica que está tão rápido quanto o Chrome: super ligeiro! Agora tenho a velocidade do Chrome e os plugins indispensáeis do Firefox, como o Firebug.

Não consegue listar os Databases no SQL Management Studio?

O MS SQL Management Studio (SMS) é uma ferramenta excelente para gerenciar seus bancos de dados. Isto não quer dizer que ele não tenha seus problemas.

O pior deles é que, ao se tentar listar os bancos de dados do sistema, e você não tiver permissão para visualizar um deles, o SMS graciosamente te apresentará esta mensagem de erro:

Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)

Additional information:
An exception occured while executing a Transact-SQL statement or batch.
(Microsoft.SqlServer.ConnectionInfo)
The server principal “Seiti” is not able to access the database “AlgumBanco” under the current security context. (Microsoft SQL Server, Error: 916)

Como então listar os bancos de dados? Não sou o único nem serei o último a enfrentar este problema, então é claro que alguém já blogou sobre isto e o resolveu, inclusive mais de uma pessoa.

O problema consiste-se nas informações que são apresentadas no Object Explorer Details – para visualizá-lo tecle F7. Note as colunas que existem na visualização padrão: Name, Policy Health State, Recovery Model, Compatibilty Level , Collation e Owner.

Observe a coluna Collation. O SMS lista os bancos e verifica as informações que devem constar no Object Explorer Details.  Você não tem permissão sobre um dos bancos listados. Mas para saber o collation do banco deve-se ter permissões sobre o mesmo. O SMS entra em pânico, interrompe tudo, deixa de fazer o que deveria e mostra a mensagem de erro acima. Simples.

Como resolver? Clique com o direito sobre os nones das colunas e remova o Collation. O SMS ficará feliz da vida e fará o que devia fazer.

Google Local Business Center update

Li um post interessante no meu RSS Reader:

http://googleblog.blogspot.com/2009/06/local-business-center-dashboard-opens.html

Atualizaram o serviço e incluíram mais opções. Se você não conhece, o Google Local Business Center, ou Google LBC,  permite ao proprietário de uma empresa que apareça  no mapa do Google Maps,  editar os dados apresentados.

Assim pode-se atualizar o telefone de contato, adicionar informações e tudo mais. Para isto é necessário provar que você é realmente responsável pela empresa, e aí entra em campo, em uma das opções,  o velho e conhecido correio.  Aquele do envelope e selo, lembra?

Bom, parece que existem indicadores interessantes para aqueles que possuem empresas com localização física:

  • Impressions: The number of times the business listing appeared as a result on a Google.com search or Google Maps search in a given period.
  • Actions: The number of times people interacted with the listing; for example, the number of times they clicked through to the business’ website or requested driving directions to the business.
  • Top search queries: Which queries led customers to the business listing; for example, are they finding the listing for a cafe by searching for “tea” or “coffee”?
  • Zip codes where driving directions come from: Which zip codes customers are coming from when they request directions to your location.

Em resumo, são estatísticas geradas pelo próprio Google e seu sistema
Google Maps, quando seu uso faz referência à sua empresa. Eu diria que
servem para complementar o Google Analytics.

Resolvendo o problema da busca no DSpace

Ocorre um problema em minha instalação  do DSpace. As buscas realizadas contendo caracteres com diacríticos (acentuação e etc.) retornam resultados estranhos, pois os termos da busca ficam desfigurados. E não sou só eu que enfrento isto.

Fui escarafunchar o código fonte tentando encontrar alguma solução. Não encontrei nenhuma. Vamos apelar ao onisciente então.

Um post me chamou a atenção para a configuração do Tomcat. É necessário editar o arquivo /etc/tomcat5/server.xml de formar que o elemento Connector em questão  tenha um atributo URIEncoding=”UTF-8″.

Embora este atributo seja sempre configurado no Connector padrão , que escuta na porta 8080,  me lembrei que eu havia configurado o Tomcat para funcionar em conjunto com o Apache, através do mod_jk, na porta 8009 com o AJP Connector.

Fui verificar o arquivo server.xml e bingo! Foi só mudar de

<Connector port="8009" enableLookups="false"
    redirectPort="8080" protocol="AJP/1.3" />

para

<Connector port="8009" enableLookups="false"
    redirectPort="8080" protocol="AJP/1.3"
    URIEncoding="UTF-8" />

E a busca voltou a funcionar.

Reintegrando um branch no SVN

No meu trabalho utilizamos o excelente Subversion já há algum tempo (nem gosto de lembrar da época de zipar aquivos, colocar em uma pasta compartilhada da rede, nomear os zips com a data, sua cópia do projeto sempre diferente das dos colegas etc e tal).

Mas só há algum tempo começamos a nos organizar um pouco melhor e utilizar o esquema de trunk, branches e tags.

E um problema surgiu ao tentarmos reintegrar um branch ao trunk:

Retrieval of mergeinfo unsupported

Que diabos é isto? Após pesquisar no oráculo descobri que se trata de uma atualização do Subversion ocorrida entre as versões 1.4 e 1.5 que adicionaram novas funcionalidades.

Entretanto, para que estas funcionalidades sejam utilizadas é necessário atualizar seu repositório através do comando svnadmin upgrade:

svnadmin upgrade caminho_do_repositorio

Feito isto, tudo ok!

Gerando boletos bancários em Asp.NET – Parte I

Estou em um projeto que necessita a criação de um boleto bancário para o pagamento de um serviço. Como gerá-lo, usando o Visual Studio 2008, Crystal Reports e o Linq To Sql ?

Boleto?

Vamos primeiro entender do que é composto basicamente um boleto:

  • Banco:  quem gerencia a transação;
  • Cedente:  quem vai receber a grana;
  • Sacado:  quem paga;
  • Valor do documento: quanto será pago
  • Data de vencimento: até quando pode ser pago;
  • Modalidade:  com ou sem registro. O comum para vendas online é sem registro.  Se o sacado não pagar, a responsabilidade de correr atrás é do cedente.

A entidade que padroniza os boletos no Brasil é  a Federação Brasileira de Bancos – FEBRABAN.

Continue lendo