Monday, December 06, 2010

Пара смешных вопросов из харьковского что-где-когда

Вот пара вопросов из харьковского что-где-когда. Угадать невозможно, но ответы смешные.

1. Британское королевское общество защиты животных от жестокого обращения опубликовало отчет, в котором отмечалось, что в этом году участились случаи жестокого обращения с домашними животными, особенно собаками. Заглавие статьи об этом отчете в одном журнале лишь одной буквой отличалось от названия известного непростого литературного произведения второй половины 20-го века. Как называлась статья?

Ответ: "Трудно быть догом".

2. В производстве сусального золота кроме первой и второй применяется еще и галерея. Какие два слова мы заменили словом "галерея"?

Ответ: в производстве сусального золота применяется первая, вторая и третья ковка. Для тех, кто не понял, почему галерея: произнесите "третья ковка" слитно.

 

Saturday, November 27, 2010

Black logon screen on Windows Server

One day I was logging on to one of our Windows servers and was greeted by the following:

The screen was completely black except for the Windows Server logo. It's not a screen saver! Frankly, I freaked out. What kind of black screen of death that was? Then I realized the server wasn't dead. The screen was black, but fully functional. If you can see the little white vertical bar under the logo, that's the insertion point in the password entry field. So, with some blind typing I was able to log in. But what's the problem?

What do you know, it's a known one and has a Microsoft KB article 906510 dedicated to it. Turns out, it happens if for some reason the key HKEY_USERS\.Default\Control Panel\Colors gets reset to all zeros. The key allows to customize the colors used by the logon screen; in this case the colors are "customized" to all black! Why would it happen, I don't know. I suspect, what triggered the problem was the server running out of space on its system drive some time before. Windows servers have a tendency to tolerate this very badly, as I once wrote. The solution is to export this key from some other Windows server and import on the affected server.

И еще этимологические изыскания

Ну и еще на тему происхождения слов. Кто-то когда-то утверждал, что есть такой древнй корень к-р-м, означающий что-то скрытое и защищенное, как-то: укромный, кромешный, карман, закрома. При определенной фантазии сюда же можно приплести Кремль (крепость), и даже Крым. Название полуострова просходит от названия одной из столиц Крымского ханства Кырым (сейчас Старый Крым), а слово Кырым по одной из версий означает "крепость".

Все это, конечно, весьма умозрительно. Словарь Фасмера свзявает укромный, кромешный, и закрома со словом "кром", т.е. "край" (отсюда же "кромка"). Как ни странно, Кремль все же связан с этим корнем, якобы происхождение слова такое: кремлевская сосна - это особо крепкая сосна, растущая на краю (кромке) леса. Видимо, из таких сосен и строили кремли.

 

Monday, November 22, 2010

Мне триста лет, я выполз из тьмы

На работе объяснял сотруднице новое задание. Молодая девушка, недавно закончила технический ВУЗ, сейчас в аспирантуре. Сказал "я дам тебе новое задание..." и задумался над следующей фразой. Чтобы заполнить паузу вставил: "Я дам вам парабеллум..." На ее лице промелькнуло удивление. Я переспросил, знает ли она, откуда эта фраза. Она не знала. Они не такие как мы.

Saturday, November 20, 2010

Windows tools: handle and taskkill

It's been a while since I posted on system administration! Here are two findings - probably trivial, but new for me. 

Who's locking?

Say you can't open, move or delete a file on a Window system because it is locked by another process. How do you find out which process is responsible? To handle this question use Handle, a utility from Sysinternals suite. Basic usage:

handle <file name>

<process name> can be the full file name or any part of it. There are a few handy options, e.g. -c to close the handle in question. Handle is pretty much an equivalent of fuser(1) on Linux.

Killing hung service

It happens from time to time that a service gets stuck in "Stopping" or "Starting" state. How can you kill it without rebooting the entire machine? On Windows Server 2003 or 2008 the built-in taskkill command-line utility can help. Use the following syntax:

taskkill /fi "SERVICE eq <servicename>" /f

where <servicename> is the name of the service that has hung (you can see it under "Service name" in service's properties window in Services console). For example:

taskkill /fi "SERVICE eq TlntSvr" /f

kills Telnet service, if it happens to get stuck. Taskkill has many options, e.g. it can kill a process by PID with /pid switch. The /f switch forces termination of an unresponsive process.

 

 

 

Еще этимологические изыскания

Раз уж зашла речь о происхождении слов, хочу поговорить о корне "г-р-д", очевидно, обозначающем нечто защищенное и окруженное стеной, как то: город, ограда, огород. В чешском языке находим слова "hrad" (замок) и "zahrada" (сад). Как видим, если восточные славяне ограждали свои огороды, то западные - сады, как, впрочем, и не только они, как сейчас станет ясно. Движемся дальше на запад. В английском языке от этого же корня слова "guard" и "garden" (во французском "jardin", в немецком "garten"). Сюда же нужно отнести слова "yard", о происхождении которого New Oxford American Dictionary прямо сообщает "Old English geard ‘building, home, region’, from a Germanic base related to Russian gorod ‘town’", и "ward", которое по тому же словарю восходит к "variants of Old French garde, garder; compare with guard". Интересно, как буква g перешла в w, но раз уж это произошло, то, очевидно, от того же видоизмененного корня немецкое слово "Warte" ("сторожевая башня; наблюдательная вышка"). (Замена d - t не должна нас смущать, для немецкого она вообще характерна: dance - tanz, drink - trinken  и т.п.). В украинском обратите внимание на слово "варта". Далее, в хорватском языке находим слово "vrt" - сад (так и пишется, без гласных; произносится примерно как "вырт"). Наконец, возвращаясь к русскому языку, находим, что слово "ворота" все от того же корня. Хотя тут можно было заподозрить связь с "воротом" и вращением, словарь Фасмера связывает ворота с "англос. weor, wor "ограда дома, двор, улица", алб. vathe "ограда, двор, загон, овчарня", тохар. warto "сад, роща", др.-инд. vrtis ж. "забор, ограда".

 

Sunday, November 14, 2010

Этимологические изыскания

Как пишут в Монголиаде (а также и в Википедии), у монголов отряд из 100 воинов назывался "jaghun". Интересно, не от этого ли слова происходит украинское слово "загiн"? Странно, но в 5-томном этимологическом словаре украинского языка это слово отсутствует.

Monday, October 18, 2010

Наши "проблеммы"

Проблема №1: научиться грамоте.


Monday, September 06, 2010

Машина Яндекса в Харькове


Стойка на крыше явно предназначена для камер, кроме того, фирма neq4, как написано на их сайте, делала панорамы Киева для карт Яндекс. Т.о. на картах Яндекса появится street view Харькова?

Saturday, August 14, 2010

"С днем рождения, Украина"

Ко Дню Независимости Украины канал "Интер" выпустил серию роликов, в которых представители нац. меньшинств поздравляют Украину с днем рождения и поют гимн на своем языке.

По-моему ролик о евреях выглядит несколько нелепо:

Учитель говорит на странной смеси идиша с ивритом, почему-то вставляя "урок истории" на русском. UPD: дата провозглашения независимости Украины называется неверно: 13 ава 5751 года соответствует 24 июля 1991, а не 24 августа.

Зато хорошо видны витражи в киевской синагоге на Подоле, сделанные лично Женей Котляром :-).

Все ролики можно увидеть здесь: http://inter.ua/uk/video/episode/independence

Saturday, July 10, 2010

Redirecting a Samba share to another server

In this post I'll describe how to configure Samba to redirect a share to another server. A typical example when this might be useful is as follows. You have a share, say \\server\work that you need to migrate to new hardware, so that it becomes \\newserver\work. However, you don't want all your users to remember that the files are at a new location. You'd like your users to continue using the old address \\server\work and be transparently redirected to \\newserver\work. This is possible with MS DFS (distributed filesystem) support via msdfs proxy directive. It seems like a more obscure directive not very well documented and described, so I'll try to report my experience with it.

The first thing to do is to enable MS DFS in Samba on the global level by specifying:


host msdfs = true

in the [global] section of smb.conf.

Then in the section for your share, you remove the path directive and insert two MS DFS-related directives, msdfs root and msdfs proxy:


[work]
msdfs root = true
msdfs proxy = \newserver\work

Note a few things about this configuration:
  1. You MUST NOT have the path directive in the share definition
  2. The value of msdfs proxy directive is the new location of the share to redirect to; notice though, that's a single backslash in the beginning of the value, NOT the double backslash you could have expected!

That's all, now \\server\work transparently redirects to \\newserver\work. Clients may need to be rebooted to start working properly with the redirected share. In my experience, clients can't access the share right after the reconfiguration, but it starts working after some time (not sure how much time) or after the client reboots.

Per-client-IP configuration for VSFTPD

Recently I needed to configure VSFTPD FTP server to behave differently depending on the client IP address. Specifically, the task was to limit the number of connections to no more than 3 per client IP, but lift this restriction for one specific IP address (which was our own office address). The per-IP limit itself is easy to implement with max_per_ip configuration setting (see VSFTPD FAQ). The trick was specifically in making our office address the exception to this limit.

While per-user configuration is easy to implement with user_config_dir setting (and it is described in the FAQ), per-IP configuration is less obvious, so I thought I would document my findings.

The path to per-IP configuration lies via interaction with tcp_wrappers. Just in case you don't know, tcp_wrappers is a tool for filtering incoming network requests, and VSFTPD makes use of it. So, the first thing to do, is to enable tcp_wrappers support in VSFTPD, by making this setting in vsftpd.conf:


tcp_wrappers=YES

Then proceed to enter the default configuration in the main vsftpd.conf file. In my case, I set max_per_ip to limit connections per IP address:


max_per_ip=3

The next step is to configure tcp_wrappers. Add a line similar to the following to /etc/hosts.allow file:


vsftpd:1.2.3.4/255.255.255.255:setenv VSFTPD_LOAD_CONF /etc/vsftpd/vsftpd.conf.special

This must be a single line, even though Blogger may wrap it. It consists of 3 fields, separated bu the ':' character. The first must be vsftpd. The second contains your "special" IP address for which you want to enable a special configuration. As shown above, it may include a netmask so that you can apply the special configuration to a subnet (see man page for hosts.allow for details). Finally, the third field instructs tcp_wrappers to set an environment variable VSFTPD_LOAD_CONF to the name of a configuration file that will apply to your special IP address(es). The name of the variable must be exactly this; the value may be any filename you like. Once tcp_wrappers set this variable, VSFTPD will load the configuration file specified in it for the IP address(es) from the second field.

So, in the additional configuration file (in my example, /etc/vsftpd/vsftpd.conf.special) you can override everything you want for your special addresses. In my case I just needed to turn off per-IP restiction:


max_per_ip=0

That's it. I find it rather convoluted, but it works and achieves a useful purpose.

Sunday, May 30, 2010

Новости

Уже много лет читаю новости на сайте korrespondent.net. К сожалению, последнее время новости все более однообразные. Вот как выглядят типичная сводка новостей на Корреспонденте:
  • В Брюсселе Янукович перепутал рояль с унитазом.
  • Фотогалерея: в Мариинском парке на Януковича нагадила птичка.
  • Янкович побеждает во втором сете (примечание: Янкович это не опечатка! Это теннисистка!!).
  • Тимошенко создала Комитет защиты украинских животных от иностранных растений.
  • ВО Свобода представило театрализованное действо "Приключения Бандеры в стране овощей". В спектакле берут участие Богдан Бенюк в роли Бандеры и Олег Тягнибок в роли доктора Хауса.
  • В России в результате теракта самолет упал на участников акции протеста "Синее ведерко", вследствие чего протестующие провалились в шахту, спровоцировав там взрыв метана. Участники акции задержаны милицией.
  • Чемпион мира по версии WQQ в пятом полусреднем весе Пакьяо Будвейзер оказался на 1 грамм тяжелее претендента на этот титул украинца Джамиля Пупко.
И, наконец, главная новость дня:

  • Активистки движения FEMEN провели в Севастополе топлесс-акцию протеста против пребывания на территории Украины Черноморского Флота России. Моряки в восторге.
И последняя новость:

  • В знак протеста против публикации предыдущей новости движение FEMEN проводит топлесс-акцию в редакции журнала Корреспондент. Видео через пару часиков, а пока мы заняты!


Sunday, May 09, 2010

Трудности перевода: православные раввины

Прочитал известную книжку Ричарда Фейнмана "Вы, конечно, шутите, мистер Фейнман!". Бросился в глаза такой пассаж:
Во время конференции я жил в Еврейской богословской семинарии, где учились молодые раввины – полагаю, что они относились к православной церкви. 
Ну и каша же была в голове у переводчика!

Saturday, May 01, 2010

Парадокс лжеца

Парадоксом лжеца называется следующее простое утверждение:
Это утверждение ложно
Парадоксальность в том, что невозможно решить, истинно оно или ложно. В самом деле, допустим, что оно истинно. Т.е. действительно это утверждение ложно. Т.е. оно ложно. Т.е. мы начали с предположения, что оно истинно, и пришли к выводу, что оно ложно. Противоречие! То же самое получится, если мы предположим, что это утверждение ложно. Т.е. неправда, что это утверждение ложно. Значит, оно истинно. Т.е. мы начали с предположения, что оно ложно, и пришли к выводу, что оно истинно. Опять противоречие!
 
Получается, что как ни крути, а это утверждение нельзя назвать ни истинным, ни ложным. Последние две с половиной тысячи лет философы не могут решить, как же это понимать. Я же попробую предложить свое объяснение.

Я вижу объяснение в следующем. Не всякий набор слов является осмысленным утверждением, которому можно приписать истинность или ложность. Парадокс лжеца только похож на осмысленное утверждение, - и в этом подвох! - на самом же деле является бессмысленным набором слов. Проблема в ссылке на "это" утверждение, которое еще не определено. Сейчас я постараюсь объяснить это более наглядно. 

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

bool liars_paradox()
  return liars_paradox() == false;
}

Видно, что определение этой функции содержит бесконечную рекурсию. Определение ссылается само на себя. Поэтому функция liars_paradox никогда не возвратит результата true или false. Соответственно, парадокс лжеца не является "утверждением", о котором имело бы смысл говорить, истинно оно или ложно.

Кстати, столь же парадоксальной является фраза "Это утверждение истинно". Можно предположить, что оно истинно - это ничему не противоречит. Но с тем же успехом можно предположить, что оно ложно - и это тоже ничему не противоречит! Т.о. эта фраза одновременно и истинна и ложна, что, конечно, эквивалентно тому, что она не истинна и не ложна, как парадокс лжеца (истинна - значит не ложна, ложна - значит не истинна). На самом деле, конечно, эта фраза столь же бессмысленна, и по той же самой причине, что и парадокс лжеца.

Аналогия с функциями позволяет также прояснить, почему парадокс лжеца так похож на осмысленное утверждение. Можно взять произвольный набор слов, скажем "черный вчера наверно", и никто и не подумает спрашивать, истинно ли это "утверждение" или ложно. Но парадокс лжеца настолько похож на осмысленное утверждение, что такой вопрос задается. Дело же в том, что фраза "черный вчера наверно" просто синтаксически неверна, и этот "syntax error" легко определяется каким-то аналогом компилятора в нашем мозгу. Парадокс же лжеца содержит семантическую ошибку, т.е. ошибку времени выполнения, найти которую, как известно любому программисту, гораздо сложнее.

Блюстительница нравов

Мама рассказала следующую историю.

Когда она училась в школе, у нее была одна очень строгая учительница. Учительница имела славу блюстительницы нравов. Она тщательно следила, чтобы мальчики не приближались к девочкам ближе пионерского расстояния, от девочек же требовалась сугубая скромность в одежде. В частности, она требовала, чтобы девочки носили чулки даже летом. "Но ведь жарко!" - протестовали школьницы. "В школу с босыми ногами нельзя!" - отрезала учительница.

Лишь много лет спустя мама узнала, что все это время строгая учительница жила в гражданском браке с директором школы, который был старше ее более чем на 20 лет и оставил ради нее жену с тремя детьми. Они прожили вместе до самой его смерти, так и не поженившись, так как жена директора не давала ему развода.

Saturday, April 24, 2010

Рациональность и эмоции

Отец сформулировал следующий афоризм:
Рациональные люди отличаются от эмоциональных только тем, что для своих эмоциональных поступков находят рациональное обоснование

Дилемма заключенного

 

В теории игр рассматривается задача, известная как "Дилемма заключенного". Полиция арестовала двух преступников при совершении мелкого ограбления. Полиции известно, что они совершили другое, крупное ограбление, но у полиции нет доказательств этого. Преступникам предлагается признаться в совершении крупного ограбления, причем им обещают следующие условия:

  • если оба признаются, то оба получат по 5 лет за крупное ограбление;
  • если оба не признаются, то оба получат по 2 года за мелкое ограбление (их участие в крупном ограблении останется недоказанным);
  • если же один признается, и даст показания против другого, а второй не признается, то первый за помощь следствию выйдет на свободу, а второй попадет за решетку на 10 лет.
 
Как следует поступить преступникам? Поставим себя на место одного из них. Разумеется, нужно рассмотреть варианты, что будет, если партнер признается, и что, если партнер не признается. Результаты такого размышления легко представить в виде таблицы:

Партнер признаетсяПартнер не признается
Я признаюсь

5

0

Я не признаюсь

10

2

 
Столбцы таблицы - возможные решения партнера, строки - наши решения, числа в таблице - количество лет, которое получит наш преступник при таком стечении обстоятельств. Теперь рассмотрим, что будет, если партнер признается (первый столбец). Нам лучше признаваться - получим 5 лет, а не 10. А что будет, если партнер не признается (второй столбец)? Тоже лучше признаваться - получим 0 лет, а не 2. Получается, что в любом случае лучше признаваться.
 
Заметим, что оба преступника будут рассуждать одинаково, поэтому оба признаются и получат по 5 лет. Это действительно логично, т.к. не признаваясь каждый рискует "загудеть" на все 10. Интересно же здесь вот что: если бы оба не признались, то получили бы только по 2 года - что, безусловно, предпочтительнее для каждого. Результат несколько парадоксальный: каждый, действуя в своих интересах, тем не менее оказывается в неоптимальной для себя ситуации. Почему так получается?

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

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

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

Литература:
Ross, Don, "Game Theory", The Stanford Encyclopedia of Philosophy (Fall 2009 Edition), Edward N. Zalta (ed.), URL = <http://plato.stanford.edu/entries/game-theory/>.
 

Thursday, April 15, 2010

Анти-спам в Google

Получил сегодня при поиске в Google такое сообщение:

Оказывается, поисковые запросы тоже проверяются на вирусы...

Thursday, April 08, 2010

Об отпуске

- Я только что с моря, плавал в маске!
- Чтобы рыбы не узнали?!

Thursday, March 11, 2010

О физике

Первое и второе начала термодинамики можно сформулировать так:
Количество постоянно, а качество ухудшается

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

Хочешь повысить качество - работай!

И это следствие фундаментальных законов природы!

Wednesday, March 10, 2010

Креативная дверь в Харькове

Впрочем, по виду, за этой дверью пусто...


Thursday, February 11, 2010

Сердце Харькова

Вот интересно, почему Профиль Google показывает как "Мои места" угол улиц Красноармейской и Славянской? Видимо, по мнению Google в этом скромном месте напротив вокзала находится истинный центр Харькова.

Tuesday, January 19, 2010

Где я был

По наводке Паши Бернштама (картинка кликабельна):