Category Archives: Технологии

Оптимизиране на MySQL заявки при геолокализирано приложение

Навярно повечето от вас знаят, че се занимавам със сайта fuelo.net и на мен се стоварват всички технически проблеми. В този пост искам да споделя два от основните проблемите пред подобен род приложения – силно зависими от местоположението на потребителите, и как съм ги разрешил.

1. Намиране на най-близките N обекта (в нашия случай бензиностанции).

Във fuelo използваме MySQL за основен database и една от първите ми оптимизации беше да upgrade-нем до версия 5.7, където има доста подобрения и готови функции, свързани с геолокацията. Първоначално всички заявки свързани с определяне на бензиностанции наблизо бяха нещо от рода на :

$sql = "SELECT *, (6371 * acos( cos( radians(".$lat.") ) * cos( radians(`lat`) ) * cos( radians(`lon`) - radians(".$lon.") ) + sin( radians(".$lat.") ) * sin( radians(`lat`) ) ) ) AS `distance` FROM `gasstations` HAVING `distance` < ".$distance." ORDER BY `distance` ASC";

забележка: всички примери ще бъдат на PHP, а заявките са опростени (без WHERE и LIMIT клаузи) с цел прегледност.

Както виждате тук дори не се използва stored procedure, а цялата haversine формула се изчислява при всяка заявка. Това при малък ненатоварен сайт с неголяма база данни (напр. до 1000 обекта) на практика работи и се използва доста често. Повечето tutorials в интернет препоръчват именно тази формула. Първата ми идея за MySQL 5.7 беше именно да заменим тази формула с вградената (от версия 5.7.6) функция ST_Distance_Sphere. Така горната заявка се свива до:

$sql = "SELECT *, ST_Distance_Sphere(POINT(`lon`, `lat`), POINT(".$lon.", ".$lat."), 6371) AS `distance` FROM `gasstations` HAVING `distance` < ".$distance." ORDER BY `distance` ASC";

Така изчислението на теория (и на практика) става много по-бързо. Забележете, добавения трети параметър на функцията ST_Distance_Sphere, който преобразува изчислението в km, а не в метри както е по подразбиране. Това ни се наложи, за да запазим съвместимостта със функциите, които извикваха тази заявка, а те очакват резултата в километри.
На пръв поглед всичко изглежда супер, но на практика не е. Тази функция наистина изчислява възможно най-бързо разстоянието между две точки, но не използва индекси и затова все пак трябва да обходи всички редове в таблицата, за да подреди резултатите по разстояние. При все по-голяма база (при нас като наближихме 50000 бензиностанции), тази заявка също започна да става бавна. Започнах да мисля как да огранича резултатите, за които се изчислява разстоянието. Както се вижда от заявките (почти) винаги има ограничение в разстоянието (HAVING `distance` <  X) и се зачудих как мога да превърна това X в координати и така да огранича резултатите още преди да започне изчислението и сортирането. Така намерих тази статия (Finding Points Within a Distance of a Latitude/Longitude Using Bounding Coordinates by Jan Philip Matuschek), в която на теория много добре е описан точно моя проблем. Има и source код на Java, както и линкове за други програмни езици, включително и PHP. Това беше точно каквото ми трябваше. Като използвам тази библиотека кода придобива следния вид:

$edison = Geolocation::fromDegrees($lat, $lon);
$coordinates = $edison->boundingCoordinates($distance, 'km');
$lat_min = $coordinates[0]->getLatitudeInDegrees();
$lon_min = $coordinates[0]->getLongitudeInDegrees();
$lat_max = $coordinates[1]->getLatitudeInDegrees();
$lon_max = $coordinates[1]->getLongitudeInDegrees();

$sql = "SELECT *, ST_Distance_Sphere(POINT(`lon`, `lat`), POINT(".$lon.", ".$lat."), 6371) AS `distance` FROM `gasstations` WHERE `lat` > '".$lat_min."' AND `lat` < '".$lat_max."' AND `lon` > '".$lon_min."' AND `lon` < '".$lon_max."' HAVING `distance` < ".$distance." ORDER BY `distance` ASC";

