Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Избранное

Позднее Ctrl + ↑

Загадка

Начну издалека.

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

Например, легковой автомобиль — это такой автомобиль, который легковой. Ага. При этом важно, что легковой автомобиль является автомобилем. Или, например, Красная площадь. Красная площадь — это площадь. Офицерская линейка — это линейка. Фрезерный станок — это станок. То есть, рассказывая о том, что такое фрезерный станок, можно начать со слов «Фрезерный станок — это станок, который...»

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

Понятно, что стол справок — это никакой не стол. Стол справок чаще всего представляет собой кабинку с окошком. Внутри этого стола справок сидит, например, девушка. Её роль в этой всей истории — сидеть и давать справки.

Зададимся вопросом: на чём же она сидит, эта девушка? Что же это такое, на чём она сидит? Ответ вполне очевиден — это стул справок. Однако, если стол справок — это не стол, то ведь может так оказаться, что и стул справок — это вовсе не стул. Но что же это, в таком случае?

Вот так загадка!

Правила снукера

Правка от 27 апреля 2006: Вы могли найти эту заметку, написав в поисковике «правила снукера» или что-нибудь в этом духе, однако текста правил она не содержит. Официальный текст правил WPBSA на английском языке можно прочесть на сайте WorldSnooker.com. Лучший текст правил на русском языке, который автору удалось найти, находится на сайте Global Snooker Centre. В этой заметке написано о том, почему всё же лучше читать правила на английском языке.

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

Правила игры в футбол

В футбол играют на большом зелёном поле с воротами на концах. 22 игрока делятся на две команды. В течение всей игры на поле также присутствует судья. Игра длится 90 минут, либо, по решению судьи, более продолжительное время. Цель игры — забить мяч в ворота противоположной команды как можно большее число раз. Победившей признается команда, забившая большее число мячей за время игры.

Игроки имеют право передавать мяч друг другу, либо забивать его в ворота касаясь его только ногами. Касание мяча рукой считается нарушением правил. Пинок игрока из противоположеной команды или удар, нанесённый ему в глаз, считается нарушением правил. За различные ошибки и нарушения правил могут быть назначены угловой или пенальти. В случае пенальти, игрок играет с расстояния 11 метров

Это, конечно, примерно где-то похоже на что-то, но всё-таки это скорее ответ на вопрос «А чё это мужики с мячиком носятся?», чем Правила игры. Не нужно называть такого рода тексты правилами, а потом ещё и попадаться в поисковиках на первых местах (смайлик).

В чём, собственно, проблема? В том, что в таких поверхностных описаниях часто попадаются ошибки или просто неоднозначные формулировки. Например, в одном из них я встретил вот такую штуку:

Штраф взимается в размере семи очков если:

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

Что значит «подряд»? Одним ударом, или несколькими последовательными ударами? Если одним ударом, то это просто неверно, так как любое число красных, забитых одним ударом, идёт в счёт брейка. Видимо, имеется в виду несколько последовательных ударов. Well, в этом случае это верно лишь отчасти: в том случае, когда игрок уже забил красный, но еще не заказал цветной. Однако этот случай рассмотрен в предыдущей строке, поэтому упоминать его нет смысла. В случае же, когда игрок уже забил красный и объявил цветной, падение красного в результате следующего удара обойдётся игроку лишь в стоимость цветного (либо 4, если цветной — это жёлтый или зелёный). Другое дело, что если он не случайно уронил красный, а, по мнению судьи, целенаправленно играл красный после уже сыгранного красного (либо фрибола, заменяющего красный). Но эта ситуация довольно плохо описывается фразой «игрок забил несколько красных подряд» и, кроме того, не встречается в природе...

Иногда попадаются совершенно дикие вещи. Например, люди пишут, что «в снукер играют на том же столе, что и в обычный бильярд». В русском языке вообще нет игры, которая бы называлась «бильярд», поэтому «играть в бильярд» — это примерно как «играть в карты»: так говорят, но это не очень верно. Когда говорят в «играть в карты» предполагается, что собеседник либо в курсе о какой именно игре идёт речь, либо это просто не важно. В данном случае это важно, значит предполагается, что читатель знает, о какой именно бильярдной игре идёт речь. Для русскоговорящего читателя «обычный бильярд» скорее всего ассоциируется играемой в каждой второй пивной «Американкой» (русский стол и огромные шары белого цвета, всё что забил — твоё). На русском столе в снукер не играют, это бред. В общем, когда встречаешь такой термин, сразу становится понятно, что текст был бездумно переведён. В оригинале, надо думать, было написано Billiards и переводить это нужно было как «английский бильярд». А это совсем другая игра (которая играется, если я не ошибаюсь, всего тремя шарами).

На второй странице Гугла я нашёл ссылку на гей.ру/лесби. Ничего хорошего от этого сайта ждать не стоило. Гугл нашёл там текст:

Американский пул — игра, главные отличия которой — простота правил (они близки к правилам cнукeрa) и относительная дешевизна столов (они немного меньше по размеру и ниже), что сделало ее непременной принадлежностью любого паба и многих кафе в Европе и Америке

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

В двух-трёх местах удалось найти более-менее внятное описание правил, например вот это, однако там почему-то отсутствует описание такой штуки, как Foul and a Miss. Ну, то есть не совсем отсутствует, есть вот такое замечание (3.3.9):

Играющий должен по мере своих сил и способностей стараться попасть по очередному шару. В противном случае судья констатирует промах.

Примечание: в случае, если по очередному шару попасть невозможно, считается, что играющий пытается попасть по нему.

И всё. Судья констатирует промах, очень хорошо, молодец какой. Что это значит, что происходит дальше? Почему нельзя взять официальные правила и просто перевести их? Или кто-нибудь всё-таки видел полноценные правила на русском языке? А то народу даже ссылку дать некуда. Да я и сам бы про мисс почитал ещё и по-русски, потому что не всё понятно в оригинальном описании. Вот что гласят официальные правила:

3.14. Foul and a Miss

The striker shall, to the best of his ability, endeavour to hit the ball on. If the referee considers the Rule infringed, he shall call FOUL AND A MISS unless only the Black remains on the table, or a situation exists where it is impossible to hit the ball on. In the latter case it must be assumed the striker is attempting to hit the ball on provided that he plays, directly or indirectly, in the direction of the ball on with sufficient strength, in the referee’s opinion, to have reached the ball on but the obstructing ball or balls.

  1. After a foul and a miss has been called, the next player may request the offender to play again from the position left or, at his discretion, from the original position, in which latter case the ball on shall be the same as it was prior to the last stroke made, namely:
    1. any Red, where Red was the ball on,
    2. the colour on, where all Reds were off the table, or
    3. a colour of the striker’s choice, where the ball on was a colour after a Red had been potted.
  2. If the striker, in making a stroke, fails to first hit a ball on when there is a clear path in a straight line from the cue-ball to any part of any ball that is or could be on, the referee shall call FOUL AND A MISS unless either player needed snookers before, or as a result of, the stroke played and the referee is satisfied that the miss was not intentional.
  3. After a miss has been called under paragraph 2 above when there was a clear path in a straight line from the cue-ball to a ball that was on or that could have been on, such that central, full-ball, contact was available (in the case of Reds, this to be taken as a full diameter of any Red that is not obstructed by a colour), then:
    1. a further failure to first hit a ball on in making a stroke from the same position shall be called as a FOUL AND A MISS regardless of the difference in scores, and
    2. if asked to play again from the original position, the offender shall be warned by the referee that a third failure will result in the frame being awarded to his opponent.
  4. After the cue-ball has been replaced under this Rule, when there is a clear path in a straight line from the cue-ball to any part of any ball that is or could be on, and the striker fouls any ball, including the cue-ball while preparing to play a stroke, a miss will not be called if a stroke has not been played. In this case the appropriate penalty will be imposed and
    1. the next player may elect to play the stroke himself or ask the offender to play again from the position left, or
    2. the next player may ask the referee to replace all balls moved to their original position and have the offender play again from there, and
    3. if the above situation arises during a sequence of miss calls, any warning concerning the possible awarding of the frame to his opponent shall remain in effect.
  5. All other misses will be called at the discretion of the referee.
  6. After a miss and a request by the next player to replace the cue-ball, any object balls disturbed will remain where they are unless the referee considers the offending player would or could gain an advantage. In the latter case, any or all disturbed balls may be replaced to the referee’s satisfaction and in either case, colours incorrectly off the table will be spotted or replaced as appropriate.
  7. When any ball is being replaced after a miss, both the offender and the next player will be consulted as to its position, after which the referee’s decision shall be final.
  8. During such consultation, if either player should touch any ball in play, he shall be penalised as if he were the striker, without affecting the order of play. The ball touched shall be replaced by the referee, to his satisfaction, if necessary, even if it was picked up.
  9. The next player may ask if the referee intends to replace balls other than the cue-ball in the event that he should ask for the stroke to be played from the original position, and the referee shall state his intentions.!!

В частности, я не понимаю как трактовать пункт 5. Есть ли продвинутые граждане, способные объяснить мне это? Буду очень рад вам в комментариях.

Для тех, кто ждёт морали: мораль у заметки отсутствует, я её просто писал, тыкаясь в результаты поиска по запросу «правила снукера» и удивляясь тому, что находил.

А сейчас надо бы уже пойти спать.

Завтра

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

Мы с Лёшей Копыловым задумали дать исчерпывающее определение понятию «завтра». А ограничение такое: нельзя использовать показания часов и ссылаться светлоту суток. То есть, например, сказать, что завтра наступает в ближайшее светлое время суток после 3 часов ночи — нельзя.

Вот что у нас получилось (сразу скажу, что задачи придумать как можно более простое определение перед нами не стояло, скорее даже наоборот):

  1. Понятие завтра описывает ограниченный промежуток времени.
  2. Завтра относительно и имеет определённый смысл только в конкретный момент, когда это слово произносится.
  3. Завтра, понимаемое относительно текущего момента, заканчивается, когда наступает завтра, понимаемое уже относительно момента сразу после наступления завтра, понимаемого снова относительно текущего момента (то есть то, что завтра — завтра, сегодня ещё не завтра).
  4. Завтра для человека наступает в момент рождения.
  5. Если сон, продолжительностью более N часов, завершился менее, чем через 24-N часов, после завершения предыдущего такого сна, то этот сон считается непереходным; в противном случае сон считается переходным.
  6. Завтра для человека наступает после ближайшего (в будущем) переходного сна.
  7. Завтра для человека наступает не позднее, чем через 24 часа после наступления предыдущего завтра.
  8. N зависит от человека, и у каждого своё; среднее N можно считать равным 4.
  9. Когда термин «завтра» используется в разговоре нескольких людей, то он описывает промежуток времени, когда у каждого из них завтра наступит ровно по 1 разу.

Эксперимент провалился

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

Зато мне дали поиграть на виниле... Только сегодня я окончательно понял, почему именно винил так рулит. Ощущения совершенно бесподобные (симулятор в CDJ-1000 — совсем не то). Жалко, что виниловый резак стоит $9000. Теперь мне стало интересно, действительно ли SL-DZ 1200 «feels like spinning wax on a classic 1200»?

Update: Хорошая фотография SL-DZ 1200

Update 2: А треком дня сегодня становится

  • Hypersonic — Every Single Sound

Делаем из ноутбука DJ-установку

Я тут подумал, что самым практичным DJ-решением является игра с ноутбука в Traktor DJ Studio. Потому, что mp3 и всё под рукой. И потом, один ноутбук весит меньше, чем будет весить пачка CD, если я нарежу всё, что у меня есть. В общем, решил я заняться этим вопросом.

Во-первых, встроенная звуковая карта всего лишь стерео, поэтому придётся подрубать внешнюю, многоканальную. Хорошо, что у меня такая есть. Возможно, для ноутбука более удачным решением была бы PCMCIA-карта, но её ведь надо покупать. И потом, учитывая как у меня в ноутбуке расположен PCMCIA, провода, торчащие оттуда, будут мне мешать, а USB-карту можно поставить куда угодно.

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

Раскладка

То, что написано курсивом, означает, что нужно нажать Ctrl. Поиграл — более-менее нормально.

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

Бесполезная система

Не могу не украсть у Болка, укравшего с Cooler:

Источник: «Персональные ЭВМ в инженерной практике». — М.:Радио и связь, 1989г.

«...Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система WINDOWS фирмы Microsoft. Эта система занимает почти 1 Мбайт дисковой памяти и рассчитана на преимущественное использование совместно с устройством типа „мышь“... ...Таким образом, читатель уже понял, что среди надстроек над ДОС бывают довольно бесполезные системы, которые только выглядят красиво, а на самом деле отнимают время пользователя, память на дисках и оперативную память ЭВМ.

Обманчивая красота таких систем, однако, сильно воздействует на неискушенных пользователей, которые не имели практики работы на машине. Инерция мышления бывает столь сильна, что авторам приходилось наблюдать, как люди, начавшие работать с подобной настройкой, впоследствии с трудом заставляют себя изучать команды ДОС. Хочется предостеречь от этой ошибки читателей...»

Три маленьких открытия

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

1. Как заставить IE нормально понимать z-index?

Есть такая проблема, что IE применяет z-index’ы не ко всему документу, а как-то выборочно. Например, относительно позиционированный элемент оказывается «ближе к пользователю», чем статический, даже если его z-index меньше. Создаётся впечатление, что каждый relative-элемент создаёт своё пространство z-индексов.

Исследования показали, однако, что это ложное впечатление. На самом деле своё пространство z-индексов едино для всех относительных элементов. Таким образом, проблема решается просто путём изменения статического элемента на относительный. По идее, других проблем это вызвать не должно?

2. Как в Mozilla изобразить overflow-x/overflow-y?

У меня тут ситуация такова, что на странице почти обязательно появляется горизонтальный скроллинг (по смыслу), но видимым он быть не должен. В IE эта проблема решается вот так:

overflow-x: hidden;

Но на самом деле свойства overflow-x и overflow-y придумали в Microsoft, а W3C про них ничего не знают. Как же сделать это в Мозилле? А вот так:

overflow: -moz-scrollbars-vertical;

Итого имеем:

body {
  overflow: -moz-scrollbars-vertical;
  overflow-x: hidden;
}

Осталось понять, как сделать то же самое в Опере.

3. Как в Opera изобразить overflow-x/overflow-y?

А никак. То есть, как, но только совсем другим путём. Потыкавшись в Гуголь минуты полторы и не найдя готового решения (вроде -o-scrollbars-vertical), я решил, что нужно сочинять своё имеющимися средствами (то есть, средствами W3C). Но это оказалось просто.

W3C считает, что свойство overflow может иметь значения visible, hidden, scroll, auto, inherit. То есть, применяя это всё к body, мы можем получить либо полное отсутствие скроллбара, либо присутствие обоих (понятно, что речь идёт о странице, которая не помещается в отведённые ей рамки). Но кто сказал, что применять его нужно к body? Итак, решение.

Внутрь body запихиваем вот такой вот div:

#wrapper {
  width: 100%;
  height: auto;
  overflow: hidden;
}

И весь остальной контент запихиваем уже в него. Теперь всё работает так, как нам надо. Элемент body отображает только вертикальный скроллбар; горизонтальный ему не нужен, так как единственный элемент, находящийся внутри него — #wrapper — имеет ширину 100%, то есть прекрасно влезает по ширине.

В этом месте кажется, что можно выкинуть IE-only overflow-x и MZ-only -moz-scrollbars-vertical, дабы получить красивый, внятный и совместимый со стандартами CSS. Но не тут-то было. Mozilla всё-таки снова отображает горизонтальный скроллинг. Как же она его любит...

В общем, для надёжности оставляем всё, и overflow-x, и -moz и wrapper. И чёрт с ними, со стандартами.

Hope it helps™

Rosh katan

Some people believe that rosh katan is exactly why The United States work. What am I talking about?

In Russia, people tend to «think» when doing their jobs even in (often) case they have no brains. I mean that, when people have some formal directions, they still try to figure out to themselves «why the directions are like this and not like that», «why do they want me to do B after A, when I can easily do it before» and so forth. The reason for that is that people want to do as little as possible to get to the point. In most cases this «thinking» is no good, because the ones who wrote directions are smarter, know better and have better experience.

I spent my summer vacation 2003 working in The United States and was suprised by that how vice-versa the things are in there. In The States, most people don’t think when they have instructions, because, they say, they are paid to follow instructions, not to gain the result. It’s not that they are stupid and so they cannot think. They just know that they have to follow instructions. That’s the key.

For example, imagine your job is to vacuum rooms in a hotel. You get in one of those and you see that it’s almost clean except for a small piece of dust in the corner. So what are you gonna do? Average Russian will go vacuum that corner and proceed to the next room. Average American will vacuum the whole room. Rosh katan? Average Russian will say «yes». But not really. The reason for cleaning the whole room is that the guy is paid for cleaning the room, not for getting the room clean. And this is a right point.

In The States, being paid for doing something means much more to people than it does here.

And, since instructions are written by more advanced people, following the instructions is better then trying to 1) figure out what the instructions are intended to lead to, then 2) figure out how to get that done using another (simpler) way. It’s better in terms of getting the result done precisely as it has to be done.

And room cleaning is just a simple example. The same is right for everything, I guess.

Well, so some people believe, that this is why USA works. They have a way better economy, because smart people developed the system and other people follow its rules. Just follow, no analyses. In Russia, the more we try to be rosh gadol, the more problems we’re gonna have. No matter what a smart plan will someone develop to improve our economy, we will fail. Because it’s the Russian «smart» way.

Just an opinion, of course.

Порядок

Ну не совсем. Числу порядков, на которые одно число больше другого, ни что не мешает быть дробным. Если его приводить к целому, то его можно:

  1. ceil()’ить или там floor()’ить, когда как. Тогда 10 больше 9 на порядок, да
  2. round()’ить. Тогда 10 больше 9 на 0 порядков, т. е., иными словами, 9 и 10 — числа одного порядка.

Но вообще-то не очень понятно, какие у нас есть основания приводить это число к целому?

  • 10 больше 1 на 1 порядок
  • 10 больше 9 на 0,0457 порядка
  • 199 больше 10 на 1,2989 порядка

Поэтому про «на одну циферку больше» я не согласен.

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

Просто вся эта фигня таким признанным общемировым гениям вроде их, наверное, и так понятна, что уж говорить о вроде-нас.

Итак, e2 RC1 и e2NP 3

e2 Release Candidate 1

Во-первых, версия v812 будет назваться Release Candidate 1, потому, что мне надоело уже откладывать и откладывать релиз. Если v812 окажется достаточно стабильной (что крайне маловероятно), то её и назовём релизом.

См. также: Верлог e2.

e2NP 3: NowPlayin Client

Во-вторых, новая версия NowPlayin! Впервые мне не стыдно её показать людям. Она, в отличие от e2NP 2.x:

  • Имеет удобный текстовый ini-файл
  • Не требует никаких дурацких dll’ок, поэтому работает не только на моём компьютере
  • Не выполняет недопустимую операцию, когда не может получить доступ к интернету

При этом весит она всего 28 килобайт.

Она была сделана благодаря:

  • полезной ссылке на статью WinINet Functions в MSDN, которую дал Shade в комментариях к позапрошлой заметке
  • помощи Дмитрия Бирмана по освоению WinINet и подключению его к программе
  • помощи Павла Леонидовича Цытовича и Юлии Шабунио в борьбе с указателями и строками на Си.

Теперь e2NP, наконец, можно скачать и использовать.

См. также: Документация по NowPlayin.

Ранее Ctrl + ↓