Заплатка Zend_Http_Client для поддержки кириллических доменов(ZF 1.x)

Здравствуй, уважаемый хабрачитатель. Хочу расказать о своей попытке подружить Zend Framework версии 1.8.2 с кириллическими доменами.

Работать с idn доменами Zend вроде бы умеет, однако при попытке открыть что-нибудь вроде xn--e1afmkfd.su (пример.su)
или xn--e1afmkfd.xn--p1ai (пример.рф) ругается

Fatal error:
Uncaught exception 'Zend_Uri_Exception' with message 'Invalid URI supplied' in /.../Zend/Uri/Http.php:156

Проблема замечена в версии 1.8.2, но сохраняется и до 1.11

Давайте совершим небольшой экскурс по просторам кода и посмотрим почему это происходит.
Читать дальше →

«Em dash» и «en dash»: вся правда про ширину тире

В диких племенах первобытных дизайнеров бытует поверье, будто ширина длинного тире должна быть равна кеглю шрифта, а ширина короткого — половине кегля. Кроме того, дикари считают, что длинное тире по ширине такое же, как буква «M», а короткое — как «N». Поэтому они и называются соответственно «em dash» и «en dash».

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



Чтобы убедиться, исследуем десять популярных пропорциональных шрифтов (в прямом начертании, обычной насыщенности). Измерим ширину обоих тире при одном и том же кегле. Для сравнения посмотрим также на ширину букв «M» и «N», а заодно и дефиса, чтоб два раза не ходить.

В воображаемом «эталонном» шрифте, в который верят пещерные дизайнеры, должно получиться так:
ширина длинного тире = ширина «M» = 1 к (буквой «к» будем обозначать кегль);
ширина короткого тире = ширина «N» = 0,5 к.
Однако в реальности всё не так. Тире во всех шрифтах — разные:



В двух шрифтах из десяти (Arial, Segoe UI) длинное тире действительно имеет ширину 1 к. В классическом Times New Roman оно немного длиннее — 1,02 к. В остальных семи шрифтах — ощутимо короче, вплоть до 0,64 к в Trebuchet MS.

А буква «M» во всех десяти шрифтах заметно ýже кегля, её средняя ширина — 0,74 к. Какой-либо связи между «M» и длинным тире не прослеживается: в семи шрифтах тире на 0,07–0,32 к шире, чем «М», в трёх шрифтах — на 0,06–0,16 к ýже.



Короткое тире составляет ровно половину кегля тоже в двух шрифтах из десяти, но только один из них — Segoe UI — также отличился «эталонным» длинным тире. В пяти шрифтах «en dash» немного длиннее полукегля (до 0,56 к — Arial), в оставшихся трёх — короче (до 0,25 к — Trebuchet).

Ширина буквы «N» ни разу не равна точно 0,5 к: в двух шрифтах (Calibri, Trebuchet) она чуть меньше, в остальных — больше, вплоть до 0,77 к (Palatino). Отчётливой взаимосвязи с коротким тире снова не наблюдается. Например, в шрифте Arial ширина «N» и короткого тире одинакова (с точностью до 0,01 к), а в Palatino тире короче на целых 0,27 к.



Нет также связи между размерами длинного и короткого тире: в одном длинном тире умещается от 1,39 (Georgia) до 2,51 (Trebuchet) коротких, хотя по верованиям первобытных дизайнеров должно быть ровно 2.

Заодно на всякий случай скажем и про дефис. В исследованных десяти шрифтах его ширина составляет от 0,21 до 0,30 к, в среднем — 0,26 к. Снова нет отчётливой корреляции ни с длинным тире, ни с коротким, ни с «M», ни с «N». Например, в одном длинном тире умещается от 2,60 (Georgia) до 4,03 (Times) дефисов.



Спрашивается, почему же тогда символы называются «em dash» и «en dash»? Это, как говорится, всего лишь древний красивый обычай, уходящий корнями не то что в докомпьютерную, а вовсе в допечатную эпоху.

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