Така вече заявката беше доста по-бърза, обхождаше доста по-малко редове, което подобри работата на MySQL и сървъра като цяло. Аз обаче не се спрях до тук. Хрумна ми как да се възползвам от spatial индекса на MySQL. Първо направих ново поле в таблицата gasstations с име coords и тип POINT. Попълних новото поле от другите две полета, които вече имах, lat и lon , чрез заявката UPDATE `gasstations` SET coords = Point(lon, lat); и след това направих полето spatial index. След тази промяна бях готов за последната ми (за сега) SQL заявка за намиране на най-близките бензиностанции:

$edison = Geolocation::fromDegrees($lat, $lon);
$coordinates = $edison->boundingCoordinates($distance, 'km');
$lat_min = $coordinates[0]->getLatitudeInDegrees();
$lon_min = $coordinates[0]->getLongitudeInDegrees();
$lat_max = $coordinates[1]->getLatitudeInDegrees();
$lon_max = $coordinates[1]->getLongitudeInDegrees();

$sql = "SELECT *, ST_Distance_Sphere(`coords`, POINT(".$lon.", ".$lat."), 6371) AS `distance` FROM `gasstations` WHERE ST_Within(`coords`, ST_MakeEnvelope(Point(".$lon_min.", ".$lat_min."), Point(".$lon_max.", ".$lat_max."))) HAVING `distance` < ".$distance." ORDER BY `distance` ASC;

Същността тук е функцията ST_Within(), която се възползва от spatial index-а на coords и филтрира резултатите още по-бързо. Функцията ST_MakeEnvelope създава “квадрат”, по две крайни точки, в който се ограничава търсенето.

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

2. Изобразяване на голям брой обекти на карта

Във fuelo използваме Google Maps за визуално представяне на бензиностанциите на карта. В началото беше лесно – малко обекти – просто показвай всички на картата. След време, както всички, започнахме да използваме js marker clusterer. Така обаче прехвърляме тежките изчисления върху клиента и когато той реши да unzoom-не за да види всички бензиностанции в Европа, може направо да му забие browser-а и/или компютъра. Започнах да търся сървърно решение за clustering на обекти. Решението, което използваме в момента, се нарича geohash. MySQL поддържа geohash функции и с тяхна помощ заявката за server-side clustering става нещо подобно:

$sql = "SELECT `id`, `brand_id`, AVG(lat) as avglat, AVG(lon) as avglon, substring(`geohash`, 1, ".$precise.") as cluster_hash, count(*) as cluster_count
FROM `gasstations`
WHERE ST_Within(`coords`, ST_MakeEnvelope(Point('.$lon_min.', '.$lat_min.'), Point('.$lon_max.', '.$lat_max.')))
GROUP BY `cluster_hash`";

За целта Ви трябват няколко неща:

  • поле geohash (при мен VARCHAR(9) ) в таблицата gasstations, което предварително е попълнено със ST_GeoHash() функцията (и не забравяйте да го update-вате винаги, когато промените координатите на обекта ! )
  • $lon_min, $lat_min, $lon_max и $lat_max , които лесно може да вземете за видимата част на картата от google maps API-то
  • $precise – колко прецизно да е клъстерирането. Основно зависи от zoom level-а на картата и може да си го нагласите според вашите нужди

При изпълнение на заявката получавате всичко необходимо за визуализиране на картата и не е необходимо на използвате client-side clustering:

  • cluster_count е броя обекти в клъстера – ако е 1, значи е само една бензиностанция и може да покажете пинче в зависимост от нейната brand_id. Ако е повече от 1 значи има повече от една бензиностанция в района и показвате клъстерна иконка с цифричка cluster_count, която показва броя.
  • avglat и avglon са средноаритметично от координатите на бензиностанциите и така може да позиционирате клъстерната иконка на “по-правилно” място. Иначе, от самата специфика на geohash алгоритъма, Земята се разделя на правоъгълници и клъстерите Ви ще се наредят като в решетка. Разбира се ако cluster_count e 1, avglat и avglon са координатите на самата бензиностанция.

 

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

