Блоги

Главное – не слушайте пользователей

Для того, чтобы создать простой в использовании интерфейс, обращайте внимание на то, что пользователи делают, а не на то, что они говорят. Не судите о сайте по претензиям, которые высказывают пользователи, а также не полагайтесь на их размышления по поводу возможных вариантов своего поведения.

В последние годы самым главным препятствием на пути распространения юзабилити являлась высокая популярность крутого навороченного дизайна. К счастью, красочный дизайн проиграл, а приверженцы юзабилити добились своей первой и самой тяжелой победы: компании теперь обращают на юзабилити больше внимания.

К счастью, выиграв битву против противников юзабилити, мы так и пока еще не выиграли битву против сложности. Перед нами теперь просто новая линия фронта: теперь необходимо добиться, чтобы компании реализовывали правила юзабилити правильно.

Раздельный вывод primary и secondary tabs в drupal

Если надо разнести главные и вторичные табы по странице или добавить какое-нибудь оформление к табам раздельно, можно использовать следующий метод.

В данном примере я добавляю div tabs-wrapper только ко вторичным табам.

Lightbox z-index 10500

Обнаружил, что в очень распространённом модуле Lightbox2 устанавливается свойство css z-index в 10500. Примечательно, что это встречается не только у друпаловского лайтбокса.
Интересно, почему не 100500?
Какими-то рекомендациями по css запрещено больше разрядов?
Хотели написать 100500 но ошиблись в одном нуле?

Как удалить дубликаты файлов в unix

Недавно решал такую задачу, используемые shell-скрипты нестабильны, зависят от платформы и довольно сложны.

Утилита fdupes подходит идеально, одинаково работает на freebsd и linux, внятный синтаксис.

Установка fdupes для freebsd:
cd /usr/ports/sysutils/fdupes
make install

Типовое использование. Удаление файлов в текущей директории.
fdupes -dN .
Расшифровка:
-d удаление
-N без подтверждения (останется только первый найденный файл из дублируемых)
. - директория (текущая)

Другие особенности - в хелпе и гугле :)

Немного о вегетарианстве

Когда семидесятилетнего Бернарда Шоу спросили о его самочувствии, то он ответил:
"Прекрасно, прекрасно, только мне докучают врачи, утверждая,что я умру, потому что не ем мяса".
Когда же к девяностолетнему Шоу обратились с тем же вопросом, он отвечал: "Прекрасно. Больше меня никто не беспокоит. Все врачи, которые мучили меня, утверждая, что я не смогу прожить без мяса, уже умерли".
Бернард Шоу умер в возрасте 94 года.

Пара приёмов photoshop для ретуши портретов

Лечащая кисть
25 пикс
жесткость 100%
Интервалы 1%
Угол 144'
Форма 85%

Контурная резкость на красном
Эффект 152%
Радиус 3,0 пикс
Зеленом 111%
Радиус 1,0 пикс

Какие стандартные шрифты легче всего считываются глазами

Сухой факт

Лучше всего из стандартных шрифтов глазами считываются:

  • С экрана - Verdana 10-12pt (затем Arial и Tahoma)
  • В печати - Times New Roman, Georgia (потенциально другие с засечками, Courier?)
  • Также хорошо воспринимается Helvetica (в рекламных материалах, заголовках). При плотном тексте воспринимается хуже.

Для справки. Общее правило для семейств шрифтов такое: serif шрифт для печати, sans-serif для экрана.

Как добавить пользователя и новую базу данных в MySQL с консоли

Как-то так:

Логинимся под рутом в MySQL
mysql -uroot -p

Создаём базу:
CREATE DATABASE ;

Добавляем пользователя, задаём пароль и даём права на базу :
GRANT ALL PRIVILEGES ON .* TO 'my_user'@'localhost'
IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Для того чтобы выставить новому пользователю полные права на все базы данных используем следующую команду:

GRANT ALL PRIVILEGES ON *.* TO 'my_user'@'localhost'
IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Доступ к базе для данного пользователя возможен только с localhost. Если вы хотите дать ему доступ к базе с любого хоста, используете % вместо localhost:

GRANT ALL PRIVILEGES ON .* TO 'my_user'@'%'
IDENTIFIED BY 'my_password' WITH GRANT OPTION;

JQuery hide/show with cookies

$('a.show').hide();

$('a.hide').click(function(){
$('h2.title,.view-header-latest').add(this).hide();
$('a.show').show();
$.cookie('hideShow', 'hide');
return false;
});

var hideShow = $.cookie('hideShow');
if (hideShow=='hide') {
$('a.hide,h2.title,.view-header-latest').hide();
$('a.show').show();
};

$('a.show').click(function(){
$(this).hide();
$('a.hide,h2.title,.view-header-latest').show();
$.cookie('hideShow', 'show');
return false;
});

if (hideShow=='show') {
$('h2.title,.view-header-latest').show();
};