Что такое спойлер
Некоторые ребята начали называть «спойлером» механизм, который позволяет скрывать спойлер
Ребята, это неправильно! Спойлером может быть только информация, причём определённого рода:
Спойлером (от англ. spoiler — портящий, прерывающий, яп. ネタバレ) в интернетах обычно называют информацию, раскрывающую сюжетные подробности
какого-либо художественного произведения. Нередко дальнейшее знакомство с произведением после прочитанного спойлера становится бессмысленным и скучным занятием.
Например,
С годом зайца!
Рождественские яблоки

Увидел в магазине «Метро К&К» (Казань), стоят, правда, дороговато — больше 200 рублей за кило.
«Битва экстрасенсов»
Столкнулся с тем, что люди реально верят, что «экстрасенсы» из телевизионного шоу «Битва экстрасенсов» — настоящие. Типа «ну не могут же они так играть».
Вы когда в последний раз кино смотрели? Там люди плакали? Злились? Смеялись? Может на световых мечах дрались? Вы верите, что всё, что там происходило — это
Телевизионное шоу — такое же кино. Ни один закон не заставляет показывать по телевизору
C 1996 года существует Фонд Джеймса Рэнди. Там предлагают миллион долларов «любому человеку, или группе людей, кто будет в состоянии продемонстрировать любое умение экстрасенсорного, паранормального или сверхъестественного качества в условиях лабораторного контроля».
С 1996 года никто не смог доказать у себя наличия
Кстати, если тема заинтересовала, в газете «На грани возможного» есть статья «Разрушитель химер», где подробно описана деятельность фонда, есть перечень испытаний и описание одного реально проведённого тестирования.
Вернулись в Москву
Это не перелёт,
Билет не электронный, потому что их не продавали, в Москве мне пришлось прийти в офис Аэрофлота, чтобы купить билет на этот рейс. Как выяснилось позднее, это
Тётенька
Как бы не так. В аэропорту Казани нам сказали, что так нельзя. К счастью, получасового мотания нервов, разбирательств по телефону
Аэрофлот подложил свинью
Совершенно случайно узнали, что наш рейс из Казани отменили. Должны были вылетать в 14:50, решили на всякий случай уточнить время (жена, умница, настояла, чтобы я позвонил).
Рейс отменили. Оказывается, из компании, чтобы сообщить это нам, звонили три раза (на московский номер, ага) и, не дозвонившись, бросили эту затею. Написать на электронную почту, как это обычно делают другие компании, они
Полетим десятого в шесть утра (боже, за что?), билеты нам поменяют при регистрации. Хорошо хоть места нашлись.
Добавлено позднее: цитата из Договора перевозки «Аэрофлота» (пункт 10):
Время, указанное в расписании и других документах, не гарантируется и не является составной частью настоящего договора. (…) Расписание может быть изменено без предупреждения пассажира.
Вот так вот. Так что я, видимо, должен ещё «спасибо» сказать, что вообще пытались дозвониться.
Сериал для программистов на JavaScript
Не пропустите новогодний сериал для программистов — мы с неким LO сокращаем мой второй вариант игры «Tank 1K», написанный по рождественским правилам конкурса JS1K (программ на JavaScript, умещающихся в 1КБ).
Уже сократили с 1023 до 773 770 759 752 723 байта (более чем на 29% и это на таком крошечном размере).
Для меня — полезное соревнование, тренинг, о котором только можно мечтать, у LO отлично варит голова. Для вас — возможность посмотреть как в JS можно сократить размер программы. Уже сейчас видно, что из некоторых ходов вполне можно вывести правила, например: «если у тебя в программе есть пустые скобки любого вида, посмотри нельзя ли их
Если
«Трон: наследие»
Посмотрели «Трон» в 3D — история о том как Тимур Батрутдинов со своим отцом, обладающим суперспособностью стареть в виртуальном мире, и программой исскуственного интеллекта, злоупотребляющего косметикой, в гидрокостюмах живенько мочат врагов логотипами «Камеди Клаба».
Затянуто в два раза, но посмотреть можно.
«Ёлки»
Спонтанно поехали вчера в кинотеатр, посмотреть фильм «Трон», но так как в зале с 3D было холодно, о чём всех предупреждало объявление на кассе, решили сходить на фильм «Ёлки», ничего особо не ожидая.
В Домодедове всё спокойно
Утро для меня непривычное время. Обычно, когда я просыпаюсь, люди обдумывают что будут есть на обед. Может быть
Вот в метро бабушка тащит мимо меня ребёнка за руку, ребёнку всё интересно.
— Баба, а почему там свечи горят? — указывает на потолок, где светит люстра с вытянутыми энергосберегающими лампочками, действительно похожими на свечи. — Какие свечи, чо
В аэропорту интеллигент
Через минуту по тому же маршруту, но более грубо
Мне тоже несладко — за соседним столиком сидит
А, в целом, всё спокойно, самолёты летают, ничего не напоминает о том недавнем аде, что тут довелось пережить людям.
С наступающим!
С наступающим Новым годом, ребята!
Никаких итогов года подводить не буду,
«Опера» 9.50 и выше показывает не все JPEG

