Как стать автором
Обновить
Just Habra User @justhabrauserread⁠-⁠only

Пользователь

Отправить сообщение

Исследование влияния сопроводительного письма на приглашение к собеседованию. Или как я сделал 1000 откликов на вакансии

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров43K

Однажды понадобилось мне заняться поиском работы и, вдруг, вспомнил, что думал проверить одно утверждение от HR в разных статьях: "Пишите сопроводительные письма". Нужно их писать или нет, я решил проверить, совместив сразу полезное с полезным. В этой статье покажу вам аналитику, которую получилось собрать и результаты моего исследования, и так же расскажу несколько личных интересных рассказов о своём опыте собеседований.

Читать далее
Всего голосов 98: ↑94 и ↓4+118
Комментарии144

Telegram Боты на Aiogram 3.x: Простой бот на вебхуках с локальным запуском и деплоем

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров4.4K

Друзья, приветствую!

Если вы следите за моими статьями, то знаете, что на Хабре у меня опубликовано более 10 объемных публикаций на тему разработки телеграмм ботов через замечательный Python-фреймворк Aiogram 3.

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

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

Из необычного, я продемонстрирую как без трудна запускать бота на вебхуках с локального компютера и как, в пару команд, развернуть такого бота на удаленном хостинге, не заморачиваясь с NGINX, протоколами, настройками серверов и прочее.

В общем, будет интересно и позновательно!

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии7

Самое понятное объяснение парадокса близнецов

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров49K

В комментариях к моей предыдущей статье и в комментариях к ролику было много вопросов и некорректных замечаний по поводу парадокса близнецов. Как оказалось, мое объяснение оказалось не настолько понятным, как я надеялся, поэтому в этой статье я решил максимально наглядно, подробно и последовательно объяснить парадокс близнецов и ответить на некоторые другие вопросы.

Кратко напомню суть парадокса

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

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

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

Читать далее
Всего голосов 85: ↑81 и ↓4+98
Комментарии408

Вычисляем миллиардное число Фибоначчи менее чем за 7 секунд

Время на прочтение3 мин
Количество просмотров23K

Мы будем считать 1000,000,000 число Фибоначчи со всеми цифрами. Для этого я буду использовать продвинутый алгоритм для поиска чисел Фибоначчи. Тут не будет базовых алгоритмов на подобии матричного возведения в степень и проще. Но эта статья будет понятна и школьнику :-)

Читать далее
Всего голосов 114: ↑113 и ↓1+136
Комментарии46

Алкогольное опьянение. Как влияет на мозг, как справиться с похмельем и есть ли в алкоголе зерно пользы?

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.2K

Люди, которые говорят, что пить надо больше, и люди, которые говорят, что пить надо меньше, правы в одном. Пить надо. А вот что именно, в каких дозах и стоит ли уходить в алкогольное опьянение — мы и попробуем разобраться.

Читать далее
Всего голосов 21: ↑15 и ↓6+14
Комментарии31

Туннель IPv6 через IPv4 для обхода замедления Youtube на уровне роутера

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров162K

Туннели IPv6 через IPv4 помогают получить доступ к сайтам и сервисам, которые используют новый протокол IPv6, даже если у вас старый IP‑адрес версии 4 (IPv4). Чтобы его настроить, нужно зарегистрироваться на сайте провайдера, который предоставляет такую услугу (его еще называют туннельный брокер), и использует технологию 6in4. После регистрации вы получите все необходимые данные для подключения.

Одно из преимуществ данного способа заключается в том, что не потребуется настраивать что-то дополнительно на других устройствах в локальной сети, не сломается работа на AndroidTV итд.

Туннель работает только с белым IP‑адресом (некоторые провайдеры выдают его бесплатно, некоторые за определённую сумму в месяц).

Читать далее
Всего голосов 45: ↑44 и ↓1+54
Комментарии116

Проектирование спецификации OpenAPI

Время на прочтение19 мин
Количество просмотров13K

Привет, Хабр! Меня зовут Виктория Юльская, и я старший системный аналитик в Ozon.

Я думаю, здесь найдётся много людей, которые хоть раз работали с документацией API в Confluence. Да-да, те самые километровые страницы на каждый метод — с описанием всего и вся в виде текста, таблиц, диаграмм последовательности и т. д.

Зачастую такая документация API в Confluence устаревает ровно в тот момент, как её закончили писать. После передачи задачи в разработку, как только что-то непонятно, куда все идут? Правильно, к аналитику — «А как это работает? А что это значит? А что если...?».

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

Есть ли более эффективный способ ведения и поддержания документации API в актуальном состоянии? Давайте разбираться.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии7

Как загрузить, установить Office 2024 LTSC с сайта Microsoft и активировать навсегда?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров252K

Десять лет назад я писал пару статей - Как загрузить последний Office с сайта Microsoft без всякого App-V / Хабр (habr.com) и Как загрузить Microsoft Office 16 с сайта Microsoft / Хабр (habr.com), при помощи на тот момент еще мало кому известным Office Deployment Tool.

Время бежит стремительно, за Office 2016 выходит Office 2019, Office 2021, и вот сейчас подошло время для Office 2024. Что ж, посмотрим, что поменялось в плане загрузки, установки и активации продукта за десять лет.

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

Microsoft давно перешел на систему распространения продуктов семейства Office по разным, так называемым, "каналам" (channels), в зависимости от того как часто вы хотите получать нововведения и обновления.

Ключевым отличием в текущей загрузке и установке Office от того, что было актуально во времена Office 2016, является то, что вы должны определить, каким каналом распространения вы собираетесь пользоваться, - то есть с какого канала собираетесь устанвливать сам продукт. Тем, кто хотел бы подробно изучить разные каналы распространения я предложу почитать первоисточник - Обновления Office - Office release notes | Microsoft Learn. Остальным кратко резюмирую - Microsoft сейчас предпочитает всем продать подписку на Microsoft 365 (то, что ранее называлось Office 365), с регулярно обновляемыми возможностями в течении так называемой Современной политики жизненного цикла. По этой же современной политике распространяется пользовательские (коробочные, ретейл) версии Office 2021. Office 2021, например, поддерживается лишь до 13 октября 2026. А более старые версии следуют, так называемой политике фиксированного жизненного цикла, в рамках которой Office 2016 и Office 2019 поддерживаются лишь до 14 октября 2025. В целом, они не перестанут работать после, однако, перестанут обновляться. И у тех из вас, кто пользуется почтовыми сервисами на базе Microsoft Outlook.com или Office365, а возможно и пользователям Microsoft Exchange, с обновлениями выпущенными после 14 октября 2025 уже пора призадуматься об обновлении.

Читать далее об установке Office 2024
Всего голосов 166: ↑157 и ↓9+173
Комментарии256

Обзор ноутбука Ninkear N15 AIR: 15,6", Intel N95, 16GB\512GB

Время на прочтение10 мин
Количество просмотров3.6K

Ninkear N15 AIR это легкий ноутбук начального уровня, который без проблем справляется с повседневными пользовательскими задачами и может рассматриваться как домашнее устройство для мультимедиа и интернета, а также для работы или дистанционного обучения. Главный магнит этого ноутбука — невысокая цена, которая сопоставима со стоимостью какого-нибудь средне-бюджетного смартфона. При этом N15 AIR не простая «печатная машинка», а вполне работоспособный ноутбук, который можно использовать для программирования, видео монтажа или офисных задач. Слабых мест у него естественно также хватает, ведь бюджетный класс это всегда компромиссы. Вот и разберем все его плюсы и минусы, а также проведем подробное тестирование, чтобы потенциальный пользователь получил всестороннюю информацию.

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии4

О! Фридайвинг: как я стал фридайвером и почему это больше чем хобби

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров8K

Аригато в хату! Меня зовут Денис Божок, я руководитель департамента платформенной разработки в Островке, но сегодня, внезапно, я здесь не как технарь, а как фридайвер. Так что все, кто давно задавался вопросом, чем занимаются айтишники в свободное время, в чём разница между погружениями с баллоном и без; безопасно ли нырять на глубину только с маской; какой мировой рекорд по задержке дыхания; как прокачаться, если хочешь профессионально плавать с маской; что нужно купить и как получить благословение Посейдона, то сегодня про всё это и расскажу. 

Нырнуть глубже
Всего голосов 20: ↑17 и ↓3+16
Комментарии31

Эволюция подсчета в Python

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров10K

У одной задачи может быть несколько способов решения. Возьмем классическую задачу программирования — задачу подсчета, в которой мы считаем, сколько раз каждый элемент списка встречается в нем. Способ решения этой задачи на Python менялся по мере развития языка. Именно об этом мы будем говорить в этой статье.

Большинство из нас присоединилось к программированию на Python с его третьей версии. Однако мы начнем с Python 1.4. Пристегните ремни, отправляемся в далекое прошлое — в 1997 год!

Читать далее
Всего голосов 55: ↑53 и ↓2+62
Комментарии14

Почему Fedora CoreOS — это container optimized дистрибутив

Время на прочтение9 мин
Количество просмотров9.8K

Fedora CoreOS на официальном сайте представлена как container optimized, container-focused, container based и так далее OS. Но что это вообще значит? Там предустановлен какой-то container runtime? А еще что? В этой статье попытаемся разобраться.
Читать дальше →
Всего голосов 42: ↑42 и ↓0+52
Комментарии2

Python — Эволюция создания объектов (первая часть)

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров7.4K

Как упростить себе жизнь или почему ты должен уметь создавать объекты правильно?

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

В вопросе "как создавать объект?" я сторонник эволюционного подхода. Я не стремлюсь использовать порождающие паттерны при первой возможности. У меня есть простой набор вопросов самому себе, который помогает мне принять решение, стоит ли изменить способ создания объекта или нет.

Читать далее
Всего голосов 11: ↑10 и ↓1+10
Комментарии10

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров54K

При сборке квадрокоптеров и других БПЛА обычно используют готовую плату полетного контроллера, содержащую все необходимые датчики и периферию, и готовую полетную прошивку, например, Betaflight, ArduPilot или PX4. Полетный контроллер управляет моторами квадрокоптера и обеспечивает стабильный полет.

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

Читать далее
Всего голосов 312: ↑312 и ↓0+371
Комментарии132

Моё лучшее вложение 13 тыс. рублей (какой ботаник без микроскопа?)

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров20K


Сидел я тут недавно перед монитором и размышлял чем бы себя ещё порадовать, а надо сказать, что порадовать меня не так просто (смайл). Долго я размышлял и решил остановить свой выбор на… микроскопе. Почему бы и нет? У меня уже давно стояло в планах оснастить лабораторию подобным инструментом.

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

Далее я попробую простыми словами описать что это такое и приведу примеры фото и видео с этого микроскопа, после которых вы всё бросите закажете себе такой же (или даже лучше).
Читать дальше →
Всего голосов 75: ↑73 и ↓2+96
Комментарии62

Async iterator timeout в Python

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.4K

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

В числе прочих задач, решаемых при реализации возможности стриминга, существует задача определения ситуации, в которой сервис, исполняющий запрос, упал с ошибкой, и больше не может продолжать стриминг ответов. В таком случае мы даже не можем понять что именно произошло - обработка и отдача очередной порции ответа будет, но задерживается, либо же передача прервалась, и нужно сообщить об ошибке “наверх”. В протоколе HTTP, например, для детерминирования корректной вычитки ответа может быть использован заголовок Content-Length. Достаточно посчитать количество вычитанных из сокета байт тела запроса\ответа, и сравнить со значением заголовка. Сходится - мы все получили, не сошлось и сокет закрыт - ошибка. Однако вариант решения с заранее заданным количеством данных в первой порции ответов не является универсальным, поскольку не во всех случаях можно точно понимать, сколько именно данных будет передано. Да и архитектура с использованием брокеров сообщений предполагает постоянное поддержание соединения, поэтому мы можем только знать, что из такой-то очереди поступают ответы на ранее сделанный запрос, и в каком-то из ответов будет метка окончания, как маркер того, что запрос обработан и ответ выслан и получен полностью, а если такого маркера еще не получено - остается продолжать ждать. Но ждать можно бесконечно.

Читать далее
Всего голосов 10: ↑9 и ↓1+13
Комментарии3

Универсальные типы в python

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров9.5K

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

Меня зовут Саша, и в своей работе часто сталкиваюсь с ситуациями, когда нужно создавать классы, работающие с различными типами, и при этом избегать дублирование кода, а также получать актуальные подсказки от type checker'а.

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1+16
Комментарии6

Бэкапы для самых маленьких и матерых

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров15K

Представьте: вы недавно основали небольшое веб-приложение. Но только он стал расти как полноценный проект — Бац! — серверы легли, а данные не сохранились. Нужно было делать бэкапы. Казалось бы, совет достаточно простой и базовый, но какой тип резервного копирования выбрать? И как правильно к нему «подойти»?

Сегодня — международный день бэкапов. Кажется, это отличный повод, чтобы вспомнить, почему резервное копирование так важно, какое оно бывает и как его настроить. Подробности под катом!
Читать дальше →
Всего голосов 27: ↑26 и ↓1+34
Комментарии10

Философия и физика времени. Презентизм и этернализм. Пространство-время в СТО и ОТО

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров19K

Время (time) – наиболее часто употребляемое слово в английском языке и третье по употребляемости в русском. Оно есть и в любом другом языке, потому что синхронизация действий во времени так же важна, как и их координация пространстве. Не зная точного времени, невозможно упорядочить свою жизнь и спланировать её наперёд. Если в древние времена можно было полагаться на природные циклы и внутреннее ощущение времени, то в наши дни нужно постоянно иметь при себе часы или телефон. Время – важнейшее из абстрактных понятий, которое мы произносим каждый день. Над проблемой времени хотя бы раз в жизни задумывался каждый мыслящий человек, и на эту тему написано огромное количество философской и научной литературы. Тем не менее, никто не скажет наверняка, что же такое время. Оно реально, или это иллюзия, порождённая нашим сознанием? Существует ли время независимо от пространства и материи? Что первично: время или движение? Возможно ли время без движения и движение без времени? Что определяет разницу между прошлым и будущим? Время необратимо, или нам так только кажется?

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

Читать далее
Всего голосов 17: ↑14 и ↓3+15
Комментарии66

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложностиСредний
Время на прочтение46 мин
Количество просмотров224K

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

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

Читать далее
Всего голосов 445: ↑437 и ↓8+489
Комментарии364
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность