Doob
-
Публикации
1 089 -
Зарегистрирован
-
Посещение
-
Победитель дней
141
Сообщения, опубликованные пользователем Doob
-
-
С выпиливанием вайтлиста стало как-то скучно.
В общем имеем код "сжималки" с рабочим названием "Popoff2"
local data = require('data') local function compress(str) local list = '' for i = 1, #str do if string.find(list, string.sub(str, i, i)) == nil then list = list .. string.sub(str, i, i) end end local lhex = string.format('%x', #str) for j = 1, 8-#lhex do lhex = '0' .. lhex end return data.md5(str) .. data.fromHex(lhex) .. list endСуть алгоритма:
К примеру, закодируем строку 'helloworld' (строка короткая, сжатия нет, зато перебор быстрый)
Получаем хеш и размер строки в двоичном виде (для примера размер указываем в четырех байтах), в конец добавляем используемые символы
[FC5E038D38A57032085441E7FE7010B0] [0000000A] [lowerdh] = 24 байта из 10, но это всего-лишь пример (вообще, можно указать количество повторений для каждого символа, тогда на пермутациях можно выиграть очень много времени, а исходные данные предварительно жать через deflate)Чтобы вернуть исходные данные, надо перебором генерировать из указанных символов последовательность, указанной длинны. Очень неэффективно, но не в этом суть.
Нужен алгоритм, при помощи которого можно подбирать исходные данные на нескольких устройствах несвязанных во времени и пространстве, т. е. чтобы диапазоны перебора предварительно разбивались на блоки, которые алгоритм будет обрабатывать отдельно.
Какие есть предложения?
-
Хорошая штука - YouTube, теперь, вместо простыней текста и мануалов есть куча видео про все на свете.
-
Мм... Зачем жить, если жизнь - велик?))
Где зимуют раки, когда кончается игра?
Без практики есть риск остаться хеллоувордщиком или скатиться до скрипт-кидди, тогда вообще нет смысла лезть в программирование.
-
Идея дуба, он так делал, у него есть мини алгоритм для рисования квадратных картинок.
Всего-лишь идея, начал делать свой пейнт с инструментами и палитрой, сразу в чат начали сыпать объявлениями о создании СуперМегаФотошопов.
Так как получать точные координаты клика можно только через моник Т3, я это дело бросил, но в редакторе голограмм это реализовали.
-
Давно хотел сделать заливалку с кучей настроек, но пока допиливаю очень сложный алгоритм, вряд-ли между делом выйдет что-то толковое.
2. Чтобы дуб это-же не писал.
С такими условиями я уже на трех проектах забросил постить скрипты.
Кстати, спасибо за идею обменника через чат, очень удобно получается!))
-
Добавить в event.lua надстройку, которая будет проверять дату изменения файлов, но это будет сильно грузить комп.
-
http://computercraft.ru/topic/436-zakaz№002-ozhidanie-programma-batareia-ogon-a/?p=14143 Вообще рандомный хардкор. -
Иногда надо получить относительные или абсолютные координаты робота или узнать путь, по которому он прошел, чтобы вернуть робота назад.
Я немного модифицировал стандартную библиотеку робота, теперь можно задавать/удалять/просматривать координаты робота. Нет функции сохранения координат в файл, поэтому после перезагрузки координаты сбросятся, поэтому это делать надо самостоятельно. Так же, нафигация не работает, если управлять роботом, как компонентом (т.е. в обход robot API)
скачать: pastebin get -f Hb32aQeR /lib/robot.lua
Список новых функций:
robot.getPos() - возвращает текущие координаты, если не заданы, то при первой загрузке библиотеки устанавливаются x, y, z = 0, 0, 0, а направление - север.
robot.setPos(x, y, z, side) - устанавливает заданные координаты, side задается в формате N/E/S/W (стороны света)
robot.getPath() - возвращает пройденный путь в виде строки, каждому движению соответсвует одна буква - [F]orward, [В]ack, p, [D]own, [L]eft, [R]ight. (например 'FFFULFFD' - три вперед, один вверх, один влево, два вперед, один вниз)
robot.setPath(boolean) - активация/деактивация записи маршрута, соответственно true/falseМожно было бы сделать в стиле navigation API с использованием sides API, но это не особо удобно.
Триггер записи маршрута по-умолчаию отключен, для экономии памяти, ибо каждое движение съедает один байт, по-уму надо прикрутить автоматическое сжатие.
Чтобы пройти по пройденному маршруту обратно, надо в начале активировать robot.setPath(true), а в конце запустить примерно такую программку:local robot = require('robot') local path = robot.getPath() local invert = { ['F'] = 'back', ['B'] = 'forward', ['L'] = 'right', ['R'] = 'left', ['U'] = 'down', ['D'] = 'up' } for i = #path, 1, -1 do os.execute('go '..invert[string.sub(path, i, i)]) end
Полезно для полностью автономных программ.
Очень удобно вытаскивать робота-грифера из чужих приватов.
Утилита, через которую можно проверить и задать координаты:
pastebin get nJ5i4qiL /bin/pos.lua
Программа движения сквозь блоки:
pastebin get X5G4PHnS /bin/goto.lua
Роботу необходим инструмент для разрушения блоков, для запуска надо указать координаты.-
2
-
-
Хм! Мне понравилась функция es.rotation, так же можно нормальный кубик Рубика сделать, очень просто выходит, не надо морочить голову со сдвигами таблицы.
-
1
-
-
Идею Нео с хешами я пока не понял. Что за хеши? Кто их генерирует? Что с ними делать дальше? Как это связано с фондовой биржей? Можно подробней и с примерами?
Я незнаю, что имел ввиду Нео, но свой взгляд я уже высказал выше. Хеш это энергия+время, т.е. тоже ресурс, хоть и преобразование необратимое. Так как это ресурс, то у него есть некоторая стоимость, которая выясняется в результате торгов и добычи.
Если их будут генерировать игроки, то нужен какой-то античит, чтобы хеш, сгенерированный на не родном клинете был недействителен в системе.
А если генерацию производит какой-то центральный орган, то это превращается в очередной админшоп.
-
Вангую, что это очередной бездонный проЭкт, типа ОпинФорекс, никто в эти фантики играть не будет, если даже его не забросят.
Интересно мне посмотреть на тех хардкорщиков, которые возьмутся писать сайт-обработчик.
А вот с хешами я бы поиграл, сделать как битки, только по-проще. К примеру вот такой хеш 000000000000000000b699db1c777238d5876b44cef240654c749dd09e1790efSHA256 будет примерно равноценен сундуку изумрудных блоков. В блокчейне имеем историю транзакций, либо ключ генерации хеша, сам хеш и ник последнего владельца, при транзакции просто меняется ник и все. Суть майнинга будет заключаться в получении редкого хеша (чем менее случайная последовательность, тем выше цена). Думаю, это больше подходит для вычислительной мощности ОпенКомпов, чем реалистичные криптовалюты.
-
@KelLiN, я тоже это хотел предложить, но кто будет заниматься скриптом получения котировок?
-
У меня странное дежавю, будто эта тема уже поднималась, но так как ее на форуме нет, значит она улетела в ресайклер.
Если по-уму сделать, то это все-равно будет рулетка, а не биржа. Первая же пара нормальных ботов раздавят экономику.
А с хешами не все так просто, если их ищет банк или какая-то другая организация, то их стоимость вначале близка к бесконечности, потому-что опенкомпутеровские компы очень медленно будут их искать.
А если их будут искать игроки, то кто мне запретит написать брутфорс на ассемблере и при помощи видеокарты подбирать по десятку гигахешей в секунду? Но в общем, да, идея здравая. Если еще и чанклоадерам цены неподъемные сделать, то будет настоящая, почти рандомная экономика.
-
Рулетку предложил я, даже программу написал. Админы не выразили интереса К рулетке, поэтому я и прикрыл лавочку.
Главное, чтобы игроки выразили интерес.
Я на одном немецком сервере построил мини-казино, за месяц пришли только два игрока, хотя онлайн 50 человек.
Было очень весело, стоит посреди поля большая постройка, внутри куча автоматов, я сижу один и играю с компом в покер.
-
Зачем такая сложная формулировка?
Рулетка на IT-light - просто и понятно, только зачем? Предлагали же как-то, но никто не выразил интереса.
-
Если я правильно помню, unicode.find() удалили из мода, можно поискать в старой версии мода или на OpenPrograms.
-
У меня была такая идея, но она так и осталась на бумаге.
Главное меню
[продать/купить]
[хранилище]
Меню хранилища
[ Игрок ][ Хранилище ]
[название предмета][ количество ][ количетво ]
[iron Ore ][64 [+][-][128 [+][-]
Меню магазина
[ Игрок ][ Магазин ]
[название предмета][количество][цена][количество][цена]
[Cobblestone ][1024 ][0.1 ][9999999 ][1 ]
Клик по предмету вызывает -
Меню операций торговли/хранилища
[Название предмета]
[операция][количество][стоимость]
[ продажа][ ][ ]
[ покупка][ ][ ]
Клик по количеству или стоимости вызывает цифровую клавиатуру.
[1][2][3]
[4][5][6]
[7][8][9]
[<][0][X]
-
Ммм! Наконец-то маленькие квадратные пиксели!
-
Тут у нас не патентное бюро, я немного ковырялся в МС1.8, да забил, потом увлекся магазинчиком на пимке и тоже забил.
-
FAQ по OpenOS
Q: Монитор показывает синий экран, написано no bootable medium found: flie not found, что делать?
A: К компьютеру не подключен диск с операционной системой, необходимо вставить дискету OpenOS во внешний, либо (если это алмазный компьютер) во внутренний дисковод. Если подключен жесткий диск, то операционную систему можно установить на него, загрузившись с дискеты OpenOS, прописать в консоли install и задать нужный диск цифрой, по завершении установки, будет запрос на перезагрузку - вытаскиваем дискету и вводим в консоли y
Если есть жесткий диск с установленной операционной системой, то можно подключить его.
Q: Я запускаю программу, но она не запускается, пишет file not found
A: Такой программы нет в текущей директории и папке bin, либо неправильно задано название программы. Возможно вы запускаете программу с аргументами и не поставили пробел между названием программы и аргуметами (например mkdirtest/test, а надо было mkdir test/test или mkdir test /test)
Чтобы посмотреть список файлов в текущей директории введите ls, если необходимого файла нет, можно перейти в другую введя cd название_папки
Q:Я вставил дискету в дисковод, как мне записать на нее файл?
A:В терминале вводим cp имя_файла путь_к_дискете
Q:А как мне узнать путь к дискете?
A:В терминале вводим df, у нас выводится список доступных файловых систем.
Если дискета новая, то у нее нет лейбла и в списке будет длинный набор символов, что-то типа этого: f2a725db-d323-3638-1317-fc33d37de611. Для уточнения можно заглянуть в дисковод, на дискете в самом низу будут эти же символы.
Если у дискеты есть лейбл, то он написан на самой дискете.
По умолчанию дискета монтируется в папку /mnt/адрес_дискеты, чтобы примонтировать по более короткому пути, воспользуемся программой mount
Вводим mount адрес_дискеты путь либо mount метка_дискеты путь.
В качестве адреса используются первые три символа, например mount f2a /disketa
Путь для точки монтирования задается абсолютный, т. е. в данном примере, чтобы скопировать файл test из текущей директории на дискету вводим в консоли cp test /disketa
Q:Как задать дискете свой лейбл/метку?
A:Вводим в терминале label путь_к_дискете метка, либо label -a адрес_дискеты метка
Например адрес дискеты начинается с f3a и я хочу присвоить ей название 'TEST', тогда я ввожу в терминале label -a f3a TEST
Q:Команда df выдает диски, которых у меня нет, что это за файловые системы internet и data?
A:df показывает не только реальные файловые системы, но и точки монтирования, они указаны в последней графе 'Mounted on'
Некоторые компоненты имеют файловые системы, подключаемые на уровне мода, в них содержатся стандартные программы для работы с этими компонентами.
Q: Как отформатировать дискету?
A: Узнаем начало адреса дискеты, заглянув в дисковод. Например адрес начинается с a9b, тогда терминале пишем rm /mnt/a9b/*-
5
-
-
@@Doob, раздели пожалуйста на 2 темы... обе закреплю
Сделал.
Я пробовал виртуальную машину. При этом всё во первых начинает жутко лагать из-за недостатка памяти, во вторых разрешение экрана сжимается до самого ужасного какое можно только представить. Не говоря уже о обновлениях оси.
По этому единственный нормальный вариант повозится и поставить вторую систему параллельно с первой.
P.S. Знаю консольных команд пока что мало, и то не знал бы вовсе если не сидел когда то давно на Ubuntu.
Первые версии убунты были более-менее, но потом пошло произведение какой-то богатой школоты - поддержки старых устройств нет, дебиановские отваливаются, от этого лаги и глюки. И на лого бубен нарисован, как по мне, лучше дебиан.
-
Спасибо за пост, аж захотелось Linux себе поставить и по изучать лучше консольные команды.
Это не сложно, например можно установить на виртуальную машину какой-нибудь легкий LiveCD.
-
По-подробнее? На вики нету такого.
На вики есть абсолютно все, поищи rx, ry. rxm, rym
-
А как можно ком-блоком получить вектор взгляда?
testfor

Распараллеливание брутфорса в OpenComputers
в Программирование
Опубликовано:
Долго же. А что если у меня 15 компьютеров?