Не могу дождаться, когда Калипсо выйдет для OS X. На работе (в Германии) часто спрашивают, что это за прикольный браузер. Пара немецких коллег тоже стали им пользоваться.
Там написано в общих чертах, потому что, какие именно проверки происходят — дело каждого производителя смарт-карт. Признаюсь, о том как формат упрощает проверки, не интересовался. О процессе установки напишу, наверное, отдельную статью, после общей статьи о Global Platform.
Я дополнил статью, читайте главу «Управление памятью». По поводу второго вопроса: в принципе в спецификациях JCRE описаны все обязательные проверки. Как именно происходит установка, с точки зрения того, какие команды надо послать, описано в Global Platform.
Спасибо вам за фидбэк. Буду дальше писать. Я сейчас обдумываю, если, кроме общей информации, которая будет в следующих двух статьях, написать также параллельно две новые серии статей. Одна серия будет на тему JavaCard, а другая — о Global Platform. Моим изначальным планом было сконцентрироваться только на теме Global Platform, но раз есть интерес, я могу написать побольше и о JavaCard.
Там нет никакой информации о том, как использовать NIF в Elixir и компилировать его с помощью mix. Об этом, собственно говоря, и есть статья. Я сам даю ссылку на официальную документацию NIF в Си, так как Си-код не является главной темой статьи. А вот котов я не люблю и повторно говорю, что я никому не рекомендовал имплементировать load, как это сделал я, и я абсолютно ничего не писал об имплементации этой функции.
Не могли бы вы поделиться официальной документацией о том, как написать NIF в Elixir? Когда я начал писать мои NIF, я не нашел никакой официальной информации об этом. Заметьте, что цель статьи заключается именно в том, чтобы показать как написать и использовать NIF в Elixir. По этой причине я обратил больше внимания на то, как интегрировать NIF с mix и модулями Elixir.
Normally the lifetime of a term is determined by its environment.
However, atoms are an exception to this rule, which allows you to
prefabricate atoms in static variables.
This exceptions is undocumented but widely used (by myself included in
crypto). There is a small risk that an introduction of atom garbage
collection in some non predictable future release will have to break
this feature.
Однако так как это поведение не задокументировано, я не упомянул эту часть кода в статье.
Это можно делать, так как enif_make_atom является не задокументированным исключением из общего правила. Посмотрите тут: erlang.2086793.n4.nabble.com/erl-nif-environment-in-the-load-function-td4674510.html
Однако так как это поведение не задокументировано, я не упомянул эту часть кода в статье.