Обновить
0
0.1

программист

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

Точечная маршрутизация по доменам на роутере с OpenWrt

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели362K

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

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

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

Помимо инструкций по настройке туннелей Wireguard и OpenVPN, написал инструкцию по использованию технологий, которые помогут в обходе блокировок по протоколу: Shadowsocks, VLESS и прочими.

Читать далее

Как и зачем мы делали свое браузерное расширение для мокирования API

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели8.3K

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

Что тут можно поделать? Можно подождать, пока починят стенд. Можно залезть в код и что-нибудь там нахардкодить, переполнив его ненужной логикой моков. Можно поставить Postman, Insomnia или другие популярные решения. Но у каждого подхода есть подводные камни: простои и сорванные дедлайны, забытые хардкоды в продакшене, необходимость согласований с инфобезом (особенно если вы работаете в банке) и зависимость от внешних серверов.

Мы попробовали существующие решения и поняли: ни одно из них не закрывает наши потребности полностью. Нужно было что-то свое: простое в установке, работающее офлайн, не требующее дополнительных приложений и аккаунтов. Что-то, что можно быстро настроить под себя и не зависеть от внешних решений вендора. Так появился наш велосипед — браузерное расширение Req-Saver. 

Да, представимся. Мы — Александр Битько и Дмитрий Панфилов, фронтенд-разработчики в ПСБ. Сегодня расскажем, как превратили мокирование запросов из головной боли в простую и понятную работу.

Читать далее

Путеводитель по Ktor JWT auth на стороне сервера

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели917

Документация Ktor по server-jwt неполна. Если необходимо сделать что-то за рамками «Hello world», придется лезть в исходники и городить костыли. Какой-то консистентности и предсказуемости ждать не стоит, возможно, не обошлось без заговорщиков.

Статья покроет необходимую базу для работы с JWT и убережет от множества подводных камней.

Читать далее

Как собрать Docker-образ, который можно запускать в проде (а не только у себя на ноуте)

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели20K

Если ты пишешь Dockerfile, скорее всего, он работает. Но вопрос не в том, работает ли. Вопрос в другом: будет ли он работать через неделю, на другом сервере, в CI/CD, на чужом железе — и будет ли это безопасно?

Читать далее

Быстрый Frontend в 2025: почему RTK Query, Tailwind и Vite убивают классические подходы

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Ни для кого ни секрет, что разработка и IT‑решения в 2025-м году — это гонка за скоростью: от выяснения бизнес‑требований до финальной версии продукта. Чем быстрее пишется код, тем раньше ваш продукт попадает к пользователям. Разумеется, выбор технологий существенно сказывается на скорости разработки.

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

Читать далее

Оптимизация запросов в Django. Подробное руководство

Уровень сложностиСложный
Время на прочтение60 мин
Охват и читатели3.8K

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

Данная статья подходит как для начинающих, так и для достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.

Читать далее

Голосовой ассистент на python

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

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

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

Читать

Минцифры дало ответ, что действия ТБанк по получению согласия на обработку биометрии противоречат положениям закона

Время на прочтение11 мин
Охват и читатели30K

Минцифры дало ответ, что действия ТБанк по получению согласия на обработку биометрии НЕ соответствую (противоречат) положениям закона⁠⁠.

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

Читать далее

Давайте сделаем крупное приложение на Flask (язык Python)

Время на прочтение18 мин
Охват и читатели18K

На Хабре я часто вижу статьи о реализации тех или иных фич на Python-фреймворках. Я объединил все эти фичи в реальный проект с открытым исходным кодом, чтобы у вас сложилась целостная картина. Мы с вами создадим UX/UI на Figma, напишем фронтенд на HTML, CSS, SASS, Bootstrap и JavaScript, создадим ER-диаграмму в MySQL Workbench, напишем бекэнд на Flask, создадим регистрацию через социальные сети OAuth 2.0 в один клик, используем брокер сообщений и асинхронную очередь Celery для отправки писем на электронную почту, сделаем WYSIWYG-редактор, реализуем полнотекстовый поиск Elasticsearch, закешируем Redis, покроем тестами pytest и запустим в Docker-контейнерах, поговорим о многопроцессности для WSGI-шлюза Gunicorn.

Читать далее

Дообучение модели GPT-2 (RUS) для генерации описаний заведений на основании названия, рубрики и оценки

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.6K

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

Читать далее

Как «оптимизация» зарплат вредит бизнесу, и что делать

Уровень сложностиСредний
Время на прочтение64 мин
Охват и читатели55K

Оптимизация фонда оплаты труда (далее - ФОТ) в долгосрочной перспективе вредит компаниям, ухудшает их положение и усиливает кризисы.

Этот вопрос мы рассмотрим на основе проблем в Boeing и Blizzard, разбора жёсткого поведения Amazon в отношении сотрудников, с примерами лучших практик Генри Форда и General Electric, а так же ссылками на исследования, с описанием психологических аспектов и ключевых трендов. И рекомендациями: что с этим делать.

Цель данной публикации - описать ключевые аспекты и нюансы проблемы, чтобы любой мог прийти к финансистам, кадровикам или генеральному директору с ней со словами “хватит вредить бизнесу оптимизацией ФОТ!"

Оптимизировать вред оптимизации ФОТ

Рекомендации при работе с PostgreSQL

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели34K

Доброго времени суток. Основываясь на своём опыте хочу представить некоторые рекомендации при разработке кодовой базы на SQL.

Данные рекомендации получены горьким опытом, так что надеюсь, они Вам помогут :)

Читать подробнее и больше не косячить

Как установить Windows 11

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

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

Читать далее

Кастомизируем VS Code для веб-разработки

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

Привет, меня зовут Филипп, я фронтенд-разработчик в KTS.

Visual Studio Code — это бесплатный, шустрый (что важно на больших проектах) и глубоко кастомизируемый редактор кода.

В статье расскажу, какие настройки и плагины VS Code использует наша команда фронтенда в KTS. Материал может быть полезен для JavaScript- и React-разработчиков, а ещё для тех, кто уже давно пользуется VS Code, но не знает о некоторых полезных плагинах и фичах для повседневного использования. 

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

Также я рассмотрел инструменты для оптимизации работы с Git, шаблоны директорий и другие возможные настройки.

Читать далее

Вам не нужен для этого JavaScript

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

Прошу вас не возмущаться названием статьи. Я не ненавижу JavaScript, я люблю его. Ежедневно я пишу на нём кучу кода. Но ещё я люблю CSS и даже люблю JSX HTML. Я люблю все эти три технологии по причине, которая называется…

▍ Правило наименьших полномочий


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

В случае веба это означает, что нужно по возможности выбирать HTML вместо CSS, а затем CSS вместо JS. JS — самый универсальный язык из всех трёх, потому что на нём вы описываете, как должен вести себя браузер; но также он может ломаться, отказываться загружаться, требует дополнительных ресурсов для скачивания, парсинга и исполнения. Кроме того, при его использовании очень легко ограничить доступ пользователей, выполняющих браузинг при помощи клавиатуры или специальных возможностей.

В отличие от JS с его императивностью, HTML и CSS декларативны. Вы говорите браузеру, что делать, а не как это делать. Это значит, что браузер сам выбирает, как это делать, и может сделать это наиболее эффективным образом.

Так как функции HTML и CSS обрабатываются браузером, они могут быть более производительными, более нативными, более адаптируемыми к предпочтениям пользователя и в общем случае иметь бОльшую accessibility. Это не значит, что так будет всегда (особенно когда дело касается accessibility), но когда все сложные задачи берёт на себя браузер, от этого обычно выигрывают конечные пользователи.
Читать дальше →

OpenConnect: недетектируемый VPN, который вам понравится

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели383K

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

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее

Свой бесплатный телеграм-бот на базе GPT4free

Время на прочтение7 мин
Охват и читатели78K

В этой статье я покажу, как создать свой телеграм-бот ChatGPT на базе библиотеки GPT4free.

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

Читать далее

Оптимизируем Android приложение в пару подходов

Время на прочтение7 мин
Охват и читатели5.9K

Работа с утечками памяти

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

Одна из самых распространенных проблем оптимизации, с которой сталкиваются разработчики Android, это утечки памяти. Утечка памяти в Android-приложениях происходит, когда объекты, которые больше не используются, по какой-то причине не удаляются сборщиком мусора и продолжают занимать память. Это может привести к избыточному потреблению ресурсов и снижению производительности приложения.

Leak Canary

Leak Canary — это открытая библиотека для Android, которая помогает обнаруживать утечки памяти в вашем приложении. Как только утечка обнаружена, Leak Canary предоставляет уведомление с отчетом, который помогает разработчикам быстро найти и устранить причину утечки. Вся суть работы Leak Canary заключается в следующем: при добавлении зависимости в проект, в процессе его сборки интегрируется отдельный модуль. Этот модуль отслеживает жизненный цикл ссылок основных компонентов Android (и не только). Основная цель этого инструмента — обнаруживать утечки памяти, связанные с долгоживущими объектами, такими как активности, фрагменты и другие компоненты Android, которые не были корректно очищены.

Читать далее

ChatGPT — лучший помощник программиста. Примеры реальных задач. Плагины и инструменты

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели72K

Языковая модель ChatGPT никогда не заменит программиста, потому что непосредственно редактирование кода — это крохотная часть разработки (5% по времени). Зато ChatGPT великолепно помогает. И чем выше ваш скилл — тем больше пользы от «подмастерья», выполняющего мелкие задания и черновой кодинг. Он пишет простые функции, генерирует документацию, находит и объясняет ошибки, выполняет кучу других задач (полный список под катом).

Сегодня не использовать ChatGPT просто глупо… Это действительно универсальный помощник, который сильно облегчает жизнь и выводит программирование на принципиально новый уровень. Одно из величайших изобретений в IT за десятилетия, после GUI и интернета.

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

Информация

В рейтинге
4 029-й
Откуда
Москва и Московская обл., Россия
Зарегистрирован
Активность