Заметки Андрея
846 subscribers
63 photos
2 videos
86 links
Публикую ссылки на заметки из своего блога, видео, ссылки на интересные статьи и отвлечённые мысли. Пишу о своей жизни, программировании, компьютерной безопасности, дизайне и образовании.

Другие соцсеточки: andgein.ru

Жаловаться и хвалить: @andgein
Download Telegram
Замолвлю пару слов о легаси.

Некоторые считают, что одна из самых сложных вещей в программировании — это работа со старым кодом или апи, то есть с легаси. Нередко в ответ на вопрос «Почему так?!» можно услышать «Потому что так исторически сложилось», и это правда работает как аргумент, ведь если мы решим актуализировать весь код мира, переписать его по новым заветам и правилам, то он снова устареет раньше, чем мы закончим это благородное дело 🙃

На практике это иногда проявляется очень странным образом. Решил я тут на свежей убунте захешировать пароль утилитой mkpasswd. Нужного пакета в системе не оказалось, но убунта умная — сразу предлагает установить его:

# mkpasswd
Command 'mkpasswd' not found, but can be installed with:
apt install whois


Что, простите? Утилита mkpasswd идёт в составе пакета whois? Тут наверняка какая-то ошибка, ведь mkpasswd — это про хеширование паролей, а whois — про владения IP-сетями. Так что идём и проверяем на сайте убунты: https://packages.ubuntu.com/kinetic/amd64/whois/filelist. Странно... действительно написано, что в пакете whois лежит исполняемый файл /usr/bin/mkpasswd. Почему же так?

Потому что так исторически сложилось.

Более того, более 20 лет назад автора пакета (дебиановского, потому что убунты тогда ещё не было) спрашивали об этой странности: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=116260. И тогда, в 2001 году он ответил: «Historical reasons. It was part of the original RIPE whois package which I packaged before writing my own implementation. ... I think mkpasswd and whois are both small enough and useful enough that creating another package is only a waste of space.»

Что делать с этим пороком нашей профессии — решать вам🤷‍♂️
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚9😱7🔥3😢3🤣2💅2😁1👌1🤪1
Картинка для привлечения внимания 🙃
😁10
Когда-то я очень любил PHP — писал на нём много маленьких сайтиков, активно следил за изменениями в языке, знал нюансы и умел настраивать PHP в связке со всеми популярными веб-серверами. С тех пор прошло десять лет, а лет 5-6 назад был последний раз, когда я писал на PHP. Примерно тогда вышел PHP 7.

Это нормально — технологии развиваются быстро и иногда не выдерживают конкуренции: веб жёстко разделился на бэкенд и фронтенд, бэкенд повсеместно перешёл на JSON API и долгоживущие процессы вместо одноразовых скриптов, PHP сменился (в моём случае) си-шарпом, джаваскриптом и питоном.

Что я знал про судьбу PHP? Что всё ещё есть люди, пишущие на нём, что некоторые фреймворки типа друпала и вордпресса всё ещё пользуются популярностью в определённых сферах, что старые болячки так и не починили, и именно из-за этого PHP проиграл в своё время другим языкам. В общем, PHP ожидала медленная смерть некогда популярной технологии: так умирали Delphi, Flash, SVN и многие другие.

И какого же было моё удивление узнать, что PHP как язык, оказывается, активно развивается! Оказывается, у кого-то нашлись силы активно взяться за переделку PHP с целью исправить ошибки его молодости. Нет, такие попытки происходили и раньше (вспомнить, например, Composer для управления зависимостями), но теперь случились семимильные шаги, и ребята выпустили PHP 8.

Вот неполный список того, что добавили или сделали в PHP 8+ (список никак не упорядочен):
1. JIT-компиляция (в том числе для M1/M2)
2. Аннотации методов типа #[Route("/api/posts/{id}", methods: ["GET"])]
3. Именнованные аргументы у функции типа htmlspecialchars($string, double_encode: false);
4. Union-типы (сразу с синтаксисом через вертикальную черту: int|float!)
5. Match-оператор вместо устаревшего switch-case
6. Nullsafe-оператор ?->, знакомый разработчикам на си-шарпе и котлине, и которого мне так не хватает в питоне
7. Сравнение числа и строки наконец-то всегда возвращает false (см. 0 == 'foobar' )
8. Собачка @ перед методом теперь не заглушает фатальные ошибки
9. Методы типа str_starts_with()
10. Разрешили висящую запятую в списках
11. Упрощенный try-catch
12. Enum-ы
13. Readonly-свойства у объектов и readonly-классы
14. Указание возвращаемых типов (в том числе специальных типов never, null, false и true ).
15. Атрибут final
16. Выпилили неявную восьмиричную систему счисления при указании ведущего нуля (типа 016 == 14)
17. Корутины (пока слабенько поддержанные в синтаксисе, правда)
18. Оператор ... как в джаваскрипте, аналог *array в питоне
19. Выпилили $GLOBALS (ну почти)
20. Запретили создавать атрибуты у объекта, если они не были объявлены в классе (ну почти)
21. Внедрили нормальные RFC
(более полные списки — здесь, здесь и здесь)

Увидел у них интересную штуку, которую не видел раньше в других языках вне дженериков: вместе с Union-типами они предлагают Intersection-типы, чтобы принимать объекты, удовлетворяющие сразу двум интерфейсам. Например, так:

function count_and_iterate(Iterator&Countable $value) {
}

Более того, в 8.2 завезли возможность указывать произвольную ДНФ из типов:

public function foo((Iterator&Countable)|null $value) {
}

Думаю ли я, что PHP воскреснет из мёртвых? Однозначно нет. PHP дальше продолжит постепенно терять позиции и умирать, обратной дороги нет.
Но тем интереснее наблюдать за экспериментами, которые сейчас над ним проводятся. Да и можно что-нибудь полезное для других языков подчерпнуть 🙂
👍8🔥3🤯3
Ладно, хватит пока о программировании 🙂

Все знают или хотя бы слышали про Великую Китайскую стену, построенную ради защиты китайской цивилизации от кочевых народов. Но мало кто знает, что в другой части света, в Австралии, люди построили не менее впечатляющий забор! Забор, спросите вы? Представьте себе! Забор длиной 5500 километров (это как от Екатеринбурга до Москвы, обратно, а потом снова до Москвы) тянется через весь юго-восток материка. От кого же защищались австралийцы этим забором в конце 19-го века?

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

Забор этот стоит и функционирует до сих пор. Его так и называют: собачим забором или забором Динго. Каждый километр забора ежедневно проверяется специальными людьми: раньше они ездили на верблюдах, а теперь пользуются более современными джипами.
🤯4😐4👍1🤔1
Несколько фоточек собачьего забора и, собственно, собаки Динго
3
Но если вы думаете, что это всё, то очень даже нет! 🙃

Австралийцам пришлось защищаться не только от Динго, но и от … кроликов! Кроликов, в отличие от Динго, в Австралию завезли колонизаторы. И уже через 50 лет после завоза они расплодились в таких количествах, что полностью уничтожили часть растительных видов и некоторые леса (деревья они не кушали, конечно, а вот побеги новых — вполне).

В итоге на западе материка в начале XX века пришлось построить более 3000 километров забора. Сейчас этот забор, правда, менее актуален, чем собачий, и сохранился похуже. Почему? Дело в том, что в 1950-х с кроликами начали бороться инвазивно: целенаправленно распространяли вирус, вызывающий у животных конъюнктивит…

Но на самом деле и это ещё не всё! В 30-х годах двадцатого века Австралию постигла новая напасть: эму атаковали посевы пшеницы на западе материка. Заборы от них не спасали: эму оставляли в них большие дыры (через которые потом проникали и кролики, только ухудшая ситуацию). Пришлось с эму воевать! Не образно говоря, а по-настоящему: Австралия объявила военную операцию по истреблению животных, которую позже назвали «войной Австрали с Эму». Военные брали пулемёты и расстреливали эму, однако те были очень проворные, а стрелки, вероятно, плохо приспособены к таким противникам, так что эффективность была минимальна. К третьей неделе сражений пулемётчики уничтожали по 10-20 эму в день. Майор Мередит из седьмой тяжёлой батареи Королевских Австралийских сил артиллерии в своём докладе утверждал, что совершено 986 убийств с 9860 очередями выстрелов. Кроме того, он сказал, что ещё 2500 птиц погибло в результате ранений.

Эффекта это, однако, не имело: эму продолжали съедать урожай пшеницы. Австралийские фермеры вновь просили военной помощи, но правительство им отказало. Вместо этого активизировалась система «поощрений» за самостоятельное уничтожение эму: более 50 000 «поощрений» было получено в течение только шести месяцев в 1934 году…

