Как стать автором
Обновить
0
0
Glum Psyche @GlumPsyche

Software Developer

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

Создаем свою простую (C++) библиотеку с документацией, CMake и блекджеком

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров16K

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

Если вы ловили себя на мысли: ‭«А почему мне бы не создать свою полноценную библиотеку?‭», то я рекомендую прочитать вам мою статью.

Эту статью вы можете использовать как шпаргалку для создания проектов, и не только библиотек.

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

Читать далее
Всего голосов 49: ↑48 и ↓1+59
Комментарии68

Создаем свою библиотеку на C++ с тестированием, CMake и блекджеком: часть 2

Уровень сложностиСредний
Время на прочтение30 мин
Количество просмотров5.7K

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

Если вы ловили себя на мысли: «А почему мне бы не создать свою полноценную библиотеку?», то я рекомендую прочитать вам мою статью.

Эту статью вы можете использовать как шпаргалку для создания проектов, и не только библиотек.

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

Добро пожаловать во вторую, скорее всего финальную часть статьи! Здесь мы окончательно допишем код, исправим некоторые ошибки.

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

Укрощаем одноглазого змея. Разбираемся с WireGuard и делаем свой умный VPN

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

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


Если ты пользуешься VPN, то и сам наверняка сталкиваешься с блокировками зарубежного трафика. К примеру, могут не открываться pochta.ru, leroymerlin.ru, rt.ru, avito.ru.


Получается мем.



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


Поэтому мы сейчас попробуем «включать VPN чуть-чуть».

Читать дальше →
Всего голосов 43: ↑42 и ↓1+51
Комментарии73

Проектная, конструкторская или технологическая документация. Основные системы стандартов

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.8K

Правовая основа стандартизации в России заложена в ст. 71 Конституции Российской Федерации — «В ведении Российской Федерации находятся: … р) метрологическая служба, стандарты, эталоны, метрическая система и исчисление времени; геодезия и картография; наименования географических объектов; метеорологическая служба; официальный статистический и бухгалтерский учет; …»

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

— Федеральный закон «О стандартизации в Российской Федерации» от 29.06.2015 N 162-ФЗ;
— Федеральный закон «О техническом регулировании» от 27.12.2002 N 184-ФЗ.

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

Сувенирно-индикаторная лампа упрощённого типа своими руками

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.9K

Лабораторно-практическая электровакуумная работа в домашней мастерской для наработки и совершенствования навыков. Выполнена на несложном, по большей части самодельном оборудовании и из подножных материалов, но повозиться пришлось. Лампа сделана по упрощённой технологии без наполнения её инертным газом. Тлеющий разряд светится в разреженных остатках атмосферного воздуха, львиная доля которого — азот.
Читать дальше →
Всего голосов 91: ↑91 и ↓0+116
Комментарии26

Как мы в RuStore на docs as code переходили

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6.5K

Приветствую всех! Меня зовут Катя Фролова, я работаю техническим писателем в RuStore.

В прошлом году документация RuStore переехала на новый движок.

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

Читать далее
Всего голосов 30: ↑28 и ↓2+28
Комментарии7

Переезд на Spring Boot 3.0 c версии 2.0: какие сложности могут возникнуть

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.6K

Привет, Хабр! Я Артем Киреев, ИТ‑инженер в СберТехе. Мы с командой занимаемся развитием продукта из состава Platform V Synapse — децентрализованной платформы для задач интеграции. Мы стремимся поддерживать актуальность стека, на котором разрабатываем наши продукты, и регулярно отслеживаем все изменения. Обратившись к таблице поддерживаемых версий на официальном сайте Spring, мы обнаружили, что версии Spring Boot ниже 3.0 больше не поддерживаются. Поэтому мы решили, что нужно перевести проект на последнюю из существующих версий. На момент написания статьи это Spring Boot 3.2.

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

Читать далее
Всего голосов 24: ↑20 и ↓4+22
Комментарии1