Бюджет домашней студии

Прежде чем начать, представлюсь. Я занимаюсь созданием электронной музыки уже более 10 лет, 6 из которых профессионально. Хочу поделиться опытом с читателями хабра и ответить на вопросы, которые мне так часто задают. При написании статьи подразумевалось, что вы более-менее знакомы с основными терминами и понятиями в этой области (секвенсор, VST-плагин и т.д.).





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

1) Какой бюджет требуется, чтобы писать электронную музыку?
2) Какое оборудование нужно приобрести в первую очередь, а какое позже?
3) Какой софт понадобится, в чем его плюсы и минусы и действительно ли правило: чем больше, тем лучше?

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

Выбор студийных мониторов

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

1) Цена. Покупать дорогие мониторы нет смысла. Мало того дорогая акустика не всегда оправдывает свои средства — она предназначена для использования в студиях с отличной звукоизоляцией и не менее дорогим оборудованием. Помимо этого существует разные характеристики профессионального оборудования, из-за которого его стоимость повышается. В нашем случае это не так важно — мы хотим приобрести качественный звук по сравнительно небольшой цене.

2) Размер низкочастотного динамика. В большинстве случаев он варьируется от 4 до 8 дюймов. Чем больше размер, тем лучше вы будете слышать низ и середину трека, а это основа любой электронной композиции. Идеальный размер низкочастотного динамика для комнаты — 5-6 дюймов, в то время как для студийного использования предпочтительнее низкочастотные динамики большего размера. Динамики большего размера добавляют к стоимости порядка 10-20 т.р.

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

Самыми дорогими и качественными являются мониторы производителей ADAM и KRK. Если у вас действительно есть большие средства, приобретайте мониторы этих производителей, но с небольшим размером низкочастотного динамика. Оптимальный вариант для бюджетного использования — мониторы M-Audio, а именно модель Studiophile SP-BX5a Deluxe. Эти мониторы обойдутся вам в районе 12 т.р. Они продаются парой.

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



Выбор аудиокарты

Аудиокарта должна быть внешняя — это факт. Почему?

1) Большой выбор. Сейчас выпуск внутренних звуковых карт заметно сокращается. Это связано с веком мобильности — стационарные компьютеры уходят в прошлое.

2) Мобильность. С большой вероятностью вы прийдете к тому, что начнете делать лайв-сэты и выступать в клубах. Задумайтесь об этом сейчас. Покупать потом специально карту для выступлении будет лишней тратой денег.

3) Совместимость аудиокарты с вашим слухом. Действуем аналогично п.3 при выборе студийного монитора.

Среди бюджетных моделей больше всего подойдут, опять же, карты M-Audio или Native Instruments. Несмотря на то, что аудиокарты NI предназначены для Dj, они прекрасно передают весь спектр частот и подойдут для домашнего использования не хуже, чем M-Audio. Если вы приобретете Native Instruments AUDIO 2 DJ, она обойдется вам в 4,5 т.р., M-Audio Audiophile FireWire встанет дороже — 7,5 т.р., но вы получите гораздо больший контроль над вашим звуком. Эта аудиокарта имеет больше аналоговых входов и выходов, что позволяет подключать дополнительные элементы при лайв-выступлениях или dj-сэтах. Цена карты редко зависит от качества выдаваемого ей звука, чаще от количества входов, выходов и дополнительных регуляторов громкости. Поэтому приобретая карту дешевле, чем ее более новая модель, вы можете не переживать за качество своего саунда.

Ноутбук vs. стационарный компьютер

