Определите звук по спектральному изображению

Ниже приводится спектрограмма звука падающей бомбы.

Falling bomb sound spectral display

Единственная найденная за короткое время действительная аудиозапись падающей бомбы оказалась очень зашумлённой (видимо, на войне была сделана), однако в целом кажется, что это свистит, направляясь к земле, настоящий снаряд. Желающие даже могут прослушать аудиозапись.

Однако не надо устраивать кровопролитные войны, чтобы записать ценою тонн керосина, стали и торпекса звук падающего снаряда. Современный обыватель любого населённого пункта России может за один вечер записать звук, почти полностью идентичный звуку падающей бомбы. Сегодняшние «бомбовые» звуки были не идеально похожи на те, что получаются в другие разы, но отличие нижеприведённых звуков от военной звукозаписи снаряда может быть объяснено не иначе как законами подлости, Мёрфи и т. д. Ответьте на вопрос и попробуйте записать такой же звук, зная источник оного.

Identify the sound by its spectral display

«Я Куба!»

Identify the sound by its spectral display

Задание на пятёрку: определите, взглянув на спектрограммы выше, источник звука (смоделируйте в голове звуковую волну).

Так ли строг запрет на разрядку строчных?

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

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

Однако не на всех фронтах мы, верстальщики, бьём неприятеля; иногда приходится сдавать позиции. Так, недавно не удалось уговорить одного издателя расширить текстовую область и предоставить больше места для более совершенной оптимизации расположения текста. Смертельные ранения получили две строки, в которых неразрывные конструкции никак не умещались или не переносились без превращения предыдущей строки в кисею. Да, иногда мы терпим поражение и подчиняемся приказам некомпетентных господ набирать текст, пестрящий длинными словами, в узкую колонку стандартным кеглем. Однако мало кто знает, что у нас есть секретное оружие, о котором в мирное время боятся шептаться сами верстальщики...

Lowercase letters spaced out

Да, это разрядка строчных! Допустимо использовать разрядку строчных до 0,05 em при вынужденном наборе очень узких колонок текста для уменьшения количества слишком широких пробелов и переносов, так как даже лучшие алгоритмы переноса не всегда могут найти подходящее место для разрыва строки. Даже pdfLaTeX+microtype, да. В самых трудных местах можно ввести единовременную разрядку проблемного слова до 0,1 em.

Как избавиться от подчёркивания изображения-ссылки в CSS

Ура, поздравьте меня! Начал работу сайт http://kostyrka.ru, первый работающий раздел — это блог. Данный пост посвящён удалению некоторых свойств ссылок у изображений с границами.

В CSS, как известно, есть множество способов оформить изображение.

Можно добавить рамку к изображению:

img {
	border: thin solid black;
	}

Можно отрегулировать внешние отступы (margins) и внутренние отступы (padding):

img {
	border: thin solid black;
	padding: 3px;
	margins: 3px;
	}

Можно даже назначить данному изображению изображение заднего плана, которое замостит фон (бывает полезным при работе с графикой в формате PNG с альфа-каналом):

img {
	background: url(images/grunge.png) repeat 0 0;
	border: thin solid black;
	padding: 3px;
	margins: 3px;
	}

Можно сделать изображение ссылкой на другое изображение, как это часто бывает с предварительным просмотром:

<a title="Крупное фото" href="http://site.ru/foto/large.png">
<img src="http://site.ru/foto/preview.png" alt="Предварительный просмотр" />
</a>

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

a:link, a:visited {
	border-bottom: 1px solid;
	border-color: #e0b2e0;
	text-decoration: underline;
	color: red;
	}	
a:hover, a:active {
	border-bottom: 3px solid red;
	text-decoration: none;
	color: maroon;
	}

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

a img {
	text-decoration: none;
	border: 0 none;
	}

На что действует эта корректива — на якорь (a) или изображение (img)? На изображение. Данный код убирает с изображения собственную рамку, а не ссылку. Дословно это надо понимать так: всем изображениям, которые могли бы иметь собственное обрамление (border), являясь ссылками, обрамление снять. Текстовое же форматирование (подчёркивание) здесь вообще нигде не присутствует, поскольку оно не применяется к изображению напрямую (в самом деле, попробуйте себе представить жирные изображения, курсивные изображения, изображения, набранные из малых прописных пикселей с разрядкой между символами, — изображения с применёнными к ним текстовыми декларациями). Поэтому, вместо попыток найти и обезвредить подчёркивание ссылок и создание границ, нам нужно модифицировать элементы-якори (ссылки), содержащие изображения. Это разумно — обращаться к внешнему контейнеру. Если содержимое ссылки <a> будет подчёркиваться, то этой директиве начхать на то, что мы творим внутри неё со стилями вложенных объектов. Она просто возьмёт и подчеркнёт.

Жаль, что CSS не поддерживает создания селекторов по критериям (qualified selectors). Если бы было наоборот, то мы бы могли выцепить целевое изображение следующим методом:

a < img { border: none; }

Томимые собственными сладкими грёзами об этом, мы должны искать обходной путь.

Первый путь решения проблемы — это воспользоваться присвоением особого «неподчёркнутого» класса всем изображениям, являющимся ссылками:

a.image-border {
	text-decoration: none;
	border: 0 none;
	}

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

К счастью, CSS3 позволяет нам выделять определённые типы ссылок путём сопоставления с образцом и отбора атрибутов. Отбор атрибутов сужает наш круг подозреваемых на «ссыльность» или иные характеристики изображений. Пример критериев отбора: мы хотим присвоить свойства в фигурных скобках объектам, у которых выполняется равенство атрибута такого-то тэга тому-то. Для примера сделаем жёлтый фон только у тех ссылок, которые не подлежат автоматическому переходу, добавим зелёную рамку (буэ-э) изображениям, у которых замещающий текст — «arrow», и всему коду во фрагменте подсветки синтаксиса, который говорит, что он написан на языке perl, сделаем красные буквы. Записывается это короче, чем формулируется:

a[rel="nofollow"] { 
	background: yellow;
	}
img[alt="arrow"] {
	border: green;
	}
pre[class="perl"] {
	color: red;
	}

В этих примерах выбор атрибутов позволяет отфильтровать объекты с определёнными значениями. Мы можем использовать следующий синтаксис фильтра.

Элемент содержит указанный атрибут:

element[attribute]

У элемента атрибут принимает конкретное значение:

element[attribute="value"]

У элемента атрибут содержит в значении указанный фрагмент:

element[attribute~="valuefragment"]

У элемента значение атрибута начинается с указанного фрагмента:

element[attribute^="valuebeginning"]

У элемента значение атрибута кончается указанным фрагментом:

element[attribute$="valueending"]

У элемента значение атрибута содержит строковое выражение фрагментом:

element[attribute*="containsstringvalue"]

Подобный функционал проверки соответствия шаблону даён веб-мастеру возможность целиться только в те якори, которые обращаются к определённым типам файлов. Поэтому мы будем использовать синтаксис [атрибут$="значение"] и выбирать только те якори, которые ведут на изображения любого типа. Например, чтобы охватить вниманием ряд мелких иконок предварительного просмотра изображений, которые потом открываются полноразмерными PNG, радивый веб-мастер напишет:

a[href$=png] {
	text-decoration: none;
	border: 0 none;
	}

Это приведёт к тому, что у них у всех исчезнут границы и подчёркивания от ссылки. Все ссылки вида

http://dirtymess.gov/nav/.../...[abracadabra].../some-image.png

утратят текстовые закидоны и лишатся подчёркивающих линий. Мы можем выбирать столько типов изображений, сколько нам угодно. Ограничимся якорями, адресующимся к JPG, PNG и GIF:

a[href$=jpg], a[href$=jpeg], a[href$=jpe], a[href$=png], a[href$=gif] {
	text-decoration: none;
	border: 0 none;
	}

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

  1. Изображения, которые ссылаются не на выбранные нами типы файлов.
  2. Текстовые ссылки, ссылающиеся на выбранные нами типы файлов.

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

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

И тут можно применить небольшие латки для образовавшихся прорех. Можно изменить критерии отбора и подвергнуть обесподчёркиванию (или расподчёркиванию?) объекты с другими фрагментами кода в параметрах. Можно отловить только те изображения, которые ведут на определённый сайт или в определённый раздел сайта (содержат определённую папку в пути):

a[href*=domain] {
	text-decoration: none;
	border: 0 none;
	}
a[href*=directory] {
	text-decoration: none;
	border: 0 none;
	}

Данный приём снимет ненужное форматирование с любого объекта-ссылки, ведущего в определённое место сайта.

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

P.S. Самые любознательные могли уже просмотреть исходный код любой страницы блога в качестве иллюстрации и догадаться, доступ к каким объектам я перекрыл ссылочным стилям.

Computer Modern font mismatch

Does someone think LaTeX is cool only due to its aristocratic-looking font? Decided to fool someone by just installing Computer Modern Unicode (to be obtained here) font and making up a dummy in Photoshop, or worse, MS Word? Ahem, I haven’t had new scalps for ages; it’s time to renew my collection. Mark my words, using CMU font does not provide typesetting quality achieved by TeX system.

Typing a text with Computer Modern in Photoshop yields different kerning spaces and accent angles. Can you tell an artificial image from native LaTeX output? Two examples:

Latex and Photoshop compare

Latex and Photoshop compare 2

Correct answers: LaTeX, Photoshop, Photoshop, LaTeX. Did you notice that the angle between the artifical-letter accent and horizontal line is too acute?

Finally, some grand comparison via superimposition. Original LaTeX output is blue, Photoshop result is pinky, correct juxtaposition is green.

latex only

ps only

latex vs photoshop

Use no artificial substitutes for this wonderful typesetting engine.

Печальное пророчество

В ближайшие десять лет появится такой экзотический способ заработка (отчасти похожий на киберсквоттинг), как покупка... ячеек в кодовой таблице Юникода (UTF-8). Крупные корпорации (Microsoft, Google, Walmart, Dell, Toyota) найдут способ выложить огромную сумму, чтобы добиться резервирования определённого символа. Почему бы, в самом деле, не начать оккупацию private use planes? Оккупировать их своими глобалистскими логотипами? Написать в них то, что хочет CEO компании?

Увеличение численности скотов приводит к снижению среднего показателя

О дьявол, когда уже мне будет дозволено бесплатно отключить в WordPress эту мерзкую функцию wptexturize? Уже по горло сыт заменой трёх точек на унизительный символ, созданный для экономии байт. Кроме того, в строковых выражениях мне не нужны исправленные кавычки (в программировании используются прямые). Я достаточно пряморукий, чтобы с клавиатуры набрать и длинное тире, и нужный вид кавычек. Такое ощущение, что мир настолько разбух от безруких слизняков, что специально для них включается уравниватель, который чуть приподнимает их безграмотные сообщеньица, зато опускает шедевры, набираемые со знанием дела.

Стоит ли говорить, что пишу я в HTML-редакторе, который мне никак не даёт выровнять таблицу по центру поста? Ни тэг <center>, ни параметр align="center" — ничто не в силах мне помочь. Я пишу в блог на движке, которым управляют извращенцы, палачи и смертельно опасные доктора.

UPDATE [6 августа 2012]: после того как я взял управление блогом в свои руки, настроил плагины, отключил текстуризацию (при помощи TRUEedit) и вручную задал чёрный цвет рендеринга в WP LaTeX, дышать стало легче.

Драма перехода с Mozilla на Opera

Мне надоело, что Firefox всё время отъедает слишком много памяти, и аз решил перейти на менее раздутый браузер Opera. Огнелис постоянно глючил, выдавал запросы на установку его в качестве браузера по умолчанию, обновлялся, хотел перезапуститься, когда у меня было открыто двадцать нужных вкладок... Открыв «Программы и компоненты» и узрев в оных целых два установленных «Файерфокса» (10.0.1 и 10.0.2), я понял, что был прав, отважившись на такой поступок, и запустил деинсталлятор. Открываю «Оперу» в сборке «Яндекса» — выскакивает экспресс-панель. И что вы думаете? С огромной кнопки на панели на меня укоризненно таращится вот этот зверь:

Лежать! Бояться!

С детства я обожал лисиц. Даже фундаментальную теорию специально создал для них. Коллекционировал лис. Плюшевые, стеклянные — больше 150 экземпляров. При переезде я оставил их у знакомого на антресоли, чтобы после обретения собственного жилья расставить всех на полке. Но рыжемордые, видимо, не терпят такого предательства с моей стороны и потому так тычутся своими острыми носиками в меня и спрашивают: «О наш Творец, почто ты нас оставляешь?»

P.S. Сам установочный дистрибутив для Opera у меня из «лисы» скачивался минут десять, хотя остальные сайты не думали тормозить.

Как избавиться от неиграющей ноты в Sibelius 7

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

  1. Заглушите обе ноты двух голосов (в «инспекторе» поскидывайте все галки для «play on pass 1–8»). Пусть они рисуются, но не более.
  2. Добавьте третьим (или четвёртым) голосом эту же ноту нужной длины с применением tie, как того и требовалось.
  3. Спрячьте только что созданные звучащие ноты (Ctrl+H), а также порождённые ими паузы.

Таким образом, рисоваться у вас будет одно, а звучать будет по длительности то же, но спрятанное другое. Если непонятно, смотрите скриншот.

В целом релиз оставил приятное впечатление, особенно тем, что, попользовавшись Sibelius 7, пользователи станут хитрее, изворотливее, начнут искать обходные пути и осваивать прикладной высокоуровневый дебаггинг.

В шестой версии была временами страшная проблема: интерфейс нормальный, а потом с какого-то момента меню все исчезают, буквы на приветственном экране исчезают, при попытке интуитивно потыкаться с альтом начинаются горизонтальные полосы пустого поля. Переустановка программы не помогает, помогает переустановка винды. Теперь вот что: раньше ставил Windows 7 NoSP, потом прокачивал до первого уровня обновлениями. Теперь переустановил после тяжёлого сбоя сразу на Win7 SP1, и тут началось: сначала MiKTeX’у русские буквы в пути к пользовательской папке не понравились, а потом и «Сибелиус 6» сразу же начал гадить артефактами и отказываться отображать элементы окна программы (при этом ноты нормально видно, редактировать можно, но без меню это по меньшей мере садомазохистично). Скачал Sibelius 7, сейчас поставлю, поработаю, поделюсь впечатлениями.

Также делюсь своим мнением. Неужели это случилось?! Интерфейс а-ля офис 2007/2010? Отрадно и удобно, много всего, тренирует память. Перетаскиваться инструментом «рука» полотно стало хуже — такое ощущение, что играю в DooM 3 на компьютере с 256 МБ оперативки и NVidia GeForce 440 MX (о, это было время, но ощущения от FPS сейчас примерно те же). Реальное воспроизведение просто убило (эй, там! У меня 6 ГБ RAM и четырёхъядерный Q9400 на полноценном настольном компе), потому что тормоза жуткие, звук дёргается. При попытке сгенерировать звуковой файл жалуется, свистит, бздит и говорит, что «в конфигурации нет виртуальных инструментов». WAV ему сложно, видите ли, сгенерировать.

Мораль: у людей сейчас стоит в среднем 4 ГБ оперативки, а это, как известно, технически требует 64-разрядности (иначе система будет максимально будет видеть и использовать чуть больше двух с половиной, хоть уставься). 64-разрядная XP — это что-то. Это мрак (просто поздний плод). Нормально x64 реализовано только в Vista и 7. XP пусть пользуются секретарши, у которых вистовский или семёрочный «Солитёр» не тянет встроенный графчипсет, но мы-то с вами прогрессивные люди, перед которыми стоит задача получить аккуратные и красивые ноты. Чем аккуратнее и красивее, тем больше ресурсов системы (и в т. ч. оперативки) требуется для вывода.