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

Seryoga

Пользователи
  • Публикации

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

  • Посещение

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

    6

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

  1. "Помогите. Я тут что-то тыкнул, а оно само сломалось. Что делать?" "Ну и не сильно хотелось" "Ожидания - Реальность" Резюме классная идея нет документации и вообще какого-либо описания. А в таком проекте это самое важное, так как человек, который хочет использовать этот способ написания программ, может совершенно не знать, что такое программирование и с чем его едят.Я 10 мин рисовал "Hello world", при этом заглядывая в код, который генерирует программа, иначе бы мог провозится гораздо дольше. отсутствует многоуровневое описание баги, много багов выделение работатет только от верхнего левого к нижнему правому углу фигня какая-то с проводничками, путаются и не хотят расутываться, улетают в космос создаёт битые файлы можно графически описать не синтезируемый алгоритм создаются пременные, которые нельзя переиспользовать ... ps. почитай про: control flow graph и control flow analysis
  2. Блииин, всё пропустил. Чёртов универ, надо переставать в него ходить =Р А, ещё и завтра туда идти =(
  3. Если будете пилить что-то масштабное, то не могли бы учесть Мои пожелания: У меня "иногда" появляются свободные деньки, которые не куда деть. Было бы прекрасно, если бы я смог посмотреть issues и на основе их сделать небольшой вклад в проект, ввиде парочки pull request'ов. JS -- это язык программирования не для души. ?
  4. А почему нельзя просто прошить код трассирующими маркерами? ТО ЕСТЬ возьмём следящий поток и две функции для работы с ним: mark(*variables) -- скопировать и отпрвить потоку переменные wait() -- остановка до того пока следящий поток не разрешит продолжить работу Вставить функцию mark во всех местах где изменяется какая-либо переменная или если есть вероятность изменения переменной Также трассировать глобальные переменные. В мастах, где располагаются брейкпоинты вставить wait И усё
  5. Божечки кошечки. Да это же попытка #1000001 по созданию ОС для OpenComputers. Можете провести для меня эксперимент: "На сколько медленее работают N процессов на нескольких OC компах, чем на одном?" Просто у меня такое ощущение, что все компы в opencomputers исполняются в одном процессе Если вдруг будете пилить не забудьте сделать shared memory и system signals (SIGKILL, SIGINT, SIGSEGV и тп) КОД: supercomputer = require('supercomputer') Process = supercomputer.Process Pool = supercomputer.Pool Manager = supercomputer.Manager function handle(arg1, arg2, argN): variable = Process.share("variable", {1, 2, 3}) sleep(5) lock = variable.get_lock() lock.close() variable.value = {1, 2, 8, 9} variable.value[3] = 12 lock.open() sleep(3) lock = variable.get_lock() lock.close() variable.value[1] = 10 variable.value[2] = 3 lock.open() sleep(100) print(variable.value) end function mapper(datum) print(datum) return datum * 2 end function main() manager = Manager() process = Process("process_1", handle, arg1, arg2, argN) process.start() variable = manager.get_shared(process, "variable") for i = 1, 10, 1 print(i, variable.value) sleep(1) lock = variable.get_lock() lock.close() pool = Pool(10) variable.value = pool.map(variable.value, mapper, arg1, arg2, argN) lock.open() process.join() end main() ВЫВОД: 1 1, 2, 3 2 1, 2, 3 3 1, 2, 3 4 1, 2, 3 5 1, 2, 3 6 1, 2, 3 7 1, 2, 12, 9 8 1, 2, 12, 9 9 10, 3, 12, 9 10 10, 3, 12, 9 3 9 10 12 20, 6, 24, 18
  6. Seryoga

    Что такое IRC

    А ещё есть такая штука как thunderbird его можно и нужно использовать как почтовый клиент (например для почты <...>@computercraft.ru). Также её можно использовать в качестве удобного irc клиента. Для Android я использую ircCloud не могу сказать, что она лучшая, но в ней ней нет рекламы и она бесплатная.
  7. А что если: -- Взять робота с конфинурацией: монитор, ОЗУ, ЦП, EEPROM -- Взять пространсво команд и их аргументов: имя инструкции адрес первого аргумента адрес второго аргумента адрес результата адрес следующей команды Под адресом понимается: "глобальная" координата в мире (координата таблички) или адрес в виртуальной памяти робота -- Взять программу для робота, которая умеет считывать и интерпритировать команду с таблички, писать данные на таблички и в СОЗУ и работать с адресацией в "глобальном" пространсве (находить таблички). -- Найти людей, которым будет интересно пописать программы на этом roboassembler'е.
  8. Вот так? local function split(str, delimeter) local delimeter = string.byte(delimeter) local arr = {} local sub = {} for i = 1, #str do if str:byte(i) == delimeter then arr[#arr + 1] = table.concat(sub, "") sub = {} else sub[#sub + 1] = string.char(str:byte(i)) end end arr[#arr + 1] = table.concat(sub, "") return arr end local filepath = "C:/extra" local files = {} local visitor = io.popen('dir "'..filepath..'" /b') for filename in visitor:lines() do local varname = table.concat(split(filename, "."), "_") files[varname] = filename end visitor:close() print(files.file_lua)
  9. А что если не одну тефтельку варить, а несколько килотонн в секунду? Мы знаем, что робот должен ждать приблизительно 2 сек на матеариализацию новой булыги, но при этом оно не стабильно. Можно это время потратить с умом и добыть булыги в других местах. А эти другие места найти при помощи геосканера. ps. можно конечно и без геосканера, но это другая история =)
  10. Забыл скинуть ссылку на сорцы https://github.com/DeveloperHacker/Pathfinder Если кому-то будет интересно могу подробно описать, что там и зачем
  11. Простите за офтоп... Меня всегда удевляли люди, которые пытаются написать свою ОС. А большее удивление вызвает то, что они совершенно не понимают что такое ОС, зачем её придумали и что правильная ос должна уметь делать. В добавок ко всему, многие из этих людей не разбираются в языке, который хотят использовать для написания. Это очень огромный минус для человека, который хочет разработать свою ОС. Так как придётся описывать огромное количество стандартных алгоритмов и процессов, а это гиганское количество строк кода. ОС это очень плохой выбор проекта для изучения языка.
  12. Класно было бы отлавливать сообщения роботов, и выводить их на здоровый монитор.
  13. Насчёт вакуума. Например: у меня будет возможность отправить какие-то данные на свой комп, обработать их и вернуть обратно? Или все вычисления должны проходить только в роботах и только на том сервере, где проходит ивент?
  14. Я хочу участвовать =з Можешь ответить на вопросы? Когда этот эвент будет проходить? (Прост скоро сессия) Где этот эвент будет проходить? Есть ли какие-нибудь ограничения на конфигурацию роботов, используемые ресурсы и etc? За сколько часов или дней до соревнования будут извесны карта и правила? На какой сверический вакуум можно расчитывать?
  15. Создать чат бота на опен компах, который по возможностям хотябы на 50% будет достоен siri, сродни великому мазахизму. Более менее нормальная либа для написания НС на луа это torch. Даже если она вдруг запустится, в чём я мало уверен, то всё равно самые простетские сети прямого распространения будут обучаться неделями. До кучи, нужно где-то найти данные для обучения, не думаю, что яблочные ими поделятся. Хотя я не писал им.
  16. BugReport Пропуск пикселей Если выбрать цвет, зажать клавишу и начать быстро водить мышкой по экрану, то кисть будет рисовать прерывистую линию. Также если начать рисовать вне холста, то когда мышь дойдёт до листа она не будет рисовать. Это иногда мешает проводить линии. Пропадание кнопки с текстом 'custom colors' После создания нового цвета, пропадает кнопка для создания ещё одного цвета. Для того чтобы использовать её снова приходится делать довольно-таки хитрое действие. Не правильное отображение закрашенных квадратов и символов на них Если начать рисовать разноцветные символы поверх пиксельной картинки представленной на изображениях выше, то получится вот такая хурма: Не правльное отображение новых цветов Во-первых в палитре цвета с альфаканалом следует отображать на фоне 'шахматной клетки' Во-вторых при создании большого количества цветов новые цвета начинают залезать под таблицу с символами. Расположение холста Намного удобнее будет если холст можно будет размещать в любом месте рабочего поля, и если будет добавлена функция изменения масштаба изображения. Работа с файлами Приложение при сохранении изображения создаёт 'битые' файлы. То есть я могу создать файл без расширения или с расширением .jpeg, хотя приложение не умеет работать с файлами такого типа. И эти фалы невозоможно открыть и с помощью стандарных средств по работе с изображениями
  17. Неправильный подход к помощи в разработке. Этот проект находится на github. Вы вполне можете сделать fork репозитория. Добавить какие-либо фичи и баги, оттестировать их. Далее можно отправить pull request, а автор решит принять или отменить ваши изменения. ps. Сугубо моё мнение, но всё же. Ваше предложение выглядит так: "Ну вот я тебе запилил какую-то хрень, я не знаю работает она или нет. Причём ты виноват в том, что я не смог протестировать и отладить этот кусок кода. Но ты радуйся." Надо относиться с уважением друг к другу.
  18. Мне кажется, если бы ему нужна была фотка материнки, то он бы сделал её сам =)
  19. Вот поднарыл немного: http://websbornik.com/2010/11/circuit-boards-texture/ http://www.pcbsourcing.com/Business/isp.html http://www.deviantart.com/browse/all/resources/?q=circuit+board&offset=0 http://wallpapersafari.com/hd-motherboard-wallpaper/ Мне нравится pcb-шка от альтеровского плиса.
  20. qwetyMAN, ты про синтезируемый uml? Или про что ты? Я плохо понял тебя.
  21. А есть возможность повесить .png картинку на аватарку(чтобы в полупрозрачные цвета замешивался интерфейс сайта, а не чёрный цвет)?
  22. Замечания и предложения. Код чистенький и аккуратненький Чем локальнее переменная тем лучше. Использовать глобальные переменные стоит только в тех случаях, когда ты как минимум сутки сидишь и не можешь понять как написать код не исспользуя её. Когда используешь глобальные переменные, ты можешь изменить работу кривонаписаной библиотеки, совершенно не подазревая об этом. Также в обратную сторону. Переменные w и l нужно сделать локальными и передавать в функцию через аргументы local function digandplace(lenght) --операция укладывания work_r и work_l лучше заменить вот на такую штуку local function work(length, side) local turn = bot[(side == "right") and "turnRight" or "turnLeft"] digandplace(length) turn() bot.forward() turn() bot.forward() end @fixed by fingercomp а вызывать эту функцию так: work(l, (i % 2 == 0) and "right" or "left") Функция, в названии которой первое слово check, должна возращать переменную типа bool
  23. Есть одна идея, но там мало программирования. Да и на реализацию времени нет. Оставлю её сдесь вдруг кому интересно будет. Конструктор конвеерного производственного процесса Классно было бы иметь такую систему, в которой из небольших блочков можно было бы собрать небольшой заводик. Например по кравту каких-нибудь деталек, сборке урожая, сборке других закрытых систем. Или чтобы хардкорные майнкрафтеры могли легко создать структуру занимающеюся распределёнными вычеслениями. Более формальное описание проекта: Среда -- конструктор конвеерного процесса, который является темой этого поста; Система -- множество процессов, которые мы хотим наладить при помощи среды Элементы среды Блоки - это набор элементарных преобразований, которые имеют несколько входов и выходов. Входы делятся на два типа: основные и управляющие. Основные входы служат для передачи потока объектов по конвееру, управляющие -- для управления свойствами блока. Выходы также делятся на два типа: основные и сигнальные. Сигнальные выходы предназначены для предачи какой-либо информации управляющему копьютеру. Упраляющие компьютеры - это компьютеры, которые занимаются синхронизацией и управлением некоторым подмножеством блоков. Относительно внешнего мира, каждый такой компьютер определяет новый составной блок, который также имеет набор входов и выходов. Управляющее ПО - это ПО, которое должно стоять на каждом управляющем компьютере этой системы, через него должен описываться процесс охватываетмый компьютером. В этой программе блоки должны представлятся в виде объекта, у которого есть функции init, sleep, stop и поля, которые задают управляющие входы и выходы. Моделирующие ПО - это ПО, идёт отдельно и служит для виртуальной настроки системы. Одной из её возможностей является подгрузка библиотек с online ресурса, в которых содрежаться блоки, их спецификации и инструкция по сборке блока. Задачи Создать формализм для описания моделируемого блока, управляемого блока, спецификации и схемы по сборке блока Создать формализм для описания управления распределённой структурой Создать управляющее и моделирующее ПО Создать ПО для описания спецификаций блока Имея такой набор инструментов можно создать распределённую иерархическую систему любой сложности.
×
×
  • Создать...