Я разбирался с вопросом с юристами и бухгалтерами. Все говорят, что надо платить дважды.
Статья 346.17. Порядок признания доходов и расходов
1. В целях настоящей главы датой получения доходов признается день поступления денежных средств на счета в банках и (или) в кассу, получения иного имущества (работ, услуг) и (или) имущественных прав, а также погашения задолженности (оплаты) налогоплательщику иным способом (кассовый метод).
Единственный нюанс, что налоговая технически не может проверить поступления и списания с кошелька, и вы можете перед налоговой сделать лицо кирпичом и сказать, что WMR вам никто не платил в качестве платы за ваши услуги или товары, и что вы сами их покупали. Отчитываться о расходах вас тоже никто не заставит.
Пардон, предыдущий коммент отправился случайно. Ниже — продолжение. Про этих негодяев я, конечно, слышал. Так ведь те, кто использует понятие «копирастии» не ограничиваются Михалковым. Они требуют прекратить преследование трекеров, разрешить бесплатно копировать любой фильм, снятый кем угодно и где угодно, любую компьютерную программу, ну и т.д. Вот это непонятно. Ладно, чёрт с ними с программистами — сейчас можно и на SaaS делать бизнес. А с кино как? На какие деньги снимать следующие картины? Сможет ли студия купить новую рендер-ферму?
Копираст — организация либо частное лицо, поддерживающие, продвигающие, пропагандирующие верховенство копирайта, то есть: право владельца неимущественных прав на так называемую «интеллектуальную собственность» либо законного представителя владельца либо вообще произвольного хрена с горы ограничивать доступ, копирование, распространение, воспроизведение объектов этой самой собственности. Копирование, распространение и т. д. — это имущественные права. Неимущественные — это защита от плагиата, то есть выдачи чужого креатива за свой.
Копираст (производное от слов копирайт — педераст) — человек пропагандирующий копирайт, борющийся с его нарушениями, трактующий законы о авторском праве в самом широком смысле.
Хм. Не флейма ради, а в качестве ликбеза для тёмного программиста, не поделитесь секретом, что же должно выступать альтернативой неимущественным правам? На что кушать работникам клавиатуры и монитора?
Что касается библиотек, то если они внешние по отношению к Python, то в них счётчик инструкций вообще работать не будет, и шедулер не сможет выдернуть оттуда управление. Так что для таких задач даже Preemptive неприемлем.
В Eve Online stackless используется именно для неблокирующего I/O и без preemptive, насколько я знаю.
Атомарность полезна для исключительно быстрой реализации примитивов синхронизации. if busy == 0: busy = 1 [some-code] busy = 0. Если это не требуется, то конечно preemprive будет работать.
Про NoSQL вы всё правильно написали. Если обращение к базе по сети, то можно сокет подменить, и всё будет работать. Мы так работаем с Cassandra (она на Thrift). Не будет проблем с CouchDB (он на HTTP). Если надо читать стопицот файлов, то да — тут проблемы будут. Concurrence не умеет файлы через epoll диспетчерить. Это надо специально её этому учить.
На самом stackless работает онлайн-игра Eve Online. Самый что ни на есть ацкий продакшн, причём с колоссальными нагрузками. Что касается джанго, ничего сказать не могу — не пробовал. Но принципиально не вижу никаких проблем — должно завестись с пол-оборота.
Preemptive убивает всю полезность stackless. Вы уже не можете быть уверены, что ваши операции атомарны. О передаче управления задумываться не надо вообще, поскольку оно происходит само на любом вводе-выводе. Если речь идёт о web-приложениях, то там этот ввод-вывод постоянно идёт в запросах к кэшам и базам данных. Ничего специально тюнить не надо.
Проблемы с существующими библиотеками могут быть только в одном месте — если они сами делают какой-то ввод-вывод, который может заблокировать процесс. Пока он не будет отдавать управление, остальные микропотоки (которые могли бы выполняться) будут тоже стоять и ждать. Решение — адаптировать каждую используемую библиотеку для stackless — заворачивать сетевой ввод-вывод в сокеты concurrence. Для многих библиотек это уже сделано, для некоторых — ещё нет. В частности, нет реализации SSL-сокетов. Поэтому смотрите по задаче — если используете экзотику, надо её дорабатывать. Если не используете — тогда всё будет работать из коробки.
Проблема с убийством нитей только в том, что в этот момент они могут находиться в весьма пикантных состояниях, например внутри malloc. Убил — нарушил работу аллокатора для всего процесса. Я не знаю, как вопрос решен в Inferno, но либо должны существовать какие-то меры против этого, либо безопасно убивать нити не получится.
У меня есть реализация прошивки для USB-клавиатуры с дисплеями на клавишах, как у лебедева. Если бы тогда в 2004 довели до ума разработку, опередили бы их.
Ошибки в КЛАДР приведут к тому, что адреса будут в документах неверно писаться. Это не так критично. А если в ОКАТО ошибочно какую-то улицу отнесут не к тому микрорайону, то деньги налогоплательщиков, там находящихся, будут поступать не в тот бюджет. Это тут же заметят чиновники на местах и быстро пнут налоговую, чтобы поправили базу и вернули деньги, куда положено.
Статья 346.17. Порядок признания доходов и расходов
1. В целях настоящей главы датой получения доходов признается день поступления денежных средств на счета в банках и (или) в кассу, получения иного имущества (работ, услуг) и (или) имущественных прав, а также погашения задолженности (оплаты) налогоплательщику иным способом (кассовый метод).
Единственный нюанс, что налоговая технически не может проверить поступления и списания с кошелька, и вы можете перед налоговой сделать лицо кирпичом и сказать, что WMR вам никто не платил в качестве платы за ваши услуги или товары, и что вы сами их покупали. Отчитываться о расходах вас тоже никто не заставит.
Копираст (производное от слов копирайт — педераст) — человек пропагандирующий копирайт, борющийся с его нарушениями, трактующий законы о авторском праве в самом широком смысле.
В Eve Online stackless используется именно для неблокирующего I/O и без preemptive, насколько я знаю.
Про NoSQL вы всё правильно написали. Если обращение к базе по сети, то можно сокет подменить, и всё будет работать. Мы так работаем с Cassandra (она на Thrift). Не будет проблем с CouchDB (он на HTTP). Если надо читать стопицот файлов, то да — тут проблемы будут. Concurrence не умеет файлы через epoll диспетчерить. Это надо специально её этому учить.
Preemptive убивает всю полезность stackless. Вы уже не можете быть уверены, что ваши операции атомарны. О передаче управления задумываться не надо вообще, поскольку оно происходит само на любом вводе-выводе. Если речь идёт о web-приложениях, то там этот ввод-вывод постоянно идёт в запросах к кэшам и базам данных. Ничего специально тюнить не надо.
Проблемы с существующими библиотеками могут быть только в одном месте — если они сами делают какой-то ввод-вывод, который может заблокировать процесс. Пока он не будет отдавать управление, остальные микропотоки (которые могли бы выполняться) будут тоже стоять и ждать. Решение — адаптировать каждую используемую библиотеку для stackless — заворачивать сетевой ввод-вывод в сокеты concurrence. Для многих библиотек это уже сделано, для некоторых — ещё нет. В частности, нет реализации SSL-сокетов. Поэтому смотрите по задаче — если используете экзотику, надо её дорабатывать. Если не используете — тогда всё будет работать из коробки.
Фейковые, разумеется.