Абсолютный шифр - это OTP (одноразовый блокнот). Автор почти переизобрёл его, но не до конца (что характерно, схема управления ключами вышла как раз такая, как надо). Учите основы криптографии, мальчики и девочки, не пытайтесь изобрести всё с нуля, не будьте такими же заносчивыми, как Эдгар Аллан По. И что важно - не пренебрегайте анализом стойкости ваших изобретений к дифференциальным атакам, атакам с известным текстом и известным ключом, а также другим достижениям криптоаналитической мысли.
В ветках match знак & является частью описания типа, по которому производится попытка сопоставления, a ref - не является, он говорит "сопоставь с таким-то типом, а потом дай мне на него ссылку вместо сожрать насовсем".
Я подозреваю, что при таком отношении в результирующем приложении "заметная доля времени" будет уходить не на апдейты счётчиков ссылок, а на куда более прожорливые и неэффективные развлечения, по сравнению с которыми расходы на счётчики будут скорее гомеопатическими.
Но ведь это произойдёт только если сознательно выбрать смарт-поинтеры, реализующие модель совместного владения. Что, по идее, следует делать только если в совместном владении есть необходимость, и в таком случае оплата цены в виде счётчиков неизбежна.
Но в таком случае к нему и не придут с комментариями. Ведь это не Галактическая ИИ-Инквизиция выявляет ересь своими тайными методами из запретных гримуаров и потом в комменты приходит со спичками наготове, что бы там себе ни думали некоторые плодовитые авторы. Это простые читатели, обычные человеческие люди, реагируют на бросающиеся в глаза недостатки. Которые от грамматической и даже стилистической коррекции не появятся.
Lua считается достаточно простым в написании языком программирования. Но это не совсем так: Lua один из немногих языков, у которых пакет — метатаблица, класс — метатаблица.
Lua является очень простым в написании языком, но при этом весьма выразительным. А значит, выразить можно и всякие сложные запутанные штуки. Можно, например, понасоздавать неэффективные копии привычных игрушек из других языков.
Lua используется нечасто, поэтому специалисты с достаточной экспертизой в работе с Lua — редкость. Соответственно, чтобы начать работать с Tarantool, команде надо учить новый язык, а это время и деньги.
Сам по себе Lua очень прост, так что времени и денег требуется кратно меньше.
А вот что, на мой взгляд, было упущено, так это его безальтернативная однопоточность. Как мне представляется, в данном контексте это может оказаться куда более веской причиной для перехода на другой язык, тем более Go.
В общем и целом получается, что необходимо изначально думать о том, какие функции вылезут наружу, ещё на стадии проектирования. И если для динамических библиотек есть чёткое решение с version script (которым несмотря на его наличие пользуется не только лишь каждый), для статических придётся пользоваться разнообразными комбинациями маленьких хитростей в духе мистера Бина: static, inline, анонимные неймспейсы, дичайшие префиксы. Ещё только придумывая функцию, надо будет назначать ей степень спрятанности и действовать соответственно.
Возможно, имелся в виду случай, когда данные укладываются в одно значение uint64. Там и теоретически время константное, так как данные дальше не растут, да и на практике используются интринсики, считающие количество единичек за одну инструкцию. В русте куча всяких таких битовых фокусов типа count_zeros или trailing_ones встроена сразу в целочисленные типы. Это удобно.
Потому что если в общей задаче сложность экспоненциальная, деление её на полином экспоненту никуда не денет.
Абсолютный шифр - это OTP (одноразовый блокнот). Автор почти переизобрёл его, но не до конца (что характерно, схема управления ключами вышла как раз такая, как надо). Учите основы криптографии, мальчики и девочки, не пытайтесь изобрести всё с нуля, не будьте такими же заносчивыми, как Эдгар Аллан По. И что важно - не пренебрегайте анализом стойкости ваших изобретений к дифференциальным атакам, атакам с известным текстом и известным ключом, а также другим достижениям криптоаналитической мысли.
Не сочтите занудством, но переход от O(N^2) даже к O(1) не станет экспоненциальным снижением сложности.
В ветках match знак & является частью описания типа, по которому производится попытка сопоставления, a ref - не является, он говорит "сопоставь с таким-то типом, а потом дай мне на него ссылку вместо сожрать насовсем".
Я подозреваю, что при таком отношении в результирующем приложении "заметная доля времени" будет уходить не на апдейты счётчиков ссылок, а на куда более прожорливые и неэффективные развлечения, по сравнению с которыми расходы на счётчики будут скорее гомеопатическими.
Но ведь это произойдёт только если сознательно выбрать смарт-поинтеры, реализующие модель совместного владения. Что, по идее, следует делать только если в совместном владении есть необходимость, и в таком случае оплата цены в виде счётчиков неизбежна.
Да... Вырос единорог, закабанел... Да и микрофлору, видать, укрепил хорошенько.
Преподаватели английского? Ха! Видели бы вы, до чего можно довести математика простым советским "функционалом".
Теперь уже dyn compatibility.
Но в таком случае к нему и не придут с комментариями. Ведь это не Галактическая ИИ-Инквизиция выявляет ересь своими тайными методами из запретных гримуаров и потом в комменты приходит со спичками наготове, что бы там себе ни думали некоторые плодовитые авторы. Это простые читатели, обычные человеческие люди, реагируют на бросающиеся в глаза недостатки. Которые от грамматической и даже стилистической коррекции не появятся.
Для таких вот затей со специализациями и придумали extern template.
Тринадцатый номер в тентуре, налево от Большой Медведицы.
Lua является очень простым в написании языком, но при этом весьма выразительным. А значит, выразить можно и всякие сложные запутанные штуки. Можно, например, понасоздавать неэффективные копии привычных игрушек из других языков.
Сам по себе Lua очень прост, так что времени и денег требуется кратно меньше.
А вот что, на мой взгляд, было упущено, так это его безальтернативная однопоточность. Как мне представляется, в данном контексте это может оказаться куда более веской причиной для перехода на другой язык, тем более Go.
Что-то я, стыдно сказать, по поводу мема недели нуждаюсь в скорой пояснительной помощи с заправленным доверху чемоданчиком.
У англичан это может и "принцип голубятни", но у нас-то это называется принцип Дирихле ( https://ru.wikipedia.org/wiki/Принцип_Дирихле_(комбинаторика) ) и переводчику следует это учитывать.
В общем и целом получается, что необходимо изначально думать о том, какие функции вылезут наружу, ещё на стадии проектирования. И если для динамических библиотек есть чёткое решение с version script (которым несмотря на его наличие пользуется не только лишь каждый), для статических придётся пользоваться разнообразными комбинациями маленьких хитростей в духе мистера Бина: static, inline, анонимные неймспейсы, дичайшие префиксы. Ещё только придумывая функцию, надо будет назначать ей степень спрятанности и действовать соответственно.
Можно полностью контролировать список экспортируемых функций при помощи version script: https://www.gnu.org/software/gnulib/manual/html_node/LD-Version-Scripts.html
Даже с масочками.
А стеночку в магазине приподнять (зачёркнуто) многокадровую фильтрацию тоже так можно сделать?
Возможно, имелся в виду случай, когда данные укладываются в одно значение uint64. Там и теоретически время константное, так как данные дальше не растут, да и на практике используются интринсики, считающие количество единичек за одну инструкцию. В русте куча всяких таких битовых фокусов типа count_zeros или trailing_ones встроена сразу в целочисленные типы. Это удобно.
Чему игра учит по субъективному мнению автора (или любого другого субъекта) и чему она учит на самом деле - две большие разницы или четыре маленьких.
Нет, это сначала демоны всем кагалом ворвались через портал куда не звали и начали убивать, уничтожать, зомбифицировать и изгаживать экологию.
На такой хлипкой основе стоят ли сделанные выводы потраченных на их запись букв?