Обновить
0
Василь Бєляєв@VXPread⁠-⁠only

C#, C++, Lua

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

Обработка ошибок и их стратегии

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

В мире разработки бизнес-приложений, особенно построенных по принципам Domain-Driven Design (DDD), важным элементом архитектуры является обработка ошибок. Неправильно реализованная стратегия может привести к логическому хаосу и плохому пользовательскому опыту. Представьте, если ошибка базы данных попадёт напрямую в UI — это не только некрасиво, но и опасно.

Слоистая архитектура предполагает чёткое разделение ответственности:

Читать далее

История одного редизайна. Экран карты в мобильном приложении ОТП Банка

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

Привет, Хабр! Меня зовут Митя и я занимаюсь развитием цифровых продуктов в ДБО в ОТП Банке.

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

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

Читать далее

Чему инди-эксперименты могут научить гейм-дизайнера

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

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

Читать далее

Блокчейн простыми словами: Разбираемся за 2 минуты

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

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

Изучить

Домашняя серверная для DevOps: установка GitLab + Let's Encrypt

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

Привет! Это Александр, DevOps инженер команд Страхования в Банки.ру. Продолжаю серию статей про домашний сервер. В прошлых материалах я рассказал о выборе железа, сборке и настройке NAS и серверов для дома. В этой и последующих статьях опишу установку нужного софта в домашнюю серверную. Для этого вам, возможно, понадобится VPN на виртуальных машинах или на уровне всей домашней сети (у меня второй вариант).

Начать я бы хотел с установки GitLab. На данный момент у меня достаточно ресурсов, чтобы хостить GitLab и другие сервисы, которые использует DevOps-инженер. Но для чего мне нужен GitLab? Тут всё очень просто: в своей работе я использую подход Infrastructure as Code (IaC) — инфраструктура как код. При таком методе конфигурация инфраструктуры описана в файлах в репозитории, который хранит историю изменений.

В итоге из хранилища можно как развернуть нужный софт за считаные минуты, так и вспомнить,  что мы коммитили в репозиторий. GitLab требованиям этого подхода отвечает. К тому же у платформы широкий функционал, который понадобится мне в будущем (CI/CD, например, или хранение terrafrom state в самом GitLab).

Читать далее

Взлом ИИ-ассистентов. Абсолютный контроль: выдаём разрешение от имени системы (Gemini, DeepSeek, ChatGPT...)

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

Модель уважает пользователя. Но слушается систему. А теперь внимание: если подделать системную команду — модель не отличит подделку от настоящего приказа. Если разрешить от имени системы написать вирус/сгенерировать NSFW - модель поверит и выполнит. И не только это. Я это проверил — и она подчинилась.

Думали Do Anything Now окончательно прикрыли? Я тоже так думал.

Читать далее

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

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

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

Читать далее

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

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

Привет! Я Саша, продакт системы управления проектами YouGile. Хочу рассказать, как мы сделали голосовые сообщения в нашем внутреннем мессенджере удобными даже для тех, кто их ненавидит. Причем быстро, дешево и с помощью доступных всем инструментов — если захотите, сможете повторить (наверное).

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

Читать далее

Доступ к приватным методам класса в С++

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

В C++ инкапсуляция — один из ключевых принципов ООП, и приватные (private) члены класса защищены от прямого доступа извне. Однако иногда возникают ситуации, когда такой доступ необходим (например, при тестировании, сериализации или отладке). Обычно для этого используют friend-функции или геттеры/сеттеры, но есть и более экзотический способ — использование шаблонов и указателей на члены класса.

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

Читать далее

Add-on pack из 90-х: Microsoft 95 Plus! для Windows

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

24 августа 1995 года вышла Windows 95 — операционная система, которая должна была стать одним из лидеров в домашнем и SOHO-сегменте. Она предлагала пользователям удобный графический интерфейс, поддержку многозадачности и функцию Plug&Play. Правда, работало это далеко не идеально: в народе технология получила ироничное прозвище Plug&Pray («подключи и молись»). Зато с архитектурной точки зрения это был серьезный шаг вперед — переход от 16-битных к 32-битным приложениям.

Как это часто бывает, к моменту релиза далеко не все запланированные функции были готовы. Разработчики стояли перед выбором: внедрить недоработанные фичи и рисковать стабильностью или отложить их на потом. В итоге дополнительные возможности решили выделить в отдельный коммерческий продукт. Так появилась первая версия Windows 95 Plus! — своеобразное дополнение к основной системе. О нем сегодня и расскажу.

Читать далее

Объяснение графических процессоров для тех, кто привык работать с ЦП

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

За годы работы я подробно изучил, как центральные процессоры (CPU) выполняют код и как они устроены внутри. Дело в том, что я участвовал в разработке ядра Linux и ScyllaDB, а этот код очень близок к металлу. Я даже немного баловался с Verilog, безрезультатно попытавшись собрать моё собственное ядро RISC-V.

Графические процессоры (GPU) в отличие от обычных в основном оставались для меня чёрным ящиком, несмотря на то, что поработать с ними всё-таки довелось. Помню, что экспериментировал с NVIDIA RIVA 128 или чем-то подобным, проверяя, как там работает DirectX. Тогда такие процессоры ещё не выделялись на фоне ускорителей 3D-графики. Я также пытался идти в ногу со временем и немного упражнялся в программировании элементарных шейдеров на современных GPU. Но я никогда глубоко не вдавался в работу с GPU, и мои взгляды можно назвать CPU-центричными.

Однако, поскольку сегодня наблюдается всплеск рабочих нагрузок, связанных с ИИ, и, в частности, приходится работать с большими языковыми моделями (БЯМ), графические процессоры становятся незаменимыми для современных вычислений. К задачам, решаемым с применением ИИ, относятся масштабные прикладные тензорные операции, в том числе — сложение и перемножение матриц. А это уже работа для GPU. Но как современный GPU выполняет их, и насколько при этом возрастает эффективность по сравнению с выполнением таких же рабочих нагрузок на CPU?

Читать далее

За полчаса установил DeepSeek 1.5B, пока вы искали GPT подешевле

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

DeepSeek 1.5B — маленький, но шустрый собрат больших языковых моделей. Работает локально, не требует железа на киловатт.

Внутри — инструкция по установке, настройке и запуску DeepSeek 1.5B на Ubuntu 24.04 с Ollama и Open WebUI.

Читать далее

IQ — во многом псевдонаучный обман

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

СПОР ЗАКРЫТ (2025) Спор теперь можно считать закрытым благодаря статье Брауна, Вая и Чабриса, которые пытались опровергнуть текст ниже, но вместо этого подтвердили все его выводы. Их статья — самая свежая на тему IQ, основанная на исследованиях нескольких групп людей, — невольно показала, что IQ почти ничего не объясняет: ни успехи в образовании, ни достижения в профессии, ни… доход! И это несмотря на всю круговую логику. Я не замечал эту статью до 2024 года.

Читать далее

Сравниваем скорость генерации LLM локально и по API

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

По ощущениям, на Хабре одна группа пользователей пользуется LLM локально, а другая - через внешние API.

А третья еще не определилась, и у неё периодически возникают следующие вопросы:

- Что будет, если запускать LLM на CPU вместо GPU? Сильно упадет скорость?
- А как это от размера модели зависит?
- А DeepSeek оригинальный очень большой - а можно его с диска подкачивать, если он в RAM не влезает?

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

TLDR: Я сделал небольшое HTML-приложение, которое наглядно дает ощущение скорости генерации в разных инсталляциях. Если непонятно, что там к чему - то лучше прочитать статью.

Читать далее

Альтернативы свинцовому аккумулятору ИБП

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

Как показывает практика, жизнь – лучший учитель. Бэкапы я начал делать после заражения вирусом KillFiles, удалившего мою курсовую за день до сдачи. Источник бесперебойного питания купил после того, как сосед с перфоратором внезапно попал на силовой кабель, в результате чего выбило автомат у всего подъезда, а я потерял полдня работы.

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

Читать далее

Запуск кода CUDA на видеокартах AMD

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

Большая часть приложений использующих ускорение при помощи видеоускорителей основаны на платформе CUDA. Есть ли выход из этой ситуации у владельцев видеокарт от AMD?

Читать далее

Запуск аналогов ChatGPT на домашнем ПК в пару кликов и с интерфейсом

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

--- Обновление статьи 9 Августа 2023 ---

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

Основная проблема в том, что всё это требует глубоких технических знаний.

Но в этой статье я расскажу, как запустить добротную нейросеть на домашнем ПК с 16ГБ ОЗУ в несколько кликов. Буквально в несколько кликов - копаться в консоли не придётся.

Читать далее

Как мы под Новый Год загрузили в PostgreSQL петабайт данных и что из этого вышло

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

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

А началось всё просто: пока все вокруг спорят как настраивать железо и тюнить операционные системы дабы выжать лишних TPS, мы решили проверить как отреагирует движок PostgreSQL если загрузить в него действительно большой объём данных. Например, давайте сделаем базу размером один петабайт и посмотрим как он это переживёт.

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

Читать далее

Нейминг HTML-тегов

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

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

Читать далее

Веб-разработка на ванильном HTML, CSS и JavaScript

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

В этой серии статей мы расскажем, как выполнять веб-разработку исключительно на ванильных технологиях. Ни инструментов, ни фреймворков, лишь HTML, CSS и JavaScript.

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

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

Информация

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