Hacker News Digest

Тег: #contracts

Постов: 3

Show HN: Software Freelancers Contract Template (sopimusgeneraattori.ohjelmistofriikit.fi)

Ohjelmistofriikit Osuuskunta предлагает шаблон фриланс-контракта с открытым исходным кодом, доступный через Google Docs и GitHub. Он включает гибкие условия оплаты (почасовая, фиксированная ставка или смешанная), а также стандартные пункты о конфиденциальности, авторских правах и расторжении договора. Особое внимание уделяется прозрачности и защите прав обеих сторон.

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

by baobabKoodaa • 22 сентября 2025 г. в 07:35 • 112 points

ОригиналHN

#open-source#freelancing#contracts#google-docs#github#multilingual

Комментарии (39)

  • Представлены шаблоны договоров для IT-фрилансеров от различных ассоциаций (Bitkom в Германии, IT 2022 в Финляндии).
  • Обсуждаются практические аспекты составления контрактов: важность проверки условий, наличие страховки, версионирование и настраиваемость под нужды сторон.
  • Подчеркивается, что представленный шаблон (ohjelmistofriikit.fi) предназначен в первую очередь для Финляндии и поддерживает почасовую и проектную оплату.
  • Отмечается сложность международных споров из-за высокой стоимости юридических услуг и нецелесообразности судебных разбирательств на небольшие суммы.
  • Инструмент является открытым исходным кодом, что позволяет адаптировать его под конкретные страны и юрисдикции.

Contracts for C (gustedt.wordpress.com)

Контракты для C  
C++ почти утвердила контракты (P2900); я попробовал адаптировать идеи для C.  
Пока это черновик, без реализации в компиляторах.

Главное:  
- `pre`/`post` — проверяемые условия на входе/выходе функции.  
- Не ломают ABI.  
- Компонуются и позволяют оптимизатору выкинуть лишние проверки.  
- Если условие — константа, оно как `static_assert`: ошибка компиляции.

Базовые примитивы  
```c
contract_assert(условие, "текст");   // всегда проверяется, при лжи — abort
contract_assume(условие, "текст");   // компилятор верит, иначе UB

Пример функции

// заголовок
void *my_malloc(size_t s) pre(s) post(r: r);

// реализация
inline void *my_malloc(size_t s) {
    contract_assert(s, "size != 0");
    defer { contract_assert(defer_return_value, "ok"); };
    return malloc(s);
}

defer выполняет post-проверку при любом выходе.
Инлайн даёт компилятору видеть контракт; внешняя декларация сохраняет привычное разделение .h/.c.

Польза: читаемость, статический анализ, оптимизация.

by joexbayer • 05 сентября 2025 г. в 06:36 • 95 points

ОригиналHN

#c#c++#contracts#programming-languages#compiler-optimization#static-analysis#software-design#digital-mars#frama-c#c23

Комментарии (82)

  • Участники спорят, что считать «контрактом»: от assert до полноценных спецификаций, проверяемых компилятором.
  • Проблема С/С++: нет единого стандарта, каждый реализует по-своему (Digital Mars — с 90-х, Frama-C, C23 unreachable()).
  • Часть сообщества считает контракты костылем для слабой типизации: «если типы не выражают инварианты, добавь ещё один слой».
  • Критика С23: макрос contract_assume вызывает UB через unreachable(), что делает поведение непредсказуемым и оптимизацию агрессивной.
  • Альтернативы: переходить на Ada/SPARK, Rust, OCaml — там контракты либо встроены, либо доказываются статически.

Service members deserve the right to repair (militarytimes.com)

Почему военные заслуживают права на ремонт
Лейтенант-полковник Синди Серрано Робертс (в отставке)

Во время развертывания в Баладе, Ирак, я, молодой лейтенант ВВС, получила сообщение: «Генератор вышел из строя, льда не хватает для тел погибших. Сколько ждать?»
Я отвечала за генераторы, но не была техником и не имела нужных деталей. Единственный резервный агрегат находился на другом конце страны. Выбор был: запускать долгий контракт с гражданским специалистом или отправить конвой — рискуя жизнями. Мы пошли вторым путём и выиграли.

Но что, если бы не повезло?

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

Поэтому я поддерживаю право на ремонт.

by noleary • 28 августа 2025 г. в 16:21 • 107 points

ОригиналHN

#military#repair#maintenance#equipment#contracts#defense#right-to-repair#supply-chain#logistics

Комментарии (63)

  • Участники сходятся во мнении, что Пентагон как крупнейший покупатель вполне может требовать в контрактах право на ремонт, но по разным причинам этого не делает.
  • Поднимаются примеры: техника ломается после 5 000 миль без выезда в поле, генератор в морге не могут починить без долгого найма подрядчика.
  • Некоторые считают, что проблема не в законе, а в том, что ремонт выгоднее отдавать подрядчикам, чем делать технику простой в обслуживании.
  • Предлагают требовать не только доступ к запчастям и документации, но и исходники ПО и полные лицензии на конструкцию.
  • Есть опасение, что даже если военные получат RtR, гражданские останутся без этих прав: документацию выдадут под NDA.