Регистрация и авторизация с помощью Spring Security на примере простого приложения

Время на прочтение21 мин
Количество просмотров315K
Добрый день!

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

Что будет представлять из себя приложение


Сайт со следующими страницам:

  • страницы доступные всем пользователям: главная, регистрации и логина;
  • страница доступная для зарегистрированных пользователей: новости;
  • страница доступная для администратора.

Что будем использовать


  • JDK 8+;
  • Intellij Idea;
  • Spring (Spring Boot, Spring MVC, Spring Security);
  • Hibernate;
  • JSP;
  • PostgreSQL.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+8
Комментарии10

Прокачка @PreAuthorize в Spring Security произвольными типами и простым инспектируемым DSL

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

Spring Security — must-have компонент в Spring-приложениях, так как он отвечает за аутентификацию пользователя, а также за авторизацию тех или иных его действий в системе. Одним из методов авторизации в Spring Security является использование аннотации @PreAuthorize, в которой с помощью выражений можно наглядно описать правила, следуя которым модуль авторизации решает, разрешить ли проведение операции или запретить.


В моём REST-сервисе возникла необходимость предоставить точку доступа к описанию правил авторизации для всех методов контроллеров сервиса. Причём, по возможности, избежать раскрытия специфики именно SpEL-выражений (т.е., вместо permitAll нужно что-то вроде anybody, а principal избегать вовсе как избыточное выражение), но возвращать свои выражения, с которыми уже можно делать что угодно.


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

Spring MVC: создание веб-сайтов и RESTful сервисов

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

Вы можете использовать эту статью, чтобы понять, как использовать Spring MVC для создания веб-сайтов или RESTful сервисов. А также получить обзор часто задаваемых вопросов, охватывающих наиболее распространенные задачи Spring MVC.


Примечание: Статья ~ 7500 слов, вероятно, не стоит читать ее на мобильном устройстве. Добавьте ее в закладки и вернитесь позже.


Содержание


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

Замки, драконы и сундуки: как возник классический сеттинг игрового фэнтези? Часть 2: как трое великих переделали фэнтези

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров10K

В прошлой статье мы вспомнили, как и почему в США середины 60-х годов оформился жанр фэнтези — и почему цикл о Конане Роберта Говарда оказал на него как минимум не меньшее влияние, чем «Властелин колец» Толкиена. Именно на почве увлечения «Конанинаной» в 1965 году оформился неформальный клуб писателей с говорящим названием «Гильдия мечников и чародеев Америки» (SAGA). Его ядром стали фанаты и продолжатели Говарда Лайон Спрэг де Камп, Лин Картер и Джон Джейкс. В 1966-1967-х годах публикация «продолжений» похождений Конана от де Кампа и Картера совпала с ростом популярности трилогии Толкиена и пиком контркультурных настроений среди американской молодёжи. Именно во второй половине 60-х фэнтези из увлечения немногих гиков превратилось в массово популярный у читателей жанр, но это происходило не только стараниями издателей Толкина и продолжателей Говарда.
Читать дальше →
Всего голосов 61: ↑59 и ↓2+73
Комментарии19

Локальный HTTPS в dev-окружении — простая настройка

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


Иногда в процессе веб-разработки требуется безопасное окружение в браузере, то есть HTTPS. Удобный способ сделать это — установить локальный УЦ и автоматизировать выдачу сертификатов на любые поддомены lcl.host и localhost. Это более функциональная и удобная альтернатива самоподписанным сертификатам.

Для установки локального УЦ есть инструменты lcl.host и mkcert, которые помогают быстро настроить и использовать HTTPS в dev-окружении.
Читать дальше →
Всего голосов 24: ↑18 и ↓6+17
Комментарии5

Вы все еще пишете многопоточку на C++ с ошибками синхронизации?

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров26K
Привет, коллеги! В этой статье я покажу свой подход к написанию многопоточного кода, который помогает избежать типовых ошибок, связанных с использованием базовых примитивов синхронизации.

Демонстрация идеи будет проходить на живых примерах кода на современном C++. Большинство описанных решений я применял сначала на собственных проектах, а теперь часть этих подходов уже используется в нашей собственной микроядерной операционной системе «Лаборатории Касперского» (KasperskyOS).

Сразу хочу оговориться, что тема многопоточности — очень большая и серьезная. И эта статья — не полноценный анализ проблем многопоточки, а только частНЫе (но довольно частЫе) кейсы, когда мы вынуждены использовать мьютексы.
Читать дальше →
Всего голосов 53: ↑47 и ↓6+57
Комментарии148

Qt: Вывод отчета стандартными средствами (или живем без генераторов отчета)

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

Нудное вступление с Qt 4.8


Недавно коллега по работе спросил об опыте использования построения отчетов под Qt (начинаем потихоньку внедрять SCADA, написанную на Qt) — в силу поставленной задачи очень нужная вещь. Генераторами никто не пользовался (на данной платформе), но отчеты мы я каким-то образом делали без использования FastReport и таскания лишних приложений.

Покопавшись в проектах, нашел приложение с отчетами, виджетами для предпросмотра (QLabel, QTableView....). Вид отчета «preview»:

image
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии13

PyQt6 — полное руководство для новичков

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

К старту курса по разработке на Python делимся детальным руководством по работе с современным PyQt для новичков. Чтобы читать было удобнее, мы объединили несколько статей в одну:

1. Первое приложение

2. Слоты и сигналы

3. Виджеты

За подробностями приглашаем под кат.

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

Первая программист Августа Ада Лавлейс

Время на прочтение6 мин
Количество просмотров95K
10 декабря названо Днем программиста в честь родившейся также в этот день первой представительницы этой не слишком древней профессии.

Августа Ада Лавлейс родилась 10 декабря 1815 года. Она была единственной дочерью великого английского поэта Джорджа Гордона Байрона (1788 — 1824) и Аннабеллы Байрон, урождённой Милбэнк (1792 — 1860). «Она незаурядная женщина, поэтесса, математик, философ», — писал Байрон о своей будущей жене в 1813 году. Родители ее расстались, когда девочке было два месяца, и больше своего отца она не видела.

Ада унаследовала у матери любовь к математике и многие черты отца, в том числе, близкий по эмоциональному складу характер.
Байрон посвятил дочери несколько трогательных строк в «Паломничестве Чайльд Гарольда», но при этом в письме к своей кузине заранее беспокоился: «Надеюсь, что Бог наградит ее чем угодно, но только не поэтическим даром…
Ада получила прекрасное воспитание. Важное место в нём занимало изучение математики – в немалой степени под влиянием матери. Её учителем был известный английский математик и логик Август де Морган. К 1834 году относится ее первое знакомство с выдающимся математиком и изобретателем Чарльзом Бэбиджем, создателем первой цифровой вычислительной машины с программным управлением, названной им „аналитической“. Бэббидж, который был знаком с леди Байрон, поддерживал увлечение юной Ады математикой. Бэббидж постоянно следил за научными занятиями Ады, он подбирал и посылал ей статьи и книги, в первую очередь по математическим вопросам. Занятия Ады поощряли друзья её семьи – Август де Морган и его жена, супруги Соммервил и другие. Ада посещает публичные лекции Д.Ларднера о машине. Совместно с Соммервилем и другими она впервые посещает Бэббиджа и осматривает его мастерскую. После первого посещения Ада стала часто бывать у Бэббиджа, иногда в сопровождении миссис де Морган. В своих воспоминаниях де Морган так описала один из первых визитов: „Пока часть гостей в изумлении глядела на это удивительное устройство с таким чувством, как говорят, дикари первый раз видят зеркальце или слышат выстрел из ружья, мисс Байрон, совсем ещё юная, смогла понять работу машины и оценила большое достоинство изобретения“
image
Семейная жизнь Августы Ады сложилась счастливо. В 1835 году Ада Байрон в возрасте девятнадцати лет вышла замуж за 29-летнего лорда Кинга, который впоследствии стал графом Лавлейс. Муж не имел ничего против научных занятий супруги и даже поощрял ее в них. Правда, высоко ценя ее умственные способности, он сокрушался: „Каким отличным генералом ты могла бы стать!“ Супруги Лавлейс вели светский образ жизни, регулярно устраивая приёмы и вечера в своём лондонском доме и загородном имении Окхат-Парк. Замужество Ады не отдалило её от Бэббиджа; их отношения стали ещё более сердечными. В начале знакомства Бэббиджа привлекли математические способности девушки. В дальнейшем Бэббидж нашёл в ней человека, который поддерживал все его смелые начинания. Ада была почти ровесницей его рано умершей дочери. Всё это привело к тёплому и искреннему отношению к Аде на долгие годы.

