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В общем,
Частичный индекс в «Оракле»
В «Оракле», в отличие от «Постгреса», частичных индексов в чистом виде нет, но есть возможность их сэмулировать — достаточно построить функциональный индекс и возвращать 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 других значений, кроме единицы нет, «Оракл» всё равно дофильтровывает по этому значению.
Julien Douvier

Хочу посоветовать к просмотру великолепные анимированные фотографии Жульена Дувье. Завораживающее зрелище.
Fitbit Surge
Давно присматривался

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

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

Вот очень правильная настройка есть в «Маке» (немногие её включают, а зря!) — компьютер может произносить текущее время каждый час, полчаса или четверть часа. Пользуюсь ей давно, помогает быть продуктивнее в работе.
По кнопке «Настроить голос…» открывается меню, в котором можно выбрать русский голос, если это требуется.
Если у вас «Мак», рекомендую включить эту настройку!
Параллельные прямые в геометрии Лобачевского

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

Если изображённое на графике хоть отчасти правда, то я очень жду выхода ПХП 7 — куда больше, чем нового сезона «Игры Престолов». Автор графика сравнил производительность разных интерпретаторов ПХП на движке «ВордПресс».
По результату видно, что производительность новой версии находится на уровне HHVM!
Значительное отставание HHVM до четвёртого прогона объясняется «прогревом»
Тихоходки
Многие наверное

Оказывается есть и своя легенда о этих удивительных созданиях, она описана даже в «Википедии»:
Известен случай, когда мох, взятый из пустыни спустя приблизительно 120 лет после его иссушения, поместили в воду, и находившиеся в нём тихоходки ожили и были способны к размножению.
На деле же, как оказалось, результат того эксперимента куда меньше потрясает воображение. В статье «Факты и вымысел о длительности выживании тихоходок» биологов Йоннсона и Бертолани есть больше подробностей эксперимента вместе с прямой цитатой описанных результатов.
В 1948 году итальянский биолог Тина Франчески получила от итальянского же музея образец
После двенадцати дней отмачивания в частично расширевшимся образце (вид образца с трудом поддаётся идентификации, порядок следует отнести к Eutardigrada, а род, очень вероятно, к Macrobiotus) было замечено дрожжание в нескольких зонах его тела.
В частности, наблюдалось вытягивание передних лап с последующим втягиванием. В данном случае, это была не часть обычного процесса «расконсервации», при котором в ходе гидратации животное, распрямляясь, принимает нормальную форму, но без признаков жизни.
Это движение привело нас к выводу о проявлении жизнедеятельности, пусть и незначительном. Впоследствии движений у тихоходки больше не наблюдалось, хотя ещё несколько дней внутренние органы были
по-прежнему распознаваемы.
То есть после 120 лет тихоходки не «ожили и были способны к размножению», а некий образец дёрнул копытами, прежде чем их окончательно отбросить.
Синестезия
Я только на днях додумался, что в детстве у меня была
Возвращаясь к детству, у меня было смешение вкуса и цвета. Для описания я
Насколько PHP работает быстрее без notices и warnings
Цитата со «СтекОверфлоу»:
У меня в закладках есть статья, в которой автор сделал некоторые замеры по этому поводу. Правда она на французском… вот ссылка (возможно
что-то вы в ней не пойдмёте): Ne faites pas d’erreur.Основные цифры, в помощь людям, не читающим
по-французски:
- 10 тысяч предупреждений, со включенными error_reporting и display_errors : 5162,76 мс
- то же, но настройка display_errors выключена: 136,18 мс
- то же, но error_reporting выключена тоже: 117,79 мс
- и, наконец, после исправления кода, после которого он перестал выдавать предупреждения: 19,51 мс
Это означает, что код на ПХП работает быстрее без сообщений/предупреждений/ошибок, даже если они не отображаются или не попадают
Hufisu
Обратил внимание, что на тюбиках шампуня и геля в отеле «брайлем» написана

Няя

Выше — кадр фильма «Интерстеллар». За пять лет обучения на факультете математики, мы какие только буквы там не использовали — помимо всем известных латинских и греческих, были буквы из иврита (например, алеф — א), псевдоготические (один из преподавателей их называл «красивыми»)
Может быть американские физики их используют, я не знаю, но возможно дело в том, что за взрослую Мёрф писала наша соотечественница — Елена Мурчикова,
Я не знаю этого наверняка, но возможно «формулы» вида «Няя=Нбб» — это привет Елены соотечественникам, «пасхальное яйцо» в фильме.
Вьетнам
Послезавтра вылетаем из Вьетнама в Россию. Вьетнам удивительная, грязная и бедная страна, но достойная всяческого уважения. Прежде всего — темпами роста экономики. За несколько лет они из импортёра риса превратились в ведущего экспортёра — и так по многим культурам. Страна активно строится, но до счастья далековато, конечно.
Средняя зарплата в мелких городах — 150—250 долларов, пенсий нет (только в госучреждениях). Правда многое очень дёшево — фрукты, рыба, тут этого в изобилии. Очень дорогое жильё, автомобили считаются настоящей роскошью
Несколько картин жизни вне туристических кварталов.
Ниже на фото мужички играют

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

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

Своеобразная страна, конечно, рассказывать и показывать можно бесконечно, у меня куча снимков, но я их пока ещё не разбирал. В первые несколько дней мне тут не нравилось — русская речь не замолкает, грязно, непривычная еда, очень шумно, но теперь я очарован, хотел бы остаться подольше.
Чтобы вы представляли насколько тут шумно — дороги просто забиты мотоциклами и мотороллерами, и все сигналят. Так как правил, похоже, почти нет — движение по встречке тут обычное дело (за день это можно увидеть несколько раз), это вкупе с низкой скоростью движения (все едут 20—30 км/ч) позволяет избежать крупных аварий. Как живут люди на первых этажах (мы на десятом) вообще не представляю.
Как бы то ни было, улетать жаль, я
«Песня очень позитивного человека»
Декан Кис Симонтон из Калифорнийского университета в Дэвисе на базе целого ряда исследований построил график, демонстрирующий среднестатистическое соотношение возраста и творческих способностей.
Из него видно, что наши креативные возможности быстро растут на старте карьеры, достигают пика примерно через 20 лет,
где-то в районе40-45, и затем начинают медленно приходить в упадок. В зависимости от вашей специальности этот график видоизменяется, но незначительно. Сегодня средний возраст, в котором делают свое главное открытие физики — лауреаты Нобелевской премии, — 48 лет.Теоретики в области химии и физики добиваются значимых результатов несколько раньше, нежели
исследователи-практики. Поэты достигают пика раньше, чем прозаики. Исследование, проведенное Симонтоном средикомпозиторов-классиков, показало: типичный представитель этой профессии пишет первое значительное произведение в 26 лет, в 40 он достигает наибольшей творческой зрелости и плодовитости, а затем снижает обороты, и в 52 пишет последнее свое значительное музыкальное произведение.
Из статьи «Разрешите преставиться» профессора биоэтики Иезекииля Эмануэля. Это неплохо согласуется с другими статьями, которые я читал по теме и наблюдениями за собой — пока я, определённо, становлюсь всё уменее и умелее.
Интересно, откуда взялся миф об интеллектуальной деградации
Вероятно интеллект в самоосознании стартаперов тут подменяется совершенно другими вещами — напористостью, смекалкой, приспособленностью и так далее.
Стартапы, на мой взгляд, вообще вещь вредная потому что их благая сторона — попытка сделать
Я склонен считать стартап скорее хобби, ролевой игрой и разовым актом творчества, чем заявкой на серьёзной бизнес. Бывает, когда из первого вырастает второе, но это исключение, в жизни вообще многое случается, глупо строить планы, полагаясь на случай. Кстати, отсюда и моя подозрительность в отношении зрелых людей, ударившихся в стартапы — это больше похоже на эскапизм, когда человек, который должен крепко держать штурвал собственного корабля, мечется по берегу, что твоя Ассоль, вглядываясь в даль, в надежде увидеть алый парус инвестора.
Серафима Суок
Помните, в «Трёх толстяках» была
В Серафиму был влюблён Юрий Олеша, автор «Трёх толстяков»,

Серафима оказалось очень непостоянной женщиной — постоянно бросала Юрия Карловича ради других мужчин, позже устав от этого, Юрий женится на другой сестре Суок — Ольге, которая останется ему верна до конца жизни.
Циркачка Суок — посвящение Юрия Олеши двум женщинам его жизни, которых он называл «две половинки моей души».
Казань ✈ Челябинск ✈ Вьетнам ✈ Челябинск ✈ Казань
Великая русская река Кама
По площади водосбора к месту слияния рек несколько больше Волга (площади рассматриваются такими, какими они сложились в естественных условиях 260,9 тыс.кв.км против 251,7 тыс.кв.км). Однако на этой территории Волга объединяет меньшее количество рек и уступает Камскому бассейну (66,5 тыс. рек против 73,7). Водорасход Камы в месте её слияния с Волгой — 4300 куб. метров в секунду, Волги — только 3100. Средняя и абсолютная высоты Волжского бассейна меньше Камского, так как в бассейне Камы находятся Уральские горы. А вот древняя долина Камы старше долины Волги. В первую половину четвертичного периода, до эпохи максимального оледенения, Волги в современном виде не было. Существовала Кама, которая, объединяясь с Вишерой, непосредственно впадала в Каспийское море. Сток современных верховий Камы шёл на север, в Вычегду. Оледенение привело к переформированию гидрографической сети: Верхняя Волга, отдававшая раньше воду Дону, стала впадать в Каму, причём почти под прямым углом. Нижняя Волга и сегодня служит как бы естественным продолжением Камской, а не Волжской долины.
Эту точку зрения поддерживает арабская географическая традиция средних веков, которая связывала исток Итиля именно системой
Белая-Кама (арабы считали, что Кама впадает в Белую)Выбор главной реки в случаях, не вполне определённых с гидрологической точки зрения, определяется исторически сложившимися представлениями и названиями. В современности река Кама считается притоком реки Волга, точнее — притоком Куйбышевского водохранилища на реке Волге.
Гидрологически спорным является название участка Волги между Нижним Новгородом и впадением Камы; этот участок, по правилам гидрологии, «должен бы» называться Окой.
Из «Википедии». Признаться, никогда не слышал об этой дискуссии. Частенько смотрю на карту Татарстана

На современных картах (карту выше взял из «Яндекс.Карт») всё достаточно очевидно, вроде — справа вниз течёт здоровая Кама, слева в неё впадает относительно скромная Волга.
Интересно, в этом вопросе
Скорость PHP7 на интерпретаторе Brainfuck

У меня есть старинная забава — брать свой оптимизирующий интерпретатор языка «Брейнфак» и запускать программу, вычисляющую число «Пи» под разными версиями ПХП, чтобы посмотреть их производительность. Тест довольно синтетический, но посмотреть всё равно интересно.
Сравнил в данном случае версии 5.5.14 и сегодняшнюю сборку 7.0, разница всё равно заметна, хоть и не так впечатляюща, как в случае с «Вордпрессом» — там разница в два раза.
Время у меня на скриншоте общее — то есть трансляция программы на «Брейнфаке» в ПХП и запуск получившегося через eval.