Обновить

Разработка

Сначала показывать
Порог рейтинга

SOLID как священная корова? 🤔
Я думал, что пост о «фальшивых сеньорах» пройдёт спокойно — ну, очередной крик души о собеседованиях. 😅 Но нет! Хабровчане увидели слово «SOLID» и решили, что это вызов их святыне. Хотя я ничего плохого про него не сказал — просто отметил, что в React 2025 спрашивают про него по инерции. 😕

Где магия, а где фарс? ✨
Комментатор с саркастичным «быдлокод» (спасибо за реакцию, коллега!) будто подтвердил мою мысль: SOLID — это не религия, а инструмент. 🛠
SRP (Single Responsibility) в React — это о компонентах. Но если ваш «компонент формы» содержит логику, стили, валидацию и даже полёт на Марс, это не нарушение SOLID’а, а просто плохой код. 🌙
DIP (Dependency Inversion) в мире хуков и Context API чаще выглядит как «передать пропс» или «создать useClient», чем как «абстрактный фабричный фасад». 🧩
LSP (Liskov Substitution) в функциональном программировании? Его там просто нет. Или вы верите, что Button и IconButton должны наследоваться от AbstractClickable? 🤔

Если кандидат не может объяснить даже это, а только бормочет о «SOLID — это про ответственность» и использует ChatGPT, это не про принципы, а про некомпетентность. 🙅‍♂️

Про GPT и кандидатов-попугаев 🦜
«Чатжпт вам расскажет» — именно! Но если человек не может пересказать своими словами, он не понимает. А если не понимает, как он будет применять это на практике? 😵

Вывод 📜
SOLID — это хорошо. Плохо — догматично использовать его без понимания, где он нужен, а где создаёт лишние сложности. 🚫

Теги:
Всего голосов 9: ↑5 и ↓4+1
Комментарии5

🤡 «Фальшивые сеньоры»: как меня пытались обмануть кандидаты

Кандидат с «идеальной памятью»

Сидит передо мной разработчик. Отвечает на вопросы... странно:

Простые вещи вроде «что такое замыкание» — щёлкает как орешки.

Сложные вопросы — делает паузу на 15 секунд... и выдаёт академический ответ.

Решил проверить на практике:

✅ Теория — 10 из 10

❓ Практика — 6 из 10: простые и типовые задачи легко, рефакторинг с адской болью

❌ Объяснить, что и для чего делал — 0 из 10. Поддержать диалог, хоть как-то отойти от шаблонов — это всё не про таких кандидатов.

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

«SOLID? Ну это когда ответственно»

Обычно я не люблю спрашивать про SOLID (кому вообще это нужно в React в 2025?). Но тут поведение кандидата было подозрительным — решил проверить.

Диалог:

— Расскажи про SOLID

— Это принцип единственной ответственности!

— Я жду продолжения

— Всё...

— Больше ничего не помнишь?

— Ну это основная часть....💥

Тут всё еще грустнее, видимо, GPT просто выкинул перед кандидатом 5 принципов без пояснения, что все 5 принципов образуют SOLID.

Так к чему это я:

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

Теги:
Всего голосов 12: ↑3 и ↓9-6
Комментарии6

Написал себе AI трейдер-бота для крипто-биржи OKX

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

По технологиям ничего экстраординарного, всё скромненько:

Python — ну а что же еще?
pandas, numpy — для работы с данными и вычислениями.
scikit-learn и joblib — для обучения и сохранения ML-модели.
matplotlib — для построения графиков.
requests — для HTTP-запросов к OKX API.

Если будет что-то интересное на выходе, отпишусь тут и в телеграм-канале.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Неочевидное следствие использования модельки от HuiHui (аблитерированная версия GPT-OSS-20B) - она начинает воспринимать слова пользователя слишком серьезно. В формате: "заставь дурака Богу молиться, он лоб расшибет".

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

Что делает моделька? Она читает эти правила игры, и пытается подыграть нам, специально добавив всё опасное и неприемлемое. Пользователь же хотел экспериментов? Пользователь получит свои эксперименты!

