четвъртък, 19 февруари 2009 г.

скрипт за синхронизация на статуса ви от twitter към скайп

Днес написах един прост скрипт за синхронизация на статуса ви от twitter.com към скайп. Когато го стартирате ще ви поиска име и парола от туитър, ще изтегли последния ви ъпдейт и ще го вкара в mood полето ви на скайп. Скайп разбира се ще ви попита дали вярвате на този скрипт и вие се съгласявате.

Той има следните зависимости:

Skype4Py: https://developer.skype.com/wiki/Skype4Py

python-twitter: http://code.google.com/p/python-twitter/

Инсталацията и на двете е лесна под линукс. И двете ги има в pypi

така че лесно би трябвало да можете да ги инсталирате със командите:


python easy_install Skype4Py
python easy_install python-twitter


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

А ето го и самия скрипт:



#!/usr/bin/env python
#-*-Encoding: utf-8-*-

#importing the needed api's
import Skype4Py,twitter

def get():
"""
getting the username and password from the user

"""
user=raw_input("twitter username:")
passw=raw_input("twitter password:")
return (user,passw)

user,passw=get()


#instantiating skype and conecting to the client
skype=Skype4Py.Skype()
skype.Attach()

#conecting and autenticating to twitter.com
twitterAPI=twitter.Api(user,passw)
twitter_user=twitterAPI.GetUser(user)

#composing the status mesage
status=u' Status from http://twitter.com/: "'
status+=twitter_user.status.text+'"'

#inserting the mesage in skype's mood field
skype.CurrentUserProfile.MoodText=status

print "Done!"




можете просто да го копирате във файл на име tw2s.py или нещо подобно, да му дадете права за изпълнение:

chmod +x tw2s.py

и да го стартирате:

./tw2s.py

Това е.

четвъртък, 12 февруари 2009 г.

Защо Javascript е истински език?

За да поясня един спор между мен и един млад и заинатен С++ програмист реших да понапиша няколко реда. Ще се опитам да се въздържа от обидни думи към майката на Бярне Строуструп, защото е излишно. Целта на този пост е образователна.

Да се върнем към фундаментът. Какво е компютърът? Изчислителна машина! Ок. Ето как бих обяснил компютърното програмиране на човек който няма почти никакъв досег с компютър(т.е. няма предразсъдъци относно какъв е процесът):

"Компютърът е машина, която е неспособна да прави каквото и да било. Работата на програмистът е да я научи как да се "преструктурира" във специализирана машина, която да извършва точно определена задача".

И ето поясненията: Компютърът наистина е безполезен без софтуерът. А какво е наистина софтуерът? Това е описание на някаква машина.

def fib(n):
if n==0:
return 1
else:
return n*fib(n-1)

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

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

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

Когато погледнем на нещата от този ъгъл, осъзнаваме че подробностите имат отношение само към конкретния проблем който решаваме. И да отречеш даден подход напълно, или да проявиш липса на разбиране и арогантност към определен дял от изкуството е равносилно на неразбиране на фундаментът. Или по конкретно, ако смяташ че уеб програмирането не е истинско програмиране, защото не можеш да продуцираш .exe файл, проявяваш невежество. Не е важно дали създаваш .exe или .sh или .py и дали кодът ти се компилира или интерпретира за да определиш дадено програмиране като истинско, а друго като нещо тотално различно. Това са подробностите които зависят само от конкретния проблем. Ако пишеш десктоп програми за уйндолс, ползвай C++ или C# и продуцирай .exe-та, ако искаш да организираш цялата информация на планетата създай мега-сървър, използвайки JVM като платформата ти, ако искаш да напишеш инсталатор за библиотеката ти, използвай bash... Не можеш да кажеш че само .exe файловете са истински софтуер, това е глупаво и най важното: НЕ Е ВАЖНО. Или поне не е най- важното. Отново повтарям: Това е просто детайл свързан със специфичния проблем който се решава.

Каква е разликата между scheme интерпретатор написан на С и Scheme интерпретатор написан на Scheme? Едното е по бързо от другото, да, но това е само подробност. Ако погледнем на нещата от по високо, разбираме че единствената разлика са детайлите, всъщност това че едното е .exe а другото е .scm няма никакво значение, и двете се подчиняват на което и да е определение за софтуер. Всъщност дори и интерпретаторът да беше написан на Javascript и да работеше в браузарът, пак нямаше да има значение, защото кодът просто описва машина, която върши действие, няма нищо магическо в .exe файловете, те са просто друг формат. Няма нищо срамно в това интерфейсът ти да е написан на HTML, вместо на QT, резултатът е същия, просто едното е в табче във firefox, а другото е в собствен прозорец. Въпросът е да си свършиш работата!

