Постове 1 - 5 от 14 в категория Web

Jan 31

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

Понеделник 25.01.2010

Yehuda’s – evented programming with jQuery – това се явява като (макар и само косвено) продължение на Creating UI Elements With Low-Coupling And Conditional Event Handling, за което писах миналата седмица. Което за пореден път ми показва, че май javascript компонентите на там са се насочили.

In praise of git’s index – много добра статия за git index-ите.

Вторник 26.01.2010

The Path to Rails 3: Approaching the upgrade и rails-upgrade: Automating a portion of the Rails 3 upgrade process. Rails 3 е почти готов след малко повече от година разработка. И от където и да го погледнеш си е огромна стъпка на пред, даже няколко. В постовете се обяснява за проблеми и съвети при преминаването към Rails 3.

JRuby за Аndroid – време беше. Как ви се струва едно ruby приложение за телефон през JRuby за Android, през MacRuby за iPhone и … (не че някой ще ползва windows mobile), но IronRuby за Windows Мobile. Преди време си бях говорил с познати за такава идея и че на теория е възможно (а според тях на практика не). Но това е още една стъпка в тази посока. Въпреки че анатомиите на iPhone / Android приложенията са доста различни, все повече си мисля, че е възможно да стане нещо такова.

Answering Baranovskiy’s JavaScript quiz – Явно Вторник е бил доста мързелив ден.  Nicholas C. Zakas показва отговорите на js теста на Dmitry  Baranovskiy. Аз с радост мога да се похваля, че само за единия въпрос се подвоумих малко (на този с arguments[2] = 10).

Сряда 27.01.2010

Put that data-* attribute away, son…You might hurt someoneDan Webb е страшно уважаван от мен дивелопър. Беше част от PrototypeJs Core и беше работил по един от първите Rails плъгини за Unobtrusive JavaScript. Да не говорим колко идеи почерпих от неговата LowPro за моя CD3.Behaviors.  За нещастие, доколкото разбрах, вече работи главно с jquery.

Но да се върнем на темата, че малко се отнесох. Тук той обяснява за data-атрибутите и че колкото и да са яки, не трябва да се използват прекомерно. Поста му се явява като отговор на Yehuda’s – evented programming with jQuery.

Четвъртък 28.01.2010

Emile.js talk (video & slides)Thomas Fuchs обяснява неговия mini css animation framework – Emile.js. Който е само 51 реда (+ празните редове и Copyright-а :) ). Много полезно и абсолютно задължително за тези, които не искат цял живот само да ползват неща, които не разбират.

Why Arel – ActiveRecord 3.0 ( който е част от Rails 3 ) е изграден върху Аrel. Като наскоро  излезе и Active Record Query Interface 3.0. Но какво е Arel, ами Relational Algebra (и моята първа реакция като го чух беше – ЪЪъъ). В поста се обясняват мотивите за написването на Аrel. Важно е да се каже, че Arel е напълно отделно от Rails и може се ползва независимо.

The HTML 5 sandbox Attribute Improves iFrame Security – Една от критиките към html5 е, че не помага на този етап за сигурността на мрежата. Това е една малка стъпка напред. Жалко, че май никой не е чувал за <module> тага предложен от Douglas Crockford още в далечната вече 2006.

New ActionMailer API in Rails 3.0 – Голямото пренаписване в Rails 3 върви с пълни сили и сега ActionMailer си намери майстора. (Все пак май ActionMailer си е като недоносеното дете в Rails пакета).

Петък 29.01.2010

По-рано през седмицата Apple обявиха така дългоочаквания iPad. И общо взето никой не го харесва. Като за мен си е просто играчка. На който ако и бяха сложили просто MacOsX щяха да разбият всички, но такъв е живота. Общо взето в Петък имах много работа и нищо интересно не ми попадна. Само 2-3-4… статии за iPad. Всичките еднакви от една страна Apple хейтърите го нареждат от всякъде, Аpple феновете леко разочаровани, поради големите очаквания и само неутралните наблюдатели с положителни оценки (леко резервирани, но положителни като цяло).

Бонус

Седмицата беше много изморителна и затова нямах много време да си прегледам Google Reader-a (все още имам към 200 не прочетени статии). Затова чак днес видях серия от 3 поста от Amix, създателят на Todoist и Plurk, и първият блог, който започнах да следя.

Накрая ще сложа едно футболно клипче, на което попаднах тази седмица, за голове вкарани чрез отборна игра:

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). :)

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

Apr 27

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

http://twitter.com/rstankov

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

Feb 27

Наскоро намериx този сайт – www.backtype.com (драфта на този пост е от 9ти Февуари).
Това е социална мрежа за коментари, която събира всеки ваш коментар (или почти всеки) в Интернет на едно място. Като разбира, че даден коментар е ваш по url-то, което сте сложили към коментара. Което е много интересно и плезено защото, на ден минавам през толкова места, че е трудно да се помнят всичките.

backtype

Как я намерих ? Ами оказа се че вече имам профил там, или по-точно next.pixeldepo.com имаше профил там – http://www.backtype.com/url/next.pixeldepo.com и освен ако next не е почнал на своя глава да се регистрира тук и там, значи backtype автоматично събира url-ta по коментарите. Поиграх си малко с това http://www.backtype.com/url и някои сайтове които следя и се оказа че е второто.
След като се регистрирате, може да си кажете от кои сайтове са ваши и съответно когато оставите коментар и в който слагате съответната връзка бивате прихванат. В случаи, че нямате сайт може да ползвате служебна връзка от backtype – http://www.backtype.com/{$username}, като {$username} е вашето потребителско име. Много полезна функция са “Alerts”, която ви праща e-mail съобщение всеки път когато някой коментира след вас някъде.  Също така могат да бъдат следени вашите коментари от twitter, digg, facebook и други. Backtype притежава и developer API и готови widgets.

Като цяло има доста интересни идеи в backtype.com, въпреки че има някои малки проблеми, но  никои не е съвършен. До колкото разбрах самото приложение е стартирало от Август 2008, която значи че е и доста ново, но определено има потенциал.

Едно обаче ми направи много лошо впечатление, а именно че по никакъв начин не потвърждаваш, че примерно next.pixeldepo.com e твой сайт, и дефакто абсолютно всеки може да да си го вземе. С което може да стават доста Identity Theft Attacks, но като се замисли човек в Internet, това са едни от най-лесните атаки. И много скоро очаквам да има развитие по този въпрос.