Snusmumriken
Ну hex не существует, значит массив int-number'ов 0-255.
Snusmumriken
А чего не со строчечками? Чтобы не клеить?
Snusmumriken
Ну там:
function uart_send(str_msg)
local out = {}
for i = 1, #str_msg do
out[i - 1] = str_msg:byte(i, i)
end
uart_send_data(out)
end
Но на склейку строчечек может нагрузиться сборщик мусора.
Dmitriy
Ну в смысле, у меня там
in1_vol_up = {0xA5, 0xC3, 0x3C, 0x5A, 0xFF, 0x36, 0x05, 0x04, 0x01, 0x01, 0x00, 0x0A, 0xEE}
команды такого типа
Dmitriy
Дли стрингоа у меня другая ыункция
Snusmumriken
Ну ето буквально превращается вот в такую строку, Но да, малясь неудобно. Но вдруг ты пересылал что-то человекочитаемое.
Dmitriy
Не не. Мне именно такие пакеты надо слать для управления железяками
Snusmumriken
Я ужо понял что оно имеет бинарный формат, таблички норм )
Dmitriy
if screen == 0 then
if control ==1 and value==1 then
local p_off_full = {}
for i = 1, string.len(p_off) do
relay1[i-1] = string.byte(p_off, i)
end
client_send_data(p_off_full)
end
end
Dmitriy
Во, нашел
Snusmumriken
Во, нашел
Чел, смотри. Выделяешь блок кода и нажимаешь ctrl + shift + m. Если не работает — обрамляешь с двух сторон тройными `.
На телефоне можно выделить и нажать в стилях на mono,
Snusmumriken
Молодец, а теперь куда-то дел старое форматирование )
Dmitriy
'''тест тройной ковычки'''
Aqendo
Не такие
Aqendo
а понял
Snusmumriken
Та "кавычка" (обратный апостроф) которая на букве Ё.
Dmitriy
Бро, я с телефона сейчас
Aqendo
Dmitriy
Гугл клава? Как ты вызвал меню этих символов?
Snusmumriken
(кстати, клиент телеги на пк всё ещё хорош)
Aqendo
Aqendo
Aqendo
Dmitriy
тест
Dmitriy
Век живи, век учись 👌
Igor
(кстати, клиент телеги на пк всё ещё хорош)
Мне он дизайном чет совсем не нравится, а в последний раз, когда его использовал по функционалу так вообще атас был. Использую Web Telegram Z version, он меня более чем устраивает.
Snusmumriken
Это костыльный кастрированный md-like. Однострочники всё ещё можно выделять обрамив одиночными `.
Dmitriy
Dmitriy
Так как у меня почти везде обычные строки, буду менять на решетку, существенно улучшает читабельность и скорость написания
Dmitriy
Stanfox1984
Мне кажется в Lua не хватает статической типизации
Igor
Aqendo
+
Snusmumriken
Igor
Я не вижу ни малейшего смысла в статической типизации в некомпилируемом языке. Нужна типизация? Вот тебе C/C++/C#, Rust, Golang, Java, ....
Stanfox1984
С динамической типизацией сложнее оптимизировать программу
Stanfox1984
Машина во первых больше действий делает
Igor
Igor
Если ты только посмотришь на процесс выполнения какой-нибудь print(123) в том же lua, у тебя челюсть отвалится))
Igor
Ну, это, конечно, если ты не имел дела с разработкой интерпретаторов и вообще в целом с C/C++
Igor
Но если человек заявляет, что скриптовому языку недостаёт типизации, то я склонен подозревать, что он и не знает, как работают языки с интерпретаторами
Igor
Всё, что имеет значение в скриптовых языках при оптимизации - это знание принципов работы сборщика мусора, как он что делает и при каких обстоятельствах.
Igor
И конечно же понимание того, как заставить этот самый сборщик мусора делать как можно меньше действий.
Snusmumriken
Ну типа это звучит как "молотку не хватает пассатижей". Зачем встраивать в молоток пассатижи? Почему бы не взять пассатижи отдельно от молотка?
Snusmumriken
Не, так-то вон там жаваскрипт — полигон для испытаний со своим тайпскриптом и прочими кофе скритами и всякой такой ерундой.
Ошибки в рантайме (кроме очевидных "как бы типов") накрученная на него статика не ловит. Предложений оптимизаций не делает. Мусор плодит точно так же как жаваскрипт, ведь его и используют в первую очередь чтобы плодить тонны оверхедного мусора из обёрток над обёртками над обёртками, всё выше и выше на уровень абстракции.
И в то же время под луа есть луачек, который ловит типовые опечатки, неиспользованные переменные и всякую такую ерунду. Только после получаса прогона твоего кода в луачеке (особенно в коде для встраивания), ты неожиданно для себя захочешь отключить 80% ворнингов, или будешь десять часов читать доку к луачеку чтобы всё сделать по правилам.
Snusmumriken
И тут точно такие же правила как с древней смешной картинки:
Статическая типизация делает сильных программистов.
Сильные программисты (им и так норм) делают динамическую типизацию чтобы не трахаться со статикой на пустом месте а в две строчки делать вжух-вжух, всё равно разницы между 0.01 и 0.001 для юзера нет.
Динамическая типизация делает слабых программистов.
Для слабых программистов приходится придумывать статическую типизацию чтобы хоть как-то держать их в узде.
Этому циклу не один десяток лет, если что, и он всё повторяется и повторяется.
Aqendo
Получается мы щас на этапе слабых программистов
Snusmumriken
Ага, и во всём бизнес-фигизнесе последние лет пять-десять насильно пропихивается статика в том или ином виде (в т.ч. в жаваскрипте), чтобы бизнес-процесс совсем уж не тонул в говнокоде :)
Luсky
Dmitriy
Лютые вещи рассказываете
Dmitriy
Придется теперь идти гуглить, что это такое
Igor
Под "адекватным" я подразумеваю умеющего правильно обращаться с памятью, битиками и прочими приколами, если ты всё это умеешь, то ffi с житом станут твоими лучшими друзьями, если нет - хрен вы подружитесь
Dmitriy
Dmitriy
Эти типа как си и как ява
Igor
Dmitriy
Int a =10 и попробуй запихать не int
Dmitriy
Ну я таких определениц не встречал. Просто знаю, что в си я обязан объявить тип переменой а в js ничо не надо
Dmitriy
У меня были простые учебники, без заумных определений и долгих вступлений
DELTA
Привет всем
DELTA
В общем, с апишкой одной проблема, помогите, пожалуйста.
local data = string.format('message=%s&playerNick=%s&nick=%s&dialogId=%s', u8(message), u8(playerNick), u8(getMyData().nick), u8'2bd198480e3898bd') вот такая херь есть, разкодируйте пжпж для запроса
Igor
В общем, с апишкой одной проблема, помогите, пожалуйста.
local data = string.format('message=%s&playerNick=%s&nick=%s&dialogId=%s', u8(message), u8(playerNick), u8(getMyData().nick), u8'2bd198480e3898bd') вот такая херь есть, разкодируйте пжпж для запроса
Повнятнее суть проблемы опиши, понятия не имею, чего тебе тут "разкодировать пжпж" надо
DELTA
message=%s&playerNick=%s&nick=%s&dialogId=%s', u8(message), u8(playerNick), u8(getMyData().nick), u8'2bd198480e3898bd
DELTA
это
Igor
Я вижу обычный, вполне себе прозрачный и понятный query-кусок HTTP запроса, что с ним тебе сделать надо так и не понял
DELTA
мне не понятен
DELTA
можешь подставить абсолютно любые значения
Igor
Вместо "%s" у тебя поочередно подставляются те аргументы, что переданы после этой строки
Snusmumriken
Igor
А функция u8, смею предположить, работает как URI кодировалка для изоляции спецсимволов
Snusmumriken
Да скорее всего urlencode обыкновенный
Snusmumriken
Интересно почему id диалога такой вшитый.
DELTA
Помогите нубу и недожуниору вытащить с этого скрипта api с параметрами
DELTA
чтобы он хоть что то прислал
Igor
Код пока на ходу посмотреть не могу, домой приду и гляну