javascript:void(document.getElementsByTagName('OBJECT')[0].width='80%')
После чего наслаждаемся содержимым.
17
17.12 22:06
Курсы английского языка от «Британики»Уже все успели оценить проект «Плохие стихи», рекламирующие курсы английского языка «Британика»? (Осторожно — говорят, трафика потребляет немало). На мониторах 16:9 (и, как следствие, на многих ноутбуках) посмотреть его просто так не получится — отказывается работать. По этому поводу вот вам небольшое колдунство в помощь, всё, что надо сделать — выставить ширину «флеша» в 80%. Вводим в строку браузера, после загрузки сайта:
После чего наслаждаемся содержимым.
17
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.
Результаты:
17.12 18:36
JSSS, JavaScript-based Style SheetsВ своё время, когда браузер фирмы Netscape был лидером на рынке, в нём была поддержка интересной, на мой взгляд, технологии, которая уже при рождении была незаслуженно забыта — «JavaScript-based Style Sheets» (JSSS). Сейчас эту технологию, насколько я знаю, не поддерживает ни один из существующих браузеров, а в те времена я использовал её, чтобы разделить стили для Netscape и Internet Explorer, а сейчас это представляет интерес не больше, чем Gopher.
Итак, в чём суть? Суть та же самая, что и в CSS, разница лишь в представлении. Несколько примеров, думаю, достаточно наглядно покажут суть: Теперь самое интересное, вычисляемые значения и функции:
темы: webdev, css, jsss 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
MSIE6 (MuSt dIE 6.0)Мне очень нравится проект «UpgradeBrowser», это очень разумный способ снижения доли устаревших Internet Explorer в интернете. Смысл в следующем. Вы устанавливаете у себя на сайте специальный JavaScript-код перед закрывающим тегом BODY:
Так же код ie6fuck.js можно скачать себе и вызывать локально. Пользователи Internet Explorer 6.0 и ниже увидят сверху сайта следующую симпатичную надпись:Через ваш устаревший и небезопасный браузер к вам могут попасть вирусы с сайтов. Обновите его! Ссылка «обновите его» ведёт на страницу, где рассказывается о последних версиях Internet Explorer, FireFox и Opera. Чисто психологически проще поставить новую версию программы, чем переходить на её аналоги, так что на этой странице очень разумно первым упоминается Internet Explorer 7.0. Что так же немаловажно, эту панельку можно закрыть (в оригинале справа есть крестик) и она не будет появляться ещё 30 дней. Кстати, она очень напоминает стандартную панель Internet Explorer, так что есть шанс, что многие пользователя подумают, что обновиться предлагает сам браузер. Я код себе уже поставил, присоединяйтесь к проекту. темы: webdev, ie 16.12 23:59
Мои ошибки при ведении блогаВ предыдущей версии сайта я совершил несколько ошибок, Я говорю даже не о SEO, а о вещах, которые усложняли жизнь и мне и читателям.
Первое и самое главное — неверно выбранный формат блога. Понимая тенденцию к быстрому потреблению, я сократил тексты, но решил делать выпуски (как до сих пор делает «Кулер», который я читаю много лет), а не обновления. Мне показалось это удобным — заходить на сайт только раз в сутки и получать все новости сразу. Сейчас эту проблему решает наличие RSS — заходить на сайт, чтобы узнать об обновлениях вовсе необязательно. Беда в том, что выпуски делать сложнее, так как это отнимает массу времени. Поэтому иногда не подходил к блогу несколько месяцев. Второе. Я убирал заголовки, мне они показались ненужным элементом. Заголовки оказались нужны для RSS, писем с сайта и обособления записей в блоге друг от друга. Благодаря заголовкам пользователь может оценить — тратить ли ему время на чтение текста или пролистать дальше. Третья. Мне хотелось сделать всё стильно, поэтому я назвал элементы меню единообразно — «пишу», «читаю», «ищу» и так далее. Единообразно, но непонятно, пользователи просто не знали куда идти. «Блог» и «поиск» скучно, но более понятно. Навигация пока ещё моя головная боль — в TODO большой список доделок, но пока на это нет времени, хотя кое-что медленно меняется в лучшую сторону. Что я не отношу к ошибкам — это отключение комментариев и существующая схема RSS/OpenID. Комментарии я отключал, думаю, по той же причине, по которой их отключал когда-то Дима, просто устал. А схема авторизации через OpenID и подписки через RSS мне кажется верной, туда должно всё и двигаться. Не сайты, которые похожи на швейцарский нож, а поставщики контента с интерфейсом для их поглощения, плюс управление переходами информации с одного сайта в другой, OpenID и свободный экспорт на основе RSS — из этой оперы. Это уже Web 3.0, новый уровень всемирной паутины, когда интернет работает не на уровне HTTP, а на уровне «сайт» и представляет собой свободноинтегрированные друг в друга сайты. темы: blog 15.12 00:02
₥₳₪€¥Отличную расшифровку DRM подсмотрел — «₫¥₲¥₮₳£ R€$₮r¥₡₮¥¤₦₴ ₥₳₪₳₲€₥€₦₮» (искажённое «Digital Rights Management», составленное из знаков валют) . Напомню, что DRM — это технические средства для защиты авторских прав.
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
Как бы ноги не ошпарить![]() Кстати, у меня наконец-то работают комментарии! 11.12 20:13
А город подумал: ученья идутНа все сайты в домене exler.ru уже несколько дней идёт мощнейшая DDoS-атака. Поэтому сайт может иногда «пропадать». Для тех кто не знает, поясню. DoS-атака — это атака «отказ в обслуживании» («Denial of Service»), когда атакуемую машину заваливают запросами так, что она не справляется с загрузкой или каким-то иным способом добиваются недоступности ресурса (например, атака, при помощи которой добиваются ложного срабатывания системы защиты).
DDoS — это «Distributed Denial of Service» («распределённая» DoS-атака), когда атакующих машим несколько. Атака, по всей видимости, идёт с зарубежный «зомби»-сетей. Сейчас админы уже успешно справились с отражением атаки, так что если и будут «пропадания», то очень кратковременные. 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 (кстати, очень рекомендую его к использованию):
А вот так это будет выглядеть для Ya.Ru:
Так, для Живого Журнала:
Для Liveinternet.ru:
Для того, чтобы изготовить эту строку для каких-то других сервисов пользуйтесь универсальным правилом: обычно значение поля «openid.delegate» совпадает с вашей персональной страницей на этом сервисе, а значение для «openid.server» можно взять из исходного кода той же страницы, там должен быть аналогичный тег LINK.
темы: webdev, openid 06.12 00:36
«Спеста» — винтажная система статистики, часть II.Ещё несколько советов по работе со «Спестой», предыдущая пачка — в первой части статьи.
Совет пять. Судя по коду, «Спеста» иногда способна пропустить какую-то часть хитов (кстати, у «Spesta 2» тот же недостаток). Для слабопосещаемого сайта это не слишком важно, для сильнонагруженных станет серьёзной проблемой. Для того, чтобы поправить ситуацию, открываем файл counter.php, ищем строки, содержащие «SP_fr ($COUNT_FILE)» и «SP_fw ($COUNT_FILE, $content)». Заменяем их на следующие куски кода (первую найденную строку — на первый, вторую — на второй): Совет номер шесть. Открываем все PHP-файлы последовательно и в каждый, в начало PHP-кода ставим нижеприведённый кусок. Файл mailto.php удаляем.
темы: spesta 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
Новую собаку старым трюкамЕгор Куновский описал способ при помощи которого можно научить Google понимать переходы с Rambler, Mail.ru и других российских поисковых машин. Не знаю, действительно ли Google знает только Яндекс, но лучше сделать это более аккуратным способом. У меня, до того как я убрал Google Analytics было так:
Первой строчкой указываются адреса поисковых сайтов, второй — параметр в котором указывается поисковый запрос.
темы: google 05.12 00:27
Сирены «Титана»![]() 04.12 17:58
← страница № 98 → |
|
t=0.085
|