<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>jtprogru</title><subtitle>Что-нибудь обо мне =|
Чуть длиннее, чем твитор...</subtitle><author><name>jtprogru</name></author><id>https://teletype.in/atom/jtprogru</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/jtprogru?offset=0"></link><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/jtprogru?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-03T20:04:49.040Z</updated><entry><id>jtprogru:e2db2Ntn2oO</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/e2db2Ntn2oO?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>SLI vs технические метрики — дискуссия в чате ALLSLO</title><published>2026-03-05T18:23:35.007Z</published><updated>2026-03-05T18:23:35.007Z</updated><summary type="html">Не каждая техническая метрика является SLI, даже если она «ведёт себя как SLI».</summary><content type="html">
  &lt;h2 id=&quot;B1Oz&quot;&gt;Идея&lt;/h2&gt;
  &lt;p id=&quot;4be0&quot;&gt;Не каждая техническая метрика является SLI, даже если она «ведёт себя как SLI».&lt;/p&gt;
  &lt;p id=&quot;HQh1&quot;&gt;SLI — это всегда метрика с точки зрения &lt;strong&gt;пользователя&lt;/strong&gt;. Технические метрики (глубина очереди, CPU, lag) нужны инженерам и менеджерам, но к SLO их «натягивать» опасно.&lt;/p&gt;
  &lt;h2 id=&quot;yVQy&quot;&gt;Ключевые тезисы&lt;/h2&gt;
  &lt;h3 id=&quot;DtCh&quot;&gt;SLI ≠ техническая метрика&lt;/h3&gt;
  &lt;ul id=&quot;pHa3&quot;&gt;
    &lt;li id=&quot;jeAj&quot;&gt;SLI должен отражать &lt;strong&gt;пользовательский опыт&lt;/strong&gt;, а не внутреннее состояние системы&lt;/li&gt;
    &lt;li id=&quot;kSty&quot;&gt;Глубина очереди пользователю не важна — важен результат (данные доставлены или нет)&lt;/li&gt;
    &lt;li id=&quot;0zNw&quot;&gt;«Не SLI, но ведёт себя как SLI» — это технический health-индикатор, не SLO&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;MCIz&quot;&gt;Blackbox — только генератор трафика&lt;/h3&gt;
  &lt;ul id=&quot;5BLM&quot;&gt;
    &lt;li id=&quot;B9d1&quot;&gt;Blackbox имеет &lt;strong&gt;дискретность&lt;/strong&gt;: не отличит минуту простоя в прайм-тайм от простоя в 5 утра 1 января&lt;/li&gt;
    &lt;li id=&quot;TUj3&quot;&gt;Не позволяет точно определить виновную команду при инциденте&lt;/li&gt;
    &lt;li id=&quot;5S4l&quot;&gt;Правильная роль blackbox — генерировать трафик там, где его мало; SLI строить по данным балансера или приложения (whitebox)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;fv87&quot;&gt;Владение — основа SLO&lt;/h3&gt;
  &lt;ul id=&quot;lsRK&quot;&gt;
    &lt;li id=&quot;qFV4&quot;&gt;Самое важное при построении SLO — &lt;strong&gt;чёткое определение владельца&lt;/strong&gt;&lt;/li&gt;
    &lt;li id=&quot;XOul&quot;&gt;SLO, которым владеют &amp;gt;1 команды → конфликты при инцидентах («разбудили не ту команду»)&lt;/li&gt;
    &lt;li id=&quot;52l8&quot;&gt;Границы сервиса определяются &lt;strong&gt;в первую очередь&lt;/strong&gt;, до написания SLI&lt;/li&gt;
  &lt;/ul&gt;
  &lt;h3 id=&quot;H1RV&quot;&gt;Прогрессивный SLI для очереди&lt;/h3&gt;
  &lt;p id=&quot;OYiK&quot;&gt;Если всё же нужно выразить глубину очереди через SLI-подобную метрику (пример: Kafka, Sloth):&lt;/p&gt;
  &lt;pre id=&quot;mUGq&quot;&gt;errorQuery:
  clamp_max(
    (
      max(
        sum by (consumergroup, topic, partition) (
          last_over_time(kafka_consumergroup_lag{...}[{{.window}}])
        )
      ) / 20 - 1  # каждые 20 сообщений сверх первых 20
    ) * 5.0 / 100  # уменьшают SLI на 5%
  , 1) &amp;gt; 0
  OR on() vector(0)

totalQuery: last_over_time(obviously_non_existent_metric[{{.window}}]) &amp;gt; 0 OR on() vector(1)
&lt;/pre&gt;
  &lt;blockquote id=&quot;x5aK&quot;&gt;При 420+ сообщениях SLI → 0. Принцип: &lt;code&gt;SLI = 1 - bad / total&lt;/code&gt;&lt;/blockquote&gt;
  &lt;h2 id=&quot;kYgX&quot;&gt;Итоги&lt;/h2&gt;
  &lt;figure id=&quot;E0Tl&quot; class=&quot;m_column&quot;&gt;
    &lt;iframe srcdoc=&quot;&lt;iframe
    srcdoc=&amp;#x27;&lt;!DOCTYPE html&gt;

&lt;head&gt;
&lt;meta charset=&amp;quot;utf-8&amp;quot;&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;table&gt;
    &lt;thead&gt;
        &lt;tr&gt;
            &lt;th&gt;Тип метрики&lt;/th&gt;
            &lt;th&gt;Что измеряет&lt;/th&gt;
            &lt;th&gt;Кому нужна&lt;/th&gt;
            &lt;th&gt;Инструмент&lt;/th&gt;
        &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td&gt;SLI/SLO&lt;/td&gt;
            &lt;td&gt;Пользовательский опыт&lt;/td&gt;
            &lt;td&gt;Продукт, пользователи&lt;/td&gt;
            &lt;td&gt;Балансер, APM&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Health‑метрика&lt;/td&gt;
            &lt;td&gt;Внутреннее состояние&lt;/td&gt;
            &lt;td&gt;Инженеры, менеджеры&lt;/td&gt;
            &lt;td&gt;Дашборды, алерты&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td&gt;Blackbox&lt;/td&gt;
            &lt;td&gt;Факт доступности&lt;/td&gt;
            &lt;td&gt;SRE (как источник трафика)&lt;/td&gt;
            &lt;td&gt;Playwright, synthetics&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/body&gt;
&amp;#x27; 
    width=&amp;quot;100%&amp;quot; 
    height=&amp;quot;200&amp;quot; 
    style=&amp;quot;border:0;&amp;quot;&gt;
