Постове 1 - 5 от 25 в категория good

Jan 24

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

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

Понеделник 18.01.2010

A successful Git branching modelОт доста време вече ползвам само git и съм супер доволен от него. Въпреки това все още ползвам само една малка част от възможностите му.  Затова този пост ми беше много полезен.

Jemini – В Понеделник попаднах и на Jamini това е (J)Ruby famework за правене на игри. Нещо което ми беше мечта когато за пръв път започнах да пиша код.

Вторник 19.01.2010

Creating UI Elements With Low-Coupling And Conditional Event Handling – Не използвам jQuery, но понякога от там излизат доста полезни неща. Този пост на Ben Nadel като цяло е много полезен. Основната идея да се използва нещо като MCV и event архитектура и така да се правят компоненти които взаимодействат по между си, но без да знаят, че го правят. Като от личен опит мога да кажа, че правенето на компоненти които взаимодействат само с custom event-и по между си е страшно яко.

За развитие на темата бих препоръчал и да се гледа Satyen Desai — A Widget Walkthrough, от yahoo винаги са правили страхотни видеота.

Cappuccino On Rails – това не е от Вторник, но тогава го видях. А Cappuccino ( и  SproutCore ) са два проекта, който следя с особен интерес. Още повече интеграцията им с Ruby става все по-лесна :)

Сряда 20.01.2010

Stanford’s Entrepreneurship Corner: David Heinemeier Hansson -  От Stanford Entrepreneurship Corner винаги са вадили интересни материали ( все пак са Stanford ). Забавно беше и началото, един монотонен глас съобщи – “Този запис, може да съдържа език не подходящ за всеки” :D

Интересно беше да го слушаш това и да учиш за поредния безсмислен изпит.

Четвъртък 21.01.2010

Четвъртък го прескочих, все пак учих за изпит, или поне се опитвах. Въпреки това:

Firefox 3.6 is here! – новата версия е тук. Като потребител това което ми харесва е че се усеща колко по-бърза. Също така все повече почва да свиквам с това че като дадеш “open in new tab”  табулацията се отваря до сегашния ти там. Като разработчик няма как да не се зарадвам на CSS3 градиентите, Drag and Drop и File API -то.

Петък 22.01.2010

Fuseboxjdalton направи серия от четири видеота за това какво представляват sandboxed natives и как той ги е реализирал. Като в края на седмицата пусна и самия Fusebox, което е част от от FuseJs, за която все още няма много информация освен че скоро ще се появи. И като гледам списъка с хората които работят ще е нещо добро.

И на края искам да сложа едно видео на Louis CK – “Everythings amazing nobody is happy” ( което го видях от презентацията на Dion Almaer от JSConf – Future of the Web )

Jul 02

Получих покана от Веселин Тодоров да участвам в инициативата подхваната от Марио Пешев за това как протича една работна седмица.

Добре, че ме хвана след края на семестъра, защото когато трябва да посещавам университета, програмата ми е много странна и разпъната. И е тясно свързаната с програмата от университета. Сега след края на семестъра, вече не работя дистанционно от Варна. И от около една седмица съм в Добрич и ходя работа в офиса на pixeldepo, където работя.

kancelarijaubuducnostiru2

Така, как протича един мой работен ден? Или поне как най-вероятно ще протича, базирано на това как мина тази седмица и как беше миналата и по-миналата година.

Ставам към 9 – 9.30

Едно от нещата, който наистина много мразя е да ставам рано (за мен 7 сутринта е време за лягане не за ставане). Будилника ми е настроен да звъни на три пъти – 9.00 / 9.10 / 9.25 и обикновено до към 9.30 съм станал. В следващите 20-30 минути, в зависимост кога съм станал имам време за душ, закуска и други подобни. В 10 часа вече съм тръгнал за офиса или ако шефа минава покрай нас по това време ме качва до офиса.

Начало на работния ден към 10.05 – 10.15

