Pull to refresh
9
0
Alexey Oganezov @cobhc

Беззаботный безработный

Send message

Компоненты среды рабочего стола | Linux

Level of difficulty Medium
Reading time 12 min
Views 7.4K

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

Читать далее
Total votes 11: ↑12 and ↓-1 +13
Comments 12

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

Level of difficulty Medium
Reading time 45 min
Views 134K

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

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

Читать далее
Total votes 506: ↑498 and ↓8 +490
Comments 351

Вперед в будущее: Wayland против X11

Level of difficulty Medium
Reading time 38 min
Views 27K

Доброго времени суток, дорогие читатели! Сегодня я затрону одну интересную тему — графические дисплейные сервера и протоколы в Linux. В этой статье я расскажу вам о архитектуре X11 и Wayland, историю их создания и наконец-то сделаем вывод: Иксы на мороз, или вейланд на помойку?


Еще в далеком 2016 году вышла Fedora 25 с окружением GNOME 3.22 на базе дисплейного сервера Wayland. А в RHEL 10 выкинут X11 на мороз. Релиз RHEL 10 намечен на 2025 год, CentOS Stream 10 — на 2024 год. Для обеспечения работы приложений, требующих X11, будет использоваться XWayland. Таким образом, в 2029 году (к моменту окончания первого этапа поддержки RHEL 9) стоит ожидать появление первого аппаратного обеспечения, не поддерживающего X11.


И как я думаю — будущее за Wayland. Но пока X11 является стандартом. Давайте разберем это!


Читать дальше →
Total votes 98: ↑91 and ↓7 +84
Comments 115

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

Level of difficulty Medium
Reading time 17 min
Views 14K

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

В рамках данной статьи будет написан простой компилятор на C++, транслирующий код в ассемблер для MS-DOS, а также опробован на реальных боевых задачах.

Читать далее
Total votes 23: ↑22 and ↓1 +21
Comments 39

Что почитать игровому программисту?

Level of difficulty Easy
Reading time 6 min
Views 24K

Объём специфичных знаний, которые требуются рядовому программисту игр, даже если он только начал свою карьеру, вызывает у меня «лёгкую» тоску. Это одна из причин, почему большая часть людей, которые «горят делать игры», отсеивается на этапе технических собеседований (обычно их больше одного). Это нормально и грустно. Добавьте сюда, что нефундаментальные знания, вроде инструментов, библиотек и движков, приходится обновлять где‑то раз в 5–7 лет. Не вижу тут, что игрострой сильно отличается от других областей разработки. Если бы лет 15 назад «добрый я» скинул на почту список книг, которые придется прочитать и осмыслить, армия собранных граблей не была бы столь большой и разнообразной, и без ручек половинной длины. Осторожно, в конце статьи будет супердлинная картинка (взята с github отсюда, с разрешения автора).

У программиста нет цели, только путь.
Total votes 60: ↑60 and ↓0 +60
Comments 36

Компилятор за выходные: лексер и парсер

Level of difficulty Medium
Reading time 12 min
Views 14K

Продолжаем разговор. На прошлой неделе я пообещал за выходные написать компилятор из простенького мной придуманного языка в ассемблер. В назначенное время уложился, и компилятор даже вроде работает, см. заглавную картинку. Теперь дело за малым, потихоньку причесать и стройно изложить. В прошлый раз я рассказал про синтаксические деревья и показал простейший транслятор в питон (по факту, обычный pretty print дерева). Но если в предыдущей статье я синтаксическое дерево строил вручную, то сегодня всё же будем автоматизировать процесс.

Сегодня я публикую две статьи разом, поскольку по дороге меня довольно круто занесло, и получился небольшой спин-офф. Очень рекомендую к прочтению :)

Ну а тема этой статьи - автоматическое построение синтаксического дерева aka лексер и парсер.

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

Как работает протокол X11 на самом нижнем уровне

Level of difficulty Medium
Reading time 13 min
Views 36K

X11 это тот механизм на чем работает весь графический интерфейс Unix подобных ОС.


Но мало кто знает как он работает на самом деле. Потому что с годами он оброс слоями и слоями библиотек, которые стремятся скрыть саму сущность протокола.


А протокол в своей сути прекрасен. Он лаконичен и почти совершенен.


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


А все книги и статьи по использованию X11 описывают это через библиотеки прокладки типа XLib и XCB, и даже, что хуже, GTK или Qt.


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


Как бы то ни было, если кому-то интересно как все работает на самом деле, пожалуйста под кат.

Читать дальше →
Total votes 201: ↑199 and ↓2 +197
Comments 182

Как работает электронная почта

Reading time 4 min
Views 30K
Это начало большого курса про работу почтовых серверов. Я не преследую цели быстро научить кого-то работать с почтовыми серверами. Тут будет много дополнительной информации, касающаяся тех вопросов, которые мы будем встречать по пути, потому что я стараюсь делать курс в основном для тех, кто только делает первые шаги.

image
Total votes 17: ↑17 and ↓0 +17
Comments 9

Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики

Reading time 9 min
Views 27K

Математика для взрослых. Дорожная карта от выпускника Хармфульского клуба математики.

(1) Школа. (2) Матанализ. (3) Аналитическая геометрия. (4) Линейная алгебра.

Все плейлисты, материалы, курсы в открытом доступе и бесплатны.

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

Почтовая система RuPost. Установка и настройка

Level of difficulty Easy
Reading time 10 min
Views 8.7K

Статья адресована администраторам почтовых систем, задумывающимся о замене существующей или внедрении новой почтовой системы. Почему именно RuPost? Потому, что про CommuniGate Pro я уже писал, а другие почтовые системы ещё ждут своего часа. В этой статье опишу решение RuPost в целом, расскажу про установку и настройку Enterprise редакции, как наиболее интересной и функциональной.

Читать далее
Total votes 10: ↑5 and ↓5 0
Comments 7

Математика: полезные книги

Reading time 3 min
Views 19K

What”s up guys?

Математика — как говорили в школе — царица наук, а ещё очень важный и полезный скилл для программиста.

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

Читать далее
Total votes 17: ↑7 and ↓10 -3
Comments 11

E-mail Injection; Инъекции в почтовую функциональность веб-приложений

Level of difficulty Medium
Reading time 21 min
Views 4.2K

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

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

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

 • Основы работы почты:
  ◦ Почтовые протоколы
  ◦ Почтовые компоненты
  ◦ Конструкция письма
  ◦ Специальные конструкции
 • Потенциальные уязвимости:
  ◦ CRLF Injection
  ◦ Arbitrary Command Flag Injection
 • Демонстрация эксплуатации:
  ◦ Заготовка приложения
  ◦ NodeJS + smtp-client (CRLF SMTP Injection + E-mail hijacking)
  ◦ PHP + mail() (CRLF SMTP Injection + Command Flag Injection)
  ◦ Python + imaplib / email (CRLF IMAP Injection + Improper Input Validation)

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

Как мне захотелось систематизировать виды тестирования

Level of difficulty Easy
Reading time 11 min
Views 26K

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

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

Сделай хобби работой и тебе… придется искать и хобби, и работу

Reading time 9 min
Views 28K

Конфуцию приписывают фразу: «Займись тем, что тебе нравится, и ты не будешь работать ни дня в своей жизни» . Вряд ли он предполагал, что через две с половиной тысячи лет его фразу превратят в лозунг работники сферы профориентации, коучи и продавцы курсов повышения квалификации. Сама идея заниматься тем, что любишь, кажется весьма логичной. Если ты от чего-то получаешь удовольствие и делаешь это хорошо, то почему бы не конвертировать любимое дело в деньги?

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

Сложно, но полезно
Total votes 59: ↑56 and ↓3 +53
Comments 72

Опыт создания UI библиотеки на C++

Level of difficulty Medium
Reading time 21 min
Views 12K

Началось все почти два года назад в декабре, практически перед новым годом.

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

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

В течении шести лет жизни с двумя кодовыми базами одного и того же, неспешно подбирались легковесные UI библиотеки написанные хотя бы в стиле C++11.

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

В 2021 году видимо Гугл работал плохо или звёзды так сошлись, но не нашлось ничего стоящего. Все что попадалось - основанные на рендеринге html проекты и обертка над wxWidgets. Сейчас то мы знаем про lvgl, да...

wxWidgets не плох, но хотелось своего рисования, без окошек под кнопки, поля ввода и списки, boost/bsd подобной лицензией, максимально лаконичной, и в идеале работающей от Windows XP / CentOS 6 на стандартном GDI / X11 до Vulcan на современных машинах.

В итоге, все же было принято волевое решение сделать минимальный UI фреймворк для этого проекта, и сразу выпускать его в Open Source под лицензией boost. 

Читать далее
Total votes 34: ↑32 and ↓2 +30
Comments 50

Книги по C++, которые можно рекомендовать разработчикам в 2023 году

Reading time 4 min
Views 38K

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

Читать далее
Total votes 21: ↑16 and ↓5 +11
Comments 39

Как писать хардкорные статьи, чтобы их читали

Level of difficulty Easy
Reading time 8 min
Views 8K

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

Читать далее
Total votes 52: ↑51 and ↓1 +50
Comments 32

Секрет реиграбельности «Космических Рейнджеров»

Level of difficulty Easy
Reading time 7 min
Views 11K
image

Недостаток времени — одна из главных проблем современного человека. Особенно, если тот увлекается видеоиграми. Сейчас нам тяжело выделить минуту даже для новинок, что уж говорить о затёртых до дыр полюбившихся проектах из прошлого. Тем не менее, очередное перепрохождение «Космических Рейнджеров» почему-то не кажется чем-то зазорным.

Отставив хитросплетённый сюжет на второй план, разработчики из ныне упразднённой Elemental Games сделали упор на вариативном игровом процессе и проработанной вселенной, где каждый из элементов — не просто декорация или выдающий задания NPC-болванчик, а одна из единиц наполненного жизнью мира, в который хочется возвращаться всё снова и снова.

Рассуждать о теме будем по второй части дилогии, так как та, по мнению многих игроков, является улучшенными во всех аспектах первыми «Космическими Рейнджерами».
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 24

Аналитика. Обзор, рекомендации, акценты применения

Level of difficulty Easy
Reading time 13 min
Views 4.8K

Всем, привет.  Для самых жаждущих и нетерпеливых эта в этой статье будет про:

Типы анализа, используемые для/около информационных технологий;

Систему координат типов анализа и для чего использовать каждый из них;

Специальные артефакты для каждого типа анализа;

То, как понять, что в компании/процессе/проекте нужно использовать конкретный тип анализа;

Акценты и навыки, нужные при использовании каждого типа анализа;

Для тех, кому интересно и хочется сложить причинно-следственные связи, проследить нить рассуждений, то давайте это сделаем. Я Иван. Люблю сферу информационных технологий и стремлюсь развиваться в дисциплинах, задействованных для создания информационных продуктов – анализе, проектировании, разработке. Эти дисциплины влияют друг на друга и на конечный результат - создаваемую информационную систему.

Рассуждая, что такое анализ, какой он бывает, какой тип, в каких условиях использовать и какие навыки нужны для того, чтобы его выполнять, я предположил, что будет полезным систематизировать имеющийся опыт и результаты обсуждения с коллегами, слушателями профессиональных программ развития НИУ ВШЭ, МИСИС, интернет университетов. Так появился следующий обзор. Надеюсь, он принесет вам пользу. Рассчитываю на обсуждение. Присоединяйтесь :-)

Читать
Total votes 3: ↑2 and ↓1 +1
Comments 9

Заметки об основах программной архитектуры

Reading time 9 min
Views 18K
Это вводное руководство для архитекторов программного обеспечения. В настоящее время звание «архитектор» очень популярно во всем мире, но не существует настоящего руководства, как стать архитектором программного обеспечения.

1. Общая концепция архитектуры программного обеспечения
2. Архитектурные стили
3. Технология
4. Софт скиллз (принятие архитектурных решений, методы анализа рисков, навыки подачи материала, отношения с командой менеджеров, ведение переговоров, планирование карьеры архитектора)
5. Принципы проектирования
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 3

Information

Rating
Does not participate
Registered
Activity