Hi! My name is Leonid, I live in Kharkov, Ukraine and work as a software engineer. Here I record notes on programming, system administration and other, completely unrelated, topics. Some posts here are in English and some are in Russian.
Tuesday, December 21, 2010
Monday, December 06, 2010
Пара смешных вопросов из харьковского что-где-когда
Вот пара вопросов из харьковского что-где-когда. Угадать невозможно, но ответы смешные.
1. Британское королевское общество защиты животных от жестокого обращения опубликовало отчет, в котором отмечалось, что в этом году участились случаи жестокого обращения с домашними животными, особенно собаками. Заглавие статьи об этом отчете в одном журнале лишь одной буквой отличалось от названия известного непростого литературного произведения второй половины 20-го века. Как называлась статья?
Ответ: "Трудно быть догом".
2. В производстве сусального золота кроме первой и второй применяется еще и галерея. Какие два слова мы заменили словом "галерея"?
Ответ: в производстве сусального золота применяется первая, вторая и третья ковка. Для тех, кто не понял, почему галерея: произнесите "третья ковка" слитно.
Saturday, November 27, 2010
Black logon screen on Windows Server
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
Этимологические изыскания
Monday, October 18, 2010
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:
- You MUST NOT have the
path
directive in the share definition - 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
Новости
- В Брюсселе Янукович перепутал рояль с унитазом.
- Фотогалерея: в Мариинском парке на Януковича нагадила птичка.
- Янкович побеждает во втором сете (примечание: Янкович это не опечатка! Это теннисистка!!).
- Тимошенко создала Комитет защиты украинских животных от иностранных растений.
- ВО Свобода представило театрализованное действо "Приключения Бандеры в стране овощей". В спектакле берут участие Богдан Бенюк в роли Бандеры и Олег Тягнибок в роли доктора Хауса.
- В России в результате теракта самолет упал на участников акции протеста "Синее ведерко", вследствие чего протестующие провалились в шахту, спровоцировав там взрыв метана. Участники акции задержаны милицией.
- Чемпион мира по версии WQQ в пятом полусреднем весе Пакьяо Будвейзер оказался на 1 грамм тяжелее претендента на этот титул украинца Джамиля Пупко.
- Активистки движения FEMEN провели в Севастополе топлесс-акцию протеста против пребывания на территории Украины Черноморского Флота России. Моряки в восторге.
- В знак протеста против публикации предыдущей новости движение FEMEN проводит топлесс-акцию в редакции журнала Корреспондент. Видео через пару часиков, а пока мы заняты!
Saturday, May 15, 2010
Sunday, May 09, 2010
Трудности перевода: православные раввины
Во время конференции я жил в Еврейской богословской семинарии, где учились молодые раввины – полагаю, что они относились к православной церкви.Ну и каша же была в голове у переводчика!
Saturday, May 01, 2010
Парадокс лжеца
Это утверждение ложно
Аналогия с функциями позволяет также прояснить, почему парадокс лжеца так похож на осмысленное утверждение. Можно взять произвольный набор слов, скажем "черный вчера наверно", и никто и не подумает спрашивать, истинно ли это "утверждение" или ложно. Но парадокс лжеца настолько похож на осмысленное утверждение, что такой вопрос задается. Дело же в том, что фраза "черный вчера наверно" просто синтаксически неверна, и этот "syntax error" легко определяется каким-то аналогом компилятора в нашем мозгу. Парадокс же лжеца содержит семантическую ошибку, т.е. ошибку времени выполнения, найти которую, как известно любому программисту, гораздо сложнее.
Блюстительница нравов
Когда она училась в школе, у нее была одна очень строгая учительница. Учительница имела славу блюстительницы нравов. Она тщательно следила, чтобы мальчики не приближались к девочкам ближе пионерского расстояния, от девочек же требовалась сугубая скромность в одежде. В частности, она требовала, чтобы девочки носили чулки даже летом. "Но ведь жарко!" - протестовали школьницы. "В школу с босыми ногами нельзя!" - отрезала учительница.
Лишь много лет спустя мама узнала, что все это время строгая учительница жила в гражданском браке с директором школы, который был старше ее более чем на 20 лет и оставил ради нее жену с тремя детьми. Они прожили вместе до самой его смерти, так и не поженившись, так как жена директора не давала ему развода.
Saturday, April 24, 2010
Рациональность и эмоции
Рациональные люди отличаются от эмоциональных только тем, что для своих эмоциональных поступков находят рациональное обоснование
Дилемма заключенного
В теории игр рассматривается задача, известная как "Дилемма заключенного". Полиция арестовала двух преступников при совершении мелкого ограбления. Полиции известно, что они совершили другое, крупное ограбление, но у полиции нет доказательств этого. Преступникам предлагается признаться в совершении крупного ограбления, причем им обещают следующие условия:
- если оба признаются, то оба получат по 5 лет за крупное ограбление;
- если оба не признаются, то оба получат по 2 года за мелкое ограбление (их участие в крупном ограблении останется недоказанным);
- если же один признается, и даст показания против другого, а второй не признается, то первый за помощь следствию выйдет на свободу, а второй попадет за решетку на 10 лет.
Партнер признается | Партнер не признается | |
Я признаюсь | 5 | 0 |
Я не признаюсь | 10 | 2 |
Размышляя над этим вопросом понимаешь, что многие жизненные ситуации подобны дилемме заключенного, и на этом простом примере становятся понятны многие механизмы работы человеческого общества. Поэтому дилемма заключенного интересует философов еще больше, чем специалистов по теории игр.
Thursday, April 15, 2010
Анти-спам в Google
Оказывается, поисковые запросы тоже проверяются на вирусы...
Thursday, April 08, 2010
Thursday, March 11, 2010
О физике
Количество постоянно, а качество ухудшается
Но это очень пессимистическая формулировка. Энтропия возрастает только в замкнутой системе. Если же над системой совершать работу, то энтропия может и уменьшится. Поэтому более конструктивно будет сказать так:
Хочешь повысить качество - работай!
И это следствие фундаментальных законов природы!