Что такое спойлер

Некоторые ребята начали называть «спойлером» механизм, который позволяет скрывать спойлер на каких-то сайтах, блогах или форумах. Обычно это какая-то разметка.

Ребята, это неправильно! Спойлером может быть только информация, причём определённого рода:

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

Например, «Человек-паук — это Питер Паркер» или «в конце „Трона“ главный герой вернётся в наш мир». Это были спойлеры. А разметку можно назвать, например, «тегом для спойлера».

30 комментариев

С годом зайца!

С годом зайца! (41.16КиБ)

С первым рабочим днём! Как вам там работается?

За фото спасибо Лере.

4 комментария

Рождественские яблоки

Яблоки «с Рождеством» (43.33КиБ)

Увидел в магазине «Метро К&К» (Казань), стоят, правда, дороговато — больше 200 рублей за кило.

5 комментариев

«Битва экстрасенсов»

Столкнулся с тем, что люди реально верят, что «экстрасенсы» из телевизионного шоу «Битва экстрасенсов» — настоящие. Типа «ну не могут же они так играть».

Вы когда в последний раз кино смотрели? Там люди плакали? Злились? Смеялись? Может на световых мечах дрались? Вы верите, что всё, что там происходило — это по-настоящему? А главный герой плакал потому что кто-то реально умер? Нет?

Телевизионное шоу — такое же кино. Ни один закон не заставляет показывать по телевизору что-то реальное, даже если это называется «реалити шоу».

C 1996 года существует Фонд Джеймса Рэнди. Там предлагают миллион долларов «любому человеку, или группе людей, кто будет в состоянии продемонстрировать любое умение экстрасенсорного, паранормального или сверхъестественного качества в условиях лабораторного контроля».

С 1996 года никто не смог доказать у себя наличия каких-либо сверхестественных способностей и получить выплаты от фонда.

Кстати, если тема заинтересовала, в газете «На грани возможного» есть статья «Разрушитель химер», где подробно описана деятельность фонда, есть перечень испытаний и описание одного реально проведённого тестирования.

45 комментариев

Вернулись в Москву

Это не перелёт, а какой-то бег с препятствиями. Как я писал наш рейс отменили (это кстати, уже, кажется, пятая отмена наших рейсов в эти новогодние праздники). Рейс отменили, дали новые места, а билет не поменяли — он у нас не электронный, а представительства Аэрофлота (точнее — кассы) в Казани нет.

Билет не электронный, потому что их не продавали, в Москве мне пришлось прийти в офис Аэрофлота, чтобы купить билет на этот рейс. Как выяснилось позднее, это из-за того, что мы попали на таймшер-рейс, где 20 мест (в том числе и наши) были выкуплены авиакомпанией «Татарстан», хотя на билете написано «Аэрофлот».

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

Как бы не так. В аэропорту Казани нам сказали, что так нельзя. К счастью, получасового мотания нервов, разбирательств по телефону с колл-центром и сотрудниками «Аэрофлота» в аэропорту решили дело. Ура, мы в Москве. Надеюсь, новогодняя гонка с препятствиями уже позади и новых проблем не будет.

3 комментария

Аэрофлот подложил свинью

Совершенно случайно узнали, что наш рейс из Казани отменили. Должны были вылетать в 14:50, решили на всякий случай уточнить время (жена, умница, настояла, чтобы я позвонил).

Рейс отменили. Оказывается, из компании, чтобы сообщить это нам, звонили три раза (на московский номер, ага) и, не дозвонившись, бросили эту затею. Написать на электронную почту, как это обычно делают другие компании, они почему-то не догадались. При этом я зарегистрированный пользователь на их сайте, у них есть все мои данные, я не один раз получал от них письма.

Полетим десятого в шесть утра (боже, за что?), билеты нам поменяют при регистрации. Хорошо хоть места нашлись.

Добавлено позднее: цитата из Договора перевозки «Аэрофлота» (пункт 10):

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

Вот так вот. Так что я, видимо, должен ещё «спасибо» сказать, что вообще пытались дозвониться.

19 комментариев

Сериал для программистов на JavaScript

Не пропустите новогодний сериал для программистов — мы с неким LO сокращаем мой второй вариант игры «Tank 1K», написанный по рождественским правилам конкурса JS1K (программ на JavaScript, умещающихся в 1КБ).

Уже сократили с 1023 до 773 770 759 752 723 байта (более чем на 29% и это на таком крошечном размере).

Для меня — полезное соревнование, тренинг, о котором только можно мечтать, у LO отлично варит голова. Для вас — возможность посмотреть как в JS можно сократить размер программы. Уже сейчас видно, что из некоторых ходов вполне можно вывести правила, например: «если у тебя в программе есть пустые скобки любого вида, посмотри нельзя ли их чем-нибудь занять».

Если какие-то места программы непонятны, можно смело спрашивать тут, в комментариях.

3 комментария

«Трон: наследие»

Посмотрели «Трон» в 3D — история о том как Тимур Батрутдинов со своим отцом, обладающим суперспособностью стареть в виртуальном мире, и программой исскуственного интеллекта, злоупотребляющего косметикой, в гидрокостюмах живенько мочат врагов логотипами «Камеди Клаба».

