Revertron
fgntfg
Anonymous
Что хотел-то?
Есть какие-нить каналы фриланс для прогеров ?
Revertron
Anonymous
Как ты себе это представляешь?
Ну не знаю. Мне вот например надо запустить приложение из под фреймворка LibGDX. Не получается. Ищу того кто через таймвьювер отыщет в чем загвоздка и комепилит приложение
Anonymous
*компилит*
Snusmumriken
Не цепляйся : )
И да, опечатки можно исправлять в уже отправленном сообщении.
Snusmumriken
Кстати, добреутро.
Group Butler [beta]
Hi Даниил!
Даниил
Ребзя, есть такая ситуация:
a = {1, 2, nil, nil, nil, 6}
print(#a)
результаты выполнения скрипта:
lua 5.3.1 : 6
tarantool 1.7.5 (то бишь luajit): 2
это баг или фича?
Tverd
Nil это дырка, так что считаются только первые символы до дырки
Tverd
Причем в разных луа по разному. В общем такого нельзя допускать
Vladislav
Хех, а что вы скажете на это:
a = {1,2,nil,3} print(#a) --> 4
a = {1,2,3,nil,4} print(#a) --> 3
Должна же быть общая логика какая-нибудь?
Elias
Представим, что это undefined behavior xD
Но я бы ожидал, что первое вернёт 2, а второе - 3. Странно, видимо особенности реализации
Elias
Оператор "#" вроде гарантирует работать правильно только в массиве без дыр
_AMD_
Kukuzapa
Таблицы так и задавались присваиванием, или это их состояние после неких действий?
Anonymous
@Kukuzapa не совсем понял, но можешь хоть задом наперёд присваивать.
Помни только, что передаётся не таблица как значение (копия), а ссылка на таблицу. Т.е. передав функции таблицу изменения будут проводится в родительском скоупе, там откуда она пришла.
Поэтому и есть всякие table.copy .deepcopy и тд.
Group Butler [beta]
Hi Oleg!
ShadoWalkeR
@Snusmumriken кстати, все забываю спросить - не смотрел на squirrel lang?
Snusmumriken
Оно клёво и симпатично, но я повязан luajit по рукам и ногам : )
Anonymous
Снусмумрикен, а можно спросить прикладную сферу вашей профессиональной деятельности? Если не хочется публично оглашать , напишите мне в ПМ👌
Anonymous
Спасибо ) понял
ShadoWalkeR
В некоторых моментах оно реально удобно - функция возвращает int вместо string и проверку не рекэкспом делать, а просто
if scode > 100 && scode <= 299
Snusmumriken
Фигня в том что squirrel ещё менее популярен чем луа, его ещё реже встретишь и меньше куда применишь, а если ищешь программистов - скорее всего не найдёшь : )
У меня, как у луа-мейнера, проблемы со сменой работы, потому что "хотят питон/жс от трёх лет, и тонну языкоспецифичных фреймворков".
То есть, теоретически, постоянно глядя в доки, могу писать на чём угодно, но не в курсе на тему кучи "неопределённого поведения" конкретных ЯП кроме луа, и это медленно в течение нескольких месяцев.
ShadoWalkeR
Да я знаю про to_number 😃
Vsevolod
ценность lua для многих именно в luajit
Vsevolod
у меня знакомый трейдинг пишет на dynasm
ShadoWalkeR
У меня выбор прост был - жава/питон/жаваскрипт в камаилио отпадают сразу
ShadoWalkeR
В астериске есть только Луа, в каме выбор между луа и сквиррелом
ShadoWalkeR
Решил второй потыкать - понравился
Vsevolod
вот у меня основная претензия к lua в том, что он просто провоцирует писать мусорный код
Vsevolod
и хер это исправишь
fgntfg
[Решил второй потыкать - понравился]
Какая прекрасная фраза, если вырвать её из контекста
Snusmumriken
и хер это исправишь
Исправишь, оборачивая всё в ООП/обёртки, как и в любом другом ЯП : )
Vsevolod
да какой oop
Vsevolod
бедность синтаксиса постоянно надо чем-то компенсировать
Vsevolod
и отсутствие сахара - тоже
ShadoWalkeR
Зато быстро
Vsevolod
в данном случае - это просто ураганная портянистость
Snusmumriken
Если честно, у меня такое ощущение что у тебя не очень много опыта.
Vsevolod
опыта в чем?
Vsevolod
lua у меня в проекте где-то лет 8
Snusmumriken
В писании на бедных языках : )
Vsevolod
это не очень много опыта?
Vsevolod
да там у меня в этом плане швах - plain c и lua
Vsevolod
а потом мне контрибутят вот такой код
Vsevolod
https://github.com/vstakhov/rspamd/blob/master/src/plugins/lua/rbl.lua#L157
Vsevolod
и черт знает, что с ним делать
Snusmumriken
Ну, это проблемы человека, который не умеет декомпозировать.
Это будет в абсолютно любом ЯП.
Vsevolod
что там декомпозировать, когда это плагин?
Vsevolod
это тебе не wheel -> car -> drive и прочая херота
Vsevolod
код выполняет совершенно определенную функцию
Vsevolod
которая разбита на сколько-то внутренних функций
Vsevolod
и это совершенно нормальный подход
Vsevolod
ненормальна многословность языка
Vsevolod
все эти вот local, end
ShadoWalkeR
Это вы еще диалпланы астериска не видели, где телефонисты не слышали про такие вещи как замыкания, dofile и тд
Vsevolod
function - задолбаешься печатать
Snusmumriken
А эту совершенно определённую функцию можно разбить на много мелких функций, даже если они используются один единственный раз.
Но имена функций и точки их применения могут быть нормально человекочитаемыми.
Vsevolod
https://github.com/vstakhov/rspamd/blob/master/src/plugins/lua/spamassassin.lua - ну вот так я сам писал довольно большой кусок кода
Vsevolod
даже несмотря на разбиение на кучу функций, не всегда понятно, что там внутри происходит (мне-то понятно, а вот другим - фиг)
ShadoWalkeR
Там, кстати иногда забавные эффекты наблюдаются - я как то в камаилио получал ошибку, но не мог понять изза чего она возникает - в строке все правильно. закомментировал и получил её же на следующей строке где она была. То есть пока предыдущая строка лезла в базу начиналось предварительное выполнение следующей строки)))
Vsevolod
и еще момент, что меня дико бесит
Vsevolod
вот в ML есть .ml и .mli, в сишечке есть .h и .c
Vsevolod
а в lua ничего такого нет, и чтобы посмотреть, как взаимодействовать с модулем, приходится рыть код
Vsevolod
(взять тот же torch)
Vsevolod
@Snusmumriken если у тебя есть конкретные предложения, как это можно сделать или улучшить в lua, то я с удовольствием выслушаю
Snusmumriken
Будет предложение но чуть пожже, с работкой разберусь
Roman
Group Butler [beta]
Hi Viacheslav!
Konstantin
Всем привет!
Товарищи, а подскажите/посоветуйте либу на Lua с разными крипто функциями, типа hmac, PBKDF2 и прочих
Sergey
luacrypto?
Konstantin
да он первый всплывает
Vasiliy
lua-sodium
Vasiliy
не знаю в каком состоянии бинды, но сам sodium вроде найс