lauantai 28. huhtikuuta 2012

Selaimella ja skripteillä

Mobiiliyhteyden päässä oleva etäkoneeni tarvitsee joskus ylläpitoa. Itse mobiilidatayhteys tarvitsisi huomattavan parannuksen, mutta se on ihan toinen juttu. Etäkäyttöohjelmalla (Teamviewer) voin hyvin suorittaa ylläpitotoimia. Näillä uusien ”huidottavien” tablettien käyttiksillä em. ohjelma on aika tahmea käytettävä, käyttö on kömpeloä. Windows- ja Linux- käyttiksillä tehtävät sujuvat jouheammin. Tabletti taas on mukava ottaa mukaan reissuille. Sen akku jaksaa pitkään ja ”joka miehen” pikku asioissa se on kyllä kätevä. Sekä tabletissani, että HTC-kännykässäni on käyttöjärjestelmänä Android. Se on aika suljettu käyttis, jolla siis hyvin sujuvat tietotekniikan käyttäjän yksinkertaiset päivittäiset toimet. Vaativammat etätehtävät joudun suorittamaan maaseutukonettani netin kautta komentaen. Kun etäkoneeni käyttöjärjestelmänä on Linux, Ubuntu 11, on sen komentaminen ja säätäminen periaatteessa yksinkertaista. Käynnistät vain etäkäyttösovelluksen, ja teet homman, jos verkkoyhteys pysyy hengissä. Mutta entä se Android tai Applen OS. Mietin miksi käynnistäisin koko etäkäyttöarsenaalin. Voisiko jokin tehtävä hoitua vähemmällä.

Etäkäynnistyksellä tarkoitan tässä etäkoneen jonkin ohjelman käynnistystä. Löysin Adroid-nettikaupasta sovelluksen Remote Launcher. Marketin nimi oli muutettu nimeksi ”Play-kauppa” (”Google play”), kuvannee nykytrendejä – mikä pyhäinhäväistys. Tälle löydetylle etäkäynnistäjälle piti sen jälkeen löytää Linux'issa toimiva etäpari. Linux'in Symantic pakettienhallinnasta ei tässä ollut apua, mutta googlaamisesta oli. Löytyi Remote-Launcher-Server. Asentaminen ei ollut kovin monimutkainen juttu. Tämä serveri saa osaamisensa (ominaisuutensa) yksinkertaisesta ohjaustiedostosta, johon koodaat tarvitsemasi etätoiminnat. Kun tiedosto ja nettiyhteys ovat kunnossa, niin Android-tabletin tai -kännykän Remote Luncher'illa voi suorittaa ao. etätoiminnan. Esimerkiksi etäkoneen voi komentaa päivittämään jotain tarpeellista, vaikkapa etäkoneelle rakennetun nettisivun peukalokuvat. Asia näyttää perin yksinkertaiselta, ja onkin sitä. Tämä tapa soveltuu tehtäviin, joissa ei tarvitse välittömänä palautteena nähdä etäkoneen antamaa tulostetta. Tilanne saattaa muuttua monimutkaisemmaksi, kun esimerkiksi mobiilipalvelu milloin tahansa vaihtaa ip-osoitteen, jolla etätukiasema on yhteydessä Internetiin. Tällaisessa tapauksessa tukiasemani lähettää kännykkääni tekstiviestinä uuden ip-osoitteen. Yhteyden korjaus vaatii omat toimenpiteensä ja lyhyen odottelun. On siis tarpeettoman monimutkaista vaikkakin olen valmistellut etäkoneeni Remote-Launcher-Serverin tämän ongelmatilanteen varalta. Huomaat, että tässä tarvittiin välttämättä palaute, uusi ip-osoite ja palute on ulkoistettu kännykän tekstiviestipalvelulle. Monet yksinkertaiset etäkäynnistykset voin kyllä hoitaa Android'in Remote Launcher'illa.

Mietin voisinko käyttää selainta etäkäynnistystehtäviin. Oletus oli, että voisin. Myös yksityiskäyttäjille ja harrastajille sopivat pilvipalvelut ovat pikku hiljaa lisääntyneet ja kehittyneet. Tavoittelematta millään tavalla pilvipalvelun ideaa, tuntuu luonnolliselta, että harrastajakin voisi kehittää jotain samaan tapaan. Siispä ajatus etäkoneen komentamisesta selainta käyttäen tuntui hyvältä idealta. Sopivilla etäkoneen skripteillä voisi käyttö olla niin helppoa, että se tuntuisi myös kännykällä luontevalta.

