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

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

За тако нешто треба да прочитам фотку, е сад у ком формату је читати, питање је сад. Као голу гомилу бајтова, па онда да чупам заглавље из тога па да то рашчитавам? Тешко, скоро немогуће, јер су то стандардизовали десетак пута и свако се држи неког стандарда. Почео сам да читам спецификације тога и дигао руке од ћорава посла, могао бих с тим да се играм летњи дан до подне и да на послетку опет не покријем све постојеће формате. А вероватно их не користим све (дакле урадио бих нешто непотребно) а још вероватније би временом наишао још неки који досад нисам срео (дакле нисам урадио све што треба). Уместо тога, ако Ејси Диси из 1998 уме да прочита све што ми треба, онда ваљда и свеж Виндоуз (од милоште зван Пенџери) уме то исто, па ћу да упослим њега.

Дакле, учитам фотку, очитам њену висину и ширину, поделим да добијем размеру, помножим да добијем величину па све то упишем. Поље за величину ми се зове fot_mpiks, јер сам намеравао да уписујем мегапикселе, али сам се предомислио и рачунам на кило, а онда ме мрзело да преименујем поље. Да је ово нешто озбиљно, већ бих дошао себи из будућности да се мало ишамарам, јер ствар са погрешним именом је као комад намештаја на погрешном месту: непогрешиво циља ножни прст кад не гледам куд идем. Ал’ нека га овог пута.

Следећа верзија, дан касније. (Следи пасус са закучастом програмерском логиком, прескок!) Прва ствар је да проверим датум на свакој фасцикли и сравним са датумом у табели. Ако је исти, значи да у њој нема промена од прошлог пута, те да не проверавам фотке – ништа није додато, ништа измењено, ништа обрисано. За проверу нових и измењених фотки, идем кроз фасциклу и проверавам да ли је фотка већ уписана. Ако није, додам. Ако јесте, сравним датум (и време, до у секунду) па ако је новија, освежим. За обрисане бих морао обратно, да читам из табеле, па да проверавам сваку од њих да ли још постоји. Пошто ретко бришем (добро, понекад премештам, што му изађе на исто, нема га више), то би значило да у 99,9% случајева само проверава и не ради ништа. Нећу то, о том потом.

Нова ствар, логовање, ака деловодник. Кад се пише овако нешто што треба да обради хиљаде случајева, нема друге него да се тури комад који ће да бележи шта се ради, и то нарочито грешке. Лакше је то после прелистати него бечити очи пола сата, корак по корак, док не наиђе случај.

ssavior_02logНе, не користим овакве боје, ово је офарбао диф (програм који сравњује две верзије истог текста).

Друга ствар коју сам морао да додам је да уме да прекине са читањем фасцикли, запамти где је стао, и настави одатле следећи пут – јер требаће и то, да стане мало и окачи слику, па да онда настави.

Треће, она Мајкрософтова скаламерија која чита особине фотке, користи неке своје јединице мере. Да бих добио ширину и висину у пикселима, морам да поделим са 26,458. Зашто баш толико? Зато што је неко у Редмонду смислио да тако треба, а што има везе са стандардним бројем пиксела по америчком цолу (заокруженом на тачно 25,4 милиметра – не онако без везе као немачки од 25,0 мм) и ваљда јачином јужног ветра.

Четврто, рангирање. Јер сам закључио још одавно да свака рндалица има душу и да ће, хтео не хтео, да ми подмеће неке слике сувише често а неке друге сувише никад. Зато сам замислио да та насумица не иде по некаквом редном броју слога, него по бодовању фотке. Нешто бодова би се добијало на величину, нешто би се губило на старост те  за свако приказивање, па да бар те популарније клизе наниже. Рндалицу бих нагнуо ка врху листе да ми свеже фотке показује чешће.

Следећа верзија, још недељу касније, да видимо шта има од готових решења да разбројим мониторе. Нашао, из руке Дага Хенига, старог исписника из струке, чак мислим да смо једном седели у истом друштву, ал’ као и остали знамо се виртуелно већ двадесетак година. Такође нешто од Сергеја, још веће легенде (“Фокс је бољи од осталих језика јер они немају уграђеног Сергеја”). Ау… ово је буџевина на буџевину, јер Мајкрософту није пало на ум да направи низ равноправних монитора, свака вашка обашка, него податке даје само за први монитор, а за остале нема “дај ми други монитор” него “дај ми монитор који покрива ту-и-ту тачку”, па ако тамо нешто нађеш, нашао си. Решио сам то за случај да је други монитор десно од првог, не би био неки проблем ни остало, али до данас то нисам ни пипнуо.

То је та индуктивна теорија образовања, која вели да децу не треба учити природним законима, него им треба давати примере, а она нек сама изведу законитости. Онда им то смандрљаш да би у постојеће сате стало још нешто, и тако више пута, и онда као крајњи производ имаш програмере који решавају дрво по дрво и не мисле на шуму, додају буџевине на крпеж и никад не праве ново него само перу старо. Зато, ево ти први монитор и бели штап, па ти пипај где су остали монитори. Не, нема никаквог системског низа монитора, шта ће ти то?