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

eu_tomat

Модераторы
  • Публикации

    2 666
  • Зарегистрирован

  • Посещение

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

    331

Комментарии блога, опубликованные пользователем eu_tomat


  1. Интересный способ, но это нужно постоянно всех подозревать и мониторить чат.

    Эмблемой агентства Пинкертона стал открытый глаз с девизом: «Мы никогда не спим».

  2. Говорят, наш брат Сизиф был проклят аналогичным образом: брутфорсил какие-то простые формулы, и даже получал какой-то результат, но результат его всегда разочаровывал.

     

    Для начала придерусь к коду: n["T"] удобнее записывать в более компактной форме n.T. На результат не повлияет, но код станет светлее. Но твой код погубило не это. Он выдает именно тот результат, который и должен. Брутфорс тут вообще не нужен. x,y,z = maxX,maxY,maxZ – вот и вся программа.

     

    Математика здесь такая: при увеличении размера параллелепипеда в любом из измерений его объем растет быстрее площади. А так как твоя печка пытается максимизировать это отношение, то она займет любой доступный ей объем.

     

    В этом контексте имеют смысл две вещи:

    1) при заданном одном размере вычислить два оставшиеся;

    2) при заданном количестве стройматериала вычислить оптимальные размеры будущего строения.

    • Нравится 2

  3. А зачем нужна отдельная функция для получения строки конфига?

    При этом еще и конфиг зачем-то три раза перечитывается.

    Есть же более простое решение, записываемое короче и работающее быстрее:

    ls = io.lines(fpath)
    username, workspace, path = ls(),ls(),ls()
    • Нравится 3

  4. Вот тебе не влом было копаться в чужом коде...)

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

    А этот код оформлен более-менее достойно, и разобрать его не сложно – в этом его большой плюс.

    В конце концов, это самое позитивное, что я мог сделать с этим кодом в тот момент. Тебе же понравился результат?


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

    К задержам без sleep (без yield) я отношусь плохо, т. к. это шаг к лагодрому. Но если задержка длится миллисекунды и используется раз в минуту, то почему бы и нет.


  6. Пришлось вернуться к os.clock: аптайм давал неточное время. Мы можем здесь положиться на клок, так как этот код не будет делать yield во время слипа, только при вынужденном торможении (и тогда разность будет незначительна).

    На практике же выходит значительная разница

    c0=os.clock() t0=computer.uptime() for i=1,10^7 do end print(os.clock()-c0,computer.uptime()-t0)
    -- 2.92   2.94
    c0=os.clock() t0=computer.uptime() for i=1,1000 do os.sleep(0.05) end print(os.clock()-c0,computer.uptime()-t0)
    -- 2.37  71.4
    Само по себе использование os.sleep(0.05) неявно делает yield.

  7. Оу, классно! Не ожидал от Lua возможности даже имитировать указатель на переменную.

    Но у меня сомнения относительно os.clock(). Всегда думал, что это время, затраченное процессором на выполнение кода, а оно совпадает с реальным временем лишь в случае, когда процессор 100% своего времени тратит на выполнение кода именно на этом компьютере. Что-то типа активной части uptime.

    • Нравится 1

  8. Я хотел акцентировать внимание не на том, от чего следует уйти, а на том, куда желательно прийти. Все мы говнокодим в начале пути: сначала пелёнки пачкаем, потом ломаем инструменты на уроках труда, залагиваем сервер майнкрафта, заплёвываем какахами своих оппонентов по форуму, и даже превращаем в брак целые партии продукции на заводе. Почти все понимают, что это плохо, но не у каждого получается этого избежать. Кто-то не знаком с теорией, у кого-то не достаточна практика, а кому-то нужен практический совет и живой пример. Последнему и посвящена запись моего блога. Или у тебя возникло чувство, что мой текст недостаточно длинный?

    • Нравится 2

  9. О, классная тема, qwertyMAN! Спасибо, что напомнил мне опубликовать позабытый текст. Заходи на огонек.

     

    пп.1,3: Krutoy уже всё объяснил. Высосано из пальца. Следует исходить из требований задачи, а если они тебя не ограничивают – то из личных предпочтений.

    пп.2,4: Тема комментариев весьма противоречива и холиварна.

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

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

     

    Дилемма: использовать длинные и легко читаемые названия переменных или же использовать короткие, один раз прокомментировав их?

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

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

    Но опять же, всё относительно. Есть, например, ООП, пространства имен и прочее, позволяющие уменьшить количество переменных в зоне видимости.

     

    В целом спорные советы, смущающие новичков. Только к глобальным переменным нет вопросов.

    И нет ничего плохого в написании кода в обычном блокноте или даже в редакторе OpenOS. Мазохизм, конечно, но есть любители, сделавшие свой выбор осознанно.

    • Нравится 2
  10. OpenComputers 1.6. #1


    1. Шрифт не понравился. Нужна возможность настраивать нужный шрифт в конфиге.

    2. Теперь не получается скопировать и сразу запустить на выполнение несколько команд вместе с переводами строки.

    Например, раньше для быстрой проверки свойств можно было просто вставить в консоль весь текст целиком:

    lua
    com = require('component')
    s = com.openperipheral_sensor
    for k,v in pairs(s) do print(k,v) end
    Теперь приходится либо копировать по одной строчке, либо создавать файл под такие эксперименты.

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

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

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

    Ссылочкой на баян поделишься? В твоей теме я выложил результат, здесь же объяснил, как его достичь. Там же я пообещал выложить этот текст, и лайки, оставленные под обещанием, говорят, что необходимость есть.

     

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

    К чему это? К тому, что кодеров много, а ошибки одинаковые. Не ты первый, не ты последний. Подчистишь код, и все узреют его великолепие. Программирование очень тесно связано с математикой, не всегда можно отделить одно от другого, и оптимизация должна выполнятся на всех этапах. Если ты пренебрегаешь логикой и математикой, твой алгоритм будет плохим изначально, и даже виртуозное владение прикладным языком ему не поможет. Но и пренебрежение языком тоже способно сильно ухудшить готовый результат. Математика в алгоритме, математика в коде — все это говорит о том, что твоя программа написана в спешке, об этом мой пост. Про использование pcall, например, я не стал говорить. Может, потом расскажу, если буду часто видеть подобное.

     

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

    Неужели этот вопрос и вправду интересует тебя больше всего? Пишу ли я программы, играю ли я на сервере – это ни имеет никакого отношения к данному тексту. Как и все люди, я делаю, что могу, а что не могу – не делаю. Я даже в сингл редко захожу. А чтобы писать программы, требуется владение предметом.

    Кстати, именно поэтому я и не докапываюсь, как ты выразился, «до всех программ» – у меня просто нет времени на изучение их всех. Мало прочитать код, требуется еще понимать механику Майнкрафта и модов. Кроме того, есть вещи, которые меня вообще не интересуют. Например, темы мини-игр, декора или графики я бегло просматриваю, просто пытаясь понять, что там обсуждается, и зачем оно нужно. Не понял – прохожу мимо. Да простит меня твой Cube, но и он меня не заинтересовал, я не знаю, зачем он нужен, и мне даже в голову не приходило заглянуть в его код.

     

    Еще раз посмотри, до каких программ я докапывался: либо там откровенный тупняк новичка в десятке строк, либо меня заинтересовала идея программы, и в этом случае я готов читать код.

    Так что, Cube пройдет мимо, не обижайся. Внезапно увлекшись турелями, я и так отложил рыбалку Asior'а, а там еще есть, с чем разобраться. Сам Asior не спешит с правками, поэтому поле свободно. Далее на очереди Quant с его модемом на редстоуне. Что поделать, тащат меня эти штуки. До них-то я и докопаюсь. Еще хочу докопаться до геошахтера Артема, но т. к. его самого уже нет на проекте, мне будет проще самому всё написать с нуля от логики до реализации. Вот, тогда-то ты и погрызешь мой код. А пока я буду всех радовать иными формами творчества.

     

    P.S. и не пали мои бэкдоры плз. (если найдёшь)

    Твори добро, брат, и тогда никто не помешает тебе дюпнуть чемодан с иридием.
    • Нравится 2

  13. О, моя костыльная функция для робота.

    Даже три функции. Твой код меня поразил еще летом, но тогда я внезапно выпал из проекта.

    Сейчас же твой код пришелся очень кстати. Шедевральная избыточность.

    • Нравится 1
  14. Рыбалка #0


    Ваша логика тоже удивляет, говорить об алгоритмах при этом "А так как писать программы я не сильно хочу".

    Тут уже диванной аналитикой попахивает.

    Тебе ли не знать, познавший Матрицу. Желания – говорить ли об алгоритмах, или писать программы – не обязаны быть синфазными. Всему свое место и время.
    • Нравится 1
  15. Включился


    Теперь главное вовремя перезагружаться, чтоб зависаний небыло))

    О, да! Хороший совет.

    P.S.:Встретимся на рыбалке. Сейчас мне этот проект наиболее интересен. Планируешь доработку своей схемы и программы?


  16. сканирование ресурсов в толще породы осуществляется геосканером методом “фалангового сканирования” (“бегущий кластер”, “удар катаны” )

    А что за метод такой? Что-то я не смог нагуглить ничего подобного.
  17. Сизифов код


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

    Asummonster, сёстры не спешат комментировать мой пост, а конкретно эта установила для меня очень высокую планку, написав в разделе "обо мне":

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

    - А я Томат.
    • Нравится 4
    • Ха-ха 2
  18. Сизифов код


    Понимаю твою боль, мой Крутой брат. Но много ли сестер пишут код у нас на проекте?

     

    Сестры, откликнитесь! Если вам интересны мои посты, плюсуйте комментарий Крутого брата, оставляйте свои комментарии, и тогда я буду писать и для вас тоже. Простите меня, если вас не заметил. Будьте счастливы все на IT-сервере.

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