Едно от най важните неща които всеки програмист трябва да научи е кои детайли да гледа, и кои да игнорира. Това на каква платформа работи приложението ти има значение, но то не е фундаментално.

неделя, 1 февруари 2009 г.

Какво следва от тук на татък...

Днес(01.02, т.е. вчера, това ще се постне след полунощ) навърших 19. От утре(13 минути от момента на писане) започва нова година от моя живот. Това ще е една от най трудните ми години. Вече се примирих с факта че съм тотално преебан за следващите няколко месеца и осъзнах че реалистично нямам време да се занимавам с програмиране и блогване и с други готини неща в същото време в което се занимавам с учене.
Дълго време се борих за да не ми се налага да променям радикално начинът си на живот.

Обичам да ставам сутрин, да си чета комикси и да си сърфирам за няколко часа в нета, след това да отида на даскало и вечерта като се прибера да почета блогосферата и да попиша малко код, и може би да отделя малко време за учене по математика(предметът който трябва да овладея до съвършенство в близките 2-3 месеца).

Осъзнавайки че нямам достатъчно време, разбрах че няма да я бъде мойта. Използвайки прекрасната(не толкова) програма google calendar, си направих режим за деня, който ми дава по 3 часа време за учене на ден, и почти всичко останало е време в което се занимавам с хобитата ми.

Това не е достатъчно. За съжаление обаче аз съм мързел. Дълго време мислих как да се справя с проблема, дори и писах софтуер за да ми помогне да се мотивирам да уча. Истината е че задачата ми е прекалено трудна за да се справя без да я възприема дълбоко в душата си.

Нали разбирате, в момента за мен ученето на математика е нещо тъпо, което системата ме кара да правя, и което ми пречи да се занимавам с хобитата си. Това пречи на процеса, защото не мога истински да се концентрирам върху задачата си. Друга причина за трудности е и факта че задачата е много голяма и много трудна. Обичам предизвикателствата, но само тези които мога да премина. Това мога да премина много трудно. Това води до една подсъзнателна паника.

Постигнах много през изминалата седмица. Спрях да се оплаквам от това какво имам да правя, вярно е че не е честно от моята гледна точка, но на никой не му пука. Аз съм тоя който трябва да седне и да учи. Всички други учат, това че съм бил мързелив през последните 4-5 години и не съм учил по нищо, и съм си начаткал кофти оценки си е мой проблем. Първата стъпка е направена.

Освен това осъзнах сложноста на проблема. Ако съм научил нещо за последните няколко седмици отностно сложни проблеми, това е че те не са страшни, а само изглеждат такива. Ако разделиш проблемът на части, те са прости и лесни. Истинската трудност идва от това че частите са прекалено много.

И ето го и третото нещо което осъзнах тази седмица: Ако се организирам правилно, и ако се мотивирам както трябва, мога да се справя. Ако страхът от провала излезе от душата ми, ако приема задачата си със смирение, може и да успея!

Това е началото. Да разбера проблема и методите за решаването му, както и да преодолея стратът от сложността му са първите стъпки. От тук на татък следва само труд. Надявам се да успея, със сигурност имам шансове, със сигурност ще е трудно, но вече няма страх от това. Сега остава само да разбера как ще живея без свободно време :D

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

понеделник, 26 януари 2009 г.

Как да превърнем уйндолс 7 в хакерска ОС

Това е полу-сатирично ревю на Windows 7, не е истинско ревю, просто се забавлявам, не се обиждайте ако сте от майкрософт дроните, това е просто майтап :D

На скоро се регнах за BETA програмата на Майкрософт за уйндолс 7. Изтеглих си iso-то, получих си ключа и си инсталирах напълно легално копие на уйндолс 7 beta. Това означава че след 30 пак ще си бачка ок. Няма да влизам в подробно ревю на системата, има достатъчно такива(повечето са скапани).

Никога не съм бил уйндолс фен. Аз съм фанатичен линукс потребител от повече от година и половина и съм много доволен от факта че чичо Бил и чичо Балмър не ме закачат(гадни копелета). И все пак имам един уйндолс ХП който ползвам за игри и други такива безполезни неща. След като прочетох предимно позитивните ревюта относно 7-цата, реших да я тествам до край и да видя дали мога да я превърна в хакерска ОС. Идеята е да и дам мощ, да я направя истински звяр и половина+ две трети! Ще я накарам да пуши през аерото си. Ето какво трябва за да направим уйндолс 7 по малко противна за хакерите.

Стъпка първа. Изключваме аеро. Сериозно, това говно ме дразни, не че под линукс нямам прозрачен таскбар, но 3д ефектите ми ги няма, просто защото ме дразнят, и бавят машината. Уйндолс класик е подходящия формат за десктопа, за това го настройваме така:

step1

Следващата стъпка е харексия фон. Всички знаем че уйндолс не е истинска хакерска операционна система. За сметка на това Debian е, за това ще му сложим Debian фон(същия както и на кубунтуто ми, иска ми се кубунту да беше Debian):

step2

Всичко това е доста готино, но какво е най важното умение за един хакер? Да може да програмира естествено, за това без да се бавим инсталираме два доста готини хакерски езици Python и Ruby:

step3

Тези езици може да намерите съответно в гугъл и ъъм в гугъл, приятно гугълване.

Разбира се трябва и да се научите да програмирате за тях, но нека продължим на татък. Истинския хакер има нужда от мощтни инструменти. Уйндолс 7 идва със един такъв мощен инструмент. Нарича се уйндолс пауър шел. Егати пауъра братче! Якото за него е че някой от командите бачкат и за линукс, кофтито е че е уйндолс програма :D Друг готин инструмент е уникс мега редакторът Vim. Той не идва с уйндолс 7 защото е прекалено мощен за вас лузъри, но все пак можете да си го изтеглите от vim.org или друг подобен сайт:


step4

И в крайна сметка, ако искате да имате хакерска машина ви трябва една програмка, тя се казва Kubuntu. Ето скрииншот:

screen

Както споменах, фонът е същия като 7-цата, но останалото е чиста мощ! Уйндолс има още много път да извърви, за да стане истинска хакерска ОС, но този полу-сатиричен блог пост, най вероятно ще бъде последван от по сериозен такъв, изследващ проблемите с хакерството под уйндолс, липсата на инструменти, и като цяло якостта на линукс. Стей туунд нуубс!

сряда, 21 януари 2009 г.

Черно-белите есета

За щастие в даскало пишем есета доста рядко. Когато пишем есета(обикновено в часовете по английски език) първата ми реакция като видя заглавието на темата е:

-пфффффффф!!!!!!!!!

Ето няколко теми които по които сме писали есета тази година:

For or against death penaulty(за или против смъртното наказание)

Some people enjoy eating meat, while others concider it murder(Някой хора се наслаждават на яденето на месо, докато други го считат за убийство)

Studyind abroad-for or against(учене в чужбина- за или против)

Какво е първото нещо което виждате за тези 3 заглавия? Това е проста буленова логика, ключова е думата "или". Първо, тези теми рядко са толкова ясно дефинирани, че да можем просто да си изберем едната от двете страни и да я защитаваме, в много от случаите страните са повече от двете страни на "или"-то, а понякога дори и няма страни. Второ, това не е начинът по който се пишат есета, да това е начинът по който се пишат есета в даскало, в часовете по английски, но кога за последно сте чели добро есе написано в час по английски? Дори и в час по литература, ученическите есета са скапани.

Причините са много, като изключим талантът и уменията на учениците, можем да дефинираме няколко проблема със ученическите есета:

-Те не се пишат за аудитория, а за учителя, т.е. Целта е не да се постигне добър текст, а да се постигне добра оценка.

-Темите, доста често са доста лоши, зле дефинирани, банални или скучни, понякога са и комбинация от изброените.

-Освен ако не са домашни, процесът на писане и разсъждение се извършва за 40-80 минути във гадна стая, със още 20+ човека, във непродуктивна и стерилна обстановка(това е по противоречива тема, ще говоря повече за нея по късно в друг пост).

В този блог аз пиша за малката си аудитория от няколко стотин човека на месец(макар да нямам все още крайна статистика за първия месец на този блог, вече е минал 100 посещения). Проблемът с есетата в даскало са че трябва да се подчинявам на тяхната дефиниция на есе. Есето е опит, текст, който пишеш, за да разбереш нещо, за да подредиш мислите си и да изследваш дадена тема, да пишеш докато разсъждаваш, и може би да намериш отговор на някакъв въпрос. Тяхната дефиниция на есе е текст, в който защитаваш някаква позиция. Може би нямам позиция, може би търся отговор на въпроса "Каква е моята позиция?", може би позицията ми е че въпросът е сбъркан, и че трябва да погледнем на проблема от съвсем различен ъгъл. Не е възможно да пиша подобни експериментални текстове в училищни есета.

Да погледнем например темата относно смъртното наказание. Ето проблемите с нея:

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

-Въпросът е зададен грешно. Смъртното наказание, за какво престъпление? Някога хората са били убивани, за това че 4 годишни деца са ги видели да летят в небето на обърнати крави(много вещици в Швеция са били екзекутирани по абсурдни показания на деца). Също така идеята на заглавието е че ще заемете някаква позиция и ще я защитавате. Може би не искам да защитавам нито една от двете позиции, може би не знам отговора и ще го търся в разсъжденията си на листа.

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

Темата с месото! Това ми е любимото. Аз написах просто пародия на есе, в което описвах как се държат със свинете в свинефермите и как ги убиват, като преди да им прережат артериите ги зашеметяват с ток, закачат ги за краката и ги оставят да умрат от кръвозагуба. Ето как е темата:

Some people enjoy eating meat, while others concider it murder(Някой хора се наслаждават на яденето на месо, докато други го считат за убийство)

Това няма смисъл. Някой хора считат яденето на месо за убийство? Мамка му, днес убих 3 пържоли докато вечерях, добре че вече бяха мъртви и не усетиха как ги дъвча :D Ако игнорираме явното противоречие, имаме отново бинарен въпрос касаещ комплексна тема.

Последната тема за ученето в чужбина. Това отново е бинарен въпрос, отново е зле дефиниран, защото Зимбабве също се брои за чужбина, така че в този случай отговорът е НЕ! Обаче в България чужбина значи на запад, така че може би е ДА! Но Мароко също е на запад, а значи се има в предвид северна Америка и западна Европа! Хм, Да, и Япония и югоизточна Азия, както и Австралия. Това е цивилизования свят. Така ученето в цивилизования свят- да или не? Ъъ, дам, много обичам да пиша тъпи есета и да уча във разпадаща се държава с разпадащо се образование и да трябва да търпя глупостите на цялата система. Предпочитам Мароко, въпреки че едва ли е много по добре и там.

сряда, 14 януари 2009 г.

Умствени упражнения

За да влея малко разнообразие в днешния пре-емоционален ден, нека говоря с вас за умът. Аз съм много тъп. Не мога да свиря музика, тази която слушам едва я разбирам(прекалено много ноти), не мога да пиша особено добре(и правопис, и стил, въпреки че работя по въпроса), не струвам на шах, още по зле съм на 66, не струвам на старкрафт, или която и да е друга компютърна игра(освен minesweeper), не мога да решавам задачи по математика(въпреки че имам най добрите оценки от класа ми), и със сигурност мога да твърдя че не струвам като програмист(все още ;D).

Изводът? Аз съм мнооо тъп. За сметка на това съм по умен от средния човек, което трябва да ви каже нещо за средния човек, той не е способен на нищо повече от посредственост. Но мен не ме интересуват по тъпите от мен, след като са по тъпи от мен, най вероятно СА СУПЕР ТЪПИ, ШОТО АЗ СЪМ СУПЕР ТЪП.

Интересуват ме по умните от мен. Чудя се как са станали толкова добри и умели в това което правят? Безспорно имат талант в тази област, но аз също имам талант, и за това се занимавам с програмиране, а не с музика. Явно талантът не е достатъчен, иска се гъзец! Въпреки че съм много тъп, ето какво правя:

Решавам задачи по математика, за да задобрея, въпреки че не струвам.

Играя шах, въпреки че съм доста зле.

Рисувам, въпреки че всичко което правя е супер грозно.

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

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

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

