Krutoy
Гуру-
Публикации
482 -
Зарегистрирован
-
Посещение
-
Победитель дней
72
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Krutoy
-
Эта статья - частичный перевод программы с официального форума. Введение Представьте что вы программируете микроконтроллер. И тут вы упираетесь в предел размера файла - 4к. Вам придется уродовать ваш код, что бы втиснуться, но есть лучшее ренешие: Crunch! Crunch (хруст) - это программа, сжимающая код на Lua. Она уменьшает размер файла разными способами, начиная от удаления лишних пробелов и табуляций, заканчивая переименованием локальных переменных в более короткие имена. Еще, Crunch умеет создавать "самораспаковывающийся" архив, используя алгоритм LZ77. Программа позволяет сжать файл в 4 раза, уменьшая размер до 25% от первоначального! Skex (загрузчик для биоса) был уменьшен с 3 990 до 2 366 байт - уменьшение на 40%. Totoro Recursive Miner был уменьшен с 9 390 до 3 477 байт. В 2.7 раз меньше. Теперь его можно всунуть в биос. Установка Просто скачайте tar архив и распакуйте в корень. Все файлы установятся по своим местам. github Распаковщик .tar файлов: wget 'https://raw.githubusercontent.com/mpmxyz/ocprograms/master/home/bin/tar.lua' Crunch: wget 'https://raw.githubusercontent.com/mpmxyz/ocprograms/master/tars/crunch.tar'tar -xf crunch.tar Для документации по командам наберите в консоли man crunch
- 11 комментариев
-
- 4
-
-
- обфускация
- crunch
-
(и ещё 4 )
Теги:
-
Идея отличная, всегда мечтал о рабочем роботе с минимальным оборудованием. Ты хоть тестил его на работоспособность? Покажи скрины. Выровни текст.
-
Хорошее оформление темы и хорошая идея. Но... Есть мощный и уже готовый интерфейс GML https://github.com/OpenPrograms/Gopher-Programs/wiki/GML Я еще со времен программирования Базара с Семоро довел GML до работы с юникодом и исправил множество ошибок. Велосипед конечно придумывать интересно, но результат в ряд ли будет лучше. По структуре ты уже делаешь нерасширяемую структуру. Мне нравится как сделан Windows.Forms. Там все элементы начинаются с простых классов, например "Control" и потом наследуются глубже и глубже. Например, та же кнопка наследуется из "ButtonBase", который также наследуется чекбоксами. Еще много конечно, что можно посоветовать. Но закончу на том, что писать в луа названия с больших букв - плохой стиль.
-
Новая лаборатория и дата-центр: Открытие!
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
Какие еще блоки? Где "там" ? А дракончик норм, покажи еще чтонить.- 29 комментариев
-
- MagicaVoxel
- лаборатория
- (и ещё 2 )
-
Это же просто реализовать! Поставь контроллер предметов, и если работ видит перед собой блок, пишет world:set(x,y,z,true) что бы пометить этот блок непроходимым, и еще раз запускает поиск пути.
-
Новая лаборатория и дата-центр: Открытие!
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
Скрины построек давай =)- 29 комментариев
-
- MagicaVoxel
- лаборатория
- (и ещё 2 )
-
Новая лаборатория и дата-центр: Открытие!
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
Держи http://codepen.io/Krutoy242/full/oXWVbe/ Только я конвертер немного изменил, и тебе нужно будет поменять программу самому.- 29 комментариев
-
- 1
-
-
- MagicaVoxel
- лаборатория
- (и ещё 2 )
-
Новая лаборатория и дата-центр: Открытие!
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
Да, Магика + мой конвертер, который я переписал под отсутствие разделений на кубики. Если хочешь построить дом своей мечты, могу и запостить куда нибудь.- 29 комментариев
-
- MagicaVoxel
- лаборатория
- (и ещё 2 )
-
Код хороший, но подожди ка, а где же таблица и функции package? Это ведь специальный инструмент, что бы не забивать оперативную память, и ускорить работу программы при нескольких одинаковых вызовах require(). Больше об этом написано здесь http://ilovelua.narod.ru/about_lua.html#Module_loaders Можешь посмотреть как require и package реализовано в ОС https://github.com/MightyPirates/OpenComputers/blob/master-MC1.7.10/src/main/resources/assets/opencomputers/loot/OpenOS/lib/package.lua
-
Попробовал бы сначала, или хотя бы доки почитал http://ocdoc.cil.li/api:serialization?s[]=serialize
-
Тем временем, мной проведена работа по организиции обновления моих серверов (интернет-сервер, и сервер обновлений). [ok=Добавленно автообновление программ из пакета opennet][/ok] Теперь, установив opennet один раз, новые файлы и патчи будут закачиваться автоматически при перезагрузки компьютера. Изменена строка установки, теперь она выглядит так: on=component.modem;e=event;on.open(1)on.broadcast(1,"","","getip")function m()r={e.pull(10,"modem_message")}end;m()ud="update"ip=r[6]function sv()on.send(r[3],1,ud,ip,ud,"getFile","client/"..p)m()filesystem.makeDirectory(filesystem.path(p))f=io.open(p,"w")f:write(r[8])f:close()end p="lib/opennet.lua"sv()p="on/update.lua"sv()loadfile(p)("install") Напомню, гайд по установке в этом посте. Еще, по просьбе Алекса, папка /on добавленна в системные пути, и ее не нужно прописывать. Кстати, скриншот консоли самого сервера. Пока еще много бутафории, но уже есть сразу 2 работающие консоли на разных частях экрана.
- 162 ответа
-
- 4
-
-
- OpenComputers
- OpenNet
-
(и ещё 1 )
Теги:
-
Новая лаборатория и дата-центр: Открытие!
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
setBlocks=require("component").debug.getWorld().setBlocks -- массив данных data=loadfile("KrutoyLab.p3d")() X,Y,Z=100,60,200 --координаты левого нижнего угла постройки for i=1,#data do setBlocks(data[i][1]+X,data[i][2]+Y,data[i][3]+Z,data[i][4]+X,data[i][5]+Y,data[i][6]+Z,data[i].id,data[i].meta or 0) end- 29 комментариев
-
- MagicaVoxel
- лаборатория
- (и ещё 2 )
-
Лаборатория построена и обустраивается! В возведении участвовали Krutoy, Zer0Galaxy, AlexCC и Fingercomp, за что им спасибо. Лаборатория - открытое здание, и его может навестить любой желающий. Она находится справа по дороге мимо Банка.
- 29 комментариев
-
- 6
-
-
- MagicaVoxel
- лаборатория
- (и ещё 2 )
-
Я ООП сам не открывал а искал в гугле. Я могу сделать статью из копипасты с гугла. Сойдет?
-
Итак, вся лаборатория почти достроена. Осталось только подукрасить крышу и задок. Честно сказать, идеи закончились и линии стали более унылыми. Даже не придумал как сделать небоскреб. Но за то, добавил больше цветных линий. Голубое - это будущее стекло. Кстати, вдохновение я набирал на девиантарте. Можете увидеть как лаборатория по первой ссылке похожа. http://jimmyjimjim.deviantart.com/art/Sci-fi-Lab-300578532 http://sc4v3ng3r.deviantart.com/art/Random-Space-Platform-Structure-409412499 http://talros.deviantart.com/art/Building-concepts-350130607
- 3 комментария
-
- 4
-
-
- sci-fi
- лаборатория
-
(и ещё 2 )
Теги:
-
Новая лаборатория и дата-центр: Первый этаж снаружи
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
3000 строк кода в месяц.- 6 комментариев
-
- лаборатория
- здание
- (и ещё 5 )
-
Новая лаборатория и дата-центр: Первый этаж снаружи
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
О, спасибо! Черная глина на самом деле коричневая. Будет совсем некрасиво. Так что из черных блоков только уголь есть.- 6 комментариев
-
- лаборатория
- здание
- (и ещё 5 )
-
Продолжаю проектировать новую компьютерную базу в программе MagicaVoxel, что бы потом перенести на сервер с помощью дебаг-карты. Итак, я решил что основном материал будет - уголь. Если белоснежный банк олицетворяет добрых и пушистых администраторов, угольно-черная лаборатория будет олицетворять хардкор и жесткач программистов. Лазурит и еще что нибудь синее будет хорошим украшением. Первый этаж почти закончен и уже думаю над дизайном второго. Буду надеяться, что Алекс не запретит возвести высокий небоскреб.
- 6 комментариев
-
- 3
-
-
- лаборатория
- здание
- (и ещё 5 )
-
Заморачиваете голову юным программистам =) Для наших прикладных задач на этом проекте даже сложно найти применение для такого ООП. Единственное, можно использовать в либах вроде векторов или массивов. Ну или похвастаться как круто вы реализовали приватные методы класса. Я использовал подобные функции в коде векторов. Хочу обратить особое внимание на вот эту строчку: setmetatable({new = new, isvector = isvector, zero = zero}, {__call = function(_, ...) return new(...) end} Не делайте вот этих вот :new() или :addObject() Во-первых, можно написать код и без двоеточия, и создавать объекты через точку. Во-вторых, мы же в луа, а не в С++. Есть прекрасный метаметод __call . Зачем создавать класс через какие то дополнительные точки и слова, если можно просто local c = class() Рид как то подкидывал ссылку http://habrahabr.ru/post/182018/ Но вообще, на хабре про ООП для ЛУА много чего есть.
-
Новая компьютерная лаборатория и дата-центр
Krutoy прокомментировал Krutoy запись в блоге в Крутой блог
Хорошо, но для тебя будет сначала тестовое задание. Сделаешь какой-нибудь полезный рабочий сервер на опеннете - пропишу и тебя. Что будет полезно лучше спросить у меня. Да, я собираюсь строить из ванильных блоков. По крайней мере основные стены и крыши, что бы с карты открывался хороший вид.- 6 комментариев
-
- 4
-
-
Ну вот! Значит либо наставь в него больше плат, либо корми ему меньший файл.
-
Смотрю модно нынче блоги создавать. Попробую и я. Моего маленького компьютерного ангара стало маловато для расширения, так как там банально закончилось место для новых компов и серверных стоек. Я решил построить новое здание, но подойти к этому более комплексно, а так же собрать под одной крышой Тоторо и Зеро, установив их сервера здесь. Вот первые пробы набросков в программе MagicaVoxel. Каждый воксель - блок майна. А бирюзовые блоки - будущие мониторы. Скорее всего, я отконвертирую формат этой программы и попрошу воспользоваться дебаг-картой что бы залить территорию нужными блоками. Пока в здании планируется 2-3 этажа с разными секторами: Основной зал со всем ОС оборудованием Серверная Сборочный и печатный цеха Полигоны для отладки роботов Телепортная Если есть какие то еще идеи для интерьера, пишите.
- 6 комментариев
-
- 3
-
-
Питман, а как ты думаешь сам, что же такого невероятного не хватает твоему роботу, что бы запустить эту программу?
-
Все библиотеки, расчитанные на подключение через require будут подгружаться в /bin/ Но с папкой /on/ не понимаю. Что бы запустить, например браузер, нужно ввести 5 символов и нажать таб on/onB [TAB] , и шелл сам допишет имя файла. Проблема в том, что нужно дописывать 2 буквы названия папки?
- 162 ответа
-
- OpenComputers
- OpenNet
-
(и ещё 1 )
Теги:
