Как стать автором
Обновить
-5
@LyohaProtoread⁠-⁠only

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

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

Автоматизация релизов с помощью github-action и semantic-release. А так же использование Pre-commit в Github action

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

В этом посте будет описано практическое применение semantic-release для terraform модуля terraform-yandex-compute (Модуль Terraform, который создает вычислительные ресурсы в облаке Яндекса) c Github action.



А так же будет рассмотрено использование Pre-commit в Github action.


Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

8 правил, которые пригодятся при описании Git-коммитов

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

Иногда системы контроля версий напоминают групповые чаты: вроде бы все тут собрались по какому-то поводу и пишут о чём-то одном, но что именно пишут ― разобраться порой просто невозможно. Как и в чате, где на одно грамотное и полное сообщение наберётся сотня «гыгы, лол» и «))))))», в Git-коммитах на несколько внятных описаний приходится втрое больше чего-то такого:

c63b59c ЛОГИКА РАБОТЫ File[] filesList; (ВНИМАНИЕ!)

3775079 Правки самые последние NEW

71acc53 Правка последняя

Особенно это становится заметно во времена крупных доработок. Когда у разработчика много задач и горящих дедлайнов, есть соблазн плюнуть на написание нормальных комментариев к коммитам (commit messages) и применить золотое антиправило экономии времени «Разберусь потом». Но когда наступает это «потом», комментарии типа «03.03 – 04.03» или «последняя правка» не дают ничего, кроме чувства досады на себя в прошлом.

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

Читать далее
Всего голосов 11: ↑8 и ↓3+6
Комментарии42

Атрибуты HTML, которыми вы никогда не пользовались

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

В январе этого года Мэдисон Канна спросила у своих подписчиков в Twitter:

Какие языки/технологии вам бы хотелось изучить или узнать глубже в этом году?

Мой выбор: typescript, next.js, react, graphql, solidity, node — Мэдисон Канна (@Madisonkanna) January 3, 2022

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

Однако существует целая куча малоиспользуемых атрибутов, о которых я забыл, и, вероятно, целая куча атрибутов, о существовании которых я и не знал. Этот пост стал результатом моих исследований, и я надеюсь, что он окажется для вас полезным при создании страниц на HTML.
Читать дальше →
Всего голосов 75: ↑75 и ↓0+75
Комментарии9

Цивилизация Пружин, 1/5

Время на прочтение14 мин
Количество просмотров110K
### Часть 1. Золотое «Ку»

Лет в шесть мне попался в руки дедовский справочник[50] по грузовым автомобилям середины 20-го века. Добротный, напечатанный на гладкой плотной бумаге раритет. Единственное, что вообще осталось на память от деда после распада страны, войн и переездов.



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

Отец был прав. Для грузовиков 60-х годов это правило выполняется с довольно удивительной точностью:

Читать дальше →
Всего голосов 237: ↑230 и ↓7+223
Комментарии266

Рисуем красивые трейсбеки, перехватывая исключения в Python

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

Все мы тратим немало времени на отладку, копаясь в логах или читая трейсбеки (traceback, отчёты о трассировке стека). Любое из этих дел может оказаться сложным и длительным. Этот материал посвящён тому, как сделать трассировку стека и работу с исключениями как можно более простыми и эффективными.

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

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

Обзор ретро-футуристичного КПК DevTerm с Linux

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

Команда ClockworkPI выпустила интересный карманный девайс с ОС Linux, который легко собирается без паяльника, имеет экран с разрешением 1280х480, предлагает богатые возможности для кастомизации и даже оснащён неожиданным диковинным модулем — термальным принтером.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+46
Комментарии4

Проектирование непредсказуемого интеллекта в играх. Часть 2 — интеллект толпы

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

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

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

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

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

«Что я получу, если смешаю корень златоцветника и настойку полыни?» или 10 вопросов для Junior Python-разработчика

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

12 разных издательств отказывали Джоан Роулинг в публикации первой части Гарри Поттера. Многим программистам отказывали не меньше.

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

Нет, Open Source не означает «бесплатная поддержка»

Время на прочтение6 мин
Количество просмотров29K
Год назад разработчик опенсорсной программы Raccoon APK Downloader заявил, что отныне приём баг-репортов — это часть платной поддержки. Идея обсуждается до сих пор и вызывает споры по понятным причинам. С одной стороны, это как-то контринтуитивно… С другой стороны, определённая логика тоже есть… В общем, судите сами, вот оригинальная заметка Патрика Альбрихта, её бурное обсуждение и пояснение позиции по итогам обсуждения.

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

Юзер:	Здравствуйте, хочу зарепортить баг в вашей программе.
Я:		Отлично! Для этого откройте тикет, пожалуйста.
Юзер:	Но тикеты вроде входят в платный пакет?
Я:		И?
Юзер:	Просто хочу сказать, что ваша программа сломана, чтобы вы могли починить её.
Я:		Да, с вашей стороны это запрос на поддержку. Пожалуйста, откройте тикет.
Юзер:	…бл%$#%$...
Читать дальше →
Всего голосов 149: ↑146 и ↓3+185
Комментарии74