Как да отключим Vodafone (Huawei) K3715

Преди няколко дена ми се наложи да отключа един 3G USB модем. Предисторията е че Йонов ми даде няколко промоционални карти за интернет на Vivacom, които са валидни до края на месеца, и аз реших да се възползвам от възможността да ги пробвам на Мандрица, където по принцип никой оператор няма добър обхват. Реших че най-лесно ще стане с USB модема, който имам, обаче той е с марката Vodafone и естествено се оказа заключен само за Mtel.

Спомних си че наскоро Йовко беше писал за подобно отключване и реших и аз да пробвам. Започнах първо от неговия блог, но в крайна сметка google също върши работа. Излизат доста варианти, част от които безплатни, други платени, трети фалшиви (с потенциални вируси и спамове). Дърпах няколко dashboard-a, firmware-a, пробвах няколко генератори … въобще загубих си повече от час. За да спестя евентуално време на други ето как успях да си отключа модема аз – накратко ви трябват две неща:

  1. код за отключване, който зависи от IMEI кода на вашето устройство – на Vodafone K3715 го има изписан под капачето за SIM картата. След което аз използвах този online генератор на отключващ код.
  2. програмка за отключване – аз използвах ето тази (хостната при мен) от този сайт – www.ruchirablog.com/guide-unlock-huawei-hsdpa-modem-free . Бях пред на майка ми компютъра с Windows, така че не съм я пробвал дали работи под виртуална машина или с емулация под Linux. Надявам се не е вирусяла, но е безплатна и лесна.

Предполагам, че вместо програма може да се използват и AT команди, но с програмката всичко се свежда до въвеждане на кода от стъпка 1 и един click след това. От Йовко научих, че има максимален брой опити, които може да пробвате да отключите модема (в моя случаи нямаше такъв проблем), след което трябва да флашнете firmware-а наново. Firmware за K3715 Може да намерите тук.

След като отключих модема имах и доста ядове с флашване на един китайски рутер TP-LINK WR703n, на който най-новата версия на DD-WRT има проблем с моя 3G модем, но това е една друга история, която може да разкажа друг път.

За Google Currents

Откакто имам таблет имам желание да видя дали е удобно да се четат вестници и списания на него. Моят Transoprmer Prime идва с преинсталирани Zinio (програма за четене на списания) и PressReader (за четене на вестници), но и двете (за съжаление или за радост) предлагат само платено съдържание и така и не се навих да ги пробвам. Единствено списанието на EngadgetDistro e добре направено (и като програма и като съдържание) и безплатно. Препоръчвам го, ако някой все още не му е попаднал. Но като цяло желанието ми за по-хубав четец на новини (или поне по-красив от Google Reader) така и остана незадоволено. Поне до миналата седмица, когато Google пуснаха за цял свят Google Currents. Програма (само за мобилни устройства за сега) която обединява в едно четец на списания и RSS четец. На практика прави от всеки RSS красиво изглеждащо списание (разбира се до колкото е възможно). Освен това, и най-хубавото според мен, е че системата е отворен и всеки може да стане „издател“. Още миналия четвъртък го пробвах и публикувах моя webjournal и за Currents. Ако притежавате смартфон/таблет, с инсталиран Currents, може да се абонирате за моето „списание“ от този линк. Освен постовете от блога ми съм добавил снимките от фотоблога ми, публикациите от Google+ и клипчетата ми от YouTube. Като цяло все още експериментирам, така че някои неща може да изчезнат и да се появят други.

Google Current не е тотално решение за удобно четене на новини, но е много добро начало. За масови новини все още ще използвам Google Reader, но избрани сайтове съм си ги добавил и в Currents. Особено тези, които издават специално за там. В бъдеще очаквам платформата да стане още по-добра и по-красива. Големия недостатък за сега е липсата на българско съдържание. Голям проблем е и че новинарските сайтове не пускат пълните си новини/статии в RSS потока. Разбирам, че искат да печелят само от реклама, но и изживяването на читателите би трябвало да има значение.

Asus Transformer Prime – ревюто

След вече две седмици с таблета Asus Transformer Prime, ето какви са ми впечатленията от него. За по-лесно ще ги разделя на положителни и отрицателни черти (според мен):

положителни черти:

  • батерията наистина издържа много. Позволявам си да държа Wi-Fi и синхронизирането постоянно включено през деня.
  • клавиатурата е удобна. За пълна поддръжка на български си изтеглих последната beta на българската клавиатура за Android.
  • може да включите едновременно SD карта, MicroSD и флашка в USB порта (дори някъде видях видео че и външен хард диск се поддържа). Като цяло може да разширявате паметта доста. Друг е въпроса до колко има смисъл 🙂
  • по една програма за всичко. Според мен работата на Android е по-продуктивна. Въпреки, че има multitasking, в един момент на екрана е само едно приложение и с изключение на съобщенията (notifications) друго не отклонява вниманието. Така мога да гледам снимки, чета писма или новини в Google Reader-а, без да имам до тях още 20 отворени таба и само да ги превключвам, какво правя обикновено на desktop-а.
  • най-мощния процесор за таблет в момента. Наистина всичко хвърчи и въобще не лагва (освен Twitter, Но за това Еленко вече е писал 🙂 ). Разбира се това няма да е вечно така.
  • игри. Не съм gamer, но изтеглих няколко и наистина мога да кажа че е страхотна платформа за забавления. Има игри (особено в nVIDIA Tegra Zone), които са от игрални конзоли и вървят страхотно. Мисля че се стремят Android да го направят и игрова платформа. Дори си купих една игра за 1$ – първата ми покупка от Market-а 🙂
  • много удобен (особено без клавиатурата) да си го вземеш в леглото или в тоалетната 😀
  • много здрав. Металния корпус и gorila стъклото го правят не само да изглежда стабилно. Веднъж седнах на него и стоях 5 минути преди да се усетя 🙂 И както можете да се досетите – нищо му нямаше

недостатъци :

  • не се зарежда от USB-то. Това не знам до колко е недостатък, но аз лично очаквах да може да се зарежда от компютър.
  • Трансфера на данни с компютър е само за Windows и Mac през специална програма. Няма Mass storage режим и когато трябва да си прехвърля нещо на таблета за сега го правя през флашка. sftp клиента на File Expert приложението нещо ми бъгва. Въобще бъдещето май е в облака и вече никой да не прехвърля данни извън Интернет.
  • няма 3G, но пък ако имате Android телефон с Wi-Fi HotSpot (като мен) се разбират чудесно. Все още не съм пробвал USB 3G модул дали се разпознава.
  • няма/не знам как да превключвам между български и английски от клавиатурата. Виртуалната клавиатура има копче, но хардуерната не. За сега се налага да превключвам с допир на екрана. Има – Shift+Space на Bulgarain Keyboard 2. Благодаря, Жоро.

неутрални (или по-скоро отрицателни неща, за които не е виновен конкретния модел) :

  • В Android 4 има проверка на правописа във всички полета, но няма български. Освен това не намерих дори информация как мога да си добавя. Надявам се скоро да се появи.
  • стандартния player не ми пуска някои клипчета/филми, но за сметка на това в market-а има избор. За сега съм се спрял на MX Video Player – ако някои може да препоръча нещо по-добро за таблет, да каже.
  • не всички приложения за оптимизирани за голям екран и изглеждат странно разпънати. Дори някои widget-и не се подравняват с други (и аз не знам защо). За сметка на това оптимизираните приложения (главно тези на Google) са супер удобни.

Вместо финал искам да кажа, че имам съвсем ясна надежда някой ден да си направя dual-boot Android/Linux. Четох една статия, че от Linux 3.3 ще започнат да включват всички промени от Android ядрото в „нормалното” линукс ядро. Вече излезе x.org 1.12 с X Input 2.2 , който поддържа multitouch, който заедно с новата визия на Gnome 3 и ArchLinux за ARM се надявам да бъде втората операционна система на моя Tranformer Prime. Ubuntu също имат идея за linux for Android, но тяхната посока нещо не ми допада.
Разбира се нямам и намерение да махам Android-а, дори смятам, че има пълния потенциал да стане пълноправна операционна система. Дори няма нужда да се сравнява с Windows, защото в момента именно Microsoft се опитва да догони Android с Windows 8.

Допълнение, което дори не е по темата, но докато пишех това, Android Market се превърна в Google Play.

Отаблетчих се

От доста време се чудя дали да си взема лаптоп или таблет. Някои може да се учудят, но аз никога не съм имал истински лаптоп (Eee Pc-то ми върши тази работа). Истината е че имам някои „странни“ изисквания, за които до сега не съм намерил лаптоп, който да ги изпълни всичките, като например:

  • най-важното: дълъг живот на батерията (това разбира се е доста относително, но колкото повече, толкова повече)
  • лек (за мен повече от 2-2,5kg си е доста)
  • по възможност със SSD (и отново колкото повече, толкова повече)
  • да не е с Windows (или друга комерсиална ОС, която не харесвам и не искам да давам пари за нея)
  • да е удобен за работа (т.е. поне едно ssh да мога да пусна)
  • и разбира се да не е 3000 лева 🙂

Учудващо дори за мен един таблет успя да изпълни тези характеристики. И това е Asus Transformer – лек, с над 10 часа живот на батерията, с клавиатура и с Android OS (вярно не е Линукс, но и за нея вече има доста приложения). Последния модел Transformer Prime тотално ме спечели с четириядрения си процесор, 32GB SSD и живот с едно зареждане на батериите (и двете) до 18 часа. От както излезе през декември в щатите му бях хвърлил око, но в крайна сметка изчаках да дойде официално у нас и вчера си го взех от тук.

Първите ми впечатления са просто отлични. Красив, малък и не чак толкова лек, колкото очаквах – като цяло стои доста метално. Като се сглоби с клавиатурата усещането е точно като с netbook. А Android-а и всичко за него просто хвърчи. Все пак в момента това е най-мощния таблет на пазара.

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

п.с. Asus някак си успяха да ме спечелят пак и след Eee PC да си взема Eee Pad 🙂 А повечето от междинните им продукти въобще не ме привличаха.

Българска фонетична клавиатура за Garmin nuvi 37xx

След като вчера се сдобих с нов GPS Garmin nüvi 3760t установих че няма клавиатурна подредба за фонетична българска клавиатура. Въпреки че има избор, той се свежда само до стандартна (БДС) и азбучна (АБВГД). Обнових до най-новата версия на firmware-а, но и това не помогна. Учуди ме че и никъде из Интернет не намерих това, което търся. Така притиснат от неволята реших сам да си го направя. За щастие файловете в Keyboards директорията на Garmin-а се оказаха хубави текстови xml-и, които се редактират чудесно с обикновен текстов редактор. Трябваше ми малко време докато схвана синтаксиса, като първо тръгнах просто да добавя нова клавиатура, но явно nuvi-то не поддържа повече от две клавиатури групи за език (една „querty“ и една „alpha“). Затова просто презаписах грубо БДС-то и готово ! За който желае ето модифицирания от мен файл за фонетична подредба – bg_BG.kbd . Просто презапишете файла със същото име в /Keyboards директорията и готово (разбира се първо си направете backup на оригиналния ! за всеки случай). Файла би трябвало да свърши работа за всички GPS-и от серията garmin 3700, но аз съм го тествал само на 3760.
По-късно видях, че могат да се правят няколко вариации на клавиатура в една група, т.е. идеята ми за едновременна поддръжка на БДС и фонетична подредба все пак мисля, че е осъществима. Ако го направя, ще редактирам този пост в бъдеще.

Допълнение 3 сеп 2011 – направих вариант вариант с фонетична и БДС подредби едновременно. Превключват се със нов бутон БДС/ФОН . Освен това малко преподредих клавишите да приличат повече на компютърна клавиатура. Ето новия файл – bg_BG.kbd. Стария вариант (без БДС подредба) може да свалите от тук. Забележка:  случи ми се nuvi-то да презапише новия файл с оригиналния, затова сега си го направих само за четене (read-only) и от тогава не съм имал проблем.

Нов GPS

От както Софито и Жоро си взеха кола, само ме подпитват няма да си взимаш нов GPS ? 🙂 Аз по принцип съм си много доволен от моето nüvi 300, което вече е доста старичко, но с нови карти си върши идеална работа. Само където вече започна да не поддържа големите карти (като на Европа например). С други думи вече се оглеждах за наследник на автомобилния ми навигатор. Разбира се логичния ми избор беше отново Garmin. Миналата седмица се загледах в една от сериите им, която ми направи голямо впечатление още при първото им представяне в Engadget. Именно уникалния дизайн на 37xx серията. Така миналата седмица изчетох доста ревюта, доста видеа … и междувременно видях че в amazon.co.uk е на промоция с над 30% отстъпка (няколко дена по-късно разбра и защо е промоцията – garmin представиха новите си серии навигатори). Всъщност миналата седмица да се чете по-миналата … та по-миналия петък си поръчах един Garmin nüvi 3760t.

Още в петък е пристигнал, но чак днес отидох да си го взема от пощата (така и не разбрах защо не ми го докараха до вратата, но явно за толкова съм си платил). Първото ми впечатление, както и на много други, е че по-скоро прилича на модерен смартфон, отколкото на GPS. С един голям дисплей (4,3″), хубава резолюция (800×480 px) и пълен със сумати екстри (като Lane assist, Junction view, ecoRoute, trafficTrends, Bluetooth …) . И въпреки това без нищо излишно – точно на това се кефя на garmin-ите че са си само GPS и нищо повече. Току що разбрах, че вече са „оправили“ досадната подробност, че файловете с имената на картите трябва да бъдат точно определени, т.е. вече мога да си слагам толкова карти, колкото мога да побера. 🙂 Единствената забележка по спецификацията е че живота на батерията е „до 4 часа“ (т.е. на практика очаквам доста по-малко) 🙁 Все пак nüvi серията е предвидена основно за използване в автомобил. Въпреки, че 3760 поддържа картите от серията cityXplorer, които са за пешеходци и навигира използвайки обществен транспорт.

Като цяло да ми е честито и дано ме води до много нови места безаварийно !

Месец с Gnome 3

Вече почти месец съм с Gnome 3 и ето какви са ми впечатленията, какво ми харесва, какво не, и най-вече какво се надявам да оправят.

Общо взето малко след като излезе официално Gnome3, от ArchLinux го вкараха в extra и знаех че няма да мога дълго да отлагам upgrade-а. А и честно казано ме глождеше лично да го тествам, а не само да чета чужди ревюта. Така една вечер се престраших и изпълних pacman -Syu . Рестартирах … и не тръгна ! Честно казано не се изненадах много, въпреки, че според wiki-то обновяването трябва да е почти безболезнено. Започнах да разследвам и установих че нещо постоянно segfault-ва и графичната среда въобще не тръгва. Не можах да намеря подобен проблем в Интернет и затова започнах да изолирам къде е проблема. Не знам как но по едно време ми хрумна да редактирам xorg.conf-а и да изтрия редовете, в които е конфигуриран втория ми монитор. Дори и за мое учудване – точно това се оказа проблема – само с един монитор всичко си тръгна без проблеми. Ето какво ще загубите при upgrade от gnome 2.x към 3.x :

  • втория монитор – всъщност всякаква поддръжка на няколко монитора е силно пренебрегната в Gnome 3.0 . Според разни форуми хората са успяли да подкарат няколко, но трябва да да с еднаква разделителна способност (което при мен не е така) и май само в mirror режим. С други думи аз чакам истинска поддръжка на няколко монитора, като ми е малко чудно как ще го постигнат като някои неща толкова много зависят от „ъгъла“ и „крайщата“ на екрана.
  • аплетите – gnome 3 има само една лента от горе, която по никакъв начин не може да персонализирате с мишката графично. Ще трябва да редактирате разни CSS и JS файлове някъде из файловата система, като аз все още не знам кои/къде са. Тоест не може да добавяте аплети … ама то и няма 🙁 Мен лично ме е яд за доста от gnome 2.x аплетите с които бях свикнал. Надявам се скоро да се появят аплети за новия Gnome.

Ето с какво ще трябва да свикнете, защото е напълно различно от всичко останало. Това не е задължително да лошо, просто е МНОГО различно в първия момента като попаднете пред Gnome 3

  • няма минимизиране, няма лента с отворени програми ! – Да, в Gnome 3 минимизирането е нещо остаряло (deprecated). Поради тази причина рамката на прозореца няма иконка за минимизиране, нямате и лента където да стоят минимизираните програми … всъщност въобще няма минимизиране. Програмите просто работят някъде във фонов режим. Свиквайте.
  • максимирането го има на практика, но е скрито. В рамката на прозорците няма иконка за максимизиране (в лентата е останала само една – за затваряне). За да направите някоя програма на цял екран трябва да завлачите с мишката лентата със заглавието до горния край на екрана или да кликнете двойно с мишката пак по заглавието (по подразбиране дори няма клавишната комбинация)
  • новия dock за стартиране на програми – появява се като отидете с мишката в горния ляв ъгъл или с ALT+F1. В първия момента е малко стряскащо как всички програми се „разхвърчават“ из екрана и от ляво се появява списък с избрани програми, както и стартираните в момента в програми. Наистина това е голямата разлика в Gnome 3. След месец работа мисля, че започнах да му свиквам и да го използвам за бързо превключване между програмите.
  • виртуалните работни екрани са *само* вертикално разположени – това също беше шок за мен. До сега виртуалните ми desktop-и са били винаги хоризонтално, а сега изведнъж са нагоре-надолу 🙂 Освен това не са фиксиран брой а се увеличават при нужда – т.е. ако използваш всички налични, автоматично се появява още един свободен.
  • ALT+TAB вече е ориентирам към програми – т.е. превключва между различни програми. Ако искате да превключвате между няколко отворени прозореца от една и съща програма трябва да използвате ALT+` (символа над бутона TAB). Между другото вече има extension, който връща старото поведения на ALT+TAB, но аз мисля че в новото има идея

Ето какво не ми харесва в новия Gnome:

  • липса на настройки – това определено е най-големия и основен минус. Има три почти скрити програмки – dconf-editor, gconf-editor и gnome-tweak-tool – с които до някаква степен може да настроите някои неща, но повечето въобще не може да барате. Това за сега най-много ме дразни в Gnome 3
  • ALT+F2 не довършва автоматично имената на програмите – трябва да използвам TAB и то работи само ако е еднозначно

Да спомена все пак какво ми харесва в Gнome 3:

  • красиво е – няма спор от дизайнерска гледна точка са се постарали доста. Всичко гали окото и учудващо върви доста гладко и леко.
  • новите „известия“ – това се чудих дали да го сложа при нещата с които трябва да свиквате, но май си е по-скоро хубаво … и са красиви.
  • интеграцията на всичко – поне малкото неща, които са пренаписани за Gnome 3 са добре интегрирани в средата и изглеждат сходно. Знам че това ще е трудно да се запази, след като всеки започне да пише за Gnome3, но за сега ми харесва
  • лесен за работа – това е малко спорно, но поне според разработчиците са отделили много време да проучат как хората да си свършат работата по-бързо. Обаче за това първо трябва да се свикне със всички новости в интерфейса, което не става веднага. Аз лично се радвам че има развитие в графичния интерфейс
  • стабилен е – за месец работа съм имал едно-две сериозни забивания (да, все пак забива), но си мисля, че това е една наистина стабилна версия

За финал ето какво ми се иска да оправят в най-скоро време:

  • поддръжка на няколко монитора – нещо с което бях свикнал в Gnome 2.x и сега ми липсва
  • аплети, повече аплети … още аплети. И да мога да си слагам бързи бутони (поне за стартиране на програми) в горната лента
  • още теми – сега на практика има само една тема
  • лесно конфигуриране – сега за да намаля размера на лентата със заглавието на прозорците трябва да редактирам файл. Не съм маниак на CSS и JavaScript и се надявам скоро да помислят за „обикновените потребители“ и да може да си настройваме средата лесно

Като заключение искам да кажа, че Gnome 3 по-скоро ми харесва (в проценти бих го изразил като 60 към 40). Надявам се в бъдеще развитието на проекта да се засили и да се добавят нови и нови функционалности. Въпреки негативните страни не мисля да се връщам назад (към Gnome 2) или да погледам настрани (към KDE например). Оставам си на Gnome и се надявам че разработчиците ще оправдаят доверието ми.

Ументелефон

От доста време ми беше ясно, че е въпрос на време да си взема някой умен телефон*. Е, днес се случи. Взех си HTC Wildfire

HTC Wildfire

Общо взето един от най-малките модели, но някак си от вътре не ми дава да дам 500, а какво остава 1000 лева за по-голям/нов телефон. Дори и сега се самозаблуждавам, че това не е телефон а умна джаджа, която евентуално ще ми помогне в комуникацията по интернет, работата и забавлението навсякъде. Взех го втора употреба, но е доста запазен. Човека ми го даде с калъф, протектор и дори стойка за кола. Наистина е неразличим от нов.

Въпреки, че казах че е един от най-малките, на мен ми се вижда огромен ! Още съм като в небрано лозе с Android, но си мисля, че скоро ще се чувствам в свои води. Но все пак ще ми бъде като мини компютър – за GSM телефония ще си използвам добрата стара издръжлива Nokia 1208 и за напред.

Честито ми 🙂

* Smartphone, както е популярно да се казва

Нов телевизор

Както може би повечето знаят, отдавна не гледам телевизия и покрай това съм изпуснал цялото им развитие. Преди няколко дена на нашите им изгоря малкия телевизор в кухнята и решиха да си купят нов. Така днес всички отидохме в един от големите магазини да изберем един. Аз предполагах, че новите телевизори са монитор плюс тунер, но се оказа, че имат още много неща. Имайки предвид, че това е доста малък телевизор (19″) и абсолютно нисък клас, има антенен вход, 2 SCART-а, HDMI, D-SUB, DVI-D, оптичен звуков изход, аудио и видео чинчове, 3,5mm звуков вход, RS-232 … за капак на всичко има USB, където да мушнеш флашка и да си гледаш снимки и да слушаш музика. Има и цифров тунер, което ни беше единственото изискване, защото се говори, че от догодина в целия ЕС трябва да се излъчва само цифрово. А телевизора си е и напълно функциониращ монитор, дори има бързо копче на дистанционното за превключване на режимите TV/PC. Само Wi-Fi май няма 🙂 Ако можеше и да boot-ва от USB-то направо не ви трябва компютър. Прогнозирам, че в скоро време и това ще стане. За сега наистина съм учуден до къде и в каква посока са се развили телевизорите. Ако наистина се интересувате взехме LG модел M197WDP. Сега му разглеждам ръководството (на български) от CD-то и приятно впечатление ми прави, че са си описали дори сервизния протокол по RS-232, както и IR кодовете на дистанционното.