Как стать автором
Обновить

Мой путь программиста: от начала до будущего

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

Читать далее

Gitlab Oauth Roundcube Webmail в стеке Postfix+dovecot+sieve+mysql+spamassasin+nginx (Linux)

Уровень сложностиПростой

Небольшой минигайд как привязать oauth от поставщика Gitlab к Roundcube и dovecot. Данная статья родилась потому, что не в русском ни в английском сегменте этой информации нет и хочется поделится своей работой :)

Для начала, мы должны иметь минимально рабочую конфигурацию Roundcube+Postfix+dovecot+mysql, статей на эту тему на просторах интернета полно.

Итак, для начала займемся Gitlab

Поставщик Oauth - саморазмещаемый экземпляр Gitlab CE.Под учетной записью администратора нужно подключить приложение и создать секреты.
Admin area => Applications

Redirect URI: https://mail.EXAMPLE.ru/index.php/login/oauth

Выбрать:
- "openid"
- "The application will be used where the client secret can be kept confidential. Native mobile apps and Single Page Apps are considered non-confidential."
На выходе получим Application ID и Secret которе нужно записать, они нам пригодятся.

Второй шаг это настройка конфигурации Roundcube

Требуется перейти в файл конфигурации и внести параметры в конец config.inc.php

$config['oauth_provider'] = "generic";
$config['oauth_provider_name'] = 'Gitlab';
$config['oauth_client_id'] = "УКАЗАТЬ Application ID ПОЛУЧЕННЫЙ НА ШАГЕ 1";
$config['oauth_client_secret'] = "УКАЗАТЬ Secret ПОЛУЧЕННЫЙ НА ШАГЕ 1";
$config['oauth_auth_uri'] = "https://gitlab.EXAMPLE.ru/oauth/authorize/";
$config['oauth_token_uri'] = "https://gitlab.EXAMPLE.ru/oauth/token/";
$config['oauth_identity_uri'] = "https://gitlab.EXAMPLE.ru/oauth/userinfo";
$config['oauth_verify_peer'] = true;
$config['oauth_scope'] = "openid";
$config['oauth_auth_parameters'] = [];
$config['oauth_identity_fields'] = ['email'];
$config['oauth_login_redirect'] = false;

Читать далее

Почему плагины Minecraft Pocket Edition от СНГ-разработчиков часто содержат много «гкода»?

Уровень сложностиСредний

В последнее время наблюдается тенденция, что плагины для Minecraft Pocket Edition (MCPE), разработанные СНГ-программистами, часто содержат множество проблемного кода, который в игровом сообществе называют "гкодом". Причины, почему это происходит, могут быть многогранными и сложными. Рассмотрим ключевые факторы, способствующие возникновению таких проблем написания качественного кода.

Читать далее

Аутентификация в minio через keycloak

Уровень сложностиПростой

Когда команда занимается разработкой, рано или поздно возникает необходимость в использовании хранилища типа Amazon S3 (Simple Storage Service), которое предоставляет возможность сохранения и доступа к большим объемам данных. Один из примеров такого хранилища - MinIO, который является надежным и производительным решением, особенно если он находится в High Availability.

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

Читать далее

LibGodot позволит встраивать Godot в другие приложения, например, в Blender

..или Blender в Godot 🤔 в общем не суть)

История от Miguel de Icaza про встраиваемый игровой движок.

Много лет назад, работая в Xamarin, где мы создавали кроссплатформенные библиотеки для мобильных разработчиков, мы хотели предложить нашим пользователям возможности 2D и 3D игр в виде добавления 2D или 3D контента в их мобильные приложения.

Для 2D мы создали и разработали множество библиотек, вдохновленных Cocos2D.

С 3D ситуация была сложнее. Мы финансировали несколько библиотек в течение нескольких лет, вносили свой вклад в другие, но ничего не вышло (история этого заслуживает отдельного поста).

Примерно в 2013 году мы огляделись вокруг, и на тот момент у нас было два претендента: один — встраиваемый движок с множеством симпатичных функций, но не очень хорошей поддержкой пользовательского интерфейса под названием Urho, а второй — Godot, который имел отличную IDE, но не поддерживал встраивание.

В то время я связался с Juan, чтобы обсудить, можно ли превратить Godot в такой движок. Хотя я обычно веду подробные записи всех своих встреч, эти записи, к сожалению, пропали в результате приобретения Microsoft, но из того, что я помню, Juan сказал мне: «Godot — это не то, что вы ищете» в двух измерениях, не было никаких ближайших планов по превращению его во встраиваемую библиотеку, и он не был таким продвинутым, как Urho, поэтому он рекомендовал мне выбрать Urho.

Подробности

Восстанавливаем удалённые сообщения в Telegram

Уровень сложностиПростой

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

Читать далее

Правда или миф, что iPhone появился из-за необычной болезни Стива Джобса?

История iPhone началась задолго до его официального представления в 2007 году. В начале 2000-х компания Apple, под руководством Стива Джобса, искала новые направления развития. Успех iPod показал, что потребители жаждут инновационных портативных устройств. Именно в этот период в Apple начали экспериментировать с идеей создания планшетного компьютера.

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

Читать далее

Как добавить новый функционал в вашу любимую идеешку

Уровень сложностиСредний

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

Хочу поведать о том, как я добавил новый функционал в Android Studio (спойлер, все то же самое работает в IntelliJ IDEA, PyCharm, CLion и т.д.), и это ускорило мою жизнь в разы, а глаз почти что перестал дергаться.

Читать далее

Nmap — руководство для начинающих

Уровень сложностиПростой

Nmap — мощный инструмент для исследования и обеспечения безопасности сетей. Он популярен среди системных администраторов и специалистов по информационной безопасности. Даже в культовом фильме "Матрица" этот инструмент использовался для взлома.

Читать далее

Про реакт обзорно

Уровень сложностиПростой

Дисклеймер: данная статья ставит задачу познакомить читателя с библиотекой React, ее отличиях от ванильной верстки статических страниц, а так же с основными концепциями, на которых основана работа данной библиотеки. Автор статьи будет рассматривать данную технологию в абстракции и, возможно, в отрыве от реальных процессов, происходящих внутри React-приложения: в статье не будет рассматриваться Fiber, классовый подход и остальные технические вещи, которые лишь послужат отвлечением от основной сути. Статья представляет собой милкшейк из моего личного практического опыта, личных наблюдений, теории из официальной документации React.dev, а также информации, взятой со статей на Reddit и прочих ресурсах.

Читать далее

Сравнительный анализ API-сервисов для перевода: цены, качество и опыт использования

Уровень сложностиПростой

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

Сегодня я хотел бы рассказать про мой опыт использования API продуктов от разных сервисов в разработке. Точнее использовал я эти api в проекте, который был связанн с недвижимостью: нужно было переводить описания недвижимости и статьи для разных версий сайта (с английского на русский и наоборот). Рассмотрим плюсы и минусы каждого из популярных сервисов.

Читать далее

Проверяем файл на вирусы и чистим систему от активного заражения

Уровень сложностиСредний

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

Основные моменты статьи:

Пошаговая проверка файла на вирусы с помощью сервисов VirusTotal и AnyRun.
Использование инструментов DnSpy и dotPeek для анализа кода подозрительных файлов.
Выявление и исследование вредоносного ПО, в том числе стиллеров и майнеров.
Практические советы по защите от подобных угроз.

Содержание:

Знакомство с подозрительным файлом и первичная проверка
Анализ exe-файла и библиотеки lib
Использование инструментов для декомпиляции и анализа кода
Обнаружение Redline Stealer и майнера XMR
Проверка файлов на виртуальных машинах и анализ поведения

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

Читать далее

API HH.ru Быстрый старт для работы с аккаунтом соискателя

Уровень сложностиСредний

Быстрый старт API HH.ru новая версия (для соискателей).

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

Читать далее

Google Регистрация в Android на kotlin + jetpack compose

Уровень сложностиПростой

🚀 Хотите создать регистрацию в стиле Google для своего Android-приложения? 🚀

Забудьте о скучных формах! Погрузитесь в мир плавной анимации, интуитивного дизайна и надежной безопасности – всё это с помощью Kotlin и Jetpack Compose.

Что вас ждет:

Пошаговый гайд: От первых строк кода до готового результата – разберемся вместе.

Рабочий код: Не просто теория, а готовые решения для вашего проекта.

Комментарии эксперта: Поймете каждый шаг и сможете адаптировать код под свои нужды.

Секреты профессионалов: Узнаете, как сделать регистрацию не только функциональной, но и привлекательной.

💪 Не упустите шанс прокачать свое приложение! 💪

Читать далее

Оптимизация структуры React/React-Native проекта: Подход с использованием модульной архитектуры

Уровень сложностиСредний

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

Погнали дальше

Публикация приложения в AppStore

Уровень сложностиСредний

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

Давайте разберемся, как опубликовать наше первое приложение в AppStore. 

Читать далее

Что же есть такое цифровая трансформация?

Уровень сложностиПростой

Уважаемые коллеги! Предлагаю подискутировать на тему – что же такое «Цифровая трансформация». И с чем ее едят.

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

P.S.: Я не разработчик, если что, и за технологические стеки разработки поспорить не смогу. Больше мою работу можно описать как менеджерскую.

 Итак, приступим.

Читать далее

Геометрия без аксиом. Информационная энтропия и точка

Уровень сложностиСредний

Геометрия без аксиом. Рассмотрение базовых геометрических понятий без применения аксиом. В данной статье исследуется понятие "точка".

Читать далее

Сетевая защита филиала компании

Уровень сложностиПростой

В данной заметке речь пойдёт исключительно про базовые меры защиты сети от сетевых атак.

Рассматривая филиал или дополнительный офис, допускаем, что основной трафик будет направлен либо на выход в интернет, либо на обеспечение взаимодействия с центральным офисом (через защищённый удаленный доступ). Причём в обоих случаях это не публичный трафик.

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

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

Читать далее