неделя, ноември 30, 2008

Влизания в блога ми

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

Започваме леко с "Христо семки блог Русе", да аз съм Христо, имам блог и съм от Русе, ама тия семки от къде ги измислихте ? Да взема да пусна един блог за семки или може би онлайн магазин

"knigata na manson link" при мене линк към книгата няма да намерите, но пък като за начало може да пробвате с 'long hard road out of hell', защото така се казва "knigata na manson". За интересуващите се, книгата е добра, лично на мен ми хареса, в началото започва малко тъпо с разни бози имащи за цел да отблъснат овреме пуританите, но после нещата се нормализират.Manson е велик, но това е друга тема. btw, последния албум е яко бозав.

"изпит по лааг" - даа, взех го, благодаря за поздравленията. Изпита по ЛААГ се провежда абсолютно всяка година между 10-ти и 20-ти декември. Обаче ако научавате датата от блога ми, по добре да оставите за поправка, а ?

"статии за цигарите" - цигарите са гадни, това е, което трябва да знаете за цигарите. За какво са ви чак статии? Ако не пушите, недейте да започвате, ако пушите, старайте се да не пречите на непушачите. btw, tabaco freedom in BDZ!!!

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

"gotha88 hackers" - rspct l33t brotaz! h4k 7h3 p14n37 :D

"сърбят ме вените" - еваларка бичим. Значи има едно решение, трябва ти вана, комплект ножчета BIC и албум на Bullet for my Valentine. И да внимаваш да не си развалиш причОската или пък да не ти падне някоя значка. I fuckin love to hate emocore!
Тематичен виц.
- Колко емо-та са нужни за да завият крушка.
- Николко, те предпочитат да стоят в тъмното и да плачат!

"snimki na angel Gabriel" - ще кажа на Jesus да ми прати като го видя. Въпреки че съм чувал, че ангелите трудно се материализират, но това е друга тема.

"tv predavane za bolnite ot MS" - вие пък чак TV предаване. Едно време имаше едно предаване Go Open Source, направиха няколко серии, но после изчезна. Мисля, че още може да се намери по тракерите.

"mozila firefox 5" - успокой се малко, те скоро изкараха 3, ти вече 5 искаш.

"филм история на бил гейтс" - това ще да е The Pirates Of The Sylicon Valley. Между другото Били има и книга, която може да се изтегли в аудио формат от demonoid. Това е само ако сте от лудите му фенове иначе не си струва.

"IE sux" - TRUE

"colour haze all" - и аз още не мога да си намеря посления албум. Има време, братята хакерища ще го пуснат все някъде. Иначе ако съм разбрал правилно това интервю Colour Haze казват fuck the music industry! :)

"нова година bukurest" - стой си Стойчо в България, стига с тия чужбини.

"igra s vaprosi" - започваме. Ето първия - Какво е казал хан Аспарух на войниците си при Шлемово усое ?
отговора е - Когато падна умрял, вземи моя ей кей форти севън(AK-47)!
:D

и за финал любимото ми "ima li azis msn skype" - има, има ! Питай Буги Барабата, той го знае. :D

Това беше за сега, като се понатрупат повечко, ще пуснем. Няма да ви оставим без ценните ви отговори, защото там където спира google, започвам АЗ :D

петък, ноември 28, 2008

Open Fest Ruse 2008

Само да напомня, че утре, както всяка година, ще се проведе Open Fest Русе.
Залата е същата, 2-ри корпус на Русенския Университет, като този път дори са осигурили безжичен интернет.
Евала на хората от Ruse LUG! :)
Аз лично няма да мога да дойда по университетски причини, а и края на месеца не е най-доброто време за един студент да харчи пари за пътуване :)
Предполагам, че пак ще има много изненади, така че вървете, има защо.
Все пак не забравяйте, че Open Fest Русе е по-готиния Open Fest :P

вторник, ноември 18, 2008

10 advanced съвета за по-добро PHP програмиране


Под това време днес в едно дизайнерско списание, което от време на време гледам (`щото който не може само гледа) излиза статия озаглавена 10 Advanced PHP Tips To Improve Your Programming или в свободен превод 10 съвета за напреднали php програмисти подобрят кода си. Не съм някакъв гуру, но имам няколко коменара по темата.
Ето ги и съветите:

1. Използвайте SQL injection cheat sheet
Често казано не успях да разбера какво точно имат в предвид под cheat sheet, но аз отдавна не филтрирам нищо ръчно. Примерно в CodeIgniter, Active Record класа върши филтрирането за sql injection и в security helper-a си има функция за филтриране срещу xss.

2. Знайте разликата между операторите за сравняване.
Тук съм много съгласен. Признавам си, че едва преди месец-два научих разликата между "==" и "===", просто преди това не бях обръщал никакво внимание.
Не че има много общо, но пък аз често в бързина правя грешката да слагам едно "=" вместо две. За незапознатите с php - едно "=" присвоява стойност, а "==" сравнява променливи. Наскоро също ми дадоха един интересен съвет да избегна това, който обаче работи само ако сравнявате променлива с число(примерно), тоест когато не сравнявате 2 променливи.
Тоест, ако сгрешат, повечето хора пишат следния код:

if($a=1){ blah();}

което вместо да сравни променливата с 1, просто й присвоява стойност 1 и винаги връща TRUE, от където пък може да станат много проблеми. Ако обаче вместо това напишем:
if(1=$a){ blah();}

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

3. Избегнете else
Тук дават един интересен пример. Този код:
if( някакво условие) {
$a=5;
} else {
$a=10;
}

може да се преработи така:
$a=10;
if( някакво условие ){

$a=5;
}

Като според тях втория пример е по-добър. Аз лично не виждам съществена причина това да е така, дори мисля, че втория код е малко по-объркващ, въпреки че е по-елегантен. Unix гурутата винаги са учели, че не трябва да се стремим да пишем хитър код, а възможно най-тъп, в смисъл възможно най-лесно разбираем от следващия, който ще седне да работи по този проект след теб. Това е съществено за един open source проект, защото ако кода е омазан от някой "юноша бледен", който се е скъсал да пише странни недокументирани workaround-и, ще е доста трудно някой да допише нещо и от там вече всичко умира :)

4. Избегнете скобите
Знаете, че можете да напишете
if( някакво условие) {
something();
} else {
something_else();

}

така:
if(някакво условие) something();
else something_else();

Твърдо, ама твърдо съм против това. Пестиш 2 скоби, 1-2 реда и губиш няколко минути на човека след теб за да разбере какво правиш! В случая, който съм показал е лесно да се види какво става, но представте си, че имате няколко вложени if-else конструкции, тогава вече наистина става голямо мазало, защото не се вижда кое къде започва, къде свършва и т.н. Скобите не са за php парсера, те са за вас.
Моля ви, не го правете това, не пишете без скоби!

5. Използвайте str_replace() вместо ereg_replace() and preg_replace()
Това специално не го знаех, но според тях str_replce е 61% по-бързо от ereg_replace и preg_replace. Не че и без това съм се засилил да праскам regular expressions, където трябва и не трябва. Проста причина, повече време ми отнема да измисля regex-а вместо да си прасна str_replace. Това може да не е така за всички, но поне при мен е така. Мисля, че ще е хубаво да се има в предвид.
Този съвет го одобрявам :)

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

7. Използвайте memcached
Признавам, че тук нямам опит, но щом те така казват, да предположим, че тоя съвет е валиден. Евентуално за това, други хора могат да кажат по-компетентно мнение.

8. Използвайте framework
Както вече споменах аз си харесвам CodeIgniter и си използвам него. Имам един колега от университета, с който често спорим на тази тема. Той твърди, че не трябва да се ползват никакви готови framework-ове, че дори и template системи, смята че бавят излишно. Аз пък смятам, че няма нужда да си блъскаш главата да пишеш едни и същи неща по 1000 пъти и то при положение, че някой вече ги е написал вместо теб. Ако пък нямате отделен дизайнер наистина не виждам голям смисъл да се ползва template система. Всеки си избира сам, но аз препоръчвам наистина да ползвате framework.

9. Използвайте правилно suppression оператора
Нямам идея как се превежда suppression оператор на български, става въпрос за символа @ използван като оператор. Иначе каква е идеята?
if (isset($albus)){
$albert = $albus;
}else{
$albert = NULL;

}

е еквивалентно на:
$albert = @$albus;

Проблема е, че ако го напишете по-втория начин се изпълнява 2 пъти по-бавно, защото @ се използва неправилно. Правилното използване е чрез референция:
$albert =& $albus;

Според мене това е само за фанатици на тема скорост, въпреки че е интересно :)

10. Използвайте isset вместо strlen
Това е доста интересно приложение на isset, за което не бях се сещал. Ако искате да определите дължината на даден стринг е нормално да използвате:
echo strlen($str);
Но примерно ако примерно искате да проверите дали някъв низ не е по-къс от определен брой символи:
if (isset($str[9])) {
echo 'низа е равен или по-дълъг от 10 символа';
} else {
echo 'низа е по-къс от 10 символа';
}

По-добре било да се ползва isset защото било 5 пъти по-бързо от strlen. Важно е да се отбележи, че strlen е опимизиран да прави точно това и се справя по-бързо с по-големи низове. Strlen обаче е по-бърз при малки проверки като тази от примера.
Има и една екстра. Ако бяхме написали кода така:
if(strlen($str) > 9) { ...

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

Повечето съвети в статията на Smashing Magazine (според мен) са или грешни или излишни и не чак толкова необходими. Какъв е извода ?
Дизайнерите да си гледат дизайна и да не се бутат, където не им е работа :D
(както и обратното).

понеделник, ноември 17, 2008

За галактиката, Colour Haze, Jimi Hendrix и LSD-то

Седя пия Каменица тъмно, слушам Colour Haze и се сетих за писмото, което пратих тази сутрин преди да отида на лекции на един младеж, който емигрира в Германия:

След като не успях да се свържа нито с НАСА, нито с руската космическа
програма и в продължение на 2 часа безуспешно се опитвах да спра на
стоп летяща чиния за да мога да напусна тъпата планета, се прибрах
обезкуражен вкъщи. Тъкмо си правя кафе, сядам пред компютъра и
ми се обажди по телефона Джими Хендрикс. Обясних му какъв ми е
проблема и той каза, че имал решение, но трябвало да те взема и тебе.
Каза да донесеш от Германия плоча на Colour Haze, аз да намеря
грамофон, а пък той цял да вземе LSD за всички. Знаел някакво готино
местенце без много хора, където сме можели да се съберем и да
"попътуваме".
Кога ще можеш да донесеш плочата, че не издържам вече на Земята ?

the message is lost ...

четвъртък, ноември 13, 2008

За българо-индонезийската дружба

Напоследък пиша някакви бози, та ми се наложи да направя нещо като slideshow, което постоянно "върти" дадени картинки, като всяка от тях е линк към определено място.
Не ми се обяснява точно каква му е идеята, надявам се скоро да ви покажа :)
Та, тъй като съм прост php-ер и грам не вдявам от флаш, започнах да търся готово решение.
Първото на, което попаднах беше това. Най-доброто, което намерих въобще, има си бутони за навигация, всичко се настройва през един тъп xml и изобщо - песен. Само че ... 49$. Аз ако имах 49$ щях ... абе не знам какво ама нямаше да ги дам за това.
Следващото също беше добро, но пък там също ми искаха пари. Не че съм за 20$ ама ...
Накрая стигнах до този клас на индонезиеца Adi Setiawa, който беше написал половината решение. Неговия клас нямаше възможност да слага линкове към всеки слайд. Малко ровене, малко четене и благодарение на помощта на neter (от linux-bg.org форума) успяхме да сглобим необходимата функция.
btw, оказа се, че php разполага с доста powerful библиотека за работа с флаш - ming. За съжаление е още beta и документацията яко куца.
С Adi Sеtiawa си разменихме по 1-2 мейла и преди малко му пратих новата версия на класа, която вероятно ще публикува.
Идеята не е толкова за това, че съм успял да си напиша някакво тъпо flash slideshow, просто е готино да видиш на практика, че open source модела наистина работи, макар и в такива малки мащаби.
За момента, единственото, което няма новата версия на slideshow-то, а ми се иска да има, е навигация между слайдовете, но и за това има време. Все ще се намери някой добър финландец да го напише ;)







source code

четвъртък, ноември 06, 2008

HOWTO scrapPC

Това няма да е точно ръководство, по скоро разказ за група nerd-ове и изобретелността (или липсата й) в програмистките среди. :)

Преди около 6 месеца си купих половин компютър с идеята, че когато ми останат пари ще го сглобя напълно. Как се купува половин компютър - купувате цял и със съквартиранта си си делите частите и съответно парите. Та, тогава за 150 лева получих - кутия, дъно (няккво интелско с вградена видеокарта, lan, sound и т.н), процесор - Intel Celeron 3,2 GHz, CD-ROM и флопи. От тогава, вече 6 месеца събирам пари за RAM и хард диск. Трудна работа :)
Снощи пристигат на гости двама младежи, единия с лаптоп, другия без (това е важно уточнение). Решаваме, че ще играем Need For Speed. Богатият ми съквартирант (Владо) тъкмо е взел заплата и плана е NFS и бира. Не звучи зле, а ?
Както си седя на лаптопа и чакам да пристигнат всички, Владо се обръща към мене и пита:
-Колко струва 1GB RAM DRR2?
-25-30 лева някъде.
-Хайде да отидем да купим?
-Добре.
В 6:45 скачаме в един VW Passat и отпрашваме към компютъропродавницата за чаркалаци.
(btw, на това момче не трябва да му дават да слуша system of a down в колата, най-много Роси Кирилова.)
Нахълтваме в магазина, взимаме 1GB DDR2, минаваме и вземаме един стар 14" монитор DELL и се прибираме.
От стария ми компютър Compaq вземаме и двата 3GB хард диска Quantum Fireball и няколко часа по късно вече имаме напълно работеща система с Windows XP на единия хард и чакащ инсталация на NFS втори.
Както и да е, не успяхме да съберем NFS Most Wanted Black Edition на 3gb хард, няколко мегабайта не ни стигнаха, но все пак играхме Counter Strike до сутринта. :)
По интересната част, знаехме че компютъра ще бави много заради старите дискове, но не очаквахме да е чак толкова зле. Чак тая сутрин реших да проверя спецификациите на двата харда. Quantum Fireball от 1996-та година, теоритично възможна максимално възможна скорост на пренос на данни - 33 MB/s, максимално постигната в лабораторни условия - 31 MB/s (според wikipedia съвременните дискове поддържат скорост 74,0 до 111,4 MB/s). При положение, че и двата са на по 12 години и аз съм им поне 3 или 4-ти собственик, е цяло чудо, че само единия плюе лоши сектори.
Това ScrapPC се държи сравнително добре, като се има в предвид скоростта на дисковете, само трябва да се внимава с торентите, че като ги изтървем и като развият голяма скорост машината се рестартира :D
Докато не си купя диск произведен в това хилядолетие ще продължавам да цъкам с тези - все пак става за CS и музика :)

понеделник, ноември 03, 2008

Windows Vista downgrade


Ето каква е ситуацията:
Моя приятелка си купува лаптоп Toshiba Satelite с OEM инсталирана Vista. След това някой спец и слага нелегално XP без да го "нагласи". И така при един update на нея и излиза невинното съобщение, че може би е "жертва" на софтуерно пиратство. Както вероятно се сещате става въпрос за Windows Genuine Advantage. Ако знаеше как да си manage-ва ъпдейтите.
Тя е от хората, които не ги интересува какъв е компютъра, какъв е Windows-а и т.н и иска просто да си свърши работата. Лошо няма, никой не е длъжен да разбира от тия неща, нито пък да е запознат с 1000-та версии на Windows и лицензите им. Не е свикнала с Vista и не иска да я ползва, не е единствената.
Дилемата:
На мен най-лесното нещо ми е да и "излекувам" Windows-а, но защо да го правя? Тя си има легален Windows, защо да й го правя нелегален. Тук е момента да спомена, че тя живее в една правова държава, където има реален шанс да си има проблеми заради нелегалния Windows XP.
Проблема:
След няколко неуспешни опита да й обясня какво е downgrade, решавам да поема нещата в свои ръце. Взимам данните на лаптопа и се свързвам с Microsoft България. Оказва се, че за да направиш downgrade трябва да имате Vista Business или Ultimate, а както и се очакваше тя има Home Premium (или нещо от тоя сорт беше, то аз не мога да им запомня всичките верисии, какво остава за нея).
Развръзката:
За пореден път "лошото" печели. Пред нея има два варианта - да си купи XP или аз да и "купя" ХP. Сещате се, че втория е доста по-вероятен.
Все пак е тъпо, да си си купил Windows и да се налага да кракваш.