Rambler VS Игорь Сысоев за nginx

nginx — это программа, веб-сервер и почтовый прокси-сервер, в основном работающая на Unix-подобных операционных системах. Существует версия и для Microsoft Windows. Сама программа является бесплатной и имеет открытые исходные коды.

https://ru.wikipedia.org/wiki/Nginx
http://nginx.org/

Программа изначально была написана системным администратором и программистом Игорем Сысоевым. Начал он ее писать весной 2002 года (по его словам).

https://ru.wikipedia.org/wiki/Сысоев,_Игорь_Владимирович_(программист)
http://sysoev.ru/

В период 2000-2011 гг. Игорь Сысоев работал системным администратором в корпорации Rambler, об этом пишет сам Игорь на своем сайте:
http://sysoev.ru/about.html

В 2011 году Игорь Сысоев, Максим Коновалов и Андрей Алексеев основали компанию «Nginx»:
https://www.vedomosti.ru/technology/characters/2019/03/17/796599-nginx-pro-nash-produkt-nikto-ne-dolzhen-znat

Сайт компании: https://www.nginx.com/

В 2013 году появилась платная версия nginx — Nginx Plus. Также компания продает другие программы, а также поддержку всех этих программ и предоставляет услуги.

Весной 2019 года американская корпорация F5 Networks, Inc. купила компанию «Nginx» за 670 млн. долларов.

А в начале декабря корпорация Rambler заявила исключительные права на программу nginx, исходя из того, что Игорь Сысоев якобы разрабатывал данную программу в рабочее время на компьютерах корпорации Rambler:
https://www.kommersant.ru/doc/4190259

Про обыски в офисе компании «Nginx» в Москве:
https://www.svoboda.org/a/30322390.html

Ну что тут скажешь? Как запахло деньгами, так вокруг закружили акулы из корпораций. Надеюсь, корпорация Rambler проиграет суды.

Моя чертовски хорошая подруга

Симпатичный и добрый фильм. Редко смотрю немецкое кино, но тут картина неожиданно зашла, хоть и рассчитана не на меня (кино, скорее, для старшеклассниц).


Фильм вышел в 2018 году, название в оригинале: «Meine teuflisch gute Freundin». Комедия, школа, любовь-морковь, фэнтези.

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

Дьяволица поселяется в доме семьи своей цели как приезжая для учебы по обмену. Они вместе проводят время и ходят в школу. Чертовка начинает воплощать свой план, да вот беда — влюбляется в школьного хулигана.

Понравился образ дьяволицы, созданный актрисой Эммой Бадинг:

Хэтти и джаз-банд

Замечательные девчонки, классный англо-итальянский джаз-банд из Лондона (собрались в 2014 году).



На фото (слева направо) квинтет: Fabrizio Bonacci (гитара), Heather «Hetty» Loxston (вокал и скрипка), Alessandro «Ale» Cimaschi (контрабас), Riccardo Castellani (ударные), Charlotte «Charly» Jolly (кларнет, саксофон, флейта).

Любимые композиции:

Tu vuò fà l’americano («Ты хочешь быть американцем», 1956 год) Ренато Карозоне
[в черно-белом цвете, отвал башки, Чарли — вообще огонь!]
https://www.youtube.com/watch?v=J0ogqBcK9ow

Mambo Italiano («Итальянское мамбо», 1954 год) Боба Меррилла
[«мамбо» — это музыкальный стиль (и еще танец), родившийся на Кубе]
https://www.youtube.com/watch?v=3W_IqKU1qAg

Ссылки:
https://www.youtube.com/channel/UCL0bSo3ykTgRRjaSDZytmXg
https://www.facebook.com/hettyandthejazzatoband/
https://www.hettyandthejazzatoband.com

Аренда жилья VS покупка жилья

Довольно часто в СМИ и социальных сетях встречаю мнение о том, что лучше арендовать жилье, чем покупать собственное. Якобы в западных странах давно уже большинство арендует, а мы, в России, всё еще по старинке рвём пятую точку, чтобы купить собственное.

Пример такого мнения от 26.02.2018 г.:
https://a-nalgin.livejournal.com/1484318.html

