quinta-feira, 30 de maio de 2019

Então, e o ecosistema Microsoft, Mapas, UWP, plubicações na Store, e até desktop?

Com o Windows 10 a chegar aos 800 milhões de instalações no primeiro trimestre de 2019, aproximando-se da meta dos 1000 milhões de instalações ainda este ano, como é que é?

Primeira consideração: Mesmo que só 1% de utilizadores do Windows 10 utilizassem a Microsoft Store,... mesmo assim seria muito. Ou não? Justificaria que o Spotify, Facebook, Badoo, ESRI (o blog é geo!),..e outras, estejam lá em força há já bastante tempo. Primeiro para Mobile, e Tablet, e mais recentemente para Desktop.

Segunda consideração: houve quem há uns 5 anos também tenha pensado na assimetria entre o déficite de apps publicadas na Store, somado ao déficite de programadores interessados no ecosistema "Apps da Microsoft" (não era catita, não era cool), e consequente desproporção entre a oferta e a procura de programadores mesmo por parte dos grandes da Internet! Um nicho de mercado, portanto. Contrastar com os ecosistemas Android/IOS onde o número de programadores julgo já ter ultrapassado os 15 milhões a nível global (programadores generalistas, nada de GeoPackage no Android/IOS). 


No que me diz respeito, o desenvolvimento para WinRT, seja Store Apps 8.1, seja Windows Phone 8.1/Mobile 10 apps, sempre girou, e continua ainda a girar (já explico), em torno do Visual Studio Express 2013 for Windows.

WinRT - Windows Runtime (nomenclatura vs Versão do Windows):

Não confundir com o Visual Studio Express 2013 for Windows Desktop para desenvolvimento de aplicativos win32, e não de Windows Store 8.1 apps, e muito menos de UWP. Este VS tabém corre em Windows 7, ao contrário do Visual Studio Express 2013 for Windows, que requer pelo menos o Windows 8.x.

E, não esquecer que Windows Store 8.x apps e Windows Phone 8.x apps podem ser descarregadas da Store via Windows 10 e Windows 10 Mobile, respectivamente. Já não podem é ser submetidas para publicação. E a partir de 1 de Julho de 2019 não vão poder ser actualizadas para dispositivos 8.x (mas sim apenas para dispositivos Windows 10). Está tudo muito bem explicadinho nesta Cronologia dos acontecimentos

Motivo pelo qual uns meses antes de 31 de Outubro de 2018, fartei-me de submeter apps 8.1 para publicação em modo de "reserva estratégica". É a vantagem de ter uma Developer Account,



Não serve só para poder submeter para publicação, mas também recebemos notificações destes anúncios com antecedência suficiente.


Tamém tenho a minha Cronologia:


Junho de 2015 - aquisição de Tablet Windows 8.1 (nunca actualizado para Windows 10) o qual continua a correr Visual Studio Express 2013 for Windows na perfeição apesar de só ter um disco interno de 16 GB.

Como? Se o VS requer montes de espaço livre na drive C: independentemente de termos um disco externo ligado por USB, ou mesmo um cartão SD?    

Nada de grave. Limpando periodicamente a WinSxS, e movendo pelo menos a C:\ProgramData\Package Cache\ para uma drive externa e,  utilizar, por exemplo, junctions.  


Adquirido inicialmente com o propósito de dispositivo de testes de apps em Tablet, tornou-se rapidamente dispositivo de desenvolvimento.


Nota: O projecto Siena para 8.1 já não está na Store apesar de o ter ainda instalado no Tablet.



Outubro de 2016 - Este livro da Microsoft Press revelou-se uma vantagem competitiva inestimável. Apesar de direcionado ao VS 2013, e a Store Apps 8.1, continua a ser válido. As tais apps 8.1 que funcionam em Windows 10:



Novembro de 2016: aquisição de dispositivo Windows 10 Mobile






Adquirido com o propósito de testar apps Windows 10 Mobile, ou melhor, apps desenvolvidas para Windows Phone 8.1 que correm em Windows 10 Mobile...

...acabou por dar jeito também para testar apps desenvolvidas com o Windows App Studio as quais podiam ser testadas no dispositivo com o Windows App Studio Installer.

Para não falar da Windows App Studio Samples.

Como só utilizava o Windows App Studio para gera um .Appx de um link para uma página web, ou seja, para publicar web-apps, que nem sequer eram híbridas (e aquilo nem gerava ficheiro para Android, ou IOS), o seu desaparecimento não me provocou grande transtorno.



 ...mas o Windows 10 Mobile continua a permitir fazer umas brincadeiras interessantes, apesar de o suporte terminar no final de 2019.

É o DOS!



 
É o Windows 3.1!



Havia mesmo este bug, depois corrigido, que permitia percorrer a estrutura de ficheiros e constatar que estava lá mesmo muita coisa do Windows, Tudo compilado para ARM, claro!




E onde entra o GIS, geospatial, mapas no meio deste arrozoado todo?

Através de 3 projectos arquivados no CodePlex para Store Apps 8.1 que continuo a utilizar, pois funcionam em dispositivos com Windows 10 instalado:




Ou o BA3 Altus Mapping Engine SDK for Windows 8.1...alojado no GitHub ...do Bruce Shankle (trabalhou na Microsoft)!


Tudo  Visual Studio 2013 for Windows  que acaba por funcionar em dispositivo Windows 10!



E para que serve esse Windows 10 Pro instalado no teu Desktop?





É só utilizar o MapWinGIS.ocx (o nosso controlo ActiveX preferido).

Ou desenvolver uma DLL no VB6 em Windows 10!

Tudo justificado por este esquema. Desde que não fiquem ancorados ao "Windows 8" do título, claro está!



segunda-feira, 20 de maio de 2019

SpatiaLite no Android

Gosto muito do SpatiaLite.

Basta referir o seguinte episódio que se passou há meia-dúzia de anos: 

Normalmente sempre que preciso de configurar o GeoServer ligado a uma BD Espacial, por regra o PostGIS, utilizo primeiro o SpatiaLite de forma a obter mais rapidamente um Produto Viável Mínimo. Deixando de parte outras considerações que me levem a fazer isso, a verdade é que enviei para produção um Produto Final ligado a SpatiaLite, sem ter voltado a ligar a PostGIS. Ou seja, a imagem levava o PostGIS só para enfeitar!

Como dos requesitos constava a possibilidade de utilização simultânea por, até, 10 utilizadores, e como nunca houve feedback, positivo ou negativo, presume-se que nem deram por ela.

Last edit wins model
 
Tratando-se de SQLite, existem obviamente situações onde faz mais sentidos ser utilizado, o que não quer dizer que não possa ser utilizado também em situações onde faça aparentemente menos sentido, por exemplo server-side database.

As permissões de utilizador dependem apenas das permissões de acesso ao ficheiro.


Adiante,

Do FAQ da página do GeoPackage (um FAQ já recorrente neste blog):

What is the relationship between GeoPackage and SpatiaLite?

SpatiaLite was a major influence on the vector portions of GeoPackage but after extensive discussions, the working group chose to diverge from the SpatiaLite format in a few subtle ways. SpatiaLite now supports GeoPackage as of version 4.2.0. 

Ou seja, a componente vectorial do GeoPackage foi fortemente inspirada pelo SpatiaLite, mas o SpatiaLite é que teve de se adaptar ao standard OGC e a passar a suportar GeoPackage.

What were the reasons to go with SQLite, when OGC has invested heavily in PostGIS? 

OGC has not invested in PostGIS, rather PostGIS implements OGC standards. PostGIS is just like any other RDBMS implementation of the Simple Features spec. The primary use case for designing GeoPackage was mobile device use, and that's why SQLite was chosen as a platform. In this case OGC as an organization is specifying a technology. This is unusual for OGC and the decision was not made lightly, but practicality and ease of implementation won out over standards purity. And we are happy to say we have yet to get any negative feedback on this decision -- probably because SQLite is considered more like a library than a standalone application.  

Ou seja, o GeoPackage foi desenhado principalmente a pensar na utilização em dispositivos móveis. E é por isso que o SQLite foi escolhido.

...e como o SpatiaLite também é SQLite, e também suporta GeoPackage, e anda cá há mais tempo...


Da página original do SpatiaLite encontramos duas ligações relacionadas com implementações para Android:
- A referente à versão 4.3. a qual está agora na umbrela do projecto geopaparazzi (fica para outras núpcias!);
- E a 3.0.1 (de 2012) que ficou onde estava! Tem Wiki.

A versão 3.0.1 pode ser descarregada do Wiki. De onde podem ser reaproveitadas as diferentes abi (armeabi,..), 32 bits apenas, que se encontram na pasta libs. As bindings em Java encontram-se como de costume na pasta src.

O projecto encontra-se também arquivado no Google Code.

No separador de Downloads é possível descarregar o apk do Spatialite-Android, app que já não se encontra publicada na PlayStore. Mas que funciona perfeitamente em Android 8.0.0 - Oreo. 


Selecionando "Map View" temos o ficheiro SpatiaLite de exemplo sobreposto, mas não visível, ao Google Maps para Android,

Clicando sobre qualquer região de Itália fica realçada a respectiva região,


















   


quinta-feira, 16 de maio de 2019

Smartphones e Tablets: não tem rigorosamente nada a ver!

Esqueçam o título. Esqueçam o título. Esqueçam o título.

É só uma afirmação leviana proferida por paraquedistas que caem na arena Android oriundos do ecosistema IOS, normalmente com uma atitude know-it-all ! E muito provavelmente até têm Android a correr na Smart TV, e nunca repararam.

