Перейти к содержимому

Лидеры


Популярный контент

Показан контент с высокой репутацией 11.01.2019 во всех областях

  1. 3 балла
    Система предоставляет графическую оболочку для планшетов, имеющую минималистичный интерфейс и понятное только мне использование, а так же минимальное (надеюсь) потребление ОЗУ. Из фич оболочка дает: Возможность использования OpenOS частично без использования команд. Для особых случаев - используем контекстное меню -> "Выполнить команду" Возможность посылки уведомлений пользователю. Многозадачность не реализована, так что пассивную часть программы нужно активировать библиотекой thread из OpenOS Запуск программ-папок (*.pkg). Чисто для разграничения кода и возможности создания модулей Адаптивная отрисовка интерфейса. На экранах с разрешением по ширине, не кратной 20, могут возникать проблемы, однако без искусственного изменения разрешения такого не произойдет. Помощь в настройке при первом запуске. На случай проблем - на первом экране используется колёсико мыши. Блокировка экрана Горячие клавиши на главном экране (клик+delete - удалить, ctrl+e+клик - редактировать и подобное) QR-коды для быстрого доступа юзера к ссылкам В планах: Специальный фреймворк аля Zygote из андроида. Естественно абсолютно весь функционал переписывать не буду, однако основной останется. Этот фреймворк повлечет за собой полный рефакторинг кода (перевод системы на него), но полностью устранит все недостатки TabletOSNetwork - что бы было. Протокол сам в себе будет держать защиту от MITM (Сначала на DSA, потом переведу на ECDSA (реально сложно для меня пока)) и некоторую маршрутизацию с помощью специальных реле (что бы у юзеров планшеты не лагали). Установка - pastebin run 1xudmTa7 Выберите в установщике TabletOS и канал обновлений "Stable". В дальнейшем система будет уведомлять о обновлениях, при получении оного нужно будет зайти в настройки (контекстное меню в левом нижнем углу экрана) и там обновиться. В случае, когда при обновлении бросает ошибку - посмотрите изменения, там будут инструкции по ручному обновлению или переустановке системы. Если и это невозможно. переустановите систему. Данные должны сохраниться, а вот система - обновиться.
  2. 2 балла
    Ой, забыл xD Спойлеры делать не умею. так что как-то так пока. Возможно на скриншоты слишком новые и из разрабатываемой версии.
  3. 2 балла
    Так как заявленной автором целью является оценка его кода, то этим и займусь. В целом код выглядит достойно, но я всё же попробую придраться. В коде for a, _ in pairs(cl) do использовать фиктивную переменную _ не обязательно. Код for a in pairs(cl) do тоже является рабочим. local f, str = fs.open(cfg, "w") if(f==nil)then В этом фрагменте кода считаю лишними скобки в условии. Вреда от них нет, но и пользы они тоже не несут. К слову, я по привычке тоже иногда ставлю скобки в условиях, а иногда и точки с запятой. Но оценивать, так оценивать. Кроме того в данном случае условие можно упростить до if not f then. Оно эквивалентно f==nil or f==false, но записывается короче. А учитывая, что условие f==false на этом участке кода всегда ложно, то в данном конкретном случае условие эквиваленто и f==nil. Аналогично условие if not (at==nil) then упрощается до if at then Для считывания всего содержимого файла логичнее применять f:read("*all"), а не f:read(math.huge)
  4. 1 балл
    Продолжить позволю себе. Луа принимает спокойно сокращённые версии масок: `"*a"`, например. Окроме этого есть ещё и фича Lua 5.3: звёздочку можно не писать. В 5.2 работать не будет, разумеется. Помимо этого, слишком часто ты юзаешь `component.proxy`. Каждый вызов создаётся совершенно новая таблица, хоть и пустая. Не особо оптимальное использование. Для прямого вызова по адресу лучше использовать `component.invoke(address, methodName, arguments...)`. Наконец, советую чаще использовать пустые строки. Они очень полезны, как ни странно. Я, например, отделяю каждый блок пустой строкой, кроме тех, которые в начале или в конце, — читать такое гораздо проще. По той же причине, кстати, и на форуме стараюсь абзацы короткими делать и отделять их \n\n. Примеры кода: local function recurse(g) return (function(f) return g(function(x) return f(f)(x) end) end)(function(f) return g(function(x) return f(f)(x) end) end) end print(recurse(function(rec) return function(n) if n == 0 then return 1 else return n * rec(n - 1) end end end)(10)) --> 3628800 while true do t.write("> ", true) local tcom = t.read() if not tcom then os.exit() end local com, arg = tcom:match("(%w+)%s(%w+)") if arg == "all" then turn(0, coms[com], at) else turn(at[tonumber(arg)], coms[com]) end end
  5. 1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...