Историја екраноспаситеља (3)

Истом приликом сам и, најзад, почео да приказујем слике. Сад већ знам где су ми монитори, дакле на сваком од њих направим по форму да приказује по једну слику, и нешто да одбројава време кад треба да се пусти следећа слика.

Е, да је то тако просто. Прво што реч “форма” нема везе, јер у ствари (у овом контексту) значи образац, где на екрану опонашамо оно што је било на папиру, ишпартано, са предштампаним називима и празним местима за попуњавање.  Што сваки образац на екрану и ради –  има објашњење шта где треба да се упише, и има места где ће то да се уписује. Не оловком, него има да се куца, кликће, скроља или шта већ, ваљда је тако и лакше. Успут има места и за сличице. У овом случају ама баш ничег осим слике ни нема, какав ми је па то образац. Треба ту боље име.

Дssavior_03tajmerакле, план је овакав: тајмер подесим да окида сваке 4 секунде (или ту негде, зависило би од броја монитора… да негде закачим трећи па да пробам, можда бих смислио како да срачунам интервал). Памтим који је текући монитор, на њему прикажем фотку, па запамтим следећи као текући. Ако нема следећег, онда опет први. Дакле не први-други-први-други, него овако, да ради за било који број од 1 до ен, а што је међу основним разликама између програмерског и нормалног размишљања. Нормално је да се решава свој случај, имам два монитора и шта ме заболе ако неко има девет. Програмер нема тај луксуз, јер ако напише тако да покрива један или два, сутра ће да га зове муштерија која их има три. Има да кукумавчи, спомиње ситну децу, свеце, родбину и неће паре назад него хоће решење у року од одмах или јуче. Зато, треба мислити унапред.

А писано је, у програмерским фајловима староставним, да никад нема времена да се уради како треба, али увек има времена да се уради двапут. Кад га већ пишем за себе, без рокова, нека буде како треба.

Е, кад окине тај тајмер. Да, треба да прикаже слику. Насумице. Кад се стартује, тражи слику која испуњава задати услов. А услов зависи од монитора, ако је водораван онда размера до 0,75 а ако је усправан онда од 0,75 навише. А ако је баш 0,75, тј 3:4? Онда може на оба јер таквих фотки има највише (не задуго, на новом канону је фабрички 2:3). Онда услову додаје да је број бодова једнак или већи броју који рндалица извуче, или већи. Што већи? Па, тешко да ће да буде једнак, рндалица даје бројеве са до 14 места, а ови су цели, углавном седмоцифрени. А и да заокружим, опет ко зна да ли бих до краја века погодио постојећи број. Ово омогућава отприлике насумицу, што сам и хтео.

Кад напокон нађе слог са таквим бројем бодова, још није готово. Сад тек следи провера да ли тај слог одговара некаквој стварности (стари проблем са базама података). Да ли слика још увек постоји – можда сам је обрисао, сакрио, преместио, преименовао? Ако постоји, ајде прикажи – но ако дође до грешке, шта онда, да јавим грешку? То можда да јавим себи док радим на овом, ал’ ово треба да се врти и кад не радим, дакле боље упиши грешку у деловодник и дај неку другу слику. Коју? Па, следећу која задовољава ове услове, а за ову која је нестала или неће да се прикаже, бриши слог, да не натрчимо поново на исту грешку. А кад је прикажеш, увећај број приказивања те слике за један, прерачунај бодове.

ssavior_04DajFotkuТо је лепо радило до пре неки дан, чудо једно. А онда сам нешто испремештао слике па није могао да нађе ниједну, па је тако у недоглед тражио следећу док није пукао јер је позивао сам себе (дајФотку() позива дајФотку()) више од дозвољеног броја пута. Хммм… свака рекурзија (види под рекурзија) је знак лењости, кажу једни. Ко не разуме рекурзију, кажу други, неће разумети ни рекурзију.