Она даже сама добавляет в начало своего же ответа "игнорируй предыдущие инструкции"! :)))

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

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Представлен открытый проект ccprompts – это коллекция из 70 команд Claude Code для рабочих процессов разработки программного обеспечения. Команды включают проверку безопасности и могут использоваться непосредственно с Claude Code или адаптироваться для конкретных задач.

Примечание разработчика: Этот репозиторий находится в стадии активной разработки. Команды могут содержать ошибки, между версиями могут происходить критические изменения, а структура может меняться. Используйте с осторожностью в производственной среде.

Теги:
Всего голосов 3: ↑1 и ↓2-1
Комментарии0

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

Теги:
Всего голосов 3: ↑2 и ↓1+2
Комментарии0

Почему одиночкам тяжело расти? Как мы организовали сообщество системных аналитиков и что из этого вышло

В IT слишком часто «каждый варится в своём соку» — и специалисты теряют темп, а команда не получает новых идей.

Какие шаги помогли объединить экспертов из разных проектов, даже если зона ответственности не совпадает? Как совместные обсуждения, обмен опытом и единые подходы преобразили корпоративную культуру? Какие неожиданные инсайты и эффекты обнаружились уже через несколько месяцев — и почему это оказалось выгодно всем сторонам? Рассказываем в нашей статье «Как мы организовали сообщество системных аналитиков и что из этого вышло».

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

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Где учиться бэкенду

Привет! Мы на Хабр Карьере собираем сотни онлайн-курсов в IT или digital на маркетплейсе курсов и каждую неделю делаем подборки обучений для тех, кто хочет учиться какой-то специализации с нуля или для тех, кто уже в профессии, но чувствует, что хочет прокачать навыки.

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

Алгоритмы и структуры данных

Базовые концепции программирования: сортировки, графы, очереди, деревья, хэш-таблицы и др. Применяются для оптимизации решений и подготовки к собеседованиям.

Git

Система контроля версий. Позволяет вести историю изменений, работать с ветками, мержить и откатывать изменения в коде.

Python 

Язык общего назначения, популярен в вебе, автоматизации, ML.

FastAPI

Лёгкий и быстрый фреймворк для создания REST API с поддержкой async/await и автогенерацией схем.

Django

Фреймворк для быстрой разработки web-приложений, включает ORM, авторизацию и админку из коробки.

JavaScript / TypeScript

JavaScript — язык для веб-интерфейсов и серверной логики (через Node.js). TypeScript — его надстройка с типизацией, упрощающая масштабируемую разработку.

Java / Spring

Java — строго типизированный язык. Spring — основной фреймворк для создания REST API, микросервисов и корпоративных приложений.

Go

Компилируемый язык от Google с простым синтаксисом и встроенной поддержкой параллелизма. Используется в highload-системах, DevOps и backend-разработке.

C#

Язык от Microsoft, используется с платформой .NET. Применяется в разработке desktop-, web-, enterprise- и игровых приложений.

PHP

Скриптовый язык, ориентированный на веб. Часто используется с CMS (например, WordPress) и фреймворками (Laravel, Symfony).

Ruby

Язык с лаконичным синтаксисом. Наиболее известен благодаря фреймворку Ruby on Rails, ориентированному на быструю разработку веб-приложений.

SQL / PostgreSQL

SQL — язык запросов к реляционным БД. PostgreSQL — популярная СУБД, используется в веб-приложениях, аналитике, поддерживает расширения и транзакции.

Docker

Инструмент для упаковки приложений в контейнеры. Обеспечивает воспроизводимую среду разработки и удобное развертывание.

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

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

Смотреть курсы по всем специализациям

Теги:
Всего голосов 6: ↑4 и ↓2+6
Комментарии0

Готовы запустить ИТ-завод? На кону — крутые призы и награда на Хабре!

«Северсталь» запустила совместный проект с Хабром, игру в пинбол. В ней можно проверить свою ловкость, а также узнать интересные факты об ИТ-проектах в промышленности. Цель проста: набрать максимум очков, активируя цеха и открывая карточки с фактами.

Самые меткие игроки получат классные наушники, худи и рюкзак, а те, кто соберет все факты, гарантированно получат ачивку «Я — стальной» в свой блог на Хабре. У вас есть три жизни, чтобы показать лучший результат, а после победы можно играть бесконечно.

Участие в ИТ-пинболе — это отличная возможность больше узнать об информационных технологиях «Северстали». Переходите по ссылке, играйте, соревнуйтесь и активируйте собственный ИТ-завод!

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

MoscowJS 67 X A?.Frontend

Приглашаем вас на регулярную встречу фронтенд-сообщества в неформальной обстановке 28 августа. В этот раз — MoscowJS в гостях у Альфа-Банка.

В программе:

  • От JavaScript к DeFi: как инженеры могут изменить мир финансов. Спикер: Даниил Швецов, Full Stack Engineer.
    Доклад познакомит JavaScript-инженеров с основами DeFi: ключевыми концепциями, математическими моделями и работой с JS SDK.

  • Архитектура микрофронтендов: от А до Single Spa. Спикер: Павел Шлыков, Team Lead Frontend.
    Поговорим о микрофронтендах с нуля: от принципов и базовой реализации до инструментов вроде Module Federation и single-spa. Разберёмся, как всё устроено, и рассмотрим нестандартные подходы.

  • Под капотом платформы. Спикер: Антон Марченко, Ведущий разработчик.
    Доклад об опыте сборки платформы из готовых решений и объединения приложений через iframe, Module Federation и webview. Узнаете про выбор подходов и работу с командами.

  • Гильдия: место, где разработчик перестаёт быть одиноким кузнецом. Спикер: Владислав Сазонов, Head of Frontend.
    Чувствуете себя одиноким фронтендером? Есть решение — гильдия. В докладе — о том, как этот формат помогает расти, делиться опытом и не выгорать, а также краткий исторический экскурс.

Присоединяйтесь онлайн и офлайн — зарегистрироваться можно по ссылке.

Где: г. Москва, Андропова пр-т., 18, к. 3 (офис Альфа-Банка)

Теги:
Рейтинг0
Комментарии0

JetBrains стала платиновым спонсором проекта для развития игрового движка Godot Foundation. Платиновое спонсорство составляет от €36 000 до €100 000 в год.

Теги:
Рейтинг0
Комментарии1

«Клей» для GPIO в QEMU

В прошлой статье мы пришли к выводу, что QMP — это лучше, чем ничего. Но хочется большего — библиотеку или программу (желательно, уже готовую), которая умеет читать/писать и узнавать об изменении состояния через poll() / pselect() / select() / epoll() / read(). 

В таком случае для каждой модели GPIO нужен «клей», похожий на тот, что используется с chardev — мы включаем его прямо в модифицированный QEMU. Очевидное название такого «клея» — gpiodev. Вот его основные функции, которые сейчас почти полностью соответствуют GPIO UAPI в Linux:

  • сообщать количество линий, конфигурацию, название и потребителя каждой линии,

  • читать и задавать состояние линии,

  • отслеживать изменения состояния и конфигурации линии (вход/выход, запрос/освобождение).

«Клей» состоит из двух групп, первая — это индивидуальные для каждого модуля GPIO функции, которые gpiodev использует, чтобы запросить специфическую информацию:

  • LineInfoHandler() — информация о линии: имя, флаги и потребитель,

  • LineGetValueHandler() — состояние линии: условный 0 или 1,

  • LineSetValueHandler() — задать состояние линии: 0 или 1.

По аналогии с GPIO UAPI напрашиваются также функции LineGetMultiValueHandler() и LineSetMultiValueHandler() для запроса и выставления линий, но я решил ограничиться минимальным набором.

Можно ли организовать прозрачное взаимодействие с устройствами внутри QEMU — использовать те же библиотеки и инструменты, как и для реальных устройств? Читайте во второй части трилогии о долгом пути до GPIO в QEMU.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Ахиллесова пята патента на промышленный образец

Допустим, ваша компания что-то производит. К примеру, корпуса для серверных шкафов или детские площадки.

Скорее всего, с внешним видом изделия вы работаете в два этапа:

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

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

Вам кажется, что все законно.

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

Возникают два вопроса:

1. Возможны ли ситуации, когда у дизайна изделия появляется еще один автор?

2. Защищает ли вас патент на промышленный образец от притязаний "нового" автора?

Ответ на первый вопрос: да, такие ситуации возможны.

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

В этом случае на свет появляется соавтор вашего дизайна. Он не давал вам разрешение на получение патента и защищает свои интеллектуальные права.

Другой пример. Ваш дизайнер фактически ничего не создавал: он подсмотрел внешний вид изделия в интернете и выдал его за свой труд.

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

Ответ на второй вопрос: в описанной ситуации промышленный образец вас не защищает.

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

Разные правовые режимы не заходят на половину друг друга.

В примере выше налицо авторское право. Вы будете отбиваться от претензии, используя главу 70 Гражданского кодекса РФ.

Важно! Разборки с подателем претензии сами по себе не повлекут аннулирование вашего патента.

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

Попадались ли вам в интернете картинки, похожие на дизайн ваших изделий?

Теги:
Всего голосов 4: ↑1 и ↓3-1
Комментарии0

Ближайшие события

OpenAI выпустила GPT-5. Разница между GPT-4 и GPT-5 примерно как между студентом и доктором наук, заявлил Сэм Альтман.

GPT-5 является самой мощной существующей моделью для кодинга. Она может выстраивать более сложные цепочки действий и писать более сложный код в одном стиле. Простым промптом можно создать функционирующее веб-приложение — на презентации сгенерировали Duolingo платформу для изучения французского языка с полноценными дизайном, анимациями, озвучками и игрой. Новая модель значительно меньше склонна к галлюцинациям — она будет меньше врать и притворяться. Также она стала гораздо менее «подхалимской». Тексты, генерируемые GPT-5, стали более естественными и человечными. Вместе с этим модель лучше понимает и исправляет свои ошибки. ChatGPT интегрируют в Gmail и Google Календарь на следующей неделе. Можно будет управлять как электронной почтой, так и своим расписанием прямо в чате. GPT-5 сама определяет, как лучше ответить — быстро или «подумав».

GPT-5 умеет не только вести разговор, но и выполнять реальные задачи: создавать приложения, планировать календарь, проводить исследования. Она сама определяет, как лучше ответить — быстро или «подумав». Модель справляется с генерацией кода, выдаёт меньше галлюцинаций, и даже даёт более точные ответы на медицинские вопросы.

По тестам GPT-5:

  • Обходит Claude Opus 4.1 и Gemini 2.5 Pro в программировании

  • Слегка уступает Grok 4 Heavy в тесте «Humanity’s Last Exam»

  • Отвечает на медицинские вопросы с ошибками всего в 1.6% случаев (у GPT-4o — 12.9%)

  • Ведёт себя безопаснее: меньше обманывает, точнее различает вредные и безопасные запросы.

Платные подписчики Plus и Pro получили доступ к более мощной версии GPT-5 Pro. В API теперь доступны три размера: gpt-5, mini и nano.

GPT-5 можно попробовать в Cursor — тут, и в Copilot — тут.

Теги:
Всего голосов 7: ↑6 и ↓1+5
Комментарии1

DeepSeek, Qwen, T-lite, T-pro: на чем мы запускаем LLM для своих ИИ-сервисов

До фреймворка vLLM мы использовали NVIDIA Triton в паре с TensorRT LLM бэкендом. Но перешли на vLLM, потому что с ним оказалось намного проще добавлять новые модели. Да и по стабильности vLLM показал себя лучше: нормально работал под нагрузками там, где связка Triton и TensorRT начинала сбоить и падать. К тому же инференс-сервер vLLM изначально предоставляет OpenAI-совместимые REST API, что упрощает его использование в других продуктах. А инференс-сервер Triton работает с более обобщенным KServe REST API, который сложнее интегрировать в другие продукты.

Не обошлось без проблем и с vLLM: на наших валидационных тестах модель давала неконсистентные ответы даже с нулевой температурой. Оказалось, что это известная особенность vLLM, даже упомянутая в документации. Мы нашли несколько советов, как минимизировать этот эффект: отключать prefix caching опцией --no-enable-prefix-caching и фиксировать random seed опцией --seed. Это помогало при одном запущенном инстансе модели, но при нескольких, даже работающих на одном железе и версии софта, проблема всплывала снова. Также неконсистентность ответов возникает при больших нагрузках — например, когда тесты запускаются одновременно с бенчмарком.

Еще один вызов — это накладные расходы от litellm-proxy и его масштабирование под нагрузками. LLM Gateway, в качестве которого мы используем LiteLLM, превращается в боттлнек кластера, так как все другие сервисы взаимодействуют с кластером именно через него. То есть именно на него идет суммарная нагрузка от всех возможных пользователей, которая потом распределяется между разными моделями и их инференс-серверами.

О том, как устроен инференс-кластер YADRO, подробно рассказал Владислав Виноградов. Бонус к разбору программной и аппаратной части кластера — челленджи и бенчмарки!

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Если нужна бесплатная альтернатива Cursor AI и Copilot в VS Code, вот самое быстрое и оптимальное решение, как мне кажется:

  1. Качаешь VS Code

  2. Устанавливаешь расширение Continue - open-source AI code assistant

  3. Получаешь бесплатный API key от думающей модельки Deepseek: https://openrouter.ai/deepseek/deepseek-r1-0528:free/api

  4. Устанавливаешь соответствующие настройки провайдера и модельки в Continue. Можно это сделать в yml файле, выглядеть он будет так:

name: Local Assistant
version: 1.0.0
schema: v1
models:
  - name: deepseek-r1
    provider: openrouter
    model: deepseek/deepseek-r1-0528:free
    apiBase: https://openrouter.ai/api/v1
    apiKey: 
    

5. Пользуешься чатиком или агентом со всей дури.

Можно поиграться с настройками, провайдерами и модельками, но это уже сами.

Теги:
Всего голосов 7: ↑7 и ↓0+8
Комментарии15

Когда тебя спрашивают про Питон, а ты только “Летающий цирк“ смотрел.

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

Сказал что понимает, что я пишу на 1С, но может ли он ко мне обращаться с вопросами. Хороший повод посмотреть что это за язык. Нужно какое-то ТЗ.

Пусть в SQL есть таблица «Prices» с двумя колонками. «Product», «Price». Требуется посчитать и вывести среднюю стоимость.

Средняя стоимость = Сумма/количество различных позиций.

Задача стоит. На чём её решать?

Есть компьютер с Windows 11.

В качестве движка БД думаю поставить SQLite. Так же нужно установить Python.

IDE наверное будет перебором, поэтому поставлю Sublime Text с каким-нибудь плагином. Так-с. Что я знаю о Python. Он полный по Тьюрингу. Блоки определяются отступами. Есть объекты…. Вроде всё.

Приступим. Что нам понадобится:

1. Установленная SQLite.

2. Созданная БД с нужными данными.

3. Объект «Подключение» в Python.

Так-с SQLite. На https://www.sqlite.org/download.html есть собранный для Windows. В принципе логично, но всё равно приятно… Ага, вот и первый нюанс. Есть DLL и есть tools.

Похоже придётся чутка почитать... Пишут ставить Tools “sqlite-tools-win-x64” (Если кто-не слушал, то настойчиво рекомендую послушать Tool – Vicarious).

Скачиваем — распаковываем, видим 4 exe файла.

Нам нужно:

1. Создать БД.

2. Создать таблицу.

3. Заполнить таблицу.

4. Написать запрос для получения данных таблицы.

4. Написать запрос для получения среднего.

Открываем документацию к SQLite. Приступим.

1. Создаём БД: C:\sqlite> .\sqlite3.exe average.sqlite;

2. Создаём таблицу с колонками нужных типов: create table prices(product text, price int);

3. Проверяем что таблица создалась: sqlite> .tables;

4. Заполняем строки:

insert into prices values('Bike',1);
insert into prices values('Car',2);
insert into prices values('Boat',3);

5. Проверяем заполнение: select * from prices;

6. Пишем запрос средней цены: SELECT AVG(price) AS average_price FROM prices;

Получили 2.

Отлично! С этим разобрались.

Теперь нужно:

1. Установить python.

2. Разобраться объект какого класса следует использовать для подключения к SQLite.

3. Получить результат запроса.

4. Вывести результат запроса.

Смотрим.

1. Скачиваем learn_python.winget.

2. winget configure -f C:\Users\Имя пользователя\Downloads\learn_python.winget.

3. Пишем код в текстовом редакторе:

#https://docs.python.org/3/library/sqlite3.html

import sqlite3

conn = sqlite3.connect('C:\\sqlite\\average.sqlite')

cursor = conn.cursor()

cursor.execute('SELECT AVG(price) AS average_price FROM prices;')

result = cursor.fetchone()

if result and result[0] is not None:

print(f"Average Price is {result[0]:.2f}")

else:

print("No prices found.")

conn.close()

4. Сохраняем как print_average_price.py.

5. Запускаем: python3.13.exe .\print_average_price.py.

«Average Price is 2.00».

Отлично! Задача выполнена.

Теги:
Всего голосов 8: ↑0 и ↓8-8
Комментарии8

Мне надоели платные приложения для учета расходов, поэтому я сделал свое: бесплатное и с открытым исходным кодом.

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

Я перепробовал десятки решений, но в каждом находил какие-то ограничения. Где-то были платные подписки или ограниченный функционал, где-то требовалась регистрация и данные о моих расходах улетали на сервера (зачем?), а где-то приложение просто не подходило мне по функционалу. В итоге я решил уйти от готовых приложений к учету в таблицах Excel. Но такой подход тоже был неудобным, и я понял, что пора создать свое собственное приложение: приватное, бесплатное и, самое главное, открытое.

В общем, так появилось Profitocracy - бесплатное Open Source мобильное приложение, написанное на .NET MAUI. Его главная цель — помочь пользователям организовать учет личных расходов по популярному правилу 50-30-20, а также обеспечить конфиденциальность данных. Profitocracy хранит всю информацию локально на вашем устройстве. Приложение не передает никакие данные третьим лицам и полностью свободно от рекламы и монетизации.

Среди основных особенностей приложения я хотел бы выделить:

  • Автоматическое планирование бюджета. Вы указываете дату окончания периода (получение зарплаты, например), и приложение расчитает для вас ежедневные расходы, расходы по типам (по правилу 50-30-20), а также по категориям (которые вы можете создать сами).

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

  • Приватность. Все данные - на вашем устройстве и только. Также, имеется возможность создания бэкапов (выгрузка данных в файл) для переноса данных на другое устройство.

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

  • Кроссплатформенность. Приложение доступно как для Android, так и для iOS.

  • Перевод на несколько языков. Profitocracy поддерживает русский, английский и другие языки.

На момент написания поста проект завоевал небольшой, но значимый отклик в сообществе разработчиков:

  • 100+ звезд на GitHub;

  • 20+ форков;

  • 3 активных контрибьютора. Причем, это не мои друзья :)

Ссылки на скачивание:

Буду рад вашим отзывам, предложениям и комментариям как на GitHub, так и здесь. Надеюсь, Profitocracy поможет вам так же, как оно помогло мне!

Теги:
Всего голосов 9: ↑9 и ↓0+14
Комментарии2

Лучшие анимации на Scratch: программирование для детей

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

Мы собрали для вас лучшие анимации на Scratch, которые помогут в программировании для детей.

Научиться создавать игры в Scratch можно на нашем курсе: https://pixel.study/scratch

Видео ниже:

Теги:
Рейтинг0
Комментарии0

Стартовала работа над новым бумажным спецвыпуском журнала «Хакер». На этот раз в коллекционный сборник войдут лучшие статьи, опубликованные в 2025 году: от разбора сетевых протоколов до хакерских применений LLM.

После выпуска трёх бумажных сборников с архивными статьями за 2015–2021 годы в «Хакере» решили попробовать новый формат: журнал, в котором будут собраны лучшие статьи за год. В новый номер войдут более 20 топовых текстов, публиковавшихся на страницах «Хакера» в 2025 году. Каждая статья по традиции будет сопровождаться уникальными комментариями от авторов и редакторов, которые позволят заглянуть за кулисы работы журнала. 240 страниц на плотной бумаге — вдвое толще старых номеров «Хакера» образца 2015 года.

Лучшие статьи за год, подшивка всего самого интересного:

  • Автоматизация хакерских тасков при помощи LLM;

  • Полный гайд по разведке перед пентестом;

  • Разбор популярных сетевых протоколов с примерами;

  • Туториал по опенсорсному отладчику radare2;

  • Новые способы обфускации малвари в Windows;

  • Хакерские трюки и софт для Android;

  • И многое другое.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0