Pull to refresh
4
0
Алексей @HaJIuBauKa

Software Engineer

Send message

О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть

Level of difficulty Easy
Reading time 14 min
Views 34K


TL;DR для тех, кому некогда читать™:




Вот как всё начиналось
Total votes 191: ↑191 and ↓0 +191
Comments 79

Создание сеток шестиугольников

Reading time 25 min
Views 95K
image

Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
Читать дальше →
Total votes 92: ↑91 and ↓1 +90
Comments 25

Как я решил сделать игру, вдохновившись Heroes of Might and Magic, и потерял деньги (часть 1, 2)

Reading time 12 min
Views 65K
Данная история будет состоять из трёх частей, т.к. я выпустил три игры:

  • Beasts Battle
  • Necromancer Returns
  • Magicians Legacy

Часть‌ ‌1


Для тех кто предпочитает смотреть, а не читать, я подготовил видео этой статьи.


В каждом выпуске будут цифры по каждой игре, какой бюджет и доход принесли игры…

Сразу скажу, я – фанат серии Heroes of Might and Magic и King's Bounty. Играл почти во все части и аддоны, за исключением седьмой части, т.к. время идет, жизнь меняется и на игры времени не осталось.
Total votes 139: ↑138 and ↓1 +137
Comments 108

Super Heavy Starship. Первый пуск. Успешный старт и разрушение в полете. Первые мысли

Level of difficulty Medium
Reading time 7 min
Views 37K

20 апреля 2023 года прошел пуск самой мощной ракеты и, наверное, самой мощной машины, созданной человеком. Почти 7600 тонн-сил тяги или 74 МегаНьютонов силы подняли 5000 тонного монстра в небо.

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

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

Читать далее
Total votes 109: ↑102 and ↓7 +95
Comments 303

Книга «C# 10 и .NET 6. Современная кросс-платформенная разработка»

Reading time 12 min
Views 17K
image Привет, Хаброжители!

Шестое издание книги серьезно переработано, добавлены все новые функции, реализованные в версиях C# 10 и .NET 6.

Вы изучите принципы объектно-ориентированного программирования, научитесь писать, тестировать и отлаживать функции, реализовывать интерфейсы и наследовать классы. В издании рассматриваются API .NET, призванные решать такие задачи, как управление данными и их запросами, мониторинг и повышение производительности, а также работа с файловой системой, асинхронными потоками, сериализацией и шифрованием. В книге приведены примеры кода кросс-платформенных приложений, веб-сайтов и служб, которые вы можете создавать и развертывать на основе ASP.NET Core.
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 5

Интегрируем Яндекс Музыку в Visual Studio Code

Reading time 15 min
Views 19K

Представьте, что вы можете слушать свои любимые песни на Яндекс.Музыке, прямо из своего любимого редактора кода, не переключаясь между приложениями. Это уже не мечта, а реальность! В этой статье мы рассмотрим, как интегрировать Яндекс.Музыку в Visual Studio Code и наслаждаться любимой музыкой прямо во время работы.

Читать далее
Total votes 41: ↑41 and ↓0 +41
Comments 48

О применении RazorPages в консольных и десктопных приложениях

Reading time 17 min
Views 4K

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

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 13

О синглтонах и статических конструкторах

Reading time 8 min
Views 29K
Изначально автор хотел назвать эту статью следующим образом: «О синглтонах, статических конструкторах и инициализаторах статических полей, о флаге beforeFieldInit и о его влиянии на deadlock-и статических конструкторов при старте сервисов релизных билдов в .Net Framework 3.5», однако в связи с тем, что многострочные названия по неведомой автору причине так и не прижились в современном компьютерном сообществе, он (автор) решил сократить это название, чудовищным образом исказив его исходный смысл.

-------------------------

Любая реализация паттерна Синглтон в общем случае преследует две цели: во-первых, реализация должна быть потокобезопасной, чтобы предотвратить создание более одного экземпляра в многопоточном мире .Net; а во-вторых, эта реализация должна быть «отложенной» (lazy), чтобы не создавать экземпляр (потенциально) дорого объекта раньше времени или в тех случаях, когда он вообще может не понадобиться. Но поскольку основное внимание при прочтении любой статьи про реализацию Синглтона отводится многопоточности, то на «ленивость» зачастую не хватает ни времени не желания.

Читать дальше →
Total votes 80: ↑65 and ↓15 +50
Comments 35

Пять простых шагов для понимания JSON Web Tokens (JWT)

Reading time 5 min
Views 610K

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Comments 60

Датчик CO2 — прибор, который подскажет когда проветрить, чтобы думалось эффективнее

Reading time 7 min
Views 154K
image

Помните, на Хабре в разделе GTD была любопытная статья от BarsMonster о том, что кроме лени, прокрастинации и проблем с планированием времени может мешать эффективной работе и жизни?
Если кто пропустил эту статью — очень рекомендую!

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

В этой статье я поделюсь с вами результатами своих изысканий.
Проводил замеры в небольшой квартире, торговом зале на 100 квадратов, а также в небольшой приёмной одной компании. Кому интересно, добро пожаловать под Cut (осторожно, траффик).
Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 56

Регулярные выражения. Всё проще, чем кажется

Reading time 7 min
Views 100K

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

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

Читать далее
Total votes 49: ↑45 and ↓4 +41
Comments 71

Лучшее компьютерное кресло: табурет и здоровые мышцы спины

Reading time 5 min
Views 91K

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

Такая поддержка служит заменой базовой способности человека держать осанку с прямой спиной и поднятой головой без особых усилий, не уделяя этому сознательного внимания. Баг это или фича — зависит от контекста. На дороге — фича, потому что при столкновении даже на городских скоростях никакие мышцы, никакая богатырская сила не удержит тело человека в безопасном положении. В помещении поддержка при наборе действий «присесть-привстать-наклониться-повернуться-потянуться» становится «поддержкой», превращаясь в настоящий баг, который обкрадывает человеческое тело от необходимой ему минимальной нагрузки, чтобы оставаться полноценно функциональным в любом возрасте.
Что лучше для здоровья?
Total votes 75: ↑66 and ↓9 +57
Comments 152

Вертебро-базилярная недостаточность — болезнь программиста с тысячью лиц

Reading time 13 min
Views 24K


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

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

Однако в то же время все перечисленные симптомы, столь непохожие друг на друга, характерны и для вертебро-базилярной недостаточности (ВБН), а причиной развития данного недуга может оказаться искривление шейного отдела позвоночника, вызванное неправильной осанкой при длительной работе за компьютером. Что же это за болезнь и как не допустить ее развития? Об этом мы и расскажем в сегодняшнем материале.
Читать дальше →
Total votes 52: ↑50 and ↓2 +48
Comments 24

Чернобыль ч.1. РБМК-1000

Reading time 13 min
Views 61K

Автор: Александр Старостин

Авария на Чернобыльской атомной электростанции, произошедшая в 1 час 23 минуты 47 секунд 26 апреля 1986 года, стала одной из крупнейших техногенных катастроф в истории человечества. Порядка 115 тысяч человек было выселено из зоны отчуждения. Более 600 тысяч человек приняли участие в ликвидации аварии. Загрязнено более 200 тысяч квадратных километров, из оборота были выведены 5 миллионов гектаров земель. Значительному загрязнению подверглись территории Украины, Белоруссии (по некоторым данным, загрязнению подверглось 20% площади этой страны), России. Кроме того, чернобыльская радиация была обнаружена в северной и западной Европе, а также у берегов Северной Америки. Масштабы аварии повергают в шок.

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

Это первая часть цикла, в которой описывается устройство, принцип работы и особенности внедрения реакторов "чернобыльского типа".

Читать далее
Total votes 53: ↑49 and ↓4 +45
Comments 58

10 расширений для VS Code, без которых я не могу программировать

Reading time 3 min
Views 140K
VS Code — мой любимый редактор кода. Это — самый популярный из существующих редакторов, возможности которого можно расширять практически до бесконечности. И, что удивительно, разработала его компания Microsoft. Я полагаю, что ни один из других редакторов и ни одна из других IDE не может дать разработчику хотя бы половину того, что способен дать ему VS Code. Одна из сильных сторон VS Code — это система расширений. Она позволяет создавать расширения буквально на все случаи жизни. Хочу рассказать вам о моём топ-10 расширений для VS Code.


Читать дальше →
Total votes 73: ↑47 and ↓26 +21
Comments 70

JavaScript и TypeScript: 11 компактных конструкций, о которых стоит знать

Reading time 12 min
Views 41K
Существует очень тонкая грань между чистым, эффективным кодом и кодом, который может понять только его автор. А хуже всего то, что чётко определить эту грань невозможно. Некоторые программисты в её поисках готовы зайти гораздо дальше других. Поэтому, если нужно сделать некий фрагмент кода таким, чтобы он был бы гарантированно понятен всем, в таком коде обычно стараются не использовать всяческие компактные конструкции вроде тернарных операторов и однострочных стрелочных функций.

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



