Как добавить иконку JetBrains PhpStorm

В Ubuntu, после установки PhpStorm, не создается иконка запуска.
Решается это просто:

  1. Запускаем PhpStorm

  2. Выбираем в меню Tools → Create Desktop Entry...

  3. Далее жмем OK

Готово!

Photoshop экшены для верстальщика

Рассмотрим полезные экшены (проще говоря макросы) Photoshop для облегчения работы верстальщика с макетами.

Какие действия мы делаем чаще всего? Режем!

Скачать экшены

Обрезаем прозрачные областа картинки


Подготовка картинки с прозрачным фоном

Image → Trim...
Based On: Transparent Pixels
Trim Away: Top, Left, Bottom, Right


Обрезаем однотонные области картинки (например иконка на белом фоне)


Подготовка картинки с цветным фоном

Image → Trim...
Based On: Bottom Right Pixel Color
Trim Away: Top, Left, Bottom, Right


Для вертикального градиента делаем шинину 1px


Подготовка градиента

Image → Canvas Size...
Снимаем галку "Relative", в поле "Width" пишим "1".

Совет: помните, что дешевле всего вертикальные градиенты хранить в PNG-24

PHP настройка временной зоны (date.timezone)


Ошибка возникает, если не настроена временная зона для PHP:
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Dubai' for 'GST/4,0/no DST' instead in /Users/vovan/blah-blah-blah/vars.class on line 43

Ищем как правильно пишется наша зона на офф сайте: Список поддерживаемых временных зон

Теперь внесем правки в конфиг PHP. Чтобы найти где он расположен, воспользуемся командой locate:
$ locate php.ini
/Applications/Zend/ZendStudio-5.5.0/bin/php4/php.ini
/Applications/Zend/ZendStudio-5.5.0/bin/php5/php.ini
/Applications/Zend/ZendStudio-5.5.0/bin/phpdocumentor/php.ini
/Users/vovan/php.ini
/opt/local/etc/php5/php.ini
/opt/local/etc/php5/php.ini-development
/opt/local/etc/php5/php.ini-production
/opt/local/etc/php5/php.ini.bak
/private/etc/php.ini.default
Редактируем наши настройки:
$ sudo nano /Users/vovan/php.ini
Включаем поиск: Ctrl+w, пишим слово zone, жемем Enter:
[Date]
; Defines the default timezone used by the date functions
;date.timezone =
Раскомментируем строку с настройкой, и вставляем нужную зону:
[Date]
; Defines the default timezone used by the date functions
date.timezone = "Asia/Dubai"
Перезапускаем апач:
$ sudo apachectl restart

Баннеры на фоне сайта


Как поставить баннеры на фон страницы сайта? Без горизонтальной прокрутки? Элементарно: [link].

Пример полностью скопирован с Яндекса.

Быстрая диагностика HTML кода

Отображение недочетов на странице

Часто бывает так, что по окончании процесса верстки и сборки сайта, забываешь проверить код на наличие недочетов. Таких как ссылки со значением атрибута href="#" или логотип без тайтла.
Именно для поиска таких мест и придумали диагностические css стили.

Так как каждый раз вставлять руками данный стиль дело довольно расточительное, я написал букмарклет кнопочку для браузера, нажав которую, вы увидите все самое интересное.
bug!

javascript:(function addStylesheetRules(){var decls=[['div:empty,span:empty,li:empty,p:empty,td:empty,th:empty',['padding','20px'],['outline','5px dotted yellow',true]],['*[alt=""],*[title=""],*[class=""],*[id=""],a[href=""],a[href="#"]',['outline','5px solid yellow',true]],['applet,basefont,center,dir,font,isindex,menu,s,strike,u',['outline','5px dotted red',true]],['*[background],*[bgcolor],*[clear],*[color],*[compact],*[noshade],*[nowrap],*[size],*[start],*[bottommargin],*[leftmargin],*[rightmargin],*[topmargin],*[marginheight],*[marginwidth],*[alink],*[link],*[text],*[vlink],*[align],*[valign],*[hspace],*[vspace],*[height],*[width],ul[type],ol[type],li[type]',['outline','5px solid red',true]],['input[type="button"],big,tt',['outline','5px dotted #33FF00',true]],['*[outline],a[target],table[cellpadding],table[cellspacing],*[name]',['outline','5px solid #33FF00',true]]];var style=document.createElement('style');document.getElementsByTagName('head')[0].appendChild(style);if(!window.createPopup){style.appendChild(document.createTextNode(''));}var s=document.styleSheets[document.styleSheets.length-1];for(var i=0,dl=decls.length;i<dl;i++){var j=1,decl=decls[i],selector=decl[0],rulesStr='';if(Object.prototype.toString.call(decl[1][0])==='[object Array]'){decl=decl[1];j=0;}for(var rl=decl.length;j<rl;j++){var rule=decl[j];rulesStr+=rule[0]+':'+rule[1]+(rule[2]?'!important':'')+';\n';}if(s.insertRule){s.insertRule(selector+'{'+rulesStr+'}',s.cssRules.length);}else{s.addRule(selector,rulesStr,-1);}}})();void(0);

Функцию вставки стилей я взял с сайта MDN [link] и немного обфусцировал.

SVN открыть в редакторе все конфликты

$ svn st
C    about.html
C    css/style.css
C    index.html

Для решения конфликтов после мержа, я использую NetBeans, в котором, собственно и работаю над проектами. Чтобы не открывать конфликтные файлы по-одному, сделал небольшой алиас:

alias stcn="svn st | awk '/^C/{ print \$2 }' | xargs '/Applications/NetBeans/NetBeans 7.1.1.app/Contents/Resources/NetBeans/bin/netbeans' -J-Dline.separator=LF"
Под катом описание работы скрипта.

Проблема схлопывания при float: left


Есть несколько способов борьбы со схлопыванием родительского блока.
Пример проблемы

Обновлено(20.7.12): классический clear_fix заменен на group

My Book Live Ubuntu бэкап

  1. Настраиваем статический IP для хранилища Настройки → Сеть (но лучше сделать это через маршрутизатор, а на хранилище оставить DHCP).

    Настройка статического IP

Букмарклет для перехода на главную страницу


Часто надо перейти на главную страницу сайта. Для этого приходится убирать лишнее в адресной строке.
Но и такую тривиальную задачу можно повесить на отдельную кнопочку:
Home
javascript:window.location.href=window.location.protocol+'//'+window.location.host;void(0);

И, чтобы быстро зайти в админку, находясь на любой странице сайта:
Admin
javascript:window.location.href=window.location.protocol+'//'+window.location.host+'/admin/';void(0);

Новинка: Теперь вы можете в более удобной форме сгенерировать для себя похожую кнопочку. Под катом находится форма генератор. Жми Читать дальше: