рубрика FAQ · все рубрики

Верующий человек.

В ответ на вопрос, верующий ли я человек, я люблю отшучиваться фразой: «Верующий. Свято верую в закон сохранения энергии». А какая энергия - это уже вопрос второй. Мало ли энергий вокруг нас во Вселенной? Если карма, аура и прочие атрибуты, обычно приписываемые малонаучной экстрасенсорике окажутся на проверку силами навроде электрических - разве это не снимет многие вопросы? Нет, я вовсе не пытаюсь для себя исключить из окружающего мира мистику и чудеса, мой взгляд на мир давно описан мною же. Я только думаю, что не стоит ждать, сидя в удобном кресле, что вокруг произойдет что-то удивительное, и это покажут по телевизору. Источник чудес надо искать в самом себе.

наверх

DNS - это не страшно.

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

Определимся с понятием домена. Домен - это символьно-цифровая запись имени сайта. Они обычно многоуровневые, уровни записываются через точку и нумеруются справа налево. То есть домен первого уровня - это www.ru, www.com и так далее. Домены второго уровня - это, к примеру, www.yandex.ru, www.google.com и www.vexer.ru. Кстати сказать, «www» - это как бы самый последний уровень доменных имен, бесплатный довесок. Многие сайты отзываются и на ссылку, набранную без него (ну например, vexer.ru).

Если проводить почтовые аналогии, домен первого уровня - это страна. Домен второго уровня - область. Третьего - город... Ну и так далее. Естевственно, многие хотят получить для своего сайта домен как можно меньшего уровня - запомнить «область» и «страну» куда проще, чем «страну», «область», «город», «улицу», «дом»...

Кроме того, чисто физически на одном и том же физическом сервере (один IP-адрес) обычно «живет» несколько сайтов. Как в коммунальной квартире.

Еще есть «псевдонимы» - когда у одного и того же сайта несколько «имен». К примеру, этот блог имеет адрес blog.vexer.ru, хотя фактически это просто псевдоним для ссылки liveinternet.ru/users/v_exer. То есть физически с ЛИ.ру дневник не съезжает при привязке к другому адресу, просто в DNS делается маленькая запись, что, мол, этот адрес - это псевдоним для ЛИ.ру.

В общем, повторюсь - не путайте доменные имена и физическое место, конкретные сервера, на которые они ведут.

наверх

Жадность на YouTube.

Недавно стали поступать жалобы по поводу конвертера видео-ссылок в код для ЛИ.ру: мол, не может с YouTube вот это переработать, не может то... Думаю - что за чушь? Формат страницы изменили? Полез смотреть... Так, а что это за надпись чудесная такая, «Embedding disabled by request»?

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

наверх

Сжатие. Путаница с понятиями.

― У тебя есть програма для смены формата?
― В смысле?
― Ну чтобы форматы можно было менять.
― Форматы чего?
― Ты что, тупой? ФОРМАТЫ ФАЙЛОВ конечно же!!!
― Каких именно файлов?
― Ты тормоз, а не программист! Файлов, которые на компьютере.


© bash.org.ru


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

Итак, сначала пробежимся по основам: всякое изображение состоит из пикселей, пиксели составляются из трех составляющих - красный, синий, зеленый. То есть чтобы описать один пиксель, нужно записать три байта, по байту на компоненту. Умножаем три байта на, к примеру, 1024 строки и 1280 столбцов (разрешение стандартного ЖК-монитора), и получаем почти четыре мегабайта. То есть одна-единственная несжатая картинка размером на весь экран весит 4Мб. В секунде 24 кадра... Если бы при записи видео не использовали сжатия, на CD-болванку влезало бы всего 8 секунд полноэкраного видео, а на DVD - 46. Несколько крутовато, да? Поэтому-то и приходится хитро и долго паковать видеопоток, уменьшая его объем.

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

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

Чем сжаты эти потоки - Ogg, MP3, DivX, XviD - дело вторичное.

Со структурой все вроде понятно, устраняем теперь путаницу насчет понятий.

MPEG означает Moving Picture Experts Group — экспертная группа по вопросам движущегося изображения. Это группа специалистов в подчинении ISO, собирающаяся для выработки стандартов сжатия цифрового видео и аудио.

