неделя, март 16, 2014

Преместване

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

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

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

вторник, декември 17, 2013

SSH тунели и MySQL

Наложи ми се да боря с доста странен проблем, искам да направя 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 ключове и така да се свързвате с отдалечената машина без парола. За това може да пиша някой друг път.



петък, април 27, 2012

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

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

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

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

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

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

понеделник, февруари 28, 2011

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

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

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

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

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

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


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

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

вторник, февруари 15, 2011

Activision спират Guitar Hero

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

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

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

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