Читать дальше →
Всего голосов 86: ↑69 и ↓17+52
Комментарии44

Аналитическая машина Бэббиджа. Часть вторая — трагическая судьба вычислительной техники XIX века

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

Первую часть статьи вы можете найти по этой ссылке.

Идея разностной машины посетила Чарльза Бэббиджа то ли 1812, то ли 1813 году. Более точную дату история от нас скрывает. Что же должна была делать задуманная машина?

Для того что бы понять это — придётся вспомнить немного математики.

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

Читать дальше →
Всего голосов 64: ↑57 и ↓7+50
Комментарии18

MacOS Monterey на Linux — быстро и просто?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров49K
Что делать, если у вас возникло желание или необходимость заняться разработкой под MacOS или iOS, но под рукой нет макбука, а покупать его только чтобы открыть Xcode кажется делом сомнительным? Недавно я столкнулся с такой проблемой в одном из своих пет-проектов и решил ее достаточно просто и быстро. После выполнения нескольких достаточно примитивных шагов, мне удалось запустить MacOS Monterey как на скриншоте ниже.

image

Никакого Virtualbox, никакого Virtual Machine Manager. Из требований — только 100 Гб свободного места на диске и хотя бы 16 Гб оперативной памяти. В рунете я встречал описание похожих путей установки, вроде Docker-OSX или Sosumi. Но я бы хотел поделиться способом, который позволяет использовать актуальную версию MacOS (Sosumi — сразу минус) и не потратить уйму свободного времени на возню с конфигами и терминалом. Поехали.
Читать дальше →
Всего голосов 68: ↑64 и ↓4+75
Комментарии67

GitFlic: нас обвинили в «распиле» — мы не поняли почему, но посмеялись

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

Здравствуй, читатель!

"...Российский GitHub..." - за такую фразу в заголовке на Habr'e однажды зацепился мой взгляд. С предвкушением я нырнул под кат и... Увы, обнаружил лишь поверхностный обзор, щедро сдобренный издёвкой и скриншотами. Но, согласитесь, ведь не каждый день на горизонте событий возникает что-то IT-шное с припиской "российский", посему любопытство грубо вытолкало меня из раковины интроверта и заставило обратиться напрямую к наиболее надежному источнику - команде сервиса GitFlic.

Читать далее
Всего голосов 66: ↑20 и ↓46-20
Комментарии117

Настраиваем окружение Qt6+QtC без VPN

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

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

Обычные советы, как это обойти, включают:

Используй платный безлимитный VPN;
Используй дистрибутив Linux и его бинарные сборки;
Собирай сам из исходинков.

Все это рабочие советы, но не очень дружелюбны к начинающим разработчикам, которые только hello world начинают собирать. Я расскажу, как можно быстро настроить окружение используя зеркала Yandex и github.

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

Информация

В рейтинге
Не участвует
Откуда
Таганрог, Ростовская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Software Developer, Mobile Application Developer
Git
C++
Qt
Cmake
Linux
PostgreSQL
SQLite