Subscribe: gotha`s blog
http://gotha88.blogspot.com/feeds/posts/default
Added By: Feedage Forager Feedage Grade B rated
Language: Bulgarian
Tags:
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: gotha`s blog

gotha`s blog



Един блог за отворен код, компютри, простотии и мен



Updated: 2018-01-15T18:32:05.646+02:00

 



Преместване

2014-03-16T16:05:12.318+02:00

Този блог се премести на http://hgeorgiev.com/blog/

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

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



SSH тунели и MySQL

2013-12-17T10:54:10.075+02:00

Наложи ми се да боря с доста странен проблем, искам да направя SSH тунел и през него да се вържа към отдалечен mysql сървър. Eто какво се случва

Изпълнявам
ssh user@domain.com -L 4401:127.0.0.1:3306 -N 

което би трябвало да създаде тунела и да мога на port 4401 да се вържа към mysql, обаче се оказа, че не е точно както аз си го мисля.

ако изпълня:
mysql -u user -p --port=4401
ми дава грешен user или парола. Оказа се, че всъщност mysql конзолния клиент се опитва да се свърше на default-ния порт - 3306, а не на 4401 и по незнайно каква логика игнорира параметъра за порт.

Решението е да се укаже протокол
mysql -u user -p --port=4401 --protocol=TCP 
в този случай, нещата сработват.

проблем има и също в php, ако опитате стандартното:
mysql_connect("localhost:4401", "user", "pass)
не успява да се свърже, но пък странно:
mysql_connect("127.0.0.1:4401", "user", "pass)
работи, защото явно това е начина да кажете на mysql_connect, че искате да ползвате TCP.


Този проблем го срещам за пръв път и ми се получава само под Linux (Ubuntu 13.04). Под Windows/Mac OS X няма нужда да указвам протоколи.

Между другото тунела в Windows можете да направите с plink така:

plink.exe -L 4402:localhost:3306 -pw password user@domain

Както се вижда, при plink може директно да се зададе парола в командния ред. При ssh под Линукс нещата са малко по-сложни, но можете да го направите като използвате sshpass:

sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@domain -L 4401:127.0.0.1:3306 -N 


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






За българския хардуерен бизнес, занаятчиите и чираците

2012-04-27T14:37:03.368+03:00

Наскоро имах малък хардуерен проблем - компютъра, на който някога се учих да програмирам отказа да изпълнява задълженията си.
Понеже, макар и програмист вдявам някакви елементарни неща свързани с хардуера, разглобих машината но при положение, че когато пускам само захранване и дънна платка с процесор (без RAM, видео карта и т.н.) реакция нямаше никаква, дори и не пищеше, заключих че това ми остават като варианти за повредата или дъно или захранване.
Вкъщи нямам части, пък и да не се налага да си купувам и дъно и захранване при положение, че проблема може да е само в едното, както си му е реда отидох в сервиз, където по-кадърните от мен специалисти ще отстранят проблема.
Обясниха ми, че дънната платка си е заминала и че имам голям късмет защото имат същата, чисто нова, в наличност. Платих си за новата част и инсталирането ѝ. Дадоха ми и кутията на новото дъно и аз я замъкнах с мен вкъщи като очаквах вътре да открия старото повредено дъно.
Оказа се обаче, че вътре има само упътването на дъното и диск с драйвери, което малко ме учуди, но реших, че не е нещо, на което си заслужава да се обърне внимание.
Лошото е, че няколко дена по-късно разбрах от познати, че моето повредено дъно е в процес на "реставрация" и съвсем скоро ще бъде предложено на нов собственик като артикул втора употреба.
Аз това го приемам като чиста кражба. Те взимат моя собственост и я препродават на други хора. Аз съм се съгласявал на това. Платих си новата част в пълния ѝ размер, нямаше отстъпка за това че им оставям старата си част, нямаше и предложение да я откупят от мен.

Това не е кой знае какво, успели са да ме излъжат, то и без това съм свикнал да ме правят на прост и постоянно да се опитват да ме цакат на дребно. Тъпо ми е че получавам такова отношение от хора, чиято работа може да се върши от маймуна с отвертка и чиято единствена гордост в живота е, че след 10 годишно чиракуване в някакви фирмички ситуирани в мази и гаражи са им позволили да сменят части на компютАри.
Хардуерни "специалисти", които ако успеят да си свършат работата в срок от няколко месеца, то обикновено я свършват толкова некадърно, че ти иде да им натрошиш нещо в тъпите главички та поне им влезе някой кондензатор не където трябва и да се получи нещо иновативно - ако не първия хибрид човеко-робот, то поне първия първия хибрид "селянин с PCI слот от обратния край на устата".

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

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

Живи и здрави да са, направиха милионите от моето дъно, обаче следващия път когато на вас ви се наложи да ползвате подобни услуги, замислете се къде ще отидете - при тия юнаци или в някой голям тъп магазин от типа на Technopolis, Technomarket и т.н., които имат сервизче на гърба?



Грешката - А не, ти халюцинираш

2011-02-28T17:45:01.082+02:00

Ако има нещо наистина изнервящо в софтуерния свят, то това е грешката "А не, ти халюцинираш".

Да обясня, това най-често се случва на обикновените потребители, но и редовия developer не е застрахован, ситуацията е следната, вие най-невинно съобщавате:
- "Функцията Х не работи !" или "Функцията Х хвърля грешки!"
Отговора е пределно ясен:
- При мен няма такъв проблем.

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

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

Имало е доста случаи, в които  (как пък да му се не види) програмиста бил гледал на друго място в програмата и там проблем нямало. 
В други пък просто не могъл да забележи 50 редова грешка изпляскана на половин екран. Е че тя е мъничка, как да я види?


След като сте осъзнали, че имате проблема "А не, ти халюцинираш", започва една епична битка в която се опитваш да обясниш на софтуерния гуру, че не си вземал LSD скоро и това е реален проблем, който ти пречи на работата. Трябва да сте особено нагли, защото никой самоуважаващ се програмист не би рискувал да си наруши душевния комфорт дебъгвайки 2-3 реда код.
Много ясно трябва да обясните, че "Проблема при мен го няма" не е отговор и ако трябва, въпросния специалист ще си вдигне задника и ще дойде на място, щом при него "няма такова нещо".

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



Activision спират Guitar Hero

2011-02-16T09:14:22.125+02:00

Въпреки че не съм от най-върлите фенове на Guitar Hero, ми стана неприятно когато прочетох новината, че Activision спират да правят играта. Каквото било - било.
Като основен аргумент изтъкват факта, че не са могли да направят достатъчно пари от продукта си  след първоначалните му продажби.

И ако си мислите "Тия 3 милиона само от продадени копия на играта не им ли стигат ?", вероятно имате известно основание, но все пак отговора е "Не".
Говорим за големи компании и големи пари, ако искаш да останеш голям трябват наистина големи и по-важното редовни продажби.
На много хора им се стори смешна новината, че Zynga - създателите на "шедьоври" като FarmVille тази година регистрират по-големи приходи от EA - създателите на игри като Need For Speed, FIFA и т.н, тоест компания, която прави истински игри. Признавам и аз първоначално се позасмях, но няма нищо по-показателно от парите в този бизнес. Дори да правиш страхотни игри - на кого му пука ако не правиш пари.

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

Модела на Zynga е прост и ... работещ. Регистрираш се безплатно, играеш, ако ти харесва си плащаш за глупости, при това колкото ти решиш и плащаш пак когато си решиш. Е, явно така се наливат доста повече пари и честно казано звучи логично.
За това и заглавия като League Of Legends залагат на същия метод за продажба и така дори най-обикновения български геймър, който през живота си не е купил една оригинална игра, налива по 5-10 лева в акаунта си.



За Nokia, Microsoft и пуйките

2011-02-16T09:13:54.179+02:00

Миналата седмица Nokia съобщиха какви са бъдещите им планове за развитие на "умните"  телефони на компанията, а те явно са свързани с Microsoft.Финландците, които отделиха години на Symbian, MeeGo, Maemo и прочее забежки най-после признаха, че са се провалили и единствения им шанс за завръщане в умовете и сърцата на потребителите им е зад океана.Йовко е споделил своето мнение за остаряващия гигант сред мобилните телефони, но според мен това е само част от картинката. Истина е, че Nokia не са това, което бяха преди години, но все още правят изключително добър хардуер и въпреки че софтуерното обезпечение куца, все още държат огромен пазарен дял. Да не забравя да отбележа, че говорим за обикновени телефони със "зелено и червен копче", каквито (ние компютърджиите често забравяме)  все още ползват повечето хора.С пускането на OVI компанията отбеляза значителен напредък, поне по мое мнение, валяха доклади за милионите продажби в OVI Store, но това са хора, които имат "тъпи" телефони и за пръв път имат сериозна възможност да инсталират разни допълнителни приложения. Едва ли някой би избрал някой от новите Nokia телефони защото, разбираш ли, имало OVI Maps. Всеки би си купил я Android, я iOS (iPhone) и Nokia се оказват блокирани в опитите си да направят нещо в тази насока.От другата страна са Microsoft с техния Windows Phone 7 - наследника на Windows Mobile 6.5. WM 6.5 не е лоша операционна система, просто е прекалено стара и за днешните стандарти е просто ... дървена.  Windows Phone 7 за телефони е това, което Vista беше за PC - неизбежната голяма крачка напред поемайки големи рискове, но пък отчайващо необходим ход за да останат някакви потребители на платформата. И докато Vista и Windows 7 постигнаха своя успех, те нямаха сериозна конкуренция, да се мигрира към тях беше просто въпрос на време. Интересно е как биха се справили ако имаше desktop еквивалент на iOS и Android и се налагаше да се изпотят малко повече. За Windows Phone 7 нещата ще са доста по-трудни.И така, стигаме до момента, в който имаме добър производител на хардуер в Европа и добър производител на софтуер в щатите, стъпката изглежда логична, заедно би трябвало да се справят доста по-добре. Дали ? Вице президента на Google Vic Gundotra изрази своето мнение кратко и ясно в twitter : "Две пуйки не прав[...]



Database Version Control за PHP програмисти

2010-11-14T23:20:03.721+02:00

За разлика от version control системите за source code като svn или git, доста по-малко са познати подобните за бази данни.До сега съм виждал няколко подхода:1) На който му трябва най-новата база данни по която работим - да се оправя.В една папка в svn-a, с оригиналното име "sql"q всеки който прави промени направо слага пълен експорт на неговата си база данни, като файла задължително се казва нещо от типа -project-20100618(stefka).sql+ освен ти сам, няма кой друг да ти счупи базата данни- много, наистина много файлове за малко време, ровене- трудна промяна на отделни полета в таблица2) Правил си промени по базата данни - хайде сега да ги добавиш в един файл. Същото като в предишния вариант, но файла е само един и всеки добавя само промените, които е направил.Файла е просто project.sql+ относително лесно се вижда какво е променяно след като се пусне един diff (или WinMerge)- голямо ровене става из тоя файл- всеки го мързи да merge-ва файлове в следствие на което никой не качва промените си, докато не е твърде наложително3) Ще правиш промени ? Я затвори тоя phpmyadmin!Начина заради който пиша тоя пост, въобще. Не пишеш sql, не ползваш някой database designer - а създаваш таблици  и описваш промени чрез php.Става въпрос за ruckusing. Да покажа направо..пишеш нещо такова в конзолата (не само за Linux):php generate.php createUsersTableкоето генерира един файл с два метода - up() и down()и в него пишем нещо като:function up(){   $table = $this->create_table('users');   $table->column('username', 'string', array('null'=>false));   $table->column('password', 'string', array('null'=>false));   $table->finish();}и съответноfunction down(){   $this->drop_table('users');}Единия казва какво трябва да се случи ако качваме revision нагоре, другия какво трябва да се направи за да се върнем в изходно положение.Влизаш обратно в конзолата и изпълняваш:php main.php db:migrateи таблицата се създава. Имаш методи за създаване и премахване на - бази данни, таблици, колони в таблица и т.н., които покриват 99% от необходимата функционалност. За всичко останало имаш прекрасния метод query, които праска чист sql.Защо ги правим всички тия финтове?Когато commit-на генерираните файлове, колегата изпълнява и при него db:migrate и вече е с последната версия. Това е, без повече главоболия. Ако по някаква причина съм счупил нещо, на db:migrate му казваш - Абе, я ме върни 1 rev[...]



sudo за windows 7

2010-10-21T12:26:01.916+03:00

Въпреки общоприетото мнение User Account Control в Windows 7 не е нещо, което трябва да се изключи веднага след инсталация.
И аз си го ползвам.
Единствения ми проблем е че не съм windows guru и ми беше трудно да редактирам системни файлове през конзолата, един вид трябва ми sudo за windows. Ето как успях да направя номера

Първо трябва да активираме administrator акаунта.
cmd -> run as administrator
и пишете:

net user administrator /active:yes
net user administrator parola 

 След това ако искате да изпълните нещо като "root":
runas /user:administrator notepad

Малко по-дълго е от sudo vi, но върши работа.


btw, да препоръчам малко software за win

http://www.vim.org/download.php#pc
http://sourceforge.net/projects/console/

Правят windows малко по-приятно място :)



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

2010-07-27T14:35:30.951+03:00

В момента работя по един 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 версията. Въпреки базарния модел на софтуера с отворен код, винаги съм бил привърженик на идеята за силна фигура на върха, която да има последната дума по всеки въпрос. От тук идва разликата между добрия софтуер и сбирщината от хакове.

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



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

2010-07-23T09:52:42.881+03:00

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

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

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

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

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

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



Compaq - Hard to beat (vintage)

2010-07-01T10:12:40.099+03:00

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



PHP IDE-та, редактори, среди или който както им вика

2010-06-29T10:33:25.220+03:00

IDE или Integrated development environment кое е по-добро според вас ? (ще го уточним в движение)Пробвал съм наистина доста IDE-та, под доста операционни системи и обикновено мнението ми за тях се движат от "Обикам го" до "Боклук". Да уточним нещо PSPad, Notepad++, Gedit и другите подобни не са среди за разработка, ако ги смятате за такива ползвайте поне Nano, има същата функционалност при това с по-хубав syntax highlightning. PSPad има едно единствено предимство пред останалите в тази категория - вградения ftp клиент, но това пък е свързано с една порочна практика да се работи директно на сървъра. Notepad++ винаги го слагам под Windows, но никога, абсолютно никога не го използвам за друго освен редактиране на конфигурационни файлове. След като оплюхме останалите да кажа какво съм харесал до момента:ZendStudioси е "оригиналното" IDE за php. Все пак го правят Zend и уж е най-доброто и най-невероятното и т.н. Може и да било така, но от версията от която аз започнах да го ползвам - 6, вече бяха започнали да ползват за основа Eclipse и според мнението на повечето ми тогавашни колеги това много го е развалило. При версия 7 нещата бяха по-лъскави, но не и оправени. Както и да, аз лично смятам, че е нелоша среда, но страда от Windows синдрома - колкото повече го ползваш, толкова по-лагаво става, докато накрая не започне на крашва, да чупи файлове и т.н. Неприятна картинка. Особено много "обича" import на големи проекти - пригответе си кафенце, пакет цигари и вестник. PDTили PHP Development Tools си е чисто и просто Eclipse за php писачи. На теория би трябвало да бъде почти същото като Zend, ама не е. Никак не е лошо, но спрямо комерсиалния си братовчед е доста по-бавничко като autcomplete примерно. В началото го отдавах на бавния ми лаптоп, тъй като вкъщи бях с него, а на работа с Zend, но когато ги пробвах на една и съща машина разликата е осезаема. Ако не искате да си купувате (или да си "купувате" по другия начин) софтуера това е един от възможните избори.NuSphere PHPEDКогато го пробвах за пръв път разбрах какво се има предвид под Integrated. Идва с доста благинки - вграден уеб сървър, DB manager, терминален клиент, четец на документация, php, дебъгер и още какво ли не. Освен това в сравнение с eclipse базир[...]



Използване на CI Active Record в скрипт извън CodeIgniter

2010-06-24T12:02:12.493+03:00

(image)
Добре, ясно, ползвате CodeIgniter и ви се налага да напишете някакъв малък скрипт (примерно нещо, което ще се изпълнява с cron) и се налага да правите някакви си нещица с базата данни.
Правите си една папка "scripts" и започвате да блъскате вътре някакви неща. Въпроса, е че вече сте свикнали с Active Record библиотеката на CodeIgniter и искате да продължите да си я ползвате вместо омразните - mysql_query(), mysql_fetch_object() и т.н.
Оказа се, че това става доста лесно :

// set paths
$current_path = __DIR__;
$current_path = str_replace("\\", '/', $current_path); // w32 paths
// тук може би ще ви трябва още малко оправяне на пътищата :)

define(PROJPATH, $current_path . "/");
define(BASEPATH, $current_path . "/system/");
define(APPPATH, PROJPATH . 'application/');
define(EXT, '.php');

// load active record DB
include(BASEPATH . 'codeigniter/Common.php');
include(BASEPATH . 'database/DB.php');
$db =& DB();



Това е. Вече имате променлива $db и можете да си ползвате любимия $db->get() :)

Уточнение: Ако пътищата ви се струват странни: при мен system и application папките са на едно равнище във файловата структура и за това съм си дефинирал константа PROJPATH която е един вид ../system и ../application.
структурата е нещо като :
/project
//application
//system
//scripts
При този начин на зареждане Active Record ще ползва стандартните настройки за връзка с базата данни в /application/config/database.php, тоест няма нужда ръчно да задавате отново username, pass и db.



iTunes или ... какво съм изпускал толкова много време

2010-06-23T17:56:14.678+03:00

Преди няколко дни получих писмо от Apple писмо, в което ме уведомяват, че като регистриран Apple developer (аз съм само регистриран, без другите 2 думички), мога да гледам безплатно сесиите от Apple Worldwide Developer Conference 2010.
Обещават интересни презентации за HTML 5, какво ново се е случило с Apple и т.н.
Искат iTunes, в добро настроение съм така че го слагам, въпреки че не ми е ясно точно за какво ми е.

Пуснах го, добавих си музиката, сканира я прилично бързо и пуснах някакви хора, които крещят на фона на електрически китари и бързи барабани. Естествено след 15-тина минути се сетих какво щях да правя, та пуснах store-a.

Най-якото нещо, което съм виждал скоро, честно. Не мога да повярвам, че съм изпускал нещо такова толкова много време.
Когато за пръв път си сложих iTunes ми се стори гаден бъглив музикален плеър и даже не съм подозирал какво още може.
В магазина има всичко и готиното е че има адски много безплатни подкасти, за които дори можеш да се абонираш и да се свалят автоматично. Не че не мога да го направя с други плеъри, но пък никога нямаше да ги намеря точно тези. Намерих си супер яки безплатни видеа от конференции - TedTalks, AllThingsD и т.н., subscribe-нах се за доста и съм зверски доволен. Имам какво да гледам постоянно.
За сега нямам намерение да си регистрирам кредитната карта и да плащам за каквото и да било, но като видях какви групи имат, май ще се наложи. Става въпрос за групи, които не просто не мога да намеря в България, трудно се намират дори по разни пиратски брегове или път търсачи на души. :)

Restrictive ?
За сега не ми трябва порно, имам си podcasts :P



За iPhone OS 4 и още нещо

2010-04-13T11:39:17.108+03:00

Бате ви Жобс, преди наскоро представи iPhone OS 4 и съответно пуснаха новото SDK.
Наред с нововъведения като мултитаскинг и iAd, Apple успяха да порежат и всички, които се опитваха да пуснат псевдо-дев-платформи.

От "Ябълката" казват следното :
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
Накратно това означава, че всички програми за iДжаджите им ще бъдат писани само на obj-c, c,c++ или js, тоест никакви флаш приложения, никакви .net имплементации или каквото и да било друго.
За флаш всичко хубаво, но малко ме е яд за MonoTouch, който имаше за цел да докара C# и .NET за iPhone OS и заедно с MonoDroid щяха да създадат една платформа, на база която можеш да програмираш за почти всички мобилни платформи (или поне по-модерните от тях).

Apple са в законното си право да направят този ход (очевидно) и може би той е най-правилния от тяхна гледна точка. За мен лично е излишно затваряне, но явно част от идеята им е всички приложения да се пишат точно по техния начин.
На въпроса "Кога на всички най-после ще им писне от Apple и рестриктивната им политика" (все пак забраниха еротиката в AppStore) мога само да предположа:
Както Стийв не пропусна да се похвали на презентацията за iPhone OS 4 - "навън има 85 милиона iPhone и iPod Touch потребители" и всеки, който иска да се докопа до тях за да закачи някоя друга пачка, ще се наложи да мине покрай Стийв Джобс.



Видео каналите и как по български се вписваме в тях

2010-03-04T12:17:00.510+02:00

Сещате ли се за Youtube, нали?Та... Общо взето идеята му беше хората да качват разни клипчета, които са правили и други да ги гледат, да им се смеят и да коментират. Естествено при положение, че имаш платформа, на която можеш да качваш каквото си искаш, потребителите започнаха да качват каквото им дойде на ум - от музикални клипове до сериали. Проблема беше, че едни хора се размрънкаха за лицензи и google се наложи да махнат доста неща. Това до известна степен върна потребителите към първонатачалната идея, а именно те самите да създават съдържание. В България естествено нещата се развиха по малко по-различен начин. Нашенския клонинг vbox7.com (който пък от своя страна си има свой клонинг, но това е друга тема) нямаше кой да го гони за авторски права, в следствие на което в момента можеш да намериш всичко, от пълна колекция епизоди на "Приятели" през снощното шоу на Слави Трифонов та чак до цели филми. Качеството е кофти, платформата е тъпа (спрямо youtube), но съдържанието, което искаш го има и това е най-важното. Така vbox7 се оформи като сайт, който препредава чуждо съдържание, а Youtube въпреки че все още има доста музикални клипове и т.н. все повече се ориентира към съдържание създадено от потребителите.В началото пред домашната уеб камерка заставаше някоя девойка или някой младеж и говореха общи глупости от типа какво е станало днес в училище, а други пускаха видео-отговори. Нещата малко се промениха и в момента е доста "модерно" да си направиш собствен канал и през определен период от време да пускаш клипчета, в които пееш, коментираш политиката или се смееш на другите, което някак пак се връзва с оригиналната идея, но ... не точно.Както казва Mememolly :As the sands of time flow to the hourglass this online community grew and developed into a small nation of friends, enemies, lovers and perverts.Първото от този род, което по-серизоно се наби в главите на българските онлайн кибици бяха серията от "уроци по сръбски". Всъщност те станаха толкова популярни, че едни български сайт реши да плати на момчето малко кинти за говори глупости и на български. Друг по-пресен пример е Ray Willian Johnson, който два [...]



Мобилно-таблетна истерия с елементи на flash омраза

2010-02-18T13:44:19.101+02:00

Малко късно, но все пак държа да напиша някои думи за iPad. За мен това устройство е просто едно от нещата, за които още докато следях какво става на MacWorld, си казах - "Искам го !".Това е. Apple ги могат тия неща.[видео]Няма да коментирам самото устройство, цената или функционалността му. Интересни са ми все пак критиките към iPad. Това което изплува на повърхността беше, че не е достатъчно функционално, че не изполва "пълната" Mac OS X, че няма флаш, че няма мултитаскинг и т.н. и т.нСъветвам ви да погледнете поста на на yovko по въпроса, на мен това ми се наби в главата:Хейтърите, разбира се, са във вихъра си. Начетох се на какви ли не глупости последните два дни, дори сред профи-анализаторите. Ама те се присмиваха и когато се разчу, че Apple ще прави mp3-player. Пак същия кикот се разнесе и след iPhone. Не виждам нищо по-различно и след iPad. Красивите джаджи и сексапилните жени предизвикват завист – няма как…Няма смисъл да коментирам всяко едно от обвиненията към iPad, пък и целта ми въобще не е да защитавам Apple и джиджафката им. After all, ако не го харесвате, аз едва ли ще ви убедя в противното.Най-интересна ми стана тази цялата истерия около флаша. Как така iPad няма flash ?!?Adobe естествено обвиняват Apple за това.Истината ?Истината е, че iPad няма нужда от flash, колкото и да им се иска на Adobe.Първо защото flash има пословично лоша поддръжка под Unix подобни операционни системи като Linux и Max OS X (който е пробвал знае за какво говоря) и второ - всъщност никое мобилно устройство няма нужда от флаш.За какво им е :- Гледане на клипчета online ?Еми не, това може да се прави и без флаш.- Играене на игри ?iPad поддържа всички игри за iPhone/iPod и съвсем скоро ще има толкова много специално за него, че flash игрите ще ви се струват глупост.- Гледане на рекламни банери ?Хайде малко по-сериозно.Flash трябва да умре, така както умряха java applet-ите.И то не за да бъде заместен от някое подобно недоразумение като Silverlight, а от нещо отворено и стандартизирано като HTML 5.Adobe са страхотна компания имат продукти като Photoshop и Dreamweaver и май е по-добре да насочат усилия в тази посока.Отн[...]



Code Monkey not crazy just proud

2010-01-21T10:44:39.789+02:00

(object) (embed)



Windows 7 първи (и втори) впечатления

2009-12-13T00:30:33.289+02:00

Да, най-после и аз си сложих Windows 7, беше въпрос на време.
Ще се постарая да бъда кратък:
- Microsoft продължават да доказват, че многото пари не правят добър дизайн и не могат да купят добър вкус. Windows 7 въпреки промените по външния вид, продължава да ми изглежда неприятен. Все пак е доста по-добре от XP.
- Скоростта спрямо Vista при същия хардуер е доста по-добра (за сега). Все пак Eclipse си е eclipse :)
- User Account Controll-а, сякаш вече не е толкова дразнещ, много по-рядко ме пита за глупости.
- Aero тръгва трудно (поне при мен)
- Не ми иска чак толкова много драйвери колкото XP, все пак обаче си иска своето.
- Рестартирането на компютъра продължава да се води естествен край на инсталацията на всяка програма.
- За пръв път виждам нормален начин да исталиране на превод за интерфейса. Българския language pack идва с ъпдейтите и след това остава само да си го смените от Control Panel-а. След това естествено - log off.
- task бара изглежда доста по-подреден, въпреки че групирането на прозорци дразни
- скритите икони в system tray-а се показват по много грозен начин.
- Internet Explorer 8 е ужасно бавен дори при отварянето на празен таб. Acid3 теста дава 20 от 100 и грозен надпис FAIL. Firefox 3.5.5 - 92 от 100. ;)

На пръв поглед е това. За сега не мога да кажа нищо по-задълбочено, но все пак нещата не изглеждат чак толкова зле. Все пак ако искате / налага се да ползвате най-новите неща от Microsoft, Vista или 7 са почти задължителни.
Тепърва ми остава да хвърля едно око на IIS7, MSSQL, Visual Studio и т.н.

Ако още карате с XP и нямате да сменяте типа на операционната система с някоя unix-подобна (Linux, Mac) по-добре минете на 7, най-малкото така се доближаваме до момента, в който вече никой няма да ползва Internet Explorer 6, амин !

P.S MS Windows 7 без Intenet Explorer и Windows Media Player, sounds good, isn`t it! :)



Как не се прави

2009-12-11T12:05:12.825+02:00

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

(image)
И така ...
Първо. Защо имам id поле след като то не auto_increment и му е сложена default-на стойност 0 ? Как и с какво точно ми помага това поле ?
Второ. Защо полето статус е тип integer (а не boolean или поне tinyint) и стойностите му са 1 и 2 (а не 0 и 1) ?

Очаквам предложения и обяснения! Най-доброто обяснение печели 1 бира от мен !



Микрофон и мишка с прощално предаване

2009-12-04T09:48:04.029+02:00

Тази сутрин, още неотворил очи, чета това на skype-а си :
Здравейте, драги ни зрители и слушатели!
Позволявам си да ви пратя този спам, защото може би това ще е последното съобщение от този скайп-абонат.
Не знам дали си спомняте, на времето имаше едно предаване „Микрофон и мишка“. Днес някакси не са модерни такива предавания, телевизиите искат неща, дето само пълнят окото, а в главата ти нищо не остава. Ние с колегите ми Павката, Моллов, Bloody... не сме Иван и Андрей, нямаме шанс и затова решихме да се съберем за последно, да си направим едно предаване за приятели, то ще се излъчва и в интернет, с високо качество, и възпитано да кажем "Довиждане" на хората, с които сме се срещали в съботите напоследък.
Аз съм Орлин Бориславов, каня ви в събота, 5-ти декември, от 13 ч. В ЦУМ, където се провежда изложението БАИТ@home (www.baithome.com), на третия етаж. ТВ предаване без ТВ – нашият прощален брой на живо. Предаването ще се излъчва на адрес 4fun.bg.
Благодарим ви за чудесните години заедно и ви пожелаваме да сте здрави и щастливи!

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



x

2009-11-19T19:22:12.734+02:00

Едва ли знаете, но първите години от живота си живеех в едно село на 20-тина километра от Русе - Сандрово. Къщата е на дядо ми, но не мисля, че той някога е живял там.
Днес, тъкмо свършил работа, точно преди да изключа компютъра, mail клиента ми изкара едно писмо от баща ми. Ето част от него:

Ице, добър вечер!
При мене има една голяма тревога. Снощи човекът, който живее под наем в къщата на бабалъка /нашата къща с майка ти де/ бил убит от сина си. Той беше един 72-годишен добруджанец , изгонен някога от същия син, който пък продал бащината си къща и я изпил. След това бащата идва на село и дядо ти го пуска на квартира срещу символичен наем от 30 лева. Колкото да не е на улицата и някой да пази къщата. Не знам дали си в течение, затова ти разказвам. И този син, след като пропива имота на баща си в Старо село, Силистренско, понеже няма къде да живее, а и е разведен, цъфва в Сандрово. И отива скришом да живее при баща си. В нашата къща, на дядо ти де. Пие, изпива всичко, не работи. Негодник. Аз лично съм ходил по заръка на дядо ти да кажа на тоя Пламен да се изнася от къщата. И леля ти Иванка му е говорила. Той е 37-годишен. Последния път, като ходих на Сандрово, пак говорих с него. Беше този вторник. Той обеща да се махне. Тъкмо прибираше едни дърва. После идва същата вечер у дядо ти. Баща му беше вдигнал ръце от него. Ходих и при младшия полеицейски инпектор Петър Топалов, за да го помоля за съдействие, защото тъстът беше вдигнал ръце от натрапника.
Тази нощ лампата пред къщата светела непрекъснато и кошмшийката се зачудила защо бай Кульо не я угася. И се обажда в кметството. Като пристига полиция, човекът заклан във вътрешната стая. В потрес съм. При това става дума за къщата, в която майка ти и аз си мечтаехме да отидем на стари години. Забрави вече. Няма да отида никога там. Адски грозна история. Чух преди малко по новините, че полицията хванала убиеца до Старо село, неговото родно място


Просто не мога да представя що за изрод би посегнал на баща си, 72 годишен старец.
Не знам какво да кажа или да напиша...



Multi-touch Linux

2009-11-18T22:21:44.256+02:00

За някои може вече да не е новина, но от ядро 2.6.30 насам, Linux си има прекрасна поддръжка на multi-touch.
Ще ме извинявате за чуждицата, но не мога да измисля смилен и кратък превод. Накратко
това е поддръжка за работа на touchpad-а ви с повече от 1 пръст (не ме мъчете с touchpad).

tip: за да си проверите версията на ядрото - "uname -a"


Най-хубавата част на тази новина е, че не ви трябва специален хардуер. Повечето touch-пади на Synaptics си го поддържат (разбира се и много други, но специално тази марка ме интересува мен).

tip: За да проверите дали вашата джаджа е способна на нещо такова "synclient -m 100"; В графата Z се изписва с колко пръста натискате touchpad-а си. Ако имате число по-голямо от 1 - честито, печелите играчка :)


Хората, които са гледали какво правят машинките и софтуера на Apple с тази технология може леко да се превъзбудят, но за сега ще тряба да ги помоля да седнат обратно по местата си и да въздъхнат дълбоко. За момента осезаемата разлика е в това, че :
- натискане с 2 пръста е еквивалент на десен клик
- натискане с 3 пръста е еквивалент на среден клик
Натискането с 1 пръст мисля, че е ясно.
Ощя няма няма софтуер, който да разпознава жестове и подобни чудесийки, така че да "ябълковия" ефект, но и за това има време. Все някога слънцето ще изгрее и на нашата улица.

Все пак. Намирам го за много удобно. Специално на моя touchpad бутоните са му доста твърди и винаги ми е било некомфортно да ги ползвам, разбира се с времето се свиква, но така е къде, къде по-приятно.
Единствено "почукването" с 3 пръста ми се струва малко неудобно, тъй като природата ме е надарила с доста дебели и очевидно тежки пръсти и когато се опитвам (примерно) да отворя линк в нов таб отстрани изглежда все едно съм люто сърдит на лаптопа си и му причинявам нещо лошо. Схванахте идеята. Все пак след няколко часа упражнения започва да се разсейва съмнението, че ще счупите нещо.

newbie corner:
Като за финал, много хора не знаят за какво се ползва средния клик. Всъщност, доста хора не знаят, че има среден клик. Та ... това нещо дето ви е между двата бутона на мишката се казва "скрол" и освен ще може да "скролвате страници" с него, може да се натиска. Не се бъзикам, наистина е бутон. :)
Ако нямате мишка, обикновено при touchpad-ите се емулира чрез натискане на двата бутона едновременно.
Та, със среден клик може да се отварят страници в нов таб на Firefox, съотвено да се затварят страници, да се paste-ва текст и всякакви други полезни неща.



Как да подкараме wireless карта с чип на Broadcom под OpenSUSE 11.2

2009-11-14T20:49:47.698+02:00

Понеже Ubuntu 9.10 се оказа едно голямо разочарование, набързо реших да го махна и да сложа OpenSUSE, пък и тъкмо излезе 11.2. :)Wireless картата на лаптопа ми е Lynksys WPC54G, която работи с чип на broadcom, за който има драйвер в ядрото от версия 2.6.17, но все пак се налага да се изтегли едно firmware-че за да "потегли".За да видите точно каква ви е картата, като каква се разпознава и т.н. изпълнете :hwinfo --wlanlspciАко всичко е ок трябва да инсталирате b43-fwcutter по начина който предпочитате, но аз си обичам конзолата:zypper in b43-fwcutterТеглим и самия firmware: и разархивираме.wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2tar xjf broadcom-wl-4.150.10.5.tar.bz2влизаме в папката broadcom-нещо-си и чрез b43-fwcutter го инсталираме:b43-fwcutter -w /lib/firmware wl_apsta_mimo.oЕто и какво каза /var/logs/messages по въпроса:Nov 14 15:52:04 linux-jlue kernel: [ 3394.496084] b43 ssb1:0: firmware: requesting b43/ucode5.fwNov 14 15:52:04 linux-jlue kernel: [ 3394.523725] b43 ssb1:0: firmware: requesting b43/pcm5.fwNov 14 15:52:04 linux-jlue kernel: [ 3394.532256] b43 ssb1:0: firmware: requesting b43/b0g0initvals5.fwNov 14 15:52:04 linux-jlue kernel: [ 3394.540883] b43 ssb1:0: firmware: requesting b43/b0g0bsinitvals5.fwNov 14 15:52:05 linux-jlue kernel: [ 3394.664191] b43-phy1: Loading firmware version 410.2160 (2007-05-26 15:32:10)Nov 14 15:52:05 linux-jlue kernel: [ 3394.704860] Registered led device: b43-phy1::txNov 14 15:52:05 linux-jlue kernel: [ 3394.704895] Registered led device: b43-phy1::rxNov 14 15:52:05 linux-jlue kernel: [ 3394.704925] Registered led device: b43-phy1::radioNov 14 15:52:05 linux-jlue kernel: [ 3394.732768] ADDRCONF(NETDEV_UP): wlan0: link is not readyNov 14 15:52:13 linux-jlue kernel: [ 3402.625434] wlan0: authenticate with AP 00:1d:0f:eb:fc:daNov 14 15:52:13 linux-jlue kernel: [ 3402.627701] wlan0: authenticatedNov 14 15:52:13 linux-jlue kernel: [ 3402.627708] wlan0: associate with AP 00:1d:0f:eb:fc:daNov 14 15:52:13 linux-jlue kernel: [ 3402.630942] wlan0: RX AssocResp from 00:1d:0f:eb:fc:da (capab=0x431 status=0 aid=1)Nov 14 15:52:13 linux-jlue kernel: [ 3402.630948] wlan0: associatedNov 14 15:52:13 linux-jlue kernel: [ 3402.631925] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes readyтоест ядрото си е мрънкало за firmware-a, ние му го дадохме и всичко си тръгна.Някои хора все пак ще се опитат да инсталират драйвера с ndiswrapper. Е.. недейте ! Драйвера за windows работи ужасно. Никога не съм вдигал скорост над 1MB/s с windows-ката версия. Често безжичната карта забива и се налага рестартиране на цялата операционна система за да можете отново да се вържете към някоя мрежа. Доскоро и linux-кия драйвер правеше подобни изпълнен[...]



Звук при Ubuntu 9.10 - the hard way

2009-11-08T17:46:35.281+02:00

След upgrade на Ubuntu 9.04 до 9.10 се получи една "проблемация". Звук няма. За пръв път откакто ползвам тази дистрибуция ми се случва това, а аз е ползвм наистина отдавна - 4.04
Whatever. Проблема не е само при мене, бъг репортите направо валят. Този пък проблема не е при ъпгрейда, а в новата версия на Убунту. Тия хора пак си правят някакви експерименти с alsa и pulseaudio и чупят кефа на достатъчно много потребители.
Нормално решение няма, чакаме на фикснат бъга.
Има обаче закърпващо решение.

Махате pulseaudio и инсталирате asoundconf-gtk и aumix-gtk.
Накратко :

sudo pulseaudio -k # след kill демона се рестартира автоматично, така му казваме сам да се спре
sudo apt-get purge pulseaudio # махаме pulseaudio
sudo reboot # рестартираме

# Инсталираме си необходимите програмки.
sudo apt-get install aumix-gtk asoundconf-gtk



Тука идва един малък хак - от тоя адрес теглим alsa-utils_1.0.18-1ubuntu11_i386.deb (или съответно 64 битовата версия). Това е просто архив. Отваря ме го, вътре има друг архив data.tar.gz
и отвътре вадим usr/bin/autoconf
За да инсталираме autoconf на нашата система, просто го копираме в /usr/bin.
След това стартираме:

asoundconf-gtk

Ще ви пита за sound карта, изберете си вашата.
На този етап от колонките на лаптопа ми се чу пукане и звука "дойде".
Ако не е тръгнал, проверете от Програми / Звук и видео / Aumix дали въобще звука ви е пуснат и сътветно си отлепете слайдъра за звука от нулата.

Понеже това си е чисто и просто хак, нямам идея дали ще работи при други освен мен.
Споменах, че това е закърпващо решение защото:
- sound mixer-a на GNOME няма идея какво се случва и съответно не може да контролира звука ви. Съответно и function key-овете на лаптопа за намаляне и увеличаване няма да работят.
- звуковата ви карта започва да работи в режим Highlander (шотландски боец) - само една програма може да я ползва. Което ще рече че ако слушате музика с rhythmbox или който и да е музикален плеър, то няма начин да чувате звук и от клипче в youtube примерно.
- при следващи ъпдейти вероятността да не се омаже нещо граничи с невъзможното

Преценете си сами дали си заслужава занимавката заради един dist-upgrade. Аз лично ако го знаех това едва ли щях да обновя до 9.10. Ако искате да си ползвате системата спокойно
отидете на Система / Администарация / Източници на софтуер и от таба Актуализации си изберете да ви показва само дългосрочни актуализации. Това се отнася за версии, които завършват на *.04, имат поддръжка 4 години и се водят доста по-стабилни. Така няма да ви занимава докато не излезе 10.04.