Все потоки
Поиск
Написать публикацию
Обновить
1028.98

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

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

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

ГОСТ Р 56939-2024 – Разработка безопасного программного обеспечения (РБПО)

20 декабря 2024 года введён ГОСТ Р 56939-2024 взамен ГОСТ Р 56939—2016. Хотя уже прошло около полугода, не все про это знают, осознают это или как-то подстраиваются под произошедшие изменения :) А изменения есть, так как новый ГОСТ ориентирован на построение и контроль процессов, обеспечивающих цикл безопасной разработки в компании.

Несколько информационных моментов.

1. Цикл публикаций в моём канале "Бестиарий программирования" на тему РБПО

Я начинаю большой цикл публикаций в Telegram, посвящённый РБПО и ГОСТ Р 56939-2024. Приглашаю подписываться всех, кто хочет постепенно знакомиться с этой темой и разбираться в ней.

2. Вебинары РБПО-направленности

Мы уже провели совместно с другими компаниями два вебинара, связанных с ГОСТ Р 56939-2024:

  1. Интеграция статического анализа и DevSecOps: PVS-Studio и AppSec.Hub в действии.

  2. Внедрение процессов безопасной разработки. Интеграция PVS-Studio и SGRC SECURITM.

Приглашаем принять участие в следующем совместном с "ИНСЕК" вебинаре "Регулярный статический анализ по ГОСТу" (21 мая 12:00 по Москве), где они презентуют InSeq RBPO.

Приглашаем и другие компании к технологическому и/или информационному сотрудничеству. Напишите нам в поддержку или моему ассистенту.

3. Сертификация ФСТЭК

В последнее время нас спрашивают, подходит ли PVS-Studio для сертификации, и есть ли у нас сертификат ФСТЭК?

Для PVS-Studio нет сертификата ФСТЭК, так как он не нужен (для статических анализаторов процедура сертификации является добровольной).

PVS-Studio может использоваться как инструментальное средство статического анализа кода при построении процессов РБПО по ГОСТ Р 56939-2024.

PVS-Studio успешно применяется испытательными лабораториями, аккредитованными в системах сертификации средств защиты информации ФСТЭК России в рамках работ по сертификационным испытаниям программных продуктов, так как соответствует необходимым критериям (для заказчиков и сертификационных лабораторий мы подготовили информационное письмо):

  • PVS-Studio включён в Реестр российского ПО (запись № 9837 от 18.03.2021);

  • PVS-Studio удовлетворяет функциональным требованиям к инструментам статического анализа кода, описанным в Методическом документе "Методика выявления уязвимостей и недекларированных возможностей в программном обеспечении" (издание второе, доработанное, утверждён ФСТЭК России 25 декабря 2020 г.);

  • продукт разрабатывается с учётом требований, предъявляемых к статическим анализаторам в ГОСТ Р 71207–2024.

Подробнее: Сертификация ФСТЭК. Если у вас есть вопросы, напишите нам в поддержку или позвоните по телефону +7(903)844-02-22.

 

 

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

Как правильно работать с паттернами кода?

Всем привет! Это третий сезон курса «Паттерны и практики написания кода». Первая серия вводная: в ней бэкенд-инженер Юра Афанасьев знакомит вас с историей паттернов и их функциями, а также рассказывает, как с ними правильно работать.

Смотреть VK
Смотреть YouTube

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

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

Кардинальное упрощение привязки GitHub, GitLab, Bitbucket в Amvera Cloud

Привязка репозиториев GitHub, GitLab, BitBucket вызывала у наших пользователей затруднения, и мы обещали упростить процесс.

Теперь для привязки репозитория достаточно указать токен и выбрать ветку и репозиторий.

Способ позволяет организовать максимально простой деплой и обновление приложений через git push. Для обновления приложения достаточно сделать коммит в привязанный репозиторий, и оно соберется и бесшовно запустится автоматически.

Заполняем три поля и CI/CD готов
Заполняем три поля и CI/CD готов

Подробная инструкция по подключению доступна по ссылке.

Amvera Cloud — это облако для простого деплоя приложений через git push (или интерфейс). Встроенный CI/CD, бэкапы и мониторинг позволяют развернуть проект тремя командами в IDE и не думать о настойке инфраструктуры. Amvera проще, чем использование VPS.

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

Поддержка должна быть бесплатной. Всегда!

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

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

Я основатель облака для простого деплоя проектов через Git push – Amvera Cloud. И вижу, что пользователи пишут нам в поддержку. И говоря честно – люди пишут только тогда, когда другие способы не помогли и они не знают, как решить их насущную проблему. А это значит мы не доработали и сделали что-то непонятно или неудобно. И это наша обязанность постараться им помочь. И я не вижу морального права просить за это с них деньги.

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

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

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

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

Читаемость Си-кода: грустный ликбез, чтобы жить стало веселее

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

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

Последние два очень легко спутать, если читать код невнимательно. Вместо них иногда рекомендуют использовать

#if defined // вместо #ifdef
#if !defined // вместо #ifndef

Но если же в компании/проекте/отделе нет определенного код-стайла, или он не предполагает написание длинного варианта, то, естественно, разрабы пишут короткую форму (я, честно признаться, тоже).

Чего далеко ходить - все open source проекты пестрят именно сокращенными вариантами этих выражений и с этим уже ничего не поделаешь.

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

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

  • условную компиляцию;

  • выравнивание структур;

  • предотвращать повторные включения файла;

  • работать со строками;

  • грамотно оборачивать повторяющийся код и т.д. и т.п.

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

struct {
  const char *name;
  const char *value;
#define _SPECIAL(x) { .name = #x, .value = b->x, }
} specials[] = {
  { .name = "object", .value = b->object_string, },
  _SPECIAL(host),
  _SPECIAL(endpoint),
#undef _SPECIAL
};

*ну все, можно начинать грустить*

Чтобы разобраться, давайте очистим код от макросов, но сохраним суть:

struct {
  const char *name;
  const char *value;
} specials[] = {
  { .name = "object", .value = b->object_string, },
  { .name = "host", .value = host, },
  { .name = "endpoint", .value = endpoint, },
};

Что понятно из очищенного варианта:

  • инициализируется массив specials[];

  • типом данных этого массива является структура с полями *name и *value;

  • поля элементов массива задаются вручную.

Но как можно этот процесс немного автоматизировать и не прописывать вручную одинаковые строки?

Правильно, с помощью макроса:

#define _SPECIAL(x) { .name = #x, .value = b->x, }

который определяется после объявления полей структуры.

Как обрабатывается аргумент x:

  • имя аргумента преобразуется в строку с помощью макроса "#x" и присваивается полю *name;

  • полю *value присваивается значение поля структуры b с названием аргумента x (тут нужно убедиться, что поле с именем x действительно существует в структуре b).

То есть чтобы при заполнении массива не писать каждый раз одинаковые строчки:

{ .name = "host", .value = host, },
{ .name = "endpoint", .value = endpoint, }

можно вызвать выражение _SPECIALS:

_SPECIAL(host),
_SPECIAL(endpoint),

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

#undef _SPECIAL

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

А какие выражения и макросы в Си видели вы?

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

PEP 750: t-строки в 3.14

Недавно ревьюил один интересный PR в CPython: в питон добавили еще один способ форматировать строки. Теперь – со специальным АПИ для внешних интеграций. Расскажу: как и зачем.

Основная причина: использовать f строки удобно, но нет никакого АПИ для перехвата момента "вставки" или интерполяции значений. Например, при форматировании html или sql – требуется специальным образом делать escape для значений. И раньше код вида f"{template}" представлял собой дыру в безопасности и потенциальное место для XSS.

string.templatelib.Template

Новый префикс t не будет создавать объект str, он будет создавать объект класса string.templatelib.Template:

>>> user = 'sobolevn'
>>> template = t"Hi, {user}"
>>> template
Template(strings=('Hi, ', ''), interpolations=(Interpolation('sobolevn', 'user', None, ''),))

>>> from string.templatelib import Template
>>> isinstance(template, Template)
True

Обратите внимание, что при создании template – у нас не произошло форматирование сразу. Мы создали объект, у которого есть свойства strings и interpolations, из которых можно собрать финальную отформатированную строку.

Давайте посмотрим на примере. Допустим, мы хотим формировать URL из наших данных:

>>> domain = 'example.com'
>>> query = 'python string formatting is too complex'
>>> template = t'https://{domain}?q={query}'

И сам код логики форматирования, где мы будем вставлять значения разным способом. Если у нас шаблон query, то мы будем использовать quote_plus для его форматирования. Остальные значения – будем вставлять как есть:

>>> from string.templatelib import Template, Interpolation
>>> from urllib.parse import quote_plus

>>> def format_url(template: Template) -> str:
...     parts = []
...     for part in template:
...         match part:
...             case str() as s:  # regular string
...                 parts.append(s)
...             case Interpolation(value, expression='query'):
...                 parts.append(quote_plus(value))
...             case Interpolation(value):
...                 parts.append(value)
...     return ''.join(parts)

И вот результат:

>>> format_url(template)
'https://example.com?q=python+string+formatting+is+too+complex'

Только теперь наш Template был отформатирован. Нами. Ручками.
У нас есть полный контроль за процессом форматирования. Вот в чем суть данного ПЕПа.

Фичи одной строкой

  • Работает = как обычно в f строках: t'{user=}'

  • Есть привычные определители формата: !r, !s, .2f, тд

  • t строки можно конкатенировать: t'Hello' + t' , world!' и t'Hello, ' + 'world'

  • Поддерживается режим raw строк: rt"Hi \n!"

Как устроено внутри?

Интересные места имплементации:

>>> import dis
>>> user = 'sobolevn'
>>> dis.dis('t"Hi, {user}"')
  0           RESUME                   0

  1           LOAD_CONST               2 (('Hi, ', ''))
              LOAD_NAME                0 (user)
              LOAD_CONST               1 ('user')
              BUILD_INTERPOLATION      2
              BUILD_TUPLE              1
              BUILD_TEMPLATE
              RETURN_VALUE

Обсуждение: как вам еще один способ форматирования строк?

Если понравилось – заходи в тг, где я рассказываю, как я делаю CPython.

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

Для себя я определил архитектуру так:

Архитектура программной системы - это набор ограничений, которые формируют и направляют реализацию системы в сторону максимизации её ценности

Архитектура - это набор ограничений
Архитектура - это набор ограничений
  • Это набор ограничений: архитектура задаёт рамки/правила по которым должна строиться система

  • Архитектура формирует и направляет реализацию: у разработчиков должна быть свобода в реализации, но архитектура задаёт для них ограничения

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

И я придумал для этого метафору. Представьте, что мы строим дом. Тогда:

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

Системный дизайнер:
Он как дизайнер интерьеров. Определяет назначение каждой комнаты, учитывая уже наложенные архитектурные ограничения. Где будет гостиная, где спальня, где рабочий кабинет и т.п. И расставляет мебель (структурные ограничения), руководствуясь назначением каждой комнаты (поведенческие ограничения). И всё это так, чтобы живущим в квартире людям было удобно.

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

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

  • Системный архитектор - senior (опытный программист, способный спроектировать кластер контейнеров)

  • Системный дизайнер - middle (программист, способный спроектировать один контейнер)

  • Программист - junior (любой программист, способный работать внутри контейнера по готовым ограничениям)

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

Как автоматизировать распознавание текста с изображений?

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

Раньше в моём арсенале был только pytesseract (Python-библиотека для распознавания текста). Она работала, но с серьёзными ограничениями:
➖Плохо справлялась с разными шрифтами
➖Теряла точность на низкокачественных изображениях
➖Путала языки, если текст был мультиязычным

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

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

Обзор моделей для OCR
Прошерстив не один десяток источников, я выделил две наиболее популярные на текущий момент модели:
1️⃣ GPT-4 mini — высокая точность, но платная.
2️⃣ Google Gemini 2.0 Flash — высокая точность + бесплатный лимит.

Выбор без раздумий пал на Gemini. На момент публикации бесплатные лимиты от Google следующие:
✔️ 15 запросов в минуту
✔️ 1 млн токенов в минуту (ввод + вывод)
✔️ 1 500 запросов в сутки

Как взаимодействовать с Gemini?
1️⃣ Получаем API-ключ в Google AI Studio
2️⃣ Через API отправляем изображение в base64 + промпт
3️⃣ Получаем распознанный текст в ответе

Но есть важный нюанс: сервис не работает с российскими IP

Что делать, если Gemini недоступна?
Если у вас по какой-то причине нет возможности получить доступ к серверам Google AI Studio, то можно воспользоваться сервисами, которые предоставляют доступ к различным open-source моделям. Например, DeepInfra.
Плюсы:
✔️ Нет блокировок по геолокации
✔️ Гибкая тарификация
Минусы:
✖️ Нет бесплатного тарифа

Примеры скриптов выложил на github (https://github.com/vmtest439/britalb_ocr)

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

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

Проверка знаний в эпоху LLM: опыт преподавателя из Политеха

Сегодня преподаватели сталкиваются с новой реальностью: даже уникальные задания и ежегодное обновление вариантов не гарантируют защиту от списывания. Студенты могут принести работающий код, созданный с помощью LLM-моделей, но совершенно не понимать, как он устроен. Устные собеседования могли бы помочь, но они требуют много времени и экспертности — до 15 минут на одного студента, что превращается в колоссальную нагрузку.

На курсах «Введение в язык программирования Go» и «Технологии параллельного программирования на C++» в Политехе лабораторные работы проверяются с использованием системы контроля версий GitLab. Это позволяет упорядочить процесс сдачи и проверки заданий.

Каждый студент работает в личном fork-репозитории, созданном на базе основного, предоставленного преподавателем. Решения оформляются строго по структуре: каждая задача и подзадача — в своей директории, обязательное наличие модуля go.mod, а точка входа программы размещается в cmd/. Сдача работы происходит через создание Merge Request в основной репозиторий, где автоматически запускаются все проверки.

Пример хронологии коммитов и Merge Request'ов, отправленных в основной репозиторий.
Пример хронологии коммитов и Merge Request'ов, отправленных в основной репозиторий.

Система GitLab CI/CD выполняет серию автоматических тестов, включая проверку структуры проекта, сборку и выполнение юнит-тестов. Если хотя бы один из этапов не пройден, работа не допускается к оценке. Это дисциплинирует студентов и делает процесс проверки прозрачным и объективным.

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

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

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

Хотите разобраться, как работает Docker и зачем он нужен?

Тогда новый бесплатный курс — для вас!

Docker — это open source-платформа для создания контейнеров — окружений, где приложения работают независимо от ОС или среды. Технология упрощает перенос приложений между окружениями и ускоряет разработку.

В новом бесплатном курсе мы расскажем, с чего начать: как установить Docker, собрать образ, создать и запустить контейнер. Также познакомимся с Docker Compose и обсудим, чем Kubernetes отличается от Docker Swarm.

Несколько материалов для начала

Приступить к изучению курса →

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

Это всё началось с изобретения слова “бойлерплейт” в 2012 году. Всем было страшно, что им придётся писать аж по три строки вместо одной. Поэтому все начали насиловать компиляторы и добавлять в них новые функции — только бы (НЕ ДАЙ ГОСПОДЕ БОЖЕНЬКА!!!) не писать дополнительно два символа.

В 2025 году у нас есть ЛЛМ. И не надо врать — я знаю, что вы не набираете код, за вас это делает ЛЛМ. Я не говорю, что вы не вычитываете этот код и не перепроверяете всё. Нет. Но печатает за вас ЛЛМ. И это — нормально.

Пусть она занимается этим бойлерплейтом. Иногда это — самое простое решение. Если у меня есть один файл, в котором чётко видно, в какие функции инвокаются какие рауты, то это — прекрасно. Не надо создавать фабрику, которая будет строить псевдообъекты, которые потом по гаданию на картах Таро будут инвокать методы на основании положения Марса в Стрельце.

Пусть ЛЛМ за вас напишет файл с 500 строками кода, где каждому URL дан чёткий метод. И если вам надо будет переименовать 300 из этих методов, то пусть ЛЛМ это и сделает. Не велика проблема.

В 2025 году можно смело откатить все нововведения Яваскрипта до 2016 года — и не париться больше в попытках улучшить язык. Просто сделайте его стандартом и больше не меняйте. Пусть ЛЛМ будет страдать. Нам не страшно.

Зато потом это будет проще понять и прочитать, чем вспоминать, что делает последовательность символов ?./\ ﷼ℬ в вашем коде и какой транспайлер мне надо поставить, чтобы это компилировалось в Google Chrome версии 18384572.

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

Он переписал сортировку в Java! Интервью с Владимиром Ярославским

На JPoint 2025 мы пообщались с Владимиром Ярославским — разработчиком, чья работа вошла в историю Java. Именно Владимир стал автором улучшенного алгоритма сортировки, который используется в JDK.

Делимся ссылками на интервью на других ресурсах:

Это только начало — впереди ещё больше бесед с интересными людьми из мира Java и Spring.

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

Ждем всех, присоединяйтесь

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

На GitHub выложены исходные коды программ, опубликованы в 3-м издании 101 BASIC Computer Games Дэвида Ала за март 1975 года издательства Digital Equipment Corp.

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

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

Оппа! Не зря мне чудилось, не зря. Что-то глюкнуло и прямо по среди кода ответ на китайском!!!
Оппа! Не зря мне чудилось, не зря. Что-то глюкнуло и прямо по среди кода ответ на китайском!!!

Gork-ушены-ли странности?
Пробуя вайбить Горкушей, обнаружил странные параллели с поведением Синего Кита.

1. "прощупывание пользователя", скобочку там не закрыть, тут инклюд не помянуть, и всё такое-прочее, очевидное и не доставляющее проблем даже джунам, но способное напугать посторонних полотном "ужасных" ошибок ;-)
ДжиПетто вроде подобное тоже вытворяло (не знаю как сейчас), но там на общем фоне остального написанного это выглядело скорее как реальные косяки, а не издёвка...
А вот синий кит, через некоторое время чистого вайба, начинает откровенно жечь!

