@ProLua

Страница 52 из 307
maxx
16.02.2017
11:31:42
пару раз мелькнёт на хабре, и будешь сервер из чайника поливать, чтоб не дымился =)

Alexander
16.02.2017
11:31:54
так что верхний потолок в лучшем случае 20-30 тысяч, и то через год-два. не вижу смысла сейчас тратить время на такие оптимизации

не будет - это вспомогательный, а не основной бот

да и инвайта на хабр мне никто не дает (впрочем я и не прошу, и сам туда писать не особо собираюсь)

Google
Snusmumriken
16.02.2017
11:33:55
например https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE-%D1%87%D1%91%D1%80%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE
Да, я уже подумал на тему деревьев. У меня просто задача делать лёгкие штуки. Таблицы из большого количества таблиц на lua слишком неэкономичны.

Snusmumriken
16.02.2017
11:36:06
Всегда можно задействовать luajit и его ресурсы ;)
Да, на эту тему я уже тоже подумал : )

Alexander
16.02.2017
11:36:28
а кстати. как сам иерусалимский относится к luajit? я пытался гуглить, но не нашел фраз, которые бы говорили о таком

Tverd
16.02.2017
11:37:01
Я аналогично не видел

https://github.com/neomantra/lds

Snusmumriken
16.02.2017
11:37:49
а кстати. как сам иерусалимский относится к luajit? я пытался гуглить, но не нашел фраз, которые бы говорили о таком
Насколько я понимаю, ему норм что кто-то сделал свою реализацию виртуальной машины. И он сам использует ванильную, потому что на луях у него, в основном, обертки над сишкой.

Кстати, если кому интересно, как именно пишут на ffi: https://github.com/luapower/libcurl/blob/master/libcurl.lua

Tverd
16.02.2017
13:20:56
кому если надо тестить свои приложения, дабы небыло ошибок ;) то есть однофайловый тестер https://bitbucket.org/zserge/gambiarra

@Snusmumriken скажи, а зачем ты писал сортировку, чем не устроила стандартная table.sort ?

Snusmumriken
16.02.2017
13:54:43
Медленно : 3 Да, сишный квиксорт оказывается медленнее.

Tverd
16.02.2017
13:54:54
Сишная медленнее? Там же вроде qsort?

Что за чудеса....

Google
Snusmumriken
16.02.2017
13:55:27
Вопрос задач. На почти совсем отсортированных массивах, гномы быстрее.

Tverd
16.02.2017
13:55:38
А, понял

Snusmumriken
16.02.2017
13:57:58
А теперь представь что у меня - миллион статичных кирпичей, и несколько сотен динамических объектов, которые только меняются местами со статичными кирпичами. Сортировать квиксортом - значительно медленнее, инфа сотка. Да, сортировка происходит по координатам вдоль какой-то из осей (x/y).

Tverd
16.02.2017
13:59:22
да, я посмотрел алгоритм... это понятно, это правильный подход )

Snusmumriken
16.02.2017
14:03:23
CombSort проигрывает стандартному квиксорту, но есть пара граничных случаев где его можно использовать чуть быстрее (почти отсортированный массив, на края которого мы вставляем что-то, что нужно далеко двигать).

Хотя сортировка рандомом - венец алгоритмов. Как и #define true random() > 0.5. И прочая стохастика. Осталось научиться приемлемо кодить в таких условиях.

Snusmumriken
16.02.2017
14:08:15
Ехехе, кстати, ты в курсе, что массив находится в состоянии суперпозиции, пока ты его не проанализировал? И одна из суперпозиций - упрядоченность.

Snusmumriken
16.02.2017
14:09:56
Ну, пока ты не пробежал по элементам массива и не сравнил с предыдущими - ты не знаешь, сортирован массив или нет. Меня напрягают попсовые "шрёдингеры", вылезающие из всех щелей, но как факт, суперпозиция присутствует :3 В таком случае, можно взять состояние суперпозиции где он отсортирован, и получить любой сортированный массив за O(1) :3 Правда, шанс не велик, да. Если много-много оперировать вероятностями - можно приблизить вероятность отсортированного массива к максимуму.

Tverd
16.02.2017
14:11:40
??? нормальные измышления в чате по луа

Alexander
16.02.2017
14:12:05
??? нормальные измышления в чате по луа
я люблю луа я люблю чат луа я люблю разговор про чат луа

Snusmumriken
16.02.2017
14:12:23
Ехехехе, это стохастическое программирование. Пихаем как можно больше рандома во все щели, и получаем ПОЧТИ ГАРАНТИРОВАННО нужный результат за минимальное время.

Snusmumriken
16.02.2017
14:12:52
Точнее *оно должно таким быть*, если хорошо вкурить матан.

Нет, как раз минимальное - быстрее любых существующих алгоритмов, чаще всего - O(1). То есть, ситуация в мировом эфире сложилась таким образом, что ты получил сразу нужный вариант :3

Alexander
16.02.2017
14:13:52
это ты Грега Игана начитался?

Snusmumriken
16.02.2017
14:13:55
Это как глупая сортировка, которая каджый раз срабатывает идеально.

Не, расслабься :3 Хотя идея хорошая.

Мерлин
16.02.2017
14:14:47
за время в многократное раз превышающее возраст Вселенной?
Неа, вот скажем один из самых шустрых алгоритмов выявления простых чисел - он нестрогий, и даёт правильный ответ всего лишь с вероятностью около 0.99999999(восемь девяток)

Google
Мерлин
16.02.2017
14:15:17
:3

Snusmumriken
16.02.2017
14:15:40
Для генерации миллиардов хеш-ключей - самое то. Сотня ключей может быть ошибочной, но кого это волнует, при таком количестве правильных ответов?

Мерлин
16.02.2017
14:16:57
Неа, вот скажем один из самых шустрых алгоритмов выявления простых чисел - он нестрогий, и даёт правильный ответ всего лишь с вероятностью около 0.99999999(восемь девяток)
Или скажем те же хэш-таблицы проектируют из предположения, что хэши от ключей распределены более-менее равномерно. В среднем это так, но тем не менее вроде были атаки на DNS с учётом неидеальности распределения значения хэшей

Snusmumriken
16.02.2017
14:28:42
За примерами далеко ходить не надо. У lua большие проблемы с обработкой большого количества почти идентичных строк, ибо хеширующая функция зависит только нескольких символов в строке. И хорошо если хоть начала или концы строк различаются. Но тут есть и свои плюсы, в виде ужасно быстрого дублирования и передачи строк в функции.

Пришел один программист к мудрецу, и попросил программу без ошибок. - Глупец! - вскричал мудрец - Почему ты не попросишь у меня ошибку без программы? И хрясь, винчестером по голове.

Tverd
16.02.2017
14:39:17
))))))

Ну вот, таймеры кажись написал, надо тестить теперь. Благодарствую за идею про сортированный массив по времени срабатывания

Парни, в геймдеве сегодня промелькнуло сообщение о том что https://www.cgpeers.com/ доступен для регистрации на 48 часов. Это трекер с геймдевскими штуками, плагинами, паками и прочим... кому надо, в общем.

Tverd
16.02.2017
15:15:41
модели есть точно

Да и текстуры тоже )

0x9d8e
16.02.2017
15:16:50
В общем зарегался, вдруг когда пригодится.

0x9d8e
16.02.2017
15:16:51
Спс

Мерлин
18.02.2017
15:30:08
https://habrahabr.ru/post/321864/

Group Butler [beta]
19.02.2017
13:51:17
Добро пожаловать в чат pro.lua, terminate all! Ознакомься с правилами чата (в описании и прикрепленном сообщении), и присоединяйся к обсуждению.

Tverd
20.02.2017
08:43:56
Кстати, openresty реально быстр... Тестировал как-то

maxx
20.02.2017
08:51:38
мне openresty отдавал страницу за 5-7 мс на очень среднем железе. это было круто во времена РНР5, который на том же железе был раз в 15 медленнее. но потом вышел РНР7, и время отдачи страницы стало очень сравнимо с. практически те же 10+ мс, но с намного более оптимизированным под веб-дев инструментарием.

Tverd
20.02.2017
08:58:19
Ну это понятно, если надо что-то большое, одним опенрести сыт не будешь... А если стоит nginx и надо что-то мелкое и по быстрому, то почему бы и нет

maxx
20.02.2017
09:34:54
угу, но не хватает ещё одного "если": если уже есть под рукой хорошая/удобная библиотека для вебдева. типа там, парсинг запросов, защита от инъекций, форматирование ответов, и т.п.

Google
Snusmumriken
20.02.2017
09:49:00
Ну там, тебе нужна авторизация/парсинг запросов/защита от инъекций и форматирование ответов? Мути на php. Нужны сложные штуки типа ускоренного ресайзинга картинок через imagemagic? Вот тебе специальный адрес для этого, где всё калькулируется на луях. В моём примере, в одних случаях грузится http-шка, в других - скрипт lua как текст (для моего webrequire), в третьем - выполняется скрипт на луях. Ну, ещё лишняя плюха для css. Регулярки тащат.

maxx
20.02.2017
09:52:01
да я к тому, что чтобы сделать хоть что-то серьёзное, уровня выше, чем "поделка на коленке", нужен нормальный веб-фреймворк с парсингом сырых запросов/ответов, работы со всякими там chunked encoding, gzip и т.п. а иначе оно так и останется на уровне "ма! смотри как я могу!" =)

Snusmumriken
20.02.2017
09:53:18
да я к тому, что чтобы сделать хоть что-то серьёзное, уровня выше, чем "поделка на коленке", нужен нормальный веб-фреймворк с парсингом сырых запросов/ответов, работы со всякими там chunked encoding, gzip и т.п. а иначе оно так и останется на уровне "ма! смотри как я могу!" =)
>chunked encoding, gzip Это как раз отлично готовится на луях. Хз как там с php7, но это офигенно быстро. С JIT-кешированием - гарантированно офигенно быстро. Учитывая подрубание сишных либ. Если научиться в FFI - к твоим услугам будет всё что уже изобрели для C/C++. Это гарантированно больше и быстрее php7. Хотя мб не такое сахарное, но сахар можно мутить на стороне lua.

maxx
20.02.2017
09:54:56
ключевое слово - "будет" =) ну, и когда всё это действительно будет, получится "тот же РНР, только не РНР, но прям почти как РНР" =)

Snusmumriken
20.02.2017
09:56:55
Тут прекол в "ма смари я умею в микросервисы, пережёвывающие пяцот тыщ запросов в секунду с матаном и лазаньем в бд". Да, надо пилить то что тебе нужно, потому что луи пока не доминируют в вебе, хотя ничто особо не мешает заменять ими жаваскрипт с пхп, кроме поддержки луёв в браузерах : ) Другое дело, что если луи станут популярными - появится огромная тонна говнобиблиотек, написанных криворукими макаками, поэтому придётся десять раз думать, что выбирать, вместо того чтобы брать то что нашёл, ибо сейчас - почти гарантированно всё ок. Общество расширится до всякой гопоты, которая вчера впервые открыли учебник роберто иерузалимши, из-за чего общество (за редким исключением) перестанет быть таким милым и отзывчивым, появятся толпы говнофреймворков с мерзейшим АПИ, и не будут брать на работу без знаний десятка этих мудацких штук. Всё как в JS : ) https://habrahabr.ru/post/321864/

Snusmumriken
20.02.2017
10:04:47
Кстати, в openresty есть приличного размера база для веба, это как факт. Кодирования/декодирования есть, доступ в БД - есть, генерация шаблонов - тоже есть. Экранирование SQL и прочих запросов - ясен хрен. Уже написали : 0

Disinterpreter
20.02.2017
10:05:07
MoonScript чем не сахар

Admin
ERROR: S client not available

maxx
20.02.2017
10:05:24
такое случится только если луа начнёт покидать свою нишу (как и жабоскрипт, да) =) а ниша - это лёгкий скрипт, встроенный в большую систему, лишь СЛЕГКА изменяющий её поведение. в смысле, писать ОС на луа или целую игрушку со всей графикой и т.п. - можно, но это, по-моему, большая ошибка. модуль АИ, например, в той же игрушке - вполне себе ок

maxx
20.02.2017
10:06:08
я даже не спорю с этим. конечно хорош =)

Disinterpreter
20.02.2017
10:06:09
ибо в LuaJIT скорость почти как у чистых Сей + он прост для понимания

