Pull to refresh
0
0.2
Send message

Чистая архитектура для начинающих

Reading time7 min
Views9.9K

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

Читать далее
Total votes 21: ↑12 and ↓9+7
Comments32

Пилим движок Arcanum. Урок 01. Начало

Level of difficultyEasy
Reading time6 min
Views11K

Приветствую, Хабравчане!

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

Читать
Total votes 31: ↑31 and ↓0+33
Comments22

Быстрый поиск по разной документации

Level of difficultyEasy
Reading time2 min
Views3.4K

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

Сначала мне пришла мысль взглянуть на уже существующие решения, среди которых есть мною любимый Zeal, однако, он доступен только для Windows и Linux, я же крепко сижу в заложниках на MacOS из-за специфики работы и удобства.

На сайте Zeal предлагают перейти на сайт Dash, который по сути является прародителем Zeal, однако, он платный и за него невозможно заплатить в пределах РФ, поэтому я продолжил дальше искать аналоги.

Среди альтернатив также есть DevDocs, который может работать оффлайн в браузере (благодаря PWA), однако, я заметил, что все время держать открытой лишнюю вкладку для поиска в доках было не лучшей идеей (ибо вкладку все равно нужно было бы искать, среди тонны вкладок со StackOverflow и прочим).

Решение с быстрым поиском

В Firefox и Google Chrome есть возможность добавить собственную поисковую систему (или же поиск по сайту), чем собственно я и воспользовался. При поиске в devdocs все GET-запросы уходят по урлу:

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments7

Руководство для начинающих по SELinux

Reading time5 min
Views44K


Перевод статьи подготовлен для студентов курса «Безопасность Linux»




SELinux или Security Enhanced Linux — это улучшенный механизм управления доступом, разработанный Агентством национальной безопасности США (АНБ США) для предотвращения злонамеренных вторжений. Он реализует принудительную (или мандатную) модель управления доступом (англ. Mandatory Access Control, MAC) поверх существующей дискреционной (или избирательной) модели (англ. Discretionary Access Control, DAC), то есть разрешений на чтение, запись, выполнение.

Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments2

Как работает графика в видеоиграх?

Level of difficultyMedium
Reading time9 min
Views18K
Видеоигры в 21 веке обладают впечатляющей графикой, способной перенести игрока в невероятно детализированные города, захватывающие дух места сражений, волшебные миры и захватывающую дух природу.Как же ваш компьютер берет миллиарды единиц и нулей и превращает их в реалистичную 3D-графику? Что ж, давайте разбираться.


Читать дальше →
Total votes 33: ↑29 and ↓4+34
Comments10

Разбираемся со сканерами в Linux: получение информации об устройстве и поиск подходящего драйвера

Level of difficultyMedium
Reading time61 min
Views8.3K

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

В первой части коснемся вопроса сбора информации об устройстве при помощи системных утилит, входящих в состав ОС, а также программ от разработчиков SANE. Расскажем, как физическое устройство (например, МФУ) представляется в ОС сразу и принтером, и сканером, и много ещё чем. Обязательно затронем тему дескрипторов и детально рассмотрим значение каждого из них. База, так сказать. Заглянем в типовой пакет проприетарного драйвера и на примерах покажем, как он должен выглядеть в идеальном современном мире. Глазами разработчиков SANE, конечно. Мы не будем с ними спорить.

Подключайте свои сканеры
Total votes 25: ↑24 and ↓1+27
Comments8

Ansible для начинающих

Reading time6 min
Views91K

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

Ansible — это инструмент infrastructure as a code для автоматизации задач по подготовке и конфигурированию инфраструктуры.

Вам понадобятся: базовые знания о Linux (можно начать с cent OS/Ubuntu), практический опыт с облачными сервисами (AWS), общее представление о виртуальных машинах (AWS EC2).

Читать далее
Total votes 18: ↑13 and ↓5+9
Comments9

Обработка изображений с помощью библиотеки Python Pillow

Reading time33 min
Views143K

Данный туториал является переводом статьи, написанной Stephen Grupetta. Все изображения и коды скопированы без изменений. В конце вы найдете примечания относительно данной информации, а также ссылку на github с работающим кодом. Если код, приведенный автором не запускается, переходите в примечания и, возможно, сможете найти решение вашей ошибки.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments7

Простое наложение 2-х изображений

Reading time3 min
Views32K
Это занимательный рассказ о том, как одно изображение накладывается на другое. Если вы занимались растровой графикой, писали игры или графические редакторы, вы врядли найдете в статье что-то для себя. Всем остальным, надеюсь, будет интересно узнать, что эта задача не такая тривиальная, как кажется на первый взгляд.

Итак, у нас 2 картинки в формате RGBA (т.е. 3 цвета + альфаканал):
Читать дальше →
Total votes 64: ↑40 and ↓24+16
Comments37

USB over IP в домашних условиях

Reading time4 min
Views54K
Иногда возникает желание работать с устройством, подключенным по USB, не держа его на столе рядом с ноутбуком. У меня таким устройством является китайский гравёр с лазером на 500 мВт, штука довольно неприятная при близком контакте. Помимо непосредственной опасности для глаз, в процессе работы лазера выделяются токсичные продукты горения, поэтому устройство должно находится в хорошо проветриваемом помещении, и желательно изолированно от людей. А как же таким устройством управлять? Ответ на данный вопрос я случайно нашел, просматривая репозиторий OpenWRT в надежде найти достойное применение старенькому роутеру D-Link DIR-320 A2. Для подключения решил использовать описываемый на Хабре ранее USB over IP tunnel, однако все инструкции по его установке успели потерять актуальность, поэтому пишу свою.
Читать дальше →
Total votes 42: ↑41 and ↓1+58
Comments28

Self Hosted для домашнего сервера

Level of difficultyMedium
Reading time10 min
Views24K

Есть отличный термин self hosted, который очень популярен в англоязычном интернете.
Но он плохо переводится, почти как open source - хотя википедия и пытается дать ужасно звучащий термин "самохостинг"...

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

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

Эту статью я пишу во многом для нескольких друзей, которые решили приобщиться к этому тренду, и здесь будет обзор моего личного self hosted - про всякие разные штуки, которые показались полезны лично мне, и плотно заняли своё место на моём домашнем сервере.

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

Читать далее
Total votes 65: ↑65 and ↓0+68
Comments124

Настройка Git сервера с нуля

Level of difficultyEasy
Reading time12 min
Views12K

Любой начинающий DevOps начинает своё знакомство с Git. Этот инструмент стал неотъемлемой частью рабочего процесса разработчиков по всему миру. Во многих курсах и руководствах по DevOps описывается настройка серверов через популярные платформы, такие как GitLab, а иногда и Gitea. Однако мне стало интересно попробовать другой путь — использовать встроенный в Git инструмент GitWeb.

Подробнее
Total votes 28: ↑25 and ↓3+24
Comments21

Политика информационной безопасности — опыт разработки и рекомендации

Reading time7 min
Views164K
imageВ данном топике я попытаюсь составить манул по разработке нормативной документации в области информационной безопасности для коммерческой структуры, опираясь на личный опыт и материалы из сети.

Здесь вы сможете найти ответы на вопросы:
  • для чего нужна политика информационной безопасности;
  • как ее составить;
  • как ее использовать.


Добро пожаловать
Total votes 12: ↑7 and ↓5+2
Comments13

Основы архитектуры для джунов: построение масштабируемых и чистых приложений на python (Туториал)

Level of difficultyMedium
Reading time18 min
Views14K

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

Читать далее
Total votes 10: ↑7 and ↓3+4
Comments14

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

Level of difficultyMedium
Reading time8 min
Views249K

Десять лет назад я писал пару статей - Как загрузить последний 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
Total votes 166: ↑157 and ↓9+173
Comments256

Замки, драконы и сундуки: как возник классический сеттинг игрового фэнтези? Часть 4: рождение Dungeons & Dragons

Level of difficultyEasy
Reading time8 min
Views7K

К началу 1970-х годов в США оформилось большое и активное сообщество игроков в настольные игры — которое в значительной степени пересекалось с любителями всё более популярного тогда жанра фэнтези. Ранние настолки происходили из военных игр, использовавшихся с XIX века для подготовки офицеров — и долгое время они изображали исключительно реальные или теоретические боевые столкновения. Идея сделать настолку в жанре фэнтези появилась у человека по имени Гэри Гайгэкс после того, как он реализовал настольную игру про средневековые бои — и решил добавить в неё фэнтезийных войск. Когда к этой концепции добавилась идея отдельных юнитов-героев и ролевого отыгрыша — на свет появилась Dungeons & Dragons. Мать всех современных ролевых игр и основа для сферического в вакууме фэнтезийного сеттинга, который во многом именно благодаря ей возник из множества разных миров, разных авторов.

Все части цикла статей о возникновении классического сеттинга игрового фэнтези:
Читать дальше →
Total votes 49: ↑48 and ↓1+59
Comments5

Замки, драконы и сундуки: как возник классический сеттинг игрового фэнтези? Часть 3: от варгеймов к Blackmoor и D&D

Level of difficultyEasy
Reading time10 min
Views7.2K

Итак, к началу 70-х фэнтези в США успели стать массово популярным жанром литературы. Книги в жанре «магия и меч» запоем читали все — от гиков-технарей до хиппи и рок-музыкантов. Каноны фэнтези при этом быстро менялись: типовое героическое фэнтези в духе «Конана» и эпические противостояния добра со злом в стиле Толкиена быстро наскучило и читателям, и писателям — и в тропы жанра стали стремительно вноситься всё новые и новые поправки. Это сделало новый модный жанр не только более интересным для аудитории — но и куда более пригодным для того, чтобы на его основе создавать игры: сначала настольные, а затем и компьютерные.
Читать дальше →
Total votes 62: ↑62 and ↓0+74
Comments2

Решение внутренних конфликтов: инженерный подход

Level of difficultyMedium
Reading time27 min
Views7.6K

Люди на Земле уже многие века как-то решают свои внутренние конфликты. Да что там говорить - это умеют делать даже обезьяны. Хотя у людей получается лучше: нам помогают не только инстинкты и развитый неокортекс, но и чужой опыт: мифы, религии, философские учения, нормы культуры, а порой даже и книги об "успешном успехе".

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

В этой статье вас ждёт:

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

Читать далее
Total votes 20: ↑17 and ↓3+17
Comments22

Альтернативные формы занятости и беременность

Reading time4 min
Views995

Ранее мы писали о том, на какие пособия может рассчитывать при беременности и рождении ребёнка айтишница, трудоустроенная по ТК РФ. Однако официальный трудовой договор — не единственный способ оформления трудовых отношений, который предлагают разного рода IT-компании. В описании вакансий часто можно увидеть и аббревиатуры ИП, СЗ, ГПХ. Ранее мы писали также и о том, почему работодатель хочет, чтобы вы были ИП, но не грех и повторить, а заодно расшифровать и другие аббревиатуры.

Читать далее
Total votes 18: ↑13 and ↓5+9
Comments0

Дескрипторы в Python

Level of difficultyEasy
Reading time7 min
Views14K

Привет, Хабр!

Дескриптор — это объектовый атрибут с поведением, определяемым методами в его классе. Если просто — это способ, с помощью которого объект может контролировать доступ к его атрибутам, используя специально определенные методы __get__, __set__, и __delete__. Если говорить еще проще — дескрипторы позволяют задавать точки доступа к атрибутам объекта, добавляя дополнительную логику, когда атрибут читается, записывается или удаляется.

В этой статье поговорим подробней про дескрпиторы.

Читать далее
Total votes 10: ↑9 and ↓1+10
Comments3
1
23 ...

Information

Rating
2,443-rd
Registered
Activity