?

Log in

Заметки веб-технолога

Date: 2007-11-29 22:22
Subject: Мёртвый скроллбар в Опере
Security: Public
Tags:bug, css, opera
Обнаружил в Опере 9.24 ранее неизвестный баг. Следующий код порождает мёртвый горизонтальный скроллбар:

<div style="position: absolute; overflow: auto"><div>Тарам-пам-пам</div></div>

В других браузерах всё нормально.
4 Comments | Post A Comment | Поделиться | Ссылка



Date: 2007-10-24 20:40
Subject: Clearing floats
Security: Public
Tags:css
Кто-нибудь может объяснить, почему даже маститые верстальщики до сих пор используют монструозный Easy Clearing, в то время как ещё год назад PPK опубликовал гораздо более лаконичный Clearing floats? Сравните:

Easy Clearing:
.clearfix:after {
    content: "."; 
    display: block; 
    height: 0; 
    clear: both; 
    visibility: hidden;
}

/* MSIE6- */
* html .clearfix {
    height: 1%;
}

/* MSIE7- */
.clearfix {
    zoom: 1;
}

Clearing floats:
.clearfix {
    overflow: auto; width: 100%;
}
Post A Comment | Поделиться | Ссылка



Date: 2007-06-18 17:23
Subject: Множественный UPDATE
Security: Public
Tags:mysql
Если нужно обновить сразу несколько записей, необязательно делать UPDATE для каждой из них. В простейших случаях можно использовать следующий синтаксис:
UPDATE
	table
SET
	field = ELT(FIELD(id, $sIdList), $sValueList)
WHERE
	id IN ($sIdList)

Плюс: вместо пачки запросов всего один UPDATE.

Минус: MySQL-specific.
4 Comments | Post A Comment | Поделиться | Ссылка



Date: 2007-06-18 17:21
Subject: HTML5
Security: Public
Tags:html, web forms
HTML5 differences from HTML4

Молодцы, что позаимствовали часть спецификации Web Forms. Ну и новые элементы тоже порадовали. Посмотрим, во что всё это выльется.
Post A Comment | Поделиться | Ссылка



Date: 2007-05-15 12:20
Subject: MSSQL vs MySQL
Security: Public
Tags:google, mssql, mysql
Google рекомендует:

6.32 КБ
1 Comment | Post A Comment | Поделиться | Ссылка






Date: 2007-05-04 11:18
Subject: OR vs UNION
Security: Public
Tags:mysql
Задача: достать из базы одним запросом корневые объекты и все объекты текущего треда, чтобы потом построить из них меню сайта и дублирующую навигацию.

Решение «в лоб»:
SELECT
	object_id AS id,
	...
FROM
	object
WHERE
	thread_id = 123
	OR parent_id = 0

Проблема в том, что такой запрос не сможет использовать индексы.

В документации по MySQL предлагают оптимальное решение: заменить OR на UNION.
SELECT
	object_id AS id,
	...
FROM
	object
WHERE
	thread_id = 123
UNION
	SELECT
		object_id AS id,
		...
	FROM
		object
	WHERE
		parent_id = 0

В таком случае MySQL объединит результаты двух выборок, в каждой из которых будут использоваться индексы. При этом дублирующиеся записи будут пропущены.
Post A Comment | Поделиться | Ссылка



Date: 2007-04-21 08:35
Subject: Еврейский SQL сервер
Security: Public
Tags:смешно
Еврейский SQL сервер отвечает запросом на запрос.
Post A Comment | Поделиться | Ссылка



Date: 2007-03-27 04:24
Subject: Формат TIMESTAMP
Security: Public
Tags:mysql, parser
В MySQL есть два похожих типа столбцов: DATETIME и TIMESTAMP. Одно из отличий состоит в том, что DATETIME имеет вид YYYY-MM-DD HH:MM:SS, а TIMESTAMP отображается как YYYYMMDDHHMMSS. С последним и выходит загвоздка: такое представление не поддерживают ни Парсер, ни другие известные мне языки. В MySQL 4.1 это поведение исправлено. Если же доступна только версия 4.0, приходится идти на ухищрения.

Первый способ: сразу приводить дату к необходимому формату средствами MySQL (DATE_FORMAT). Подходит в большинстве случаев и, к тому же, даёт выигрыш в скорости.

Второй способ я обнаружил случайно:

DATE_ADD(dt_update, INTERVAL 0 DAY) AS dt_update

или, в «терминах» класса Sql.p:

^pSQL.dateAdd[dt_update;0] AS dt_update

Применение функции DATE_ADD с нулевым интервалом приводит дату к формату YYYY-MM-DD HH:MM:SS, с которым уже можно работать в Парсере. Способ абсолютно безопасный: когда хостер наконец проапгрейдит MySQL до последней версии, этот код останется работоспособным.
Post A Comment | Поделиться | Ссылка



Date: 2007-03-18 00:22
Subject: Класс для RUpay
Security: Public
Tags:parser, rupay
Написал на Парсере класс для работы с системой платежей RUpay. Схема стандартная: заказ формируется на сайте магазина и отправляется на сервер RUpay. Посетитель выбирает способ оплаты и переводит деньги. После получения платежа сервер RUpay посылает уведомление об оплате на сайт магазина. Пара моментов.Свернуть )
Post A Comment | Поделиться | Ссылка



Date: 2006-12-18 03:10
Subject: Долой www
Security: Public
Tags:apache, google, rewrite, seo, яндекс
Сегодня уже не только нет необходимости в использовании приставки www, но даже можно говорить о том, что она вредна, и мешает тем, что приходится прописывать для каждого сайтов два URL-адреса, программистам приходится учитывать два возможных обращения к сайту, а уж как неудобно произносить вслух эти «Вэ-Вэ-Вэ» или «Даблъю-Даблъю-Даблъю»…

Согласен с Русланом Курепиным, автором сайта nowww.ru, в абсолютной бесполезности префикса www. Но избавляться от него следует осторожно, особенно, если Ваш сайт уже проиндексирован поисковыми системами.

С Яндексом всё просто: достаточно добавить в файл robots.txt директиву Host: example.com. Она подскажет Яндексу, что основным зеркалом является домен без www. Это со временем отразится и на ссылках в результатах поиска.

С Гуглом всё немного сложнее. Сначала необходимо завести учётную запись. Затем зайти в Инструменты для веб-мастеров и добавить сайт. Чтобы доказать право управления сайтом, придётся либо либо разместить на сервере специальный файл, либо добавить определённый мета-тэг в код страницы.

Как только сайт будет подтверждён, Вы сможете выбрать для него основное доменное имя. По идее, это должно благотворно повлиять на PageRank, т. к. по умолчанию Гугл считает его отдельно для example.com и www.example.com. Гугловцы обещают (но не гарантируют), что это настройка повлияет на ссылки в результатах поиска.

А как настроить саму переадресацию? Я использую для этой цели mod_rewrite:
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule .*           http://%1/$0 [R=301]

HTTP-cтатус 301 означает, что страница переехала навсегда, а не временно.
Post A Comment | Поделиться | Ссылка






browse
my journal
Ноябрь 2007