Забавно, да? Почему-то раньше я считал, что в Австралии много опасных животных: пауки, крокодилы, медузы, осьминоги… Но вот по-настоящему человечеству пришлось там защищаться от собак, кроликов и эму.
👍7😁4😐4🔥2
Что подают в ресторане, в котором сразу приносят такой набор приборов?
💩3😱2🤔1🤪1
#не_знал_только_я

В Москве в 2021 году, впервые за последние сто лет, построили новый вокзал — Восточный. А когда-то казалось, что количество вокзалов в Москве более незыблемо, чем количество планет в солнечной системе...

Вокзал этот во многом особенный для Москвы. Например, он единственный, на втором вообще нет тупиковых путей (в детстве меня учили, что в Москве все вокзалы так или иначе тупиковые).

А ещё на нём единственном не ходят электрички, только поезда дальнего следования. В том числе, кстати, двухэтажный поезд, на втором этаже которого я только что уехал в Санкт-Петербург.

Спокойной ночи! 💤
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔11🔥5🥱5😱1
Немножко личного

Кто-то уже знает, а кто-то ещё нет, но примерно через месяц мне предстоит переезд в Лондон. Но речь не совсем об этом 🙂

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

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

Не уверен, что тут есть правильный ответ. Точнее уверен, что для разных людей он будет разным 😏 Обсуждал этот вопрос со многими друзьями, в том числе с теми, кто дарил эти вещи. И решил так: все деньги, вырученные от продажи подарков, я потрачу двумя способами:

а) добавлю и куплю аналогичную (может, более современную) вещь на новом месте,
б) либо отправлю на благотворительность.

Кроме того, у подарившего при желании будет право наложить вето на продажу своего подарка. В этом случае будем вместе думать, что делать с вещами 🙃

А вы когда-нибудь продавали подарки?
16🤔2👍1
🎉 https://andgein.ru/garage

Объявляю большую гаражную распродажу! Собрал и описал часть вещей, которые хочу продать. Всё — в Екатеринбурге, так что если вы в другом городе, то сорян, этот и несколько следующих постов не для вас 😞

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

Продаю кучу всего: от электросамоката и тостера до Яндекс Станции и компьютерного стола.

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

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

Все вещи можно забрать самовывозом (район Восточная–Ленина, 5 этаж без лифта). Небольшие вещи я могу отправить на Яндекс Такси (там есть тариф «Доставка») за ваш счёт.

Вроде, всё рассказал. Теперь у меня к вам три важных просьбы:
1️⃣ Зайдите на https://andgein.ru/garage/
2️⃣ Выберите то, что очень захотели, и напишите мне. Для подписчиков этого канала я даю скидку 10% ко всем ценам на сайте!
3️⃣ Расскажите о моей гаражной распродаже своим друзьям — скидывайте им эту ссылку или ссылку на конкретную вещь, о которой они давно мечтали. Публикуйте ссылки в чатиках и в рабочих соцсеточках. Да можете просто переслать это сообщение! Я буду вам очень благодарен ❤️

Добро пожаловать ко мне в гараж!⭐️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍3🥰2
Заметки Андрея
🎉 https://andgein.ru/garage Объявляю большую гаражную распродажу! Собрал и описал часть вещей, которые хочу продать. Всё — в Екатеринбурге, так что если вы в другом городе, то сорян, этот и несколько следующих постов не для вас 😞 Очень хочу, чтобы вещи попали…
Продолжаю распродажу!

Запустил упрощенную распродажу дешёвых (а иногда и бесплатных) вещей: https://andgein.ru/garage/cheap.html. Это особый раздел: все вещи здесь стоят не больше 1500 ₽, поэтому я чуть меньше парился:
🔘 не делал отдельных страниц для каждого товара, не искал красивые фотки и видео-обзоры. Все товары — в одном списке.
🔘 не смогу оформить доставку, только самовывоз
🔘 как и прежде, смогу вернуть деньги, если что-то не будет работать. Но не приму возврат, если товар просто не подойдёт
🔘 не принимаю бронь дальше, чем на сутки
(скидка 10% на эти товары тоже не действует, к сожалению)

Тем не менее, продаётся много годных вещей: например, нераспакованный Розеткус от студии Лебедева, IP-камера, блендер, микрофон и радужный поп ит 🙂

Выбирайте, спрашивайте подробности, бронируйте и приезжайте!

Но это не все обновления на сегодня. В основную распродажу я тоже добавил несколько вещей: лего с железным человеком и человеком пауком, видеокамеру со встроенным проектором и фотоаппарат из Лас-Вегаса! Ищите их на https://andgein.ru/garage/.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎1
Выступал в феврале на конференции EkbPy и в очередной раз рассказывал про новости из мира питона (какая удобная тема — каждый год можно новый доклад делать!). Рассказал про большой релиз питона 3.11, про оптимизации в CPython, про новые Exception Groups, про самые ожидаемые изменения в 3.12 и про несколько новых проектов в экосистеме питона.

Ну а здесь пишу, потому что наконец-то выложили запись того доклада: https://www.youtube.com/watch?v=osVUoYNAumA

Для тех же, кто не любит слушать, а любит быстро пробежаться глазами, запилили краткий конспект на Хабре: https://habr.com/ru/company/it_people/blog/724930/. Но всем, кто интересуется питоном, я советую именно посмотреть запись, так как там в разы больше всего интересного и полезного 🙃
🔥1621
Вы запомните этот день как день, когда меня уволили из Гугла

«Как? — удивитесь вы, — ты же должен был выйти на работу только через 10 дней?!»

Вообще я шёл к этой работе достаточно долго: отправил резюме в апреле прошлого года, к июню прошёл собеседования, дальше гугл приостанавливал наём из-за кризиса, и только в ноябре мне нашли подходящую команду. Затем я два месяца ждал визу, и вот, в ближайший понедельник должен был лететь в Лондон через Стамбул. Вещи проданы на гаражной распродаже, остальные выкинуты или отданы в переработку. Два чемодана, с техникой и одеждой, уже собраны и ждут своего часа. Вчера организовал «прощальную вечеринку» для друзей, вспоминали прошлое и обсуждали моё лондонское будущее.

И что же было дальше?

Я постарался описать произошедшее сегодня в заметке: https://andgein.ru/blog/all/20-i-worked-at-google-for-10-days-ru/

Я буду рад, если вы пошарите её. Если же вы или ваши знакомые нанимаете в Лондоне и готовы релоцировать людей, то буду рад пообщаться и о работе. Только давайте с понедельника, пожалуйста 💓
Please open Telegram to view this post
VIEW IN TELEGRAM
😱87😢39🤬19😨10🤯5🙏3🤝2🤮1
Заметки Андрея
Вы запомните этот день как день, когда меня уволили из Гугла «Как? — удивитесь вы, — ты же должен был выйти на работу только через 10 дней?!» Вообще я шёл к этой работе достаточно долго: отправил резюме в апреле прошлого года, к июню прошёл собеседования…
Хочу сказать огромное спасибо всем-всем-всем за поддержку! 🩷

Получил за вчера и сегодняшнее утро бесконечное количество добрых слов, и теперь точно уверен, что всё будет хорошо 🙂

Я бы хотел попросить вас распространить мою историю. Это можно сделать разными способами:

1. Скинуть ссылку на пост в блоге: русскую версию или английскую.
2. Репостнуть в твитере или на линкедине.
3. Проголосовать на хакерньюс.
4. Просто рассказать об этом своим друзьям, которым это может быть важно.

Почему я считаю, что рассказывать об этой истории — полезно? Вовсе не потому, что хочу «проучить» или «пристыдить» Гугл, боже упаси! Я уверен, ребятам самим сейчас капец как не просто...

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

Я ошибся, когда не продумал запасной план: я поставил все карты на трудоустройство в Гугл и переезд в Великобританию, и не оставил себе подготовленного отходного пути, который можно было бы немедленно использовать. Если хотя бы один человек, прочитав мой пост, не допустит такую же ошибку, то всё будет не зря.
62👍18🤗2👌1
Заметки Андрея
Вы запомните этот день как день, когда меня уволили из Гугла «Как? — удивитесь вы, — ты же должен был выйти на работу только через 10 дней?!» Вообще я шёл к этой работе достаточно долго: отправил резюме в апреле прошлого года, к июню прошёл собеседования…
Прошёл почти месяц с момента, как я узнал, что не еду в Лондон. Вам, наверно, интересно, чем всё закончилось.

