Миналата седмица 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 смятам, че има потенциал и си заслужава да се хвърля по едно око в прес съобщенията на компанията.
понеделник, февруари 14, 2011
За Nokia, Microsoft и пуйките
неделя, ноември 14, 2010
Database Version Control за PHP програмисти
За разлика от 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 revision назад и всичко е песен.
- Има хипотетичен шанс да счупиш нещо на другарчето
+ Бързо е
+ Лесно е
+ Готино е
+ Модерно е ;)
Можете да видите още примери тук - http://code.google.com/p/ruckusing/wiki/CompleteExamples
Малко безполезно инфо:
Доста време търсих нещо подходящо, което да замени първите 2 начина на работа и дори мислех да започна да си пиша сам нещо такова.
Моята идея беше да се проверяват разликите между 2 export-а в xml формат и да се генерира само sql кода, който да докара първата база данни до втората. Тоест ако имаме в една таблица, която експортирана изглежда така:
CREATE TABLE `users` (и друга
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
В такава ситуация, понеже съм мързелив човек, директно drop-вам моята таблица и paste-вам новия код. За да си спестя глупостите и да не се налага наново да си импортирам данните, моята система трябваше да генерира един sql файл за миграция, който да съдържа:
ALTER TABLE `users` ADD `email` VARCHAR( 255 ) NOT NULL
четвъртък, октомври 21, 2010
sudo за windows 7
Въпреки общоприетото мнение 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 малко по-приятно място :)
вторник, юли 27, 2010
Коментари в кода
В момента работя по един 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 версията. Въпреки базарния модел на софтуера с отворен код, винаги съм бил привърженик на идеята за силна фигура на върха, която да има последната дума по всеки въпрос. От тук идва разликата между добрия софтуер и сбирщината от хакове.
Все пак въпроса е какво искаш като краен резултат, многофункционален софтуер, който от време на време се чупи и губи информация или орязана откъм функционалност, но пък много стабилна система. Съществуват и двата варианта, и двата изкарват пари, а щом е така, значи има някакъв смисъл от това. Това пък от своя страна доказва, че всичко по-горе е просто една теория, която може и да има, може и да няма реална обосновка.
Етикети: develop, open culture, software
петък, юли 23, 2010
Изборът и мобилните комуникации
Избора Санчо ... е нещо много важно. Борим се всеки ден за да имаме избора да направим това или онова.
Но нека както винаги подходя злободневно и принизя изконни човешки ценности използвайки глупави и нямащи нищо общо сравнения.
Баба ми (например) е един от хората, които са живели в един по-добър свят. Има една телефонна компания, която дава един тип телефон и предлага една услуга. Избор нямаш, но пък замислете се:
Имаш си телефон само вкъщи, който не е особено удобен и функционален, но пък върши това за което си го купил, звъни.
Знаеш, че един разговор е един импулс колктото и да говориш. Един импулс струва точно толкова стотинки и това е. Абсолютно нищо друго не ти трябва да знаеш.
Мислите ли, че баба ми е била щастлива с тази услуга - аз да (въпреки че едва ли "щастлива" е думата, която можем да използваме в този случай).
Аз, няколко деситилетия по-късно, съм безкрайно объркан и изнервен не просто от самата услуга, а от избора, който съм принуден да направя. Имаме 3 мобилни оператора и още не знам колко други компании предлагат стационарни телефони.
Когато звъня на някого от мобилния си телефон трябва да мисля кой оператор използва отсрещния, защото цената която плащам е различна. Отдавна не знам точно колко ми струва един "импулс", просто защото вече такова нещо няма, таксува се на минута, но пък някои вземат определена сума за първите 30 секунди, други за първите 15, а някои за първата минута.
На всичкото отгоре колко плащам не зависи само от оператора ми, но и от тарифния ми план. Имате ли идея колко тарифни плана има вашия оператор ? Аз не.
Всеки път когато отида да си плащам сметката, учтивия служител пита:
- А вие знаете ли за новия .... (нещо което просто не чувам) ?
Аз отговарям с абсолютно безразличен поглед - Не!
- А искате ли ...
- Не !
Служителя тук вече е абсолютно объркан и дори се чувства леко обиден. Не искам да бъда груб, просто не ме интересува какви други тарифни планове има. Та аз едва успях да избера този.
Нарочно го правят, чакат ни в офисите си като алигатор - антилопа в близост до езерото. Знаят, че рано или късно ще се върнем за да пием вода и те търпеливо стоят точат зъбки за да може в правилния момент да изкочат да ни захапят за вратовете.
Имам чувството, че имат хиляди планове и никой, ама никой не може да ми каже кой е най-добрия, защото те били направени така че да ми пасват на мен. Ако започна да разглеждам всеки един от тях за да избера кой точно ще ми е най-полезен, ще трябва да отделя цял ден, за нещо което нито ми е интересно, нито имам каквото и да било желание да правя.
А да, и след 3-4 месеца ще излеже нова "гореща оферта", която в главата на някой гении ще ми се струва неустоима, но пък.. представете си - "Не ме интересува".
Аз го приемам така, ако отделя достатъчно внимание за да избера абсолютно-утимативно-невероятния план, който е направен да ми пасва по-добре и от дънки Levis, може би (хипотетично), ще спестявам по 10-15% от месечната си сметка. Не искам, плащам си данъка за да бъда незаинтересован.
"Един оператор - един телефон, един градски разговор - един импулс, един импулс - X стотинки" ще бъде новата ми мантра отивайки следващия път да си платя сметката.
Етикети: лично, fickbar menshen, idiotism