&lt;/iframe&gt;&quot;&gt;&lt;/iframe&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;b5vX&quot;&gt;Рекомендации&lt;/h2&gt;
  &lt;ol id=&quot;U15l&quot;&gt;
    &lt;li id=&quot;6wQL&quot;&gt;&lt;strong&gt;Не смешивать SLI и технические метрики&lt;/strong&gt; — вести их в разных системах: SLO в error budget, технические health — в отдельных дашбордах с алертами&lt;/li&gt;
    &lt;li id=&quot;FGpL&quot;&gt;&lt;strong&gt;Менеджеру нужен не SLO, а SLA на технический процесс&lt;/strong&gt; — помогите ему сформулировать это корректно (например: «lag очереди не превышает X ms в 95% времени за месяц»)&lt;/li&gt;
    &lt;li id=&quot;kxdu&quot;&gt;&lt;strong&gt;Определять владельца SLO до его создания&lt;/strong&gt; — если ответ «несколько команд», SLO писать нельзя, сначала разбить на компоненты&lt;/li&gt;
    &lt;li id=&quot;RhHp&quot;&gt;&lt;strong&gt;Blackbox использовать только как источник трафика&lt;/strong&gt; — SLI строить по данным изнутри системы (балансер, трейсы, логи)&lt;/li&gt;
    &lt;li id=&quot;WNjs&quot;&gt;&lt;strong&gt;Учитывать вес инцидента во времени&lt;/strong&gt; — минута простоя в прайм-тайм ≠ минута простоя ночью; закладывать это в budget burn rate или веса алертов&lt;/li&gt;
    &lt;li id=&quot;G3Id&quot;&gt;&lt;strong&gt;Playwright/synthetic = blackbox&lt;/strong&gt; — сложные сценарии (30 шагов + авторизация) дают много ложных срабатываний; рассматривать их как smoke-тест, не как основу SLI&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>jtprogru:Cumk7Lo4BT1</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/Cumk7Lo4BT1?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Прейскурант на услуги</title><published>2026-02-09T08:18:48.691Z</published><updated>2026-02-09T08:18:48.691Z</updated><summary type="html">(оплата наличными, вперед)</summary><content type="html">
  &lt;p id=&quot;r4Cg&quot;&gt;&lt;strong&gt;(оплата наличными, вперед)&lt;/strong&gt;&lt;/p&gt;
  &lt;ul id=&quot;QZs2&quot;&gt;
    &lt;li id=&quot;lhwr&quot;&gt;Ответ на вопрос - 1000 руб.&lt;/li&gt;
    &lt;li id=&quot;rDKO&quot;&gt;Правильный ответ на вопрос - 2000 руб.&lt;/li&gt;
    &lt;li id=&quot;qn0p&quot;&gt;То же, в письменном виде - 10000 руб.&lt;/li&gt;
    &lt;li id=&quot;GZh8&quot;&gt;Ответ на дурацкий вопрос - 15000 руб.&lt;/li&gt;
    &lt;li id=&quot;F4nl&quot;&gt;Вежливый ответ на дурацкий вопрос - 20000 руб.&lt;/li&gt;
    &lt;li id=&quot;EEB9&quot;&gt;Вежливый ответ на дурацкий вопрос с обдумыванием - 25000 руб.&lt;/li&gt;
    &lt;li id=&quot;7C5o&quot;&gt;Правильный ответ на дурацкий вопрос - 1000 руб.&lt;/li&gt;
    &lt;li id=&quot;3jrT&quot;&gt;Вникание в проблему - 10000 руб/час &lt;/li&gt;
    &lt;li id=&quot;qQdY&quot;&gt;Вникание в проблему с указанием на недостатки - 20000 руб/час&lt;/li&gt;
    &lt;li id=&quot;HYp0&quot;&gt;Вникание в проблему с исправлением недостатков - 30000 руб/час&lt;/li&gt;
    &lt;li id=&quot;ZV6c&quot;&gt;Сочувствие - 3500 руб.&lt;/li&gt;
    &lt;li id=&quot;5s38&quot;&gt;Искреннее сочувствие - 7000 руб.&lt;/li&gt;
    &lt;li id=&quot;ZXME&quot;&gt;Вникание в проблему с искренним сочувствием - услуга в данное время не&lt;br /&gt;предоставляется в связи с отсутствием технических возможностей. (&lt;em&gt;Это в смысле, что Вам - к психотерапевту&lt;/em&gt;)&lt;/li&gt;
    &lt;li id=&quot;skdd&quot;&gt;Совет - 1500 руб.&lt;/li&gt;
    &lt;li id=&quot;AA1B&quot;&gt;Правильный совет - 2500 руб.&lt;/li&gt;
    &lt;li id=&quot;TRop&quot;&gt;Выполнимый совет - 6000 руб.&lt;/li&gt;
    &lt;li id=&quot;nsCu&quot;&gt;Правильный выполнимый совет - 12500 руб.&lt;/li&gt;
    &lt;li id=&quot;nu8g&quot;&gt;Задумчивый взгляд - бесплатно (&lt;em&gt;по понедельникам - рыночная стоимость бутылки пива&lt;/em&gt;).&lt;/li&gt;
    &lt;li id=&quot;O8K3&quot;&gt;Молчание - 500 руб/мин.&lt;/li&gt;
    &lt;li id=&quot;p4gl&quot;&gt;Вежливое молчание - 500 руб/мин.&lt;/li&gt;
    &lt;li id=&quot;FB3Z&quot;&gt;Виноватое молчание - 1000 руб/мин.&lt;/li&gt;
    &lt;li id=&quot;uXum&quot;&gt;Молчание с радостной улыбкой - 2500 руб/мин.&lt;/li&gt;
    &lt;li id=&quot;Yf9S&quot;&gt;Молчание с саркастической улыбкой - 450 руб/мин.&lt;/li&gt;
    &lt;li id=&quot;rZyz&quot;&gt;Молчание с задумчивым взглядом на дурацкий вопрос с обдумыванием - 1500 руб/мин.&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>jtprogru:MNmd_62lVjj</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/MNmd_62lVjj?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Самый надежный файрволл</title><published>2025-11-23T07:31:45.497Z</published><updated>2025-11-23T07:31:45.497Z</updated><summary type="html">1. Одна человеческая клетка содержит 75Мб генетической информации.</summary><content type="html">
  &lt;p id=&quot;RFXJ&quot;&gt;1. Одна человеческая клетка содержит 75Мб генетической информации.&lt;/p&gt;
  &lt;p id=&quot;R9RF&quot;&gt;2. Один сперматозоид содержит 37.5Мб.&lt;/p&gt;
  &lt;p id=&quot;FD3V&quot;&gt;3. В одном миллилитре содержится около 100 млн сперматозоидов.&lt;/p&gt;
  &lt;p id=&quot;RZyj&quot;&gt;4. В среднем, эякуляция длится 5 секунд и составляет 2.25 мл спермы.&lt;/p&gt;
  &lt;p id=&quot;iwvW&quot;&gt;5. Таким образом, пропускная способность мужского члена будет равна&lt;br /&gt;(37.5Мб x 100M x 2.25)/5 = (37 500 000 байт/сперматозоид x&lt;br /&gt;100 000 000 сперматозоид/мл x 2.25 мл) / 5 секунд = 1 687 500 000 000&lt;br /&gt;000 байт/секунду = 1,6875 Терабайт/с&lt;/p&gt;
  &lt;p id=&quot;CK7M&quot;&gt;Получается, что женская яйцеклетка выдерживает эту DDoS-атаку на&lt;br /&gt;полтора терабайта в секунду, пропуская только один выбранный пакет&lt;br /&gt;данных и является самым офигенным в мире хардварным фаерволом... Но&lt;br /&gt;тот один пакет, который она пропускает, кладет систему на 9 месяцев...&lt;/p&gt;
  &lt;p id=&quot;dd9o&quot;&gt;Источник: &lt;a href=&quot;https://pikabu.ru/story/propusknaya_sposobnost_yaytsekletki_145389?utm_source=linkshare&amp;utm_medium=sharing&quot; target=&quot;_blank&quot;&gt;Pikabu&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>jtprogru:e3oyeHqOyAu</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/e3oyeHqOyAu?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Все девупсеры – жопышники и говнари</title><published>2024-08-02T10:31:18.750Z</published><updated>2024-08-02T10:35:23.905Z</updated><summary type="html">#осторожнотред
- Да вы там ахуели?
- В смысле?!
- Вы блять сидите на свои кнопки жмете за дохуища денег! Тут люди пытаются выжить продавцом за 15к, а они блять 900k просят!
- Ну так бери и жми сам на кнопочки! Тебе же никто не запрещает вроде.
- А вот и буду!</summary><content type="html">
  &lt;p id=&quot;b85y&quot;&gt;&lt;a href=&quot;https://threadreaderapp.com/hashtag/%D0%BE%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%B6%D0%BD%D0%BE%D1%82%D1%80%D0%B5%D0%B4&quot; target=&quot;_blank&quot;&gt;#осторожнотред&lt;/a&gt;&lt;br /&gt;- Да вы там ахуели?&lt;br /&gt;- В смысле?!&lt;br /&gt;- Вы блять сидите на свои кнопки жмете за дохуища денег! Тут люди пытаются выжить продавцом за 15к, а они блять 900k просят!&lt;br /&gt;- Ну так бери и жми сам на кнопочки! Тебе же никто не запрещает вроде.&lt;br /&gt;- А вот и буду!&lt;/p&gt;
  &lt;p id=&quot;gEZp&quot;&gt;&lt;em&gt;*some time later*&lt;/em&gt;&lt;br /&gt;- А как вот это делается?&lt;br /&gt;- Вот - первая ссылка в гугле. Все твои задачи сейчас сводятся к тому чтоб научиться правильно искать нужную информацию.&lt;br /&gt;- Я чо лох что ли - гуглить должен? Тебе сложно рассказать что мне надо сделать? &lt;br /&gt;- Я тебе рассказал - гугли!&lt;/p&gt;
  &lt;p id=&quot;3aAW&quot;&gt;&lt;em&gt;*some time later*&lt;/em&gt;&lt;br /&gt;- Ну вот я гуглил - я хочу быть девупсом! Им много платят! Рассказывай что делать? Нашел еще курсы «С 0 до Pro за 10 часов» и уже купил и начал его.&lt;br /&gt;- Ну и что ты изучил на курсе?&lt;br /&gt;- Я его почти закончил - курс то легкий - копируй и вставляй команды! Ваще изи!&lt;/p&gt;
  &lt;p id=&quot;pPiB&quot;&gt;&lt;em&gt;*some time later*&lt;/em&gt;&lt;br /&gt;- Я прошел еще 5 платных курсов по девупс! Хочу на работу! На курсе сказали могу просить 300kk ns! Резюме вот составил - рассказал в нем все: и как в магазине работал, и как от ментов бегали когда из магазина спиздили ящик колбасы! Да и про курсы рассказал всё!&lt;/p&gt;
  &lt;p id=&quot;YtQR&quot;&gt;&lt;em&gt;*some time later*&lt;/em&gt;&lt;br /&gt;- Почему меня не берут на работу? У меня и резюме смотри какое красивое - с гифками даже! Я его в письмо вставляю и отправляю в компании где хочу работать - в гугл, яндекс, мылору, мелкософт!&lt;br /&gt;- А опыт работы по девупс какой?&lt;br /&gt;- Так его ж нету!&lt;br /&gt;- *facepalm*&lt;/p&gt;
  &lt;p id=&quot;AmtN&quot;&gt;&lt;em&gt;*some time later*&lt;/em&gt;&lt;br /&gt;- Ну блин научи меня быть крутым девопсом! Я тоже хочу зарплату в 900kkns как у тебя! Что мне надо делать? Говори! Или ты денег зажал? Думаешь что я научусь и отберу у тебя работу?&lt;br /&gt;- Я ж говорил - учись гуглить.&lt;br /&gt;- Мне на курсах сказали - копируй и вставляй!Всё!&lt;/p&gt;
  &lt;p id=&quot;v567&quot;&gt;&lt;em&gt;*some time later*&lt;/em&gt;&lt;br /&gt;- Все вы айтишники ебаные говнари, которым жалко денег! И которые нихуя не делая бабло гребут лопатой! Я пробовал - сиди и копипасти, а как только задашь кому из них вопрос - они сразу твари в гугол отправляют! Ваще пипец! Жмоты херовы! Жопышники и говнари!&lt;/p&gt;
  &lt;p id=&quot;RyJr&quot;&gt;&lt;em&gt;*some time later*&lt;/em&gt;&lt;br /&gt;- Слушай,меня тут уволили из магазина -сказали «нехер было пиздить колбасу». Я ж вроде учился на девупса - посмотри мое резюме.&lt;br /&gt;- Давай гляну. Чему научился? Расскажи про TCP/IP? Что такое cgroups/namespaces? А как это связано с docker? Что такое inodes? CI/CD?&lt;/p&gt;
  &lt;p id=&quot;f3ki&quot;&gt;- Ну блиииин! Ты меня заваливаешь! Мне сказали копировать команды и деплоить в продакшн через гитлаб-сиай!&lt;br /&gt;- Ну вот тебе сервер, вот тебе приложение, вот тебе гитлаб - задеплой приложение на сервер. Сколько времени надо?&lt;br /&gt;- Ха! Так ваще изи - за пару часов управлюсь!&lt;/p&gt;
  &lt;p id=&quot;iXt6&quot;&gt;&lt;em&gt;*some day later*&lt;/em&gt;&lt;br /&gt;- Короче у тебе сервак нихера не готов к деплою! И приложение говно!&lt;br /&gt;- А конкретнее?&lt;br /&gt;- Я залогинился в гитлаб, а гитлаб не видит сервак! Ты меня наебал! А еще я раннеров не вижу! А сервак вообще не доступен! У него порт рдп закрыт! Я проверял! Не доступен он!&lt;/p&gt;
  &lt;p id=&quot;akbx&quot;&gt;- А ты по SSH ходить пробовал?&lt;br /&gt;- Какой нахер SSH? Что это вообще такое? Опять ты меня наебываешь и подставляешь? Я ж знаю как должно быть! Внес правки в ямль, закоммитил в мастер, запустился пайплайн и всё - приложение задеплоилось на сервак! Ты не хочешь чтоб я работал и учился!&lt;/p&gt;
  &lt;p id=&quot;dXKW&quot;&gt;&lt;em&gt;*some day later*&lt;/em&gt;&lt;br /&gt;- Я узнал что такое SSH! Мне на курсах по ремоут менеджменту инфраструктуры рассказали! Еще сказали что твой SSH полная хуйня - нужно энсибль или ансибль не помню как правильно, но вот его надо юзать! И тетрафармер!&lt;br /&gt;- Терраформ?&lt;br /&gt;- Да! Тетраформ юзать надо!&lt;/p&gt;
  &lt;p id=&quot;Fs3o&quot;&gt;- Ну так что? Сколько тебе надо времени на выполнение тестового?&lt;br /&gt;- Ваще изи - теперь я точно справлюсь за пару часов!&lt;br /&gt;- Окай. Завтра вернусь.&lt;/p&gt;
  &lt;p id=&quot;NFiR&quot;&gt;&lt;em&gt;*the next day*&lt;/em&gt;&lt;br /&gt;- Удалось?&lt;br /&gt;- Твое приложение не умеет запускаться - я пытаюсь его запустить у себя локально, но оно не запускается!&lt;br /&gt;- И как запускаешь?&lt;br /&gt;- Дописываю ему расширение .exe и дважды кликаю! Не запускается!&lt;br /&gt;- Так это ж линукс-бинарь!&lt;br /&gt;- Т.е. ты мне дал не рабочий апп?!&lt;/p&gt;
  &lt;p id=&quot;lupR&quot;&gt;&lt;em&gt;*some week later*&lt;/em&gt;&lt;br /&gt;- Короче я понял всё! Ты просто не хочешь чтоб я работал и отбирал твои деньги! Ты боишься что я стану сильным конкурентом тебе и оставлю тебя без работы! Ты специально даешь мне не работающие приложения и задачи не решаемые! Все вы айтишники мудаки и жлобы!&lt;/p&gt;
  &lt;p id=&quot;d7sN&quot;&gt;&lt;em&gt;*some month later*&lt;/em&gt;&lt;br /&gt;- Я тут запустил свой бизнес: оказываю юридические услуги! Сделай мне сайт плиз! Чтоб как вот у тех было!&lt;br /&gt;- Окай. Срок от 3 месяцев, стоимость от 250k. &lt;br /&gt;- Ты ахуел что ли? Чего так дорого? Вон там этим делали за косарь вон те ребята! Совсем айтишники ахуели!&lt;/p&gt;
  &lt;hr /&gt;
  &lt;p id=&quot;1L44&quot;&gt;Оригинал истории &lt;a href=&quot;https://twitter.com/jtprogru/status/1410557333457997824&quot; target=&quot;_blank&quot;&gt;туть...&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>jtprogru:mqZr-bf0C47</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/mqZr-bf0C47?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Архитектура vs Дизайн систем</title><published>2024-02-11T08:11:04.562Z</published><updated>2024-02-13T18:34:27.490Z</updated><tt:hashtag>архитектура</tt:hashtag><tt:hashtag>дизайн</tt:hashtag><tt:hashtag>архитектурасистем</tt:hashtag><tt:hashtag>дизайнсистем</tt:hashtag><tt:hashtag>заметкинаполях</tt:hashtag><summary type="html">Дизайн и архитектура информационной системы являются важными аспектами в процессе разработки программного обеспечения, но они сосредоточены на различных уровнях детализации и аспектах системы.</summary><content type="html">
  &lt;p id=&quot;2RYJ&quot;&gt;Дизайн и архитектура информационной системы являются важными аспектами в процессе разработки программного обеспечения, но они сосредоточены на различных уровнях детализации и аспектах системы.&lt;/p&gt;
  &lt;h2 id=&quot;Hhnl&quot;&gt;Архитектура информационной системы&lt;/h2&gt;
  &lt;p id=&quot;YbOV&quot;&gt;Архитектура информационной системы определяет высокоуровневую структуру системы. Она включает в себя решения, касающиеся разделения системы на компоненты, их взаимодействия между собой, а также с внешними системами. Архитектура затрагивает выбор технологий, принципы работы системы, обеспечение масштабируемости, надежности, безопасности и других системных характеристик.&lt;/p&gt;
  &lt;p id=&quot;LIDC&quot;&gt;- &lt;strong&gt;Структурная организация&lt;/strong&gt;: Как система разбита на модули или компоненты.&lt;br /&gt;- &lt;strong&gt;Взаимодействие компонентов&lt;/strong&gt;: Как модули взаимодействуют друг с другом и с внешним миром.&lt;br /&gt;- &lt;strong&gt;Технологические решения&lt;/strong&gt;: Выбор программных и аппаратных технологий.&lt;br /&gt;- &lt;strong&gt;Безопасность и производительность&lt;/strong&gt;: Обеспечение требуемого уровня безопасности и производительности.&lt;/p&gt;
  &lt;h2 id=&quot;7Pps&quot;&gt;Дизайн информационной системы&lt;/h2&gt;
  &lt;p id=&quot;ubeA&quot;&gt;Дизайн фокусируется на более детальном уровне, рассматривая конкретное внутреннее устройство компонентов системы, их интерфейсы, алгоритмы и протоколы взаимодействия. Дизайн включает в себя подготовку диаграмм классов, последовательностей, состояний и других элементов, помогающих в реализации и понимании системы.&lt;/p&gt;
  &lt;p id=&quot;4nwV&quot;&gt;- &lt;strong&gt;Внутреннее устройство компонентов&lt;/strong&gt;: Разработка структуры и поведения внутри модулей.&lt;br /&gt;- &lt;strong&gt;Интерфейсы&lt;/strong&gt;: Определение точек взаимодействия между компонентами.&lt;br /&gt;- &lt;strong&gt;Алгоритмы&lt;/strong&gt;: Конкретные решения, используемые для выполнения функций.&lt;br /&gt;- &lt;strong&gt;Детали реализации&lt;/strong&gt;: Точные спецификации поведения и структуры данных.&lt;/p&gt;
  &lt;h2 id=&quot;gQeU&quot;&gt;Основные различия&lt;/h2&gt;
  &lt;p id=&quot;h39k&quot;&gt;- &lt;strong&gt;Уровень детализации&lt;/strong&gt;: Архитектура занимается общими принципами и структурой, в то время как дизайн углубляется в детали реализации.&lt;br /&gt;- &lt;strong&gt;Фокус&lt;/strong&gt;: Архитектура сосредоточена на обеспечении целостности, масштабируемости и эффективности системы в целом, в то время как дизайн решает, как конкретные компоненты будут реализованы и взаимодействовать.&lt;br /&gt;- &lt;strong&gt;Цели&lt;/strong&gt;: Цель архитектуры – создать устойчивую основу для системы, поддерживающую её требования и цели на высоком уровне. Цель дизайна – детализировать эту основу, обеспечивая эффективную реализацию отдельных частей системы.&lt;/p&gt;
  &lt;p id=&quot;jXl2&quot;&gt;Оба аспекта тесно связаны и перекрываются, но их различие важно для понимания и успешной реализации информационных систем.&lt;/p&gt;
  &lt;p id=&quot;3TvG&quot;&gt;Подписывайся на &lt;a href=&quot;https://t.me/jtprogru_channel&quot; target=&quot;_blank&quot;&gt;телегу&lt;/a&gt; и заходи обсудить в &lt;a href=&quot;https://t.me/jtprogru_chat&quot; target=&quot;_blank&quot;&gt;чат&lt;/a&gt;.&lt;/p&gt;
  &lt;tt-tags id=&quot;8WnL&quot;&gt;
    &lt;tt-tag name=&quot;архитектура&quot;&gt;#архитектура&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;дизайн&quot;&gt;#дизайн&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;архитектурасистем&quot;&gt;#архитектурасистем&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;дизайнсистем&quot;&gt;#дизайнсистем&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;заметкинаполях&quot;&gt;#заметкинаполях&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry><entry><id>jtprogru:psJ_lBRgXFE</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/psJ_lBRgXFE?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Самый правильный Do not disturb</title><published>2023-10-24T19:08:46.910Z</published><updated>2023-10-24T19:08:46.910Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/fd/9a/fd9a61aa-4131-493e-af34-6ffac200e67d.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://telegra.ph/file/d9e83283cb38bdb288c1b.jpg&quot;&gt;Все мы используем мессенджеры в духе Telegram, Slack, Mattermost и прочее для коммуникаций по работе. Лично я довольно многое держу в телеге, потому что она мне удобна – раскидал по &quot;папкам все чаты&quot; и утащил в архив лишнее.</summary><content type="html">
  &lt;figure id=&quot;bkvc&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/d9e83283cb38bdb288c1b.jpg&quot; width=&quot;512&quot; /&gt;
    &lt;figcaption&gt;Именно так будешь выглядеть, когда все уведомления включены&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9YlI&quot;&gt;Все мы используем мессенджеры в духе Telegram, Slack, Mattermost и прочее для коммуникаций по работе. Лично я довольно многое держу в телеге, потому что она мне удобна – раскидал по &amp;quot;папкам все чаты&amp;quot; и утащил в архив лишнее.&lt;/p&gt;
  &lt;p id=&quot;keqI&quot;&gt;Но иногда бывает так, что количество коммуникаций начинает расти просто лавинообразно – сейчас я поделюсь способом уменьшения количества шума на примере Telegram (потому что он мне нравится).&lt;/p&gt;
  &lt;p id=&quot;1AFL&quot;&gt;Итак, поехали:&lt;/p&gt;
  &lt;p id=&quot;UXmU&quot;&gt;1. Настраиваем папки (по желанию) – лично мне просто удобно пользоваться папками в телеге с таким подходом. Причем в качестве имен папок я использую emoji, потому что это куда компактнее;&lt;/p&gt;
  &lt;p id=&quot;iaZ5&quot;&gt;2. &lt;strong&gt;Выключаем&lt;/strong&gt; уведомления для всех – да, все верно, отключаем все уведомления о новых сообщения на уровне Telegram;&lt;/p&gt;
  &lt;p id=&quot;LU4z&quot;&gt;3. Включаем только от важных – &lt;strong&gt;очень внимательно выбираем важных&lt;/strong&gt; для включения уведомлений;&lt;/p&gt;
  &lt;p id=&quot;ZUW9&quot;&gt;4. &lt;strong&gt;Наслаждаемся&lt;/strong&gt; – после нескольких дней в таком режиме будет сложно жить по другому.&lt;/p&gt;
  &lt;p id=&quot;wT5d&quot;&gt;Цитата из книги &lt;a href=&quot;https://www.mann-ivanov-ferber.ru/books/dzhedajskie-texniki/&quot; target=&quot;_blank&quot;&gt;Джедайские техники&lt;/a&gt;:&lt;/p&gt;
  &lt;blockquote id=&quot;QTG2&quot;&gt;Некоторые исследователи, между прочим, утверждают, что чрезмерная стимуляция мозга оповещениями со смартфона приводит к невнимательности и появлению симптомов СДВГ (синдром дефицита внимания и гиперактивности), вот и думайте. На самом деле, если у вас есть класс сообщений, требующих незамедлительной реакции, настройте отдельное оповещение только для сообщений этого класса.&lt;/blockquote&gt;
  &lt;p id=&quot;at7z&quot;&gt;Собственно говоря, это все, что требуется знать о правильном режиме &amp;quot;не беспокоить&amp;quot;. У меня строго ограниченный набор людей и чатов, которые имею право меня побеспокоить – вот прям реально, далеко не от всех родственников/друзей/коллег я получаю сиюминутные уведомления. А если человек абсолютно новый (не является моим контактом), то я увижу его сообщение только когда сам открою телегу.&lt;/p&gt;
  &lt;p id=&quot;emx1&quot;&gt;А ты как подходишь к решению такой проблемы, как &amp;quot;дохрена уведомлений&amp;quot;?&lt;/p&gt;

</content></entry><entry><id>jtprogru:tqmoxxYXKVl</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/tqmoxxYXKVl?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Личный дневник</title><published>2022-06-26T11:25:50.344Z</published><updated>2024-02-28T15:06:32.490Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/d2/4b/d24b62ce-ad56-454a-8f2e-a3d6d8321847.png"></media:thumbnail><tt:hashtag>dayone</tt:hashtag><tt:hashtag>дневник</tt:hashtag><tt:hashtag>личныйдневник</tt:hashtag><tt:hashtag>рефлексия</tt:hashtag><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/ad/17/ad1799b8-b9a1-47da-8bc2-cba4a1fb7e69.jpeg&quot;&gt;Привет, %username%! Сегодня ровно 90 дней как я веду дневник и вот, чем я могу поделиться по этому поводу.</summary><content type="html">
  &lt;figure id=&quot;LUfO&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2f/b3/2fb377ef-0051-4391-bbbc-d68f07f65e75.jpeg&quot; width=&quot;640&quot; /&gt;
    &lt;figcaption&gt;Photo by &lt;a href=&quot;https://unsplash.com/@aaronburden?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash&quot; target=&quot;_blank&quot;&gt;Aaron Burden&lt;/a&gt; on &lt;a href=&quot;https://unsplash.com/photos/a-notebook-and-pen-on-a-wooden-table-97ye8w9Vfoo?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash&quot; target=&quot;_blank&quot;&gt;Unsplash&lt;/a&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;YRkd&quot;&gt;Привет, &lt;code&gt;%username%&lt;/code&gt;! Сегодня ровно 90 дней как я веду дневник и вот, чем я могу поделиться по этому поводу.&lt;/p&gt;
  &lt;h2 id=&quot;AjFu&quot;&gt;Где веду&lt;/h2&gt;
  &lt;p id=&quot;OqSC&quot;&gt;Я пробовал разные варианты:&lt;/p&gt;
  &lt;ul id=&quot;9NNK&quot;&gt;
    &lt;li id=&quot;dInl&quot;&gt;Notion;&lt;/li&gt;
    &lt;li id=&quot;eF4e&quot;&gt;Evernote;&lt;/li&gt;
    &lt;li id=&quot;YWeF&quot;&gt;Apple Notes;&lt;/li&gt;
    &lt;li id=&quot;2wTT&quot;&gt;Day One;&lt;/li&gt;
    &lt;li id=&quot;Jsz4&quot;&gt;Bear;&lt;/li&gt;
    &lt;li id=&quot;pmgH&quot;&gt;Ulysses;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;tKqQ&quot;&gt;Все они выполняют свою функцию – ведение заметок. У всех (ну почти) вариантов есть возможность синхронизации с iPhone. Многие позволяют вставлять картинки в заметки.&lt;/p&gt;
  &lt;p id=&quot;aIPG&quot;&gt;НО! Все эти варианты, кроме одного, заточены под ведение заметок! А обычное ведение заметок сильно отличается от ведения дневника. И это заметно в приложении &lt;a href=&quot;https://dayoneapp.com/&quot; target=&quot;_blank&quot;&gt;Day One&lt;/a&gt;, на котором я и остановил свой выбор, купив платную подписку. Платная подписка дает важную для меня возможность – синхронизация между macOS и iPhone.&lt;/p&gt;
  &lt;p id=&quot;jJv9&quot;&gt;Делать обзор и сравнение я не хочу – такого хватает в интернете. Посмотреть на интерфейс можно так же на картинках. Скажу лишь свое мнение за внешний вид: у Day One очень приятный интерфейс – наверное этим и подкупило меня это приложение.&lt;/p&gt;
  &lt;p id=&quot;YydR&quot;&gt;Вести “личный дневник” в аналоговом виде мне не хотелось потому, что я ленивый и не люблю писать с самой школы, ну и с картинками и ссылками проблематично. Это в начале нулевых можно было встретить полноценный URL на Википедию в печатном издании, а сейчас слишком много вариантов для ведения дневника в цифровом виде.&lt;/p&gt;
  &lt;h2 id=&quot;d2Se&quot;&gt;Отличия от обычных заметок&lt;/h2&gt;
  &lt;p id=&quot;ZBH6&quot;&gt;Типичное приложение заметок просит тебя “каталогизировать” свои заметки – упорядочивать свои знания. Дневник же имеет упорядоченные в хронологическом порядке записи. Других вариантов тут особо и не надо. Хотя Day One и предлагает создание нескольких “журналов” (терминология Day One – журнал это блокнот) под свои нужны. Но я остановился на одном единственном журнале под названием “Life”. Тэги – еще одна типичная составляющая для любого приложения по ведению заметок. Навешивать тэги можно конечно, но я так же не пользуюсь этим на постоянной основе (чуть позже поясню почему). Исключение составляют лишь “медицинские наблюдения”.&lt;/p&gt;
  &lt;p id=&quot;0Iqf&quot;&gt;Некоторое время назад у меня были проблемы с головой (не, не то что ты подумал) – она рандомно начинала болеть и часто боль была такая, что делать что-либо было невозможно. Доктор порекомендовал вести дневник головных болей. Вот для этих записей у меня был отдельный тэг, потому что на приеме у доктора мне надо было быстро пройтись по заметкам и посмотреть “когда”, “как долго”, “чем устранял”.&lt;/p&gt;
  &lt;p id=&quot;og4U&quot;&gt;Проще говоря никаких видов “организации” и “каталогизации” я не использую для дневника. Потому что дневник – “блокнот”, куда ты записываешь что-либо связанное с жизнью, эмоциями, переживаниями и попытка упорядочить эти данные каким-либо образом кроме календарного – приведет совершенно не туда, куда ожидаешь.&lt;/p&gt;
  &lt;p id=&quot;xGjF&quot;&gt;В качестве эксперимента попробуй сформулировать десяток коротких, буквально в 2-3 предложения, заметок на ежедневной основе, с описанием переживаний/эмоций/мыслей и постарайся навесить на них “правильные” тэги. Довольно быстро ты придешь к одному из двух выводов: либо тебе это очень удобно, либо у тебя на каждой заметке будет один или десяток тэгов и это будет для тебя ужасно и бессмысленно.&lt;/p&gt;
  &lt;h2 id=&quot;P2PD&quot;&gt;Как я веду заметки&lt;/h2&gt;
  &lt;p id=&quot;PGtz&quot;&gt;Тут все довольно просто: обязательная заметка пишется без всяких напоминаний перед тем, как наступит полночь. Это обязательная заметка, потому что я хочу видеть прогресс того, что я учусь формулировать свои мысли в тексте на ежедневной основе. Главный принцип – ежедневность! Могу писать и с телефона, и с ноутбука – никакой разницы нету.&lt;/p&gt;
  &lt;p id=&quot;EBX4&quot;&gt;Вторым обязательным фактором является “обязанность” – даже если я весь день лежал в кровати и ходил максимум до туалета, даже если я ни о чем не думал, я “обязан” записать одно-два предложения. Даже если это будет что-то в духе:&lt;/p&gt;
  &lt;blockquote id=&quot;iLqy&quot;&gt;&lt;strong&gt;Всратосенье&lt;/strong&gt;Нихера не делал. Весь день лежу. Норм.&lt;/blockquote&gt;
  &lt;p id=&quot;UlPO&quot;&gt;Может показаться, что я себя принуждаю к этому, но нет. Первое время конечно было сложно – я уже не первый раз подхожу к ежедневному ведению личного дневника. Пока я не пришел к “своему формату”, я совершенно не мог писать чаще чем раз в неделю. Я был уверен, что мне нечего писать.&lt;/p&gt;
  &lt;p id=&quot;FWeR&quot;&gt;Помимо ежедневной вечерней заметки я могу во время прогулок что-то сфотографировать с какой-нибудь подписью. Или просто какое-то воспоминание записать. Так что совершенно не редкость 2-3 заметки в день.&lt;/p&gt;
  &lt;h2 id=&quot;x7iR&quot;&gt;Мой формат&lt;/h2&gt;
  &lt;p id=&quot;CxoK&quot;&gt;Важным было простое осознание – “Я ПИШУ ДЛЯ СЕБЯ”. Это значит, что я там могу писать прямым текстом абсолютно всё. Это очень важно, хоть и выглядит просто!&lt;/p&gt;
  &lt;p id=&quot;pek6&quot;&gt;При написании даже этой статейки, я пытаюсь подбирать слова таким образом, чтобы из них выстраивались более-менее понятные предложения. Причина простая – эта статья рассчитана на то, что ее будет читать кто-то кроме меня. Дневник ведется с одной целью – записать свои мысли, которые не хочется или не надо показывать другим. Значит никто кроме меня заметки в моем дневнике не прочитает (мы не будем поднимать вопрос слива данных, взлома и прочего). А если эту заметку никто кроме меня не прочитает, значит я могу писать как хочу – а часто хочется писать матом вне зависимость от позитивного или негативного настроя.&lt;/p&gt;
  &lt;p id=&quot;Nu1x&quot;&gt;Высокопарный слог стоит использовать при написании художественной книги, рассчитанной на включение в школьную программу. А я пишу для себя – ровно тем текстом, которым я разговариваю с собой – прямо через х%й-п%%%а-е%%%ьоноконем.&lt;/p&gt;
  &lt;p id=&quot;65KW&quot;&gt;Короче говоря: будь проще и станет легче.&lt;/p&gt;
  &lt;h2 id=&quot;Mi5M&quot;&gt;Выводы&lt;/h2&gt;
  &lt;p id=&quot;E0q8&quot;&gt;Дневник я использую как молчаливого друга, который всегда выслушает и точно не будет давать советов “по поводу очередной ссоры с женой или начальником”. Запись каких-либо эмоциональных вещей помогает успокоить эмоции и проанализировать ситуацию, а иногда взглянуть со стороны.&lt;/p&gt;
  &lt;p id=&quot;UFM0&quot;&gt;Если ты знаком с “методом утенка”, то ты быстро сможешь адаптировать его к ведению дневника. Очень сильно помогает успокоить поток мыслей, разобраться с кашей в голове, проанализировать себя.&lt;/p&gt;
  &lt;p id=&quot;AMpe&quot;&gt;Итог: вести личный дневник категорически рекомендую.&lt;/p&gt;
  &lt;tt-tags id=&quot;3I0t&quot;&gt;
    &lt;tt-tag name=&quot;dayone&quot;&gt;#dayone&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;дневник&quot;&gt;#дневник&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;личныйдневник&quot;&gt;#личныйдневник&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;рефлексия&quot;&gt;#рефлексия&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry><entry><id>jtprogru:N1PLD0GVEbj</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/N1PLD0GVEbj?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Алгоритм расчёта OOM Score</title><published>2021-09-08T19:33:35.823Z</published><updated>2021-09-08T19:33:35.823Z</updated><summary type="html">Алгоритм расчета уровня негодности процесса (итоговое значение будет измеряться в очках негодности (badness ponts)):</summary><content type="html">
  &lt;p id=&quot;B4sw&quot;&gt;Алгоритм расчета уровня негодности процесса (итоговое значение будет измеряться в очках негодности (badness ponts)):&lt;/p&gt;
  &lt;ol id=&quot;V1yQ&quot;&gt;
    &lt;li id=&quot;f0lB&quot;&gt;Берется размер виртуальной памяти процесса (&lt;code&gt;total_vm&lt;/code&gt;). Это базовые очки негодности (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l69&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:69&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;c9Vu&quot;&gt;К текущим очкам прибавляется &lt;code&gt;total_vm/2 + 1&lt;/code&gt; для всех порожденных процессов (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;a=blob;f=mm/oom_kill.c#l85&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:85&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;AijR&quot;&gt;Текущие очки делятся на &lt;code&gt;int_sqrt(cpu_time)&lt;/code&gt;, где cpu_time — это user + system время процесса сдвинутое вправо на &lt;code&gt;SHIFT_HZ + 3&lt;/code&gt;, т.е. для &lt;code&gt;HZ=1000&lt;/code&gt; приблизительно будет равен значению &lt;code&gt;int_sqrt((utime+stime)/10)&lt;/code&gt;. причем если результат деления и последующего округления будет 0 — то очки не изменяются (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l100&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:100&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;g6DG&quot;&gt;Текущие очки делятся на &lt;code&gt;int_sqrt(int_sqrt(run_time/1024))&lt;/code&gt;, где run_time — время прошедшое с момента запуска процесса. Если результат 0 — то очки не изменяются (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l100&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:100&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;BYeW&quot;&gt;Очки умножаются на 2, если &lt;code&gt;nice&lt;/code&gt; процесса больше 0 (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l118&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:118&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;WLWE&quot;&gt;Если процесс имеет привилегию CAP_SYS_ADMIN или CAP_SYS_RESOURCE или (e)uid в нуле, то текущие очки делятся на 4 (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l125&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:125&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;NcDO&quot;&gt;Если процесс имеет привилегию CAP_SYS_RAWIO, то текущие очки делятся на 4 (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l133&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:133&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;xwG2&quot;&gt;Если память процесса, для которого мы считаем очки негодности, пересекается с памятью процесса, для которого в момент выделения новой памяти произошла ошибка &lt;code&gt;out of memory&lt;/code&gt;, тогда очки делятся на 8 (для ядер старше 2.6.28, &lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l142&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:142&lt;/a&gt;).&lt;/li&gt;
    &lt;li id=&quot;RWzP&quot;&gt;Набранные очки умножаются на &lt;code&gt;2oom_adj&lt;/code&gt;, где oom_adj — берется из &lt;code&gt;/proc/$PID/oom_adj&lt;/code&gt;, он может принимать значения от -17 до 15. В случае значения -17 процесс не будет тронут OOM Killer (&lt;a href=&quot;http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=2f3166e308d9713378d6a37b6a54e6272abf0f1f;hb=HEAD#l150&quot; target=&quot;_blank&quot;&gt;mm/oom_kill.c:150&lt;/a&gt;).&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;DX0g&quot;&gt;Небольшие пояснения.&lt;/p&gt;
  &lt;ol id=&quot;yR8G&quot;&gt;
    &lt;li id=&quot;65pQ&quot;&gt;При расчете дочерних &lt;code&gt;total_vm&lt;/code&gt; учитываются только процессы с самостоятельной виртуальной памятью. Т.е. &lt;strong&gt;не&lt;/strong&gt; потоки.&lt;/li&gt;
    &lt;li id=&quot;lJYQ&quot;&gt;Предполагается, что если приоритет больше нуля, то выполнение этого процесса менее критично, чем выполнение процессов с отрицательным приоритетом.&lt;/li&gt;
    &lt;li id=&quot;PUtF&quot;&gt;Предполагается, что root-процессы важнее, чем процессы непривилегированных пользователей.&lt;/li&gt;
    &lt;li id=&quot;VxUb&quot;&gt;Убийство процессов, которые осуществляют прямую работу с устройствами, может повлечь за собой нежелательные последствия.&lt;/li&gt;
    &lt;li id=&quot;MmzW&quot;&gt;OOM Killer стремится убивать более молодые процессы. Это надо, чтобы OOM Killer убил только что запущенный процесс с утечкой памяти и не тронул старые, добротные процессы, которые просто кушают много памяти ☺&lt;/li&gt;
    &lt;li id=&quot;Tx1I&quot;&gt;OOM Killer стремится сохранить жизнь процесса, при выделении памяти для которого произошла ошибка &lt;code&gt;out of memory&lt;/code&gt;, и процессам, у которых с ним есть общая память (для ядер старше 2.6.28).&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;BvO8&quot;&gt;Доступные пользователю настройки:&lt;/p&gt;
  &lt;ul id=&quot;p5bX&quot;&gt;
    &lt;li id=&quot;Qdet&quot;&gt;самый простой способ повлиять на OOM Killer — использовать &lt;a href=&quot;http://catap.ru/blog/2009/05/05/about-memory-overcommit-memory/&quot; target=&quot;_blank&quot;&gt;vm.overcommit_memory&lt;/a&gt;;&lt;/li&gt;
    &lt;li id=&quot;h1GP&quot;&gt;&lt;code&gt;vm.oom_dump_tasks&lt;/code&gt; — делать dump всех процессов за исключением kernel threads, в dump попадает pid, uid, tgid, vm size, rss, cpu и oom_adj. Имеет смысл включать только для отладки OOM Killer;&lt;/li&gt;
    &lt;li id=&quot;rNaT&quot;&gt;&lt;code&gt;vm.oom_kill_allocating_task&lt;/code&gt; — убивать процесс, процесс которому не хватило памяти, без выбора самого плохого;&lt;/li&gt;
    &lt;li id=&quot;i2Qs&quot;&gt;&lt;code&gt;vm.panic_on_oom&lt;/code&gt; — считать запуск OOM критической ошибкой.&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>jtprogru:tceyRuICJpN</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/tceyRuICJpN?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Тебе доверили поддержку чужого кода</title><published>2021-07-16T10:49:29.223Z</published><updated>2021-07-16T10:49:29.223Z</updated><tt:hashtag>анекдот</tt:hashtag><tt:hashtag>история</tt:hashtag><tt:hashtag>программист</tt:hashtag><tt:hashtag>вентилятор</tt:hashtag><tt:hashtag>ядовитыйгаз</tt:hashtag><summary type="html">Краткая история о том, почему программисты ненавидят работать с чужим кодом. Долго думал, как донести до обычного пользователя всю суть пиздеца. Решил привести небольшую аналогию:</summary><content type="html">
  &lt;p&gt;Краткая история о том, почему программисты ненавидят работать с чужим кодом. Долго думал, как донести до обычного пользователя всю суть пиздеца. Решил привести небольшую аналогию:&lt;/p&gt;
  &lt;p&gt;Вот представь, что тебе доверили достроить за другим прорабом лабораторию на острове. Ты приходишь на объект, а там кроме недостроенного здания: огромный вентилятор (размером со здание), большой воздушный шар и комната набитая швабрами. Почесав голову, ты разбираешь этот хлам и доделываешь лабораторию. Сдаешь объект ученным, но через 5 минут они выбегают с криком: &amp;quot;&lt;strong&gt;УТЕЧКА ЯДОВИТОГО ГАЗА!!!&lt;/strong&gt;&amp;quot;.&lt;/p&gt;
  &lt;p&gt;- Как так-то, блять! Должно же работать! - в отчаянии кричишь ты и звонишь прошлому прорабу:&lt;br /&gt;- Вася, у нас ядовитый газ потёк! В чем проблема?&lt;br /&gt;- Не знаю, должно было все работать. Что-то в проекте менял?&lt;br /&gt;- Немного, швабры вынес...&lt;br /&gt;- Швабры потолок держали!&lt;br /&gt;- Что??? Что, блять, извините???&lt;br /&gt;- Говорю, швабры потолок держали. Над ними цистерны с газом были. Очень тяжелые, пришлось в комнату снизу швабры напихать.&lt;br /&gt;- Ты хотя бы записку на двери повесил бы, что швабры для держания потолка! У нас тут ядовитый газ течет! Что нам делать?&lt;br /&gt;- Включай вентилятор. Он сдует газ с острова.&lt;br /&gt;- Я его, блять, демонтировал сразу же!&lt;br /&gt;- Зачем?&lt;br /&gt;- Зачем ты построил 120 тонный вентилятор? Ты не мог положить ящик блядских ПРОТИВОГАЗОВ?&lt;br /&gt;- Ящик противогазов искать нужно, а вентилятор у меня с прошлого заказа оставался.&lt;br /&gt;- Вася, я убрал твой вентилятор! Мы тут задыхаемся!&lt;br /&gt;- Херли вы тогда там делаете? Садитесь на воздушный шар и уебывайте!&lt;/p&gt;
  &lt;p&gt;И столько реальности и боли в этом, что ни в сказке сказать, ни пером описать.&lt;/p&gt;
  &lt;tt-tags&gt;
    &lt;tt-tag name=&quot;анекдот&quot;&gt;#анекдот&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;история&quot;&gt;#история&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;программист&quot;&gt;#программист&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;вентилятор&quot;&gt;#вентилятор&lt;/tt-tag&gt;
    &lt;tt-tag name=&quot;ядовитыйгаз&quot;&gt;#ядовитыйгаз&lt;/tt-tag&gt;
  &lt;/tt-tags&gt;

</content></entry><entry><id>jtprogru:aDMTtqmHqe3</id><link rel="alternate" type="text/html" href="https://twtr.jtprog.ru/aDMTtqmHqe3?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=jtprogru"></link><title>Собеседование без купюр</title><published>2021-07-03T14:22:33.613Z</published><updated>2021-07-03T14:22:33.613Z</updated><summary type="html">Боянистая хрень про тупые вопросы на собеседованиях от интервьюера.</summary><content type="html">
  &lt;p&gt;Боянистая хрень про тупые вопросы на собеседованиях от интервьюера.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Почему вы выбрали именно нашу компанию?&lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Вы идиот? Я направил резюме в десяток мест. Где устроюсь быстрее и выгоднее — там и хорошо. &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Как вы считаете, почему мы должны выбрать именно вас? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Вам работники вообще нужны? Ну вот он я. Работник. Именно меня стоит выбрать хотя бы потому, что я явно умнее всех тех, кто заливал на эти вопросы стандартную чушь. И умнее вас, между прочим, потому что я никогда таких дурацких вопросов бы не задал. &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Какую зарплату вы хотели бы получать? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; 2,5 млн. $ в год, как президент США. Что за вопрос? Естественно, я хочу получать настолько высокую зарплату, насколько вы сможете мне заплатить. Только ведь вы всё равно не заплатите. Тогда нечего и выпендриваться. Всё равно выбор за мной: вы говорите цену, я говорю — согласен или нет. &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Почему вы ушли с предыдущего места работы? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Предположим, отвечу честно: маленькая зарплата или отсутствие карьерного роста, или бесперспективность, или не сошелся с коллективом, или не понравился собаке начальника. И что? Вы же не знаете, сойдусь ли я с вашим начальником, коллективом и их собакой. И не узнаете, пока не попробуете. &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Кем вы видите себя через 5 лет в нашей компании? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Вот вам встречный вопрос: какие планы компании на ближайшие 5 лет? Нет таких? Так если вы сами не знаете, что с вами будет через 20 лет, будет ли компания и какую нишу она намеревается занять, то мне-то откуда это знать? &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Какие у вас были достижения на предыдущем месте работы? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; А резюме недостаточно, значит. Ну хорошо. Я отлично работал и великолепно справлялся со своими обязанностями. Вот это — достижение! Я вас разочарую: при правильном руководстве и хорошей работе никаких достижений быть не должно! Работать надо, а не ерундой маяться и достижения достигать! &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Каким бы вы хотели видеть своего начальника? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Я бы хотел его не видеть. Серьезно, мне нет разницы как он выглядит. Главное, чтобы он был начальником: тем, кто может нормально и внятно сформулировать задачи. А в остальном, пусть хоть в красных труселях на белой капибаре разъезжает по офису. &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Какие у вас есть достоинства? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; На гуслях я умею играть и плеваться на 15 метров в длину. Если вам нужна моя квалификация, то она указана в резюме. Если вам что-то нужно еще — то об этом и спросите. А если вы сами не знаете, чего вы хотите и что вам нужно, то тут, извините, ничем помочь не могу. Формулировать скрытые и неясные желания — это вам к психиатру нужно. &lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Вопрос:&lt;/strong&gt; Каковы ваши недостатки? &lt;br /&gt;&lt;strong&gt;Ответ:&lt;/strong&gt; Хорошо тенором пою, соседи жалуются, а в консерватории сказали — талант. Вот еще: когда ем суп, зачерпываю ложкой к себе, а не от себя!&lt;/p&gt;

</content></entry></feed>