Как стать автором
Обновить
1362.35

Программирование *

Искусство создания компьютерных программ

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

Преимущества депонирования программы в Роспатенте

Если вы или ваша компания создали программу, то самое время задуматься о ее регистрации (депонировании) в Роспатенте. Так вы сможете подчеркнуть свое авторство и заблаговременно обезопасить свой софт от копирования. Рассказываем, как это сделать и какие преимущества то дает. 

Что такое депонирование

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

Физически программа — это кусочек программного кода, например: 

— программа “Hello, world” на Бейсике, которую вы писали на уроках информатики;

— скрипт на Python, который написали для подсчета цен;

— набор формул в Excel (да, регистрируют и такое);

— программа для управления сайтом;

— начинка, которая обеспечивает работу сайта;

— мобильное приложение;

— именно код, а не картинки;

— другие программы — например, 1С, браузер, “калькулятор” в Windows, программа для автозаполнения документов и т.д.

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

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

Что грозит без депонирования: 

  • незаконное копирование ПО (или исходного кода);

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

  • отсутствие возможности получить дополнительный доход от распространения программного обеспечения;

  • отсутствие права принимать участие в тендерах на государственные заказы;

Зарегистрировать программу может ее правообладатель.

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

  1. по договору — например, если с автором был заключен договор авторского заказа на разработку ПО. В этом случае правообладателем станет заказчик.

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

Кто будет указан при регистрации:

  • Правообладатель — то есть — непосредственно автор (авторы), если права не были переданы, или — другое лицо , если права были переданы.

  • Авторы-физические лица. Это не обязательно, можно не указывать поименный список, а просто указать, что авторов было некоторое количество, например, два. При этом передать право авторства, то есть право быть указанным в качестве автора, нельзя — это личное неимущественное право. Оно неотчуждаемо, отказ от него ничего не меняет.

Какие преимущества получает владелец зарегистрированной программы:

  • возможность продавать лицензию на продукт третьим лицам и тем самым увеличивать свою прибыль;

  • через суд добиться компенсационной выплаты до 5 млн рублей от недобросовестных конкурентов, которые незаконно используют его ПО (исходный код). Также правообладатель может потребовать выплату двукратной стоимости контрафактного продукта;

  • получение авторского права на код и возможность распространения программы;

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

  • получение освобождения от НДС в случае включения программы в Реестр отечественного ПО;

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

Регистрация программы здесь.

Теги:
+3
Комментарии0

Как вы знаете, китайская LLM deepseek-R1 работает не хуже chatGPT-o1, но стоит в 20 раз дешевле. А знаете ли вы, что сама модель вообще бесплатная, её можно скачать себе и запустить на своём железе?

Мне стало интересно, как это делать, можно ли как-то запустить прямо на макбуке, и оказалось, что это делается буквально в два клика (конечно, полная модель на ноут не влезет, но дистиллированная - вполне).

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

Для этого надо установить ollama, например так:

brew install ollama

и запустить

ollama serve

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

Дальше скачать и запустить модель. Это делается тупо одной командой.

ollama run deepseek-r1:8b

8b - это количество параметров (8 миллиардов). Другие варианты:
1.5b
7b
8b
14b
32b
70b
671b

Но понятно, что 671b на макбук не влезет, понадобилось бы больше 400 гигов видеопамяти. Зато 1.5b можно и на мобилу запихнуть.

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

Но это не очень юзер-френдли, поэтому дополнительно можно запусть web-интерфейс, например в докере одной командой

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

После чего на http://localhost:3000/ видна веб-морда, похожая на chatgpt.

Прикол китайской модели еще в том, что там показан процесс думания. Его можно посмотреть прямо в этом веб-интерфейсе.

Понятно, что это скорее побаловаться - на ноуте влезает только дистиллированная модель и то нещадно тормозит (макбук M1 pro). Для полноценной работы нужно нормальное железо или облако.

По-моему, это очень круто: если вложиться в железо, можно очень быстро и просто поднять у себя самый топовый чат и не посылать больше свои секреты ни в OpenAI, ни в Китай.

Приглашаю вас подписаться на мой канал в telegram

Теги:
+4
Комментарии1

Смотрите второй выпуск подкаста с Димой Бабиным, автором канала SIBERIA CAN CODE 🔥

В нем Дима поделился с командой Cloud.ru своим опытом работы в IТ и экспериментом с резюме на GitHub.

Также в выпуске:

  • как использование нейросетей может улучшить код и почему оно не может заменить ревью;

  • проблемы и перспективы JavaScript, Typescript и React;

  • что ждет frontend-разработку и PWA;

  • почему атмосфера в компании играет ключевую роль в удержании сотрудников.

👉 Посмотреть подкаст также можно на YouTube и RUTUBE.

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

Недавно в мессенджер ко мне постучалась HR, которой, несомненно, "понравилось моё резюме". По ходу диалога оказалось, что первый этап собеседования будет представлять из себя тест (что-то около часа). Я отказал. Потому что для меня тест - это попытка сэкономить время работодателя за мой счёт. Я потрачу своё время, что-то там отвечу, а потом, как это стало модно в последнее время, скорей всего не получу обратной связи.

Для меня собеседование - исключительно диалог. Где спрашивают не только тебя, но и ты задаёшь интересующие тебя вопросы. У кого мне узнать про условия, команду, типы задач, инструментарий, стек? У тестового вопроса номер 7?

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

P.S. Речь не о джун-уровне, там сейчас чёрт ногу сломит и кашей масло не испортишь.

Теги:
+3
Комментарии8

Как программисту-фрилансеру защитить свои разработки

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

Есть несколько вариантов того, как это сделать.

Вариант №1. Регистрация программы ЭВМ в Роспатенте

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

Вариант №2. Патентование изобретения или дизайна созданного ПО, интерфейса  

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

Интерфейс разработанного, а также шрифты и иконки — патентуются как промышленные образцы, если экспертиза Роспатента признает указанное новым и оригинальным.

Вариант №3. Товарный знак созданной программы

Регистрация в данном случае защищает название и логотип ПО. После оформления — ни один конкурент не сможет воспользоваться брендом вашей разработки.

Какие есть еще выгоды от официальной юридической защиты созданных объектов интеллектуальной собственности?

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

Сложно ли регистрировать указанные объекты?

Заявителям надо собрать пакет документов, оплатить предусмотренные пошлины и отправить материалы на экспертизу в профильное ведомство.

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

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

Если нужна регистрация товарного знака, то сделать это можно здесь, вот тут можно защитить программу, а здесь получить патент на дизайн. 

Теги:
+7
Комментарии0

Лицензионный договор на использование программы для ЭВМ

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

Что такое программа для ЭВМ по законам РФ 

Программой для ЭВМ называют софт, программное обеспечение, исходный код приложения и так далее. ПО (программное обеспечение) - одна программа или совокупность нескольких программ. Чтобы подтвердить свое авторство на программу, а также обезопасить свой продукт от контрафакта, ее можно зарегистрировать в базе Роспатента.

Примеры зарегистрированных в базе Роспатента программ:

  • Чат-бот для Microsoft Teams от компании i-Sys Labs – № 2020663407

  • Мобильное приложение Connected Car (Сбербанк-Телеком) для iOS от ПАО «Сбербанк России» – № 2021666087 

  • «Телеграм-бот финансовый советник» от «Алго Капитал» – № 2021611952

Что такое лицензия 

Лицензионное соглашение на использование программного обеспечения – это договор, заключение которого позволяет предоставить право на использование ПО другому лицу. Автора ПО, который передает право на использование называют лицензиар, а тот, кто получает это право – лицензиат.  По взаимному соглашению сторон возможно установить срок действия лицензии на месяц, квартал или год.

Лицензия бывает двух видов:

  • Неисключительная. Это значит, что лицензиар имеет право заключать лицензионное соглашение с несколькими лицами.   

  • Исключительная. Лицензиар передает право пользования ПО только одному лицу. 

В лицензионном договоре на использование ЭВМ должны быть:

  • полное описание лицензионного продукта;

  • лицо или лица, которые получают доступ к ПО;

  • прописаны разрешенные способы использования ПО;

  • порядок выплаты вознаграждений, размер выплат;

  • территория использования ПО лицензиатом;

  • может быть указано право заключения лицензиатом сублицензии;

  • особенности проведения аудита применения ПО, чтобы предотвратить несанкционированное использование;

  • срок действия лицензии. Если этот пункт не прописан, то по умолчанию договор действует в течение пяти лет.

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

Что грозит за нарушение лицензионного договора на ПО:

  • финансовая компенсация в размере выплаты просроченных вознаграждений, плюс процент неустойки, если это прописано в договоре;

  • расторжение договора и запрет на использование ПО.

    Реальный кейс

    ПАО «Ростелеком» заключил несколько договоров с компанией «Прогресс» на использование программного обеспечения «Оптимайзер». Сублицензиат не выполнил обязательные требования по договорам и просрочил выплату вознаграждений за право использования ПО. В итоге «Ростелеком» обратился в суд. Суд встал на сторону истца и постановил выплатить в пользу «Ростелеком» 29 153 000 рублей задолженности по договорам, а также процент неустойки за задолженность – 3 407 033 рублей и расход по госпошлине в размере 185 800 рублей (N А40-158708/2020).

    Поиск по программам для ЭВМ

    Регистрация программы для ЭВМ

    Подготовка лицензионного договора

Теги:
+5
Комментарии0

Ежемесячный дайджест: главные новости за декабрь❄️

📺 Провели вебинары:

А также 23 января в 11:00 мск приглашаем на вебинар:

🦾 Поделились обновлениями сервисов на наших облачных платформах в дайджесте на сайте. Например, теперь в Public Preview доступны:

  • Сервис Evolution Managed Spark, который позволяет развернуть кластерный вычислительный сервис на основе Apache Spark для распределенной обработки данных. С его помощью можно создавать и конфигурировать инстансы Spark, а также запускать задачи обработки данных. Все подробности в документации.

  • Evolution Managed Kafka — сервис для развертывания и управления кластерами Kafka® в инфраструктуре платформы Cloud.ru Evolution. Apache Kafka® — распределенный программный брокер сообщений, проект с открытым исходным кодом, разрабатываемый в рамках фонда Apache Software Foundation на языках программирования Java и Scala. Подробнее читайте в документации.

  • Evolution Managed Redis — сервис для создания и управления кластерами Redis® в инфраструктуре платформы Cloud.ru Evolution. Больше информации про сервис в документации.

⚙️ В личном кабинете добавили раздел «Доступность сервисов» в меню «Помощь и документация». Теперь можно: 

💼 Как компания «СК10» оптимизировала работу 1С и получила современное решение для организации удаленной работы — рассказали в новом кейсе.

🎓 Запустили новые бесплатные курсы и сертификацию:

До встречи в следующем выпуске!

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

Программисты, вместе с фермерами и водителями входят в топ-3 самых растущих рабочих мест к 2030 году, по версии доклада The Future of Jobs Report 2025

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

Думайте.

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

🌐 HTTP-метод QUERY: новый метод для поисковых запросов

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

Можно использовать GET и передавать всё в URL:

GET /feed?q=foo&limit=10&sort=-published&filters[]=status:active&filters[]=type:post

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

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

Именно поэтому появился новый метод QUERY. Он позволяет отправлять поисковые параметры в теле запроса:

QUERY /feed

Content-Type: application/json
{
  "q": "foo",
  "limit": 10,
  "sort": "-published",
  "filters": ["status:active", "type:post"]
}

При этом QUERY сохраняет все преимущества GET: он безопасный, идемпотентный и кэшируемый. Cочетает поддержку тела запроса с возможностью кэширования.

Метод официально получил статус PROPOSED STANDARD, что означает скорое появление поддержки в браузерах и веб-фреймворках.

Если вам интересны подобные посты, подписывайтесь на tg-канал Cross Join

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

Как разработать микроархитектуру нейросетевого ускорителя

Микроархитектура вычислительного ядра
Микроархитектура вычислительного ядра

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

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

Реализация блока активации — более сложная задача, так как она предполагает вычисление тригонометрических формул, делений на переменные значения и других подобных операций. Но поступим проще — добавим таблицу значений (LUT, lookup table), которая позволяет посчитать примерное значение функции в заданной точке.

Статья Михаила Степанова, инженера-стажера из группы функциональной верификации YADRO, поможет вам понять, с чего начать погружение в тему ускорения нейросетей. Экспериментировать можно самостоятельно — ссылки на исходники простой нейросети на C++ и реализованную модель ускорителя на SystemC вы найдете в тексте.

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

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

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

  • Множество упражнений для развития скорости печати.

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

  • Можно отслеживать скорость и ритмичность печати.

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

Один из пользователей сервиса Highload.fun Joad Nacer прогнал все задачи через GPT O1 и получил интересный результат:

Картинка из ТГ Highload.fun
Картинка из ТГ Highload.fun

По 2024 году результат расположился на 20 месте с 3,574 очками, как я понимаю код был на C++. В целом нормально, но я, непрофессиональный кодер на C#, разместился на 23 месте, так что я бы оценил кодерство ИИ на уровне студента 1-го курса непрофильной специальности.

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

Индексация в языках программирования: не всегда с нуля?

Решая задачки на LeetCode, периодически натыкался на уточнение: "Given a 0-indexed array...". Сейчас решил разобраться с этим термином — ведь я, как двоечник-самоучка  всегда думал (так учат на курсах), что индексация в массивах во всех языках программирования начинается с 0. Оказалось, это не так! В некоторых языках, индексация начинается с 1. Делюсь своими находками. 😊

Языки с индексацией с 1

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

  • MATLAB: часто применяется для научных и инженерных расчетов.

  • R: используется в статистике и анализе данных.

  • Lua: популярен в разработке игр и встраиваемых систем.

  • Fortran: применяется в численных расчетах и научных исследованиях.

  • COBOL: основной язык для финансовых систем и работы с легаси-кодом.

  • Pascal (по дефолту): был популярен в прошлом, сейчас чаще используется для обучения.

Мой опыт

Из этого списка я знаком с несколькими языками:

  • Pascal: мы писали на нем в школе. До сих пор помню шок от задач на массивы и циклы))

  • MATLAB: изучали в университете, кажется для работы с матрицами.

  • Fortran: слышал о нем в подкастах, но лично не работал.

Удачи, работяги!

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

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

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

Я состою в одном чатике, где собрались энтузиасты Telegram Mini Apps. Там фаундеры, разработчики и просто интересующиеся обсуждают идеи, делятся опытом и помогают друг другу. Мне очень интересна эта тема, и я планирую запустить что-то своё на базе Telegram.

Но ближе к делу. 2 января в чат зашёл человек в поисках разработчика для своего проекта. Он выглядел весьма взволнованным и объяснил, что помимо долгосрочного сотрудничества ему срочно нужен фикс для его мини-приложения. Это небольшое приложение с игровой механикой, у которого Monthly Active Users (MAU) — около 30 тысяч. Впечатляет, согласитесь! Проблема заключалась в том, что текущие разработчики ушли на праздники и не выходили на связь.

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

  • Проект довольно крупный: около 10k строк кода на фронтенде и 5k строк на бэкенде.

  • Фронтенд написан на React с использованием Jotai для управления состоянием. Интерфейс реализован с помощью Tailwind CSS.

  • Бэкенд — Express.js, взаимодействующий с MongoDB.

Весь проект написан на чистом JavaScript, и вот что меня поразило:

  • Полное отсутствие типов. Никакого TypeScript, PropTypes или хотя бы JSDoc. После нескольких лет работы с TS мне было трудно принять, что я не могу быстро понять, какие аргументы ожидаются в функциях. Я думал что все крутые проекты используют TS, а JS только для маленьких проектов, обучения и чего-то не совсем серьезного.

  • Полное отсутствие безопасности. Захардкоженные ключи для подключения к телеграм боту и базе данных. Сервер обрабатывает запросы с любого origin. Это буквально учебник по тому, как не надо делать.

  • Нарушение принципов DRY. Например, в коде вручную прописывались заголовки для fetch-запросов — везде, где только можно.

  • Неоптимальный код. Неправильный вызов хуков, отсутствие lazy loading, дублирование логики и так далее. Я могу продолжать список почти бесконечно.

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

Я быстро разобрался с багом, исправил его и в итоге получил предложение помочь улучшить проект. В ближайшие пару недель как раз займусь этим — заработаю сыну на шоколадки и, надеюсь, сделаю код немного лучше. А теперь — к выводам, которые я сделал (а точнее получил подтверждение в очередной раз):

Выводы:

  • Работа и подработка всегда найдутся. Если у вас есть знания и навыки, найти проект даже в текущее время— не проблема. Главное — свободное время и скилл. Я получил подтверждение этого тезиса в очередной раз и последние несколько лет я понимаю, что возможность зарабатывания денег ограничивается только наличием свободного времени для этого. Ну и осознав это я пытаюсь найти варианты, которые напрямую не связаны с обменом моего времени на деньги. Во многом моя попытка раскачать телеграмм канал именно об этом.

  • JS жив и приносит прибыль. Люди продолжают писать серьёзные проекты на JavaScript. Да, TypeScript стал стандартом в моей работе, но это не мешает другим писать на чистом JS и чувствовать себя отлично.

  • Маркетинг побеждает. Код, который я видел, был ужасен. Но приложение успешно благодаря сильному маркетингу. Это очередное подтверждение фразы: “Best products never win. But best sales & marketing always win.” Как программисты, мы должны стремиться к чистому коду и хорошей архитектуре, но успех продукта в конечном счёте определяется вовсе не этим.

А что вы думаете о роли маркетинга? Согласны ли вы, что он может перевесить техническую сторону?

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

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

Гордость "настоящего программиста" - это нечто. Он учился! У него и справка (диплом, сертификат) есть! Он крутой профессионал, с хорошей теоретической подготовкой!

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

А потом его творение идет в прод, а он сам, через некоторое время, меняет работу. И вот тут-то оказывается, что никто не понимает как оно работает - потому что его код после ряда обновлений работать перестал, а новые программисты любили другой язык программирования, и им непонятно как работает вот это brmd ff-?d(!-[~dde][df] - 8, и почему именно 8?

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

А может посадить несколько разных LLM-ок, и пусть они код пишут и друг за другом дорабатывают?
И еще одну, чтобы ими руководила...

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

Вклад инженеров Axiom JDK в развитие OpenIDE

На текущий момент среди разработчиков Java в качестве основной среды разработки применяется IntelliJ IDEA. Однако, коммерческая версия этого и других продуктов JetBrains, включая IDE, Code With Me, Upsource, TeamCity и Space, а также техническая поддержка теперь не доступны в России. Это побудило нас на создание продукта OpenIDE с открытым исходным кодом и всей инфраструктурой, размещенной на территории РФ.

Как было анонсировано ранее, OpenIDE создается на базе исходного кода IntelliJ IDEA CE и будет развиваться в рамках некоммерческого партнерства Axiom JDK, «Группы Астра» и Haulmont. В этом посте мы расскажем о вкладе команды Axiom JDK в проект.

Рантайм Axiom JDK будет предоставляться в качестве выбора по умолчанию для разработки на Java/Kotlin в OpenIDE. Дополнительно будет возможна установка Axiom JDK из интерфейса OpenIDE. При этом релизный цикл Axiom JDK синхронизирован с OpenJDK и регулярными обновлениями.

Команда Axiom JDK будет выпускать и поддерживать рантайм, используемый для запуска OpenIDE, с набором улучшений. Это, например, расширенное переопределение классов c помощью DCEVM и поддержка JCEF фреймворка для встраивания браузера на базе Chromium. Также планируется ряд улучшений для рендеринга шрифтов, поддержка режимов HiDPI, что обеспечит лучшее масштабирование интерфейса пользователя. А еще это позволит исправлять специфичные для работы IDE ошибки, исправлений для которых еще нет в OpenJDK.

Несмотря на то, что исходный код IntelliJ IDEA CE открыт, в процессе работы IDEA обращается к серверам JetBrains для обновлений, поддержки маркетплейса плагинов, а также других нужд. Этот функционал сейчас перерабатывается с участием инженеров Axiom JDK, что позволит создать локальную российскую библиотеку плагинов, локализованный (и отключаемый) сбор статистики и механизм обновления OpenIDE.

Наконец, команда Axiom JDK занимается настройкой сборочного конвейера OpenIDE, и со временем произведет анализ всех OSS зависимостей OpenIDE и будет обеспечивать оперативное исправлений уязвимостей в ОSS зависимостях в рамках релизного цикла OpenIDE.

Релиз продукта намечен на март 2025 года.

Axiom JDK — единственный российский разработчик JDK. Инженеры команды стояли у истоков Java в России и развивают платформу более 25 лет.

OpenIDE можно использовать взамен IntelliJ IDEA CE. По данным нашего исследования, 78% Java разработчиков используют IntelliJ IDEA Ultimate, а 47% - работают на Community Edition. Мы хотим предоставить сотням тысяч разработчиков открытый инструмент, не уступающий по удобству привычным IDE, чтобы они могли быстро и эффективно работать.

Читайте также у нас на сайте и у партнеров на хабре.

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

97% языков программирования в мире используют семантическое версионирование.

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

У узкопрофильных, технических статей на Хабре нередко интересная судьба: их активно добавляют в закладки, мало просматривают на момент выхода и обращаются к ним позже (ну или не обращаются, потому что закладки бывают слишком долгим ящиком). Мы поработали за вас и выбрали 10 полезных туториалов из 2024 года, которые добавили в избранное более 50 раз, но просмотрели менее 3000. И кажется, это серьёзные технические статьи, которые можно почитать для работы или учёбы, разобраться, забрать себе толковые идеи. 

А что интересного лежит у вас в закладках и часто ли вы к ним обращаетесь?

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

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

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

Смотря назад, я понимаю что поворотным моментом в моей карьере стал период, когда я увлекся функциональными языками и курсом СИКП, по которому потом во многом строилось обучение на Хекслете. Произошло это так, я видел что вокруг меня, многие профессионалы, говорят и используют функциональные языки и какие-то связанные с этим подходы. В тот момент речь шла про erlang, scheme/racket (для сикпа), clojure и haskell, которые я в разной степени начал изучать. На эрланге даже получилось сделать проект codebattle.hexlet.io, который потом, спустя много лет переписали на elixir (это опенсорс).

Изучение этих языков многое перевернуло в моей голове и дело даже не в том что они функциональные, а в том, что в среде программистов на этих языках поднимались вопросы, с которыми я раньше не сталкивался. Я понял что смотрел на разработку не на том уровне. Весь мой предыдущий опыт был скорее в стиле вот чистый код, вот мартин, вот фаулер, вот ООП, вот паттерны. Как оказалось, несмотря на здравые мысли в этой части, все же это была оболочка, а не фундамент. А фундамент лежал в таких областях как управление состоянием, изоляция побочных эффектов, конечные автоматы, statefull/stateless части системы и тому подобное.

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

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

p.s. Делюсь опытом программирования в своем телеграм-канале организованное программирование

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

Подборка статей про LLM, компьютерное зрение и машинное обучение

Doubletapp занимается машинным обучением уже 6 лет. В далеком 2018 году мы получили первый проект с нейросетью (смотрите первую статью подборки). Кейс оказался удачным, после него посыпались другие заказы, так мы год за годом наращивали экспертизу в обучении языковых моделей, интеграции LLM и RAG, которая может пригодиться вам, наши читатели. Поэтому делимся статьями, написанными нашими ML-специалистами:

👉 Прости нас, Джон Коннор, или Как мы научили нейросеть точечно распознавать звуки выстрелов 

👉 Автоматизация верификации кодовых датасетов подрядчиков с помощью LLM: снизили брак на 40% и сократили стоимость на 60%

👉 Как общаться с базой знаний на естественном языке с помощью LLM и объективно оценить работу полученной системы 

👉 Neural Network Optimization: океан в капле 

👉 Руки на руль: Bus Factor следит за тобой

👉 Тренды ИИ-2025

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

Вклад авторов