LeshaInc
Пользователи-
Публикации
777 -
Зарегистрирован
-
Посещение
-
Победитель дней
68
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя LeshaInc
-
Напишите просто консольную программульку: $ computercraft start ds login: vasyapupkin2015 password: HNKOMy_HE_CKAZy_1337 Starting game... Done.
-
Сборщик программ .lua в формат для MineOS
LeshaInc ответил в тему Programist135 в Программы новичков
Что здесь наглого? Мне что нельзя высказать своё мнение? -
Сборщик программ .lua в формат для MineOS
LeshaInc ответил в тему Programist135 в Программы новичков
Что за странные свистоперделки в посте? Читать невозможно. Минусик в репу за свистоперделки. -
GUIAPI v0.3 Мало кто помнит, но очень давно, во времена Тоторо-не-девелопера, мы с Тоторо и НЕО писали GUIAPI, и даже тему подняли, но потом забросили и даже не довели до ума. Уже совсем недавно, я начал писать банк для Файна, и однажды он мне написал: "Сделай крутое гуи как в базаре (новом) у Крутого". И начал грустить тогда я, ведь не было у меня удобного и красивого инструмента для создания гуи. И вспомнил я про формочки Зеро, и вспомнил я слова НЕО "Не пиши велосипеды!", но я не послушал его. Поэтому, хочу представить вам библиотеку гуи, настоящий велосипед, но красивее чем у Зеро. Модулей пока очень мало, а именно кнопка, текст-ввод, коробка и лэйбл. Но если вы захотите - вы можете написать свой модуль. Работа с API: Создание своего модуля: Скачать: Скоро PS: Кто напишет нормальную прокрутку в текстовом поле - тому подарок на IT-Lite лично от меня, у самого времени нет.
-
Если нужна удобная модульность — можете подождать и узерть мой аналог формс, с удобной модульностью. Собственно, я либу уже написал, дело в том что надо напитсать модули (чекбоксы всякие, поля для ввода, списки, итд)
-
Веб сервер на Lua. Часть 1: Установка
LeshaInc прокомментировал LeshaInc запись в блоге в IncluderWorld
Сразу видно что ты даже половины не прочитал. На хабре я узнал про эту штуку, первая часть частично саопипасчена с хабра. А ведь есть ещё 3 части.. -
Веб сервер на Lua. Часть 1: Установка
LeshaInc прокомментировал LeshaInc запись в блоге в IncluderWorld
Спасибо, поправил. -
Веб сервер на Lua. Часть 3: Класс «App» Здравствуйте. Вы читаете запись из цикла "Веб сервер на Lua". В конце данного цикла у нас получится вполне работоспособный веб сайт, причем быстрый, да еще и на Lua. Я все действия буду производить в такой среде как "c9", сайт будет доступен под адресом: http://lua-includeralex.c9.io/ Все файлы, вы можете посмотреть тут: http://ide.c9.io/includeralex/lua Что, ж поехали. В этой части мы создадим более углубленно рассмотрим функционал Lapus, а именно: изучим класс App, а также узнаем о консоли Lapis. Консоль Начнем, пожалуй, с консоли Lapis. Эта консоль - некий дебагер, в него мы вставляем код - а он нам возвраащет результат. Интерпретатор Lua, так сказать, только с доступом ко всем библиотекам lapis. Первым делом такую консоль необходимо установить. Для начала скачаем необходимый пакет, используя уже знакомую нам утилиту LuaRocks: $ luarocks install --server=http://rocks.moonscript.org lapis-console После установки данной библиотеки мы готовы приступать к самому главному - добавлению роутера, который бы отвечал за эту консоль. В начало нашего кода, там где у нас подключаются все библиотеки, мы добавим такой код: local console = require("lapis.console") Структура данного require такова: имя_фрэймворка.имя_аддона. В нашем случае это lapis.console. Теперь необходимо добавить роутер, для этого используем уже знакомую структуру: app:get("/console", console.make()) console.make - это та самая функция, которая конструирует консоль пот заданным роутером. Теперь запустим сервер, и убедимся что все работает: На этом разговор об консоли закончен. Приступим к самому вкусненькому - к класссу app. Класс App Класс app - это самый главный класс в нашем приложении. Без него наше приложение не сможет выполнять хоть какие-то полезные действия, кроме выжирания памяти, и ресурсов процессора. Для создания объекта этого класса нам необходимо выполнить следующий код: local app = lapis.Application() Перейдем к методам App. app:enable(module: string) - функция включения модуля lapis. Из модулей известны нам пока только etlua, но потом мы обязательно узнаем больше. app:match([router_name: string],url: string, onrequest: function) - функция создания нового роутера, с парсингом url, в параметр url передается паттерн, в параметр router_name передается имя роутера, об нем чуть позже, в параметр onrequest передается функция, которая и будет выполняться при каждом заходе на url (принимает аргумент self). app:before_filter(before: function) - устанавливает функцию-обработчик, которая вызывается при каждом запросе к сайту, функция принимает один аргумет self) app:get(url: string, onrequest: function - то же что и app:match, только умеет работать только с GET запросами, не поддерживает router-name, и не умеет парсить url. app:post(url: string, onrequest: function - то же что и app:match, только умеет работать только с POST запросами, не поддерживает router-name, и не умеет парсить url. Что-ж, на этом все. Enjoy!
-
Если она модульная — то мы можем легко загружать и использовать кастомные модули. Где этот функционал, в чем заключается модульность?
-
Если либа — модульная, то можно как-то написать свой модуль, наверное?
-
Веб сервер на Lua. Часть 2: Структура
LeshaInc прокомментировал LeshaInc запись в блоге в IncluderWorld
Будет в следующих частях. -
Веб сервер на Lua. Часть 2: Структура
LeshaInc прокомментировал LeshaInc запись в блоге в IncluderWorld
Что тебе надо конкретней? -
Веб сервер на Lua. Часть 2: Структура Здравствуйте. Вы читаете запись из цикла "Веб сервер на Lua". В конце данного цикла у нас получится вполне работоспособный веб сайт, причем быстрый, да еще и на Lua. Я все действия буду производить в такой среде как "c9", сайт будет доступен под адресом: http://lua-includeralex.c9.io/ Все файлы, вы можете посмотреть тут: http://ide.c9.io/includeralex/lua Что, ж поехали. В этой части мы создадим структуру нашего сайта, а также узнаем о некоторых фишках Lapis. Структура Начнем, пожалуй с со структуры нашего веб-приложения. .├── app.lua // Входная точка приложения├── client_body_temp // папка с tmp файлами├── fastcgi_temp // папка с tmp файлами├── logs // папка с логами nginx'а│ ├── access.log // думаю, все знакомы с логами nginx│ ├── error.log│ └── nginx.pid├── mime.types // файл с mime типами├── nginx.conf // конфигурационный файл nginx├── nginx.conf.compiled├── proxy_temp // папка с tmp файлами├── public // папка с публичными файлами│ ├── script.js│ └── style.css├── scgi_temp // папка с tmp файлами├── uwsgi_temp // папка с tmp файлами└── views // папка с нашими вьюшками ├── index.etlua └── layout.etlua // шаблон для всех страниц В файле app.lua находится весь код нашего приложения. В файле nginx.conf находятся настройки NGINX В папке public находятся все публичные файлы, например: Файл: public/style.cssURL к файлу: хост.домен/style.css В папке views находятся наши "вьюшки", они используются при рендере наших страниц, в этой папке должны находится только те файлы, расширение которых == .etlua. О etlua мы поговорим чуть позже. Код Как вообще будет работать наше приложение? Да, очень просто. Всю логику мы будем описывать в файле app.lua. Посмотрим на код простейшего приложения на Lapis: local lapis = require("lapis")local app = lapis.Application()app:get("/", function(self) return "Контент страницы"end)return app Сначала мы подключаем сам lapis, далее мы создаем приложение lapis, используя метод Application. Потом создаем роутер на путь "/" который возвращает нам контент страницы. В конце концов мы возвращаем наше приложение. Все довольно просто. Используя полученные знания мы можем написать другой код: local lapis = require("lapis")local app = lapis.Application()function init() -- функция инициализации app:enable("etlua") app.layout = require "views.layout"endfunction getFile(path) return io.open(path,"r"):read("*all")endfunction index(self) -- функция получения index self.page_title = "To-Do App" return {render = "index"}end-- роутеры страницapp:get("/", index)-- 404 ошибкаapp.handle_404 = function(self) page = io.open("public"..self.req.parsed_url.path,"r") if page then return {layout = false, page:read("*all")} else return "Not found!" endendinit()return app Тут мы можем узреть вещи, неизвестные нам. А именно: app.handle_404 render = "index" app:enable("etlua") app.layout = require "views.layout" app.handle_404 - функция которая вызывается при ошибке "404", мы ее переопределяем на свою функцию. Наша функция - выполняет очень дельные вещи. app.handle_404 вызывается если роутер для страницы не найден. В нашем случае мы проверяем, есть ли файл по пути public..<url_не_найденного_роутера>, если он есть - мы выводим его контент, параметр layout = false делает так, чтоб мы возвращали не контент сайта, а полный код сайта. Если такого файла нет - мы пишем сообщение об ошибке "404 не найдено". render = "index" - рендерит файл (с расширением .etlua), который находится в папке views, о которой мы уже говорили. app:enable("etlua") - включает шаблонизатор EtLua, если мы это не напишем - то потеряем огромный функционал Lapis. app.layout = require "views.layout" - устанавливает стандартный шаблон для сайта, по пути /views/layout.etlua Итак, разобрались с кодом, перейдем к шаблонизатору. Шаблонизатор: EtLua Шаблонизатор EtLua очень похож на PHP. Рассмотрим пример кода: -- views/layout.etlua<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title><%= page_title or "Page from Lua" %></title> <%= page_headers or "" %></head><body> <% content_for("inner") %></body></html> То что находится в <% %> - луа код. Мы можем выполнять lua прямо тут. То что находится в <%= %> - возвращает то что нам отдал луа код - в html. Например: <title><%= "Page from Lua" %></title>Эквивалентно:<title>Page from Lua</title> На этом все. Enjoy!
-
Веб сервер на Lua. Часть 1: Установка
LeshaInc прокомментировал LeshaInc запись в блоге в IncluderWorld
По всем традициям, TO-DO App)) -
Веб сервер на Lua. Часть 1: Установка Здравствуйте. Вы читаете запись из цикла "Веб сервер на Lua". В конце данного цикла у нас получится вполне работоспособный веб сайт, причем быстрый, да еще и на Lua. Я все действия буду производить в такой среде как "c9", сайт будет доступен под адресом: http://lua-includeralex.c9.io/ Все файлы, вы можете посмотреть тут: http://ide.c9.io/includeralex/lua Что, ж поехали. В этой части мы установим необходимый софт на наш сервер, увидим некий "Hello World!". Вступление Lua — мощный и быстрый скриптовый язык, который очень легко встраивается в C. OpenResty — это сборка Nginx с множеством сторонних модулей, в том числе для неблокирующего доступа к популярным БД. Последние версии используют LuaJIT для исполнения Lua. Разработчик Yichun Zhang (США, место работы: CloudFlare, основной разработчик lua-nginx-module). Lapis — это веб-фрейморк для написания веб-приложений на Lua и MoonScript, который живёт внутри OpenResty. Установка Со вступлением разобрались, теперь разберемся с установкой всего этого дела на наш сервер. Итак, что нам нужно: Lapis, OpenResty, Nginx, LuaRocks. Для начала: Установите perl 5.6.1+, libreadline, libpcre и libssl и убедитесь, что доступна команда ldconfig (её родительская папка может отсутствовать в PATH). Объяснять установку nginx не буду, это легко узнать на официальном сайте, поэтому сразу перейдем к установке OpenResty. Внимание, все объяснения по установке приведены для Линукса, объяснение для Виндовса и Мака возможно, будет в других частях цикла. Итак, установка OpenResty: $ wget http://openresty.org/download/ngx_openresty-1.7.4.1.tar.gz$ tar xzvf ngx_openresty-1.7.4.1.tar.gz$ cd ngx_openresty-1.7.4.1/$ ./configure$ make# make install После ввода этих команд (последовательно, конечно) у вас будет установлен OpenResty. Перейдем к LuaRocks. LuaRocks - это пакетный менеджер для Луа. Информацию о нем можно найти на https://luarocks.org/ В LuaRocks есть много вкусного, там тебе и OpenGL, и SSL, и moonscript, но сейчас не об этом. Установим LuaRocks, следуя инструкциям по установке на сайте. Если же у вас Ubuntu, как, впрочем, и у меня, вы можете установить LuaRocks напрямую из репы: # apt-get install luarocks Следующим шагом будет установка самого Lapis. Для этого воспользуемся LuaRocks, который мы только что скачали. # luarocks install lapis С установкой софта покончено. Перейдем к настройке всего этого. Настройка Для начала создадим "скелет" нашего сайта. Lapis сам сделает это за нас. $ lapis new --luawrote nginx.confwrote mime.typeswrote app.lua Ключ lua нужен, тк мы делаем сайт именно на lua, а не на moonscript. Следующим шагом для нас будет запуск сервера. $ lapis server Lapis автоматический запустит сервер и создаст структуру папок. На этом наш сайт готов, убеждаемся в этом. Проверка Заходим по адресу, на который настроен nginx, и узреваем сиё чудо: Это означает, что lapis настроен правильно, и мы можем приступать к работе, но об этом - в следующей части цикла (самому надо разобраться) Что-ж, на этом все. Enjoy!
-
OpenOS. От дуба до Мастера. Часть третья. [||·]
LeshaInc прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
Жаль в ОС нету системы устройств (/dev/...), и разделов на фс. -
OpenOS. От дуба до Мастера. Часть вторая. [|··]
LeshaInc прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
>>братите внимание, что в названии папки не должно быть пробелов и спецсимволов Они могут быть, но не рекомендуются. Мы можем создать папку "moi kotiki ^^": mkdir "moi kotiki ^^" -
Никак. Тебе сказали уже.
-
Никак.
-
OpenOS. От дуба до Мастера. Часть первая. [|··]
LeshaInc прокомментировал Fingercomp запись в блоге в Fingercomp's Playground
>>Что же, приветствуем Вас на борту этой замечательнейшей операционки, работающая на чистом Луа. Основные принципы: Что за глупости? OpenOS написана на чистом луа? Нет, друг мой, это не чистый луа. Используются компоненты - component.gpu, component.monitor итд. А еще есть computer в _G... А эти компоненты - написаны на scala + eris либа, для lua. Так что не нужно вводить в заблуждения юных странников, которые только начинают ехать по пути "OpenOS". -
Можно соеденить вместе штук-так 50 микросхем, подключить матрицу из лампочек RP 800x600 (типа монитор), построить клаву, и будет что-то типо компа. Только такими вещами должны заниматься ECS, это они мазохисты упорные. Да и микросхема все-равно комп не заменит, ведь в компе нужна не одна микросхема, а много.
