Вести с торсионных полей

Recent Entries

2/22/12 02:23 pm - Напишу-ка я о чём-нибудь хорошем

Я недавно открыл для себя Twitter Bootstrap. (Очень жаль, что только сейчас, а не полгода назад). Теперь для простых страничек мне не требуется писать CSS вообще: базовая сетка есть, базовые стили текста / заголовков / списков / таблиц есть, и всё это хорошо работает с разными размерами экрана, на мобилках и даже на IE7.

Отдельно хочу упомянуть, что писать CSS вручную — сакс и маст дай, потому что есть LESS. (Ну, или SASS, кому как нравится). Через какое-то время вёрстки с применением переменных и mix-in'ов вдруг понимаешь, что иначе верстать большие проекты никак невозможно, иначе — спагетти и write-only код.
Tags:

10/28/11 04:59 pm

Сотни ненависти к Drupal'у!

Важно правильно понимать, что такое Drupal на самом деле. Так вот, это штука, на которой можно быстро и без напряга набросать работающий прототип сайта, и всё. Точка. Особенно прошу обратить внимание на слово ПРОТОТИП. Это значит, что работать будет, но потом всё равно придётся переделывать. Это значит, что этой хуйнёй НЕЛЬЗЯ пользоваться в production'е. Эта хуйня просто не предназначена для длительной эксплуатации. На Drupal'е легко делать темы оформления, но обновлять и поддерживать его чудовищно трудно. Люди, которые занимаются релизами Drupal'а, нихрена не соображают в контроле качества, гореть им в аду. Аминь.
Tags:

4/18/11 06:32 pm

<Fester>  http://dev.w3.org/html5/postmsg/ kurwa!!
<Fester>ну и чтобы охуеть: http://www.w3.org/TR/workers/
<Fester>ganja_spirit: я не знаю как ты, а я себя сейчас почувствовал совсем дремучим и не вебным дедом.
<ganja_spirit>Fester: я тоже. и я написал про это в твиттер.
<Fester>ganja_spirit: ты предал дух старпёрства.
<Fester>в твиттер. тьху!
Tags: , ,

1/21/11 02:04 pm

Коллеги, кто умеет правильно оформлять <input type=file>? Я пользуюсь стандартным трюком: сделать input прозрачным (полупрозрачным для отладки) и расположенным поверх фейковой кнопки, вот как-то так. По идее, input будет невидим, но вполне кликабелен. Firefox/Chromium/Opera показывают всё как надо.

Проблема в юзабельности получающегося костыля, а именно — в самой возможности пользоваться таким input'ом: моя Opera «правильно» реагирует (открывает диалог выбора файла) только при клике по кнопочке «Browse…», а если кликнуть чуть левее и попасть на строку ввода, то нужной реакции не будет. Где-то будет мигать невидимый курсор в невидимой строке ввода, юзер будет страдать, а я получу баг-репорт. Вызов из JavaScript'а метода click() в адекватном браузере работать не должен, как мне подсказывает моя параноя. Подскажите, как обойти эту особенность Оперы.

Нестандартные элементы управления — вообще-то зло и я их не люблю, но уж если надо с ними работать, то можно ли как-то уменьшить их вред?
Tags:

7/20/10 08:03 pm

<ganja_spirit>  а в рамках HTML5 вообще можно нести любую чушь.
<Fester>не совсем любую
<Fester>data-любую
<ganja_spirit>Fester: http://twitter.com/mollydotcom/status/18795108389
<Fester>zomfg
<Fester>я даже не знаю, чем больше удивляться
<Fester>то ли html5, то ли пруфлинку в твиттер
Tags: ,

7/7/10 05:30 pm - Доктор, меня всё дико адски бесит

Из-за идиотов, делавших bit.ly, таки пришлось поставить себе NoScript. Это ж надо — влепить flash прямо поверх того input'а, из которого я (по идее) должен скопировать нужный мне текст!

СкриншотCollapse )

Вообще терпеть не могу, когда какая-то хрень на JS или Flash пытается что-то сделать с моим буфером обмена. Во-первых, у меня в иксах их два разных, и приходится задумываться: а в какой из них попал нужный текст? Во-вторых, всякая такая флешня сильно жрёт проц на пустом месте (привет, Adobe, вы идиоты). В-третьих, какая-то синяя кнопка с треугольничком совершенно неочевидна, а Ctrl-C общее для всех. Гореть вам в аду, разработчики плохих интерфейсов.

Upd.: нет, всё-таки NoScript невменяем. Даже если перейти с белых списков на чёрные, раздражает слово «рекомендуется». Нафиг такие советчиков.
Tags: ,

4/14/10 12:45 pm

Всё-таки PHP — загадочный язык. Чуть-чуть кодаCollapse )
Поведение test3() и test4() я понимаю. Знаете, что меня всегда удивляло? Не могу понять, почему test2() всё-таки выполняется. Мистика!

Сначала я думал, что объявления классов и функций происходит в два этапа — сначала «безусловное» при разборе кода, а потом «условное» в runtime. Сейчас я подозреваю, что всё проще: определение ф-ции становится видимым при входе в тот блок, где они объявлены.

P.S. Эй, bo_dun, ты это куда пропал?!
Tags:

3/23/10 07:56 pm - Вот чего мне в built-in ф-циях PHP недостаёт

function opt(&$a$b) {
    return isset(
$a)? $a$b;
}

error_reporting(E_ALL);
echo 
$foo;                  // Notice: Undefined variable: foo
echo opt($foo'hello');    // No errors
Tags:

3/17/10 12:43 pm