Сделайте Linux похожим на Windows 95

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

Темы и наборы иконок Linux, вдохновлённые другими операционными системами, существуют с тех пор, как в Linux появился графический интерфейс. Иногда эти темы становятся очень похожими на оригинал. Но… Что, если бы вы могли сделать свой рабочий стол Linux почти таким же, как Windows 95?

Читать далее
Всего голосов 57: ↑56 и ↓1+71
Комментарии82

Введение в мониторинг серверов с помощью Prometheus и Grafana

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

Мониторинг нужен всем: и серверам крупных технологических компаний и домашним Raspberry PI. Мониторинг позволяет узнать, когда сервер выходит из строя, когда заканчивается дисковое пространство и даже когда подходит время апгрейда.

В этой статье рассмотрим настройку базового мониторинга с помощью Prometheus, Node Exporter и Grafana.

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

Ретрожелезо в фильме «Брат»

Время на прочтение8 мин
Количество просмотров47K
«Брат» Алексея Балабанова не является моим любимым фильмом в смысле «часто пересматриваю с семьей». Безусловно талантливое кино настолько хорошо передает пасмурную эпоху середины девяностых, что смотреть его попросту больно. Дело даже не в сюжетной канве, не в героях и смысле их поступков, а в деталях. Когда понимаешь, что у тебя в комнате были похожие обои, а у дедушки стояла такая же радиола. Атмосфера «Брата» — она про приход новых времен, ценностей, вещей и людей. Даже если перемены безусловно к лучшему (а не как в фильме) — все равно немного жаль. Через 23 года после премьеры фильм сам по себе стал капсулой времени, зафиксировал какую-то условную реальность, которая местами очень хорошо резонирует с моими собственными воспоминаниями. Точно могу сказать, что мне повезло, и мои девяностые были лучше, чем в кино.


Но есть еще один момент: если отвлечься от кровавой драмы, замечаешь как плотно в сюжет «Брата» интегрированы актуальные на тот момент технические новинки. Анализировать такое — все равно, что идентифицировать марки машин и модели будильников в фильме «Назад в будущее». Занятие несколько странное, но вполне имеющее право на жизнь, а у таких людей, как я, вообще основное. Недавно я пересмотрел «Брата» на быстрой перемотке, по возможности постарался определить модели попадающих в кадр устройств, а на основе этого сделать выводы, абсолютно никак не влияющие на впечатление от фильма. Переиздание фильма в HD доступно на Ютюбе, скриншоты взяты оттуда. Началось все с простого вопроса: а какой у Данилы Багрова был CD-плеер?
Читать дальше →
Всего голосов 123: ↑119 и ↓4+159
Комментарии139

Современный Python: как начать свой проект с нуля при помощи Pyenv и Poetry

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

Рассказываем, как начинающему разработчику установить и управлять различными версиями Python с помощью Pyenv, подготовить свой проект и создать виртуальное окружение через Poetry.

Читать далее
Всего голосов 15: ↑11 и ↓4+8
Комментарии16

В поисках идеального ретроноутбука для DOS-игр

Время на прочтение10 мин
Количество просмотров12K
В процессе перетаскивания с места на место тяжеленного ЭЛТ-монитора я напомнил себе, что когда-то давно хотел коллекционировать только портатив. Ноутбуки, карманные компьютеры и мобильные телефоны попросту легче и компактнее. Я уже собрал достаточно приличное количество ноутбуков из 90-х, которые когда-то были моей недостижимой мечтой. Можно ли ограничиться ими и не заморачиваться с настольными ПК? Есть одна проблема: концепцию «ноутбука для геймеров» придумали относительно недавно. 25 лет назад портативный компьютер стоил примерно как бюджетная иномарка, и покупался, в абсолютном большинстве случаев, чтобы заработать еще больше денег, а не играть по вечерам в Doom. Но это тогда, а сейчас коллекционер компьютерного хлама вряд ли будет работать исключительно с электронными таблицами, базами данных и текстовым редактором в MS-DOS. А если хочется поиграть в Балду, Опасного Дейва, Принца Персии и Прехисторик — какой ноутбук будет самым лучшим?


Отвечу сразу: идеального ретроноутбука для ретроигр не существует. Но как отдельная дисциплина в коллекционерском многоборье, поиск наиболее совместимого (хотя бы!) с популярными DOS-играми портатива вполне оправдан. Это повод внимательнее посмотреть на характеристики и возможности старых устройств, а заодно еще раз восхититься многообразием технических решений той интересной эпохи. Вот этим я сегодня и хочу заняться. Если уж не предложить рабочее решение, то хотя бы описать основной набор проблем: поддержка звука, требования к процессору и, самое главное, бесконечные и разнообразные страдания с ЖК-дисплеями.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+22
Комментарии26

