QR-код в ASCII

 ▄▄▄▄▄▄▄  ▄▄ ▄▄    ▄▄▄▄▄▄▄ 
 █ ▄▄▄ █    ▄▄▄▀ ▄ █ ▄▄▄ █ 
 █ ███ █ ▀▄▀▄▀ ▄ ▀ █ ███ █ 
 █▄▄▄▄▄█ █▀█▀▄▀█ ▄ █▄▄▄▄▄█ 
  ▄▄   ▄ ▀██▀██ ▀█ ▄▄ ▄    
 ▄▄█▀ █▄▀█▀▀▀▀▄▄█  ▀▀ █▄▀█ 
 ▄███ ▀▄ ▀  ▄ ▄█▄█ ▄█▀▀  ▄ 
 ▀ ▀▄▀▄▄▀▄▄▄█▄ ▀██▄▀█ ▄▄▀█ 
 ▀▀▄▄▄▀▄ ▀▀█ █▄▀▄███▄▄  ▄  
 ▄▄▄▄▄▄▄ ▀▄▄▀▄▄ ▀█ ▄ █▄▀ █ 
 █ ▄▄▄ █  ▄█▀█ ███▄▄▄█▄ ▄█ 
 █ ███ █ ▄██▀▀▄▀▀▀█  █▀▀█▄ 
 █▄▄▄▄▄█ ▀ ▀ ███ ██▀▀▀▄  ▄ 
 

Интересная штука — QR-коды в ASCII-графике. Можно внутри текста помещать, в обычном текстовом файле. Profit.

14 комментариев

IE9 beta

Internet Explorer 9 beta (39.95КиБ)

Вышла первая бета-версия IE9. Идея разместить табы и адресную строку на одной прямой явно неудачная.

Сайты открываются через пень-колоду, явно хуже, чем в последней platform preview, мой сайт выглядит, как какашидзе, даром, что показывался одинаково во всех браузерах, включая самые старинные IE Mobile. Зато ACID3 — 95%, одно слово — синтетика.

Тьфу.

14 комментариев

Белоярская АЭС

Есть такое направление — технотуризм, это посещение всевозможных закрытых учреждений и объектов. Мне давно хотелось посетить настоящую атомную электростанцию и вот, в прошлые выходные, мы с женой съездили на Белоярскую АЭС (находится в городе Заречный Свердловской области).

АЭС — закрытый объект, попасть туда простому смертному (а тем более посмотреть на реактор) крайне тяжело, сейчас очень удачный момент — «Росатом» заинтересован в пиаре отрасли и под эгидой популяризации блоггерам разрешается участвовать в довольно редких (несколько раз в год) экскурсиях.

Спасибо огромное агентству «Редкая марка» и  Бутяковой персонально за организованную экскурсию. Если кто-то захочет попасть на АЭС в ближайшем будущем, обращайтесь туда, можно написать лично.

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

Белоярская АЭС уникальна тем, что на её территории действует единственный в мире реактор на быстрых нейтронах БН-600 (мощность в настоящее время — 630 МВт), запущенный ещё в 1980 году — наследство СССР, инженерная школа страны была на таком уровне, что реактор этого типа (считается самым перспективным и современным) работает вот уже 30 лет без критических сбоев.

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

Дело не только в очень удачных инженерных решениях, но и в применённых материалах. Можно только гордиться промышленностью СССР, но вот такого же доверия к промышленности России у меня нет. Сейчас на территории АЭС возводится энергоблок БН-800 (на тех же быстрых нейтронах, как следует из названия), получится ли у нас ещё раз? Дирекцию настроена оптимистично, меня же гложут сомнения.

Что такое атомная электростанция изнутри? Моё воображение рисовало, довольно туманно, огромный реактор, вокруг куча обслуживающего персонала… На деле атомная электростанция — это трубы. Трубы, трубы, трубы, трубы и очень мало людей.

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

Самый совершенный атомный реактор, на настоящий момент, это обычная печка, энергия снимается через тепло. Кстати, в реакторе на быстрых нейтронах БАЭС в качестве теплоносителя используется жидкий натрий (это очень эффективно, но порождает массу технических трудностей, например, натрий при контакте с водяными парами взрывается).

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

Одна ошибка — курсы переквалификации, экзамены, вторая — прощай диспетчерская.

На фотографиях видно, что часть приборов современенная, часть, не иначе, осталась ещё с советских времён. Это закономерно — диспетчеры привыкают к определённым приборам и снимать показания с новых для них неоправданное неудобство. Тем не менее, приборы выходят из строя и обновления всё же производят, но дозированно.

Сам реакторный цех ещё более пустынный и огромный (десятки метров в любую сторону). Небольшая яркая бочка, окружённая «лепестками» — реактор. Не впечатляет, правда? Внутри реактора интересно до смерти, но в могилу мы не стремимся.

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

Общие впечатления — один раз съездить на такой объект интересно, в дальнейшем я бы посетил разве что музей в Обнинской АЭС (это первая гражданская АЭС в мире), не сомневаюсь, что остальные станции похожи между собой, на взгляд неспециалиста, как две капли воды.

14 комментариев

PHP и UTF-8: четыре с половиной или некоторые функции

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

public static function strcmp($str1, $str2) {
    // используется модуль intl
    return collator_compare(collator_create(''), $str1, $str2);
}

public static function strncmp($str1, $str2, $len) {
    return self::strcmp(self::substr($str1, 0, $len), self::substr($str2, 0, $len));
}

public static function strcasecmp($str1, $str2) {
    return self::strcmp(self::strtolower($str1), self::strtolower($str2));
}

static public function ctype_space($text) {
    return preg_match('/^\p{Zs}+$/us', $text);
}

Привожу в качестве иллюстрации того, что не всё так сложно как кажется. Стоит только сесть и начать.

Некоторые функции в PHP уже есть (mb_substr), какие-то требуют минимальных доделок (preg_replace), некоторые можно выразить через другие (trim через ltrim и rtrim), оставшиеся, конечно, придётся написать (strcmp, ltrim, addcslashes и так далее).

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

Добавлено позднее: тщательно изучил вопрос сравнения Unicode, я выяснил, что производить сравнение так, как это сделал я нельзя, поэтому функцию strcmp я удалил, буду переписывать. Например, буква «ё» в Unicode стоит дальше «л», а должно быть наоборот.

Добавлено ещё позже: в PHP 5.3 появилось расширение Intl, основанное на известной библиотеке UCI, оказывается это расширение собирается и с PHP 5.2.4+, так что имеет смысл использовать именно его.

13 комментариев