Блог Обо мне Храню Читаю Ем 99  

страница № 98



Ню-рейв-котятки

Получил большое удовольствие от чтения очень небольшого «славаря масковских модников». «Гопосексуал», «зелёный чай», «котятки». Галкину, которому и спасибо за ссылку, понравились два первых термина, а от меня виртуальный приз получают «котятки», очень характерное слово, буду использовать.

Молодые люди и девушки, в основном, абитуриенты и студенты (хотя попадаются десятиклассницы), которые ходят на вечеринки Idle Conversation и Thriller, одеваются согласно ню-рейверскому дресс-коду, зависают на сайте lookatme.ru и пользуются приведенным здесь вокабуляром. К. — проверенная аудитория, не чета «модному быдлу» (см.). Есть также продвинутая версия К. — тру котятки.


Если не знаете, кто такие ню-рейверы, то на сайте Be-In есть статья «Ню-рейв?» на эту тему. Небольшая цитата оттуда:

Ню-рейверы (36.86KB)


Ню-рейверов снова волнует одежда безумных расцветок, пошитая из синтетики в её крайних проявлениях. Барахолка на Удельной примерно с прошлого лета может, как в старину, предоставить наряды для эсид-шапито: салатовые платья, безразмерные пиджаки с подплечиками и на одной пуговице, футболки с зелёно-розовыми микки-маусами или – о ужас! – «экстезийными» смайлами. Попадаются и совершенно катастрофические штуки вроде трудноописуемого ядовито-голубого на первый взгляд купальника, который на деле – цирковое трико. Вне маргинальных секондов в Питере по интересующей теме пока можно найти лишь аксессуары – пластиковые анилиновые пеналы, например, или длинные бусы. «Новый старый» teen spirit, как водится подхватили уже европейские дизайнеры в весенних коллекциях – Жан-Поль Готье, в частности. В любом случае, ню-рейверский тренд уже ясен – фриковый китч пополам с оголтелым урбанизмом, что-то между новой версией порно-шика и сложной эстетикой «гуляй, рванина».

18.12 18:05
18.12 18:05


Курсы английского языка от «Британики»

Уже все успели оценить проект «Плохие стихи», рекламирующие курсы английского языка «Британика»? (Осторожно — говорят, трафика потребляет немало). На мониторах 16:9 (и, как следствие, на многих ноутбуках) посмотреть его просто так не получится — отказывается работать. По этому поводу вот вам небольшое колдунство в помощь, всё, что надо сделать — выставить ширину «флеша» в 80%. Вводим в строку браузера, после загрузки сайта:
javascript:void(document.getElementsByTagName('OBJECT')[0].width='80%')
После чего наслаждаемся содержимым.
17.12 22:06
17.12 22:06


JavaScript benchmark: Opera 9.50b (build 9694) versus Safari 3.0.4b (build 523.12.9)

Интресно было сравнить скорость JavaScript в Opera и Safari, причём не скорость обращения к DOM или тому подобное, а чистую примитивную математику — циклы, ветвления, операции сравнения, арифметику и т.д. Для этой цели я выбрал свой компилятор языка Brainf*ck в JavaScript и запустил на нём «программу вычисления числа „Пи“» на Brainf*ck.

Результаты:
  • Safari 3.0.4 — 1579 мс.
  • Opera 9.50— 2078 мс.
  • Internet Explorer 6.0SP2 — 2766 мс.
  • Netscape Navigator 9.0.0.5 — 14313 мс.
  • FireFox 2.0.0.11 — 14578 мс.
Я не очень понимаю почему таких плохие результаты у браузеров на основе Gecko, может, они не используют возможности многопроцессорный машин?
17.12 18:36
17.12 18:36


JSSS, JavaScript-based Style Sheets

В своё время, когда браузер фирмы Netscape был лидером на рынке, в нём была поддержка интересной, на мой взгляд, технологии, которая уже при рождении была незаслуженно забыта — «JavaScript-based Style Sheets» (JSSS). Сейчас эту технологию, насколько я знаю, не поддерживает ни один из существующих браузеров, а в те времена я использовал её, чтобы разделить стили для Netscape и Internet Explorer, а сейчас это представляет интерес не больше, чем Gopher.

Итак, в чём суть? Суть та же самая, что и в CSS, разница лишь в представлении. Несколько примеров, думаю, достаточно наглядно покажут суть:
<style type="text/javascript"><!--
    // H1 { color: blue }
    tags.H1.color = "blue";

    // BODY { color: black; background: white }
    with(tags.BODY) {
         color = "black";
        bgColor = "white";
     }

    // H1 EM .reddish { color: red }
    contextual(tags.H1, tags.EM, classes.reddish.all).color = "red";

    /* UL  LI { color: red }
        UL UL LI { color: blue } */
    with(tags) {
         contextual(UL, LI).color = "red";
         contextual(UL, UL, LI).color = "blue";
     }

     // P:first-line { font-style: small-caps }
     tags.P.firstLine.fontStyle = "small-caps";

     // P:first-letter { font-size: 200% }
     tags.P.firstLetter.fontSize *= 2; // 200%
--></style>
Теперь самое интересное, вычисляемые значения и функции:
<style type="text/javascript"><!--
    tags.IMG.width = .50 * document.width;

    evaluate_style() {
        if (visual.colorDepth < 2) {
             bgColor = "white";
             color = "blue";
        } else {  
             bgColor = "black";
             color = "white";
        }
    }

   tag.BODY.apply = evaluate_style()
   tag.ids.headertable.apply = evaluate_style()
--></style>


темы: webdev, css, jsss
17.12 17:34
17.12 17:34


Блогосфера на gopher'e — все друг друга знают

Помните я про gopher писал? OMG, на этом протоколе есть два блога: gopher://hal3000.cx/1/Phlog и gopher://hactar.net/1/blog. Мне их даже посмотреть нечем — на новой машине я поставил «Оперу», есть Internet Explorer, они gopher не поддерживают.

Спасибо Ломакину Илье за ссылку.

темы: gopher
17.12 12:45
17.12 12:45


MSIE6 (MuSt dIE 6.0)

Мне очень нравится проект «UpgradeBrowser», это очень разумный способ снижения доли устаревших Internet Explorer в интернете. Смысл в следующем. Вы устанавливаете у себя на сайте специальный JavaScript-код перед закрывающим тегом BODY:
<!--[if lte IE 6]>
<script type="text/javascript" src="http://upgradebrowser.org/ie6fuck.js"></script>
<![endif]-->
Так же код ie6fuck.js можно скачать себе и вызывать локально. Пользователи Internet Explorer 6.0 и ниже увидят сверху сайта следующую симпатичную надпись:

Через ваш устаревший и небезопасный браузер к вам могут попасть вирусы с сайтов. Обновите его!


Ссылка «обновите его» ведёт на страницу, где рассказывается о последних версиях Internet Explorer, FireFox и Opera. Чисто психологически проще поставить новую версию программы, чем переходить на её аналоги, так что на этой странице очень разумно первым упоминается Internet Explorer 7.0.

Что так же немаловажно, эту панельку можно закрыть (в оригинале справа есть крестик) и она не будет появляться ещё 30 дней. Кстати, она очень напоминает стандартную панель Internet Explorer, так что есть шанс, что многие пользователя подумают, что обновиться предлагает сам браузер.

Я код себе уже поставил, присоединяйтесь к проекту.

темы: webdev, ie
16.12 23:59
16.12 23:59


Мои ошибки при ведении блога

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

Первое и самое главное — неверно выбранный формат блога. Понимая тенденцию к быстрому потреблению, я сократил тексты, но решил делать выпуски (как до сих пор делает «Кулер», который я читаю много лет), а не обновления. Мне показалось это удобным — заходить на сайт только раз в сутки и получать все новости сразу. Сейчас эту проблему решает наличие RSS — заходить на сайт, чтобы узнать об обновлениях вовсе необязательно. Беда в том, что выпуски делать сложнее, так как это отнимает массу времени. Поэтому иногда не подходил к блогу несколько месяцев.

Второе. Я убирал заголовки, мне они показались ненужным элементом. Заголовки оказались нужны для RSS, писем с сайта и обособления записей в блоге друг от друга. Благодаря заголовкам пользователь может оценить — тратить ли ему время на чтение текста или пролистать дальше.

Третья. Мне хотелось сделать всё стильно, поэтому я назвал элементы меню единообразно — «пишу», «читаю», «ищу» и так далее. Единообразно, но непонятно, пользователи просто не знали куда идти. «Блог» и «поиск» скучно, но более понятно. Навигация пока ещё моя головная боль — в TODO большой список доделок, но пока на это нет времени, хотя кое-что медленно меняется в лучшую сторону.

Что я не отношу к ошибкам — это отключение комментариев и существующая схема RSS/OpenID. Комментарии я отключал, думаю, по той же причине, по которой их отключал когда-то Дима, просто устал. А схема авторизации через OpenID и подписки через RSS мне кажется верной, туда должно всё и двигаться. Не сайты, которые похожи на швейцарский нож, а поставщики контента с интерфейсом для их поглощения, плюс управление переходами информации с одного сайта в другой, OpenID и свободный экспорт на основе RSS — из этой оперы.

Это уже Web 3.0, новый уровень всемирной паутины, когда интернет работает не на уровне HTTP, а на уровне «сайт» и представляет собой свободноинтегрированные друг в друга сайты.

темы: blog
15.12 00:02
15.12 00:02


₥₳₪€¥

Отличную расшифровку DRM подсмотрел — «₫¥₲¥₮₳£ R€$₮r¥₡₮¥¤₦₴ ₥₳₪₳₲€₥€₦₮» (искажённое «Digital Rights Management», составленное из знаков валют) . Напомню, что DRM — это технические средства для защиты авторских прав.
14.12 14:23
14.12 14:23


Easter Ogg

Из HTML5 официально исключены форматы Ogg Vorbis и Ogg Theora (предназначенные для использования проигрывания мультимедия в тегах AUDIO и VIDEO). Против формата выступали фирмы Nokia и Apple.

Напомню корень проблемы: в HTML есть стредство для внедрения рисунков и определены форматы (GIF, PNG, JPEG), которые гарантированно будут показываться во всех графических браузерах, но нет ничего подобного для видео и аудио. Нет единых форматов и средств управления проигрыванием из браузера через JavaScript. С появлением HTML5 ситуация должна быть исправлена появлением тегов VIDEO и AUDIO и введением стандартов кодеков, которые должны поддерживаться всеми браузерами.

Возможно, вместо форматов Ogg, будут использованы H.264 (MPEG-4) для видео и AAC для звука. Аргументы — тот же H.264 выбирается из-за аппаратной поддержки, что очень критично на мобильных устройствах, тогда как для Ogg придётся писать довольно тяжеловестный по размеру кодек, кроме того, есть опасения по поводу патентов на эти форматы, опасаются, что часть формата может быть покрыта неизвестными патентами.

Так же ходят слухи, что основной причиной того, что форматы Ogg исключили, является то, что они не поддерживают DRM (средства для защиты авторских прав), это соображение возникло, большей частью из-за того, что противником форматов Ogg являются именно Nokia и Apple.

темы: webdev, html, html5
13.12 15:11
13.12 15:11


Как бы ноги не ошпарить

Новое рабочее место (51.50KB)
Я в Москве, это моё новое рабочее место, пока сфотографировать ничего не могу, но от нового компьютера писаю кипятком.

Кстати, у меня наконец-то работают комментарии!
11.12 20:13
11.12 20:13


А город подумал: ученья идут

На все сайты в домене exler.ru уже несколько дней идёт мощнейшая DDoS-атака. Поэтому сайт может иногда «пропадать». Для тех кто не знает, поясню. DoS-атака — это атака «отказ в обслуживании» («Denial of Service»), когда атакуемую машину заваливают запросами так, что она не справляется с загрузкой или каким-то иным способом добиваются недоступности ресурса (например, атака, при помощи которой добиваются ложного срабатывания системы защиты).

DDoS — это «Distributed Denial of Service» («распределённая» DoS-атака), когда атакующих машим несколько. Атака, по всей видимости, идёт с зарубежный «зомби»-сетей.

Сейчас админы уже успешно справились с отражением атаки, так что если и будут «пропадания», то очень кратковременные.
09.12 00:11
09.12 00:11


Ваш собственный OpenID

Многие думают, что OpenID — это что-то невероятно сложное в использовании. Вовсе нет. Давайте я покажу простой и полезный, для тех, у кого есть собственный сайт, пример использования OpenID. Как многие знают, для того, чтобы авторизоваться на чужом сайте, нужно иметь аккаунт на каком-нибудь сервере OpenID — ЖЖ, Li.Ru, MoiKrug, Ya.Ru и т.п. Если у вас есть логин в одном из этих сервисов, то у вас есть OpenID.

Что делать, если вы хотите подписываться у меня в комментариях не как «user.livejournal.com», а как «myblog.sample.com»? Наверное вам нужно будет установить себе на сайте собственный сервер OpenID? Правильно? Неправильно!

В OpenID есть интересная возможность — делегирование. Вы можете попросить другой OpenID-сервер выполнять функции OpenID на вашем сайте, достаточно иметь на этом другом сервере аккаунт. Для того, чтобы использовать эту возможность, нужно просто вставить две строки между открывающим и закрывающим тегом HEAD на первой странице вашего сайта. В одной строке нужно указать ваш OpenID (т.е. сам идентификатор) на другом сервере, во второй — URL используемого сервера.

Вот как это выглядит для сервера myopenid.com (кстати, очень рекомендую его к использованию):
<link rel="openid.server" href="http://www.myopenid.com/server/" />
<link rel="openid.delegate" href="http://ваш_ник.myopenid.com/" />
А вот так это будет выглядеть для Ya.Ru:
<link rel="openid.server" href="http://openid.yandex.ru/server.xml" />
<link rel="openid.delegate" href="http://openid.yandex.ru/users/ваш_ник" />
Так, для Живого Журнала:
<link rel="openid.server" href="http://www.livejournal.com/openid/server.bml" />
<link rel="openid.delegate" href="http://ваш_ник.livejournal.com" />
Для Liveinternet.ru:
<link rel="openid.server" href="http://www.liveinternet.ru/openid.php" />
<link rel="openid.delegate" href="http://http://www.liveinternet.ru/users/ваш_ник" />
Для того, чтобы изготовить эту строку для каких-то других сервисов пользуйтесь универсальным правилом: обычно значение поля «openid.delegate» совпадает с вашей персональной страницей на этом сервисе, а значение для «openid.server» можно взять из исходного кода той же страницы, там должен быть аналогичный тег LINK.

темы: webdev, openid
06.12 00:36
06.12 00:36


«Спеста» — винтажная система статистики, часть II.

Ещё несколько советов по работе со «Спестой», предыдущая пачка — в первой части статьи.

Совет пять. Судя по коду, «Спеста» иногда способна пропустить какую-то часть хитов (кстати, у «Spesta 2» тот же недостаток). Для слабопосещаемого сайта это не слишком важно, для сильнонагруженных станет серьёзной проблемой. Для того, чтобы поправить ситуацию, открываем файл counter.php, ищем строки, содержащие «SP_fr ($COUNT_FILE)» и «SP_fw ($COUNT_FILE, $content)». Заменяем их на следующие куски кода (первую найденную строку — на первый, вторую — на второй):
$fp = fopen($COUNT_FILE, 'a+');
flock($fp, LOCK_EX);
fseek($fp, 0);
$conts = fread($fp, filesize($COUNT_FILE));
ftruncate($fp, 0);
fseek($fp, 0);
fwrite($fp, $content);
fclose($fp);
Совет номер шесть. Открываем все PHP-файлы последовательно и в каждый, в начало PHP-кода ставим нижеприведённый кусок. Файл mailto.php удаляем.
$s_addurl = "";


темы: spesta
05.12 17:21
05.12 17:21


PHP2EXE

Решил посмотреть что у нас на старую добрую тему php2exe — т.е. PHP-компиляторов. В последнее время в разговорах всё чаще мелькало упоминание RoadSend PHP Compiler, вот я его решил скачать и скомпилировать свой «Photoshop's Crap Remover». Эта програмка была написана в 2002-м году для удаления из файлов JPEG лишней информации. Фотошоп тогда очень активно её туда записывал — вплоть до preview, так что было актуально, но и сейчас, бывает, программа пригождается.

Вот этот компилятор я и скачал. Версия 2.9.0, бета. Первое, что я выяснил, когда нашёл где включается режим вывода лога компиляции, инсталлировать надо было туда, куда программа предлагала по умолчанию. Путь «Program Files» вызывает проблемы из-за пробела посередине. Следующая проблема — библиотека для работы с регулярными выражениями в формате Perl породила массу ошибок. Я решил это легко — у меня в программе одно, незначащее регулярное выражение, т.е. я его просто убрал.

В итоге, эксперимент окончился плачевно. Мало того, что итоговый файл оказался размером шесть мегабайт (при том, что исходная программа занимает 1.5 килобайта) — это ещё терпимо, понятно, что с ростом исходной программы этот размер меняться почти не будет, да и упаковывается он до одного мегабайта, например, при помощи NPack. Хуже, что скомпилированная (даже не сжатая) программа так и не заработала — при выполнении возникают ошибки переполнения.

Вывод: возможно, это огрехи бета-версии, но инструмент нерабочий.

темы: php, php2exe
05.12 12:05
05.12 12:05


Новую собаку старым трюкам

Егор Куновский описал способ при помощи которого можно научить Google понимать переходы с Rambler, Mail.ru и других российских поисковых машин. Не знаю, действительно ли Google знает только Яндекс, но лучше сделать это более аккуратным способом. У меня, до того как я убрал Google Analytics было так:
_uacct = "UA-ВАШНОМЕ-Р";
_uOsr.push('mail.ru','rambler.ru','webalta','aport','blogs.yandex.ru')
_uOkw.push('q','words', 'q', 'r', 'text')
urchinTracker();
Первой строчкой указываются адреса поисковых сайтов, второй — параметр в котором указывается поисковый запрос.

темы: google
05.12 00:27
05.12 00:27



страница № 98

Евгений Степанищев (imbolk@gmail.com)
t=0.010