Windows XP живее всех живых

Сериал «Светлячок», действие которого происходит в 2517 году. На экране управления мусоровозом — Виндоуз ЭксПи (если не ошибаюсь), мастер настройки принтера. Так что, ребята, эта ОС (и шестой эксплорер с ней), не умрёт никогда, по предсказанию фантастов!
Сколько нужно пользователей «Мака», чтобы ввинтить 60-ваттную лампочку в цоколь E27?
Ко времени, когда у меня появился первый IBM PC (всё что я помню — процессор 80286, жёсткий диск то ли 20, то ли 40 мегабайт), я уже знал, что в этом мире царит удивительное разнообразие — разные процессоры, видеокарты, звуковые карты и так далее.
Потом дома появился компьютер на 80386, далее 80486, первый «Пентиум», первый
Потом стал вникать в различие между производителями. Диски Western Digital, видеокарты Matrox, модемы ZyXEL.
Думаю, этот интерес большей частью был обусловлен тем, что для меня это было всё внове, плюс,
Когда у меня случилась потеря интереса к компьютерным играм, я не помню. Я иногда
Технологическая база компьютеров к тому времени настолько разрослась, что запоминать и изучать это всё можно только
Я знаю, в общих чертах, что нового появляется в этой области, детализация мне неинтересна. На трёх своих последних ноутах, которые были ещё под Виндой, я понятия не имел какой у меня процессор, что у них за материнская плата или звуковая карта, какой тип матрицы дисплея.
Я знал только важные для меня вещи — размер жёсткого диска и размер памяти. Естественно, ничего не изменилось при переходе на «Мак» (хотя нет, вру, я сейчас не знаю размера диска, недавно посмотрел — он ещё не занят, ну и чудно).
Пользователей «Маков»

Ну да, пользователи «Маков» часто не знают всех этих характеристик, а зачем их знать? «Маки» редко покупают для игр, обычно это работа (графика, звук) или простые бытовые занятия (создать пару документов, посидеть в интернете).
Я бы мог потроллить вопрошающих, спросив знают ли они какие цоколи ламп в каждой люстре у них дома или как называется стандарт розеток, в которые они каждый день втыкают вилку своего компьютера, но как правило я просто соглашаюсь — действительно, я не знаю, например, какой у меня тип памяти в ноуте и чем отличается Кор Ай5 от Ай7.
Ну и что?
«Докер» — хороший хостер

Вот уже четыре года я пользуюсь хостингом компании «Докер»,
За четыре года ни разу не пожалел о выборе компании, ребята оперативно решали возникающие время от времени проблемы, шли на встречу
Мне пришло в голову, что я незаслуженно редко говорю им «спасибо» за качественную работу, потому исправляюсь. Спасибо!
Если
Под водой

Решил потренировать задержку дыхания под водой,
Написал таймер сам, на баше. Запускается в консоли, прерывается по комбинации Ctrl+C, любая другая клавиша — сохранение на экране промежуточного результата.
Кроме того, мой таймер произносит сколько минут прошло — «one minute», «two minutes» и так далее, а каждую половину произносит слово «middle».
Громкости моего ноута за глаза хватает, чтобы услышать таймер в ванне, под водой. Без отсчёта держаться
Сто лет спустя
Жарко, не спится, да ещё
Приснилось, что я человек из недалёкого (около века) будущего. Будущее недалёкое, но изменения огого какие! Не буду описывать все малобюджетные мои приключения во сне, остановлюсь на экстерьере.
Человек будущего, в представлении моего внутреннего режисёра снов, существо немного пугающее. Антропоморфность всё ещё в моде, тем более, что тело каждого человека облегает специальный костюм — он же броня, усилитель мышечной силы и конгломерат датчиков —
Костюм
Начнём с головы. В ней не осталось ничего, мозг переместился за грудную клетку, уши, рот, глаза, нос — всё исчезло, шея и челюсти — тоже. Голова ныне — рудимент, напичканный электроникой, приёмопередатчиками и частично — устройством для полётов.
Исчезла так же вся пищеварительная система, а так же органы дыхания, их заменяет сонм наномашин, которыми человек того времени забит под завязку, именно они превращают СО2 обратно в кислород, разбираются с продуктами распада и занимаются питанием организма.
На освободившемся месте — небиологическое сердце, живой мозг и реактор холодного ядерного синтеза, от последнего питается вся электроника, включая наномашины. Мышцы, кости, всё это осталось, правда кости плотнее по структуре, но состав тот же. Человечество трогательно цепляется за свою человечность.
Ещё о костюме — он очень тонкий и облегающий везде, кроме подошв — там десятисантиметровая платформа, в ней по небольшому реактору, плюс остаток устройства для полётов. Точнее, в этом симбионте
Никаких сопл, пропеллеров
Ещё несколько штрихов к портрету. Речи нет, вместо неё — цифровой радиоканал, так же человек будущего видит и слышит любой точкой своего костюма, воспринимает радио- и магнитные волны и весь спектр света (при желании, конечно). Писа́ть он не умеет, нужды нет. Плюс прямая связь с машинами, видно, что ускоренная реакция и очень хорошая гибкость. Носить одежду поверх костюма — считается модное ретро, правда носят
Те, кому эти тряпки носить не хочется,
Ничего не знаю про восприимчивость к температуре, во сне я её вообще не ощущал, эта информация казалось чисто справочной и я о ней ни разу даже не осведомился.
А ещё я видел свою кожу без костюма, зрелище малоаппетитное — сморщенная, белесая, кстати, ещё волос нет нигде. Ладно, пойду спать, назад в будущее.
На «Баше»

Опять на «Баш» попал, входит в привычку уже.
Вертолёт разбился, никто не убился

Обидно, но мой квадрекоптер на свой третий полёт сломался. Не сам, я ему очень старательно помог — не справился с управлением, он ударился об здание, винты тут же остановились (у него такая защита от повреждения винтов) и он упал с трёх метров на асфальт.
Всё в порядке с электроникой, но сломалась крестовина. Новая стоит около 1,5 тысяч. Я подумал, что смогу попробовать её починить, взял металлическую пластину, оставшегося от отделки квартиры, просверлил в ней две дырки и скрепил всё саморезами.

Я понимал, что идеально выверить крестовину мне не удасться, но я рассчитывал, что электронная схема летательного аппарата всё скомпенсирует. Увы, хотелось бы, чтобы это была история с хорошим концом, но домашние испытания показали, что аппарат тащит в сторону.
Я ещё не пробовал провести полёт на открытом пространстве, может быть я сумею управлять и таким аппаратом, но скорее всего придётся купить новую крестовину.
Кстати, о технических деталях. Разобрать аппарат до такой степени можно за пять минут, а вот чтобы заменить крестовину, придётся снять вообще всё (например, электромоторы). Некоторые вещи приклеены и их надо будет клеить заново.
Оптимизация картинок поворотом
Есть такой старый трюк, который с развитием CSS получил новое прочтение. Дело в том, что при упаковке изображения в графические форматы, в основном, сканируют и упаковывают изображение, двигаясь по его линиям слева направо. Первом об этом на русском языке написал, думаю, Лебедев, вот что написано в книге «Реактивные вебсайты», соавтором которой я являюсь:
Изображения GIF хорошо поддаются оптимизации. В параграфе №8 «Ководства» Артемия Лебедева есть небольшое, но интересное исследование особенностей этого формата. Вывод из параграфа простой: чем больше на картинке горизонтальных линий одного цвета, тем лучше сжимается изображение. Алгоритм компрессии LZW, применяемый в GIF, вообще лучше сжимает регулярные горизонтальные структуры в пределах одной линии.
Соответственно, если есть возможность повернуть картинку, то, бывает, она сжимается лучше.
Но не всегда так везёт, гораздо чаще, согласитесь, встречаются изображения, которые повернуть нельзя. Значит о способе забываем?
Вот тут нам и пригодятся нововведения в ЦСС. Берём свою картинку, сохраняем ещё три копии повёрнутые на 90°, 180° и 270°, а потом все четыре изображения оптимизируем, выбираем то, которое меньше занимает. А дальше просто поворачиваем его при помощи ЦСС (я ещё фильтр для старых ИЕ добавил и некоторые свойства для других браузеров):
.rotate90 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); /* IE 5.5+ */
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; /* IE 8 */
-ms-transform: rotate(90deg); /* IE 9 */
-o-transform: rotate(90deg); /* Opera 10.5+ */
-webkit-transform: rotate(90deg); /* Chrome, Opera 15+, Safari 3.1+, Android 2.1+, iOS 3.2+ */
-moz-transform: rotate(90deg); /* FF 3.5+ */
transform: rotate(90deg); /* FF 16+, IE 10+, Opera 12.1-14.99 */
}Картинка поворачивается браузером и визуально остаётся как была.
Вообще, конечно, можно поворачивать на любой угол, если фон картинки прозрачный или совпадает с окружающим фоном, но в старых ИЕ для этого придётся использовать другой фильтр — Matrix, формула расчёта параметров такая:
progid:DXImageTransform.Microsoft.Matrix(
M11 = cos(угол),
M12 = -sin(угол),
M21 = sin(угол),
M22 = cos(угол),
sizingMethod = 'auto expand'
);Метод не лишён недостатков, конечно.
Работа из командной строки с модемом на Toshiba AC-100
Одна из задач, которую я хочу решить дома — слать СМС, если произошло
С датчиком я определился, расскажу
Что хорошо — у него есть

В логах видно, что это устройство «се́ло» на один из файлов /dev/ttyACM* (позднее испытания показали, что на первый):

С этими файлами работать просто — нужно отослать команду, потом передать возврат каретки, перевод строки и символ с кодом ноль. Потом прочитать что устройство ответило.
# Нужен баш версии 4 и выше
shopt -s lastpipe
function Say {
echo -en "$1\r\n\0" > /dev/ttyACM1
local line
cat -v < /dev/ttyACM1 |
while read -r line; do
[ "$line" = OK^M ] && return 0
[ "$line" = ERROR^M ] && return 1
[ "$line" = ^M ] || echo "${line/%^M/}"
done
}
# пример использования
Say AT+CGMIВ выходном потоке будет ответ модема, а в коде возврата — есть ли ошибка. Гугление показало, что отослать СМС при помощи команд очень просто, достаточно ввести две команды.
Теперь надо купить симку и попробовать.
Дроҗҗи и воҗҗи
У нас тут вся Казань в волонтёрах, со всей страны приехали добровольцы в связи с Универсиадой. Не знаю точно для чего и знать не хочу для чего они приехали, речь об одном разговоре, который я невольно подслушал. Разговаривали как раз два волонтёра, их легко отличить по карточке на синем шнурке на шее, который казанцы уже обозвали «поводком».
Один другому рассказывал, что до приезда в Казань даже не подозревал, что
Я про себя удивился такой невнимательности. В школе все учили
Я не имею ввиду звуки, которые не являются часть речи (например, цыканье), а те, которые используются для произнесения слов.
Например, в России есть мягкий говор, его носители говорят слова «вожжи», «дрожжи», «дождь» через мягкую «ж», она в точности соотвествует татарскому звуку «җ». В дворовом «слышь, тэ», последнее слово, будучи произнесённым небрежно, бывает редуцирует «ы»
Это просто два примера, которые пришли мне в голову сразу, если подумать, наверняка найдутся и ещё.
50 на 50
Представьте. Подходит к вам друг, спрашивает «какой высоты ёлка?»,
Почему на некоторые вопросы люди отвечают как та блондинка из анекдота? «Либо встречу, либо нет — 50 на 50». Почему «50
Может за пять лет учёбы на математическом факультете вероятность так вдолбилась в мои мозги, что я понимаю, что с ней нельзя так:

Вероятности рассчитываются, причём чаще всего (если речь идёт о физических объектах, а не о моделях) — с некоторой точностью. Возможно это смущает людей. Раз точность не абсолютная, значит, там всё примерно, поэтому можно не париться.
Но точно так же как длину ёлки мы измеряем с определённой точностью! Она 15 метров, но при это там ещё пять сантиметров, два миллиметра, сто пять микрометров и так далее — мы её длину с точностью до всех знаков не померяем, более того — её длина меняется! Молекулы улетучиваются,
Давайте подсчитаем вероятности
Я понимаю, вузовские формулы почти никто не помнит,
Правильный ответ — ¹⁄₄ (не умерший ещё во мне математик добавляет — если монеты идеальные), у нас четыре возможных ситуации —
Чему мы научились в этом примере? Даже в том случае, когда события равновероятны, важно определить количество исходов. Посмотрим с этой точки зрения на вероятность встретить динозавра. Предположим, один динозавр гарантированно существует и внезапно встречает человека в российском лесу. Ну, какова вероятность, что вы его встретите?
Кажется, что ситуаций возможных две (встретите или нет), пусть так, но они не равновероятные на этот раз. Сейчас я вам это покажу.
Посмотрим на ситуацию глазами динозавра. Если бы он гулял по лесу, какова у него была бы вероятность встретить именно вас? Если принять, что все россияне гуляют в лесу примерно с одинаковой частотой и сделать кучу других допущений, то шанс, примерно, один к 143 миллионам. Потому что равновероятных ситуаций с этой точки зрения примерно 143 миллиона, у нас столько людей в России: «динозавр встречает Степанищева Евгения Владимировича из Казани», «динозавр встречает Константина Геннадьевича Коломейца из Москвы»… и так далее.
Рассчитать вероятность встретить динозавра, если не считать, что он гарантированно существует я не могу, нехватает данных, разумеется. Так же как вы не сможете сообщить мне его вес, возраст или размеры.
Богомол приехал
У нас на закрытие «Универсиады» приехал и вот такой гость. Сегодня увидел, когда с обеда возвращался. Насколько я знаю, в наших широтах богомолы не водятся. Как он у нас оказался — загадка.
Кратко об ужасающих свалках

Есть такое неплохое американское документальное
Там карта США и девушка пальцем показывает на небольшую красную точку (она сильно промахивает), найдите её глазами и оцените её размер и сравните с территорией США,
Оценили? Тут важен именно размер, а не расположение этой точки. Её размер — 56×56 км. Если тысячу лет туда свозить все отходы, которые производит США, то они будут высотой всего 30 метров.
Баг в Siege 3.0.2
Сегодня на работе патчил утилиту Siege, она применяется для простенького нагрузочного тестирования. Нужно было несколько расширить её возможности. Попутно нашёл баг — время от времени под «Маком» (не знаю, проявляется ли баг на других платформах, по идее, должен) не раскрывались переменные в строках запроса.
Баг плавающий, так как всё зависит от того в каких адресах выделится память для файла урлов. Сделал патч, может пригодится кому:
diff -urd --ignore-blank-lines --minimal src/cfg.c.orig src/cfg.c
--- src/cfg.c.orig 2013-07-20 00:26:04.000000000 +0400
+++ src/cfg.c 2013-07-20 00:26:10.000000000 +0400
@@ -168,18 +168,17 @@
BOOLEAN
is_variable_line(char *line)
{
- int pos;
- int x;
+ char *pos, *x;
char c;
/**
* check for variable assignment; make sure that on the left side
* of the = is nothing but letters, numbers, and/or underscores.
*/
- pos = (int)strstr(line, "=");
- if(pos > 0){
- for(x = 0; x < (pos - (int)line); x++){
- c = line[x];
+ pos = strstr(line, "=");
+ if(pos != NULL){
+ for (x = line; x < pos; x++) {
+ c = *x;
/* c must be A-Z, a-z, 0-9, or underscore. */
if ((c < 'a' || c > 'z') &&
(c < 'A' || c > 'Z') &&Развидеть это, если тебе нет двенадцати

На снимке наш (казанский) новый стадион на 45 тысяч зрителей, в котором у нас в городе проводилось открытие и закрытие летней
Я рядом живу и сегодня прогуливался неподалёку. Вот что я заметил. На нём транслируется
Для чего она вообще там? Что делать детям до 12 лет? Закрыть глаза, когда они мимо этого экрана проезжать будут что ли?
Что после Универсиады?
Казань отдыхает
- в 2015 Чемпионат мира по водным видам спорта;
- в 2016 Всемирная олимпиада по информатике;
- в 2017 Кубок конфедераций (турнир среди национальных сборных под эгидой ФИФА);
- в 2018 Чемпионат мира по футболу;
Постпаломничество в июле

Этим летом мы с женой возобновили поездки по разрушающимся церквям Татарстана, сегодня посетили тридцатую — Церковь Введения во храм Пресвятой Богородицы (примерно 1770—1800 гг. постройки).
Надо бы возобновить рассказы о поездках. На сегодняшний день мы объездили целиком Верхнеуслонский и Высокогорский районы, часть Бугульминского и Пестречинского, а всего в Татарстане 43 района. Правда, часть из них ничего для меня интересного не содержат. Возможно даже бо́льшая часть, посмотрим.
Есть ещё отдалённые районы,
Жене всё труднее поддерживать меня в этом хобби —
Церковь Гурия, Германа и Варсонофия, Казанских Чудотворцев в селе Люткино
Люткино (Пестречинский район) — «заколдованное» село. В конце прошлого года мы с женой так и не смогли его найти, просто не понимали как до него добраться. Навигатор тянул
Попытки выяснить у местных как же к ним можно было проехать попроще успехом не увечались — два встреченных пастуха
Результат того стоил — покосившаяся деревянная церковь 1889 года, а внутри — очень хорошо сохранившиеся фрески. Не скажу, что все, но явно бо́льшая часть в очень приличном состоянии.

Церковь очень большая, сбоку открыт один вход (с надписью «кто возьмёт, тот умрёт»), но он ведёт в зал с провалившейся крышей, из него попасть внутрь трудновато, я с большим трудом попал в то место, где стоял алтарь, во вторую церкви часть пришлось лезть через дыру в заколоченной двери.

Вообще видно, что церковь ветшает, чудо, что эти здания вообще стоят так долго без человеческого ухода. Причём в этой сохранились даже металлические «подковы» (их видно в верхнем окне), на которые вешали колокола, дерево настолько ещё прочное, что они не упали вниз, по виду они весят прилично.
Жаль, но всеобщее восстановление церквей, скорее всего, минует деревянные. Я не знаю ни одного случая восстановления такой церкви у нас в республике. Кроме того, у нас фрески не реставрируют, а убирают и рисуют поверх новые, другие. То есть вся эта красота пропадёт в любом случае:




Остальные фотографии можно посмотреть у меня в фотоальбоме на «Яндекс.Фотках».
Небольшая историческая справка. Люткино — довольно старый населённый пункт, появился ещё во второй половине семнадцатого века. Церковь была построена в 1889 году на средства Михаила Ивановича Попова и функционировала до начала двадцатого века. В начале двадцать первого века село совсем пришло в запустение (7 жителей в 2002 году), но сейчас потихоньку поднимается — мы видели большую коровью ферму, несколько новых домов.
Ересь бесит
Я, конечно, не Артемий Лебедев, у которого в списке «больше всего меня бесит» первое место делят с полсотни пунктов, но и меня некоторые вещи раздражают до невероятности.
Так вот, больше всего меня на свете бесит, когда я вынужден поддакивать человеку, несущему антинаучную фигню, которую он увидел по телевизору и теперь она просто существует в его мире. Без научных доказательств, без научных теорий как это работает, теперь это просто есть. Есть, так как эмоциональный рассказ ведущего
Это удовольствие услышать от разбирающего собеседника
Чувствовать этот внутренний конфликт — ересь, льющаяся из уважаемого рта, вот это бесит меня больше всего.
Робот-пылесос Samsung Navibot VCR8980L3K
Купил домой [пылесосного робота. Проходит вторая неделя, «полёт нормальный». Прежде всего, почему я выбрал именно эту модель (а не широко разрекламированную «Румбу», например).
Я рассматривал только самоочищающиеся модели, чистить бак пылесоса самостоятельно мне не хочется, тем более, как я понял по опыту эксплуатации, это пришлось бы делать довольно часто. Оцените сколько пыли и мусора скапливается у меня дома в течение нескольких дней:
Правда, у нас дома живёт длиношерстный кот и как раз сейчас он
Более всего я волновался сможет ли пылесос проехать на кухню и вернуться обратно — у меня там двухсантиметровый наклонный порожек, довольно крутой. Пылесос затруднения тут не увидел — для него это не препятствие, он даже пытается (безуспешно) миновать пятисантиметровые пороги в туалет и ванную, эти два места в квартире он убрать не в состоянии — не может туда попасть.
Что мне не пригодилось, а другим будет полезно — таймер автостарта, с указанием дней недели, в выходные, например, можно попросить его не убирать. Мне таймер не нужен, у меня пылесос включает кот. Научился мгновенно, теперь, когда нас нет, пылесос включается обязательно, несколько раз в день. Е́жи (наш кот) включает его со скуки, у него любимое развлечение смотреть как он убирается, робота он совсем не боится.
Впрочем, иногда он включает его и когда мы дома, поэтому приходится пылесос
Это устройство заставляет изменить свои привычки. Пока у нас это не очень хорошо получается. Примерно в половине случаев, когда мы приходим домой, оказывается, что пылесос застрял. Причин несколько. Он может намотать на щётки
Пылесос из наматывал и повисал в воздухе в таком положении. Теперь мы стараемся, чтобы провода зарядок не лежали на полу.
Вторая частая причина — мебель. Например, он буквально забивает себя под диван, мне пришлось поставить «виртуальную стену» (это устройство, луч которого пылесос не пересекает, так запрограммирован), у дивана скошенное дно и пылесос ползёт под ним, пока его не клинит и выбраться потом не может.
Иногда он запутывается в ножках кухонного гарнитура или столика в спальне. Посмотрите на снимок: если пылесосу удаётся въехать между трёх ножек столика (а он очень старается), то выбраться назад он не может — нужно очень точно выбрать направление, а он слеп — единственный его глаз, который позволяет ему ориентироваться, закрыт столешницей.
Постепенно я эти проблемы решаю — достаточно
В целом, моделью очень доволен. Залог успешной уборки — регулярность, лучше чтобы квартира пылесосилась каждый день,
Сложные рельефы объезжает превосходно, сразу видно — программисты постарались, я понаблюдал, есть несколько интересных алгоритмов, например, уборка вокруг ножки мебели, алгоритм, позволяющий объезжать торец открытой двери и так далее. Выше всяческих похвал.
Из недостатков — не всегда объезжает всю квартиру. Что, впрочем, легко компенсируется, если за день уборка происходит не один раз.