Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Позднее Ctrl + ↑

Избавиться от PHPSESSID

Почему-то очень часто бывает, что если сайт открываешь в браузере первый раз в сессии, то все ссылки обрастают PHPSESSID’ами. F5 — и всё в порядке, PHPSESSID переползает из урла в куки. Мне нужно как-то сделать, чтобы PHPSESSID в урле не использовался, даже если возникли какие-то проблемы с куки.

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

Как этого добиться?

airlaid.ru in english

We have just launched an english beta of the C-Airlaid website.

The blib’s idea of autodetecting user-preferred language was implemented in the following way:

if ('en' == $_SERVER['HTTP_ACCEPT_LANGUAGE'] and !$english)
header ('Location: http://'.$_SERVER['SERVER_NAME'].'/english');

So we consider browser-reported language the user-preferred one.

Actually, Opera english, the one I use, reports en as an Accept-Language, so I’m sent to /english when I enter the site, but I would definitely prefer russian. Is extra logic in style of «if „en“ and not-Opera» necessary, or can we expect that user selected an english browser would equally prefer english content? Mozilla Firefox does a better job here, reporting OS’ language instead of its own, so even with english Firefox I’m left with the root website. IE, no doubt, reports OS’ language either, but that’s because it’s almost part of that OS.

Please check how it works with you.

Should you have any comments either on this behaviour or anything else related, please do not hesitate to send them to me. The translation is not quite perfect, so any corrections or recommendations regarding the quality of english text are also highly appreciated.

Почему Windows лучше, чем Linux

Хотя причины этого и так всем понятны, рекомендую прочитать отличную статью «The Luxury of Ignorance: An Open-Source Horror Story» о проблемах интерфейсов open-source программ для «альтернативных» ОС (by Eric S. Raymond).

We talk about world domination, but we’ll neither have it nor deserve it until we learn to do better than this. A lot better.

Схема лондонского метро

В очередном параграфе Лебедева речь идёт о логике и эстетике в дизайне. В качестве иллюстрации приводится схема линий лондонского метро.

Схема линий лондонского метро — одно из величайших художественных произведений человечества. Я уже излагал такую свою точку зрения, но не могу не повториться; каждый раз, когда я вижу её, я восхищаюсь гениальностью её создателя. Это действительно очень красиво. Почему на месте, где должна висеть эта схема, висит Джоконда — для меня загадка.

Может быть, это французы из вредности? Они ведь ещё на «Hello» не отвечают или отвечают, сделав такое выражение лица, что разговаривать дальше не особо хочется... (Правда, если сказать «Bonjour, do you speak English?» — уже легче.)

См. также:

English version: как правильно?

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

  • Насколько уместен вариант главной полустраницы-полузаставки с возможностью выбора языка? Мне лично больше нравится, когда сайт сразу открывается на русском, а уже там можно переключить на английский (или наоборот, не важно, главное, что сразу открывается контент).
  • Если мы читаем один из разделов по-английски, должен ли клик по логотипу вести на Самую Главную Страницу, или же на главную английскую страницу? Мне лично кажется, что если человек зашёл на английскую версию, то дальше вся навигация должна работать только по английской версии.

Приветствуются так же любые общие рассуждения на эту тему.

e2: STOP 0x0200 VERSION_CONTROL

Некоторые интересовались что это и почему это — STOP. Рассказываю всё по-порядку.

В реестре e2 хранит текущую свою версию. При инсталляции он туда её записывает, и потом использует:

  • Когда нужно показать, какие есть обновления (показывает обновления начиная с вашей версии + 1 и до последнего);
  • В процессе скачивания обновлений, чтобы определить, какие именно файлы нужно скачать (скачивается только то, что изменилось);
  • После скачивания обновлений, чтобы сделать нужные изменения в структуре базы и/или реестра.

После установки обновлений e2 записывает в реестр ту версию, до которой он обновился, и цикл повторяется.

Теперь предположим, следующее. Вы устанавливаете дистрибутив v555 и через некоторое время обновляетесь до v666. В ходе обновления база и реестр нужным образом переделываются, чтобы v666 продолжала работать как ни в чём не бывало. Неожиданно вы понимаете, что v555 вам нравится больше (потому что не такое страшное число) и решаете вернуться на неё, заменив core.php старым.

В результате e2 больше не открывается, а вместо этого умирает со словами:

STOP 0x0200 VERSION_CONTROL

Это происходит потому, что версия core.php меньше чем та, которая записана у него в реестре. Если бы в e2 не было этого сообщения STOP, то старый core.php бы попытался работать с данными, новый формат которых ему неизвестен. К чему это могло бы привести — никто не знает. Поэтому на всякий случай, чтобы ничего не повредить, e2 останавливается.

Что же теперь делать? Во-первых, как уже понятно, всё данные целы и невредимы благодаря этому STOP’у, поэтому не нужно паниковать. Во-вторых, есть два пути восстановления нормальной работы e2:

  • Вернуть на место ядро v666 или более позднее и наслаждаться им, забив на суеверия (рекомендуется!)
  • На свой страх и риск вручную изменить в реестре версию на v555, чтобы version control не догадался, что вы пытаетесь перейти на более старую версию (не рекомендуется!)

Если вы собираетесь производить манупуляции с реестром, то лучше сначала сохраните все свои данные куда-нибудь в надёжное место.

e2NP без e2

Клиент e2NP теперь может работать не только с e2. Если вы хотите отображать на своём сайте текущий играющий трэк, но не хотите ставить e2, то скачайте новый e2NP v3.2. В ini-файле пропишите:

[Server]
Host=yourserver.com
Fullpath=/np.php?password=yourpassword%%

Теперь np.php будет вызывать каждый раз при смене трэка. В нём вы можете проверять пароль, а также:

  • $_GET[’track’] — название текущего трэка
  • $_GET[’pos’] — позиция, в трэке в момент, когда e2NP его обнаружил
  • $_GET[’length’] — длина трэка
  • $_GET[’cv’] — версия e2NP (передаётся только один раз!)

Ещё для идентификации e2NP можно использовать строку юзер-агента, которая равна e2NP.

В $_GET[’track’] на самом деле содержится не название текущего трэка, а заголовок окна WinAMP. Разбивать эту строку на название группы и трэк вам придётся вручную.

Кроме того. $_GET[’pos’] — это не то же самое, что $content[’nowplayin’][’elapsed’] в шаблоне design_all в e2. Дело в том, что e2NP чаще всего будет обнаруживать ваш трэк через 1-2 секунды, после начала его воспроизведения; именно это число и будет передаваться вашему np.php. В случае же с e2, elapsed содержит именно текущую позицию, т. к. e2 прибавляет к позиции, полученной от e2NP, то время, которое прошло с тех пор, как эта позиция была получена... Уф. В общем, если вы хотите пользоваться e2NP без e2, то либо всё это нужно будет реализовывать самостоятельно, либо придётся ограничится только названием трэка.

Vibe Tribe выпускают альбом

Vibe Tribe, наконец выпускают альбом. Я его, разумеется, хочу, потому что то, что у меня есть от Vibe Tribe просто blows my socks off, как говорят всякие сумасшедшие наркоманы на разных форумах (смайлик). А обложка альбома, например, сделана с намёком на обложку Infected Mushroom «Classical Mushroom»

Ранее Ctrl + ↓