Пост, который я написал в тот же день, неплохо разлетелся — на следующий день он какое-то время был на первой строчке ХакерНьюз, выжимку в линкедине полайкали почти тысячу раз, а заметка в блоге получила под 90000 просмотров. Я очень благодарен всем, кто распространял мою историю и писал поддерживающие сообщения❤️. Они очень помогли мне в первые дни.

Негатив тоже случался, кстати, но, к счастью, он был сконцентрирован и далёк от меня: например, пост в миллионом телеграм-канале Readovka набрал сотни токсичных комментариев в мою сторону 🤪

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

Скатался отдохнуть от всего этого в Турцию. Впервые побывал в All Inclusive отеле 🙃. Составил список дел, которыми давно хотел заняться, но не получалось из-за занятости работой. Займусь ими, если решу уйти в модный ныне саббатикл и не работать какое-то время.

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

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

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

Чем именно хочу заняться — расскажу позже, когда деньги до меня всё-таки дойдут. Получить крупную сумму денег на российский счёт от заграничной компании сейчас непростое дело, деньги «идут» уже вторую неделю и пока так и не пришли.

Да и не факт, что я не получу интересного предложения ещё до того, как деньги придут — в таком случае мой саббатикл может получиться достаточно коротким 🙈.

В любом случае всё хорошо. Я же обещал, помните? 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103👍1711🐳4👎1👏1🤗1
Расскажу вам ещё одну историю, связанную с моим «трудоустройством» в Гугл.

Ровно месяц назад, 7 апреля, случился тот самый звонок — мне рассказали, что мой контракт разорван.

10 апреля я должен был лететь в Лондон, но никуда не полетел — моя виза аннулировалась вместе с контрактом.

Спустя неделю после этого, 17 апреля, должен был быть мой первый рабочий день. В этот день, как ни в чём не бывало, Гугл доставил мне коробку с оборудованием. Четыре килограмма техники! Что именно внутри — я не знаю, коробку не открывали, но предполагаю, что Макбук Про и ещё 2-3 каких-то гаджета (судя по надписям и количеству штрих-кодов).

Проблема в том, что коробку доставили не то чтобы мне. В том смысле, что её доставили по тому адресу в Лондоне, где я планировал жить с 10 апреля. Как вы понимаете, я там не жил, так что ресепшен немножко удивился, получив коробку на имя человека, которого они никогда не видели, но посылку принял 🙃.

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

Вы не поверите, но сегодня, 7 мая, коробка всё ещё лежит на своё месте! Со мной больше никто не связался, так что пока этот Макбук так и живёт свою худшую жизнь в картонной коробке 📦.

Интересно, что бы они делали, если бы я ехал совсем один, по адресу знакомых людей бы не было, а курьер всё так же оставил бы посылку на ресепшене? Вот бы обрадовались владельцы квартиры внезапному подарку 🎁!

В комментариях принимаю ставки на угадывание даты, когда коробку всё-таки заберут. Кто угадает точнее всех, получит приз 🙂 .
😁20😱62👍2🤯2
Вы когда-нибудь задумывались, почему по-английски second — это и «секунда», и «второй»? Оказывается, ответ на этот вопрос объясняет также, почему градусы в математике делятся на минуты и секунды, а заодно почему музыкальный интервал тоже называется секундой!

Я вот почему-то раньше не задумывался, так что сейчас будет #не_знал_только_я.

Для слова «second» значение «второй» — исходное, восходит к простым латинским числительным: prīmus, secundus, tertius... Как же тут влезла единица времени?

Дело в том, что во втором веке нашей эры Птолемей использовал латинское выражение «pars minuta prima» (дословно «часть малая, первая») для обозначения одной-шестидесятой градуса. Делить градус на шестьдесят частей и давать этому название придумали ещё до него древние греки, они для этого использовали термин λεπτόν («малая часть»), но если я правильно понял, именно Птолемей первым придумал поделить получившуюся часть ещё на 60 частей, и таким образом доли пришлось пронумеровать: одну он назвал «pars minuta prima», а вторую — «pars minuta secunda», то есть «часть малая, вторая».

Да-да, секунда изначально называлась «минута-секунда», но со временем названия упростились, и от первого осталась только minuta, а от второго — только secunda. В английский же оно перешло как second.

(Ну а музыкальный интервал называется секундой просто потому что он тоже второй по счёту 🎵)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34😱84🔥3👏1🏆1