вторник, апреля 13, 2010

Первый сервер и активация Windows

Пять лет назад примерно в эти же дни мы купили свой первый сервер. На самом деле это была обычная персоналка, подключенная через целый каскад ИБП к сети и интернету, но мы называли её сервером. Вчера, после пяти лет непрерывной работы, у неё сгорела мать (чему предшествовало нарушение теплового контакта между вентилятором и процессором, как показало вскрытие).

Само собой, такие купить нигде невозможно уже, пришлось сделать upgrade. После которого Windows 2003 сообщил(а/о/и), что надо активироваться. Пикантность в том, что окно с требованием провести активацию показывается до того, как установились хоть какие-то драйвера на систему. В частности, недоступна сеть. Автоматическая активация невозможна. И впервые в жизни я воспользовался средством "активировать по телефону". Более бессмысленно я ещё никогда не проводит 18.5 минут жизни.

Во-первых, надо ввести длинный цифровой код, не ошибившись ни в одной цифре. Во-вторых, механическая женщина диктует код подтверждения, произнося цифры тихо и с разной скоростью. В-третьих, нет никакой диагностики того, что я ввёл все цифры правильно (особенно касается первого пункта) пока не столкнусь с сообщением Invalid Key.

Одна итерация активации по телефону у меня занимала 6'10". В конце-концов, систему я активировал, сервер оживил и сейчас поеду его водружать на площадку. Но осадок от чьей-то глупости остался.

понедельник, апреля 05, 2010

"Тихий час. Для всех, кроме нас"

Служба MSDN Online Concierge доступна 24 часа в сутки 7 дней в неделю. Служба не работает в праздничные дни.

Ещё будут вопросы, почему Google Earth работает как часы, а Bing 3d - нет?

А вообще не до шуток. Отрезали доступ к загрузкам MSDN. Без объяснения, без разговоров, вообще. По телефону какая-то механическая гражданка на ломаном русском рассказывает, что сегодня, 5го апреля - они не работают, потому что это выходной. И предлагает позвонить в "регулярные часы". Не смог понять - "регулярные часы" это когда регулы или что-то другое. В целом, день испорчен.

Обн.: как внезапно перестало пускать, так же внезапно и был дан доступ.

суббота, апреля 03, 2010

Чёрной молнии подобный

Пока не пойму, почему, но тем не менее. Вот фрагмент кода некоего компонента.


 protected override void OnPreRender(EventArgs E)
 {
  ...
  Random rnd = new Random((int)(DateTime.Now.Ticks % Int32.MaxValue));
  Response.Write(rnd.Next(10000) + "</br>");
  ...
на странице 2 таких компонента. Логично предположить, что при вызове rnd каждая переменная будет инициализирована своим значением тиков, соответствующим моменту выполнения кода инициализации. MSDN говорит о том, что
a single tick represents one hundred nanoseconds or one ten-millionth of a second. There are 10,000 ticks in a millisecond.

А коли так, то оба компонента должны при отрисовке вывести в поток 2 разных числа. Они и выводят. Но только в Windows 7. XP и 2003 показывают одно и то же. То есть, если для W7 я увижу:
1762
7773

6851
995
то для XP и W2K3
1762
1762

6851
6851
Конечно, инициализацию RNG вынес в static, но всё равно теряюсь в догадках - что это за поведение? Как возможно всю работу по подготовке и отрисовке 2х web-компонентов свести к одному 100-нс отрезку? И почему это поведение не проявляется в Windows7?

пятница, апреля 02, 2010

Концы строк, разбор XML и пустые страницы в IIS

Стоило не завершить строку \n, как чтение содержания элемента начало приводить к проглатыванию следующего тэга. Интересно.

Ещё интересней влияние размера буфера обработки запросов в IIS. Мы пишем в скрытое поле большую криптостроку и её наличие приводит к показу в ответ пустой строки. Оказывается, к этому имеет отношение слишком малое значение свойства uploadreadaheadsize. Увеличили до 100 КБ и дело пошло. Кстати, uploadreadaheadsize измеряется в байтах, а не в килобайтах, как ошибочно указано в документации.