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

Totoro

Гуру
  • Публикации

    1 950
  • Зарегистрирован

  • Посещение

  • Победитель дней

    289

Все публикации пользователя Totoro

  1. Написано же там - "вики устарела". И ссылка даже есть на актуальную версию. Конкретно нужная статья: https://ocdoc.cil.li/api:component Более того, есть русский перевод (возможно немного устаревший, но тем не менее): https://minecraft-ru.gamepedia.com/OpenComputers/Component_API
  2. Можешь. Для этого не нужна настоящая многопоточность. Почитай про корутины в Луа, а также глянь на библиотечку threads из OpenOS.
  3. Totoro

    HackerRank

    Фингер тут неожиданно решил сдуть пыль со своего старого аккаунта и порешать задачки на HackerRank. А кто-нибудь еще им пользуется в настоящее время?
  4. В случае ComputerCraft причины примерно те же. Можно тоже попробовать поиграть с os.sleep() с разной продолжительностью (ноль уже не поможет). Можно попробовать использовать хак типа такого: os.queueEvent("fakeEvent"); os.pullEvent(); Тоже внутри цикла. Про ComputerCraft я знаю меньше, руководствуюсь гуглом, так что тут надо экспериментировать.
  5. Программы на OpenComputers должны иногда переключаться на всякие свои внутренние задачи. Но пока твоя программа единовластно занимает поток выполнения - это невозможно. Отсюда ошибка "Too long without yielding" - то есть "Слишком долго без передачи управления". Чтобы позволить системе компьютера заниматься своими делами, необходимо добавить либо event.pull, либо os.sleep. Причем достаточно слипа на 0 секунд: os.sleep(0); Добавь это в любое место цикла - и проблема решится.
  6. Ну просто это актуально только если ты уже знаешь Делфи, и тебе нужно найти работу. А начинать изучение программирования с Делфи - мне кажется - не самая лучшая идея. Это как запрыгнуть в списанный тепловоз стоящий на запасных путях. Там может быть комфортно, но далеко ты уже не уедешь. Руби - такой же уходящий язык как и Делфи. Луа - это очень нишевый скриптовый язык, который не все любят, почему-то. Scala - тоже язык который занял очень маленькую нишу - в основном интерпрайз / биг дата. В этой области 90% занято Java, и Scala удержалась за счет того, что под нее, на пике популярности, было создано несколько очень крутых фреймворков. ну а Rust - это новый язык, который только набирает темпы. У него довольно много конкуренции - тот же Go, поддерживаемый со спины корпорацией Google. Rust пользуется популярностью у программистов, и я думаю будет постепенно подниматься в рейтинге. (В этом году он занял Тор-1 позицию как "самый любимый язык" в опросе StackOverflow.) Delphi - это язык который держится в топе за счет большого объема кода, который был на нем написан в годы его расцвета. Но как несложно заметить, позиции он постепенно теряет. Основной плюс Делфи, который обычно называют - очень быстрая и удобная разработка десктопных приложений - стал относительно неактуален в последние годы, а больше нигде особенно Делфи не применим, так как есть конкуренты, которые делают это лучше и быстрее. В том же опросе от StackOverflow он попал в топ языков, которых программисты "боятся". Наряду с Visual Basic, Assembler, Perl, Cobol (и, почему-то, C и Lua =)). Какого черта в топе делает Visual Basic.NET - я вот не понимаю. Наверное черное шаманство Microsoft играет какую-то роль в этом загадочном факте.
  7. Нет. В OpenComputers для этого надо использовать два отдельных компьютера. В реальном мире эффективнее всего запустить два потока в основной программе (например на Си) и запустить интерпретатор Луа в каждом из этих потоков (хотя не вижу в этом особого смысла).
  8. Не соглашусь с последней фразой. Паскаль (и Делфи в частности) очень давно и очень сильно уступают современным языкам. Нового программного обеспечения на них не разрабатывается, либо разрабатывается единицы, и основная масса вакансий - это поддержка какого-нибудь жуткого легаси. Немного не та ниша, в которой имеет смысл строить карьеру в 2018 году. Если глянуть на рейтинг TIOBE например, видно что Делфи быстро теряет позиции. Пик популярности приходился на 2001 год, и давно прошел. В общем, я не вижу ни одной причины выбрать Делфи, а не, скажем, Java / C#.
  9. Я в принципе начинал изучать программирование как раз с Turbo C. Вполне реальный старт. Нужна конечно некоторая усидчивость, чтобы внимательно вкуривать во все низкоуровневые концепты. На Луа стартовать тупо проще.
  10. Паскаль хорош для "акачемического" изучения. Чисто освоить основные приемы программирования, понятия и конструкции. Но я бы не стал сейчас уже возиться с Паскалем. Для первоначального изучения Lua очень хорош. В нем нет ничего лишнего, начать легко. Но в тоже время есть достаточно глубины, чтобы долго было не скучно. Есть много возможностей для наглядного программирования, с получением осязаемого результата: можно писать под OpenComputers, можно делать игры на Love2D, и так далее. В США в некоторых школах использовали Python. С ним будет сложнее разобраться в плане "как установить, как применить", особенно на Windows. Но в плане синтаксиса он хорош. И подходит для изучения. Можно писать игрушки на Pygame, или Renpy (например). Плюс это реальный промышленный язык, на который потом можно найти хорошо оплачиваемую работу. Имеет смысл посмотреть и в сторону Java, (imho). Язык достаточно простой, сразу знакомит с парадигмой ООП. Применений - огромное количество. От модов к тому же Minecraft, до создания веб-приложений и приложений под Android. Игры тоже можно делать - на LibGDX или сразу на LWJGL (на котором сделан Minecraft, кстати). Опять таки, это промышленный язык с большим количеством вакансий. И есть куда расти в нише JVM - можно изучить Scala, например. Для любителей хардкора можно глянуть на Rust. Мне кажется это лучший вариант, если вас тянет на низкоуровневое программирование. Кривая обучения покруче, чем у большинства других языков, но опять таки - ничего сверхестественного. Язык активно развивается, уже имеет промышленное применение, и дальше будет больше. Если чувствуется влечение к вебу - надо курить JS. Он немного нелогичный, и с крайне запутанной инфраструктурой, но базовый уровень изучить несложно. А применить JS сейчас можно почти везде. И в вебе, и на десктопе, и на мобилках. Опять таки - промышленный язык, и в будущем легко будет найти работу. Ну вот кажется и все основные языки, на которые имеет смысл обратить внимание, выбирая, что бы такого изучить.
  11. Ну и не стоит забывать про всякие фреймворки типа этого: https://ionicframework.com/ На JS можно писать почти где угодно, если есть желание.
  12. JavaScript можно использовать везде, где есть виртуальная машина JS. Например в игровом движке Unity.
  13. А, точно. Но это я просто на Ленина намекал.
  14. И цвета надо не зелено-желтые - а красно-желтые.
  15. Какой исходный формат моделей? Вообще, мне кажется, оптимальный способ - это отмасштабировать исходную модель, в первоначальном формате (или в формате *.obj). Для этого нужен обычный 3D редактор - Blender, 3D Max, Cinema 4D, Maya - что-то такое. А уже потом конвертировать.
  16. Тебе ведь все равно придется какой-то доступ к данным организовывать. А если компьютер с таким доступом скомпрометирован - то злоумышленник точно так же как и ты сможет добраться дл инфы. Единственный плюс - это возможность отрубить доступ к информации постфактум - уже после обнаружения взлома. Но если хакер более менее соображает - первое что он сделает это сольёт информацию. Так что, главной задачей все равно остается защита основного компа.
  17. Ну OpenOS в принципе можно кастомизировать настолько, что добавить никого и ничего не получится. Я думаю. Но чтобы отключить следящие скрипты, надо знать что они там есть. Висящий в памяти листенер ты наверное фиг заметишь. И мест куда можно встроить код существует очень много.
  18. Можно добавить на компьютер фоновую программу, которая будет регистрировать всех добавляющихся пользователей и дампить лог по сети, или на диск, или на дискету.
  19. Загадочная история. Но кто это делает легко же узнать. Он свой ник добавляет в users. Или он другого кого-то ставит?
  20. А есть возможность подослать робота или дрона, чтобы он положил в этот комп дискету? А на дискете - вирус с автораном.
  21. А что за компьютер? Там нет возможности удаленного выполнения кода, или какой-нибудь экранной клавиатуры? У злоумышленника не было возможности воткнуть свою клавиатуру, или вставить дискету, или что-нибудь в этом роде?
  22. К сожалению, если кто-то впишет себя и выпишет хозяина - тут будет сложно сделать что-то без помощи админа или без переустановки компьютера. Список пользователей компьютера хранится модом OpenComputers в оперативной памяти, и сохраняется в сейв мира на сервере, в виде NBT тега.
  23. 256 байт - это 256 раз по 256 значений. Это . Я думаю будет достаточно нелегко перебрать их все. Учитывая, подписаться можно на любой совершенно ID (сервер не скажет тебе сколько на этом канале клиентов), и сообщения могут идти не постоянно, а, скажем раз в две минуты, надо будет не только подписаться на канал, но и подождать немного. Если тратить на каждый канал по две минуты, это будет лет на полный перебор. " Чтобы придать всему проекту более традиционный вид, можно разбить ID на два поля - 56 байт логин и 200 байт пароль. Но согласись что это будет по сути то же самое. Каждый канал будет определяться уникальной комбинацией "логин + пароль", то есть теми же 256 байтами. Я решил не усложнять. Для публичного канала можно взять например ID "Evil-Reactor". Для приватного канала - ID "you will never guess this ID". И будет работать вполне хорошо. А еще надо учитывать, что ID не имеет ограничения по допустимым символам. Можно взять любые значения байтов, от 0 до 255. Например так: local id = string.char(1, 0, 0, 0, 0, 0, 200, 200, 200, 13, 14, 64, 89) ID из 13 байт. Причем часть вообще "непечатные".
×
×
  • Создать...