Saturday 28 November 2009

Funny clouds

Can you see Britain in these clouds?

Google Wave

Yes, I do think that Google Wave will take over the world...
Once mature it will be a fantastic tool!
https://wave.google.com

Wednesday 25 November 2009

Meklē ĢIS/kartogrāfa darbu Lielbritānijā?

Ja meklējat ĢIS/kartogrāfa darbu Lielbritānijā, tad vislabākais darba sludinājumu resurss, manuprāt, ir GIS-JOBS liste, kurai var piereģistrēties iekš http://www.jiscmail.ac.uk
Šeit būs jāpiereģistrē savs e-pasts un jāseko uz e-pastu izsūtītajiem sludinājumiem ik dienas, kur
atrodami darbi gan caur aģentūrām, gan no iespējamajiem darba devējiem 'pa tiešo'.

Atšķirībā no Latvijas...
Lielbritānijā, piesakoties uz darbu, ir pieņemts iesniegt ne tikai CV, bet arī 'covering letter', kas ir tāda kā motivācijas vēstule par un ap to, kāpēc jūs būtu tas labākais kandidāts konkrētajam darbam.
Otrkārt, būs nepieciešamas divas atskausmes no iepriekšējiem darba devējiem vai citiem 'labiem ļaudīm'. Atsauksmes (references) vajadzēs tad un tikai tad, ja jau tiksiet pieņemts konrētajā darbā. Tādēļ iekš CV beigās raksta "References available upon request" un savus atsauksmju devējus netraumē, kamēr nav konkrēta vajadzība...
Bet pirms tiksiet pieņemts darbā (un pirms jebkādas references tiks pieprasītas) noteikti būs darba intervija, kas varētu norisināties gan aci pret aci, gan telefoniski.
Un visbeidzot, bruņojieties ar pacietību un biezu ādu - atbildi/lēmumu var nākties gaidīt nedēļām vai pat mēnešiem.

Lai veicas!

Thursday 29 October 2009

Kā skatīties ESRI Virtual Campus video uz Linux?

ESRI ik pa laikam izdod dažādas video apmācības savām ĢIS aplikācijām, daudzas no šīm apmacībām ir visai lietderīgas un bezmaksas, un tās var noskatīties ESRI Virtual Campus mājaslapā online režīmā: ttp://training.esri.com/gateway/index.cfm
Iepriekš būs nepieciešams piereģistrēties (bezmaksas), bet tā jau mūsdienās ir ierasta lieta...
Šīs video prezentācijas, lūk, ir kaut kādā mistiskā Microsoft Media formātā, ko Mozilla uz Kubuntu tā vienkāši nespēja atkodēt, tāpēc nācās nedzaudz izpētīt šo 'problēmu'.