Раньше, когда ноутбуки были чем-то из ряда вон выходящего, вопрос о выборе не стоял так остро — стационарные компьютеры больше подходили для написания музыки, потому что имели более мощный процессор и больше оперативной памяти. Теперь же ситуация абсолютно противоположная, а нагрузка частично перешла на аудиокарты. Сейчас все аудиокарты поддерживают ASIO режим с минимальной задержкой звука. Возвращаясь к вопросу мобильности при выборе аудиокарты, советую приобрести ноутбук с двуядерным или i3 процессором и 2 ГБ оперативной памяти. Размера винчестера 250-300 ГБ вполне хватит для комфортной работы. Сумма покупки: от 20-25 т.р. Тут все зависит от ваших личных потребностей и предпочтений маркам. Чем проще по характеристикам будет приобретенный вами ноутбук, тем лучше. Почему — объясняется в следующем разделе.

Выбор софта: чем меньше, тем лучше

Прежде чем начать обсуждение этого раздела, необходимо отметить один очень важный момент. Основная проблема новичков — приобрету себе новейший ноутбук, установлю много программ и VST-плагинов и мой звук будет самый лучший и узнаваемый. Следствие этой проблемы — перенасыщение рынка электронной музыки шаблонными треками и неспособность создать свой собственный оригинальный саунд. Решение проблемы — начать писать музыку не с установки большого количества пиратского софа и VST-плагинов, а выбрать один секвенсор и VST-плагин, опробовать все их функции в тестовом режиме, а потом уже потратиться, приобрести их и пользоваться без проблем на протяжении нескольких лет.

Набор, с которого я бы рекомендовал начать:

FL Studio Fruity Edition
Cakewalk z3ta+

В качестве эффектов предполагается использование родного набора FruityLoops. Стоимость пакета — 200$, т.е. 6,5 т.р.

Выбор на FL Studio пал не зря. Этот секвенсор является самым простым для понимания и в то же время одним из самых качественных продуктов на рынке. Чем же отличаются версии FL Studio? Пройдя по ссылке на официальный магазин производителя мы увидим разницу между различными версиями секвенсора — 100$. По сути действительно существенные различия только между версиями FL Studio Express Edition и FL Studio Fruity Edition. Остальные версии продукта отличаются наличием дополнительных эффектов и VST-плагинов, которые маловероятно вам когда-либо понадобятся. Изучите различные версии внимательно, посмотрите, действительно ли есть смысл переплачивать или качать полный пиратский пакет, если можно заплатить всего 200$ за легальные версии и достичь необходимого эффекта?

Итак, сумма нашего минимального набора: 12 + 4,5 + 25 + 6,5 прибл. 50 т.р. Этой суммы достаточно, чтобы добиться качественного студийного звука у себя дома. Следующей ступенью будет покупка наушников, которые являются не такой уж важной частью набора, а также MIDI-клавиатуры, которая создает удобство при работе с соло-партиями.

В следующих статьях я перейду непосредственно к процессу написания музыки. Мы будем учиться создавать качественный звук с помощью минимального стандартного набора FL Studio.

Ресурсы, использованные при написании статьи:

1) http://proaudio.ru
2) http://flstudio.image-line.com
3) http://www.cakewalk.com/Products/Z3TA
4) http://m-audio.com/

Как я делал сайт с нуля

Доброго времени суток.

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


Читать дальше →

Двухфакторная аутентификация – ключевой элемент в разграничении доступа к защищаемой информации

Разграничение прав доступа к корпоративной информации является одним из необходимых требований в обеспечении ее безопасности. Очевидно, что, к примеру, инженер техподдержки и главный бухгалтер обладают совершенно разной информацией. Поэтому перед тем как получить доступ к ресурсу, пользователь должен подтвердить, что он является именно тем, за кого себя выдает. Самый простой вариант – ввести имя пользователя и пароль. Аутентификация по паролю (то есть однофакторная по принципу «знание чего-либо») обладает рядом существенных недостатков. Удовлетворяющий политике сложности пароль тяжело запомнить, а если их несколько и меняются они довольно часто, пользователи начинают записывать их на листочках, в текстовых файлах и на клавиатуре. Пароль может быть подсмотрен, подобран, перехвачен клавиатурным шпионом или при передаче по сети. Кражу пароля сложно отследить, поэтому нельзя знать точно, все ли пароли в организации хранятся в секрете или какие-то из них скомпрометированы. А какими могут быть последствия, когда «недооцененный» системный администратор входит в корпоративную информационную систему с паролем генерального директора?


Читать дальше →

Генерация JS-фреймворка «по готовому»

Кому: Разработчикам, которые используют JS, а в частности — фреймворки аля jQuery, MooTools, ExtJS.

Описание проблемы
Вы наверняка встречали подобные фразы «90% функций jQuery на сайте не используюся...» или «Страница вести 13 КБ, а jQuery 26 КБ...». Ещё один пример — плагины к jQuery, которые опять же умеют много, когда нужно мало. Нужно ли пользователям качать 90% мертвого груза и ждать в 3 раза дольше? Очевидно, что не нужно.


Что в итоге просходит:
Наступает момент осознания проблемы и происходит одно из двух (а будет и третье):

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

Я помню про кеширование, но оно начнет спасать только при втором посещение, которого уже может и не произойти.


Читать дальше →

Новые меры по борьбе с пиратами



Как всем известно, пиратство сейчас процветает полным ходом. Сложно найти человека, который не использовал бы хоть какой-то пиратский софт. Я думаю, каждый скачивал хотя бы раз какой-нибудь трек из интернета, не заплатив за него положенной стоимости, и я в том числе. Недавно в сети появились первые финальные образцы нового закона о борьбе с пиратской продукцией, которые предусматривают тот факт, что, к примеру, в аэропорту у вас могут взять на проверку ваш любимый iPhone или ноут, с пиратской виндой, и проверить, не содержится ли в нем ворованного контента, а телефон, залоченный когда-то под оператора, просто отнять и уничтожить.


Читать дальше →

Идиома RAII — захват ресурса есть инициализация

RAII – идиома, получившая широкое распространение благодаря создателю С++ Бьярну Страуструпу, и расшифровывается как “Resource Acquisition is Initialization” – захват ресурса есть инициализация.

Идиома очень простая и кратко описывается следующим образом: в конструкторе объект получает доступ к какому либо ресурсу (например, открывается файл или устанавливается соединение по сети к базе данных) и сохраняет описатель ресурса в закрытый члена класса, а при вызове деструктура этот ресурс освобождается (закрывается файл или соединение к БД). При объявлении объекта данного класса на стеке происходит и его инициализация с вызовом конструктора, захватывающий ресурс. При выходе из области видимости объект выталкивается из стека, но перед этим вызывается деструктор объекта, который и освобождает захваченный ресурс.

Читать дальше →

Cнятие и установка дампа в MySQL (mysqldump) — tips & tricks

В теории


В теории все просто — MySQL из коробки имеет утилиту mysqldump, которая позволяет снять копию базы в виде набора SQL инструкций.

В реальности все гораздо хуже. Дело в том, что mysqldump криво работает с кодировками, отличными от Latin1. Тоесть экспортировать базу в UTF8 следуя официальной документации (man mysqldump), тоесть с указанием --default-character-set=utf8, и импортировать ее потом обратно — не представляется возможным. Кодировка будет битая в следствии «двойного преобразования», выполняемого утилитой mysqldump — пруфлинк

Собственно, по ссылке выше есть и рецеп. Суть его в том, что нужно экспортировать базу и затем импортировать ее в Latin1 вне зависимости от того, какая реально кодировка используется. При этом конечно нужно вычестить из *.sql файл инструкции SET NAMES…

Еще один важный момент, который следует учесть. Как правило мы снимаем дамп базы с именем A и пытаемся накатить его на базу с именем B. Соответственно, возможны коллизии из за того, что в созданном после экспорта файле в SQL запросах и командах СУБД будет присутствовать упоминание A. Нужно заменить все вхождения A на B, ниже под катом будет пример как это сделать средствами VIM.


Читать дальше →