вторник, юли 27, 2010

Коментари в кода

В момента работя по един open source проект и попаднах този коментар:

*This one is really quick and dirty because I want to finish this and catch
* the bus. Need to be redone ASAP
Човека трябвало да хване автобуса :)


Сетих се, преди време ми подариха една книжка - Code Complete. Там пишеше нещо от типа, че ако ти се налага да напишеш коментар, който да пояснява някакъв завързан хак, по-добре да го изтриеш, пренапишеш или в краен случай да оставиш  @todo коментар.
Автора на кода след този коментар, очевидно е осъзнавал, че кода му е мазало и трябва да се пренапише, само че ... получава се следното

Програмиста писал хака, повече няма да се захване да го пренаписва, защото вече веднъж го е направил. Никой не обича да пише едно и също нещо по няколко пъти и освен ако няма някой зъл триглав мениджър да му кисне на главата, почти съм сигурен, че няма да го направи.

Програмиста, който оправя кода след него (в случая аз) вижда въпросния коментар и в главата му автоматично се задейства "спагетената аларма". Като всеки самоуважаващ се програмист, той много внимателно го "заобикаля" и се мъчи да оправи евенуталния проблем, без да променя каквото и да било по въпросния блок, защото е напълно наясно, че ще трудно, гадно и неблагодарно.

Сега някои хора ще кажат, че това е принципен проблем на софтуера с отворен код (нали, Наско), но всъщност проблема е другаде. Проблема е в лидера на проекта и в това, че е пуснал това парче код в стабилната версия. За това BSD феновете толкова много се гордеят с "перфектния" си код, защото такива допълнения се отхвърлят много преди въобще да стигнат production версията. Въпреки базарния модел на софтуера с отворен код, винаги съм бил привърженик на идеята за силна фигура на върха, която да има последната дума по всеки въпрос. От тук идва разликата между добрия софтуер и сбирщината от хакове.

Все пак въпроса е какво искаш като краен резултат, многофункционален софтуер, който от време на време се чупи и губи информация или орязана откъм функционалност, но пък много стабилна система. Съществуват и двата варианта, и двата изкарват пари, а щом е така, значи има някакъв смисъл от това. Това пък от своя страна доказва, че всичко по-горе е просто една теория, която може и да има, може и да няма реална обосновка.

петък, юли 23, 2010

Изборът и мобилните комуникации

Избора Санчо ... е нещо много важно. Борим се всеки ден за да имаме избора да направим това или онова.
Но нека както винаги подходя злободневно и принизя изконни човешки ценности използвайки глупави и нямащи нищо общо сравнения.

Баба ми (например) е един от хората, които са живели в един по-добър свят. Има една телефонна компания, която дава един тип телефон и предлага една услуга. Избор нямаш, но пък замислете се:
Имаш си телефон само вкъщи, който не е особено удобен и функционален, но пък върши това за което си го купил, звъни.
Знаеш, че един разговор е един импулс колктото и да говориш. Един импулс струва точно толкова стотинки и това е. Абсолютно нищо друго не ти трябва да знаеш.
Мислите ли, че баба ми е била щастлива с тази услуга - аз да (въпреки че едва ли "щастлива" е думата, която можем да използваме в този случай).

Аз, няколко деситилетия по-късно, съм безкрайно объркан и изнервен не просто от самата услуга, а от избора, който съм принуден да направя. Имаме 3 мобилни оператора и още не знам колко други компании предлагат стационарни телефони.
Когато звъня на някого от мобилния си телефон трябва да мисля кой оператор използва отсрещния, защото цената която плащам е различна. Отдавна не знам точно колко ми струва един "импулс", просто защото вече такова нещо няма, таксува се на минута, но пък някои вземат определена сума за първите 30 секунди, други за първите 15, а някои за първата минута.
На всичкото отгоре колко плащам не зависи само от оператора ми, но и от тарифния ми план. Имате ли идея колко тарифни плана има вашия оператор ? Аз не.
Всеки път когато отида да си плащам сметката, учтивия служител пита:
- А вие знаете ли за новия .... (нещо което просто не чувам) ?
Аз отговарям с абсолютно безразличен поглед - Не!
- А искате ли ...
- Не !
Служителя тук вече е абсолютно объркан и дори се чувства леко обиден. Не искам да бъда груб, просто не ме интересува какви други тарифни планове има. Та аз едва успях да избера този.
Нарочно го правят, чакат ни в офисите си като алигатор - антилопа в близост до езерото. Знаят, че рано или късно ще се върнем за да пием вода и те търпеливо стоят точат зъбки за да може в правилния момент да изкочат да ни захапят за вратовете.

Имам чувството, че имат хиляди планове и никой, ама никой не може да ми каже кой е най-добрия, защото те били направени така че да ми пасват на мен. Ако започна да разглеждам всеки един от тях за да избера кой точно ще ми е най-полезен, ще трябва да отделя цял ден, за нещо което нито ми е интересно, нито имам каквото и да било желание да правя.
А да, и след 3-4 месеца ще излеже нова "гореща оферта", която в главата на някой гении ще ми се струва неустоима, но пък.. представете си - "Не ме интересува".

Аз го приемам така, ако отделя достатъчно внимание за да избера абсолютно-утимативно-невероятния план, който е направен да ми пасва по-добре и от дънки Levis, може би (хипотетично), ще спестявам по 10-15% от месечната си сметка. Не искам, плащам си данъка за да бъда незаинтересован.

"Един оператор - един телефон, един градски разговор - един импулс, един импулс - X стотинки" ще бъде новата ми мантра отивайки следващия път да си платя сметката.

четвъртък, юли 01, 2010

Compaq - Hard to beat (vintage)

Дори не помня къде съм го намерил това, но е култово :)