Ja nu kāds ir nonācis līdzīgā situācijā, tad rekomendēju uzinstalēt sekojošas 'paciņas':
  • w32codecs (satur mistiskos Windows kodekus. Par to, kā to izdarīt, ir rakstīts te: http://ohioloco.ubuntuforums.org/showpost.php?p=3203196&postcount=11)
  • mozilla-mplayer (plugins Mozillai)
  • gnome-mplayer (ja nav jau...)
  • MediaPlayerConnectivity https://addons.mozilla.org/en-US/firefox/addon/446 (add-ons Mozillai, lai varētu smalkāk norādīt, kurš pleijeris jāizmanto konkrētajam video, jo pēc noklusējuma nekas prāt nesanāca)
Palaižot video uz Mozillas apakšējā paneļa būs redzama trekna, melna, uz leju vērsta bulta. Uz tās vajag klikšķināt un atvērt konfiguracijas iestādījumus. Atzīmējam, ka vēlamies skatīties "Windows Media" formātu ar "/usr/bin/gnome-mplayer". Tomer video pats par sevi neatvērsies vajadzīgajā pleijerī, tapēc klikšķinam atkal uz tās melnās bultas un izvēlamies "List all media links to page". Jaunajā 'lodziņā' klikšķinam uz dotā linka un beidzot varam ieraudzīt video...

Principā, galvenais bija nokļūt pie šī 'īstā' linka. Iespējams, pie tā var tikt arī ar ātrākām un vienkāršākām metodēm. Ja links ir zināms, tad video vienkārši var palaist ierakstot konsolē kaut ko tamlīdzīgu:

$ gnome-mplayer mms://198.102.62.80/ts_WhatsNewServer92/ts_WhatsNewServer921.asf

Var arī mēģināt izvēleties citu pleijeri.

Thursday 10 September 2009

How to convert RPM to DEB

Use alien to convert *.rpm files to *.deb files:
$ sudo apt-get install alien
$ sudo alien -d pgDesigner-1.2.10.src.rpm

Tuesday 8 September 2009

The best way to duplicate Postgres database

I had to copy Postgres database from a development server to the live server and I found this command line based method the most convenient:

$ pg_dump -h myhost.com -U username --clean --oids --verbose mydatabase 2>dump.log | psql -h livehost.com -U username mylivedatabase>>dump.log 2>&1
$ tail -f dump.log


I couldn't do this in a 'single transaction' mode because I don't have superuser privileges.
So I filtered all informative an error messages to follow the process. Database (schem + data) dump with redirection right into another databse proved to be the quickest as no disk space was required for dump files.

Friday 28 August 2009

No newline symbols in my shell script, please....

You can make Bash shell to print everything out in one long line:

while read EachLine; do
echo -ne $EachLine'" "'
done

Wednesday 19 August 2009

Pamata lietas, kas jāzin, dzīvojot Lielbritānijā

Tiem, kas plāno pārvākties uz dzīvi Lielbritānijā, parasti interesē, kāda ir minimālā alga, kāds ir nodokļu maksāšanas princips, kādi un cik lieli tad ir šie nodokļi, kā notiek nodokļu atmaksa, kāda ir veselības aprūpes sistēma, kādi pabalsti pieejami utml. jaunajā valstī.
Lielbritānijas valdībai ir lieliska mājaslapa http://www.direct.gov.uk/en/index.htm , kur var atrast visdetālāko informāciju par tamlīdzīgām lietām. Šī valdības mājaslapa bus Jūsu pirmais palīdzības punkts atbilžu meklējumos.

Dažas svarīgākās lietas.

Katram nodokļu maksātājam ir jāizņem National Insurance (NI) numurs, ko izsniedz vietējais Job Center Plus. Šeit tiks prasīti pierādījumi par to, ka aktīvi meklējat darbu (atteikuma vēstules no darba sludinājiem vai darba līgums) un UK dzīvesvietas pierādījums (to apstiprinās uz Jūsu vārda un UK adreses izrakstīts rēķins, bet ne kurš katrs!).

Dzīvesvietas pierādījumu nav tik viegli iegūt, īpaši, ja īrējat istabiņu no kāda vai mitinaties pie draugiem. Viens variants ir iegādāties TV licenci, ko tad izrakstīs uz Jūsu vārda un izvēlēto adresi. Citas mahinācijas varētu arī būt iespējamas, bet dotajā brīdī ir man nezināmas.
Kā cits dzīvesvietas pierādījums var kalpot ikmenēša izraksts no UK bankas, bet atvērt bankas kontu UK arīdzen nav tik viegli. Pirmkārt jau atkal tiks prasīts pierādījums par dzīvesvietu (dažas bankas pieņem TV licenci, citas nē). Visprimitīvāko kontu teju jebkurā bankā var atvērt bez makasa, bet 'nervu čakaris' pirms tam garantēts.

Tiem, kas īrēs dzīvokli vai māju būs jamaksā Council Tax, kura izrakstu var izmantot kā vēl vienu dzīvesvietas pierādījumu. Council Tax vidējais apmērs ir 1000GBP gada par 1-2 istabu mītni, 1500GBP par 3istabu mītni, taču tas svārstās atkarība no pašvaldības. Tiem, kas īrē istabu Council Tax nebūs jāmaksa, jo tas visticamāk būs jau iekļauts īres cenā. Pilna laika studentiem (studē UK augstskolā) arī Council Tax nav jāmaksā... Council Tax nosedz vairakas lietas no kurām viena ir veselības aprūpe (General Practitioner, NHS). Noskaidrojiet savu tuvāko General Practitioner un dodieties piereģistrēties, veselības aprūpe pamatā un principā ir bez maksas.

Istabas īre Lielbritanijā vidēji svārstās no 160-300GBP menesī atkarībā no dzīves vietas novietojuma un telpas izmēriem. Dzīvokļa īre (bez Council Tax) izmaksā sākot no ~350GBP (studio flat) ... 450GBP(1 guļamistabas + 1 dzīvojamās istabas)....600GBP(2 guļamistabas + 1 dzīvojamā istaba) utt. mēnesī. Protams, cenas var svārstīties atkarībā no ģeogrāfiskā novietojuma. Dažkārt var noīret ļoti lētus mitekļus pilsētu nostūros ar ne visai labu reputāciju. Gan der paturēt prātā, ka Jūs tiksiet tiesāti pēc tā, kurā rajonā dzīvosiet, var gadīties, ka tik dēļ savas dzīves vietas adreses Jums iecerētais darbs tiks noraidīts...

Kā atrast GIS darbu Lielbritānijā

Labākais veids, kā atrast ar ĢIS saistītu darbu Lielbritānijā, ir piereģistrējot savu e-pastu 'ĢIS-JOBS' listē šajā mājaslapā http://www.jiscmail.ac.uk/
Uz reģistrēto e-pastu ik dienu tiks izsūtīti jaunākie ĢIS darbu sludinājumi. Šeit darbs tiek piedāvāts dažāda līmeņa speciālistiem un sludinājumus izsūta gan darbā rekrutēšanas aģentūras/aģenti, gan potenciālie darba devēji paši bez starpniekiem. Tādējādi darbu var atrast pat neatrodies Lielbritānijā. Sekmīgajiem kandidātiem jābūt gataviem ierasties uz darba interviju, dažkārt intervija var būt arī telefoniska. Tāpat Lielbritanijā ir pieņemts uzrādīt 2 atsauksmes (refernces) no iepriekšējiem darba devējiem (pasniedzejiem vai tamlīdzīgi).
Kopā ar Curriculum Vitae (CV) UK ir pieņemts iesniegt 'Cover Letter', kas ir tāda kā motivācijas vēstule konkrētajam darba sludinajumam.

How to reverse engineer PostgreSQL database

On Ubuntu/Kubuntu download postgresql-autodoc module:

$ sudo apt-get install postgresql-autodoc
or install it from source:
$ wget http://www.rbt.ca/autodoc/binaries/postgresql_autodoc-1.40.tar.gz
$ tar -xvfz postgresql_autodoc-1.40.tar.gz
$ cd postgresql_autodoc
$ sudo make install


Now run postgresql-autodoc with an appropriate database connection:
$ postgresql_autodoc -h localhost -p 5432 -d lasma -U lasma

This will generate a bunch of files containing your database schema.
Further you may use GraphViz dot utility to make a neat diagram in vector or raster format.
$ sudo apt-get install graphviz
$ dot -Tdia -o output_lasma.dia lasma.dot #output dia diagram
$ dot -Tpng -o output_lasma.png lasma.dot #output png image

Thursday 16 July 2009

String formatting with Python

Replacing a string:
$ python
>>> name = u'Lāsma'
>>> letter = 'Dear customer,\n Our customer service is the best.'
>>> letter = letter.replace('customer', name, 1) #replace only the first 'customer'
>>> print letter
Dear Lasma,
Our customer service is the best.
>>>


Dictionary based string formatting:
$ python
>>>name = u'Lāsma'
>>>sentence = 'My name is %(name)s"
>>>print sentence % vars()
My name is Lāsma
>>>

Thursday 9 July 2009

Down them all!

Use wget recursively to download all files from one web page with a single Linux command:
$ wget -r http://download.geonames.org/export/dump

Friday 3 July 2009

Wednesday 1 July 2009

How to union tables in PostgreSQL

This query unions two tables which contain the same columns thus works as table aggregate:
CREATE TABLE total_stats AS
SELECT order_nr
, transaction_date
, price_usd FROM january_stats
UNION
SELECT order_nr
, transaction_date
, price_usd FROM february_stats;


This query, however, will union tables where column structure not necessarily match:
CREATE TABLE total_stats AS
SELECT order_nr
, customer_id
, transaction_date
, price_usd FROM january_stats
UNION
SELECT order_nr
, (SELECT 'unknown' AS customer_id)
, transaction_date
, fare_usd AS price_usd FROM february_stats;


More then two tables can be united similarly.

Tuesday 30 June 2009

Convert MULTIPOLYGON to POLYGON in PostGIS

One way how to convert features from MULTIPOLYGON to POLYGON type in PostGIS. This approach can be used when geometries certainly are simple polygons and not multi-polygons.

UPDATE mytable SET the_geom = st_polygonfromtext(st_astext(the_geom)) WHERE st_astext(the_geom) NOT LIKE 'POLYGON%';

Timer function for PostgreSQL

This function will return execution time for any SELECT statement given as a parameter. It is useful for queries in psql.

DROP FUNCTION IF EXISTS timer(VARCHAR);
CREATE FUNCTION timer(VARCHAR)
RETURNS INTERVAL AS'

DECLARE
t1 TIMESTAMP;
t2 TIMESTAMP;

BEGIN

t1 = timeofday();
EXECUTE $1;
t2 = timeofday();

RETURN (t2 - t1);
END;'
language 'plpgsql';


EXAMPLE:
=> SELECT timer('SELECT foo FROM bar LIMIT 100');

-[ RECORD 1 ]----------
timer | 00:00:00.012927

Convert integers to base36 in PostgreSQL

This is PostgreSQL function for converting integers to base36 numbering system:

CREATE OR REPLACE FUNCTION dec2base36(bigint)
RETURNS character varying AS'

DECLARE
inparam alias FOR $1;
invalue bigint;
CLIST char ARRAY[35] :='{0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,
F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}';
rv varchar :=''; -- rv = resulting value

BEGIN
invalue = inparam;

WHILE invalue != 0 LOOP
rv = (CLIST[((invalue % 36)+1)]) || rv;
invalue = (invalue/36);
END LOOP;

RETURN(rv);
END;'
language 'plpgsql';


EXAMPLE:
=> SELECT dec2base36(123456789);

-[ RECORD 1 ]------
dec2base36 | 21I3V9

Sunday 21 June 2009

PostGIS špikeri

Konvertēt MULTIPOLYGON uz POLYGON ģeometrijas veidu:
CREATE TABLE gislatvija.mezi_simple AS SELECT gid, shape_leng, shape_area, (public.st_dump(the_geom)).geom AS the_geom FROM gislatvija.mezi_multi;

Validēt ģeometriju:
SELECT st_isvalid(the_geom) FROM foo WHERE gid = 40;
st_isvalid
------------
t
(1 row)


Uzzināt objekta ģeometrijas izmēru megabaitos:
SELECT st_mem_size(the_geom)/131072 as size_in_mb FROM foo WHERE gid = 40;
size_in_mb
---------
2
(1 row)



Ģenerēt 'bounding box' ģeometriju no koordinātēm:
UPDATE mytable SET the_geom = st_geomfromtext('POLYGON((' || minx || ' ' || maxy || ',' ||
maxx || ' ' || maxy || ',' || maxx || ' ' || miny || ',' || minx || ' ' || miny || ',' || minx ||
' ' || maxy || '))', 27700);


