Вторник, Март 29, 2011

Термоядрен април

Преди време ми попадна тази песен (между другото хич не е лоша)


В края на първия куплет, не знам защо, но чувам "термоядрен април" и въпреки че знам, че не се пее това, все пак ми е някак предапокалиптично забавно.
Още няколко дни останаха, започвайте да копаете бункери в задния двор

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

Колко хубав изглежда животът
през април, този месец тъй мил!
Аз се влюбих във него, защото
е термоядрен април!


Зная аз, че април е лъжовен,
зная туй е априлска лъжа
и все пак в свойте длани гальовни
твойте длани държа!

Не, не вярвам - месец април е лъжлив!
Вече вярвам - месец април е щастлив!

Теб и бялата пролет обикнах.
С тебе целият свят е тъй нов!
И от наш'то дихание никнат
и цветя, и любов!

Може би щом април си отиде,
ще си идеш с него и ти
,
но насън аз отново ще видя
пак април да цъфти!

Не, не вярвам - месец април е лъжлив!
Вече зная - месец април е щастлив!

Със съня ще се връщаш тогава,
ще те виждам тъй както сега!
Затова, затова ти прощавам
тази мила лъжа!

Понеделник, Февруари 28, 2011

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

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

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

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

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

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


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

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

Петък, Февруари 25, 2011

Кой е собственик на страничните ми софтуерни проекти ?

Блогът на Joel Spolsky ме насочи към една дискусия, където обсъждат доста интересен въпрос - Кой е собственик на страничните ми софтуерни проекти ?

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

Явно някои ръководители смятат, че ако след края на работния ден още можеш да направиш нещо различно, явно не си работил достатъчно през деня, тоест си се скатавал във времето, в което те са ти плащали да твориш код. Други очевидно са на мнение, че ще им откраднеш уникалния софтуерен продукт и ще се наложи да се борят за частица от милионите ти. Трети пък просто не искат да се занимаваш с програмиране извън работа - трябва вечер да спиш, да гледаш телевизия и на следващия ден бодър да се появиш на работа в 8:00 или колкото там кошмарно рано трябва да ходиш на работа.
Причините са много, най-честата реакция е само една - всичко което правиш в или извън работно време е собственост на компанията, за която работиш. Разбира се не всички го правят, но тези които искат да са поне малко правно подсигурени, си правят труда или да добавят в договора някоя друга точица или мило да ви помолят да подпишете декларация на лоялност, конфиденциалност и други ..ост.

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

Но и това не стига.
Както някои обясни и в по-горе посочената дискусия, възможен е следния сценарии: Наемат ви като гейм дизайнер във фирма и вие всеки ден правите игри от 9 сутринта до 6 следобед. Но в един момент ви идва на ум, че искате 40% от собствеността върху крайния продукт защото набързо сте пресметнали, че точно такъв процент от мисловната ви дейност е протекъл извън работно време.
Дори на пръв поглед да изглежда радикално, все пак е логично Иван да отиде при Пешо и му каже - Виж какво, на ясно съм че изобретяването на нещо не може да става само между 9 и 6, и няма как да който и да било да докаже в колко часа си изобретил въпросното нещо,  искам всичките ти изобретения, независимо кога си ги изобретил и ще си платя за това.

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

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

Когато започнах на предишното ми работно място си дойдох с едни библиотеки писани от мен. Докато работех там съм ги използвал в един-два продукта. Също така в работно  време съм правил промени по библиотеките - добавял съм функционалност, оправял съм бъгове, защото са зависели от работата ми. След като си тръгнах от там си взех последните версии и продължих да си ги ползвам. Имам ли право на това ?
Въпреки, че технически поне пачовете на тези библиотеки би трябвало да не са моя собственост .... общо взето на никой не му пука.  По същата логика аз бих могъл да ги съдя за собственост върху всеки техен продукт, който съдържа въпросните библиотеки.  Знам, че никой няма да тръгне да се заяжда за нещо такова.
Смятам че 90% от работодателите (за които бих работил) ще са на същото мнение стига страничната ми работа да не влияе на основните ми задължения.

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

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

Вторник, Февруари 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 лева в акаунта си.

Понеделник, Февруари 14, 2011

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

Миналата седмица 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 : "Две пуйки не правят орел". Отговорът на Stephen Elop беше "Двама производители на колела от Охайо, един ден решили да летят." (Two bicycle makers, from Dayton Ohio, one day decided to fly.)

Лошото, поне за мен е, че изчезва OVI. Магазинът на Nokia изчезва за сметка на Windows Marketplace, а OVI Maps се слива с Bing Maps. Bing Live на всяка Nokia, звучи си страшничко.
За сметка на това пък на Nokia ще бъде разрешено да модифицират Windows Phone 7 повече от всеки друг производител (което не съм убеден, че ще направят). Micrsoft също се очаква да помогне на Nokia за сключване на договори с американските оператори за разпространение на финландски телефони (като правят Apple с iPhone например), защото позициите им там са доста слаби.
Въпреки че голяма част от клиентите на Nokia не са много доволни от това решение, работниците във Финландия негодуват заради несигурността на работните им места, като цяло смятам, че обединяването на двете компании на един фронт е нещо добро. Дори започнах да се замислям отново дали да не си взема Nokia, тъй като до преди седмица  щеше да е необходимо да консумирам солидно количество алкохол за да се реше на такава стъпка.
Конкуренция - да. Разнообразието на ОС за мобилни телефони леко намаля, но пък нека бъдем искрени - Symbian и Maemo реално не бяха нещо сериозно.

Докато iPhone са заети да броят продадени телефони, Google да сложат Android на всеки телефон, а Nokia и Microsoft се мъчат да преподредят редиците, скритата заплаха може да се окаже HP с тяхната WebOS. Въпреки, че съм леко скептичен към тази OS смятам, че има потенциал и си заслужава да се хвърля по едно око в прес съобщенията на компанията.