Немного о затенении по Фонгу

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

«Мы не можем ожидать, что у нас получится отобразить объект точно таким, каким он является в реальности, с текстурами, тенями и т.д. Мы надеемся только на то, чтобы создать изображение, которое достаточно близко к достижению определённой степени реализма».

Буй Тыонг Фонг

Буй Тыонг Фонг родился в 1941 году и стал учёным-информатиком во время Вьетнамской войны. Должно быть, ему сложно оказалось завершить своё обучение в токсичной среде 60-х, не говоря уже о том, что его призвали на фронт! Но ему удалось выжить и дожить до 1975 года, прежде чем его жизнь забрала лейкемия спустя всего два года после того, как он заложил для мира фундамент современной теории освещения и затенения: шейдер Фонга.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии0

Трёхмерная графика с нуля. Часть 2: растеризация

Время на прочтение47 мин
Количество просмотров56K
image


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

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

Тогда как это удаётся играм?

Ответ заключается в использовании совершенно иного семейства алгоритмов, которое мы исследуем во второй части статьи. В отличие от трассировки лучей, которая получалась из простых геометрических моделей формирования изображений в человеческом глазе или в камере, сейчас мы будем начинать с другого конца — зададимся вопросом, что мы можем отрисовать на экране, и как отрисовать это как можно быстрее. В результате мы получим совершенно другие алгоритмы, которые создают примерно похожие результаты.
Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии2

100 лет со дня рождения Станислава Лема

Время на прочтение2 мин
Количество просмотров19K
«Космос — лабиринт, созданный из лабиринтов. В каждом обнаруживается следующий. До тех мест, куда нельзя войти нам самим, мы добираемся с помощью математики. Мы создаем из нее средства передвижения по нечеловеческим областям мира. И еще — из математики можно конструировать внекосмические миры независимо от того, существуют ли они.»

image

Читая мудрого автора, проникаешься стилем его мышления. Сегодня 100 лет со дня рождения великого мыслителя. Уверен, что Лем оказал влияние (прямое или косвенное) на каждого автора Хабра. А 2021 год даже назван Годом Лема.

Станислав Лем пережил холокост, войну, медицинский университет, травлю со стороны американских фантастов (в тч и доносы Филипа Дика), советскую цензуру и… глубочайшее разочарование в человечестве. («Пока я не пользовался Интернетом, не знал, что на свете столько идиотов».)

Для меня Лем это прежде всего «Сумма Технологии» (чего стоит наблюдение, что природа и эволюция за 4,5 млрд лет не смогли реализовать колесо), а уж потом сатирические сай-фай произведения. У каждого свой Лем. Мне, например, больше всего понравился «Глас Господа», «Возвращение со звёзд» и «Фиаско». «Солярис» и «Непобедимый» вообще «не зашли». Очень понравилась его автобиография и прочие полезные заметки-размышления про технологии и природу человека/человечества.

Под конец жизни Лем занялся блоггерством (и даже стриммерством) в печатном формате, публиковался в Компьютерре и «Химия и Жизнь» (а если бы он был жив, то точно бы писал на Хабре). Пять лет назад я откопал из небытия и опубликовал на Хабре «Безопасна ли техника без опасности», сегодня тоже хочется почтить память человека, который сильно повлиял на мое мировоззрение.
Читать дальше →
Всего голосов 60: ↑58 и ↓2+77
Комментарии105

35 вопросов с собеседования JavaScript-разработчика

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

Это перевод статьи, в которой Abdo Amin приводит 35 вопросов на собеседованиях JavaScript-разработчиков, которые он сам задает. К вопросам прилагаются и ответы.

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

Ультимативный гайд по поиску утечек памяти в Python

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

Практика показывает, что в современном мире Docker-контейнеров и оркестраторов (Kubernetes, Nomad, etc) проблема с утечкой памяти может быть обнаружена не при локальной разработке, а в ходе нагрузочного тестирования, или даже в production-среде. В этой статье рассмотрим причины появления утечек в Python-приложениях, доступные инструменты для отладки и мониторинга работающего приложения, а также общую методику поиска утечек памяти.

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

5 писателей-фантастов, работавших программистами

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

Почти все писатели, приходя в литературу, уже имеют за плечами карьеру в той или иной области. Среди авторов встречаются представители самых разных профессий — журналисты, ученые самых разных специализаций, врачи, преподаватели, инженеры, бизнесмены… Список можно продолжать еще долго. Конечно, есть в писательском цехе и выходцы из IT-сферы, и вот несколько примеров программистов, которые сумели прославиться на ниве писательство, а конкретнее — в сфере научной фантастики. 

Читать далее
Всего голосов 27: ↑26 и ↓1+35
Комментарии23
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность