Pull to refresh
4
0.1
Сергей @Semy

User

Send message

Популярные расширения для VS Code 2022

Reading time2 min
Views61K

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

На текущий момент VS Code остается средой разработки, которая доступна в период санкций, когда JetBrains отказался продавать лицензии, про Visual Studio даже не узнавал. Сам использую VS Code много лет в разных стеках. VS Code предоставляет возможности разработки практически во всех направлениях: веб-разработка, мобильные приложения, часто встречаются приложения для встраиваемых систем. Ниже перечислены наиболее популярные расширения, которые облегчают разработку приложений.

Atom One Dark Theme

При всем изобилии тем в VS Code тема Atome One Dark наиболее популярная, потому-что имеет наиболее удачный контраст и прекрасно выглядит.

Читать далее

Изменяемые и неизменяемые объекты в Python

Reading time4 min
Views102K

Все в Python – это объект. Каждый новичок должен сразу усвоить, что все объекты в Python могут быть либо изменяемыми (мутабельным), либо неизменяемыми (иммутабельным). 

Читать далее

Под капотом сортировок в STL

Reading time7 min
Views24K


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


При написании статьи я использовал стандарт C++17. В качестве реализаций рассматривал GCC 10.1.0 (май 2020) и LLVM/Clang 10.0.0 (март 2020). В каждой и них есть своя реализация STL, а значит и std алгоритмов.

Читать дальше →

Назад в будущее? Квантовый ластик с отложенным выбором

Reading time8 min
Views38K
На Хабре периодически появляются статьи и комментарии о чудесах квантовой физики: квантовом ластике и слабых измерениях. К сожалению, слишком часто о них говорят как о загадочных и непонятных явлениях, позволяющих творить чуть ли не магию, хотя на самом деле нет в них ровным счетом ничего удивительного. В этом посте я перевожу статью Шона Кэрролла о квантовом ластике с отложенным выбором. Пусть он будет отправной точкой для обсуждения в комментариях всяких хитростей квантовой механики.

Атаки на сеть. Часть 1

Reading time6 min
Views29K

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

Читать далее

Следим за своей статистикой OpenVPN

Reading time4 min
Views54K

За последние пару недель я встретил огромное количество статей с заголовками "Поднимаем свой VPN" или "Настройка OpenVPN в N шагов". На этой волне я тоже решил попробовать сделать VPN для себя и близких - лишним такой опыт (да и сам VPN) точно не будет. Для этого я прикупил один из самых дешевых VPS с заграничным IP и минимальными характеристиками. Такое удовольствие мне обошлось в ~250р за месяц.

Только после пары часов возни с конфигами и сертификатами и полной настройки VPN, в панели управления сервером я обнаружил, что максимальная скорость канала - 10Мбит/с. Получилось неловко, конечно, но тем не менее, мне стала интересна задача мониторинга трафика и возможность предупредить себя, если вдруг скорость трафика через VPN приблизится к пороговому значению.

Читать далее

Как выбрать подходящий Go-роутер? (с блок-схемой)

Reading time9 min
Views18K

Когда вы начинаете разрабатывать веб-приложение с применением Go, один из первых вопросов, которым вы, вероятно, зададитесь, — “Какой роутер мне следует использовать?”.

И это не такой простой вопрос, как может показаться сначала. Доступно более 100 различных роутеров с разными API, функциями и поведением. Для этой статьи я оценил 30 самых популярных из них и создал краткий список лучших вариантов вместе с блок-схемой, которую вы можете использовать, чтобы сделать свой выбор.

Читать далее

Почему я начал использовать аннотации типов в Python – и вам тоже советую

Reading time7 min
Views20K

С появлением подсказок типов (type hints) в Python 3.5+ добавилась опциональная статическая типизация – поэтому эти подсказки так мне нравятся. Теперь я аннотирую ими все мои проекты.

Читать далее

Опасные слова: чего не стоит говорить при носителях английского

Reading time5 min
Views81K

Любите Захер? Я люблю. Но испытываю на этот счет смешанные чувства. Если бы Франц Захер запускал производство своего торта в сегодняшней России, добрые люди посоветовали бы ему подумать над сменой названия. Так же, как подсказали в свое время сменить фамилию первому болгарскому космонавту Георгию Какалову.

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

Читать далее

Для чего же всё таки нужны honeypot'ы? Гайд по установке T-pot

Reading time6 min
Views11K

Цель honeypot в работе ЦМР — навлечь на себя атаку или несанкционированное исследование. Такое средство позволяет изучить стратегию злоумышленника и определить, каким образом могут быть нанесены удары по реально существующим объектам безопасности.

Рассмотрим же некоторые поближе и даже установим один из них!

Читать далее

Доказательная медицина в оториноларингологии за последние 10 лет (мифы и что вы не знали про это)

Reading time13 min
Views47K

Этот актёр часто используется как наглядное пособие. В настоящий момент у его персонажа подозрение на искривление перегородки носа.

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

Для примера, если при гайморите предлагают схему «рентген — пункция — антибиотики», то поздравляю, вы в надёжных руках врача образца мышления 2010 года. В 2020-х уже гораздо чаще назначается домашнее промывание (не «кукушка»), безрецептурные анальгетики и интраназальные глюкокортикоиды.

Всего за 10 лет поменялись и технологии, и подход. Вот примеры изменений:

  1. Больше нет операций вслепую. Аденоиды удаляют с помощью эндоскопа: так нет риска повредить трубные валики, создать грубые рубцы или оставить часть лимфоидной ткани. Под контролем камеры проводят также септопластику.
  2. Септопластика избавилась от большей части ада после операции: например, марлевые тампоны, которыми фаршировали пациента через нос, заменены на адекватные силиконовые трубки, которые дают возможность дышать и спокойно их доставать из носа.
  3. Сильно изменились показания к антибиотикам.
  4. Ларингит не лечат ингаляциями минералки и «пшикалками». Потому что доказано, они ни разу не помогают. Но зато могут спровоцировать удушье. Современный рецепт — голосовой покой и много воды.
  5. Отит — это не кабинет физиотерапии и синяя лампа над ухом, а капли и таблетки по рецепту. Уже доказано, УФ-лучи не проникают вглубь барабанной перепонки и не локализуют воспаление.
  6. Классический рентген по любому поводу тоже ушёл в прошлое, на практике используется КТ, в частности позволяющее видеть воспаления в клиновидных пазухах.

Читать дальше →

Почтовый бот

Reading time12 min
Views20K
Электронная почта один из самых используемых инструментов для обмена информацией, постановки и выполнения задач. Зачастую поступающие письма носят повторяющийся характер предоставления какой либо однотипной информации меняющейся с течением времени. К таким задачам можно отнести:

  1. Различного рода агрегацию информации из нескольких писем в единый формат данных, отправка к определенной дате или напоминание об отправке.
  2. Запросы, связанные с необходимостью проверить информацию в какой либо системе/базе данных и ответным письмо направить ее запрашивающему.
  3. На основании письма внести информацию в какую-либо систему.
  4. Произвести какие либо вычисления и отправить данные.
  5. С какой либо периодичность отправлять отчеты, файлы и много другое.

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

Почему я переписал прошивку для клавиатуры с Rust на Zig: слаженность, мастерство и развлечение

Reading time16 min
Views9.4K

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

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

После неоднократных предложений от моего более подкованного в Rust-и-вычислительной технике друга Джейми Брэндона, я переписал прошивку на Zig, и вышло очень удачно.

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

Читать далее

Управление светодиодными индикаторами с помощью регистров сдвига с токовым выходом

Reading time19 min
Views30K

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

Читать далее

Оптимизация размера Go-бинарника

Reading time6 min
Views12K

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

Читать дальше →

Python: Логируем как профессионалы

Reading time13 min
Views54K

Часто вижу, что помимо обработки исключений, люди мучаются кое с чем еще, а именно с логированием.

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

Читать далее

Golang-дайджест № 10 (1 – 31 октября  2021)

Reading time6 min
Views6.2K

Свежая подборка новостей и материалов

Интересное в этом выпуске

Выпущены Go 1.17.2 и Go 1.16.9, выпущен Ebiten 2.2.0 с поддержкой Nintendo Switch, анонс опроса разработчиков Go в 2021 году, какой роутер Go мне использовать, GoPlus (Go +)

Приятного чтения!

Читать далее

Golang-дайджест № 3 (1 – 31 марта 2021)

Reading time4 min
Views6.3K

Свежая подборка новостей и материалов

Интересное в этом выпуске

монитор горутин в терминале, пикселизатор изображений, проверка безопасности Go-кода, dropbox load balancing 

Приятного чтения!

Читать далее

IO_URING. Часть 1. Введение

Reading time13 min
Views39K

Всем привет! Наверное, многие уже слышали о новом интерфейсе ядра Linux — io_uring. Это новый способ работы с асинхронным I/O (и не только) в Linux. Кстати, новый он не только из-за даты выхода в свет, но и в плане подходов, которые предлагает разработчику.

Заинтересовало? Более подробно разберемся под катом.

Читать далее

Ультра быстрый Cron с шагом в миллисекунду, или когда тестовые задания такими прикидываются

Reading time25 min
Views23K

Давным-давно наш коллега @novar разместил на Хабре статью с описанием вот такого незатейливого ТЗ, полученного им от потенциального работодателя:

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

Хочу предложить алгоритм, приближающийся к O(1) во всех возможных ситуациях, вместо оригинального O(n). Интересующихся прошу под кат.

Ах да. Если вы тот самый работодатель, вот готовый код под ваше ТЗ. Правда на Java, а не на C#. Но вы же не думали, что всё будет так просто?

Читать далее

Information

Rating
5,929-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity