Обновить

Бэкенд

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

Can a Machine Think?

Пару дней назад я нашёл свою первую публично опубликованную статью, которую написал более 5 лет назад

Через 2 года после того, как OpenAI выпустили документ "Improving Language Understanding by Generative Pre-Training" — то, что можно считать основой GPT-1

Тогда рассуждения об ИИ, с которым можно качественно общаться, воспринимались как что то далекое. Похоже на то, о чем рассуждал ещё Алан Тьюринг

А Siri и Google Assistant были вершиной публично доступных чат-ботов

Но прошло 5 лет, и ИИ агенты это уже данность. Они спокойно проходят не только тесты Тьюринга, но и вообще любые тесты

Но есть одна проблема...

Мы уперлись в стену

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

Можно улучшать модели через мелкие улучшения изнутри, увеличивать reasoning tokens за счет роста вычислительных мощностей и структур сетей, но от этого подобные модели не перестанут быть next token prediction

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

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

И это — наше главное эволюционное преимущество, которое привело нас туда, где мы есть

В чём разница между пересказом и пониманием?

«Откуда мы знаем, что существуют чёрные дыры, квазары, взрываются сверхновые и образовываются всевозможные химические элементы, из которых состоит наше тело и Земля? Ведь это невообразимо далеко и невероятно сложно»

«Мы это знаем благодаря телескопам и измерительным устройствам» — это плохое объяснение

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

Объяснения — это самый базовый элемент, который позволяет человечеству создавать новые знания

Которые создаются только таким способом

Выдвинуть гипотезу — догадаться/предположить, что что-то устроено определённым образом
Сделать действия — проверить гипотезу экспериментами
Обработать данные — получить обратную связь от мира
Сделать выводы — выбросить гипотезу, принять или доработать

А затем ждать лучшего объяснения

И да, это стандартный продуктовый подход через HADI циклы

И именно этот процесс привёл к созданию всего знания, всех инструментов в мире

Другого процесса создания знания не существует

Библиотека vs Лаборатория

Мы посадили ИИ в библиотеку, а ему нужна лаборатория

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

Но если мы хотим настоящий AGI, то он должен стать учёным. Он должен создавать новые знания

Bottle Neck человечества для создания знаний

На планете менее 1% людей в определённый момент времени занимаются созданием знаний на границе неизвестного

Мы ограничены количеством мозгов и рук, которые способны выдвинуть гипотезу, проверить ее и сделать выводы

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

Путь к сингулярности

Для создания AGI нам нужно научить ИИ

  1. Выдвигать гипотезы

  2. Проверять их экспериментально

  3. Делать выводы и, в идеале, делиться ими

Для этого ему понадобится доступ к нашему миру через сенсоры. И развитие робототехники — необходимый шаг

AGI = Модель + HADI циклы + Реальный мир

После того, как мы научим ИИ проходить HADI циклы, мы войдём в эру сингулярности знаний

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

Вместо 1% человечества, которые генерируют знания, нам нужно будет создать ИИ-ученых, работающих 24/7

Это и будет состояние мира, близкого к настоящей сингулярности

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

Лайфхак по нейронкам №89: лоцируй связанный код

Когда-то писал о подходах, которые в эру нейронок получили еще аргументов к применению: WYNWYN и Vertical Slice – принципам, говорящим, что надо писать только то, что нужно и там где нужно.

Недавно работал с кодовой базой, где код обработки http запросов (авторизация, пойти в бд, посчитать что-то, сделать запрос в стороннюю систему, смерджить результат и отдать) лежал в папках по категории (все обращения в бд в одной папке, все модели в другой, все обращения к API в третьей, все операции по мерджу в четвертой, и т.д.).

Когда я пытался попросить нейронку (платные Claude, Codex, Gemini) что-то сделать с этими ручками, то для решения ей приходилось каждый раз собирать полный контекст папок, и как только она осознавала бесполезность сего предприятия, резко обрезала контекст, недобирала нужного кода и отвечала нерабочим куском галлюцинации.

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

Решил сделать эксперимент: сложил весь связанный код в одно место (причем не ctrl-c-v, а ctrl-x-v), запустил нейронку и да, она сначала прочитала весь связанный код из папок, и уже после пыталась добирать доп контекст из сторонних, но теперь ответы и код были почти 100% попаданием в мой запрос (опять же, в меру их текущих возможностей).

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

И тут важно сделать несколько умозаключений:

  • Если нейронке НЕ дать хороший контекст, она отвечает абсолютным бредом, поэтому, если есть желание пользоваться благами ИИ, самая важная задача – создавать условия при которых она будет получать только нужные данные

  • Лоцирование связанного кода – одно из прекрасных решений этой задачи

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

Как вы действуете, если кодовая база разбросана по проекту и нет возможности собрать ее в одном месте, а контекст нейронки надо задать?

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

Инфраструктура под ключ за 4 часа: миф или реальность?

➡️ узнаем на бесплатном вебинаре 3 сентября!

Главные вопросы:

  • Какие компоненты инфраструктуры можно развернуть «из коробки», а какие придется разворачивать руками?

  • Terraform и Ansible — Король и Королева, или есть альтернативы?

  • Пошаговый алгоритм развёртывания: что нужно сделать до старта, на шаге 0 и далее до момента введения в эксплуатацию?

  • Какие бывают точки отказа(SPOF), и где они обитают?

  • Увеличение нагрузки: на каком этапе об этом думать?

  • Что делать при сбое? Все пропало? Или можно подстелить солому?

В конце вебинара — чек-лист для старта и оптимальная последовательность действий.

Ведущий: Евгений Федосеев, DevOps-инженер в «ПУЛЬС АЙТИМ»

Спикер: Павел Минкин, DevOps-инженер в Финтех

Когда: 3 сентября в 19:00 мск

Занять место на вебинаре — через бота.

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

Условия - уже в рынке!

Есть такая магическая формула у работодателей - «ваша зарплата уже в рынке». Это не просто слова. Это заклинание. Оно ставит точку в любом диалоге о повышении и, как всякое приличное заклинание, обязано работать в быту.

Ребёнок просит мороженое?

— «Сынок, ты одет, обут и даже сыт. Условия - уже в рынке. Смирись».

Жена жалуется, что давно не водил её в ресторан?

— «Дорогая, по сравнению с жёнами соседей ты прекрасно обеспечена. Условия - в рынке».

Главное правило - не перегревать рынок. В конце концов, кому в наше время нужны объевшиеся дети и перекормленные жёны?

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

Улучшаем опыт бронирования отелей на О! Хакатоне

Кто-то предпочитает отели, кто-то — апартаменты и квартиры, но точно все бы хотели, чтобы искать временное жильё и заселяться в него можно было просто и быстро. Мы в Островке хотим того же, поэтому посвятим этому целый хакатон. А вы своим участием поможете нам.

Если вы Middle- или Senior-разработчик на Python или Go, приходите на «О! Хакатон», решайте интересные задачи и выигрывайте призы. Вам предстоит разработать инструменты для улучшения опыта бронирований и оценки отелей.

Как будет проходить «О! Хакатон»? Вас ждут два трека. На одном предстоит разработать инструмент «Секретный гость». На другом нужно персонализировать подбор отелей, используя данные о пользователе, чтобы предоставить лучшие рекомендации.

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

Регистрируйтесь до 18 сентября 2025 года включительно, «О! Хакатон» стартует 26 сентября. У вас будет 8 дней на решение задач. 

Следите за обновлениями в канале «О! Хакатона» в Телеграме!

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

Выводим Бугаенко на чистую воду разбирая ООП

Топ Перлов

  • Любой массив байт должен уметь работать с файлами, сетью и тд.

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

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

  • Я придумал новый язык, и чтобы он не так сильно тормозил, надо встроить GC в CPU.

Упомянутые ссылки

Копилка благодарностей

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

Мы выбрали 10 топ-хабрастатей за 10 лет, а вы выберите лучший HR-бренд

Будем краткими: в этом году блогу МойОфис на Хабре исполнилось 10 лет!
Мы собрали юбилейную подборку — выбрали по одной ключевой статье на каждый год. Это тексты, без которых, как говорится, нас невозможно представить, еще труднее – понять!

А вас просим оценить нас в ежегодном опросе Хабр/ЭКОПСИ. Это займёт всего 5–7 минут. Мы соберём важную обратную связь, а индустрия получит объективную картину IT-брендов в 2025 году.

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

Мое решение для Нерешаемой Проблемы

Все дети знают, что много мусора создает большие проблемы для Garbage Collector. Ну а взрослые видели и НЕРЕШАЕМЫЕ! Причем, мусора было немного:

We kept digging and learned the spikes were huge not because of a massive amount of ready-to-free memory, but because the garbage collector needed to scan the entire LRU cache in order to determine if the memory was truly free from references.

Что в этом случае делают взрослые? Правильно! Взрослые в ужасе убегают...

У меня есть решение для тех, кто устал убегать: mdb.BlobMap. Это быстрая хеш-таблица, не создающая проблем сборщику мусора:

ОК, что значит "не создающая проблем"? В данном случае это значит, что весь mdb.BlobMap -- это просто массив uint64...

Так НЕ БЫВАЕТ?!

Бывает, чо https://ders.by/go/blobmap/blobmap.html

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

В прошлую субботу я подал заявку на участие в митапе GoSharp Weekend, который проводит компания Ozon Tech. Все заявки на этот митап проходят модерацию, т.к. к участию допускаются только C#- и Go-разработчики уровня middle+.

Вчера я получил письмо с отказом:

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

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

Вышел NATS.go 1.45 - Go-клиент для системы обмена сообщениями NATS.

Ключевые изменения:

  • В Core NATS добавлена обработка превышения максимального количества активных подключений к учетной записи

  • В JetStream добавлена опция WithExpectLastSequenceForSubject для логики публикации

  • Добавили тесты на проверку обновлений KV TTL watcher

  • Исправлено несколько ошибок

GitHub: https://github.com/nats-io/nats.go

ChangeLog: https://github.com/nats-io/nats.go/releases/tag/v1.45.0

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

Прячем секреты приложения. Как Kubernetes помогает защитить ваши данные?

Разберём на бесплатном вебинаре!

Виталий Лихачев, SRE в нидерландском тревелтехе и Максим Киселев, руководитель разработки Deckhouse Stronghold встретятся, чтобы обсудить:

  • Как правильно спроектировать приложение, чтобы оно безопасно получало конфигурацию при работе в Kubernetes

  • Как избежать утечек секретов

  • Почему хранить секреты в Vault безопаснее, чем где-то ещё

  • Что делать, если часть конфигурации — это конфиденциальная информация.

Когда: 27 августа в 19:00 МСК

Разработчики, подключайтесь. Пообщаемся, поспорим и разберём реальные кейсы 🔥

Занять место на вебинаре и получить напоминание о встрече — в боте.

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

Это птица… Это самолет… Это ваша статья на Хабре в космосе! 

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

Принять участие очень просто: поставьте тег «Космотекст» на материале, опубликованном с 1 июля по 31 августа — и все, вы участвуете. Авторы получат тематические ачивки в профиле и смогут выиграть крутой мерч. А для самых везучих — кое-что по-настоящему космическое… Суперприз конкурса — экскурсия на космодром Байконур! 

О чём можно написать?

О чём хотите! Хабр — про технологии в самом широком смысле. Расскажите о технологических открытиях, поделитесь своими знаниями или объясните то, в чём хорошо разбираетесь и хотите, чтобы другие тоже поняли — главное, чтобы было увлекательно и полезно. 

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

А еще! Вступайте в наше сообщество для авторов Технотекст  — в нем мы будем делиться подборками лучших статей, проводить эфиры о том, как преодолеть страх писать на Хабр и там же мы разыграем мерч. А если есть вопросы по участию, пишите нам на special@career.habr.com, постараемся быстро помочь.

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

вот код, позволяющий создавать экземпляры экземпляров:

const Cstr = function () {
    const Self = function () {};
    Object.setPrototypeOf(Self, this);
    return Self;
};

const item = new Cstr;

console.log('item instanceof Cstr : ', item instanceof Cstr);

const itemInstance = new item;

console.log('itemInstance instanceof item : ', itemInstance instanceof item);

вот Gist где кода больше и лучше, там экземпляры вглубину тоже наследуются, но там намного соложней и очень долго, зато 200 строк console.log'ов :
https://gist.github.com/wentout/8a2631fd5cc5827df5946b9b6598bf99

вот статья про этот код, но там душно, и форточки закрыты:
https://habr.com/ru/articles/939050/

; ^ )

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

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

GoSharp Weekend — летняя перезагрузка для backend-разработчиков: доклады, гастробар, музыка на закате.

Приглашаем C#- и Go-разработчиков уровня middle+ на инженерный фест команды Ozon Tech в центре Москвы.
И онлайн тоже ждём!

GoSharp Weekend — это серьёзные доклады + неформальное общение + фестивальное настроение: музыка, напитки, мороженое.

Расскажем, как меняем конфиги микросервисов в K8s прямо на проде.
Поделимся подходами к оптимизации, которые повышают конверсию пользователей.
Обсудим, как защитить домен от DDOS.
Из воды — только Москва-река.

Полную программу смотрите на странице события. И регистрируйтесь там же.


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

До встречи на GoSharp Weekend!

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

Совет по Joomla: расположение полей Form в параметрах модулей и плагинов.

Обычно поля настроек модулей и плагинов идут столбиком - сверху вниз. Название поля находится слева, а само поле - справа. В вёрстке админки мы видим div.control-group, в котором находятся label и поле. Посмотрим как можно просто кастомизировать админку.

Название поля НАД полем - parentclass="stack".

Если в XML-манифесте модуля или плагина добавить к полю атрибут parentclass, то мы можем указывать любые CSS-стили для div.control-group. Если указать CSS-класс stack, то название поля встанет над самим полем. Это удобно для больших сабформ - экономится место на экране.

<field type="text"
     name="map_center"
     label="MOD_WTYANDEXMAPITEMS_MAP_CENTER"
     description="MOD_WTYANDEXMAPITEMS_MAP_CENTER_DESC"
     default="51.533562, 46.034266"
     hint="51.533562, 46.034266"
     parentclass="stack"
/>

2 и более полей в ряд в параметрах модуля/плагина - классы span-*

Мы можем 2 или 3 небольших поля поставить рядом (для десктопов). Табы настроек являются grid-сеткой из 4-х колонок. Для поля можно указать ширину в виде количества колонок. Нам нужно в parentclass добавить класс span-*-inline. Допустимы числа от 1 до 4.

span-1-inline - поле будет шириной в 1 колонку сетку. span-4-inline - ширина в 4 колонки, равносильно поведению по умолчанию. Этот код выведет 2 поля в админке в параметрах модуля рядом на десктопах. Поскольку используется также класс stack - название поля будет над самим полем.

<field type="list"
     name="map_zoom"
     label="MOD_WTYANDEXMAPITEMS_MAP_ZOOM"
     default="7"
     parentclass="stack span-2-inline"
     filter="integer">
          <option value="0">0</option>
          <option value="1">1</option>
          <option value="21">21</option>
</field>
<field type="list"
     name="map_type"
     label="MOD_WTYANDEXMAPITEMS_MAP_TYPE"
     parentclass="stack span-2-inline"
     default="scheme">
          <option value="scheme">MOD_WTYANDEXMAPITEMS_MAP_TYPE_MAP</option>
          <option value="satellite">MOD_WTYANDEXMAPITEMS_MAP_TYPE_SATELLITE</option>
</field>

Чат русскоязычного сообщества Joomla

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

Совет по Joomla: расположение полей Form в параметрах модулей и плагинов.

Обычно поля настроек модулей и плагинов идут столбиком - сверху вниз. Название поля находится слева, а само поле - справа. В вёрстке админки мы видим div.control-group, в котором находятся label и поле. Посмотрим как можно просто кастомизировать админку.

Название поля НАД полем - parentclass="stack".

Если в XML-манифесте модуля или плагина добавить к полю атрибут parentclass, то мы можем указывать любые CSS-стили для div.control-group. Если указать CSS-класс stack, то название поля встанет над самим полем. Это удобно для больших сабформ - экономится место на экране.

<field type="text"
     name="map_center"
     label="MOD_WTYANDEXMAPITEMS_MAP_CENTER"
     description="MOD_WTYANDEXMAPITEMS_MAP_CENTER_DESC"
     default="51.533562, 46.034266"
     hint="51.533562, 46.034266"
     parentclass="stack"
/>

2 и более полей в ряд в параметрах модуля/плагина - классы span-*.

Мы можем 2 или 3 небольших поля поставить рядом (для десктопов). Табы настроек являются grid-сеткой из 4-х колонок. Для поля можно указать ширину в виде количества колонок. Нам нужно в parentclass добавить класс span-*-inline. Допустимы числа от 1 до 4.

  • span-1-inline - поле будет шириной в 1 колонку сетку.

  • span-4-inline - ширина в 4 колонки, равносильно поведению по умолчанию.

Этот код выведет 2 поля в админке в параметрах модуля рядом на десктопах. Поскольку используется также класс stack - название поля будет над самим полем.

<field type="list"
     name="map_zoom"
     label="MOD_WTYANDEXMAPITEMS_MAP_ZOOM"
     default="7"
     parentclass="stack span-2-inline"
     filter="integer">
          <option value="0">0</option>
          <option value="1">1</option>
          <option value="21">21</option>
</field>
<field type="list"
     name="map_type"
     label="MOD_WTYANDEXMAPITEMS_MAP_TYPE"
     parentclass="stack span-2-inline"
     default="scheme">
          <option value="scheme">MOD_WTYANDEXMAPITEMS_MAP_TYPE_MAP</option>
          <option value="satellite">MOD_WTYANDEXMAPITEMS_MAP_TYPE_SATELLITE</option>
</field>
Теги:
Рейтинг0
Комментарии0

Митап PythoNSK #1 2025: Оффлайн встреча питонистов в Новосибирске

Дата: 13 сентября 14:00-17:00 (UTC+7)
Адрес: Новосибирск, улица Ленина, 71, Новосибирск, "Этаж"

13 сентября - 256 день в году. Именно в эту символичную дату, день программиста, мы проводим первый оффлайн митап для питонистов в Новосибирске. И мы начинаем свою деятельность!

У нас на митапе будут:

1️⃣ Лекции:

  1. "Как работают гринлеты в SQLAlchemy", Алексей

  2. "Десктоп-разработка на PySide6", Роман

2️⃣ Интерактив:

  1. Небольшая викторина по Python с призом в виде книги "Грокаем алгоритмы, 2е издание", Адитья Брахгава.

3️⃣ И под конец - онлайн встреча с Никитой Соболевым, CPython Core Developer'ом.

Регистрация: https://docs.google.com/forms/d/e/1FAIpQLSePMDs21rFwWkRGCEsC5s8TsOjBKR0K8a9VIXgebjNxvNxxYg/viewform?usp=dialog