Por acaso em 2012 comprei um tablet que corria Android 4.0.3 - Ice Cream Sandwich, e que tinha uma saída HDMI. Está bem que nunca a utilizei, mas ficou patente, as potencialidades do Android enquanto sistema operativo não apenas de "telemóveis" mas mais abragente. E estava o AIDE a sair da fase beta.

Diga-se de passagem que só tenho feito root a dispositivos por desporto, voltando logo a fazer unroot. Ao contrário dos utilizadores "avançados" do IOS que vivem obcecados com o Jailbreak... mesmo que nunca o façam.

Uma QA do FAQ do Geopackage (afinal é um post geo!):

How are GeoPackage files shared between apps on iOS and Android devices? 
 
On the iPhone, the security issues of the device cause a lot of problems for cross-app file sharing. Inherently, the device does not want applications to share data except in very narrowly defined ways. So data sharing between apps is not feasible at this time. 

E não só. No IOS a situação é tão caricata que se tentar descarregar no navegador um ficheiro que não tenha um formato conhecido, muito provavelmente nem vou conseguir. 

No Android pelo contrário o acesso ao sistema de ficheiro é transparente. Sempre foi.

E a integração de APIs em função do tipo de dispositivos ficou completa com o Ice Cream Sandwich (2011) . O Honeycomb 3.x só para tablets ficou por aí. Antes disso, no tempo do Android 2.X até havia apps em duplicado publicadas na Store: a app A e a app A (tablet). Lembram-se?

...O tablet Kindle Fire de 6 polegadas provavelmente o tablet mais vendido nem aparece nas estatísticas por estas só contabilizarem tablets com 7 ou mais polegadas. 

Tablets de 6 polegadas, smartphones também de 6 polegadas: do ponto de vista de desenvolvimento é rigorosamente a mesma coisa. Desde o ICS 4.0 (2011). Para não falar de notebooks que correm Android.  






GISWATER: paciente zero por cá

Plugin do GISWATER no GitHub:

Com o projecto da Quinta do Lago, que julgo ser pioneiro em Portugal, ou se não foi, pelo menos foi o primeiro a ser divulgado de forma consistente na comunidade SIG, ficando provado ser perfeitamente exequível ter uma solução de distribuição de água em baixa, assente em software de código aberto.


Como, não há muito tempo, dei por endpoints ArcGIS/rest/services no domínio da InfraQuinta, é um bom indicador de que soluções híbridas não são uma quimera!

http://naviamapsws.infraquinta.pt/arcgis/rest/services/Navia

Soluções híbridas (fechado bem integrado com aberto) devem ser incentivadas. Mas não impostas ao cliente como: "este software desktop de 15k integra muito bem com PostGIS"!!. 


O SIG de fato e gravata tem futuro?

Aqui, por SIG de fato e gravata estou-me a referir aquele conceito em que, por exemplo, um político vai receber um prémio de excelência pelo seu belo SIG (já passou a barreira dos 100k, já dá direito a prémio).

Estou-me a referir aquele conceito em que os encontros/seminários de utilizadores estavam pejados de empty suits. Cheguei a ver no YouTube o presidente do munícipio onde moro num desses eventos.

Estou-me a refererir, por exemplo, quando andaram a vender geo-portais em Flex (quando o Flex já estava descontinuado). Quando andaram a configurar serviços de  mapas-base em WGS-84 (quando também já estavam descontinuados), e o natural seria configurar em Web-Mercator.  

Reparem que isto não tem nada a ver com qualquer quezília prorietário vs open-source. 

O que não falta por aí são empresas "semi-públicas" (se os accionistas são autarquias acho que a adjectivação está correcta) especialistas em "fechar" open-source (às vezes ainda sai mais caro do que o proprietário).

E depois acontecem situações como a "gestão de ocorrências" que passam completamente ao lado dos players tradicionais. Podera. Com projectos a serem arrematados por menos de 5k.

Ou como os software para sistemas de abastecimento de água em baixa com financiamento limitado a 30k (despesas com IVA não elegíveis), comparticipados a 85%. Sai mais barato que uma fotocopiadora!

E como tal vão ligar tanto aquilo como a uma fotocopiadora. Dos projectos que já completaram o prazo de "garantia" de 3 anos, quantos é que foram para a recarga? Dos realizados em 2015, 2016? Pois.

A imposição de um limite de 30.000 Euros evitou que houvesse exageros, tendo até o efeito de obrigar empresas que utilizam software proprietário a baixar os preços, para poderem sequer ir a jogo.

Note-se que quem baixou preços numa lógica de angariação de clientes com vista à manutenção de relações comerciais de longo prazo, desconhece um pouco a forma como funcionam, e às vezes acabam, projectos que existem exclusivamente por terem sido co-financiados.

