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

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

Google

Snusmumriken
16.02.2017
11:33:55

Tverd
16.02.2017
11:35:46

Snusmumriken
16.02.2017
11:36:06

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
Кстати, если кому интересно, как именно пишут на 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.
И прочая стохастика. Осталось научиться приемлемо кодить в таких условиях.

Alexander
16.02.2017
14:08:10

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

Alexander
16.02.2017
14:08:34

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
Ехехехе, это стохастическое программирование.
Пихаем как можно больше рандома во все щели, и получаем ПОЧТИ ГАРАНТИРОВАННО нужный результат за минимальное время.

Alexander
16.02.2017
14:12:49

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

Google

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

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

Мерлин
16.02.2017
14:16:57

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

Tverd
16.02.2017
14:39:17
))))))
Ну вот, таймеры кажись написал, надо тестить теперь. Благодарствую за идею про сортированный массив по времени срабатывания
Парни, в геймдеве сегодня промелькнуло сообщение о том что https://www.cgpeers.com/ доступен для регистрации на 48 часов. Это трекер с геймдевскими штуками, плагинами, паками и прочим... кому надо, в общем.

0x9d8e
16.02.2017
15:14:45

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
угу, но не хватает ещё одного "если": если уже есть под рукой хорошая/удобная библиотека для вебдева.
типа там, парсинг запросов, защита от инъекций, форматирование ответов, и т.п.

Snusmumriken
20.02.2017
09:43:52

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

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


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

Disinterpreter
20.02.2017
10:03:51
для веба

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
такое случится только если луа начнёт покидать свою нишу (как и жабоскрипт, да) =)
а ниша - это лёгкий скрипт, встроенный в большую систему, лишь СЛЕГКА изменяющий её поведение.
в смысле, писать ОС на луа или целую игрушку со всей графикой и т.п. - можно, но это, по-моему, большая ошибка.
модуль АИ, например, в той же игрушке - вполне себе ок

Disinterpreter
20.02.2017
10:05:55

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

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

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

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
Считай что на Ц там только вставки, если тебе нужны всякие извращения вроде юзания с++-либ, на которых ещё не написали биндинг.

maxx
20.02.2017
10:08:11

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

Плюшка
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мб памяти есть, а к некоторым можно и флешку с кодом произвольного размера подрубать, подгружая необходимые модули на лету, получая логику произвольной сложности.