Shapefile dump from PostGIS database:
pgsql2shp -u lasma -h localhost -f myfile mydatabase "select id, ('/home/lasma/' || tif_path) as location from myschema.mytable where name = 'Worcester'"

Saturday 20 June 2009

Taisam savas kartes uz Garmin GPSmap 60CSx GPS


Aprakstītās darbības norisinās uz Kubuntu ar sekojošiem rīkiem:

  • GPSMapEdit (uz Wine emulatora)
  • cGPSmapper
  • ogr2ogr

Programmu un rīku instalēšanas process

ogr2ogr
(daļa no GDAL/OGR)
Daram konsolē:

$ sudo apt-get install gdal-bin

GPSMapEdit un Wine
Wine ir MS Windows emulators uz GNU/Linux. Ar tā palīdzību var palaist *.exe failus. Uzinstalējam Wine paciņas:

$ sudo apt-get install wine wine-gecko

Lejuplādējam GPSMapEdit:
$ wget http://www.geopainting.com/download/mapedit1-0-57-3.zip
$ mkdir ~/mapedit
$ unzip mapedit1-0-57-3.zip -d ~/mapedit


cGPSmapper
Lejuplādējam bezmaksas Linux versiju (1), atzipojam (2), iekopējam kaut kur, kur
bash var palaist gpsmapper kā komandu (3):
$ wget http://www.cgpsmapper.com/download/cgpsmapper-static.gz
$ gunzip cgpsmapper-static.gz
$ sudo mv cgpsmapper-static /usr/bin/cgpsmapper