Por exemplo, o software só poder ser utilizado para o fim para o qual há financiamento, neste caso, eficiência energética - Controlo e Redução de Perdas nos Sistemas de Distribuição e Adução de Água. Até poderiam instalar lá o PDM que certamente a Gestão Urbanística não iria utilizar o computador do Serviço de Águas.


A natureza one shot dos projectos

Enfim, desde que a Gatewit foi corrida das plataformas de contratação pública em 2016, o mercado está muito mais agilizado. Dantes, quase que era preciso ter um departamento inteiro de prevenção, só para poder ir a jogo.
     


GeoPredial: um bom exemplo


Eu nem sabia que havia este projecto da Câmara dos Solicitadores . Agora é Ordem.

Mas como fartava-me de receber referrels provenientes de mail.solicitador.net no geomatica.no.sapo.pt, calculei que os solicitadores gostassem de mapas. E fui ver. 

E realmente na BASE tinham, e têm lá muita informação. É até um exemplo de boas práticas, por terem , por exemplo, em 2013, uma descrição pormenorizada do objecto do contrato:

Desenvolvimento ao sistema informático de apoio ao projeto Geopredial

1. Configurar servidor de ortofotos em AIX da Câmara, com as seguintes sub-componentes
i. Instalar e configurar GeoServer;
ii. Instalar e configurar GeoWebCache;
iii. Instalar e configurar Postgres + PostGIS;
iv. Instalar e configurar GeoExplorer.
2. Apoiar no processo de carregamento pela GeoJustiça de ortofotos, desenvolvendo ferramentas de carregamento em quantidade, se necessário.
3. Substituir a utilização, na plataforma actual, do uso das bibliotecas de manipulação/visualização de dados GIS no browser de Google Maps, reprogramando a interacção sobre o mapa utilizando OpenLayers.
4. Configurar a nova biblioteca OpenLayers para aceder ao novo servidor GeoServer.
5. Configurar servidor aplicacional em AIX, com Apache/PHP, GIT.
6. Reprogramar interfaces de base-de-dados da aplicação para que interajam com o motor de base-de-dados Informix.
7. Migração de dados de Argivai de MySQL para Informix.
8. Implementar fluxo de interfaces/etapas associadas a pagamento e integração com os respectivos webservices da Câmara.
9. Implementar fluxo de interfaces/etapas associadas a emissão de facturas e integração com os respectivos webservices da Câmara.
10. Configurar e implementar notificações por e-mail utilizando o servidor de e-mail da Câmara.
11. Analisar resultados práticos e necessidades de alterações aos fluxos decorrentes do piloto realizado em Argivai.
12. Aplicação da nova imagem institucional do projecto GeoPredial (logotipo, cores, fontes, etc.)
13. Produzir novo manual de utilização.



Interessante. Em 2013, provavelmente, utilizaria a mesma combinação GeoServer/PostGIS/GeoExplorer.








 



 




E as empresas que?

Então, e as empresas que mudaram a sede fiscal para a província por causa dos fundos comunitários?
Em Lisboa (LVT) só co-financiavam a 45%, e havia muita competição. Assim foram receber 55%.

Se tivessem feito uma página em inglês, ou ido a uns congressos/feiras no estrangeiro, já entrava na componente "internacionalização".

Empresa X, que toda a gente sabe que é de Lisboa (escritório a funcionar diariamente), com sede fiscal no 2° direito, de um prédio habitacional em Évora, ou a empresa Y, em Castelo Branco.

Só que não é a fundo perdido. Tem que ser reembolsado: gastas agora, pagas depois. Pode ser um tiro no pé.

..para não falar da startup (acho que agora é tudo startup) das roulotes que vendem hambúrgueres de alheira, ou de carne de porco preto! Esses pormenores passam-me um pouco ao lado!

Lembrei-me não sei porquê do Smart Client e do ArcGIS Silverlight

Lembrei-me agora, não sei porquê, do Smart Client, que nas brochuras da Intergraph em inglês aparecia sempre descrito como a solução ideal para a democratização do acesso à informação geográfica dentro das organizações!! Impressionante!


IS YOUR GEOGRAPHIC
INFORMATION SYSTEM
(GIS) GRIDLOCKED IN A
DEPARTMENT? LIMITED
TO POWER USERS?
LOCKED AWAY? 

Aquilo utiliza(va) Java Web Start (JNLP). É no browser, mas não é! Foi a solução encontrada pela Oracle (Sun, na altura) para se livrar da má fama dos Applets. Entrentanto a Oracle deixou de distribuir Java Web Start com o Java 11 (2018). Já tinha sido descontinuado no Java 9 (2017).

... e no entanto, o Smart Client 2018 continua a utilizar Java Web Start.