Disinterpreter
20.02.2017
10:06:41
Будет ли юзать openresty каждый второй пхпшник - нет. Хорошее ли это решение для хайлоада - да.

maxx
20.02.2017
10:06:53
вот именно, чтоб писать с луажит-ом, нужно ещё знать Ц. но ведь можно просто сразу забабахать модуль для энжинкса на Ц и жить счастливо. и для высоконагруженного проекта так будет даже лучше, не? =)

Disinterpreter
20.02.2017
10:07:06
Зачем?

Если не выходить в ffi

Snusmumriken
20.02.2017
10:07:14
Не нужно знать Ц чтобы просто писать на луаджыте. Оно и так будет трассироваться-компилиться.

Google
Disinterpreter
20.02.2017
10:07:15
луажит можно юзать без Ц

а писать сайт на Си слишком неподдерживаемо

В сайте написаном на луа разобраться проще чем в сях это очевидно

Snusmumriken
20.02.2017
10:07:55
Считай что на Ц там только вставки, если тебе нужны всякие извращения вроде юзания с++-либ, на которых ещё не написали биндинг.

Snusmumriken
20.02.2017
10:09:13
Ну, кстати да. Я вообще довольно сильно извращаюсь с луями. Кстати, ты в курсе, что jit отлично себя показывает на микроконтроллерах? Луа такая маленькая - чтобы быть встраиваемой в микрухи.

maxx
20.02.2017
10:09:37
есть, вон, пацанчики, которые ОС на жабоскрипте пишут. можно! получается! но это ж ой =)

Disinterpreter
20.02.2017
10:09:42
и простое апи чтоб встраивать во внестраивоемое

maxx
20.02.2017
10:10:24
именно! на МК луа вообще должна цвести и пахнуть =)

Disinterpreter
20.02.2017
10:10:37
На счет встраивоемости, жс можно встроить используя Duktape но он слишком молод

Snusmumriken
20.02.2017
10:11:16
Ой мама : ) Но тут одна большая разница между жытом и жаваскриптом: жаваскрипт тормознутый и делает кучу вызовов. Луажыт - быстрый и на лету компилится, разница с сишками и плюсами только в чуть более медленном запуске приложений, и невозможности вставок на асме (разве что как раз dll/so подрубать)

Disinterpreter
20.02.2017
10:11:51
Как вообще удается заводить жит на микроконтролерах?

maxx
20.02.2017
10:11:52
жаваскрипт - это сейчас, считай, V8 - гуглевский движок, который вполне себе быстр и сильно оптимизирован

Disinterpreter
20.02.2017
10:11:55
Он же привязан к архитектуре

Плюшка
20.02.2017
10:12:11
есть и JS на микроконтроллерах

там интерпретатор скомпилен и во Flash сидит

Snusmumriken
20.02.2017
10:12:52
жаваскрипт - это сейчас, считай, V8 - гуглевский движок, который вполне себе быстр и сильно оптимизирован
Ну, а вставки на асме, для оптимизаций? Плюс, простите, но слой браузера - это уже жесть : ) Браузер - изначально не рутовое приложение.

Плюшка
20.02.2017
10:12:56
емнип

maxx
20.02.2017
10:13:05
но, вообще, встроить можно и питон, дурное дело нехитрое, но луа - это простейшая модель на стеке, работающая супер-быстро для своих целей, а жабоскрипт/питон - это куча магии под капотом, оптимизаторы, сборщики мусора... ты просто перестаёшь уже понимать и контролировать, что там внутри происходит

Плюшка
20.02.2017
10:13:51
но там дохренища памяти, чуть ли не полмегабайта, причем 300 КБ уходит на интерпретатор (емнип).

maxx
20.02.2017
10:14:47
эх, а раньше искренне верили, что "640Kb ought to be enough for anybody" (c) =)

Snusmumriken
20.02.2017
10:14:53
Maxx: Выстрелы себе в ногу, куча неочевидных действий для оптимизации и всё такое. Жабаскрипт слишком ногострелябелен. GNU/Плюшка: Микрухи сейчас с 2-4мб памяти есть, а к некоторым можно и флешку с кодом произвольного размера подрубать, подгружая необходимые модули на лету, получая логику произвольной сложности.

Страница 52 из 307