Ja negribas piedraņķēt bin direktoriju, tad var uztaisīt symlinku:
$ sudo ln -s cgpsmapper-static /usr/bin/cgpsmapper


Datu apstrāde

Pirmkārt, salasam kaut kādus šeipfailus (*.shp), ko gribam ielādēt savā Garmin GPS uztvērējā. Pirmais, pārprojicējam visu uz WGS 84 (Lat/Lon) koordinātu sistēmu ar ogr2ogr, piemēram:

$ ogr2ogr -t_srs EPSG:4326 mezi_EPSG4326.shp mezi_LKS92.shp

Talāk varam startēt GPSMapEdit:
$ wine ~/mapedit/mapedit.exe

Importējam pārprojicētos šeipus caur File -> Import un sekojam programmas instrukcijām.
Saglabājam visu padarīto kā
gmapsupp.mp failu (šis faila nosaukums ir obligāts!).

Tagad
gmapsupp.mp fails ir jākonvertē Garmin saprotamā *.img formātā. To daram ar cgpsmapper.
$ cgpsmapper -q gmapsupp.mp

Izsaukts bez argumentiem, cgpsmapper izdos lietošanas pamācību:
$ cgpsmapper
*************************************************************
cGPSmapper a GIS converter into GARMIN compatible format maps
............
............


Šī konvertācija aizņems ieverojamu laika posmu, pacietība būs vajadzīga.

Visbeidzot izveidojam USB savienojumu ar savu Garmin ierīci un iekopējam gmapsupp.img failu mapē "Garmin" uz GPS uztverēja atmiņas kartes. Ja šī mape neeksiste, tad tā ir jāizveido. Startējam GPSmap 60CSx uztverēja režīmā un jaunizveidotajai kartei vajadzētu parādīties automātiski.

Te līdzīgs stāsts:
http://reidster.net/garmin/

"Kreisā" LKS92 koordinātu sistēma

"Kreisās" LKS92 specifikācija proj4 formātā:
+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +ellps=
GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
Kas ir līdzvērtīga EPSG:2100 (Grieķu koordinātu sistēma).
Pārprojicējam uz WGS 84 (EPSG:4326) izmantojot GDAL/OGR šādi:

$ ogr2ogr -t_srs EPSG:4326 mezi_EPSG4326.shp mezi_LKS92.shp

Lasīt vairāk par "6 miljonu operu" un LKS92 te:
http://www.gisnet.lv/gisnet/2007/04/sesu-miljonu-opera/

Klusumā tapa ideja

Tā, jau gads kā pagājis klusumā...
Vajadzēs kaut ko mainīt. Kapēc gan neizmantot šo blogu, kā vērtīgu piezīmju krātuvi sev, kas aizsniedzma no jebkuras vietas?