Ruslan
и чуточку охапнул когда писал на пурике эту песочницу цель была пописать, попробовать те или иные штуки
Igor
У меня мозгов за 9-10 лет вроде и начало на комплексное что-то хватать, но и объём лени возрос в геометрической прогрессии за всё это время, так что я просто сижу и нихрена не делаю)0)
Ruslan
а деньги капают?))
Snusmumriken
У меня мозгов за 9-10 лет вроде и начало на комплексное что-то хватать, но и объём лени возрос в геометрической прогрессии за всё это время, так что я просто сижу и нихрена не делаю)0)
Это побочка. Вторая побочка — прикидываешь объём работ и такой "нуууу нееееееееее", и то что раньше делал на голом энтузиазме за пару дней теперь растягивается на пару-тройку месяцев потому что надо делать по-человечески а не тяп-ляп и кривая минималочка ))0
Igor
а деньги капают?))
Если только отсюда какой-нибудь залётный попросит ему скрипт для гардиана или другой подобной фигни написать, а так - нет
Snusmumriken
Есть такая хрень, называется "рефакторинг", это когда ты такой смотришь на самые говёные куски и переделываешь/переписываешь начисто. Подчистка ~20% самых говёных кусков превращает проект из кучи говна в конфетку.
Igor
А за это время ну прям прилично так всего реализовал, хоть и на самом-то деле объём не такой уж и большой. Но для форевералоуна всё таки приличненький.
Snusmumriken
То не очень-то и надо, не такое уж и говно.
Igor
Есть такая хрень, называется "рефакторинг", это когда ты такой смотришь на самые говёные куски и переделываешь/переписываешь начисто. Подчистка ~20% самых говёных кусков превращает проект из кучи говна в конфетку.
Ну это само собой, переодически рефакторю, не думаю, что у меня остался где-то код, который старше, скажем, одного года (Ну если не считать некодовые файлы, типа .gitignore, .gitattributes, которые один раз написал и забыл про них)
Ruslan
установил love щас буду писать)
Hello, World! 🎄
Anonymous
Может кто знает тут, хорошую книгу или материалы про TTF и в целом про современный рендеринг шрифтов?
Snusmumriken
Может кто знает тут, хорошую книгу или материалы про TTF и в целом про современный рендеринг шрифтов?
Это охрененно сложная тема. Сложнее только поля для ввода а ля <input>.
Hello, World! 🎄
А мне почему-то всегда казалось, что шрифт - просто набор векторных символов
Snusmumriken
Лол, нет.
Hello, World! 🎄
Лол, нет.
Не ну ты же понимаешь разницу между как есть и как я думаю?
Snusmumriken
Да, понимаю, но даже у шрифта есть хинты обычно.
Snusmumriken
Вкратце можно глянуть тут про базовые технологии. https://habr.com/ru/post/433670/
Snusmumriken
Не ну ты же понимаешь разницу между как есть и как я думаю?
Меня просто каждый раз упарывает лёгкая наивность твоих высказываний на тему того что ты думал и чего не думал. Можно просто взять и прочитать, а до этого не думать буквально ничего, и не делать ровно никаких выводов.
Anonymous
Это охрененно сложная тема. Сложнее только поля для ввода а ля <input>.
Да, я знаю по этому вот и ищу материалы. Хочется продвинуться дальше bitmap font
Snusmumriken
Забей, я без негатива, просто каждый раз меня продолжает упарывать :)
Snusmumriken
Вкратце о том, с чем сталкивается народ, и что должно напугать тех кто пытается лезть в рендеринг шрифтов:
Snusmumriken
Мало того, самый секс начинается уже после того как мы научились рендерить отдельные буквочки, и приступаем к комбинациям. https://habr.com/ru/post/469529/
Snusmumriken
А что в этих полях прям сложного?
Почитай. Я скинул примеры и некоторые проблемы.
Inellok
Да, вот курсив - это, конечно, жёстко
Inellok
Там ведь куча всяких мелочей... Очень много
Snusmumriken
Мало почитал, прочитай обе статьи полностью, для общего образования.
Ruslan
setmetatable(middleclass, { __call = function(_, ...) return middleclass.class(...) end }) что тут происходит? дроп первого аргумента для всех попыток вызова?
setmetatable(middleclass, { __call = function(_, ...) return middleclass.class(...) end }) что тут происходит? дроп первого аргумента для всех попыток вызова?
Да, ибо первым аргументом будет сам middleclass. Из примера на гитхабе: local class = require 'middleclass' local Fruit = class('Fruit') -- 'Fruit' is the class' name При вызове объекта class в __call первым аргументом попадёт этот самый объект.
Ruslan
5 минут смотрел на этот код....а потом каааак понял...действительно, удобная фича с точками и двоеточиями в таких случаях
Snusmumriken
Двоеточие это синтаксический сахар, ничего больше. Но типа "сразу понятно что это метод а не просто функция".
Ruslan
Двоеточие это синтаксический сахар, ничего больше. Но типа "сразу понятно что это метод а не просто функция".
а акцентировал на том что когда нужно другой self передать то точка тут как тут)
Cyberpunk enjoyer
Всем снова добрый день! Снова столкнулся с трудностями. Возможно ли как-то транслировать объекты с v8 ( js ) в луа? Функции, массивы, переменные
Igor
или тебе именно репрезентацию в памяти нужно превратить в луёвую
Igor
тут уже сложнее, нужно копировать циклом из одного стека в другой
Igor
потому что машины то разные, по другому никак не скопируешь
Igor
но в таком случае между ними будет отсутствовать высокоуровневая связь, то есть будешь менять в v8 массив, а он не поменяется в луях
Igor
чтобы полностью зеркалить это нужно очень сильно коду накостылять
Igor
Всем снова добрый день! Снова столкнулся с трудностями. Возможно ли как-то транслировать объекты с v8 ( js ) в луа? Функции, массивы, переменные
не знаю, конечно, что у тебя за стек и какие нужды, но я бы на твоём месте посмотрел бы не в сторону v8, а duktape. он помельче будет.
Igor
у дактейпа, кстати, и интерфейс больше на луёвый похож, и оба на си накатаны
Cyberpunk enjoyer
Смотри, у меня есть игра, она использует v8 js для своих нужд, я хочу сделать апи из неё в луа, функций очень много они хранятся в массиве
Cyberpunk enjoyer
Вся идея была в том чтобы api = Api.GetHandle() id = api.player_id()
Snusmumriken
Сишные функции приложения напишешь в двух экземплярах — для js и для lua. Советую сделать базовые функции и враппер для конкретного языка.
Snusmumriken
Но вообще, выглядит немного как мартышкин труд. Зачем lua когда есть v8? И наоборот.
Igor
Вся идея была в том чтобы api = Api.GetHandle() id = api.player_id()
ну это на уровне C надо приколы с чёрной магией мутить. я как-то раз пытался duktape и lua совместить в пределах одной библиотеки, чтобы можно было и js и lua использовать. ну и короче накидал дженерик функции и два контекста, в которые сунул основные функции и стейты дактейпа и lua соответственно. то есть каждый контекст хранит в себе указатель на внутреннюю структуру стейта языка и функции необходимые.
Igor
но я так и не доделал этот прикол потому что слишком тяжко было это всё делать и стало лень.
Hello, World! 🎄
https://fengari.io/
lua vm написанная на js
Igor
lua vm написанная на js
медленнее ничего не придумать
Igor
он хотя бы на васме?
Hello, World! 🎄
Igor
пипец
Igor
Поддержка FFI, да и луа приятнее в разы
ну так в таком случае можно и оставить только один lua
Igor
v8 весит как сто луёв
Igor
Придумать
Разве что внутрь луёв жсных ещё сунуть реализацию жс на луа
Igor
При таком раскладе уже можно будет задуматься о состоянии психического здоровья программиста, который это сделает
Cyberpunk enjoyer
При таком раскладе уже можно будет задуматься о состоянии психического здоровья программиста, который это сделает
Я просто уже видел как минимум 2 человека это сделало, поэтому задумался об этом
Igor
в любом случае это будет очень много кода, чтобы все приколы прокинуть
Igor
легче оставить только один скриптовой яп
Hello, World! 🎄
При таком раскладе уже можно будет задуматься о состоянии психического здоровья программиста, который это сделает
Я видел WIndows на котором открыт VirtualBox в котором открыт ещё Windows в том виндовс открыт в виртуалке MS-DOS
Igor
я не понимаю, зачем там вообще v8, если lua имеется
Igor
тем более luajit
Cyberpunk enjoyer
легче оставить только один скриптовой яп
так мне не особо и нужно, мне просто чтобы функции которые предназначены врапперами для js вызвать в луа
Cyberpunk enjoyer
саму вм js, я и не собирался тащить