Александр
Ладно, убедили. А tostring с форматной строкой дружит?
mihacooper [МСК -2]
не
mihacooper [МСК -2]
для этого string.format
mva
более того, кстати, в случае таблиц полезным может быть добавить в __concat логику на определение типа у l и в зависимости от этого либо отдавать строку с конкатенированой через __tostring таблицей, либо таблицу из двух склеенных
Александр
Я и говорю - string.format сожрёт объект с tostring?
mva
а для строки или числа, например, такая логика в __concat излишняя
mva
mva
чтобы меньше писать можешь просто задефайнить s=tostring и потом вызывать s(moo):format("%x")
mva
в смысле, наоборот, ("%x"):format(s(moo))
mva
(это просто у меня есть свой метод для string (fmt) который вот в таком порядке работает)
Александр
Александр
Tverd
Можно функцию написать, например format("%s", 17)
Tverd
И вплоть до питоновых в фигурных скобках
Particle Booster
Не понимаю, почему по точкам линия не проходит?
Ищу внешние точки так:
`
local x0 = Case[im1][1] * 2 - (Case[im2][1] + Case[i][1]) / 2
local y0 = Case[im1][2] * 2 - (Case[im2][2] + Case[i][2]) / 2
```
Particle Booster
потом средние между ними :
Mid[1] = (Temp[i][1] + Temp[im1][1]) / 2
Mid[2] = (Temp[i][2] + Temp[im1][2]) / 2
Particle Booster
для общей функции Безье работало, а для сопоставленных квадратичных нет =/
Particle Booster
Нашел только такое рещение, но оно тож не точно вписывает:
local im1 = i - 1
local im2 = i - 2
local x0 = Case[im1][1] * 2 - (Case[im2][1] + Case[i][1]) / 2
local y0 = Case[im1][2] * 2 - (Case[im2][2] + Case[i][2]) / 2
local x1 = (Case[i][1] + Case[im1][1]) / 2
local y1 = (Case[i][2] + Case[im1][2]) / 2
local range = 0.6
Mesh[im1][1] = x1 + (x0 - x1) * (range / 1)
Mesh[im1][2] = y1 + (y0 - y1) * (range / 1)
Particle Booster
это то, что сейчас на картинке
Particle Booster
Надо внешние точки дальше разнести друг от друга, но как это сделать?
Particle Booster
т.е. x0, y0 на общей прямой отодвинуть от x1, y1
Particle Booster
заменил im1 на im2, стало точнее, но всё еще не то:
local x1 = (Case[i][1] + Case[im2][1]) / 2
local y1 = (Case[i][2] + Case[im2][2]) / 2
Dmitry
доброе время суток, чат!
developers.google.com/identity/protocols/OAuth2ServiceAccount
> Sign the UTF-8 representation of the input using SHA256withRSA (also known as RSASSA-PKCS1-V1_5-SIGN with the SHA-256 hash function) with the private key obtained from the Google API Console. The output will be a byte array.
скажите пожалуйста, с помощью какой библиотечки делать подпись алгоритмом SHA256withRSA?
mva
с помощью любой, которая умеет. Но тут, вроде как, тонкий намёк на OpenSSL
Dmitry
Пробую github.com/zhaozg/lua-openssl, luaossl не получилось использовать
Dmitry
дайте рабочий код, кто-нибудь..
> с помощью какой библиотечки делать подпись алгоритмом SHA256withRSA?
Dmitry
https://github.com/luvit/luvit/blob/master/tests/test-crypto.lua - я не могу понять, что за библиотеку они тут используют
Dmitry
по api похоже на luacrypto http://mkottman.github.io/luacrypto/manual.html. но она устарела и не ставится через luarocks..
Ilya
Dmitry
да, lua это прикольный квест)
перестал смотреть обзоры игр - зачем
zi
Кто нибудь дружил lua и cs go?
Danila
Danila
Danila
Они используют свою, из libUV
Danila
Не-а, там FFI
Dmitry
мне нужно на обычный lua 5.2
Danila
Я думаю, вот это будет лучшим вариантом
Danila
https://github.com/zhaozg/lua-openssl
Dmitry
Я думаю, вот это будет лучшим вариантом
да, я попробовал lua-openssl, ставится, но я не понимаю, как её использовать.. документации почти нет
как загрузить приватный ключ из строки, а потом использовать его для подписи алгоритмом sha256?
Danila
http://zhaozg.github.io/lua-openssl/modules/hmac.html
Danila
Позже могу подробнее посмотреть
Danila
Просто увидел, что все молчат
Dmitry
@dan_note, спасибо огромное, если будут проблемы, напишу ☺️
попробую ночью
Dmitry
кстати, а почему именно HMAC? или другими механизмами не подписывают? (не разбираюсь в криптографии)
в документации по aouth 2 нет слова HMAC: developers.google.com/identity/protocols/OAuth2ServiceAccount (пролистать чуть вниз и кликнуть вкладку HTTP/REST)
в статье механизм называется SHA256withRSA, это то же самое, что HMAC?
Dmitry
тут говорят, что HMAC и RSA разные вещи: crypto.stackexchange.com/questions/11293/hmac-sha256-vs-rsa-sha256-which-one-to-use
Dmitry
я так понимаю, для RSA нужно это использовать?
zhaozg.github.io/lua-openssl/modules/pkey.html#read
zhaozg.github.io/lua-openssl/modules/pkey.html#sign
Dmitry
надеюсь, я всё правильно сделал? ghostbin.com/paste/sdm9n использовал zhaozg.github.io/lua-openssl/modules/pkey.html
Tverd
Парни, а кто знает как посчитать количество байт, использованный в числе, без циклов и условий? Например, 0xFFFF 4 байта, 0x10000 - 5 байт...
Snusmumriken
Разделить на 256?
Snusmumriken
Хм.
Нашёл немного странную формулу.
[log2(x) / 8] + 1.
Tverd
то есть если хочешь получить сколько бит в числе - разделить на 2? )
Snusmumriken
Не, меня проглюкнуло, с утра пораньше, да.
Tverd
с логарифмом интересно уже, правда он не сильно шустрый
Snusmumriken
Ну по крайней мере шустрее кучи циклов с делениями при больших числах.
Tverd
да, но есть на просторах инета чисто целочисленой математикой расчет количества бит, если их разделить на 8, то есть сдвинуть 3 то получим байты
Tverd
наверно его и возму
Anonymous
так у тебя же шестнадцатеричная запись
Anonymous
каждый символ в которой - полбайта
Anonymous
не надо ничего считать просто длину записи числа берешь и все
Anonymous
потому как у тебя числа произвольной длины, то это пакет bignums
Anonymous
в луа не знаю есть ли он
Anonymous
ну bigInteger в джаве например
Anonymous
а оно хранит как связный список число, т.е. с длиной
Tverd
Ага, но тут такого нет, у меня есть число... и все. Да вариант пихнуть все в строку и получить кол-во символов / 2, но это не быстрее log2. В общем сделал так (nim):
const tab64 = [
63, 0, 58, 1, 59, 47, 53, 2,
60, 39, 48, 27, 54, 33, 42, 3,
61, 51, 37, 40, 49, 18, 28, 20,
55, 30, 34, 11, 43, 14, 22, 4,
62, 57, 46, 52, 38, 26, 32, 41,
50, 36, 17, 19, 29, 10, 13, 21,
56, 45, 25, 31, 35, 16, 9, 12,
44, 24, 15, 8, 23, 7, 6, 5
]
proc calculateBytes(value: uint64) =
var v = value
v = v or (v shr 1)
v = v or (v shr 2)
v = v or (v shr 4)
v = v or (v shr 8)
v = v or (v shr 16)
v = v or (v shr 32)
echo "SUCK ", (tab64[((v - (v shr 1))*0x07EDD5E59A4E28C2.uint64) shr 58] shr 3) + 1
Tverd
хотя думаю есть что проще, но пока не нашел
Anonymous
Ним легко учится?
Anonymous
Если он продолжит компилироваться в С , у него есть потенциал))
Anonymous
Хотя бы для меня
Tverd
Ну учится легче чем С
Dmitry
а можно, кстати, недопиленными библиотеками luarocks засорять?.. я выложить планирую
Dmitry
да вроде минимально уже можно пользоваться.. авторизация, чтение ячеек, запись в ячейки
kuradi
Ребят, пхп-шники тут случаем имеются?
Yuriy
В буквах запутались))
kuradi
Допустим есть следующий массив: $arr = array('DDD', 'SSS', 'FFF');
kuradi
И есть список цифр тоже в массиве: $lst = array(1, 2, 3)
kuradi
Я пробегаюсь по списку с цифрами и проверяю имеются ли они в массиве со словами
kuradi
И он сука говорит, что цифра 1 в массиве имеется, что за фигня??
kuradi
Это я что-то неправильно делаю или.... Это ПХП гавно???