Количество мест ограничено.

Телеграм-чат: https://t.me/python_in_nsk

Митап некоммерческий, бесплатный

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

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

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

2 поля, 1 кнопка - самое необходимое для развлечения
2 поля, 1 кнопка - самое необходимое для развлечения

Было это так: покекал с залежавшегося выдержанного мема от xkcd про "сколько времени уходит на рутину за 5 лет" и задумался... Понял, что калькулятор окупаемости не помешает.

Ведь автоматизировать надо, когда:

1. Регулярно/часто выполняешь однотипную задачу
2. Каждый раз на эту задачу уходит время (даже если минута)
3. Понимаешь как можно автоматизировать хотя бы часть этой задачи
4. Зависимость от непостоянности человека может навредить
5. Есть готовность поддерживать свою автоматизацию, а не рутину :)

Потратил месяц на автоматизацию и ускорение деплоя в staging.
Теперь деплой занимает 30 секунд вместо 5 минут.
Окупится через... 2 года 😭
(с) DevOps в курилке

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

1С и цвет. Как из одной строчки HEX-кода выросла целая библиотека

Все началось с банальной задачи. Я хотел нормально сохранять настройки цветов в конфигурации «Управление IT-отделом 8».

В веб-разработке все привыкли к формату вроде #FABC01. Мне показалось логичным использовать его и в 1С. Это просто, понятно и универсально. Но оказалось, что в платформе нет готовых функций для конвертации такого формата в стандартный тип Цвет. И обратно.

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

Так маленький «велосипед» постепенно оброс фичами и превратился в полноценную библиотеку color1c. Я понял, что решаю не только свою проблему, и выложил инструмент в опенсорс.

Ссылка на GitHub, забирайте: https://github.com/Diversus23/color1c

Что умеет инструмент, если коротко

  • Полная конвертация Преобразование между Цвет1СHEXRGBCMYKHSV и HSL.

  • Манипуляции с цветом Смешивание нескольких цветов, получение контрастного или инвертированного цвета, градации серого.

  • Получение случайных светлых или темных оттенков, что идеально для диаграмм и графиков.

  • Каталоги Встроена работа с каталогами RAL, пастельные цвета и т.д. При этом можно легко добавлять свои.

  • Градиенты Расчет градиентного перехода между двумя и более цветами.

Это демонстрация, но здесь продемонстрировано гораздо меньше возможностей чем есть под капотом
Это демонстрация, но здесь продемонстрировано гораздо меньше возможностей чем есть под капотом

Почему это важно не только для разработчика

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

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

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

  3. Качество UX. Удобная работа с цветом позволяет быстро и без боли кастомизировать интерфейс. А хороший UI, как мы знаем, это не просто «красивости». Он снижает количество ошибок пользователя и повышает его производительность.

Мы у себя в «Управлении IT-отделом 8» уже давно перевели всю работу с цветом на этот механизм. Окупилось многократно.

Буду рад, если инструмент окажется полезным и вам. Если есть идеи по доработке или желание внести свой вклад, pull request на GitHub горячо приветствуются.

---

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

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

Нагрузочное тестирование GP6 vs GP7 vs Cloudberry

Насколько лучше производительность в GP7 и Cloudberry относительно GP6? Насколько стабильно работают GP7 и Cloudberry? Стоит ли мигрировать с GP6 в 2025? И если да, то на что? Ответы на эти вопросы — в партнерском материале по нагрузочному тестированию GreenPlum 6.X, GreenPlum 7.X и Cloudberry ведущего архитектора группы компаний GlowByte Марка Лебедева.

Материал был анонсирован в статье «Тестирование систем и движков массивно-параллельных вычислений. Часть II. TPC-DS» и продолжает серию публикаций о нагрузочных тестированиях технического руководителя решений Data Ocean Nova и Data Ocean Flex Loader Евгения Вилкова.

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