В этом материале я собираюсь разобрать некоторые весьма полезные (и иногда выглядящие достаточно таинственными) компактные конструкции, которые могут попасться вам в JavaScript и TypeScript. Изучив их, вы сможете пользоваться ими сами или, как минимум, сможете понять код тех программистов, которые их применяют.
Читать дальше →
Total votes 48: ↑33 and ↓15 +18
Comments 17

Как я библиотеку для сервиса «Яндекс.Музыка» писал

Reading time 6 min
Views 55K

Введение


Обо мне


Всем привет, я обычный учащийся по специальности "техник-программист". С детства увлекаюсь компьютерами, с класса 7-го начал познавать само программирование. Являюсь владельцем подписки на Яндексу Музыку уже больше года и в целом доволен сервисом (правда сейчас в плейлисте дня сплошные повторы).


Предыстория


Уж не помню точно, из-за чего я решил поискать официальную документацию API данного сервиса, вроде бота хотел для Telegram написать, но столкнулся с тем, что её нет… Спустя некоторое время наткнулся на issue в репозитории yandex/audio-js. Там ребятки задают точно такой же вопрос, как и я: "А где API?". Не многие горят желанием слушать музыку через браузер, они хотят приложение, но приложения под Linux тоже нет! Интегрировать к своему любимому плееру невозможно!


Тут я загорелся идеей сделать это. Естественно, мне нужно как-то работать с сервисом, городить костыли вокруг веб-приложения не вариант. Я понимал, что имея такой сервис, имея мобильные приложения и приложения под Windows (из Microsoft Store) просто невозможно не иметь своё внутреннее API для взаимодействия. Я оказался прав!


Обязательно к прочтению перед основной частью


Я отдаю себе отчёт в том, что, изучая их непубличное API я роюсь в чужих грязных вещах. Ниже будут описаны различные спорные моменты, решения разработчиков и в целом то, как это написали, как они этим пользуются. Местами я был просто шокирован, но я уверен, что если они так сделали, то на это были свои причины! Не будем забывать, что это никто не должен был видеть. Так же хочу сказать, что всё написанное ниже моё мнение. Вы можете с ним согласить или нет.

Читать дальше →
Total votes 62: ↑61 and ↓1 +60
Comments 46

Сегодня большинство Windows-игр отлично запускаются под Linux. Спасибо, Proton

Reading time 7 min
Views 77K

Некоторые популярные игры, которые пока не внесены официально в белый список Steam для Linux, но получили много положительных отзывов в ProtonDB, то есть реально запускаются и хорошо работают

10 декабря 2020 года состоялся релиз долгожданной игры Cyberpunk 2077, а за день до этого вышла новая версия Proton 5.13-4 с поддержкой Cyberpunk 2077. То есть пользователи Linux смогли играть в Cyberpunk 2077 с первого же дня. Это наглядный пример, насколько великолепная ситуация сейчас с поддержкой игр на Linux-десктопах.

Если вам говорят, что Linux — отличная платформа для игр, то это уже не преувеличение! За такое положение вещей мы должны благодарить Proton.
Total votes 59: ↑57 and ↓2 +55
Comments 210

Что лучше: дистрибутив Linux в яблочном стиле или нормальный хакинтош?

Reading time 6 min
Views 71K

Дистрибутив Trenta OS для публичного тестирования обещают выпустить в начале 2021 года

На вкус и цвет товарищей нет, но некоторым нравится интерфейс macOS. При этом они не хотят погружаться в закрытую экосистему, где Apple может запретить любую программу на компьютере, отслеживая запуск каждого бинарника: хэши отправляются в Apple в реальном времени. Разумеется, для нашей безопасности.

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

Выход есть: свободная и универсальная система Linux поддерживает любой GUI, в том числе «яблочный». Есть особые дистрибутивы с интерфейсом в стиле macOS или iOS — специально для пользователей с повышенными эстетическими запросами. И для тех, кто стремится вырваться из «огороженного сада» Apple, не теряя при этом чувство прекрасного.
Total votes 84: ↑59 and ↓25 +34
Comments 441

От WPF к Авалонии

Reading time 8 min
Views 16K

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

Под катом мы разберем отличия Авалонии от WPF. Что нужно знать людям, переходящим с WPF на Авалонию? В чем преимущества нового фреймворка, а в чем его недостатки по сравнению с WPF?

Читать далее
Total votes 29: ↑29 and ↓0 +29
Comments 20

Information

Rating
Does not participate
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity