Postmodernne Prometheus

January 6th, 2009

Kas tarkvaraarendus on tõesti surnud?

Sattusin peale arvamusele, mis väidab, et tarkvaraarendus on surnud ja leidsin, et peaks selle kohta mõne rea kirjutama. Mina ei arva, et tarkvaraarendus on surnud, pigem vastupidi, meid ootab selles valdkonnas ees väga põnev aeg. Jah, üleüldine majanduslangus avaldab kahtlemata mõju ka tarkvaratööstusele, aga see pole ju esimene kord. Eelmine suurem vapustus oli mäletatavasti internetimulli lõhkemine sajandivahetusel. Selle me elasime üle ja nii elame me üle praegusegi olukorra; pigem on itimehed mitmete teiste eluvaldkondade inimestega võrreldes eelisseisundis, sest meid läheb ikka vaja.

Mõistagi ei tähenda see, et ühtki tarkvaraarendajat lahti ei lasta, kahtlemata lastakse. Laias laastus võib arendajad jagada järgmistesse kategooriatesse:

  • lootusetud juhtumid (25%)
  • saavad aeg-ajalt aru, mida nad teevad (40%)
  • pädevad tegijad (33%)
  • tipud (2%)

Nagu Internetis enamasti kombeks, tõmbasin ma need proportsioonid välja enda tagumikust, kuid kõhutunne ütleb, et see jaotus on suhteliselt täpne. Siit nähtub, et nii mõnigi on endale valinud vale elukutse, kas siis lootuses ratsa rikkaks saada, sellepärast, et ta ei osanud midagi paremat valida või ükskõik mis muul põhjusel. Majanduslanguse tingimustes tuleb loomulikult järeleandmisi teha ning esimesena satuvad löögi alla tõenäoliselt kahe ülemise grupi esindajad, kui nad just väga osavad müügimehed pole. Majandusharu kui terviku seisukohast on see positiivne, sest võib-olla leiavad nad endale mõne muu kutsumuse ja kompetents seetõttu kasvab. Seega on minu arust tegemist tervitatava nähtusega, mille käigus eraldatakse terad sõkaldest, sest nii nagu igaühest ei saa ärimeest või kinnisvaraarendajat, kuigi buumi tingimustes võib mõnigi niimoodi arvata, ei sobi kõik ka tarkvaraarendajaks. Ehk aitab praegune olukord neil selles selgusele jõuda.

Miks siis üksiküritajatel tööd väheks jääb? Asi pole avatud lähtekoodis või piraatluses, mida tõsiseltvõetavad ettevõtted endale lubada ei saa. Kui väiksemad ettevõtted võivad odavuse huvides leppida inimestega tänavalt, kelle tulevane kättesaadavus on teadmata ja kahtlase väärtusega, siis suuremad ettevõtted hindavad stabiilsust ning selle eest, et keegi neile edaspidigi tuge pakub, on nad nõus maksma. Suvalised patsiga poisid mingis foorumis ei lähe siinkohal just usaldusväärsuse kaalutlusel arvesse. Kui tööd napib, siis on küsimus ilmselt just usaldusväärsuse müümise oskuses, sest head IT-spetsialistid on endiselt hinnas ja minul kui palgatöölisel lähiajal tööpuudust ette näha pole.

Mis puutub outsource‘imisse, siis siingi on hinna ja kvaliteedi suhe enam-vähem paigas ja odavama hinna eest saadav tulemus on paraku kehvem. Kaks põhilist probleemi, millega olen isegi kokku puutunud, on keelebarjäär (inimesed ei saa inglise keelest aru) ja oskamatus oma peaga mõelda. Nii et leiba päris käest ära vahest siiski ei võeta.

December 25th, 2008

Arvelduskrediidi lõpp ja muud jõulu-uudised

Häid jõule kõigile lugejatele, keda siia viimasel ajal minu üllatuseks aeg-ajalt ikka satub. Ülimalt populaarseks osutunud arvelduskrediidi jutukeses mainitu on nüüd tõeks saanud ja juba paar päeva elan vähemalt Swedbankis krediidivaba inimese elu. Veel lepingu pikendamisest keeldumise põhjusi analüüsida püüdes jõudsin järeldusele, et äraütlemisele ei saanud olla muud põhjendust kui see, et minu määratud tagasimaksega krediitkaardi (kunagise Ego) saldo liikus samuti üpris limiidi lähedal ja igakuise tagasimakse tegemise päeval arvestati kõigepealt intress, millele seejärel lisati tagasimakse. Selle hookuspookuse tulemusel läks krediitkaardi saldo mõnel korral ajutiselt üle limiidi, ehkki mina pole midagi valesti teinud ja viga on Programmis. Samas pole enam vahet, olid need põhjused, millised nad olid, mina rohkem krediiti ei taotlenud.

www.spiderworld.com aga oli kõigist minu püüdlustest hoolimata taas poolteist päeva maas. Nimelt leidsin ümberkonfigureerimise käigus enda arust võrdlemisi lihtsa lahenduse, kuidas saada lahti eelmises postituses mainitud häirivast konsooliaknast. Täpsemalt muutsin ära kasutaja, kelle õigustes skript käima pannakse. Paraku selgus, et nimetatud kasutajal puudus õigus Windowsi teenuseid käivitada ja peatada. Probleemi lahendamiseks andsin talle õigusi juurde, aga kontrollimaks, kas asi töötab, peame ootama Apache’i järjekordset ärakukkumist. Loodetavasti kõik töötab ja kui ei tööta, siis märkan saidi mittetöötamist võrdlemisi ruttu nagu seekord.