Така с времето ставаш доста добър и може би някой ден ставаш майстор в своята област. А може би достигаш до експертно(по ниско от майсторство, повечето хора не минават това ниво никога) ниво в някоя област и се пренасяш в друга, коренно различна област, и осъзнаваш че голяма част от опитът ти е безполезен в случая. Но също така забелязваш че част от опитът ти е универсален за определен тип дейности, т.е. ако вече имаш опит в дадена област, вероятно имаш скрито предимство ако искаш да се занимаваш с друго. Усилията ти не са били на празни. Това не е универсална истина, но се случва доста често. Както може би сте чували, трактатите на Сун-Дзъ за войната са прилагани успешно в бизнеса, а познанията по програмиране на lisp, могат да ти помогнат ако програмираш на С(програмирането на lisp и C, са изкуства, които освен че са доста различни, обикновено изискват коренно различен начин на мислене относно проблемите, които решавате, също така обикновено проблемите са различни).

Ако сте тъпи като мен, ето ви на кратко посланието на есето: "Ако искате да сте нещо повече в живота от тъпунгер, като мен, тренирайте здраво това което обичате да правите, и може би някой ден ще ви бъде полезно!"

А, да и единствения политически коментар, който ще направя за станалото през изминалия ден е:

A.C.A.B.

събота, 10 януари 2009 г.

Историята ми, и защо се занимавам с програмиране само от 1 година

Обичам програмирането! Толкова много го обичам че се чудя защо се захванах сериозно с него чак на 17/18 вместо още от съвсем малък. Всъщност не се чудя, знам точно защо. Ще изброявам под ред:

Получих първия си компютър прекалено късно.
Първия ми компютър получих на 14, това е почти 5 години след като започнах да ходя на уроци, и почти 6-7 години след като започнах да се интересувам от компютри. Да благодаря на българските правителства от втората световна война на сам, за това че родът ми не е заможен :D

Лошо обучение.
Първия ми досег с компютър беше на 8-9, не се сещам точно. Въпреки липсата на средства по онова време и невъзможността да си купим домашно ПС, родителите ми ме пратиха на уроци. Въпреки че се занимавахме с paint и word, беше забавно, и рисувахме и правихме цветни документи със интересни шрифтове и рамки и други такива неща, не учихме програмиране от начало. Ходих на уроци доста дълго, и години на ред това беше досегът ми с компютър, това и компютърните зали разбира се, starcraft ftw!!!

След няколко години рисуване и правене на цветни документи и по късно малко photoshop, дойде ред на logo!!! Това беше началото! Лого беше перфектно, бях правилната възраст(въпреки че и сега си играя много с turtle модула на python), бях ентусиазиран, имах вече доста опит с компютъра, бях готов да се науча да програмирам. Учих лого няколко месеца на уроци и това беше.

Дойде лятото, и на следващата година когато отидох отново на уроци започнахме с pascal. Този език е супер за начинаещи, но само ако си пуснеш радиото и чуеш 80-тарска музика от него. Учих го, но така и не навлязох в големите подробности, научих какво е while цикъл и какво са променливи, написах прост калкулатор, нито лого, нито паскал не ги смятам за първите ми езици, не научих достатъчно от тях за да го направя, не знаех да програмирам, не знаех нищо!

И дойде C++!!!
Ужасен и грозен език! Същото се отнася и за С, но С има една особена красота, която има по общо с мазохизма, от колкото с естетиката. Но тук говоря за С++. Проблемът с С++ не е че има скапан синтаксис, или че е прекалено сложен(в естетическия смисъл на сложен, т.е. грозен), или че се компилира прекалено бавно, проблемът е че има прекалено много скапани С++ програмисти!!! Освен
това е скапан първи език и причината поради която го преподават в даскало е непонятна за мен.

Разгледайте следния израз:
C+++
българската образователна система+
български ученици+
български учители+
фактът че повечето програмисти изобщо си нямат и понятие от програмиране=
=български часове по информатика!

Вече споменах проблема с С++, проблемът с българската образователна система е че тя създава учебни планове и одобрява учебници без да си има понятие от материята, това не е математика!

Проблемът с учениците е че са на грешното място в грешното време, ако някой от тях си мисли че ще научи нещо в тея часове, да се огледа около себе си, всичките му съученици джъгат CS, което в случая не е съкращение от computer science :D

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

Следващия израз е ясен, действително повечето програмисти(в това число и аз, разбира се) са в долните 90% от програмисти, известни като "идиотите", или "некомпетентните", или комбинация от двете :D Не можем да очакваме че учениците ще успеят да получат дори и елементарни знания за област, в която дори повечето експерти са невежи.

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

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