Случайно выяснилось, что «Опера»
Добавлено: «Опера» 9.00, 9.27, 9.63, 10.00, 11.00, 11.01а и Opera Mini 5.1 не показывает. «Опера» 8.54 — показывает. Значит сломали в девятой версии.
Расширение для «Оперы»: сайт только у меня не видно?
Артемий Трегубенко написал расширение для «Оперы» «У всех работает».

Смысл в том, что если ваша «Опера» показывает экран с ошибкой «Невозможно найти удалённый сервер», это расширение при помощи сервиса «Down for everyone or just me» проверяет доступность того же сайта для других пользователей.
Полезно, можно узнать проблема с сайтом или у вашего провайдера.
А картинка, которая в этом посте, только в моей «Опере» не показывается или в вашей тоже?
Добавлено: картинка не открывается под любой платформой в последней «Опере», сейчас потестирую в других.
Чуть позже: «Опера» 8.54 показывает, 9.63 — уже нет. Я заменил картинку на такую, которую «Опера» понимает.
localStorage для Internet Explorer 6 и 7
Написал небольшой класс в JavaScript для поддержки API localStorage в IE 6 и 7. localStorage — это браузерное хранилище
Доступ к значениям как к свойствам класса не реализован. Прежде всего потому, что в JS в этих версиях IE нет сеттеров и геттеров, а для того, чтобы воспользоваться onpropertychange мой объект надо поместить в DOM, что порождает массу гемороя, типа присутствия свойств из DOM, а не из хранилища.
Так же я не сделал события onstorage и onstoragecommit, потому что не придумал для чего это нужно (а второе корректно реализовать вообще нельзя).
Ещё не реализовал нестандартное, но полезное расширение remainingSpace, потому что в общем случае нельзя сказать сколько места ещё осталось в userData, так как квота зависит от зоны сайта (доверенная, интранет и так далее).
С большой вероятностью эта зона, конечно же, «интернет» (то есть квота 1МБ), но квоты localStorage сильно отличаются по механизму от userData, у последнего две квоты — на документ (в зоне «интернет» это 128КБ) и на домен (упомянутый мегабайт). Вполне может случится, что квота «на документ» ещё не исчерпана, а доменная уже да.
Зато я реализовал exception, который бросается в том случае, если IE говорит, что квота исчерпана.
В общем, основные вещи есть. Пример использования:
// .-~*´¨¯¨`*·~-.¸ тут подключаем библиотеку ,.-~*´¨¯¨`*·~-.¸
// записываем два значения
try {
localStorage.setItem('key1', 'myvalue1');
localStorage.setItem('key2', 'myvalue2');
} catch (e) {
if (e.description == 'QUOTA_EXCEEDED_ERR') {
alert('Нет места');
} else {
alert('Что-то не так, не знаю что.');
}
}
// смотрим значение по ключу «key1»
alert(localStorage.getItem('key1'));
// смотрим первое значение (по номеру), нумерация с нуля
alert(localStorage.key(0));
// удаляем значение по ключу «key1»
alert(localStorage.removeItem('key1'));
// смотрим сколько ключей осталось
alert(localStorage.length);
// очищаем хранилище полностью
alert(localStorage.clear());Makecorner 0.25
Выложил (на то же место) новую версию программы для скругления уголков (я про неё писал в сентябре).
Изменения следующие:
- появился новый параметр ключа —width, можно указать «auto» или просто «a» и программа не будет масштабировать картинку.
- я постарался улучшить оптимизацию JPEG изображений встроенной программой jpegtran: теперь я указываю специальные профили из программы jpegcrush и задаю ключ «grayscale», если JPEG
чёрно-белый (сканирую каждый пиксель и смотрю серый ли он). - появилось «пасхальное яйцо».
Добавлено позже: нашёлкакую-то ошибку с определением серых изображений. Пожалуйста, пока не качайте эту версию.
Ещё позже: поправил. Опечатка в одном месте.
Кнопка открывания дверей в лифтах

Единственная кнопка во всём лифте, которая нужна мне срочно — это кнопка «открыть двери». Я пытаюсь нажать её, когда
Отдельный тупизм в нашем офисном лифте, что расположение этой кнопки справа и слева различаются. На снимке левая сторона лифта — кнопка открытия дальняя, справа кнопка открытия ближняя.
Зато
Фотокамера из конструктора «Лего»

Один умелец с «Хабра» сделал фотокамеру из конструктора «Лего», из набора «Lego Mindstorms» (это такой набор из которого можно делать роботов), камера умеет двигать плёнку покадрово, регулировать выдержку.
Что мне понравилось больше всего (кроме того, что я получил удовольствие от того, что люди делают такие безумные штуки), что фотографии выглядят сильно «под старину», как на самых плохих дагерротипах конца XIX века.

Банан велик, а кожура ещё больше
Интернет — увы, тот банан, кожура которого ещё больше. Он только кажется огромным, но в его недрах много пустот — отключенных серверов, умерших дисков, неоплаченных хостингов.

А сегодня, перечитывая комментарии к записи к той картинке, я сообразил, что в них содержится масса данных — фамилия, имена, ник, два адреса.
По реквизитам сына, который читает меня до сих пор (Сергей, привет!), я узнал его ЖЖ
Татьяна, очень красивая работа, спасибо вам!
Добавлено позднее: в комментариях появилась Татьяна, оказывается у неё сохранилась анимированная версия. Ура!

Сконвертировал сайт за 2000—2003 гг
Вероятно в RSS прилетит куча новых постов (больше ста), извините, кого заспамлю.
Жаль пока неоткуда взять заголовки, но у меня есть мысли как их можно получить. Попробую это сделать на этой неделе.
Добавлено: сконвертировал ещё и заголовки (оказалось, что можно получить ещё и время заметок, обновил и время), плюс включил обратно комментарии.
CANVAS 1K Tank Game

Решил попробовать уместить 1020 1023 байта (то есть на четыре один байт меньше, чем килобайт).
Цель — подбить своим «танком» как можно больше вражеских ракет. Управление — курсорными клавишами, стрелять пробелом. Даётся три жизни, за каждые 20 сбитых ракет жизнь добавляется, если ракета долетит до вашей стороны или коснётся танка, жизнь теряется. Для рестарта игры просто перезагрузите страницу.
Должно работать везде, где поддерживается тег CANVAS, я тестировал в «Опере» 11, «Хроме» 10 и FF 3.6.13.
Have a fun!
Ещё позже: на заметку. Я вчера обращался к тегу CANVAS по идентификатору. Это очень длинный способ (не говоря уже о том, что тег должен иметь идентификатор, что ещё тратит место), вчера, когда мне показали JS1K, я там увидел способ короче: «document.body.children[0]», а сегодня я придумал способ ещё короче: «document.all[3]», это нестандартное свойство, но его поддерживают все браузеры. Если использовать это свойство, то программа начинает занимать 1007 байт и у меня появляется ещё 17 байт. Может танк переделать? Мне пришлось упростить графику, И ещё позже: вернул прежний танк и сменил цвет «спецэффекта» при столкновении на красный, игра снова занимает 1020 байт. Если интересно, можно посмотреть как выглядит исходный код JavaScript моей игрушки. И ещё я внезапно придумал как ещё И ещё: сократил Неинтересные технические подробности
