сряда, 11 ноември 2009 г.

Аз съм много тъп, но поне се старая

Много, много съм се чудил защо толкова малко хора се интересуват от техника и математика, защо когато говоря хората ме гледат като извънземен, защо имам чувството че съм заобиколен от идиоти, и т.н.

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

На всички които са се чудили защо съм толкова странен и различен: Интересувам се от всичко и не ме е страх от непознатото. Прекомерно любопитство. Това е. За това се занимавам с компютри, математика, за това се опитвам да се науча да пиша с този блог, за това се мъчих да се науча да рисувам, за това уча и за това се съм замислен постоянно, защото съм любопитен, а не защото съм умен или имам някакви особени таланти(любопитството е ЕДИНСТВЕНИЯ ми потвърден талант, всичко останало е спорно).

Чудих се защо повечето хора не са като мен в това отношение. Нямам никаква представа. Отне ми доста време докато осъзная какво точно ме прави различен, доста ще ми отнеме да разбера ЗАЩО повече хора не са различни като мен.

Хората ме мислят за антисоциален, защото прекарвам толкова време пред компютъра, и са може би прави. Но едно от предимствата на интернета е че вече не сме ограничени географски. За първи път се почувствах у дома в Hacker News. За първи път открих огромно количество хора, по умни от мен, които се интересуват от същите неща като мен. Тези които се интересуваха от различни неща, споделяха интересите си и заинтересуваха и други хора с познанието и опита и с ентусиазма си.

Любопитството е едно от най важните хакерски умения, ако не си любопитен, най доброто на което може да се надяваш в софтуерния бранш е да си тренирана маймунка, да седиш и да се пощиш по цял ден и да правиш номера по команда. Всъщност без любопитство и ентусиазъм човек е тренирана маймуна в КАКВАТО и да е човешка дейност, като се замисля. Циникът в мен казва че имаме нужда от маймуни, но хората са по интересни за разговори.

Hey look! talking monkey. HaHa

-Johny Bravo

събота, 7 ноември 2009 г.

Книги

На скоро си направих facebook акаунт, и ако питате мен, все още предпочитам twitter, но това е друг въпрос :D Забелязах две неща за секцията ми за любими книги. Първо, почти отсъства фикция, и второ, като изключим SICP, всички други книги съм ги прочел от корица до корица, което е необичайно за мен.

Хм. извода е че явно книги които не са ми любими, не ги завършвам, и разбира се SICP е изключението от това правило, по обясними причини, най вече поради факта че съм гледал лекциите поне 2-3 пъти. Да видим какво съм писал в тая секция:

Zen And The Art Of Motorcycle Maintenance(Дзен и изкуството да се поддържа мотоциклет), от Робърт Пърсиг. Това беше четивото ми за лятото, и честно казано това е най любимата ми книга. Дори си препрочетох 26-та глава, и смятам да я препрочета още няколко пъти. Книгата няма много общо с програмирането. Въпреки че в началото се казва и че няма много общо с мотоциклетите, или със дзен будизма. Книгата просто използва поддръжката на мотоциклет като пример за нещо което може да бъде извършено добре, или зле, т.е. с или без качество, което е и централната идея на книгата, изследване на това какво е качеството. Споменатата 26-та глава се занимава с идеята за gumption, дума която може да бъде преведена като находчивост или ентусиазъм за дадена работа. Според главата, имаме резервоар от гъмпшън с който вършим качествена работа, и има определени гъмпшън капани, които ни изсмукват гъмпшъна и ни пречат да вършим работата си добре. Книгата изгражда цяла нова метафизика, но мисля че това което получих от нея беше именно по добро разбиране на връзката между техническия и художествения свят(наричани в книгата класически и романтичен поглед към света), както и идеи за това как и защо да търся качеството в работата си. Определено си заслужаваше 15-те кинта които дадох, и времето което отделих за тази книга.

Следващата в списъка ми е "Изкуството на войната" От Сун Дзъ. Аз съм особено обсесивен човек. От време на време ме хваща някаква идея и искам да науча колкото се може повече за тази област, и тогава в един момент, ентусиазмът ми изчезва и се захващам с нещо друго. Преди няколко години, това беше военна история и разбира се военна авиация. Бях обсебен от авиацията, физиката, механиката и технологията, и съвсем естествено този интерес прерасна в цялостен интерес в историята на войната и военните технологии и разбира се стратегии и тактики. Любимите ми компютърни игри бяха lock on и starcraft, т.е. военен авио-симулатор и военна стратегия. Съвсем естествено беше за мен да потърся нещо по задълбочено върху теорията на войната. В тази книга е докосната повърхността на толкова много и разнообразни теми свързани с войната, икономика, политика, психология, физика, дори математика и абстрактна логика и разбира се философия. Изучаването в дълбочина на тези теми със сигурност е доста важно както в истинската война, така и в хобито ми: стратегически игри. Макар и да нямам много време да играя, редовно гледам старкрафт мачове и съм удивен от количеството познание от тази книга която може да бъде приложена върху компютърна игра, създадена векове след писането и.

Следва Структура и интерпретация на компютърни програми(SICP) От Хал Абълсън и Джерълд Съсмън(или сусман, както ви е по удобно) Вече споменах че не съм чел книгата. Чел съм отделни части от нея. Гледал съм всички лекции поне по 2 пъти. Чел съм доста от кода, написан освен на scheme, така и на други езици. Научил съм толкова много от тези лекции. Дори няма да говоря за книгата, защото едва ли някога ще успея да я прочета.

В началото бе командния ред(In the beginning was the command line) от Нийл Стивънсън. Есето е написано през 1999, и според автора, днешно време то е остаряло, заради появата на Mac OS X, но все пак все още е интересно четиво, а и когато го четох ме остави с интересни мисли в главата. Мисля че на няколко пъти съм се опитвал да напиша есе вдъхновено от някой от идеите обсъждани в него. Още от самото начало на интереса ми към линукс се интересувах и от причините поради които толкова малко хора го използваха. Това есе ми даде само частичен отговор, но все още не разбирах, за това и исках да напиша свое есе по темата, защото имаше нещо което още не разбирах. В крайна сметка мисля че днешно време знам отговора благодарение на първата книга в този списък, където изрично се търси отговор на този въпрос. Както и да е, намерих версия на есето с допълнителни бележки, които май са нещо като свеж поглед върху проблемите с които се занимава то, т.е. взима под внимание променения технологичен свят, въпреки че бележките са писани само 5 години след излизането на му :D Смятам да го прочета скоро.

Hackers and painters(Хакери и художници) От Поул Греам. Удивителна колекция от есета. Прочетох всички есета от paulgaham.com и по късно разбрах че всъщност доста от тях са били публикувани в книга, така че прочетох тази инцидентно :D Мога да говоря с часове за това колко съм научил от тези есета. На практика всичко което знам за писането на есета знам от стила с който е написана тази книга. Първите ми насоки в света на програмирането и разбирането на това което се опитвам да правя дойдоха именно от есетата на PG. Също така, аз очевидно съм от новото поколение Lisp програмисти вдъхновени от PG, които учат лисп само защото PG казва че е готин език. И за това се захванах със Scheme, а сега и с Clojure. Повечето есета съм чел повече от веднъж, а някой дори и съм превел на български(разбира се с много грешки :D).

The art of Unix programming (Изкуството на Unix програмирането) От Ерик Реймънд. Когато започнах да се занимавам с линукс, именно писанията на ESR ме насочиха към програмирането, а този труд в частност ми обясни историята и философията на Unix. Нищо повече. Това е просто задължително познание, без значение дали го научавате от точно тази книга, или просто знаете много за Unix от опит. Също така, това е една от малкото книги които имат думите "The art", както и думата "programming" В тях, без това да е маркетингов булшит.

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

Повечето от книгите които захващам са технически книги от типа на "Научете Х". Въпреки че са лесни за четене, никога не съм завършвал "For dummies" книга, и само някой от книгите на O'Reilly съм успявал да прочета почти до край. Тези книги са полезни, но доста малко от тях успяват да променят начина ми на мислене достатъчно че да ми харесат повече от обикновени онлайн туториъли. Именно "For dummies" книгите страдат от недостатъка че не ме карат да мисля достатъчно, за това и вече ги избягвам, дори и ако само искам да ги ползвам за бързи туториъли, не са добри дори и за това.

В момента чета Coders at work, на Питър Сайбъл, надявам се книгата да може да влезе в този списък, и въпреки че съм прочел само 3 от интервютата, вече имам чувството че ще я прочета цялата и дори ще си препрочитам някой части. Трудно се намират такива книги.

петък, 6 ноември 2009 г.

Малииии, то станало ноември ве

Хм, май се олях. Нямам какво да правя точно в този момент и за това на бързо ще начаткам този блог пост. Студентския живот е ок, предполагам, като изключим факта че трябва да уча С++. Математиката е поносима и дори линейната алгебра ми харесва повече от колкото очаквах. Не мога да кажа същото за анализа.

Заради факта че ми се налага да уча С++ и 2 вида математика, може да си представите колко не ми се програмира вечер в къщи. На няколко пъти успях да седна пред компа през уйкендите и да попиша малко "истински" код, но ако още веднъж трябва да реша някоя смотана задача където да трябра да "нарежа" дадено число на цифри използвайки %, ще откача и ще започна да избивам хора около мен.

В момента съм отново в нещо като дупка относно на къде си насоча вниманието, и отново имам много идеи. Едната е да се концентрирам повече върху web разработване с Clojure, но след като написах 1 приложение мисля че ще чакам документацията на clojure фреймуърките да се подобри. Gui програмите са опция, но ако ползвам Clojure, трябва да ползвам някоя от Java библиотеките, което е ъъъгххх, пфф. Другия вариант е да се върна при Python, което е добра идея, освен с GUI, от известно време ми идват и идеи за 2D игрички, което означава че може НАЙ накрая да науча Pygame, или пък направо да се захвана с java bindings-ите за SDL, които намерих в нета и да се опитам някакси да ги ползвам с Clojure, въпреки че въобще не харесвам да ползвам java библиотеки за такива неща. Другия вариант който доста рано заебах беше идеята ми да понауча нещо за системното програмиране и Unix+C. Като цяло идеята е интересна, понеже така или иначе уча С/С++ в университета, може да се занимавам в къщи, но бързо осъзнах че всъщност мразя С. Хм, май не го осъзнах бързо, защото се опитвах да науча чудото в продължение на доста дълго време и още не знам как е възможно някой да програмира ИСТИНСКИ програми на това нещо. Просто съм прекалено тъп за чистото С явно.

Уау, най накрая блог пост. Предполагам че това е нещо като постижение :D