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

Totoro

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

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

  • Посещение

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

    289

Сообщения, опубликованные пользователем Totoro


  1. Программы на OpenComputers должны иногда переключаться на всякие свои внутренние задачи.

    Но пока твоя программа единовластно занимает поток выполнения - это невозможно. Отсюда ошибка "Too long without yielding" - то есть "Слишком долго без передачи управления".

     

    Чтобы позволить системе компьютера заниматься своими делами, необходимо добавить либо event.pull, либо os.sleep.

    Причем достаточно слипа на 0 секунд:

    os.sleep(0);

    Добавь это в любое место цикла - и проблема решится.

    • Нравится 2

  2. 52 минуты назад, Ingr сказал:

    я не предлагал строить карьеру программистом Делфи. Я говорил что зная Делфи найти работу будет не сложнее чем на большинстве других языков.

     

    Ну просто это актуально только если ты уже знаешь Делфи, и тебе нужно найти работу.

    А начинать изучение программирования с Делфи - мне кажется - не самая лучшая идея.

     

    Это как запрыгнуть в списанный тепловоз стоящий на запасных путях. Там может быть комфортно, но далеко ты уже не уедешь.

     

    52 минуты назад, Ingr сказал:

    ну 13 место на фоне таких языков как Ruby (16), Lua (28), Scala (29), Rust (37) выглядит не так уж и совсем плохо.

     

    Руби - такой же уходящий язык как и Делфи.

    Луа - это очень нишевый скриптовый язык, который не все любят, почему-то.

    Scala - тоже язык который занял очень маленькую нишу - в основном интерпрайз / биг дата. В этой области 90% занято Java, и Scala удержалась за счет того, что под нее, на пике популярности, было создано несколько очень крутых фреймворков.

    ну а

    Rust - это новый язык, который только набирает темпы. У него довольно много конкуренции - тот же Go, поддерживаемый со спины корпорацией Google.

    Rust пользуется популярностью у программистов, и я думаю будет постепенно подниматься в рейтинге. (В этом году он занял Тор-1 позицию как "самый любимый язык" в опросе StackOverflow.)

     

    Delphi - это язык который держится в топе за счет большого объема кода, который был на нем написан в годы его расцвета.

    Но как несложно заметить, позиции он постепенно теряет.

    Основной плюс Делфи, который обычно называют - очень быстрая и удобная разработка десктопных приложений - стал относительно неактуален в последние годы, а больше нигде особенно Делфи не применим, так как есть конкуренты, которые делают это лучше и быстрее.

    В том же опросе от StackOverflow он попал в топ языков, которых программисты "боятся". Наряду с Visual Basic, Assembler, Perl, Cobol (и, почему-то, C и Lua =)).

     

    Какого черта в топе делает Visual Basic.NET - я вот не понимаю. Наверное черное шаманство Microsoft играет какую-то роль в этом загадочном факте.

    • Нравится 4

  3. 39 минут назад, Avevad сказал:

    Можно ли в чистой Lua (ну или той которая используется в OC) сделать так чтобы две функции выполнялись ДЕЙСТВИТЕЛЬНО одновременно?

     

    Нет.

     

    В OpenComputers для этого надо использовать два отдельных компьютера.

    В реальном мире эффективнее всего запустить два потока в основной программе (например на Си) и запустить интерпретатор Луа в каждом из этих потоков (хотя не вижу в этом особого смысла).

    • Нравится 1

  4. 1 час назад, Ingr сказал:

    при желании найти работу по программированию на Delphi тоже не проблема. Так что в этом плане Паскль не особо уступает другим современным языкам

     

    Не соглашусь с последней фразой.

     

    Паскаль (и Делфи в частности) очень давно и очень сильно уступают современным языкам.

    Нового программного обеспечения на них не разрабатывается, либо разрабатывается единицы, и основная масса вакансий - это поддержка какого-нибудь жуткого легаси.

    Немного не та ниша, в которой имеет смысл строить карьеру в 2018 году.

     

    Если глянуть на рейтинг TIOBE например, видно что Делфи быстро теряет позиции. Пик популярности приходился на 2001 год, и давно прошел.

     

    В общем, я не вижу ни одной причины выбрать Делфи, а не, скажем, Java / C#.

    • Нравится 1

  5. Я в принципе начинал изучать программирование как раз с Turbo C.

    Вполне реальный старт.

     

    Нужна конечно некоторая усидчивость, чтобы внимательно вкуривать во все низкоуровневые концепты.

    На Луа стартовать тупо проще.


  6. Паскаль хорош для "акачемического" изучения. Чисто освоить основные приемы программирования, понятия и конструкции.

    Но я бы не стал сейчас уже возиться с Паскалем.

     

    Для первоначального изучения Lua очень хорош. В нем нет ничего лишнего, начать легко. Но в тоже время есть достаточно глубины, чтобы долго было не скучно.

    Есть много возможностей для наглядного программирования, с получением осязаемого результата: можно писать под OpenComputers, можно делать игры на Love2D, и так далее.

     

    В США в некоторых школах использовали Python.

    С ним будет сложнее разобраться в плане "как установить, как применить", особенно на Windows. Но в плане синтаксиса он хорош. И подходит для изучения.

    Можно писать игрушки на Pygame, или Renpy (например).

    Плюс это реальный промышленный язык, на который потом можно найти хорошо оплачиваемую работу.

     

    Имеет смысл посмотреть и в сторону Java, (imho). Язык достаточно простой, сразу знакомит с парадигмой ООП. Применений - огромное количество. От модов к тому же Minecraft, до создания веб-приложений и приложений под Android.

    Игры тоже можно делать - на LibGDX или сразу на LWJGL (на котором сделан Minecraft, кстати).

    Опять таки, это промышленный язык с большим количеством вакансий.

    И есть куда расти в нише JVM - можно изучить Scala, например.

     

    Для любителей хардкора можно глянуть на Rust. Мне кажется это лучший вариант, если вас тянет на низкоуровневое программирование. Кривая обучения покруче, чем у большинства других языков, но опять таки - ничего сверхестественного.

    Язык активно развивается, уже имеет промышленное применение, и дальше будет больше.

     

    Если чувствуется влечение к вебу - надо курить JS. Он немного нелогичный, и с крайне запутанной инфраструктурой, но базовый уровень изучить несложно.

    А применить JS сейчас можно почти везде. И в вебе, и на десктопе, и на мобилках.

    Опять таки - промышленный язык, и в будущем легко будет найти работу.

     

    Ну вот кажется и все основные языки, на которые имеет смысл обратить внимание, выбирая, что бы такого изучить.

    • Нравится 1

  7. 24.11.2018 в 16:38, DANCHEKk сказал:

    Люди, хелпуйте. Со всем тут вродь разобрался, но. модельки нахожу, но не VoxelShop, не Goxel, не MagicaVoxel не открывают их, ну то ладно, как то косо криво я конвертировал в .obj и открываю в гокселе, сохраняю в .vox и через конвертор дальше в .3dm. Вот беда. А модели то очень большие все, ничего по этому поводу найти не могу. Как уменьшать разрешение модели ?

     

    Какой исходный формат моделей?

     

    Вообще, мне кажется, оптимальный способ - это отмасштабировать исходную модель, в первоначальном формате (или в формате *.obj).

    Для этого нужен обычный 3D редактор - Blender, 3D Max, Cinema 4D, Maya - что-то такое.

     

    А уже потом конвертировать.


  8. 4 часа назад, Asior сказал:

    хранить информацию по всем операциям на внешнем сервере (пастебин или вовсе свой сервак поднять).

     

    Тебе ведь все равно придется какой-то доступ к данным организовывать.

    А если компьютер с таким доступом скомпрометирован - то злоумышленник точно так же как и ты сможет добраться дл инфы.

    Единственный плюс - это возможность отрубить доступ к информации постфактум - уже после обнаружения взлома.

    Но если хакер более менее соображает - первое что он сделает это сольёт информацию.

     

    Так что, главной задачей все равно остается защита основного компа.


  9. 9 минут назад, eu_tomat сказал:

    Но это, во-первых, после восстановления системы, а во-вторых, мы не знаем, насколько хитёр злоумышленник. Он может отключить этот дамп до того, как добавит себя пользователем. Тут важнее не дать пользователям попасть в shell или иным образом исполнять произвольный код.

     

    Ну OpenOS в принципе можно кастомизировать настолько, что добавить никого и ничего не получится. Я думаю.

    Но чтобы отключить следящие скрипты, надо знать что они там есть. Висящий в памяти листенер ты наверное фиг заметишь. И мест куда можно встроить код существует очень много.


  10. 4 минуты назад, LoliFox сказал:

    Комната с компутером закрыта так что с роботом не варинт.  + дискет не обнаружено и сам системник вообще в другом помещении закрыт совсех сторон булыгой. взаимодействовать могли только в монитором.. в коде самой программы накакова доступа кому либо нету. похоже никогда не узнаем кто это делает( а главное как?)))

     

    Загадочная история.

    Но кто это делает легко же узнать. Он свой ник добавляет в users. Или он другого кого-то ставит?


  11. 2 минуты назад, LoliFox сказал:

    а как этот человек или группа лиц могли получить доступ к компу без клавиатуры? + там небыли вписаны пользователи через useradd так как комп публичный и все им пользуются

     

     

    А что за компьютер? Там нет возможности удаленного выполнения кода, или какой-нибудь экранной клавиатуры?

    У злоумышленника не было возможности воткнуть свою клавиатуру, или вставить дискету, или что-нибудь в этом роде?


  12. К сожалению, если кто-то впишет себя и выпишет хозяина - тут будет сложно сделать что-то без помощи админа или без переустановки компьютера.

     

    Список пользователей компьютера хранится модом OpenComputers в оперативной памяти, и сохраняется в сейв мира на сервере, в виде NBT тега.

    • Нравится 1

  13. 41 минуту назад, cyber01 сказал:

     теоретически можно просто перебрать все каналы (с учетом вариантов - теоретически) и читать чужой канал?

     

    256 байт - это 256 раз по 256 значений.

    Это   3.2317006071311007300714876688669951960444102669715484... × 10^616.

     

    Я думаю будет достаточно нелегко перебрать их все. Учитывая, подписаться можно на любой совершенно ID (сервер не скажет тебе сколько на этом канале клиентов),

    и сообщения могут идти не постоянно, а, скажем раз в две минуты, надо будет не только подписаться на канал, но и подождать немного.

     

    Если тратить на каждый канал по две минуты, это будет 1.2467980737388505903053578969394271589677508746032208... × 10^611лет на полный перебор.

    "

    Чтобы придать всему проекту более традиционный вид, можно разбить 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 байт. Причем часть вообще "непечатные".

    • Нравится 3
    • Одобряю 1
    • Спасибо 2

  14. Кстати, вспомнил еще один способ.

    Раз уж программа использует главный redstone component, то можно просто переназначить главный компонент на другой адрес.

    Это можно сделать либо программно, либо с использованием программки primary, которая есть в OpenOS.

    Использовать так: primary redstone <адрес компонента>.

    Адрес можно скопировать анализатором, если я правильно помню.

    • Нравится 1

  15. В идеале такое изнутри программы делается. Потому что если программа тупо использует "главный" редстоун компонент - она и будет его использовать. А тебе надо обращаться к компоненту по адресу.


  16. 11 часов назад, eu_tomat сказал:

    Только сейчас заметил, что человек спрашивал с двух разных аккаунтов. Что это было?

     

    Палево мультиакка. )

    Кстати, учитывая что сервера у нас больше нет, мультиакки все еще под запретом? Или уже пофигу.

×
×
  • Создать...