Faz-me lembrar a aposta da ESRI no ArcGIS API for Silverlight, o qual foi retirado de circulação em 2016. A ESRI tinha um excelente visualizador em Javascipt (2009?), o qual descontinuou, para ir dar uma volta pelo Flex (também retirado em 2016) e pelo Silverlight. Depois voltou em força ao Javascript.

Para não falar do ArcGIS Web ADF. Desapareceu do mapa sem deixar rasto.

E, para não falar na carta aberta que o Steve Jobs escreveu em 2010 a explicar porque é que o ecosistema iStuff nunca suportaria Flash.

 

Não são só os "parceiros" locais que têm que agradar à casa-mãe. Os grandes também têm "parceiros" para agradar, neste caso, Oracle e Microsoft, respectivamente. 

  



       

quarta-feira, 8 de maio de 2019

Pequenas bibliotecas c/c++ com utilitários para Android

Uma pequena enumeração de bibliotecas compiladas, ou compiláveis, para ARM Linux que podem ser utilizadas em Android. Por exemplo, podem ser executadas com o Terminal Emulator for Android

Também podem ser executadas programaticamente, e directamente da app. Ver por exemplo, Run native executable in Android App

Para bibliotecas que necessitem de ser compiladas no dispositivo Android, pode ser utilizado o Termux, o qual disponibiliza o compilador CLang e o utilitário make,... e muito mais. 


- A biblioteca curl, bastante conhecida da comunidade geospatial, até por ser uma das dependências da GDAL/OGR, nomeadamente para serviços OGC, disponibiliza há já bastante tempo binários para Linux-Android na sua página de downloads

Também existem bindings em Java de 2010: curl-java



- A biblioteca pngcrush também é bastante utilizada em aplicações geospatial nomeadamente para redução de tamanho de tiles, e subsequente publicação em serviços X/Y/Z ou TMS, numa CDN.

Na página de downloads não são disponibilizados binários para Linux-Android. No entanto, para compilar basta descarregar o código fonte e executar o makefile, sem haver necessidade de modificar o código. Pode ser feito com o Termux, o qual disponibiliza make.   




- A biblioteca dgnlib também é bastante relevante no domínio geospatial, até por fazer parte da source tree da OGR. O código fonte também pode ser compilado em dispositivo Android. Pelo menos, o utilitário dgndump compila sem necessitar de modificações.



- (para ir acrescentando)

 


PostGIS no Android: uma possível arquitectura

Na sequência de dois posts de ontem sobre o PGTop de 2010, e o S.M.A.R.T de 2013, respectivamente, ficou de referir a relevância, ainda hoje, 2019,  de ambos na definição de uma possível arquitectura de uma app mais gis

Por exemplo, uma app que comunique com PostGIS para carregar uma shapefile na base de dados a partir do Android. Ou seja, fazer no dispositivo móvel aquilo que já se faz há muito tempo na linha de comando do PC. Estou-me a lembrar da shp2pgsql (aqui na documentação da versão 1.3.6 do PostGIS, de 2009).    

Uma possível alternativa, seria continuar a utilizar a linha de comando, mas desta vez na shell do Linux que faz parte de qualquer distribuição do Android. Por exemplo, com o Terminal Emulator for Android. O Terminal IDE já não está na Store pelos motivos explicados aqui, onde também é explicado como continuar a utilizá-lo no Android 5.0 Lollipop, ou superior.

Para esta alternativa teriam que encontrar na internet a shp2pgsql, ou melhor ainda, a ogr2ogr, compilada para ARM Linux, bem como as respectivas dependências. E se não a encontrassem, teriam que ser vocês a compilá-la. Por exemplo, seguindo as instruções em:
https://trac.osgeo.org/gdal/wiki/BuildingForAndroid (foram recentemente actualizadas)
    
Outra alternativa, ainda, seria utilizar as bindings em Java da OGR, as quais podem ser geradas utilizando também as instruções anteriores. E até temos nessas bindings uma implementação em Java da ogr2ogr: a ogr2ogr.java.

Para esta última alternativa será melhor estar relativamente familiarizado com a documentação de desenvolvimento do Android NDK, por exemplo Usar bibliotecas pré-compiladas (está em português!).


Descomplicando(!), e voltando ao PGTop de 2010, e ao S.M.A.R.T de 2013.

Relativamente ao PGTop, a parte mais difícil está feita, ou seja estabelecer uma conexão com uma base de dados PostgreSQL, ...autenticação, ...e pardais ao ninho! 

Poderão quando muito ter que utilizar uma versão mais recente do ficheiro jar JDBC: o postegresql.jar

Hão-de precisar também, e recorrendo de novo à documentação do PostGIS 1.3.6 de 2009, do postgis.jar. Ou não. Podem nem precisar de aceder aos tipos espaciais do PostGIS.


Relativamente ao S.M.A.R.T, está lá tudo:
- a dependência necessária para ler a shapefile;
- o explorador de ficheiros necessário para seleccionar a shapefile;
-  como restringir as extensões de ficheiros a .shp, ao procurar a shapefile no sistema de ficheiros;

A transformação dos objectos (geometrias e atributos) da shapefile em POJO também está lá. Ou se não quiserem depois ir tocar nos tipos espaciais do PostGIS, enviam a shapefile inteira para a BD.

Enfim, a versão do OSMDroid é um pouco antiga mas como está a utilizar o wrapper à volta do Google Maps SDK para Android (o qual está na versão 2 há uns bons 10 anos), tão cedo não quebra. As actualizações são feitas ao nível da Google Play Services, sem quebras de API.


E pronto. Só falta mesmo é utilizar um design mais bonito, e mais moderno, porque se não for assim, tecnologias com 10 anos podem funcionar muito bem, mas não vendem! 

    




 








 



terça-feira, 7 de maio de 2019

O AQUAmatrix agora é AQUALeituras 2.0

O AQUAmatrix (agora é AQUALeituras 2.0) é aquela solução que a EPAL tem para recolha de leituras de contadores. Quando o funcionário do SMAS vai lá a vossa casa fazer a leitura, em vez de anotar no papel, tem esta app.

Foi actualizada recentemente (actualização publicada há menos de um mês).

E é facil perceber quem a desenvolveu. O ID da app, que é sempre semelhante a um pacote do Java, é:

pt.novabase.epal2




Ou seja, as soluções tecnológicas altamente inovadoras da EPAL são feitas por consultoras externas. Novidade! E sempre foram, a julgar pelos contratos publicados na base.gov.pt em que AQUAmatrix é o objecto do contrato e a EPAL é a entidade adjudicante. Ainda não está é este último contrato da Novabase.

Se pesquisarmos os contratos onde a EPAL é o adjudicatário, vamos obter as entidades a quem a EPAL vende o AQUAmatrix, e dá para ter uma ideia da margem de lucro. Lucro do Estado a vender ao Estado, entenda-se!

Por acaso procurei se a app tinha a lista dos clientes guardada nalgum ficheiro, mas como está a ser utilizado sqlcipher que serve  para encriptar/desencriptar SQLite, e como também não encontrei nenhuma BD em SQLite,




E realmente pelo nome deste ficheiro xml ficamos a saber que a sincronização com o servidor está a ser feita por db, ...SQLite... encriptado:





...até 2017 o AQUAmatrix era uma app que corria em Windows Phone. E até podem dar uma vista de olhos na Análise de Requisitos. É um bom exemplo dos requisitos de uma migração de Windows Phone para Android.


S.M.A.R.T, ainda está publicada, ainda funciona, e tem kml, shp, WMS...

O S.M.A.R.T é uma app (colector e visualizador de dados geográficos) para Android publicada originalmente em Março de 2013, não tendo sido actualizada desde Setembro de 2014. Está (em Maio de 2019) na banda dos +5.000 downloads.



Menu para definição dos parâmetros do WMS (Web Map Service):



Selecção de ficheiro shp (shapefile):






Selecção do mapa de base (o GoolgeMapSatellite não funciona):




Ficheiro KML sobreposto ao GoogleMapHybrid:


 

Tem repositório no GitHub (não actualizado desde Março de 2013), estando também compilado, podendo, por isso, ser descarregado o apk da pasta bin. Está quase tudo em francês, sendo, pelo que percebi, um projecto universitário da univ-mlv.fr.

Utiliza entre muitas outras: 
- OSMDroid (versão 3.0.9 de 2013) com o wrapper para Google Maps Android SDK (sendo necessário chave de API);.
- diewald_shapeFileReader para ler shapefile;
- XmlPullParser do Android para ler kml;

Nota: a funcionalidade para abrir GeoTiff não está implementada ao que parece, apesar de ter o respectivo botão:







Um exercício interessante é recriar a app com Material Design e ter a mesma funcionalidade..., mas mais bonita!

O PGTop para Android chegou a estar na Store, mas já não está

O PGTop (PostgreSQL Top for Android) era, e é, uma app Android de monitorização de estatísticas para bases de dados PostgreSQL,

Desenvolvida pelo Mark Wang (uma das pessoas importantes da cena PostgreSQL norte-americana) em 2010.

Tinha e tem:
- repositório no GitHub
- apresentação em pdf na PGCon 2010
- a mesma apresentação no SlideShare 
- e uma vaga ideia de ver o PGTop publicado na PlayStore. De qualquer forma não está lá.

Ou então fui eu que descarreguei o repostitório no dispositivo e gerei o apk com o AIDE. De qualquer forma, sempre antes do Android 5.0 (só tenho os apk gerados em ICS - 4.0.3, Jelly Bean - 4.2, e KitKat - 4.4).    

Por isso, podem tentar gerar o apk em versões mais recentes do Android, que em princípio vai resultar.

De qualquer forma vão ter de ir buscar o ficheiro JDBC em jar para PostgreSQL, mas isso está explicado no README do PGTop.

Nota: não confundir com o pg_top, um comando para PostgreSQL derivado do Top do Unix.


Água, Epanet, AWARE, do melhor que se faz por cá

Dando uma vista de olhos pelas publicações da Baseform, do mais à frente que se faz por cá em termos de sistemas de água, uma pessoa fica com a ideia que é preciso quase um doutoramento só para entrar na linguagem específica da matéria!

Mas como programadores querem é código, a Baseform tem também repositório no GitHub

Nada mal. O Epanet reescrito integralmente em java. Já desde 2012. Baseform-Epanet-Java-Library 
(Lembrete: ver o que é que pode ser reaproveitado, se é que pode ser, para Android).

Para não falar das "ligações" ao projecto AWARE. Por exemplo, AWARE-P (2008-2011).

E, realmente com zero entradas na base.gov.pt, certamente não anda no negócio de parasitismo em relação ao Estado. Basta dar uma vista de olhos nos projectos da empresa na Plataforma Portugesa da Água.
E têm também o Chris Holmes do OGC, uma das pessoas por trás do GeoPackage, no conselho de administração.

Contrastar com empresas que andem por aí a vender licenças Oracle ASFU, que têm de ser renovadas anualmente, a autarquias, quando já havia a possibilidade de ligar o Geomedia ao PostGIS pelo menos desde 2014. O PostGIS que já tem um nível de poder ser utilizado em produção há uns bons 15 anos.


É a diferença entre o país importar ou exportar software. É a diferença entre ter de vender a autarquias, que comem tudo o que lhes metem à frente, e não vender.  

sábado, 4 de maio de 2019

Então, e se?

Então, e se eu tivesse introduzido um erro sistemático de, digamos, 10 kilómetros, em todas as coordenadas devolvidas pelo geomatica.no.sapo.pt ?

Por acaso não o fiz. Mas poderia tê-lo feito, nem que fosse por engano. Erros acontecem. E muito mais em demos, inseridas em páginas pessoais,.. com código minificado.

Qual é o critério que entidades, presumivelmente com responsabilidade, utilizam para verificar a exactidão posicional de coordenadas num mapa de uma página que encontram na internet?


 
Um pouco irresponsáveis, não? Multiplicando assim de cabeça o numero de sessões pelo tempo médio por sessão (e nem estou a ordenar o tempo médio por ordem decrescente).  


E a atribuição? Ou passam por vosso o que é feito pelos outros?! Se eu fiz a atribuição à proj4js e à origem dos parâmetros de transformação, vocês fizeram? Onde quer que seja que tenham ido utilizar as coordenadas?



20 - fundacao para a ciencia e a tecnologia i.p. - 733

23 - unidade de tecnologias de informacao e seguranca - 720

25 - ccam caixa de credito agricola mutuo  - 669

26 - edp - energias de portugal s.a. - 658

29 - unidade de tecnologias de informacao de seguranca - 570  - soma à 23 (é a famosa UTIC)

34 - secretaria geral do ministerio da defesa nacional - 421 - estes tipos podiam ir à página do IGEoE. A Defesa Nacional a confiar no Google Maps?

38 - fundacao para a computacao cientifica nacional - 385 - FCCN. É uma computação científica que nunca mais acaba!

40 - secretaria-geral ministerio da administracao interna - 325 - Sabem o que é isto? Depois conto!

43 - apa - agencia portuguesa do ambiente - 285 

44 - comunidade urbana do vale do sousa - 285

46 - universidade de aveiro - 281

50 - universidade tecnica de lisboa - 248

51 - e-chiron address space - 247

53 - edinfor - sistemas informaticos s.a. - 232

55 - rede escolar e de organismos - 226

56 - municipio castro marim - 216

60 - ministro das financas - 169 - O Ministro! Aparece em baixo (96) com Service provider "Ministério"

62 - blu s.a. - 157 -

64 - ccdrc ? comissao coordenacao e desenvolvimento regional do centr - 154 - Aparece em baixo (86) com outro Service Provider

68 - comissao coordenadora regiao norte - 141

70 - adral - 140 - É a Agência de Desenvolvimento Regional do Alentejo

74 - ccdrc centro - 122

75 - globalgarve - cooperacao e desenvolvimento s.a. - 115 - Falíu. Os clientes não pagavam. Por outro lado, os clientes eram os sócios. Autarquias do Algarve.

76 - camara municipal de setubal - 112 - com fortunas gastas em Intergraph precisavam de ir ao Google Maps tirar coordenadas?

77 - municipio de oeiras - 112 - idem

79 - direcao geral de estatisticas da educacao e ciencia - 102 - Esta DG serve para quê?

81 - camara municipal de valongo - 97

84 - universidade do algarve -95

