Параллельные прямые в геометрии Лобачевского

Из Университета я выпустился, не растеряв уверенности, что параллельные прямые в геометрии Лобачевского пересекаются. Не помню, чтобы мы за пять лет обучения хоть
Весь мой интерес по теме я удовлетворил в школе или сразу после неё —
Я далеко не один такой. Заблуждение это столь распространённое, что сегодня в
Сам я узнал истину только лет пять назад — это была конференция «404», кажется мы сидели в номере Ильи Бирмана и в разговоре затронули эту тему. Меня тогда поправила Таня Бибикова, тогда ещё Танька Мисютина, за что ей спасибо, конечно.
Истина же в том, что даже в геометрии Лобачевского параллельные прямые не пересекаются, но ведут себя несколько иначе, не так как в евклидовой геометрии — у Лобачевского «через точку, не лежащую на заданной прямой, можно провести более одной прямой, параллельной этой заданной прямой». А в евклидовой — только одну. Вот в чём разница.
Говорящие часы

Вот очень правильная настройка есть в «Маке» (немногие её включают, а зря!) — компьютер может произносить текущее время каждый час, полчаса или четверть часа. Пользуюсь ей давно, помогает быть продуктивнее в работе.
По кнопке «Настроить голос…» открывается меню, в котором можно выбрать русский голос, если это требуется.
Если у вас «Мак», рекомендую включить эту настройку!
Трип
Ехал вчера поездом в Москву с коллегами, смотрели фильм по ноуту. Вероятно он мне
На этой конференции есть некоторое количество друзей и знакомых, которых я вижу раз в год или реже, естественно, общение с ними происходит после содержательной части конференции, поэтому спать я обычно, в продолжение всего «404», ложусь очень поздно, а встаю очень рано. Пробуждению способствует бассейн и сауна в отеле («404» каждый год проходит в «Холидей Инн Самара»).
Кажется, это было утро второго дня, я из бассейна сразу зашёл в хамам и тут меня накрыло — все цвета стали очень яркими, контрастными, я лёг на скамейку и гладил эти разноцветные, яркие пятна (мне неловко об этом писать, но тогда это казалось совершенно нормальным). В тот же день на меня ещё несколько раз накатывало то же, но уже менее интенсивно — реагировал я куда более социально приемлемо.
До сих пор не знаю что на меня так повлияло — температура и недосып или психика среагировала на стресс, взяв за образец
Сами́чка
Посмотрел прекрасный фильм «Игра в имитацию» про взлом шифра «Энигма», использовавшегося фашистами во Вторую Мировую и Алана Тьюринга, решил побольше почитать о предмете и наткнулся на интересную историю одного специфичного термина, связанного с расшифровкой «Энигмы».
Примерно в 1938 году гражданский математик Реевский, работая в Бюро шифров польского Генерального штаба изобрёл первую машину для подбора ключа к шифру «Энигмы», у шифра было несколько уязвимостей, которые и эксплуатировались. В частности, в ряде перехваченных сообщений, одна буква из ключа, которая была продублирована, чтобы избежать ошибок при передаче, была зашифрована тем же символом.
Это приводило к неким повторениям, которые позже стали называть «females» (буквально — «женщины»). Откуда же такой название? В книге «Decrypted Secrets: Methods and Maxims of Cryptology» Фредриха Л. Бауэра есть объяснение:
В жаргоне
Блетчли-парка термин «females» появился как производная от польского каламбура te same («the same») ↔ samiczka («female»). Большинство людейв Блетчли-парке не знали, фактически и не могли знать, польского оригинала и находили собственные объяснения…
То есть поляки из словосочетания «te same» (с польского — «то же самое») сделали жаргонное «сами́чка» (слово, по всей видимости, родственник нашей «самочки»), которую потом американцы перевели совершенно буквально («female»), не вдаваясь в этимологию.
Fitbit Surge
Давно присматривался

На борту — ГПС, трёхосевой акселерометр, трёхосевой гироскоп, цифровой компасс, оптический измеритель пульса, высотомер, датчик освещённости и вибрационный мотор.
Таким образом часы измеряют количество пройденных шагов, сердечный ритм, пройденное расстояние, количество лестничных пролётов, которые вы прошли, а так же способны собирать статистику по вашему сну — сколько вы спали и насколько качественно. Датчик освещённости используется для оптимизации подстветки (включается прикосновением к дисплею, если вокруг темно), а моторчик — для разнообразных сигналов (например, будильника).
Основные показатели (а так же некоторые настройки) можно посмотреть прямо на дисплее (перелистываются пальцем), остальное (включая статистику за предыдущее время) доступно в клиенте смартфона или компьютера.

Со смартфоном синхронизация выполняется через блютуз, а с компьютером (что странно) — через небольшой модуль, вставляемый в ЮСБ и никак иначе. Собственно, клиента на смартфоне мне более чем хватает, так что это неудобство я не ощущаю.
Настроек негусто и вообще у меня впечатление, что программную часть ещё будут основательно доделывать. Например, будильник не является «умным», сужу по своей практике — он ещё ни разу не разбудил меня раньше установленного времени, хотя фазы сна фиксируются.
Так же не работают уведомления о звонках и СМС, но тут объяснение другое — нет поддержки русского языка, поэтому часы просто не в состоянии отобразить информацию о человеке.
Впрочем, на этом недостатки кончаются. Кстати, к немаловажным плюсам стоит отнести время работы. Без зарядки часы у меня держатся ровно шесть дней, правда, использую я их в очень неэкономном режиме — у меня включена фоновая синхронизация со смартфоном. Думаю, если выключить, протянут ещё
Самое ценное и любопытное же для меня в этих часах — отображение моей суточной активности. Я в последнее время всерьёз обеспокоен тем, хватает ли моему телу движения. Оказалось, что до нормы я не потягиваю. В день мне нужно ходить примерно на 2,5 тысячи шагов больше и проводить, в среднем, ещё минут 10 в фазе высокой активности (например — бегая по ступенькам).
Поймал себя на мысли, что стал чаще подниматься с рабочего места, чтобы пройтись до программистов, а то и просто постоять в кабинете, пока размышляю. Это дорогого сто́ит.
Julien Douvier

