Пример в живота

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

Пример в живота

Нямам думи да изразя колко съм потресен, че се оказах от другата страна на барикадата в този разговор между майка и син. Деца, ако родителките ви ме дават за пример – съжалявам! Направих всичко възможно да го предотвратя.

Пластелин

Установих че имам бая различен спрямо познатите си подход като пиша код. Силно напомня игрите с пластелин от детската. Първо натрупваш няколко буци, докато се задържат заедно и постепенно добавяш детайли, променяш конструкцията и премахваш излишното. Докато не получиш крайната цел. Предполагам художниците правят същото – започват с най-обща скица, после постепенно добавят конкретни и твърди форми, цветове и детайли. Така правя с кода – изработвам основна работеща идея и после постепенно я опростявам, изчиствам и правя по-елегантна. Смътно ми се струва, че имаше много подходяща дума за това. Сякаш Martin Fowler го нарича refactoring.

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

Абстракция, енкапсулация и индиректност

Ах, абстракцията. Излезте от дома, влезте в първия програмистки бар и кажете на някой „абстракция“. Това може да се развие само по два начина. Или ще се абстрахира от вас и ще продължи да си пие latte-то или (по-лошо) ще събере момчетата, ще ви издърпат навън и итеративно ще ви разработят час при зъболекаря. Ако го пробвате, задължително ми пишете. Не забравяйте да пратите адреса.

Но все пак имаше някаква истина в горното. Ако не сте заклет OOA/D архитект (вероятно не, защото иначе ще сте твърде заети с проектиране за да ми четете блога), то думата „абстракция“ вероятно предизвиква тръпки по гръбнака ви. В училище ме учеха, че това се нарича пежоративно, но ми се подиграват, като ползвам тази дума. Поради което ще кажа, че има отрицателна конотация. Също толкова криптично, но с по-голям шанс да сте го чували.

И тъй. Това което е по-малко очевидно, е че има две доста близки до абстракцията концепции – енкапсулация и индиректност. Но често чувам хора да употребяват едното, като имат предвид другото. Затова ще ви разкажа набързо картинката в моята глава. Continue reading

Пуф-паф

Няма нищо, което да прекъсва неделната работа така хубаво, като поредното ново откритие в текущата операционна система. Както си ползвах шела, без да искам направих класическата грешка и натраках sl вместо ls. Ubuntu-то (отскоро) реагира светкавично:

aquarius@arrakeen:~$ sl
The program 'sl' is currently not installed.  You can install it by typing:
sudo apt-get install sl
bash: sl: command not found

Хм, това беше ново. Не знаех че има програма, която се казва sl. Я да видим за какво иде реч…

Continue reading

Днес…

…се събудих посреднощ. В съня си бях осъзнал нещо важно. Хората постоянно правят грешки в разсъжденията си и ги наричат „мнения“. Така съвсем неочаквано се промъкват покрай барирерите ми от здрав разум и разклащат изоснови рационалното ми съзнание с неточности и логически фалове. И целият този хаос, с грешен етикет „резумна мисъл“, заплашваше да погълне съзнанието ми и да ме приготви за лудницата…

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

* – освен ако не е Буш, както би уточнил Ричард Сталман.

Как светът ще полудее

Ето какво чух от един мой приятел вчера. Мисля, че ми отне целия ден да го осъзная в пълната му сила.

(програмистите трябва) да спрат да пишат програмите. те трябва да пишат само инструментите с които хората да си решават проблемите

Разбрахте ли, колеги? Стига сте писали програми, пишете програми! Кралят е мъртъв, да живее кралят!

Разбиране, сложност и мисъл

Последния ми пост предизвика повече емоции, отколкото бях приготвен да поема. Очаквах да подразня доста хора, които в последствие да ме заклеймят като краен фундаменталист и да престанат да ме занимават с наивните си разсъждения по ICQ-та и GTalk-ове. Обаче не стана точно така. Като го написах, очаквах да остане неразбран. Сега ще направя допълнение, което също очаквам да остане неразбрано. Ще го отбележа пак, към края на текста. Continue reading