Sikkerhet
Åpen Artikkel
Fra perlscript til Android applikasjon
0

Fra perlscript til Android applikasjon

av Ørjan H Vøllestad05/10/2011

I begynnelsen var perl

Det hele startet med at jeg kom over et perl-script for mange år siden. Jeg har vært en ivrig linux-bruker siden 1998, faktisk samme år som dette scriptet ble skrevet av Brian Connors. Mannen som skrev perl-scriptet var en Starbucks ansatt og linux-nerd eller bare programmerer. Jeg regner med han var linux mann ettersom han valgte perl som programmeringsspråk og dessuten nevner det i koden # (you are using Linux, right?).

Brian skrev altså et script som tok høyde for alle ingrediensene en Starbucks kaffedrikk kan bestå av og automatisk snekre sammen en tilfeldig valgt en. Det må ta høyde for litt logikk, ettersom en «venti skim americano» ikke gir mening og en «valencia espresso» er skrekkelig, for å sitere Brian.

Her følger litt av kildekoden og en lenke under som lar deg laste ned scriptet. Du kan selv kjøre det, bare last det ned, gi det et nytt navn mv coffeetalk.txt coffeetalk.pl, gjør det kjørbart med chmod +x coffeetalk.pl og kjør det med ./coffetalk.pl

#!/usr/bin/perl
#
# coffeetalk
#
# A simple program to randomly generate coffee bar drinks for those
# who want to hit a Starbucks over lunch but don't know what to buy.
# Keeps it simple but follows the standard call syntax. As written,
# it'll generate decaf and iced drinks at random; as my Perl
# capabilities develop, you'll be able to hack it around a bit.
#
# Read around the source a bit and you should be able to learn
# something about being a barista as well. I'd like to think it's
# almost as interesting as hacking Perl.
#
# coffeetalk is (c)1998 Brian Connors and is freely distributable
# under the terms of the GNU Public License. If you need a copy of
# the GPL, go to http://www.gnu.org or grep your distribution disks
# (you are using Linux, right?) for a file called COPYING.
#
# There's always a stupid user.
#
$usage = "usage: coffeetalk -dDiImM2bFu. RTFMP.";

Last ned hele perl-scriptet her.

Fra perlscript til Android applikasjon

Som Android bruker ønsket jeg meg en applikasjon som kunne gjøre dette, men begrenset av for lite programmering bak meg måtte jeg ty til hjelp. Jeg har ofte ideer som stopper nettopp der. Mulig jeg har en ørliten entreprenør eller gründer i magen for det er så mange ganger jeg har fått ideer som jeg enten må gi vekk eller som bare forblir ugjort.

Jeg prøvde å kjøre perl-scriptet gjennom å bruke SL4A, et verktøy for Android enheter som lar deg script direkte, noe som fungerte, men gir ingen grensesnitt og jeg kunne ikke slenge argumenter til det. Jeg kunne i alle fall kjøre scriptet gjennom en snarvei på hjemmeskjermen. Jeg bestemte meg for å prøve å lage en mer «native» app ved hjelp av erfarne utviklere.

Fra perl til java

En kompis av meg i SnapTV, Tromsø-basert programvareselskap, hjalp meg litt igang ved å oversette perl-koden ovenfor til java-kode. Jeg trodde det skulle hjelpe meg raskt i gang med å skrive en Android app, men jeg er desverre ikke så erfaren med programmering, spesiellt Java. Jeg har hatt Informatikk på universitetet, men så og si aldri brukt det til mer enn shell-scripting det virkelige liv. Ettersom Android applikasjoner som regel skrives i java, tenkte jeg det skulle hjelpe, men jeg endte opp med å ta App Inventor fra Google i bruk.

Fikk hjelp av en Droidnytt-leser

Etter å ha forsøkt å lage en første versjon i App Inventor, endte jeg opp med en app som fungerte, men med helt grunnleggende funksjonalitet. Det stoppet opp når jeg skulle ta høyde for de argumentene/parameterne som perl-scriptet tillott. Så jeg tok kontakt med en droidnytt-leser ved navn Espen ‘Rexxars’ Hovlandsdal, som gledelig hjalp meg i gang.

Han så på App Inventor varianten min som vist over, men som ikke var særlig imponerende. Han skrev en ny variant temmelig raskt. Slik er det når programmering ligger i fingrene. Første versjon Espen sendte over til meg som en ferdigpakket apk-fil kunne fullt ut brukes, og jeg prøvde den faktisk på en Starbucks sjappe i Aberdeen nylig. Det var noe som en kan si falt i smak. De trodde faktisk det var den offisielle Starbucks-appen, hvor jeg sa at det ikke var det. Den offisielle har ikke denne funksjonen, ennå.

Tilgjengelig for alle

Idag sendte Espen meg en link på twitter som tok meg til Android Market. Han hadde laget en ny versjon av applikasjonen og publisert den på Android Market 4. oktober. Denne gangen med spennende animert grafikk og i tillegg til muligheten for å generere en tilfeldig kaffedrikk, kunne den nå ta i mot forhåndsvalgte parametere. For eksempel om jeg bare vil ha kalde drikker eller melken skal være av typen soya. Den animerte utgaven ser også mye bedre ut, takket være Hilde Skjølberg.

Hvis du vil, er scriptet lisensert med GPL og du kan fritt modifisere koden og gjøre hva du vil med den. Brian Connors skriver følgende på slutten av scriptet i kommentar:

# As stated in the docs, this stuff is GPL, but if there are any
# attempts to expand this for a special purpose, I'd appreciate
# knowing about them so I can distribute everything about them.
# Some possible enhancements:
#  - Additions of Seattlish stuff like Italian sodas
#  - More Starbucks stuff
#  - Versions specific to other coffee shops (I may release a
# Coffee Connection version for nostalgic Bostonians if
# there's any demand at all).
# Let me know, and if you do hack it send me a copy so I can include
# it in the distribution.

Jeg har ikke klart å komme i kontakt med Brian Connors, men det hadde vært morsomt å sende han Android appen. Hvis du klarer å finne han, hadde det vært topp. Morsomt med åpen kildekode.

0%
0%
0%
0%
0%
Om Forfatteren
Ørjan H Vøllestad

Ørjan var tidligere redaktør i Droidnytt, nå jobber han på Andøya Romsenter

Kommentarer

Skriv kommentar