Не все кнопки одинаково полезны

Это не «клавиатура для блондинок» (надпись на втором ряду — «ненужные кнопки»), это клавиатура на рабочем месте банковских работников
Бардак: Motion JPEG (M-JPEG) и тег VIDEO
С утра, складывая носковый пасьянс (не сошёлся, три (!!!) разных носка) — жена постирала чёрное, я задумался о формате

Таким образом, вопреки всем разговорам, у нас уже есть единый потоковый видеоформат, de facto, причём есть давно. Правда, плохенький (напоминаю — каждый кадр целый JPEG) и проигрываемый немного
Бардак заключается в том, что тег VIDEO не поддерживает формат Motion JPEG ни в одном из браузеров. Это многое говорит о том как производители браузеров определяют вектор развития их детища. В погоне за модой забывают наводить порядок и править баги (красный круглый камень в дырочкой
Воспроизводится
При помощи тега CANVAS,
Можно, кстати, вспоминить, что Internet Explorer
Ещё более кстати, что этот плеер будет поддерживать видео в формате AVI и кодеки установленные в системе, так что если у вас в системе есть кодек
Rape-Axe
Вроде как обещается, что в случае чего, кровь насильника не попадёт на слизистые (мало ли чем болен преступник).
У меня только два вопроса — как проводили испытания и что будет, если насильник будет на адреналине или на наркоте. Я помню, что на карате, когда в крови много адреналина, некоторые очень сильные удары воспринимаются совсем иначе.
На последний мой вопрос на сайте есть ответ, но, на мой взгляд,
with в JavaScript и VBScript
Одной из бесполезных конструкций языка JavaScript называют «with». Неспроста, эта конструкция непрозрачна и потенциально может создать непростые проблемы. Небольшой код:
with (MyObject) {
width = '100px';
height = '200px';
display = 'block';
}Что будет, если свойства с таким именем не найдётся? Код заменит значения переменных width/height/display или же создаст их, если их ещё не было. Что приведёт к проблемам, если мы в связанном коде
С языком VBScript я знаком с тех пор как программировал, используя технологию ASP. В дальнейшем, я иногда использовал его, чтобы программировать
Этот язык я,
With MyObject
.width = "100px"
.height = "200px"
.display = "block"
End WithЗаметили точки впереди? Они говорят о том, что используются не просто переменные, а свойства (ну или методы) объекта, указанного в «With». Вот так просто решается куча проблем.
Прощай, «Опера»
Прощай, «Опера», мне было хорошо с тебой, но это невыносимо. С версии 10.50 ты обрастаешь багами, как баржа ракушками. Сегодня я увидел, что на твоём FTP лежит релиз версии 10.60, а в нём три критичных для меня бага, два из которых делают жизнь в нашем интранете для меня труднее. Я терпел, сколько мог, но больше не могу.
Научите меня пользоваться «Хромом», ещё лучше — «Хромиумом», он, говорят, быстрее развивается, что немаловажно для молодого браузера. Что ставить? Откуда скачать уже собранные версии «Хромиума»?
Секс-дружелюбие
Автор блога, ее зовут Эмили Нагоски, приводит несколько найденных ею в Сети определений
секс-дружелюбия: «уважение к каждому из великого множества индивидуальных складов сексуальности, хотя господствующая культура и стремится извести сексуальное разнообразие»;
«убеждение: секс — это удовольствие, это хорошо и весело»;
«свободная от стыда радость здоровой сексуальности»;
«взгляд на сексуальность как нечто хорошее — а не плохое и даже не нейтральное».
Наста_Ящая из F5 предлагает переводить
Кстати, в F5 вокруг английских слов английские кавычки. Какой стыд.
Про состояние российской разведки
Свежая смешнина со вкусом Родины — недавно в США поймали российских шпионов разведчиков, в ЖЖ smartnik800 некоторые особенности нашей разведки:
Российские шпионы пользовались стеганографией (интеграция текста в невинные по содержанию картинки), но при обыске ФБР нашло бумажку, где было написано «alt, control, e» и записан пароль открытым текстом (именно такими напоминалками обклеены мониторы у российских бухгалтеров!).
Средством сообщения у второй группы шпионов был коротковолновый радиопередатчик, а «радистку Кэт» звали Вики Пелеас (сразу вспоминается Греф с бессмертным: «где же вы же ее
взяли-то, рухлядь эту старую?»)
Там ещё несколько пунктов с подобным содержанием.
Никто ещё не выпустил пиво Python?
Сейчас сижу на кухне, а перед глазами стоит соседская литровая банка пива, подумалось, что если бы
Не все знают Пайтон, поэтому придётся разъяснить шутку. «1L» — так в Пайтоне записывается число «1» типа «long» (антизанудская мантра: знаю, long — это
DEFENDER в favicon
Трюк с подменой favicon используется в вебе довольно редко, впрочем, этому есть причина: он не работает в Internet Explorer (даже
Но есть способы использовать его более впечатляющим (хотя и более бесполезным) способом — дать возможность играть внутри favicon в игры. Существуют несколько таких игр, одна из них, например — DEFENDER.
Работает в «Опере» 9.2+ и Firefox 2.x (в FF 3 проблемы). Под WebKit работает выборочно, новые версии (где реализован метод CANVAS API «toDataURL()») игру поддерживают, правда, в шестом «Хромиуме» тормозит безбожно.
Управление простое: «N» — новая игра и стрелять, «WASD» (или клавиши курсора) — управление корабликом, «Enter» — чтобы выбрать куда вывести игру (на страницу или favicon).
P.S. На сайте с этой игрой есть ещё несколько таких игр.
Хороним XBM
Помимо GIF, JPEG, PNG и SVG в браузерах есть ещё один «общий» формат графики — XBM. Не сказать чтобы сильно полезный, скорее забавный. Формат текстовый и очень простой, как раз его использует Wolf5k для отображения графики.
Несколько лет назад его поддержку прекратил браузер IE, с версии IE6.0SP1 XBM больше не поддерживается. Причина проста — IE падал, если подсунуть ему неправильно сформированную картинку. Поэтому поддержку формата просто отключили (сделали ключ в реестре («BlockXBM»), если очень хочется, поддержку можно вернуть).
И вот сегодня я, поставив Firefox 4.0b2pre, увидел, что в нём нет поддержки XBM. Стал разбираться. Оказывается его поддержку выключили в версии 3.6:
It doesn’t seem like anyone uses XBMs on the web these days (microsoft dropped support for them in ie6), and we no longer use them anyone in the platform. Each additional image decoder makes it more time consuming to maintain imagelib, because changes have to be replicated. Thus, unless somebody has a reasoned opinion to the contrary, I’ll remove XBM support in a week or two.
Увы. Из исходников выкинули совсем, никакого ключа в реестре.
Снова про кроссбраузерные скруглённые уголки
Решение проблемы скруглённых уголков через VML есть в статье Льва Солнцева «Кроссбраузерные закруглённые уголки» (без JavaScript). Проблема заключается в следующем:
В VML есть предопределённая фигура: прямоугольник с закруглёнными углами roundrect. […] Но у этой фигуры есть один значительный недостаток: радиус кривизны задаётся через отношение к большей стороне, что делает результат непредсказуемым и неподходящим для многих случаев.
То есть, при одинаковом параметре закругления блоков разного размера, радиус кривизны будет различаться.
Контекстная реклама такая контекстная

Из статьи «Письмо Яне Яковлевой: „Как меня пытаются посадить“».
Милиционеры умнее «Интел» или у них «Интел инсайде», потому они и умнее?
Микроболк
В Mail.Ru потихоньку рождается новый термин? «Микроболк». Чувствую себя Доктором Зло.
Google Native Client
Поиграл немного с Google Native Client — это плагин для браузера (поддерживаются Firefox, «Опера», «Сафари» и «Хром» и платформы Windows, Mac и Linux на x86,
Это плагин, который умеет исполнять скомпилированный бинарный (!) код в браузере.
Меня интересовало как тут соблюдается безопасность. Коду многое запрещено (по сути, всё, что разрешено — это эффективное использование процессорного времени, за остальным нужно обращаться в браузер через NPAPI или SRPC (Simple RPC)), но разработчики много говорят о том, что допускаются ассемблерные вставки.
Как так?
Ларчик, как оказывается, открывается просто и достаточно остроумно.
Не знаю как там в процессорах ARM, а в x86 команды могут иметь разную длину,
Это даёт возможность замаскировать внутри команды любую запрещённую команду и выполнить её, сделав переход не на первый байт. Как Google Native Client защищает нас от этого? Очень просто.
В Ассемблере есть специальная команда — «NOP» (в x86 занимает один байт, её код — «90»), она не делает ничего. Все команды вашей программы выравниваются до 16 байт этой командой. То есть «MOV AL,41» будет дополнена
Вторая опасность — код в данных, ведь почти любые последовательности байт это
Интересно, что код, контролирующий безопасность и реализующий SRPC, получился очень небольшой, в ролике на YouTube разработчик говорит то о 6000 строк, то о 6000 байт. В любом случае, то и другое — немного. Там же (в ролике) показывали интерпретатор Ruby, работающий в браузере. Это интересно, но не более, интереснее то, что код на Си (или там C++, неважно) пришлось менять очень мало, чтобы перекомпилировать его в Google Native Code.
Мне кажется, это интересный проект.
Буйство эмуляторов на JavaScript
Существуют эмуляторы на JavaScript следующих платформ: GameBoy, ZX Spectrum,
Естественно, нужен
Есть где поностальгировать. Думаю, лет через 5—10 появится эмулятор PSP на JavaScript с использованием WebGL, мощностей как раз хватит.
Wolf 5k strikes back
Забавная была игрушка «Wolf5K». Это игра на JavaScript, занимающая пять килобайт (!). Был такой конкурс
Ребята произвели фурор тогда, они уместили в этот размер небольшую псевдотрёхмерную бродилку. Никаких CANVAS! Хитрость в том, что вся графика (кроме кровищи) делается в формате XBM и передаётся тегу IMG через схему «javascript». Игрушка работала в IE5, IE6, Mozilla 1.1+ и Netscape 4.77 для Мака.
Формат XBM — это текстовый формат
В общем, захотелось мне
javascript:void(eval(X.toString().replace(/"j.*?;"/, '"data:image/x-xbitmap," + encodeURI(im)')))В IE
Добавлено утром: читатели сообщают, что в «Сафари» тоже работает.
Пуш-ап в плавках
Молодой человек, однако, видит, гад, что я носки не самые дешевые выбрал, и вот же еще ему обязательно надо меня развести, и поэтому не унимается:
— И с пушапом есть… — Чего?
С чем-чем? — С пушапом. Вот. Изволите видеть…И протягивает мне зелененькие трусики в облипочку.
А внутри…э-э-э, как бы это…ну, на самом вот на этом месте укреплена такая будто бы чашка от бюстгальтера из толстого поролона, обшитого мягкой тряпочкой.— Это, —указывает молодой человек наманикюренным пальчиком, — в целях эстетического впечатления. Понимаете? Так, получается цельно, аккуратно, объемно. Пушап, в общем. Некоторые девушки…
Цитата из
Короткий способ определения IE через JavaScript в IE9 не сработает
Из блога IEBlog:
var len = [1,2,3,].length;
alert(len); //should be 3, IE8 says 4В IE9 поправили застарелый баг — Internet Explorer добавляет ещё один элемент в массив, если в конце перечисления элементов массива есть запятая. На этом основан самый короткий способ проверки на IE через JavaScript. По стандарту последняя запятая игнорируется. IE9 теперь следует стандарту.
Не будет работать и проверка через «\v» (цитата из того же блога):
alert("\v"==="v");//IE8 said true, should be false
alert("\v"==="\u000b");
//IE8 said false, should be trueВ общем, полагаться на хаки в таких проверках будет нельзя. Думаю, единственный надёжным способом будет условная компиляция:
if (/*@cc_on!@*/0) {
// IE
}P.S. А вот найденную мной… особенность метода split в IE9 так и не поправили.
В журнале «Xakep» написано, что XOR эффектиный криптоалгоритм
Ответ очень прост — нужно вспомнить алгоритмы шифрования. Самым простым и одним из самых эффективных (при правильном использовании) криптоалгоритмов является так называемое
XOR-шифрование.
Цитата из журнала «Xaxep». OMG! XOR назвали «эффективным криптоалгоритмом».
Вакансии программистов в «Яндексе»
Ребята, у меня в группе появилось несколько вакансий программиста на Пайтоне. Основные требования — Python, MySQL, чтение HTML/CSS. Большим плюсом будет знание Django, плюсом — знание Perl или PHP, умение работать с SVN или представление о том, что такое системы контроля версий.
Напишите о себе мне на почту или в комметариях к этой заметке (только не забудьте сказать как с вами связаться).
Работать придётся на внутренними сервисами компании «Яндекса», это (например) наша внутренняя Вики, «Ярушка», система для саппортов, архив рассылок и так далее.