Kuna seekordsete pühade ajal on mul tavapärasest rohkem vaba aega, kirjutan siia sel nädalal tõenäoliselt veel mõne jutukese, aga seniks veel kord häid pühi!

December 14th, 2008

Veebiserveri töötamise kontrolli skript

Ühes eelmises postituses kirjutasin, et kuna Apache’i veebiserver kipub aeg-ajalt rippuma jääma (kahtlustan, et tegelik kurjam on siinkohal PHP, aga 100% kindlusega ei saa seda väita), siis sai kirjutatud skript, mis iga 15 minuti tagant kontrollib, kas server on püsti ja vajadusel käivitab teenuse uuesti.

Veebiserveri töötamise kontroll peaks iseenesest olema lihtne: tuleb lihtsalt teha telnet porti 80 (või muusse porti, mille peal server töötab). Kui serveriga saadakse ühendus, siis on kõik hästi, vastasel juhul tuleb leida põhjus, miks server ei tööta. Seega oli minu esimene mõte teha telnet ja suunata tulemus töötlemiseks edasi. Kui tulemus sisaldab veateadet, siis tuleks teenus uuesti käivitada. Paraku ei ole kõik asjad elus nii lihtsad ning ma avastasin oma üllatuseks, et Windows’i telnet ei suuda oma väljundit torru (pipe) edasi suunata. Ükskõik, mida ma ka ei teinud, telnet saatis nagu vana ahv oma väljundi ikka konsoolile. Internetiotsingut kasutades selgus, et ma pole esimene, kes selle probleemi otsa komistanud on, aga iseenesest oli see minu jaoks täiesti ootamatu.

Niisiis tuli pöörata pilk mujale. Kuna ma ei viitsinud ise mingis muus keeles põhjalikumat koodi aretama hakata, siis leidsin sobiva jupikese siit ja võtsin selle peaaegu muutmata kujul kasutusele. See pole muidugi ideaalne lahendus, sest erinevalt telnet‘ist tõmbab see terve lehe endale alla, kuid põgusa otsimise käigus ma paremat ei leidnud. Kood ise on selline:

WebSiteTest.vbs

Dim strWebsite

strWebsite = "www.spiderworld.com"

If PingSite( strWebsite ) Then
    WScript.Quit 0
Else
    WScript.Quit 1
End If


Function PingSite( myWebsite )
' This function checks if a website is running by sending an HTTP request.
' If the website is up, the function returns True, otherwise it returns False.
' Argument: myWebsite [string] in "www.domain.tld" format, without the
' "http://" prefix.
'
' Written by Rob van der Woude
' http://www.robvanderwoude.com
    Dim intStatus, objHTTP

    Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )

    objHTTP.Open "GET", "http://" & myWebsite & "/", False
    objHTTP.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MyApp 1.0; Windows NT 5.1)"

    On Error Resume Next

    objHTTP.Send
    intStatus = objHTTP.Status

    On Error Goto 0

    If intStatus = 200 Then
        PingSite = True
    Else
        PingSite = False
    End If

    Set objHTTP = Nothing
End Function

Võrreldes originaaliga on selles skriptis muudetud ainult veebiserveri aadress ning teate väljastamise asemel tagastab skript 0, kui server töötab ja 1, kui server ei tööta. Et selle tulemusega midagi peale hakata, sai kirjutatud käsufail, mis ei erinenud kuigivõrd minu esialgsest nägemusest. Viimati tegin midagi sellist küll aastaid tagasi, ent erinevalt telnet‘ist töötas see nii, nagu eeldasin.

testwebsite.bat

@ECHO OFF
wscript.exe WebSiteTest.vbs

IF errorlevel 1 GOTO :error

ECHO Success
GOTO :end

:error
ECHO Error
ECHO Error %date% %time% >>errors.txt
NET STOP Apache2.2
NET START Apache2.2

:end

Kõik katkestused veebiserveri töös, eeldusel, et arvuti ise töötab, logitakse niisiis faili errors.txt. Viimasest IP-aadressi vahetusest saadik on selles järgmised read:

Error N 27.11.2008 14:00:30,70 
Error L 29.11.2008 14:15:30,70 
Error L 06.12.2008 23:30:30,71 
Error E 08.12.2008  2:15:00,58 
Error T 09.12.2008 14:30:30,77 
Error L 13.12.2008  1:00:21,32 
Error L 13.12.2008  1:15:23,73 
Error L 13.12.2008  1:30:23,37 

Nagu näha, kukub server tõesti suvalistel aegadel ise maha. Ühtlasi näeb siit, et eile öösel suutis STV jälle maha saada ligi tunniajase teenusekatkestusega. Puhtalt veebiserveri huvides oleks muidugi võimalik kontrollida www.spiderworld.com asemel localhost‘i töötamist, aga selline skript annab samas hea võimaluse ka teenuse kättesaadavust kontrollida, kuigi Apache’i taaskäivitatakse sel juhul ilmaasjata.

Veidi häiriv on küll see konsooliaken, mis iga 15 minuti tagant hetkeks ekraanile hüppab, kuid seni pole ma leidnud võimalust sellest lahti saada. Vahest peaks mingil hetkel proovima kontrollskripti Powershelli peale üle viia, mis peaks võimaldama seda akent mitte näidata, aga see on tuleviku teema.

|