Etäkoneeni kamera kerää kuvia koneen kiintolevylle liikehavainnoista. Jos olisimme keskellä riistan paljoutta, se kai olisi riistakamera. Kuvien keräämiseen se ei tietenkään tarvitse nettiä, vain sähköä ja vähän väkisin koneelle väännettyä älyä. Linux-koneeni hakemistosta voin toki etäkäytöllä saada kuvatiedoston sisällön näkyville, mutta se mitä tulee näytölle on hiukan onnessa, koska kuvien nimet hakemistolistauksessa eivät ole millään lailla havainnollisia. Siispä ensiksi tein yksinkertaisen bash-skriptin, joka koostaa nettisivun peukalokuvineen. Selaimella voin tuolta sivulta klikkaamalla saada kuvan näkyviin. Pienestä peukalokuvasta (thumb nail) voin tehdä valinnan kuvan näyttämisksi. Bash- tai shell-skriptit ovat komentokielisiä, usein hyvinkin lyhyitä kuvauksia halutusta. Skriptissäni on vain muutama rivi, mutta asiaan vihkiytymättömälle se on aika kryptinen. En siis rasita lukijaa sillä enempää. Ehkä sitten joskus kerhoillassa voimme perehtyä asiaan enemmän. Skripti kirjoittaa palvelimen hakemistoon html-sivun, esim. ”kuvat.html”. Jos nettiyhteys on kunnossa, palvelin lähettää sivun selaimelle ja sivulta voi tavalliseen tapaan klikata haluamansa kuvan. Kuvien lisääntyessä palvelimella pitää nettisivun tiedosto päivittää, samalla skriptillä tietenkin, jotta myös uudet kuvat saadaan nähtäviksi.

Päätin yksinkertaistaa tämän kuvasivun katselua niin, että pyydettäessä sivua nähtäväksi, skriptit rakentavat sen sillä hetkellä olemassa olevista kuvista. Sivua ei siis ole ollenkaan olemassa ennen kuin sitä tarvitaan. Muistan joskus huvitelleeni yhdessä matikan oppilaitteni kanssa ajatuksella ”tiedätkö, että takkisi on olemassa käytävän naulakossa, jos et näe sitä luokasta”, mutta sehän on taas toinen juttu. Sivun koostamiseen tarvitsin bash-skriptin lisäksi sivunkuvauksessa hyvin suosittua php-kieltä. Tämäkin skripti on hyvin lyhyt. Ei muuten mitenkään tavatonta arkielämässäkään, siis usemaan ilmaisutavan käyttäminen yhtä aika – oma puhekieli, elekieli, sivistyssanat, murteelliset tai vierasperäiset ilmaisut. Rakentelin muutaman vastaavan skriptin palvelimen hallitsemiseksi. Nyt voin suorittaa suoraan kännykällä joitain toimia, joihin ennen piti käynnistää etäkäyttöohjelma. Kun mobiilipalvelu vaihtaa tukiaseman nettiin pääsyssä tarvittavan ip-osoitteen, voin kännykän tekstiviestinä saadulla osoitteella tyyliin ”paas päivittäin pari nimipalvelua” (suomennettu php-skriptin nimi) saada yhteydet taas kuntoon ja ilottelu jatkuu. Pelkästään kännykkää käyttäen voin myös esimerkiksi luoda päivän hakemiston kameran kuvia varten. Palvelinhan tietää kyllä oman päiväyksensä, joten toiminto on automatisoitu – pyytää pitää. Samoin voin kopioida koko päivän kuvasaaliin em. hakemistoon. Tässäkään ei käyttäjän tarvitse olla selvillä päivien kulusta. Ehkäpä jotain ihan hyödyllistäkin voisi näin toteuttaa, mutta epävarmasti toimivat mobiilidatayhteydet opettavat varovaiseksi. Enpä perustaisi 10000:n yksilön kanalan automaatiota mobiiliyhteyden varaan, jos en muutenkaan. Jossain kerhoillassamme voimme ehkä palata asiaan demojen (ja mahdollisten demoefektien) muodossa.

Vappua odotellessa 2012
Hannu Haapasaari

Ei kommentteja:

Lähetä kommentti