86 - comissao coordenacao des reg centro - 91

81 - university of lisbon faculties - 91

90 - mesp mota-engil servicos partilhados administrativos e de gesta - 86

93 - camara municipal de vizela - 82

94 - pt prime - solucoes empresariais de telecomunicacoes e sistemas - 82

95 - eduroam facility university of lisbon - 81

96 - ministerio da justica - 81 - O Citius tem mapas?!

97 - epal empresa pub aguas livres sa - 80

98 - teixeira duarte - engenharia e construcoes s.a. - 80

99 - laboratorio nacional de engenharia civil - 78 - Espero que não tenham andado a fazer micro-geodesia com coordenadas extraídas do Google Maps!

100 - auto-estradas de portugal - 76 - Idem, para vias de comunicação 

quinta-feira, 2 de maio de 2019

ArcGIS Runtime na PlayStore

Uma pesquisa por ArcGIS Runtime na PlayStore devolve muitos resultados.

Deixando por agora de parte as apps oficiais da ESRI, e as não tanto oficiais publicadas sob Esri Online LCC (por exemplo, "MyUSNG is an Esri Labs project and not an official Esri product. MyUSNG is provided on an as-is-basis and you assume all risks associated with using this app").

Dos resultados restantes, aparecem muitas apps que não utilizam ArcGIS Runtime, mas que aparecem. Normalmente por fazerem menção a ArcGIS no corpo do texto da descrição. A consola de pesquisa da PlayStore às vezes nem parece que é da Google!

E das apps que utilizam ArcGIS Runtime a selecção é mesmo muito pequena.

Um exemplo é a Kapalo, do Geological survey of Finland. Foi publicada originalmente em Setembro de 2015, tendo sido actualizada já este ano (2019) de forma a suportar Android P, estando na banda dos +500 downloads.





Mas utiliza também outros sdk como geopaparazzi, não sendo bem aquilo a que poderíamos chamar de app puramente ArcGIS Runtime,




E é uma app muito específica, para geólogos, presumo. E localizada - Finlândia.


Temos também a ArcGIS Online/Offline App. Esta app é um caso de estudo porque apesar de ir contra todas as regras do jogo (já explico) está na banda dos +10.000 downloads, tendo sido publicada em Março de 2016, e nunca tendo sido actualizada, por enquanto.

E curiosamente, a app aparece sistematicamente nos primeiros lugares de qualquer pesquisa relacionada (ArcGIS Runtime, ESRI Runtime, ArcGIS,..).
 


 O nome da app definido na PlayStore e no Manifest xml, não coincide, sendo Move Around NYC, neste último, o que poderá justificar em parte o relativo sucesso da app.


E, não tem chave de licença válida, ou chave de todo, não tendo qualquer problema em exibir a marca de água "Licensed for Developer Use Only". E, os base maps da ESRI nem sequer aparecem.

E é utilizado o ArcGIS Runtime 10.2.x




Mas a parte mais interessante é mesmo não terem qualquer problema em utilizar directamente os tiles do Google Maps, indo de forma óbvia contra os termos do serviço do Maps. E pelos vistos a Google não está minimamente preocupada! Este assunto é recorrente no que diz respeito a tudo o que é publicado na PlayStore.


Também interessante, é como é que os tiles do Maps estão a ser acedidos. Basicamente está a ser criada uma GoogleMapLayer que está a extender a TiledServiceLayer do Runtime. A mesma classe que é utilizada para, e que tem como sub-classes, Bing Maps, OpenStreetMap, WMTS, e cached map services do AGS.




Também existe a possibilidade de ligar um GPS através da porta série, mas não testei isso, se bem que possa haver bastante gente que utilize a app precisamente para esse fim.
 



Relativamente ao offline do nome da app, não se percebe muito bem o significado, porque não está a guardar os tiles do Maps em nenhum lado.

E pronto. Não se encontra muito mais na PlayStore. Se alguém souber de alguma app publicada na PlayStore, que utilize ArcGIS Runtime, agradecia.



Nota: para apps que não são para publicar na PlayStore, actualmente, é perfeitamente viável continuar a utilizar ArcGIS Runtime 10.2.9. Para apps, para publicação, é preferível adoptar o Runtime 100.X (saiu recentemente a versão 100.5). O motivo é que a partir do Verão apps publicadas na PlayStore, terão que utilizar bibliotecas nativas,.so, em 64 Bits (a questão do 64 bits na PlayStore será motivo de outro post).

Se bem que o negócio de apps utilizando ArcGIS Runtime passa um pouco ao lado da PlayStore. Aliás, fica sempre a ideia de que os Runtime foram concebidos de forma a alimentar as apps oficiais da ESRI, e as que vendem directamente aos seus clientes.

Não sei se ao terem uma página de migração de Google Maps para ArcGIS Runtime, estamos sequer a falar do mesmo.