Задать вопрос
Контакты

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (15)

Лучшие ответы пользователя

Все ответы (17)
  • Были ли случаи осуждения за Tor Exit-node в России?

    starius
    @starius
    программист, аспирант МГУ
    https://www.torproject.org/docs/faq#FacingLegalTrouble - как доказать, что вы были Exit-нодой в определённое время.

    Опыт арестованного оператора тора (Австрия): raided4tor.cryto.net
    Но он помимо тора держал дома наркотики и оружие.

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

    Держите сообщество в курсе. Будет хорошо (в том числе для вас), если об актах полицейского произвола станет известно наибольшему числу людей. Желаю вам успешно разобраться с обвинениями!

    (Оффтоп) дома держать неудобно, как и в РФ вообще. Если уж очень хочется, то дома надо держать промежуточную ноду, а выходную - на сервере, расположенном в другой стране.

    (Оффтоп2) Кстати, правильно писать Tor, а не TOR.
    Ответ написан
    6 комментариев
  • Как настроить Tor, чтобы прокси был из определенной страны?

    starius
    @starius
    программист, аспирант МГУ
    В torrc пропишите ExitNodes {us}
    где us - двубуквенный код страны. Список кодов стран.
    Ответ написан
    Комментировать
  • Как заставить nginx запускать lua скрипты через luaJIT?

    starius
    @starius
    программист, аспирант МГУ
    Надо устанвить LuaJIT и пересобрать nginx с LuaJIT вместо Lua.
    В Debian для этого применили такой патч (баг):

    diff -ruN nginx-1.6.0.orig/debian/modules/nginx-lua/config nginx-1.6.0/debian/modules/nginx-lua/config
    --- nginx-1.6.0.orig/debian/modules/nginx-lua/config	2014-04-24 13:23:46.000000000 -0300
    +++ nginx-1.6.0/debian/modules/nginx-lua/config	2014-07-24 03:48:10.816586362 -0300
    @@ -131,9 +131,9 @@
                 ngx_feature="Lua library in /usr/"
                 ngx_feature_path="/usr/include/lua5.1"
                 if [ $NGX_RPATH = YES ]; then
    -                ngx_feature_libs="-R/usr/lib -L/usr/lib -lm -llua5.1"
    +                ngx_feature_libs="-R/usr/lib -L/usr/lib -lm -lluajit-5.1"
                 else
    -                ngx_feature_libs="-L/usr/lib -lm -llua5.1"
    +                ngx_feature_libs="-L/usr/lib -lm -lluajit-5.1"
                 fi
                 . auto/feature
             fi


    ```
    Ответ написан
    Комментировать
  • Когда точно в Lua массив ( таблица только с array-part ) приобретает hash-part ( становится hash )?

    starius
    @starius
    программист, аспирант МГУ
    В файле ltable.c сказано следующее:

    The actual size of the array is the largest 'n' such that at least half the slots between 0 and n are in use.

    Таким образом, массив охватывает ключи от 0 до такого числа n, что используется хотя бы половина. Давайте ещё посмотрим на код функции computesizes, которая решает, каким будет размер массива при изменении размера таблицы. Эта функция перебирает степени двойки (1, 2, 4, 8 ...) и смотрит, какая доля массива была бы занята, если бы он был такого размера. Останавливается, когда эта доля становится меньше половины. Нетрудно доказать, что при таком алгоритме выбора размера массива и при сплошном заполнении всех ключей от 1 до n обязательно будет выбран размер массива, больший или равный n.

    Кстати говоря, из этого же следует, что при добавлении в конец массива элементов будут накладные расходы, но не на хеш-часть, а на пустые элементы массива, выделенные "про запас". Но так и должно быть, чтобы не перестраивать массив при каждом новом элементе. (В C++ vector.push_back ведёт себя так же.) Если заранее знаете окончательный размер массива и хотите на этом выгадать, то напишите сишное расширение, которое вызывает lua_createtable(L, размер-массива, 0).

    По поводу того, не появится ли хеш-часть при замене значений на различные типы. Не появится. Дело в том, что в паре ключ-значение ключ и значения хранятся в разных полях. Я отследил как используется поле i_val, оказалось только в макросе gval, тип которого нигде не фигурирует (только проверки на nil).

    Кроме того, могу посоветовать использовать rawset и lua_rawseti, так как они не проверяют метаметоды, поэтому должны работать быстрее. Про lua_rawseti я уверен, что работает быстрее, а про rawset подозреваю.
    Ответ написан
    Комментировать
  • Где найти справку по функциям Nginx для написания модулей?

    starius
    @starius
    программист, аспирант МГУ
    Есть учебник про это: www.evanmiller.org/nginx-modules-guide.html
    Возможно, стоит начать с него, а не со справки.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (1)