2. похожие "чудачества в коде", пруф к сожалению привести не могу, он из реальной жизни, и не гуглится, но всё подобное, обычно делается простым и понятным способом, создаётся структура, в которой описывается сколько бит что означает, и вместо разбора пакета, он просто рассматривается через эту структуру и вообще удобненько. Gorkуше был предоставлен пример кода, в котором именно так всё было сделано, и он этим даже воспользовался пару раз, но потом, таки переписал, устроив программный разбор пакета битовыми операциями, и конечно-же криво на столько, что ошибки самостоятельно исправить был уже не в силах, ни за сколько итераций. Что самое поразительное, абсолютно аналогичное поведения я наблюдал у Синего Кита несколько дней назад, вот прямо такой-же код, и такой-же косячный. Логично предположить что он был откуда-то сдёрнут, но нет, ничего подобного не гуглится, да и вообще может-ли такой изврат человеку в голову придти?

3. Я люблю Кита за сравнительную трезвость, позволяющую куда-то его запрягать даже по делу, у Горкуши с этим к стати хуже но, тупят они поразительно похожим образом.
Давеча попросил сделать демона общающегося с железом и что-то шарящего в мемори для других процессов. Read only вестимо, об этом было прямо сказано в промпте, но эти "двое из ларца" мьютиксов туда намутили, поразительно похожим образом!
И ладно-бы это был-бы какой-то пример из книжки переписанный на 100500 сайтах, но нет, там и косяки одинаковые, и по поводу мьютиксов на каждом заборе популярно написано, что в таких ситуациях "скрипач не нужен, родной"...

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

Я начал мучить Горкушу ещё в X использовал преимущественно для самери поиска, а тут он вдруг резко так поумнел перед открытием, демонстрируя сходное с синим китом поведение, вот прямо в деталях. Так что не знаю прямо что и думать ;-)

PS. Протестировал профессионального Джимми 2.5, и кое-что из грядущего, слава Богам! Он действительно с виду более профессиональный НО, без образца проблему не решает, хотя это и ожидаемо, там где осмысленная архитектурная многоходовочка требуется...
...но в отличии от от Кита и Горкуши, Джимми дали мне ссылку на ту отраву, которой они все походу обожрались. Ok это отрава, бывает, но непонятно всё-же, с какого, если в сети есть большое количество годных примеров, берётся один, но гадкий? И как-же так вышло, что его сожрали все, такие разные ;-)

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

Какие выгоды можно получить от регистрации программы для ЭВМ в Роспатенте?

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

Получение инструмента для защиты от незаконного копирования, использования, распространения программы (ее исходного кода), согласно: 

— УК РФ Статья 146. Нарушение авторских и смежных прав;

— КОАП РФ Статья 7.12. Нарушение авторских и смежных прав, изобретательских и патентных прав — ГК РФ Статья 1252.

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

Реальный кейс: Агрофирма «Южная» незаконно использовала программное обеспечение компании «1C» (свидетельства о регистрации №2001611306 и №2001610830) Перед иском в суд “1С” обратилась к нарушителю с предложением урегулировать спор досудебным соглашением, но “Южная” на это не ответила. Суд встал на сторону владельца ПО и компания “1С” получила компенсацию за нарушение ее прав в размере двукратной стоимости использования программы — 568 000 руб. (Дело № N А35-839/2020).

Способ идентификации программы для заключения лицензионных договоров, которые освобождаются от НДС (в случае включения программы в Реестр отечественного ПО). И то же самое свидетельство можно будет предоставить в Федеральную налоговую службу.

Упрощение процедуры постановки программы на баланс компании в качестве нематериального актива, предоставления информации в банки при заключении кредитного договора (в качестве объекта залога). При постановке программы на баланс ее стоимость рассчитывается как сумма затрат на ее создание. Эти затраты не списываются, а капитализируются, что позволяет увеличить стоимость чистых активов компании и ее прибыль. Дополнительный аргумент при внесении программы в реестр отечественного ПОСвидетельство принимается Минцифры как дополнительный документ, подтверждающий наличие исключительного права (наряду с первичными документами, но не заменяет их).

Бесплатный поиск

Поиск по программам

Регистрация программы

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

Ежемесячный дайджест: новое за март и апрель⛅

☁️ Провели главную IT-конференцию про облачные технологии и искусственный интеллект — GoCloud 2025. А пока мы готовим записи докладов, читайте об итогах конференции и о том, какой простор облачные и AI-технологии могут открыть для ваших IT-проектов в статье.

🦾 Рассказали про новые сервисы на платформе Cloud.ru Evolution. Например, теперь в коммерческом доступе Evolution Managed ArenadataDB — база данных на основе решения с открытым исходным кодом Greenplum, с которой можно хранить и обрабатывать большие объемы структурированных и полуструктурированных данных. Массово-параллельная архитектура (MPP) базы позволяет ускорять обработку данных даже в критически важных системах. 

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

💼 В кейсе рассказали, как технологии искусственного интеллекта в облаке Cloud.ru помогли подготовиться к выходу на новый рынок Wildberries — самому крупному по обороту маркетплейсу в России.

💸 Перезапустили реферальную программу, чтобы вы могли с большей выгодой рекомендовать сервисы Cloud.ru клиентам, коллегам или друзьям. Теперь можно получить 20% от суммы чеков приведенных пользователей в первый год и 15% — в последующие годы. Регистрируйтесь в программе до 31 мая и приводите новых пользователей в течение трех месяцев. Участвовать могут самозанятые, ИП и юридические лица. Присоединиться.

📺 Провели вебинары, и их можно посмотреть в записи:

А также приглашаем на вебинар: Безопасность контейнеров и Kubernetes от А до Я: как противостоять киберугрозам. На встрече обсудим базовые меры профилактики и защиты от киберрисков на уровне микросервисов, контейнеров и окружений под управлением Kubernetes. 24 апреля в 11:00 мск.

До встречи в майском выпуске!

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

Приглашаем на Frontend Mix — бесплатный митап ЮMoney для всех, кто интересуется фронтенд-разработкой 🔥

🕓 24 апреля, в четверг, в 19:00 (мск) приходите на митап в Санкт-Петербурге или подключайтесь онлайн.

Спикеры из ЮMoney и Сбера расскажут, как работают над задачами и улучшают процессы в команде. 😎

Темы докладов:

🟣 Рефакторинг за 10 секунд. Как с помощью консольной утилиты производить автоматизированный рефакторинг крупных приложений за считанные секунды.
🟣 Подходы и практики тестирования во фронтенде. Зачем нужно тестирование во фронтенде, какие стандарты и подходы существуют и как мы применяем их в своей работе.
🟣 Уязвимости фронтенда в финтехе. Топ-3 атаки, или как построить защиту по всем фронтам — от планирования до релиза.
🟣 Анимация до кончиков пальцев. Поговорим про анимацию в целом и на вебе. Рассмотрим все способы сделать анимацию. Узнаем про композитные слои и как их посмотреть в Dev Tools — на примере одинаковых анимаций, но с использованием разных подходов.

Чтобы попасть на митап, нужна регистрация. Все подробности — на сайте Frontend Mix❤️

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

ИИ-ассистенты (промпты) - это тоже low-code. Бизнес-аналитики сами разрабатывают ИТ-продукты. Сайт какой сложности можно разработать без знания JavaScript? Кейс app.2lead.ru

Возможности low-code растут. Бизнес-аналитики сами разрабатывают ИТ-продукты, фактически добавляя к своим обязанностям часть функций программистов. При этом эксперты не прогнозируют, что low-code полностью заменит традиционное программирование в ближайшие годы.

ИИ-помощники (промпты) - это тоже low-code

Чаще всего low-code определяют как создание ПО с помощью графических интерфейсов и настроек, а не через традиционное программирование. Мне ближе более широкое определение: low-code – это системы и платформы, которые предполагают изменение, дополнение кода пользователем, в том числе с применением ИИ-помощников (промптов).

Кейс: Сервисы app.2lead.ru разработаны бизнес-аналитиком

ИИ-ассистенты значительно ускорили разработку сервисов app.2lead.ru, созданных мной на JavaScript - без опыта программирования на этом языке. Это подтверждает возможность разработки ПО силами бизнес-аналитиков, продуктовых менеджеров и так далее. Ранее это была прерогатива только профессиональных программистов. 

Сервисы app.2lead.ru разработаны в конце 2024 года – начале 2025 года. Вошли в топ-5 Яндекса по запросу «калькулятор инфляции». Уже увеличили органический трафик сайта 2lead.ru более чем в 5 раз, без расходов на рекламу. // См. также «Нерекламные методы продвижения» https://habr.com/ru/articles/686736/

Сервисы app.2lead.ru // Калькуляторы инфляции. Аналитика. Прогнозы
Сервисы app.2lead.ru // Калькуляторы инфляции. Аналитика. Прогнозы

Что дальше? Массовое применение таких методов разработки ПО, более совершенные low-code системы и программирование голосом? Считаю, что практику low-code нужно расширять, разрабатывать учебные материалы по этому направлению и т.д. В этих инструментах есть большое пространство для развития.

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

Хотел бы прокомментировать эту статью про накрутку

https://habr.com/ru/articles/901138/

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

Я судорожно начал искать работу фронтом, потому что никаких накоплений сформировать еще не успел. На момент описываемых событий мой общий стаж в IT составлял 2.7 лет - я успел поработать АБД, фуллстаком и фронтом. За следующие 3 недели я сходил ровно на 1 собес в откровенно отстойное место, на остальные мои 100500 откликов былы только отказы и игноры.

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

Сейчас все хорошо, во время моих попыток устроиться фронтом меня взяли фуллстаком, и теперь я работаю бэкэндером (вернулся к светлой стороне силы).

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

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

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

Честный вопрос к разработчикам: сколько процентов кода в вашем последнем PR было фактически написано LLM?

И как бы отреагировали ваши коллеги/руководство, если бы узнали реальный процент?

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

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