Офиса е на буквално 5 минути път от вкъщи(то маи в Добрич всичко е на 5 минути). Лошото е, че се минава през един доста стръмен баир. Но няма перфектни неща. И така към 10.10 съм вече на работа.  Първото нещо което правя е да проверя дали има спешни неща за правене до обяд и какво има да се прави като цяло за деня. Ако има нещо спешно се работи по него. Но когато няма, идва ред на “прегледа на печата” и на задачите – GMail / Basecamp / GReader / Twitter / Todoist / Taskar.  От там си заделям неща, за обедната почивка или video-та за слушане докато работя по нещо по-просто. Общо взето в преди обедния период не съм много продуктивен.

Периода между 11 – 12 часа

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

Обедна почивка между 12 – 13 ~ 13.30

В общия случаи има два варианта за обедната почивка. Първия е да отидем някъде с нечия кола да обядваме навън с колегите. А Втория вариант е да “магазиним” ( т.е. ходене до магазина) и после да се обядва в офиса докато се четат / гледат / препращат / обсъждат нещата които са били отбелязани в “прегледа на печата”.

Същинската работа 14- 17.30

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

Около 17.30 – 18.00 когато е края на работния ден пак намалявам оборотите. За да видя дали ще може да се остане в офиса след работно време до към 19 ~ 19.30 ~ 20 примерно. Защото обикновено ни “гонят” в 18 от работа (колкото и странно това да звучи).

Ако се остане след 18.00 пак имам пик в продуктивността, съпоставим с периода 14 – 17.30. Това си го обяснявам с това, че в офиса оставаме най-често аз и Добромир Райнов и климатиците, които вече не трябват, не бучат. И целия офис излъчва някакво спокойствие и уют по това време.

След края на работния ден

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

Събота – Неделя

Още не знам какво ще правя тези дни. Най-вероятно Събота ще спя до обяд. Ще ходя да се видя някои друг познат във Варна. Ще работя по някои личен проект или opensource проект. И ще блогвам сигурно. Но времето ще покаже.

Станков Live

По план от другата седмица в Сряда започва втори сезон на “Станков Live”. Това е малко нещо което правя всяка сряда някъде между 12.30 ~ 14.30 на работа. Тогава събирам колегите и говорим (т.е. главно аз говоря) за нови технологии, методологии и други интересни неща около последните проекти. Като цяло си обменяме опит и си сверяваме часовниците.  Поне от миналогодишния сезон си мисля, че доста добри неща произлязоха от това. Надявам се тази година да съм по-добър :)

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

Тъй като инициативата е готина предавам щафетата на всеки, които я иска :) Малко късно се включих и затова много хора вече са писали доста интересни неща.

May 23

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

Доста кампании съм виждал който се опитва да насърчат хората да гласуват, който явно са нямали успех.  Аз Гласувам! ми се вижда малко по различна от типичните подобни кампании и се надявам да има успех.

Колкото и да не ми харесва да пиша или да се занимавам с политика, това като се замисля това не е политическа кампания.

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

Накрая ще сложа и връзка, към една агитационна реклама от 2008:

May 02

Вчера отделих целия ден да направя някои промени по блога, като основно имах доста забележки към темата (iTheme), която ползвам.

Първо започнах да правя малки промени по дизайна

  • сложих да се виждат таговете към даден пост
  • промених (с малко помощ от колега) изцяло извеждането на коментарите
  • формата за добавяне на коментар претърпя малки графични промени
  • тема вече е изцяло на български език (тук таме може да е останало нещо чуждоезично, но малко по-малко що променям)
  • доста по-добра 404 страница, за която използвах от Google Webmaster Tools - Enhance 404 pages
  • промени извеждането на постовете при търсене.

Аз в мрежата