Цитаты:

Международная статистика наглядно показывает, что ипотечный бум не прошёл для России бесследно. В то время как в большинстве стран мира доля домохозяйств, арендующих жильё вместо владения им, поступательно растёт, у нас удельный вес квартиросъёмщиков резко – более, чем на четверть – снизился.
При этом несмотря на нынешнее снижение ипотечных ставок, остаются в силе все расчёты, которые показывают, что покупка недвижимости в кредит остаётся весьма остаётся разорительным предприятием, особенно в сравнении с наймом жилья.
Примерно такими расчётами руководствуются люди во всём мире. В подавляющем большинстве стран с более-менее цивилизованным рынком жилья и аренды доля нанимателей сильно выше, чем в России.
Мир постепенно идёт к пониманию, что аренда вместо покупки – это свобода, мобильность и независимость. Что особенно ценно в молодом возрасте, когда привязывание к единственному месту проживания – больше ошибка, чем бонус. Весьма дорогостоящая ошибка, надо признать.
И только в России (плюс ещё в немногих нескольких странах) – форменный культ своего жилья.
Как полагаете, это когда-нибудь пройдёт? Или наша страна пойдёт тут своим путём навсегда?
Во-первых, автор почему-то не рассмотрел вариант накопить на жилье без кредитов. Наверное, считает его невозможным. Лично я честно копил 9 лет без кредитов и купил жилье в возрасте 36 лет.

Во-вторых, как-то сомнительно, что автор сам испытал «свободу, мобильность и независимость», арендуя где-либо жилье. Иначе не оперировал бы такими эпитетами по отношению к аренде жилья.

После развала СССР нашей семье пришлось уехать из братского Узбекистана. Вот тогда мы и испытали упомянутые выше «свободу, мобильность и независимость» на все сто процентов.

Самых главных недостатка аренды жилья три: 1) арендная плата больше стоимости содержания собственной квартиры (вот с чем нужно сравнивать, а вовсе не с ипотечными платежами, так как ипотеку брать вовсе не обязательно); 2) арендодатель может в любой момент прийти в сдаваемое жилье и побеспокоить арендатора (у него зачастую есть свои ключи); кроме того, арендодатель может в любой момент захотеть выгнать арендатора; 3) проблематично сделать ремонт, перестройку или переоборудование жилья.

Так что я уверен, что «форменный культ своего жилья» в России будет только крепнуть. Не знаю, чем руководствуются «в других странах».

RTTI в Visual Studio Community 2017

Продолжаю разбирать учебник Лафоре. Оригинал, стр.553:

For both dynamic_cast and typeid to work, your compiler must enable Run-Time Type Information (RTTI). Borland C++ Builder has this capability enabled by default, but in Microsoft Visual C++ you’ll need to turn it on overtly. See Appendix C “Microsoft Visual C++” for details on how this is done. You’ll also need to include the header file TYPEINFO.

Перевод, стр.523:

Чтобы заработали dynamic_cast и typeid, компилятор должен активизировать механизм, который позволяет определять и изменять тип объекта во время выполнения программы — RTTI (Run-Time Type Information). В системе Borland С++ Builder этот механизм включается по умолчанию, а в Microsoft Visual C++ нужно подключать его вручную. Также необходимо включить в программу заголовочный файл TYPEINFO.

Нетрудно заметить, что переводчик зачем-то выкинул ссылку на приложение «C» учебника (я выделил эту фразу красным в оригинале). В переводе на русский это приложение «В» учебника, стр.806. Несмотря на то, что текст учебника, как я уже упоминал, написан больше 18 лет назад, нужная настройка в интерфейсе сегодняшнего аналога указанной программы тех лет находится практически по тому же пути.

В среде «Visual Studio Community 2017», кстати, механизм RTTI включен по умолчанию. А вообще он включается и выключается ключом компилятора /GR:
https://docs.microsoft.com/en-us/cpp/build/reference/gr-enable-run-time-type-information

До этой настройки можно добраться через свойства проекта: пункт главного меню «Проект — Свойства». В левой части открывшегося окна в меню «Свойства конфигурации» следует выбрать ветку «C/C++», в ней — ветку «Язык». Тогда в правой части окна станут видны свойства ветки «Язык», в том числе свойство «Включить информацию о типах времени выполнения», с помощью которого можно выключить или выключить RTTI.

Перевод названия свойства, конечно, ужасный. Можно понять так, что у «времени выполнения программы» есть какие-то типы. Нормальный перевод — «Включить RTTI» (кому это нужно, те знают расшифровку этой аббревиатуры) или, на крайний случай, «Включить динамическую идентификацию типов данных» (так называется статья в википедии, посвященная RTTI).

Выравнивание данных в памяти компьютера

Простая маленькая программа из учебника Лафоре, демонстрирующая работу указателя this (стр.517):
#include <iostream>

class where
{
private:
    char charray[10];
public:
    void reveal()
        { std::cout << this << std::endl; }
};

int main()
{
    where w1, w2, w3;

    w1.reveal();
    w2.reveal();
    w3.reveal();

    return 0;
}

Понятно, что при каждом новом запуске программы будут выведены отличающиеся адреса, но нас интересуют, собственно, не адреса, а расстояние между ними. Вот пример результата работы программы:

(тут надо бы отметить, что я пользуюсь операционной системой «Windows 7 Профессиональная» и компилятором из среды «Visual Studio Community 2017»)

003AF8AC
003AF8A0
003AF894

Как я понимаю, то, что объекты записываются в память в обратном порядке (адрес объекта w3 младше адреса объекта w2, а адрес объекта w2 младше адреса объекта w1) обусловлено тем, что они хранятся в стеке, который работает по принципу LIFO («последним вошёл — первым вышел»).

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

Размер каждого объекта, как видно из определения класса в программе, равен 10 байтам (так как размер типа char равен одному байту, а единственным полем класса является массив типа char из 10 элементов). Однако, разница между выведенными на экран адресами объектов равна 12 байтам (помним, что адреса здесь указаны в шестнадцатиричной системе счисления):

003AF8AC – 003AF8A0 = C16 = 1210
003AF8A0 – 003AF894 = C16 = 1210

Нижний индекс указывает на систему счисления.

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

Так как в данном случае я создал 32-разрядное приложение, то размер машинного слова равен 4 байтам (32 бита). То есть процессору удобнее работать с данными, размер которых кратен 4 байтам: 4, 8, 12 и так далее. Размер нашего объекта 10 байт. Ближайший больший размер, удобный процессору, это 12 байт. Поэтому ради быстродействия для каждого нашего объекта размером в 10 байт выделяется область памяти размером в 12 байт, поэтому и разница между адресами соседних объектов получилась в 12 байт.

Чтобы это проверить, я уменьшил размер поля нашего класса (а, следовательно, и всех объектов этого класса) до 8 байт:
char charray[8];
Теперь разница между адресами, выведенными на экран, должна совпасть с размером объектов и должна быть равной 8 байтам. Результат работы измененной программы:
0035FC80
0035FC78
0035FC70
Так и есть:

0035FC80 – 0035FC78 = 816 = 810
0035FC78 – 0035FC70 = 816 = 810

Если же кровь из носу требуется записать объекты впритык рядышком в областях памяти размером, совпадающим с размером объектов (то есть без выравнивания по адресам, кратным машинному слову), то для этого можно дать указание компилятору с помощью спецификатора alignas (в качестве аргумента спецификатору должно быть задано целое число, показатель кратности; для наших целей удобно задать единицу, так как любое число делится на единицу без остатка). Например, изменим программу так:
class alignas(1) where
{
private:
    char charray[10];
public:
    void reveal()
        { std::cout << this << std::endl; }
};
Результат работы измененной программы:
0042FDDE
0042FDE8
0042FDF2
Рассчитываем разницы между адресами, они (как и требовалось) равны 10 байтам:

0042FDF2 – 0042FDE8 = A16 = 1010
0042FDE8 – 0042FDDE = A16 = 1010

Еще изменился порядок записи объектов в память. Теперь они записываются по принципу FIFO («первым вошёл — первым вышел»). Как я понимаю, теперь они сохраняются не в стеке, а в куче.

Три предмета, которых не хватает в школе

Я закончил среднюю школу больше двадцати лет назад и с тех пор нередко жалел об отсутствии некоторых навыков, которые можно было бы преподавать в школе.

Красноречие

1. Искусство произносить речи перед группой людей. Для краткости предмет можно было бы назвать «Красноречием». Со стороны кажется — чего уж проще, выйти, донести нужные мысли, уйти. На самом деле, это очень трудно, даже перед знакомой аудиторией. Во-первых, психологический тормоз — слова почему-то застревают в горле, появляется глупый непонятный страх и так далее. Лечится, только если очень хорошо подготовиться и если постоянно выступаешь перед людьми. После преодоления этого страха вторая трудность — все эти «ээээ...», «ммм...», слова-паразиты, многословие и тому подобное. Лечится подготовкой речи — составлением плана, написанием речи, ее нужно несколько раз полностью произнести вслух.

На уроках школьники могли бы спорить (произносить речи) по какой-либо теме, заданной учителем. Я слышал о существовании похожих клубов, но никогда их в школах не видел.

Первый раз я остро ощутил отсутствие таких навыков при защите дипломной работы в университете. Я был готов, но защита выглядела ужасно. Я не подготовил плана речи, не произносил его, думал, что отличное выполнение самой работы и подготовка текста дипломной работы достаточны для того, чтобы я легко рассказал о них на словах. Это оказалось большой ошибкой.

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

Культура тела

2. Культура тела. Я не знаю, как назвать этот предмет, лучше опишу, что я под этим подразумеваю. Конечно, в школе есть физкультура. Но мне не нравится, как она организована. Что такое физкультура в нашей школе? Проходят какие-то занятия, на которых выполняются некие упражнения. К концу занятия ребята играют в игры типа футбола, баскетбола и волейбола. Несколько раз в год учитель устраивает проверки на количество подтягиваний, с замером времени пробега определенных дистанций и так далее.

Вся эта физкультура не дает никакого практического выхлопа. Физически неразвитые ребята так и остаются в хвосте, их показатели практически не растут. Например, я до 8 класса не мог подтянуться ни разу и всегда прибегал на любых дистанциях последним. Никто мне на физкультуре не рассказал, что нужно делать, чтобы хотя бы догнать остальных. Я сам считал, что это у меня такие врожденные способности и с этим вряд ли что можно сделать.

Ситуацию для меня изменила какая-то глупая маленькая статья в некой газетенке, название которой я сейчас уже и не помню. Там рассказывалось о биографии Арнольда Шварценеггера. Якобы он начал свою карьеру бодибилдера с 15 приседаний в день. Я тоже стал приседать по 15 приседаний в день, а потом понял, что этот принцип можно развить на другие упражнения, более нужные.

Я приседал 15 раз в день, потом добавил к приседаниям 10 отжиманий. У меня дома над лестницей отец сделал турник. Там я пытался подтягиваться. Сначала «с прыжком» подтягивался половинку расстояния до турника. Потом я придумал делать этот подход не раз в день, а три раза — утром, днем и вечером. Еще через некоторое время я решил, что «половинок» подтягиваний в день должно быть в сумме на 10 раз — то есть 20 подходов в день к турнику. Это было несложно, каждый раз, когда я проходил по лестнице, я делал подход — «половинку» подтягивания. Через месяц я уже мог делать за один подход несколько подтягиваний. Сумму в день я увеличил до 15 подтягиваний. В восьмом классе я удивил учителя физкультуры — к концу года на экзамене я подтянулся 8 раз, то есть впервые вышел на оценку «удовлетворительно». К концу школы я подтягивался 25 раз за подход.

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

Итак, что на мой взгляд должен представлять из себя предмет «Культура тела» (физкультура по-новому)? Во-первых, для всех ребят, сдавших тесты на «хорошо» и «отлично», данный предмет и любая другая физкультура в школе должны стать необязательными для посещения. Обычно, эти ребята имеют хороший уровень за счет каких-то дополнительных занятий в спортивных секциях или ими специально занимаются родители (это часто бывает, когда родители — бывшие спортсмены или любители разнообразных видов спорта).

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

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

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

Устройство государства

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

На самом деле, можно было бы сделать из этого самый интересный предмет в школе. Каждый ученик берет себе на рассмотрение какую-нибудь бытовую проблему у себя дома или еще какую-то проблему, связанную с государством. Эту проблему он решает на практике под руководством преподавателя.

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

Еще пример — практическое занятие по протестным митингам. Может быть приглашен представитель полиции в форме. Ученики имитируют митинг, а преподаватель (или полицейский) объясняет, чем грозит гражданину, к примеру, бросание камнями в полицейского. Или, наоборот, что делать, если полицейские применяют спецсредства. Когда применение спецсредств легально, а когда — является нарушением закона и что тогда гражданин может предпринять.

Еще пример — замена газового счетчика. Что делать, куда обращаться, сколько это стоит. Ученик всё должен делать сам на практике под контролем преподавателя и родителей.

Ситуаций масса, всё это очень интересно и пригодится в реальной жизни.

Английский язык: dog-eared

Наткнулся на это слово в учебнике Лафоре (стр.540 оригинала):



Сначала подумал, что это перенос, искал слово «dogeared». Потом вспомнил, что в этом экземпляре книги переносы слов не используются. Значит, правильное написание — через дефис: «dog-eared».

«Яндекс.Переводчик» с переводом не справился: «с собачьими ушами» (правда, в «прочих переводах» встретились правильные примеры перевода).
https://translate.yandex.ru/?lang=en-ru&text=dog-eared

«Google Translate» справился: «с загнутыми уголками страниц».
https://translate.google.ru/#view=home&op=translate&sl=en&tl=ru&text=dog-eared

В приведенном выше абзаце из учебника Лафоре под «rectangle with a dog-eared corner» (прямоугольник с загнутым вниз уголком) подразумевается следующее (обозначение примечания в языке UML):


Это прилагательное появилось от сравнения с ушами собак (у многих пород уши сгибаются уголком):


В Кембриджском словаре сказано, что прилагательное применяется к истрепанным от частого листания, с загнутыми уголками, страницам книг или журналов:
https://dictionary.cambridge.org/dictionary/english/dog-eared

Сайт Список Путина

Из очередного обзора новостей от Артемия Лебедева от 19.11.2019 г.:
https://www.youtube.com/watch?v=5jyzgAFtr5M

Узнал о существовании сайта «Список Путина» (Лебедева включили в этот список, что его, как нарцисса, обрадовало, как и почти любое упоминание его имени):
https://www.spisok-putina.org

О проекте:
https://www.spisok-putina.org/o-proekte/

Цитата:

База «СПИСОК ПУТИНА» создаётся Форумом свободной России в целях поиска, закрепления и унификации данных о лицах, ответственных за создание и функционирование системы узурпации власти и подавления гражданских свобод в России. (конец цитаты)

Цитата:

База Форума свободной России «СПИСОК ПУТИНА» призвана стать источником для будущей кампании люстрации, общественной диффамации и иных ограничений лиц, ответственных за уничтожение свободы в России. (конец цитаты)

Похоже, сайт создан в 2018 году. Сейчас в базе сайта находится информация о 335 «фигурантах».

Всегда отношусь с подозрением к навешиванию ярлыков и созданию разного рода, образно говоря, «расстрельных» списков.

Дюймы слева

Оригинал из книги Лафоре (стр.522-523):
class Distance // English Distance class
{
private:
    int feet;
    float inches;
public:
    // constructor (one arg) convert float to Distance
    Distance(float fltfeet)
    {
        feet = static_cast<int>(fltfeet); // feet is integer part
        inches = 12 * (fltfeet - feet);   // inches is what’s left
    }
};
В переводе (стр.493 и стр.495) комментарий «inches is what’s left» переведен как «слева — дюймы». И ведь не поспоришь, слева — действительно дюймы!



На самом деле, футы — целая часть вещественного числа fltfeet, а дюймы — то, что осталось (то есть, соответственно, дробная часть).