Я в интернете

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

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

Позднее Ctrl + ↑

Firefox Security

Нет, ну я же говорил?

The number of vulnerabilities in Firefox recently has been alarming. At first Firefox appeared to be an attractive alternative to Internet Explorer (IE) for security reasons, but IE is now looking better and better in comparison

Неуловимый Джо неуловим только до тех пор, пока его не начнут ловить. Вот.

Тем временем, в течение последних двух месяцев Opera является единственным PC-браузером, в котором по мнению Secunia нет проблем безопасности.

Получается, что когда/если Опера станет более популярна, то и там всё будет очень плохо? Не думаю, что настолько.

  1. Опера, как отмечал Кукуц, не является платформой, в отличие от Gecko. Это значит, что возможные в ней дыры в принципе не могут вести в такие места, в которые они ведут в Firefox’е. Поскольку пока Опера не имеет платформенных амбиций (по крайней мере в мире desktop), то и опасаться за появление страшных внутренностей не приходится.
  2. В отличие от Firefox, Опера не использует ложь в маркетинговых целях. Создатели Firefox кричат про tabbed browsing и прочие блага цивилизации с такой интонацией, как будто это всё такие их изобретения, хотя кто это всё придумал — мы знаем. И так же они кричат про то, какие они most secure browser, и вот мы видим что оказывается на деле. У Оперы же хватает и правды для маркетинга, не приходится придумывать пустые слова. В конце концов, это действительно первый браузер с голосовым управлением (другое дело, что это нахрен никому не нужно). Это первый браузер со встроенной поддержкой SVG. Слоган восьмой Оперы — «Speed, Security, Simplicity». И я склонен доверять ему. Просто пока нет никаких оснований не доверять.

Exceptions

The last time I [bashed exceptions] I got in a lot of trouble. In an off-the-cuff remark on the Joel on Software homepage, I wrote that I don’t like exceptions because they are, effectively, an invisible goto, which, I reasoned, is even worse than a goto you can see. Of course millions of people jumped down my throat. The only person in the world who leapt to my defense was, of course, Raymond Chen, who is, by the way, the best programmer in the world, so that has to say something, right?

© Joel Spolsky

По-русски:

Когда я в прошлый раз ругал exceptions, я получил кучу неприятностей. Я написал между делом на странице Joel on Software, что мне не нравятся exceptions, потому что они, по сути, являются невидимым goto, который, как я писал, ещё хуже, чем goto, который сразу видно. Разумеется, миллионы людей набросились на меня. Единственным человеком, выступившим в мою поддержку, был Рэймонд Чен, который, кстати сказать, является лучшим программистом в мире, а это о чём-то да говорит, так ведь?

Отсюда. И я про это писал когда-то, но мне не поверили:

Выясни, для начало, что такое try/catch, а уж потом говори глупости.

Joel Spolsky и Raymond Chen, кстати, определённо лучше меня (и вас тоже) понимают в программировании вообще и в exceptions в частности.

И, кроме того, если я говорю, что exceptions — это goto, это не значит, что я говорю, что exceptions — это плохо. И goto бывает полезен, в умелых руках. И error_reporting отключенный. Это всё инструменты, которые позволяют программировать на скорую руку, что часто бывает полезно. Главное уметь выделить моменты, когда всё это вредно.

Ссылки по теме:

Eat Commas for Breakfast

Larry Wall famously said, «People understand instinctively that the best way for computer programs to communicate with each other is for each of the them to be strict in what they emit, and liberal in what they accept.» I think that the evolution of HTML has proven that this isn’t such a great idea. In fact, the stricter the API is about its input, the more likely the code is going to work in funny situations. The designers of Java got it right when they decided that nothing about the Java spec should leave any choice to the compiler developers (at least, not in the gratuitous way that C did, where the size of basic data types was not fixed). A better quote comes from Russian Field Marshal Suvorov: «A hard drill makes an easy battle.» You want your compiler and your development environment to be as strict as possible; you want it to literally generate random return values for GlobalSize so that you don’t get into the habit of counting on something that won’t be there everywhere; you want to use French international settings on Chinese Windows 2000 with an absurd color scheme, DVORAK keyboard, trackball, 640x480 VGA mode, and huge ugly fonts on your development system so that you remember to bake in the code that adjusts for all these things. Then your application will be buff and strong and it will laugh in the face of wimpy problems like people who use commas instead of dots as the decimal. Ha. I eat commas for breakfast, your code will say, with a Russian accent.

Как же классно он пишет, читать одно удовольствие.

Антилайф

Вчера вот такую фигню в магазине обнаружил:

Антилайф

Сначала прочитал «Антилайф». Не очень удачное название, явно.

Power of Bundling

When Microsoft released Internet Explorer 3.0, fast on the heels of IE 2.0, it was shocking just how good a job they had done. Not only did they replicate every feature in Netscape’s browser, but they added some more features too, and did it all with an architecture that was robust and strategic. While it is true that Microsoft used its operating system to help push its browser, it is also true that they just wouldn’t have gotten away with this if their browser wasn’t great. (Case in point: even though Windows out of the box can play MP3 files, everyone I know uses WinAmp, not the Windows Media Player, to listen to them. Even though MSN is on the desktop, everybody uses AOL. Back when the browser integrated with Windows was crap, Netscape had 80% market share. So please stop fretting about the power of bundling.)

© Joel Spolsky, отсюда.

Интересно, мне это не приходило в голову, очень похоже на правду.

С днём Победы!

Я думаю, что среди аудитории моего сайта найдётся не очень много ветеранов Великой Отечественной. С другой стороны, если бы не эти люди, сегодня hardly бы вообще нашёлся мой сайт вместе с его аудиторией. Поэтому поздравляю нас с тем что мы есть, и у нас всё хорошо. Спасибо им за это.

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

Вот bdb дал ссылку на перевод официальных правил на русский язык. На этот раз вроде бы не пропущено никаких пунктов, но есть другая беда — качество перевода. Такое ощущение, что его делала машина. Всё-таки в словосочетаниях «затронутая тема» и «затронутый шар» прилагательное несёт различные значения (см. курсив):

  1. Штрафы
    За все фолы налагается штраф в размере четырех очков, если ниже, в пунктах с (a) по (d), не указан больший.
    Штраф налагается в следующем размере.
    <...>
    (b) В размере стоимости очередного шара или затронутого, если он дороже, за:
    (i) нанесение удара, когда какой-нибудь шар не остановился;

Вместо «затронутого» надо было написать «упоминаемого в подпунктах ниже», например. Хотя всё равно плохо... Читать очень тяжело, как через бурелом пробираешься. Это не русский язык, а просто предложения, плохо составленные из русских слов.

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

Нельзя купить офис

Несколько раз встречал в городе такие растяжки, сегодня решил сфоткать:

Нельзя купить офис

Нельзя купить офис.

Едва заметным курсивом написано «упустить шанс»

Феноменальная память

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

Mike Oldfield — Far Above The Clouds from Tubular Bells III, 1998

Три клика — и оно у меня в ушах.

Всё-таки эти 20 секунд — ужасное испытание. Такой страх, что ты так и не сможешь вспомнить что это было. Хорошо, что у меня так почти не бывает.

Сразу после этого в голову почему-то пришло:

Neneh Cherry and Youssou N’dour — 7 Seconds

Нашёл, включил, наслаждаюсь. Конечно это вспомнить уже не мудрено, всё-таки песня. Хотя имена исполнителей, думаю, помнит не каждый.

Отличная заметка получилась, содержательная. Как всегда про то, какой я молодец.

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

 6 мин

Правка от 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. Есть ли продвинутые граждане, способные объяснить мне это? Буду очень рад вам в комментариях.

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

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

Ранее Ctrl + ↓