После започнах промени по секциите

  • Добавих нова страница “Аз в мрежата“, в която има информация за част от различните ми регистрации из мрежата. Скоро ще има още връзки, просто на този етап нямам подходящи лога за тази страница (трябваше да има и страница “Аз съм”, но за нея не остана време :( )
  • Добавих “Подобни постове” към всеки пост, като за него използвам плъгина Contextual Related Posts
  • Изтрих от sidebar-a мета информацията и на нейно място сложих таговете в сайта
  • Преминах през Google Webmaster Tools и пооправих някой връзки в сайта, които не работеха, също така промених и няколко meta description-и и други дребни неща

Промени по кода

И след това започнах да работя по интересната част. Докато оправях темата забелязах, че колкото и да е красива от долу като код е просто … ужасна. Още повече самия Wordpress не използва нещо като Smarty, и го кара на голо php (в този пост – “Be smart with smarty“, съм си казал мнението за Smarty). Всички шаблони на темата общо взето изглеждаха така:

<?php get_header(); ?>
	<div id="content">
		// кода за съответния шаблон
	</div>
	<div id="footer">
		<a href="...">WP Theme</a> &amp;
		<a href="...">Icons</a> by <a href="...">N.Design Studio</a>
	</div>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

след малко refactoring в шаблон кода стана така, като преместих общите части в хедъра и футера:

<?php get_header(); ?>
	// кода за съответния шаблон
<?php get_footer(); ?>

Мина ми през главата, дали да не направя някои плъгин за Wordpress, който позволява ползването на Smarty и/или layout файлове, подобни на тези които използвам от години в ControlDepo и които ги има в Rails, но в крайна сметка реших, че през лятото най-вероятно ще мина на някое мое блог решение.

След като подредих  и пренаписах шаблоните, се насочих към самата html структура, в която беше пренебрегнато ползването на ul елементи и други дребни неща който ме дразнеха. Но най-големия проблем от който най-вероятно страда доста SEOто на NeXt е че липсваше h1 елемент (т.е. имаше го но просто винаги беше просто NeXt), а той трябва все пак да е заглавието на самата страница.

JavaScript / CSS / Images

Поради използването на много плъгини се беше натрупало огромно количество външни javascript и css файлове, което много вреди на цялостното зареждане на сайта. Така че минах и събрах всичките css файлове в един all.css (останаха само print.css и css файловете от Highlight Source Pro плъгина, но там още не искам да пипам).

С JavaScript нещата седяха малко по сложно поради това че използвах plugin за live търсенето и за още 2-3 малки неща, решението беше да се отърва от всички плъгини и да си напиша собствени версии използвайки ControlDepo 3 Widgets.  От него използвах тези компоненти:

Отделих javascript-a в два файла – all.js и frontend.js ( както права във всичките си проекти напоследък ), Във all.js са библиотечните файлове – Prototype, Script.aculo.us, no.ie6.js, ControlDepo 3 Widgets а във frontend.js са скриптовете специално за блога ми livesearch, widgets и други малки javascript глезотии. По-важното е в случая е това че вече имам стабилна основа върху която да надграждам в бъдеще.

Всички javascript файлове са най-долу, така че няма смисъл да правя dom:loaded а мога директно да изпълнявам кода си. Също така вече и целия код е unobtrusive, и поне на този етап ако даден посетител няма javascript или му е изключен, всичко в сайта ще си работи.

Последната стъпка беше оптимизацията на снимките за това използвах просто ruby gem-a – smusher, който прекарва всяка снимка през smush.it. Така отстраних с около 40 KB размера на всички картинки от блога.

Финални думи

Като цяло за себе си съм си доволен от работата, която свърших по блога. Останаха някои неща за бъдещето:

  • live comment preview
  • най-сетне да имам about страница
  • да взема под IE да видя как се вижда NeXt
  • да се по съберат снимките в css spirites
  • почистване на css файловете, т.е. изтриване на излишните стилове и оптимизация
  • gzip на css / javascript файловете

п.п. от цялото тази работа около Wordpress, ми хрумнаха две идеи за plugin, първия да е Smarty, а втория да е нещо подобно на sprockets което събира всички css / javascript във един файл gzip-ва го, добавя му etags и т.н. Незнам дали е възможно да се направи такова нещо с Wordpress, ако някой има желание за нещо такова, с удоволствие бих му помагал.

May 01

p2p

На 25-26 този месец (т.е. вече стана миналия месец :) ) имах удоволствието да присъствам на  p2p конференцията във Велико Търново. Пиша този пози пост около седмица след събитието, отчасти защото исках да мине малко време от него и отчасти защото времето е дефицит в IT света.

Първия ден малко закъсняхме, защото с колегите от Pixeldepo тръгнахме от Добрич рано сутринта, затова малко изтървахме началото на лекциите. Групата ни се раздели на две – едните на WebTech частта, а другите на БлогКампа. Аз естествено избрах WebTech. Бях изпуснал първите две лекции, но бях дошъл точно на време за най-интересната – Защо Ruby on Rails, представена от Стефан Кънев (с който се запознах на другия ден). Просто страхотно представи Ruby on Rails и дано да е успял да убеди повече хора да пробват Rails. Аз лично за мен съм си решил, много преди p2p, че това лято ще мина изцяло на Rails. Тук има връзка към слайдовете и няколко полезни връзки от блога на Стефан Кънев. Жалко, че няма видео на лекцията. Малко лошо впечатление ми направи, че в цялата зала само 5 – 10 човека бяхме чували за github и други известни приложения. Следващите две лекции лично аз малко ги проспах, защото бях спал само 2-3 часа през нощта. В блога на Калоян Цветков (с който за малко се разминахме да се запознаем на живо) има доста повече информация за първия ден.

БлогКамп

БлогКамп-а доколкото ми разказаха е бил доста по активен и са се дискутирали много интересни неща. Лошото е било, че времето малко не стигнало, но както споменах по-горе времето винаги не стига. :)
След края на лекциите с колегите се настанихме във “Възрожденска къща, в подножието на Царевец” и се срещнах с няколко стари познати от ученическите ми години (малко как го казах написах, като че ли не са били преди 3 години, а преди 30 :-p ). Заради тези срещи и заради краткото Звук и Светлина, бях за съвсем малко на after party-то в клуб Jack и изтървах да се видя с Любомир Петров, с който от 4 години не се бяхме виждали ( добре, че поне на другия ден, се видяхме).

Втори ден

Втория ден бях изправен пред дилемата на кой поток да отида – на WebTech или Web 2.0/3.0. Беше много тежък избор, много исках да видя Щастливият програмист, на който Стефан Кънев пак е разказал играта на присъстващите. А и Сигурност на уеб-приложенията и Software Design Patterns също звучаха добре. Но все пак предпочетох Web 2.0 и мисля, че не сбърках.

Web2.0/3.0

Web2.0/3.0 започнаха с раздаването на ozone наградите, които очаквано бяха спечелени от “никому непознатите” svejo.net. На второ място остана client.bg, който спечели и наградата на публиката, каса бира, която така великодушно раздадоха (даже и аз успях да се уредя). Лекцията “Пътят на блогъра от соушъл буукмаркинг системи към изграждане на собствени общества”, която бях подценил се оказа доста силна, даже почти ме убедиха да ползвам favit.bg. Беше една от тези eye-opening лекции, за която знаеш много неща, но когато ти го систематизират, кажат на куп и ти го поднесат по интересен начин, ти светва лампичката в главата. :)

Как да съсипем сайта си за 3 минути

След това дойде и “Как да съсипем сайта си за 3 минути”, която продължи малко повече от 3 минути и беше за SEO, представена от Огнян Младенов, който както винаги беше на ниво. Взех си няколко бележки за блога и за проектите ми като цяло. Въпреки, че Pixeldepo, не предлагаме SEO като услуга (май сме едни от малкото, както каза и самия Огнян Младенов) ние правим нещо, което аз обичам да наричам SEO Driven Development, т.е. правим сайта максимално SEO достъпен и след това когато истински SEO специалист започне да си върши работа по сайта да е максимално улеснен.

Мислех да пиша за 1-2 неща, които не ми харесаха, но реших да си го спестя, защото стига с тези критики и негативизъм. Всичко беше на шест. Едно браво на организаторите.

Това са ми основните впечатления, много се радвам, че можах да присъствам на p2p, от която научих много полезни неща и си прекарах страхотно. Така че нямам търпение за следващата подобна конференция (примерно p3p). :)

п.п. Даже много ми се иска на следващата конференция и аз да водя някоя лекция. :)