Затянуто в два раза, но посмотреть можно.

Оставить комментарий

«Ёлки»

Спонтанно поехали вчера в кинотеатр, посмотреть фильм «Трон», но так как в зале с 3D было холодно, о чём всех предупреждало объявление на кассе, решили сходить на фильм «Ёлки», ничего особо не ожидая.

По-моему, отлично снятое, доброе, смешное новогоднее кино. Не пожалели, что сходили.

11 комментариев

В Домодедове всё спокойно

Утро для меня непривычное время. Обычно, когда я просыпаюсь, люди обдумывают что будут есть на обед. Может быть из-за этого мне кажется, что сегодняшнее утро излишне наполненно агрессией. Возможно по утрам все всегда такие.

Вот в метро бабушка тащит мимо меня ребёнка за руку, ребёнку всё интересно.

— Баба, а почему там свечи горят? — указывает на потолок, где светит люстра с вытянутыми энергосберегающими лампочками, действительно похожими на свечи. — Какие свечи, чо тупишь-то? Это лампачки — бабуля раздражена, дёргает ребёнка за руку, это такой способ отвлечь, сместить фокус внимания. — А… а лампочки почему горят? — ребёнок не поддаётся. — Ну чё ты, а? Заладила!! Надо, значит!!! — чуть ли не на крик.

В аэропорту интеллигент с кем-то серьёзно ругается по телефону, звучит это забавно, так как воспитание трансформирует фразу «ты у меня ща гавно будешь жрать» в смешное «ты у меня эти какашки скушаешь, прямо сейчас».

Через минуту по тому же маршруту, но более грубо кого-то пытается отослать усталая барышня с кругами вокруг сонно слипающихся век, на футболке надпись «Moscow never sleeps». Последнее видно; хотя даётся тяжело.

Мне тоже несладко — за соседним столиком сидит какой-то бейтаныс ағай из Казахстана, очень хочется попросить его кричать в трубку потише. Меня раздражает его крик, хотя, может быть, его дедушка («Ата! Ата!» — кричит он на весь зал в трубку) просто плохо слышит.

А, в целом, всё спокойно, самолёты летают, ничего не напоминает о том недавнем аде, что тут довелось пережить людям.

4 комментария

С наступающим!

С наступающим Новым годом, ребята!

Никаких итогов года подводить не буду, всё-таки два раза в год это делать — слишком (первый раз я это делаю на свой день рождения). Мы с женой полетели в Казань.

4 комментария

«Опера» 9.50 и выше показывает не все JPEG

«Опера», не покажи этот JPEG! (11.92КиБ)

Случайно выяснилось, что «Опера» с какой-то версии не умеет показывать некоторые JPEG (и считает, что в них 0 бит на пиксель). Попытаюсь выяснить с какой версии это началось.

Добавлено: «Опера» 9.00, 9.27, 9.63, 10.00, 11.00, 11.01а и Opera Mini 5.1 не показывает. «Опера» 8.54 — показывает. Значит сломали в девятой версии.

23 комментария

Расширение для «Оперы»: сайт только у меня не видно?

Артемий Трегубенко написал расширение для «Оперы» «У всех работает».

У всех работает? (44.87КиБ)

Смысл в том, что если ваша «Опера» показывает экран с ошибкой «Невозможно найти удалённый сервер», это расширение при помощи сервиса «Down for everyone or just me» проверяет доступность того же сайта для других пользователей.

Полезно, можно узнать проблема с сайтом или у вашего провайдера.

А картинка, которая в этом посте, только в моей «Опере» не показывается или в вашей тоже?

Добавлено: картинка не открывается под любой платформой в последней «Опере», сейчас потестирую в других.

Чуть позже: «Опера» 8.54 показывает, 9.63 — уже нет. Я заменил картинку на такую, которую «Опера» понимает.

7 комментариев

localStorage для Internet Explorer 6 и 7

Написал небольшой класс в JavaScript для поддержки API localStorage в IE 6 и 7. localStorage — это браузерное хранилище key-value. Эмулируются setItem, getItem, removeItem, key, clear и length (для хранения использует behavior userData).

Доступ к значениям как к свойствам класса не реализован. Прежде всего потому, что в 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());

6 комментариев

Makecorner 0.25

Выложил (на то же место) новую версию программы для скругления уголков (я про неё писал в сентябре).

Изменения следующие:

  • появился новый параметр ключа —width, можно указать «auto» или просто «a» и программа не будет масштабировать картинку.
  • я постарался улучшить оптимизацию JPEG изображений встроенной программой jpegtran: теперь я указываю специальные профили из программы jpegcrush и задаю ключ «grayscale», если JPEG чёрно-белый (сканирую каждый пиксель и смотрю серый ли он).
  • появилось «пасхальное яйцо».
    Добавлено позже: нашёл какую-то ошибку с определением серых изображений. Пожалуйста, пока не качайте эту версию.

Ещё позже: поправил. Опечатка в одном месте.

12 комментариев

Кнопка открывания дверей в лифтах

Лифт (97.00КиБ)

Единственная кнопка во всём лифте, которая нужна мне срочно — это кнопка «открыть двери». Я пытаюсь нажать её, когда кто-нибудь бежит или просит подержать лифт. К сожалению, эта кнопка почти никогда не выделена, а я никак не могу запомнить её расположение. Значки тоже не помогают, мне не удаётся в секунду распознать три значка на трёх кнопках.

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

Зато зачем-то выделена кнопка звонка лифтёру, зачем это сделано — загадка. Даже если я моментально нажму эту кнопку в критичной ситуации, то лифтёр что, среагирует мгновенно? Лучше было бы, если бы эта кнопка фосфорно светилась в темноте, а кнопка открытия дверей подсвечивалась лампочкой.

8 комментариев

Фотокамера из конструктора «Лего»

Снимок камеры из конструктора (27.40КиБ)

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

Что мне понравилось больше всего (кроме того, что я получил удовольствие от того, что люди делают такие безумные штуки), что фотографии выглядят сильно «под старину», как на самых плохих дагерротипах конца XIX века.

Камера (28.88КиБ)

13 комментариев

Банан велик, а кожура ещё больше

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

В каком-то бородатом году, когда я ещё хостился на сайте Экслера, произошёл технический сбой диска и часть моих картинок за 2003 год восстановить не удалось. Расхожий мусор я восстановил быстро, а одну картинку не смог, сайт GIF.GIF, с которой я его взял уже не существовал к тому времени, в кешах поисковых машин тоже пусто.

Та самая картинка (80.07КиБ)

А сегодня, перечитывая комментарии к записи к той картинке, я сообразил, что в них содержится масса данных — фамилия, имена, ник, два адреса.

По реквизитам сына, который читает меня до сих пор (Сергей, привет!), я узнал его ЖЖ и e-mail, связался с ним, и он выслал мне ту самую картинку — это поверхность шкатулки ручной работы, которую делала его мама, он мне переслал фотографию. К сожалению, анимированная версия не сохранилась.

Татьяна, очень красивая работа, спасибо вам!

Добавлено позднее: в комментариях появилась Татьяна, оказывается у неё сохранилась анимированная версия. Ура!

Дом, снег… (11.30КиБ)

3 комментария

Сконвертировал сайт за 2000—2003 гг

Наконец-то сконвертировал в блог свой старый сайт — начала двухтысячных. Можно перелистнуть на первую страницу и читать. Сам хочу посмотреть о чём же писал десять лет назад.

Вероятно в RSS прилетит куча новых постов (больше ста), извините, кого заспамлю.

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

Добавлено: сконвертировал ещё и заголовки (оказалось, что можно получить ещё и время заметок, обновил и время), плюс включил обратно комментарии.

28 комментариев

CANVAS 1K Tank Game

Canvas Tank Game (0.58КиБ)

Решил попробовать уместить какую-нибудь игру с использованием тега CANVAS в 1КБ. После всех оптимизаций, который заняли у меня вдвое больше времени, чем написание игры, получилась несложная игрушка в 1020 1023 байта (то есть на четыре один байт меньше, чем килобайт).

Цель — подбить своим «танком» как можно больше вражеских ракет. Управление — курсорными клавишами, стрелять пробелом. Даётся три жизни, за каждые 20 сбитых ракет жизнь добавляется, если ракета долетит до вашей стороны или коснётся танка, жизнь теряется. Для рестарта игры просто перезагрузите страницу.

Должно работать везде, где поддерживается тег CANVAS, я тестировал в «Опере» 11, «Хроме» 10 и FF 3.6.13.

Have a fun!

Неинтересные технические подробности
Добавлено позднее: оказывается, я вполне уложился бы в правила конкурса JS1K (конкурс программ на JS, занимающих не более 1КБ), на который мне вчера ссылок накидали. У меня чистый JS (без сжатия в PNG) на восемь байт короче килобайта. А все эти пляски с кодом в PNG нужны для того, чтобы у меня весь код (включая HTML) поместился в килобайт.

Ещё позже: на заметку. Я вчера обращался к тегу CANVAS по идентификатору. Это очень длинный способ (не говоря уже о том, что тег должен иметь идентификатор, что ещё тратит место), вчера, когда мне показали JS1K, я там увидел способ короче: «document.body.children[0]», а сегодня я придумал способ ещё короче: «document.all[3]», это нестандартное свойство, но его поддерживают все браузеры.

Если использовать это свойство, то программа начинает занимать 1007 байт и у меня появляется ещё 17 байт. Может танк переделать? Мне пришлось упростить графику, из-за чего танк стал выглядеть странно.

И ещё позже: вернул прежний танк и сменил цвет «спецэффекта» при столкновении на красный, игра снова занимает 1020 байт. Если интересно, можно посмотреть как выглядит исходный код JavaScript моей игрушки. И ещё я внезапно придумал как ещё чуть-чуть сократить код.

И ещё: сократил чуть-чуть код, в частности, стрелять можно любой кнопкой, кроме курсорных. Освободилось несколько байт и я в левом верхнем углу нарисовал ракету, чтобы было понятно, что это количество сбитых ракет. Игра стала занимать 1023 байта.

195 комментариев