Хочу посоветовать к просмотру великолепные анимированные фотографии Жульена Дувье. Завораживающее зрелище.
Частичный индекс в «Оракле»
В «Оракле», в отличие от «Постгреса», частичных индексов в чистом виде нет, но есть возможность их сэмулировать — достаточно построить функциональный индекс и возвращать NULL на значениях, которые нам в индексе не нужны. Например:
CREATE INDEX resolution_notice_d_o_r ON resolution_notice(
CASE WHEN is_send_paper = 1 THEN org_id END,
TRUNC(rdate)
)Это немного видоизменённый реальный пример — таблица хранит море метаинформации, но нас намного чаще (в логике приложения) интересуют те записи, у которых флаг is_send_paper в значении «истина».
Чтобы «Оракл» узнал искомое в индексе, сравнение в запросе должно выглядеть так же. В общем, всё как в случае любого функционального индекса (лишнее я убрал):
SELECT …
FROM …
INNER JOIN resolution_notice rn ON …
WHERE dn.n = 0
AND CASE WHEN is_send_paper = 1 THEN dn.org_id END = :org_id
AND TRUNC(rn.rdate) BETWEEN :start_date AND :end_date
GROUP BY …
ORDER BY rdate DESC, …Мне стало интересно — если попробовать сунуть условие индекса в сам индекс, догадается ли «Оракл» дальше не дофильтровывать по нему? Ну, то есть, сделать
CREATE INDEX resolution_notice_d_o_r ON resolution_notice(
org_id,
TRUNC(rdate),
CASE WHEN is_send_paper = 1 THEN 1 END
)А в запрос добавить:
… CASE WHEN is_send_paper = 1 THEN 1 END = 1…Оказалось, «Оракл» не догадывается (у нас он

Несмотря на то, что в выборке по индексу значений с is_send_paper других значений, кроме единицы нет, «Оракл» всё равно дофильтровывает по этому значению.
PHP7: spaceship operator
В ПХП7 вошёл новый оператор — «космический корабль». Я его помню со времён программирования на Перле. Наиболее частое применение он, по всей видимости, найдёт в сортировках:
usort($data, function ($o1, $o2) {
return $o1->value <=> $o2->value;
});Комбинация «меньше», «равно» и «больше» — и есть «космический корабль». Результат его выполнения следующий — если левое меньше, получается
Новый оператор сравнивает даже массивы и объекты, в RFC есть соответствующие примеры:
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1
$a = (object) ["a" => "b"];
$b = (object) ["a" => "c"];
echo $a <=> $b; // -1
$a = (object) ["a" => "c"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 1
// only values are compared
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; // 0В общем,
PHP: бесполезная микрооптимизация
Годы назад, когда многие увлекались микрооптимизациями ПХП, была среди них и такая — двойные кавычки заменяли на одинарные, первые были немного медленее. Причина вполне понятна — в строке, окружённой двойными кавычками, разрешена интерполяция — вставка переменных прямо в строку.
Выигрыш был мал, как по мне, но многим и этой разницы было достаточно.
И вот недавно мне кинули ссылку, где утверждается, что много лет назад ситуация поменялась — все виды кавычек обрабатываются с одинаковой скоростью. Я провёл замеры — так и есть, по ссылке не обманули. Я тогда подумал, что с введением в ПХП
Сегодня проверил — примерно так оно и есть (ниже — опкоды ПХП):
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > ADD_STRING ~0 'double+'
1 ADD_VAR ~0 ~0, !0
2 ADD_STRING ~0 ~0, '+quotes'
3 ECHO ~0
4 4 > RETURNНет никакой разницы какой вид кавычек использован (в моём примере — двойные с переменной посередине) — внутреннее представление не различается.
Вывод такой: можно спокойно использовать двойные кавычки везде, кроме мест, где вам важно экранирование — там можно использовать одинарные, если это удобнее.
Toki!
Десять лет назад я, с подачи Ильи Бирмана, выучил смешной язык (не программирования) — «токипона». Я редко о нём вспоминал, но послевкусие он оставил отличное — это был приятный опыт. Язык вполне реально выучить за 2—3 дня целиком, собственно ровно этим он и интересен.
Сегодня случайно, в командировке, повстречал свою давнюю подругу — Светлану Грачёву. К сожалению, у меня и у неё времени было немного,
На «токапоне», естественно. Причём, у Светы книга была с собой — в рюкзаке, поэтому у меня есть возможность показать фотографию.
Поделился этим с Ильёй, а он (напоминаю — десять лет прошло!) ответил мне на «токепоне», да ещё и удивился, что я ничегошеньки не помню. Заодно помог перевести надпись на книге: «Светлана! Солнце греет нас всех. Люби и твори добро. Соня».
Кстати, мы
Мир — иллюзия

Ребята, какого цвета платье? Ближе