MPEG-2 и MPEG-4 - это стандарты, алгоритмы для сжатия аудио и видео. Чуете разницу между стандартом и кодеком? Стандарт - это описание алгоритма, а кодек - это уже конкретная реализация этого стандарта. Как компьютерные шахматы - принцип один и тот же, правила одни и те же, а разных реализаций - сотни.

Теперь, надеюсь, путаться будете меньше. И сами сможете объяснить путающимся, если что.

наверх

Нафиг нужно.

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

Представьте себе, что вам нужно купить открывалку. Простую открывалку, открывать консервные банки. Как можно меньше, чтобы не занимала места в рюкзаке (предположим, вы в поход собираетесь). Но среди обширнейших залежей всяческих открывалок с режимом перемешивания и подогрева, электрооткрывалок, вакуумных гидровысасывателей содержимого через дырочку, фигурных вырезателей по жести, утилизаторов банок, телепортаторов банки в нужную точку вселенной, перебивателей даты годности на крышке, рисователей этикеток для банок с функцией выкладывания нарисованного в Интернет и голосования за лучшую этикетку по SMS... В общем, простой открывалки, этой элементарной железной заточенной хреновины с ручкой просто нет. Ну нет и все! Нет, можно взять аннигилятор жести и в походе, ставя банку в плошку и расщепляя банку на атомы, добывать содержимое. Но во-первых, у нее аккумуляторы еще размером с хороший апельсин. Во-вторых, их подзаряжать каждые две-три банки придется. А в-третьих, не факт, что аннигилятор не будет что-нибудь побочно излучать. Что-нибудь невредное, но, например, пеленгуемое с расстояния десять-двадцать километров. Оно мне надо?

В общем, аналогию уловили? Современные программы содержат совершенно дикое количество иногда не очень совместимых функций, навроде гибрида туалетного «ежика» с половником. Простую, маленькую и действительно «по руке» программу для решения какой-то конкретной узкой задачи найти зачастую просто нереально. Проще за пару часов набросать свою. Именно так, как надо лично тебе. Как удобно именно тебе. И гарантированно без «черных ходов», служебных паролей, непонятных отчетов куда-то в Интернет и прочих малопонятных вещей. К тому же можно в любой момент программу или скрипт изменить под свои изменившиеся нужды, а не лопатить снова Интернет в поисках новой программы.

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

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

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

наверх

Тяжкое наследие бесплатной e-почты.

Собственный домен у меня совсем недавно. Соответственно, почта на этом домене - тоже. А перед этим было ничем не примечательное «мыло» на Mail.ru. Во всех старых моих программах его можно увидеть в качестве обратной связи. И вот волею судеб этот адрес в один прекрасный день вышел из строя. Причем странно сбойнул как-то, просто перестал меня признавать и все. «Сперли!» - первая мысль. «Да кому он нужен-то?» - вторая. Пожал плечами, полез восстанавливать пароль. Мама дорогая! Как тут понакрутили-то! Так... Вспомогательный адрес у меня был от домашнего провайдера, который давно уже дважды или трижды менял доменное имя, так что с этой стороны глухо. Попробуем через «секретный вопрос». Тут еще веселее: такого вопроса я в жизни не ставил. «Все-таки угнали» - думаю я. И начинаю переписываться с техподдержкой. А техподдержкой у них работают, видимо, постоянно меняющиеся человекоподобные роботы. Не успеет один вникнуть в проблему, как его меняют на следующего, и я ввожу в курс дела очередного бота. Вопросы-ответы - как на заевшей пластинке. Я доказываю, что это я - это я. Мне говорят: пользуйся формой восстановления пароля. Я говорю, что воспользоваться ей нет никакой возможности, поскольку секретный вопрос не мой, резервной почты не прописано, но у меня грудь в орденах и справка. Они мне флегматично заявляют, сверившись с неизвестными мне источниками, что ордена не мои, справка поддельная и вообще у нас таких не значится, подумайте получше. В результате на пятом круге прений я плюю на этот аккаунт, усаживаюсь поудобнее ждать три месяца. Дело в том, что в действующем пользовательском соглашении написано, что ящик прекратит свое существование после трех месяцев бездействия. Меил.ру вообще славен своими сбоями, и мой аккаунт скорее всего дал дуба в результате очередной такой халатности, но жутко неприятно. Аккаунт застрял между небом и землей. Висит, родной, не удаляется. И никто его не использует. Хотя и прошли полагающиеся три месяца... Причем три раза.

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

наверх

Миграция.

В свете не очень приятных нововведений в протоколе ICQ назрела потребность уходить на альтернативные клиенты. Ну не нравится мне, что весь список контактов теперь принуждают хранить на сервере. Получается, что любой, кто ненароком сможет получить доступ к номеру «аськи», имеет возможность запросто разослать по всему контакт-листу какой-нибудь спам или каким другим образом подпортить настроение мне и моим собеседникам. А без добавления контактов в контакт-лист на сервере сложно узнать, кто в сети, а кто нет. Поэтому в ICQ я останусь «слепцом». Основным же средством общения я выбрал Jabber. Необходимое условие миграции с одного мессенджера на другой - массовость. То есть, если ты сам перешел, а остальные - нет, это довольно странный с точки зрения логики шаг. Поэтому можете рассматривать этот текст агитацией по переходу на альтернативный вид интернет-общения. Про переход на Jabber, причем даже в некоторых случаях с сохранением ICQ-контактов (через спецсервис), писали многие. К примеру, здесь или здесь. Ну а я дам подробные инструкции.

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

2. Главное окошко программы. Элементарное. «Корона» - главное меню программы, чуть правее - «Status» - соответственно, меню со статусами на выбор. Внизу - индикатор подключения значком (сейчас человечек красный, то есть подключения нет) и дублирование текстом: «Offline». Посередине со временем у вас будет контакт-лист.


3. Жмем главное меню (значок «короны»), пункт «Options...»


4. Сейчас будем регистрироваться. Вместо «Guest» впишите желательные никнейм и пароль и жмите «Register».


Если регистрация прошла успешно, вы увидите такое окошко:


5. Все, в настройках пока нам ничего не надо. Аккаунт создан, можно смело менять свой статус на «Online» и набирать контакт-лист. Для этого в главном меню жмем «Find/Add contacts...»


6. В открывшемся окне вписываем Jabber-ID (в Джаббере вместо номеров - свои ID, выглядят навроде email-адресов). К примеру, ищем меня: V.exeR@jabber.ru


7. Жмете «Search», а когда пользователь будет найден - выделите его в списке справа и кликайте по «Add to list». Вам предложат дополнительные возможности по добавлению, но их можно игнорировать и просто жать «Add».

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

наверх

Фокусы с разоблачением.

По аське пошла, по-моему, уже шестая на моей памяти волна «магического квадрата». Фокус эффектный, согласен, но боже мой, как же он забодал! Тем более с разными приписками «перешлите эту ссылку стотыщ контактам, а то потеряете способность мыслить, двигаться и отличать соленое от красного». А сколько счетчиков и банеров висит на таких ссылках - ужас. Для разъяснения этого фокуса стоит вспомнить математику младших классов и чуть внимательнее посмотреть на сам фокус. Откройте мою реализацию этого квадрата, и читайте далее. (Не волнуйтесь, там банеров и счетчиков нет).

Итак, что мы видим? Символы и некие инструкции:

1. Задумайте любое двухзначное число.
Допустим, задумали. Двузначное - значит от 11 до 99. Некое x*10+y, где x - цифра от 1 до 9, а y - от 0 до 9.

2. Вычтите из него составляющие его цифры.
То есть (x*10+y)-x-y. Упрощаем: (x*9). О чудо! Цифра y магическим образом вычитания перестало влиять на наш результат! Таким образом, что бы ми ни загадали, после операции №2 останется весьма предсказуемое число: раз x у нас - целое число от 1 до 9, то (x*9) - это 9, 18, 27, 36, 45, 54, 63, 72, 81.

3. Найдите это число в таблице и символ, которому оно соответствует.
Посмотрим на символы, соответствующие полученным выше числам в предлагаемой таблице. Не может быть! Они одинаковые!

4. Вообразите мысленно себе этот символ.
Обязательный пункт, ага. Не вообразите - Квадрат вас покарает.

5. Щелкните по большому черному квадрату.
Чудо, не правда ли? Ага, не правда. Чистая математика.

Я, правда, не понимаю, почему не усугубить фокус, и не предлагать брать в качестве исходного двузначного числа свой возраст. Помнится, в математических упражнениях из нашего детства это был наиболее эффектный ход - в конце долгих вычислений с произвольным числом в конце заявить «и вот полученное число - это твой возраст!». И смотришь на ошарашенное лицо собеседника. Правда, мы разбирались, почему так получается и получали удовольствие от таких разборов. А не носились по двору с криками «расскажи об этом приколе пятерым друзьям и получишь в школе пятерку по географии!»...

наверх

Мелкие шуточки.

С разными числами мы проходим через жизнь. Некоторые высчитывают свои «счастливые» числа и пытаютсянайти их повсюду: в номерах домов, квартир, лотерейных билетах и датах. Нумерологией я не увлекаюсь, но любимые числа есть. Это 49374, 3235831469, 10554 и 10555. Страшно? Ничего, это только на первый взгляд. Первое из чисел - всего лишь десятичный вариант шестнадцатиричного числа $C0DE. Второе - десятичный вариант более длинного «слова»: $C0DEDEAD. С оставшимися все еще веселее: при записи на диск двухбайтные числа 10554 и 10555 пишутся как сочетания символов ":)" и ";)" соответственно.

Ну а еще я долгое время использовал смайлы ":>" и ";>". Чем-то птицу с клювом напоминает, правда?

наверх

Десятизначные ICQ-номера.

Довольно часто начали спрашивать, почему у меня на сайте указан десятизначный номер ICQ. Мол, мы что-то пропустили и уже такие номера бывают? Тогда почему этот твой номер не находится? Отвечаю по порядку. «Честный» номер у меня девятизначный. Начинается с единицы. В принципе, его можно еще найти в «открытом» виде в интернете. Указанный на сайте «десятизнак» - его «скрытая» форма, использующая не совсем документированные функции ICQ. Дело в том, что в самой «родной» ICQ, судя по всему, для хранения UIN'а используется четырехбайтная переменная, максимальным значением которой может быть число 4294967295. Кто помнит двоичную систему счисления? Ну в общем, в двоичном виде это выглядит так:



Если попытаться в эту переменную записать большее число, оно просто туда «не поместится». Например, вот что выйдет, если попробовать записать число, на единицу большее чем максимальное значение:



Произошло «переполнение» переменной. В самой переменной остался... Ноль. А «лишний» бит, не умещавшийся в переменной, просто из нее «выпал». Таким образом, если мы попробуем искать в ICQ номер 4294967296, это будет равносильно поиску номера 0. И если к любому номеру прибавить эти самое «лишнее» число 4294967296, мы получим так называемый «скрытый» номер. При добавлении в контакт-лист он все равно преобразуется в нормальный из-за «отсыхания» старшего, «лишнего» бита числа. Спросите, зачем такие сложности? А вас по ICQ спамеры не достают? Нет? Вам повезло, наверное вы нигде в интернете не указываете свой номер. Потому что скрипты спамеров денно и нощно просеивают интернет в поисках рабочих «асек», составляют обширные базы номеров и шлют без устали всяческую нам не нужную рекламу. Ну так вот, когда такой скрипт находит ваш UIN, указанный на каком-нибудь форуме, он первым делом пытается осведомиться у главного ICQ-сервера, есть ли такой номер. И если он модифицирован по указанной мной схеме, то понятное дело, сервер ответит что таких больших номеров у него отродясь не водилось. А когда этот же номер вобъет в свою «аську» обычный пользователь, то «огромный» номер приведется к стандартному виду автоматически, еще до запроса серверу, из-за описанного переполнения переменной. Единственный минус этого метода сокрытия UIN'а от спамеров - то, что в набирающем популярность альтернативном клиенте «аськи», программе QIP для хранения номеров зачем-то используются переменные длиной 8 байт, что исключает переполнение. Соответственно, если пробовать искать модифицированный номер QIP'ом, вы ничего не найдете... А в альтернативном ICQ-клиенте Miranda, например, проблем с «десятизнаками» не возникает, там тоже UIN'ы хранятся в четырехбайтных переменных.

наверх