Занимавах с с HTML през цялото това време. HTML е по подходящ за обучение от C++, въпреки това не бях особено добър, не знаех CSS и не знаех нищо относно естетиката и други подобни трикчета. Въпреки че сега не правя особено красиви страници, не са толкова зле. Ярко червен фон със сини надписи! Да живеят таблиците! Беше забавно, но не беше програмиране, за сметка на това научих колко важен е редактора и как се работи с ftp за да си качвам страничните в data.bg. Също така ми беше интересно да си изтегля готови темплети и да си ги бъзикам, да ги променям и да си играя с тях. Това беше и с HTML, след време осъзнах че не струвам, и спрях да се интересувам и да се занимавам. Дойде времето на апатия.

След кратката апатия дойде Lock On! Супер яка игра! Авио симулатор! Летях с часове на МиГ-29 и Су-27, четох много, четох всичко. Всичко от технически книги за авиацията, списания, бойна тактика, история, дори и поезия за авиацията, бях маниак! Най якото за тази игра беше че беше лесно да се правят модове. Научих се как да правя скинове за самолетите със фотошоп, научих се как да модифицирам конфигурационните файлове и да правя готини неща с играта, тези конфигурационни файлове всъщност бяха lua скриптове, но не знаех нищо за lua, просто си играех играта. Купих си джойстици, правих си джаджи за играта, гледах клипове на други играчи и си правих свои. Това беше истински откривателски дух! 2 години се занимавах с тази игра, по цял ден, само тази игра и още 2 имах на компа си, нищо друго. Само игри и фотошоп за да правя скинове, уйнамп и файърфокс.

Уйндолса се ебаваше заради многото вируси и други случайни говна които му инсталирах, имам навика да правя това :D Общо взето повечето от вас знаят как е с уйндолс, преинстал-универсално лекарство за компютри!. Писна ми, инсталирах си линукс, нетът не бачка! Мамка му! Инсталвам друго дистро, същия резултат, няма нет! при ХП само си пъхам шибания кабел и бачка! Опитвам се да
инсталма МакОСХ, шибаното ми дъно не бачка с мак, ок пак на линукс. Убунту! АААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААА
Нета бачка!!!! Нетът бачка! Нетът бачка! Най накрая мога да правя квото си искам с компа си! Следващите 2 седмици ползвах предимно убунту и се учих. Писна ми и си инсталирах кубунту! От тогава това е моята операционна система,ползвам я всеки ден, вече година и 6 месеца почти! След време започнах да се уча да програмирам на python, занимавах се с код и други такива неща, но не учих програмиране до зимната ваканция, просто четох есета и такива неща. Купих си книга за python от книжарница и започнах да я чета, за 2 седмици я преполових! Това беше мания! Така до ден днешен, вече 1 година съм официално програмист, хакер, едва ли, но съм писал хакове, не са най впечатляващи, но са вършили работа.

Това е историята ми, 17 години се лутах докато достигна до правилната среда и правилния език за да започна да уча програмиране, това е тъпо! Каква неефективност! Когато си спомням булшит детектора ми откача! Това беше и част от причината да се опитам да напиша добър български туториъл за python, искам хлапетата да се научат да програмират. Познавате ги, те са момчетата които викате да ви оправят компа, те ви правят HTML странички, те ви правят домашното по информатика и с тях цъкате CS по нощите, искам тея хлапета да не трябва да откриват сами всичко, искам да учат и да знаят!

Мисля да започна втори туториъл за python, версия 3.1415926535897931, този път идеята е различна. Ще е нещо като смесица между unix/python туториъл, ще се предполага че си имам работа с умни хлапета, може би дори по умни от мен, ще предполагам че се кефят на компютри, ще предполагам че ползват уйндолс и че се правят на разбирачи пред задръстените си приятели със знанията си по компютри. Ще предполагам също така че имат някакви познания по HTML поне, а в най добрия случай php/javascript и че са учили pascal/C++ в даскало(или поне са присъствали в часове докато учителите им са се опитвали да им преподават). Въпреки очевидната ми липса на време, мисля че го дължа на хората които са ми помагали(и продължават, защото аз съм все още в самото начало) докато уча, да помагам на други, за това блогвам, за това пиша в форума за информатика, за това присъствам в irc и за това се занимавам с програмиране, това е изкуството ми, животът ми, вдъхновението ми.