Re[89]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 27.12.10 10:35
Оценка:
Здравствуйте, samius, Вы писали:

S>

S>C=('a'..'z')+D=(C|!=C)+E=(D|!=D)+F=(E|!=E)

S>Здесь виднее что каждый счетчик получается из набора значений предыдущего + некоторое условие на него.

А ты не мог бы попобробнее описать, что здесь что значит? Я не понимаю запись.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[90]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 10:36
Оценка: -1
Здравствуйте, Erop, Вы писали:

E>А звчем вообще для целей стопа/продолженя уметь нумеровать размещения? Тем более, зачем уметь их нумеровать подряд?


Да эта задача высосана из пальца.
Ее автор сказал что это задача брутфорса.
Тоесть генератор паролей + Попытка залогинится текущим паролем.

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

Тоесть зачем он решил сэкономить 0,001% быстродействия брутфорса осталось
для меня загадкой
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[88]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 10:38
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>В общих чертах иногда догадываюсь. Не запутал, замучил.

E>+1 Хорошо, значит мы пока понимаем друг друга вилимо. А то меня очень смутило, что на выражение, описывающее тройки букв ты сказал, что думал, что это для общего случая...
Извини, я не вчитываясь включил скептика.

E>В сё сведётся к тому, что у тебя, например, будут переборщики диапазона, коллекции диапазонов, и просто битсет.

E>Ну и будет какой-то апдейт этого всего, при изменениях в связанном переборщике.
E>И ты будешь уметь их внутри интерпретатора сочетать. И каждый раз, когда будешь вычислять новый переборщик, будешь смотреть как его оптимально представить. Так что у тебя само собой получится, что будет K переборщиков, уже профильтрованных, и каждый относительно эффективный. и потом поверх этого будет переборщик их декартова произведения, который будет их просто ++ить и ресетить в нужном порядке. И всё. Это на однонитевой реализации если. Если речь идёт о парралеллелищзме, то самый внешний цикл, например расщепят по ядрам/машинам.
E>А если о массововм, то наоборот, самый внутренний. И вот в этом вот последнем случае как раз связанные переборщики реализовать не удастся. но там, как раз, будут удобны фильтры в самом вложенном цикле.
Понятно.

E>Это, как бы, наивная реализация, на самом деле. И в чём проблема? В рассылке апдейтов?

Не на этой стадии

S>>Кажись понял. Ты хочешь сгенерировать переборщик по выражению?

E>Нет, я вообще хочу разделить процедурный и семантический аспекты кода. И PC_2, кстати, тоже. Мы на этом с ним и сошлись. В этом одна из идей RS. Просто он её очень путанно и провокативно излагает.
E>Суть идеи в том, что в языке С++, например, есть очень много лишних подробностей о том КАК что-то надо сделать. Хотя во многих случаях вполне бы хватило описать только ЧТО мы хотим получить, а КАК мог бы допереть и сам интерпретатор.
По путанно и провокативно — да!
E>Ясно, что универсальный всемогутер так построить трудно. Но вот язык для всяких переборных задачь, вробе бы можно. И дополнить его потом до языка общего назначения -- это, как раз, рутина и проблем не представляет.
E>проблемы лежат совсем в другой плоскости.

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

E>но этото тоже потребует как-то выражать, что "это вот" состояние соответствует "тому-вот".
E>То есть опять попадаем в связанные переборщики...
Не уверен что понимаю
Re[89]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 27.12.10 10:38
Оценка:
Здравствуйте, samius, Вы писали:

S>Но пойми, я отвечаю с лагом в несколько сообщений, потому мы в разных точках времени общения находимся. Ну как если бы я был на Марсе.


S>Уже объяснял.

S>Это если взять итератор, попросить его текущее значение и ++ за один вызов. Все это спрятано в этот возврат.

Ну я тоже с лагом. Особенность тутошенй среды общения.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[86]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 10:39
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Это автомат, который возвращает значения при каждом обращении и переводит себя в очередное состояние.

E>А! Понятно!
E>Но тогда у тебя описано тоже самое, но в виде автомата, а не в виде перебираемого множества.
E>те же проверки, что типа "X без х"...
Да. В каждой итерации используется фильтр на алфавит, который выбрасывает рассматриваемый символ. То же что и у тебя.

S>>Отбой. Можно. А можно коротко и удобно, и что бы длина записи не зависела от k?

E>Ну вот надо понять, можно ли как-то вменяемо выражать понятие "согласованный переборщик", или, там "подпереборщик". Можно, кстати, потребовать, чтобы граф согласованности переборщиков был лесом, или, хотя бы, ациклическим.
Можно.
Re[90]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 10:44
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Или потрудись хотя бы ссылку дай на мгновенный алгоритм получения i-ого размещения. Ну не мгновенный, а что бы хотя бы

S>>

S>>работать по Сишному и начинать
PC_>>>перебор с середины списка.


E>А звчем вообще для целей стопа/продолженя уметь нумеровать размещения? Тем более, зачем уметь их нумеровать подряд?


Да так, мысль туда зашла.
В частности построенный на F# генератор и есть автомат, который может продолжить с текущего места, как итератор. Но он не персистентный. Вот потому и пришла мысль сбрасывать номер.
Но пропускать вычисления для такого генератора — действительно плевое дело. Все лениво, потому пока не обратишься за символами очередного пароля- они не будут вычислены как и все то из чего они вычисляются. Однако при получении очередного ленивого пароля автомат переводит состояния для получения следующего (не вычисляя)
Re[91]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 27.12.10 10:46
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Тоесть зачем он решил сэкономить 0,001% быстродействия брутфорса осталось

PC_>для меня загадкой

Я согласен, что в такой постановке это малоперспективно. Но легко придумать практически значемые юзкейсы. Самый простой -- рисованеи прогресс-бара

А ещё может быть и более прикольный заход на цель.

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

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

Мало того, если мы ещё и на время играем, мы можем, например, поанализировать ситуацию немного, потом понять, что тут думать неэффективно, и сэкономить время. А можем решить, что ещё стоит потратить пять секнд, и дать себе ещё "немного подумать". Но это вот "немного подумать" в терминах обычной процедурной перебиралки очень трудно реализовать. А тут, имея замораживаемые/отмораживаемые переборщики, можно разадть им немного активности по какому-то принципу, и тем самым потратить время с толком
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[89]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 27.12.10 10:50
Оценка:
Здравствуйте, samius, Вы писали:

S>Извини, я не вчитываясь включил скептика.

Дык можно просто не отвечать какое-то время. Зачем спамить-то?

S>Не на этой стадии

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

S>По путанно и провокативно — да!

Ну ясное, мотивирующее на сотрудничество изложение своих идей, к сожалению не конёк PC_2. IMHO, это мешает, но не смертельно.

S>Не уверен что понимаю


Ну что тут непонятного? Ну, например, описываю я что-то при помощи регэкспа + навешшиваю требование "а скобки должны быть сбалансированы". Как замутить эффективный переборщик строчек?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[90]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 10:50
Оценка:
Здравствуйте, PC_2, Вы писали:

S>>Или потрудись хотя бы ссылку дай на мгновенный алгоритм получения i-ого размещения. Ну не мгновенный, а что бы хотя бы

S>>

S>>работать по Сишному и начинать
PC_>>>перебор с середины списка.


PC_>Сформулируй нормально задачу которую ты решил.

PC_>Думается есть разночтение.

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

От тебя я прошу как можно продолжить перебор с i-ого пароля, "как в С", что бы убедиться что решение на РС гибко и не сломается от такого маленького изменения в требовании.
Re[91]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 27.12.10 10:52
Оценка:
Здравствуйте, samius, Вы писали:

S>Однако при получении очередного ленивого пароля автомат переводит состояния для получения следующего (не вычисляя)


А ты думаешь, что прокачать все эти состояния автоматов дешевле, чем сгенерить строчку из пяти букв?
Я бы не был так уверен... Ну, во всяком случае без профилирования...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[92]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 10:54
Оценка:
Здравствуйте, Erop, Вы писали:

E>Вот представь себе, что мы пишем, например, игрока в шахматы. И написали какое-то выражение, которое ищет лучший ход. И оно так хитро устроено, что пока ищет, у него всегда есть какой-то текущий кандидат, который постепенно улучшается.


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

E>Потом вычеркнули те переборщики, которые отпали после нашего хода, и сидим тихонечко анализируем дальше. Тут проивник сходил. Мы опять выкидываем ставшие ненужными варианты продолжения позиции и опять анализаируем дальше...

E>Мало того, если мы ещё и на время играем, мы можем, например, поанализировать ситуацию немного, потом понять, что тут думать неэффективно, и сэкономить время. А можем решить, что ещё стоит потратить пять секнд, и дать себе ещё "немного подумать". Но это вот "немного подумать" в терминах обычной процедурной перебиралки очень трудно реализовать. А тут, имея замораживаемые/отмораживаемые переборщики, можно разадть им немного активности по какому-то принципу, и тем самым потратить время с толком


Сериализация, десериализация состояния машины и реверсный режим работы виртуальной машино это еще идея фикс со студии,
которая кстате говоря многое из этого уже умеет

Короче остался вопрос. Стоит ли для такой полезной, несомненно, сериализации переборщиков
воротить ленивость в генераторе чтобы потом героически все скипать ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[90]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 10:54
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>

S>>C=('a'..'z')+D=(C|!=C)+E=(D|!=D)+F=(E|!=E)

S>>Здесь виднее что каждый счетчик получается из набора значений предыдущего + некоторое условие на него.

E>А ты не мог бы попобробнее описать, что здесь что значит? Я не понимаю запись.

Сначала создаем итератор по 'a'..'z' и говорим что он будет называться C
Дальше создаем D, декларируя что он возьмет значения из C, но кроме текущего значения C. Фигово записано, не спорю.
Дальше E создается по значениям D без текущего D. И т.п.
Т.е. отпадает нужда декларировать что E!=C && E!=D.
Они как бы берут значения по цепочке и слегка модифицируют свой набор.
Re[91]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 10:56
Оценка:
Здравствуйте, PC_2, Вы писали:

PC_>Здравствуйте, Erop, Вы писали:


E>>А звчем вообще для целей стопа/продолженя уметь нумеровать размещения? Тем более, зачем уметь их нумеровать подряд?


PC_>Да эта задача высосана из пальца.

PC_>Ее автор сказал что это задача брутфорса.
PC_>Тоесть генератор паролей + Попытка залогинится текущим паролем.

PC_>Правда автор умолчал, что генератор паролей работает наверное в миллион раз быстрее

PC_>чем собственно сетевой трафик и задержка при логине. Тоесть это даже не ловля блох,
PC_>это ловлях блох на голове у блох
Ты что, не в курсе про pwl файл?
Да, молодежь пошла

А может я вообще ключ к варезу подбираю
Re[92]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 11:02
Оценка: :)
S>А может я вообще ключ к варезу подбираю

ну отлично, что тебе стоит написать вот так

!x='a'..'f'
i<3?a+='+x'+i
^('s,=' + a)

//а потом отфильтровать

m,= s.i>'bcd'?s.i

//получишь все строки с bcd до zzz
//а здесь уже пошел потихоньку дергать свои пароли и проверять в своем варезе
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[90]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 11:06
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Извини, я не вчитываясь включил скептика.

E>Дык можно просто не отвечать какое-то время. Зачем спамить-то?
Не оценил идеи, поспешил. Я иногда так делаю

S>>Не на этой стадии

E>Ну вот и мне, и PC_2, кстати, тоже, насколько я понял, кажется, что пока что нет смысла обсуждать эффективную реализацию интерпретатора. Вполне достаточно того, что есть принципиальна явозможность его написать.
Я вообще говоря был уверен что ничего там принципиально изменить невозможно, т.к. по булеву выражению в общем случае построить эффективный перебор нельзя. А декларативное описание создания переборщика вместо условия, вы как-то не хотите рассматривать. Это об D=(C|C!=). Синтаксис надо менять. Но имхо это лучше для последовательности переборщиков завязанных на общие фильтры/условия.

S>>Не уверен что понимаю


E>Ну что тут непонятного? Ну, например, описываю я что-то при помощи регэкспа + навешшиваю требование "а скобки должны быть сбалансированы". Как замутить эффективный переборщик строчек?

Совсем оторвался
Re[91]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 11:10
Оценка: :)
Здравствуйте, samius, Вы писали:

Короче говоря вотето все "навешиваю",
это уже только ленивый не понял что все навешивания идут в других слоях.

Также как и навес сохранить состояние машины и продолжить с этого места.
Задача проста до безобразия, а вот к реализации ...

Короче если сделать нормальный язык с "навесами", чтобы разделить в декларативности —
вотето база, а это навес.

То это будет не язык, это будет Ураган.

Он будет к любому другому языку иметь такое же отношение как 3D вещь к 2D вещи ...
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[92]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 11:12
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, samius, Вы писали:


S>>Однако при получении очередного ленивого пароля автомат переводит состояния для получения следующего (не вычисляя)


E>А ты думаешь, что прокачать все эти состояния автоматов дешевле, чем сгенерить строчку из пяти букв?

А он качает то не всё подряд
E>Я бы не был так уверен... Ну, во всяком случае без профилирования...
Хм. Получение миллионного пароля 17 сек ( и над этим можно работать и увести к долям секунды), получение первого миллиона паролей — полторы минуты.
Re[91]: Ультракороткий язык программирования RS
От: Erop Россия  
Дата: 27.12.10 11:14
Оценка:
Здравствуйте, samius, Вы писали:

S>>>Не уверен что понимаю

E>>Ну что тут непонятного? Ну, например, описываю я что-то при помощи регэкспа + навешшиваю требование "а скобки должны быть сбалансированы". Как замутить эффективный переборщик строчек?
S>Совсем оторвался

В смысле? Я непонятно объяснил вопрос?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[93]: Ультракороткий язык программирования RS
От: PC_2 http://code.google.com/p/rsinterpretator/
Дата: 27.12.10 11:14
Оценка:
S>Хм. Получение миллионного пароля 17 сек ( и над этим можно работать и увести к долям секунды), получение первого миллиона паролей — полторы минуты.

17 секунд что-то много получилось ...

А что за тачка у тебя ?
"Вся страна играть в футбол умеет, лишь мы 11 человек играть не умеем"(с)КВН
Re[93]: Ультракороткий язык программирования RS
От: samius Япония http://sams-tricks.blogspot.com
Дата: 27.12.10 11:15
Оценка:
Здравствуйте, PC_2, Вы писали:

S>>А может я вообще ключ к варезу подбираю


PC_>ну отлично, что тебе стоит написать вот так


PC_>
PC_>!x='a'..'f'
PC_>i<3?a+='+x'+i
PC_>^('s,=' + a)

PC_>//а потом отфильтровать

PC_>m,= s.i>'bcd'?s.i

PC_>//получишь все строки с bcd до zzz
PC_>//а здесь уже пошел потихоньку дергать свои пароли и проверять в своем варезе
PC_>

Цена решения?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.