Инструкция для юзеров Оперы версий 10.x на тему «как вернуть старые иконки»:
1. Скачать файлик http://de.co.ua/lj/buttons.css и положить его где-то у себя на винте.
2. Нажать Ctrl-F12, «Дополнительно» / «Содержимое» / «Настроить стили…» / «Моя таблица стилей» и выбрать этот файл.
3. Profit! Кнопки стали как раньше.

А теперь вопрос к знатокам задаёт пенсионер из Уфы. Как мне добавить свой CSS ко всему журналу (включая комменты), а не только к recent entries и френдленте? Вот тут [^] добавляю custom external stylesheet URL, и этот stulesheet на страницы комментов не влияет никак. ЧЯДНТ?
Tags: ,

1/26/10 02:26 am

Чёртов Propel генерирует тонны кода, в котором довольно большую часть занимают getter'ы и setter'ы. Для сущности со свойствами foo и bar генерируется класс BaseSomething с предопределёнными методами getFoo, setFoo, getBar и setBar, которые можно (по мере необходимости) переопределять в «нормальном» классе Something. Это очень дубово, ни разу не по-PHPшному.

Я рисую (JFF) для себя небольшой ORM, и для getter'ов/setter'ов применяю простой хак…Collapse )
Tags:

10/16/09 01:26 pm

Простой вопрос по SQLCollapse )

Upd.: раз уж сегодня пятница, давайте соберём побольше альтернативных решений.
Чем монстрообразнее — тем лучше :)
Tags: ,

10/7/09 04:02 pm - Про дырявые абстракции на примере ORMов

propel:
  products:
    _attributes:  { phpName: Product }
    id:           ~
    name:         { type: VARCHAR, size: '40', required: true }
    stock_count:  { type: INTEGER, required: true }
    price:        { type: INTEGER, required: true }

class Product extends BaseProduct {
  public function getStockValue() {
    return $this->getStockCount() * $this->getPrice();
  }
}
Когда можно будет без лишних заморочек сделать SELECT * FROM products ORDER BY getStockValue() — вот тогда-то и наступит рай земной, коммунизм и вендокапец. А пока, увы, всё с ORMами грустно.
Tags: ,

10/4/09 11:57 am - Упырьте мел

Вчера посетил Яндекс.Субботник (хех, что может быть лучше звонка будильника в субботу утром). Ничего принципиально нового не узнал (всё это можно прочитать в документации), зато выяснил массу полезных мелочей и получил порцию бодрого настроения. Пример полезной мелочи: попробуйте на любой карте Яндекса выделить некую область правой кнопкой мышки :) Знакомых лиц не видел, но нашёл несколько виртуально знакомых (например, с Sapka Contest, выясняли «кто есть кто» по никам в чате). В итоге остался весьма доволен.
Tags: ,

9/1/09 08:13 pm - Opera 10: epic fail

Сабж. Эта чёртова зараза потеряла настройки блокировки рекламы. Куки вообще теряет при каждом чихе (блин, я за сегодня логинился в ЖЖ больше раз, чем за последние полгода). Wand работает, но не дружит с ЖЖшной формой аутентификации. Turbo пережимает в jpeg все картинки, даже легковесные пиксартовые gif'ы.

Новую Оперу можно было бы назвать «разочарованием года», если не считать миграцию с KDE3 на KDE4. Куча новых бесполезных фич, красивый интерфейс, жуткая нестабильность — в общем, знакомая картина.
Tags: ,

5/14/09 05:05 pm

Репортаж из жёлтого домаCollapse )
Tags: ,

4/15/09 12:08 pm

html {
	head { title { Веб мог бы быть совсем другим } }
	body {
		div(id='header') {
			a(href='/') { img(border=0) { /images/logo.png } }
			h1 { Привет, мир! }
		}
		div(id='content') {
			p { Такая фигня em { без проблем } преобразуется в XHTML. }
			p { Практического интереса, судя по всему, не представляет ;-) }
		}
	}
}
Tags: ,

4/13/09 02:35 pm - ln -s $HOME /var/www

Piccy.info - Free Image Hosting
Tags: ,

4/2/09 12:25 pm - 改善

Веб-разработчикам рекомендую прочитать вот этот пост:
http://xekc.livejournal.com/315570.html

Думаю. В общем-то всё это я и так знаю (более того, именно так я и стараюсь поступать). Но получается далеко не всегда. Есть ситуации, когда перфекционизм оправдан — ну, когда рефакторинг слишком дорог; но разработка сайтов явно к ним не относится. И вообще, как завещал Реймонд, «Release early, release often». В общем, переварю мысль — напишу.
Tags:

3/25/09 02:28 am

Я когда-то уже писал про то, что у меня чёрно-зелёный десктоп. Ну на самом-то деле он сейчас не всегда чёрно-зелёный, но всё же бывает. С появлением KDE 4 (до которого у меня руки не доходят) и современных тем Qt получить такой результат стало значительно легче, но и тут есть свои нюансы.

Запишу-ка я, чтобы не забыть, как правильно «покрасить» ОперуCollapse )

Piccy.info - Free Image Hosting Piccy.info - Free Image Hosting Piccy.info - Free Image Hosting
Tags:

2/17/09 12:01 pm

Что-то я давно не писал ничего про веб-разработку. Надо исправляться. Пожалуй, расскажу-ка я про генерацию RSS на своей домашней страничке.

Кто не в курсе — домашняя страничка живёт у меня в Subversion'е, и при каждом commit'е обновляется рабочая копия для веб-сервера (через hooks/post-commit). Пришла мне в голову мысль, что историю изменений можно было бы использовать в качестве новостей сайта, и я нашёл пост про то, как это сделать. Всё просто: svn log в формате XML можно преобразовать своей XSLT'шкой в формат RSS.

svn log -v --xml --limit 20 | xsltproc svnlog.xslt - > svnlog.rss
Tags: , ,
Powered by LiveJournal.com