Скрипт для переименования файлов в винде [ЗАКРЫТО]

grey1970

С помошью чего и как можно написать скрипт который переименовывал бы файлы в директории следующим образом
[Имя директории]&[Cчетчик]
Спасибо!

otvertka07

total commander умеет

IvladV71

>С помошью чего
notepad.exe

sergey_m

С помощью /bin/sh и базовых утилит.

otvertka07

где это ты в винде увидел /bin/sh ?

grey1970

Я знаю Multi-Rename tool,
Но вроде там нет возможности получить имя директории

Ivan8209

http://www.cygwin.com/
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
Karel Capek

otvertka07

ты бы уж тогда сразу виртуальную машину предложил установить, вместе unix-системой

grey1970

Все
TotalCommander действительно умеет

Ivan8209

Виртуальная машина никчему.
А вот если в винде шагу нельзя ступить без обеспечения сторонних
производителей, то это показатель.
---
Q21: Что такое Win2k?
A21: состема.

sergey_m

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

evgen5555

Тут еще Perl (ActivePerl) никто не предлагал?

gopnik1994

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

Ivan8209

Вспомнилось.
Тут недавно решили вдруг ни с того ни с сего провести
антивирусную проверку на виндовой станции.
DrWeb откопал в завалах диска и разгзипал тару,
где были сложены мои батники времён жизни на МС ДОС 7.
Ну, поругался на "Probably .BAT virus"-ы.
Мы порадовались.
---
...Я работаю антинаучным аферистом...

evgen5555

МС ДОС 7
MS-DOS окончил свое существование на версии 6.22, как я помню.

Bird_V

Плохо помнишь Как автономная система - да, на версии 6.22.
А вот дос, который "идёт" с Win 98 - это и есть 7й

Chupa

> А вот дос, который "идёт" с Win 98 - это и есть 7й
7.10 вроде

bleyman

А вот если в винде шагу нельзя ступить без обеспечения сторонних
производителей, то это показатель.

WSH микрософтовский.
Писать можно на JScript или VBScript. Стандартные классы разрюхиваются при помощи мсдна за полчаса.

Ivan8209

Про пользу QBASIC-а я знаю непонаслышке.
Можно писать всё на входном языке отладчика DEBUG.
И такое делал. Было дело.
---
Q21: что такое Win2k?
A21: состема.

bleyman

Ты ничего не попутал?
Мб темой ошибся?
JScript - прекрасный язык!

Ivan8209

С возможностью писать однострочники?
Это, скорее, к перлам.
Там поди, ещё и вызывать какую-то оболочку надо, не так ли?
С помощью find, sed/awk, xargs и sh можно творить чудеса.
Язык программирования общего назначения, тем более алголоид,
плохо подходит в качестве скриптового.
---
...Я работаю антинаучным аферистом...

bleyman

Ты вообще о чем? Зачем ты постишь на форум результат своего общения с призраком КуБейсика в своей голове? Если ты не знаешь что такое WSH - лучше промолчи.

Ivan8209

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

Dasar

> Микрософт опоздал.
хм.
Javascript в винде есть, наверное, уже лет 10.

Ivan8209

Javascript --- это такой QBASIC, только чуть поновее.
Ты различаешь языки общего назначения и скриптовые, то есть те,
которые предназначены для взаимодействия оператора с машиной?
---
...Я работаю антинаучным аферистом...

Dasar

почему javascript - это не скрипт, в твоем понимании?

bleyman

почему javascript - это не скрипт, в твоем понимании?

Он не знает что такое жаваскрипт, забей.

Ivan8209

Потому что он не предназначен для того, чтобы я запустил
интерпретатор и там набрал что-то навроде:


for i in чего-то; do это; самое; done


Интерактивности нет.
Оно ведь потребует какие-то классы объявлять или составлять ещё
какие-нибудь выражения с полной квалификацией. Так?
---
...Я работаю антинаучным афреистом...

bleyman

А зачем?
Жаваскрипт неинтерактивен, да.
Зато я вот тут только что набрал в cmd строчку for /? и немножко прихуел. cmd интерактивен.
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
would parse each line in myfile.txt, ignoring lines that begin with
a semicolon, passing the 2nd and 3rd token from each line to the for
body, with tokens delimited by commas and/or spaces.

=)

Ivan8209

Зачем интерактивность?
Я что, по-твоему, на каждый чих должен буду писать новую
программу, собирать её и так далее?
Да, они там много чего понаприкручивали в W2k.
Хотя и это их не спасает.
---
Q21: что такое Win2k?
A21: состема.
P. S. На awk-е это же самое выглядит значительно проще:


awk -F '[, ]+' '/^[^;]/ {print $2,$3}' your-file.txt


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

evgen5555


awk -F '[, ]+' '/^[^;]/ {print $2,$3}' your-file.txt

Это в каком именно шеле так выглядит?

bleyman

>Я что, по-твоему, на каждый чих должен буду писать новую
>программу, собирать её и так далее?
Чего-чего ты со скриптом делать собираешься? =)
>P. S. На awk-е это же самое выглядит значительно проще
ИМХО одинаково выглядит. Ну то есть регекспы по определению не могут выглядеть просто, но хуй с ними. А ваще я это чисто в качестве примера привел, что цмд в новых виндах крайне наворочен, но об этом мало кто знает. Один знакомый совсем недавно весьма охуел, когда я ему сказал что еще досовский комманд.ком держал пайпы и условное выполнение (которое &&) - то есть тот самый конвеер в полном объеме.
Я знаю. Вам кто-то в детстве сказал, что в винде "интуитивно понятный интерфейс". А что кроме этого интуитивно понятного интерфейса, позволяющего одним дабл-кликом перейти в подпапочку, есть еще и чудовищное количество разных всяких штук вам сказать забыли.
Поэтому вы очень удивляетесь, что чтобы "сделать вот так, вот так, а потом вот так вот с этим" надо написать скрипт.

Ivan8209

/bin/sh
---
...Я работаю антинаучным аферистом...

Ivan8209

Досовский шелл плохо держал пайпы.
В каком именно ДОС ты видел && или что ты подразумеваешь?
ERRORLEVEL не в счёт.
Тоже больно хреновый.
Я не утверждаю, что в ДОС нельзя было сделать чего-то подобного.
Вот только какими это достигалось усилиями, хорошо можно видеть
на примере сообщений ДрВеба, принявшего не самые сложные батники
за вирусы.
Заметь, что разрыв между "интуитивно понятным" интерфейсом и
тем, который допускает автоматизацию, такая, что они по сути
полностью разделены. Между ними очень резкий переход.
И это не самым лучшим способом сказывается на автоматизации в целом.
---
Q21: что такое Win2k?
A21: состема.

bleyman

В 98-ой винде уже точно были &&. Может быть меня глючит, конечно...
Интуитивно понятный интерфейс может быть у проги для ведения календарика месячных. При попытке поднять что-нибудь более сложное интуитивный интерфейс накрывается песдой. Поэтому употреблять словосочетание "интуитивный интерфейс" по отношению к винде в целом вообще не вполне корректно - ее интерфейс интуитивен настолько, насколько это возможно, а переименовывать файлы толпами по каким-то правилам _интуитивно_ невозможно в принципе. Так что давай не будем про интуитивный интерфейс, ладно?
Сообщения ДрВеба не имеют никакого отношения к батникам, точно тебе говорю. То что разработчики ДрВеба любой мало-мальски сложный батник считали возможным вирём - это их личная паранойя.
Опять повторюсь: достаточная интуитивность интерфейса винды, ворда етс. приводит к тому, что многие люди просто не знают, что помимо тыканий мышой со всем этим софтом можно общаться еще как-то. Можно.
Да, когда-то давно я видел довольно пёздый текстик на тему различия виндовс-вэй и юникс-вэй, в котором не без оснований заявлялось, что адепт юникс-вэя напишет консольную прогу а потом к ней графический интерфейс (может быть а сторонник виндовс-вэй напишет графический интерфейс, а потом прикрутит скриптовый язык и комманд-лайн интерфейс (может быть).
Сейчас ситуация с виндовс-вэем, насколько я могу судить, немножко меняется. И тот взгляд на виндовс-вэй немножко совершенно устарел. Причем уже довольно давно. Сейчас модно наваять библиотечку с каким-нить йебанутым доступом при помощи КОМ, а потом к ней интерфейс, а особенно модно - веб интерфейс =).
Так вот, в результате в мане по тому же WSH приводится пример, когда из скрипта вызывается "кусочек ворда", который делает какую-то херню типа спеллчека для куска текста. Вот такое очень сложно сделать в юниховой парадигме взаимодействия через коммандлайн. То есть не то чтобы очень сложно, но выглядеть это будет как-то искуственно. Поэтому, наверное, в современном виндовс-вэе присутствует некоторая объектная ориентированность, которая не может гармонично выглядеть записанной в одну строчку. Поэтому для WSH нету интерактивного интерпретатора. Поэтому в некотором смысле WSH еще менее интуитивный чем командная строка - зато в результате это практически полноценный ОО язык. Точнее, рантайм для жава- и вб-скриптов.

mirt1971

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

bleyman

Видишь ли, ворд не является какой-то особенной прогой под винду. По идее ты можешь из ЖСкрипта вызвать таким образом функцию _любого_ зарегенного ком-класса. ИМХО это несколько более мазевый способ экспорта функциональности чем комманд-лайн интерфейсы. Более удобный с программерской точки зрения.
Наверное даже где-то есть написанная херня, которая позволяет таки интерактивно общацца с WSH. А мб и нет, никогда не интересовался.

Marinavo_0507

спеллчекер - интересный пример на самом деле
запускать ispell не всегда хорошо:
например, если редактируется документ для TeX, то нужно при проверке пропускать управляющие команды, и игрорировать мягкие переносы
если редактируется XML-документ, то нужно проверять только PCDATA или как там оно называется
ispell всего этого не умеет, и засовывать внутрь него соотв. функциональность - не unix way
хотелось бы посмотреть, как в microsoft way используют вордовый спеллчекер для подобных задач
есть ли примеры кода?

mirt1971

Ну вот к примеру, что такое есть и в unix: http://linuxgazette.net/issue97/oregan2.html

Ivan8209

Я их там не видел. Может, плохо искал?
Сложно сказать.
Я считаю, что язык ipfw понятен без особого упора на чтение описания.
В отличие от языка iptables. Для сравнения.
Я не знаю, чего очень сложного в связке pipe-fork-exec.
Тем более, что есть уже наполовину готовый popen.
Кроме того, ведь пускает Емакс каким-то образом процессы в
отдельном буфере? Псевдотерминалы, скорее всего, открывает.
Так что я бы не сказал, что это особо сложная задача.
---
...Я работаю антинаучным аферистом...

Dasar

> если редактируется XML-документ, то нужно проверять только PCDATA или как там оно называется
будет что-то такое:


foreach (XmlNode node in doc.Select("//text"
{
spellChecker.Check(node.InnerText);
}


Если нужна интерактивщина, то что-то такое:


List<string> errors = new List<string>
foreach (XmlNode node in doc.Select("//text")
{
errors.AddRange(spellChecker.Check(node.InnerText;
}
listBox.DataSource = errors;

bleyman



var Word, Doc, Uncorrected, Corrected;
var wdDialogToolsSpellingAndGrammar = 828;
var wdDoNotSaveChanges = 0;
Uncorrected = "Helllo world!";
Word = new ActiveXObject("Word.Application");
Doc = Word.Documents.Add;
Word.Selection.Text = Uncorrected;
Word.Dialogs(wdDialogToolsSpellingAndGrammar).Show;
if (Word.Selection.Text.length != 1)
Corrected = Word.Selection.Text;
else
Corrected = Uncorrected;
Doc.Close(wdDoNotSaveChanges);
Word.Quit;


Вот.
Честно говоря я не особо рюхаю что там глубже происходит. Ну то есть сам никогда приложения экспортящие активХ функциональность не писал. Но по-моему это круто. В смысле, что если вышеприведенный код засунуть в файлик myscript.js и даблкликнуть, то все заработает.
У меня, правда, почему-то не работает. Диалог не показывается.

bleyman

А! У меня просто спеллчекера в ворде нету =)

Marinavo_0507

Это неинтересно: отдельный запуск чекера для каждого кусочка текста.
Такой тупой чекер незачем и обсуждать, тут специфика Пути не проявляется.
Вопросы такие:
Воспримет ли <link target="some shit">вордовый грамматический анализатор</link> вот это предложение, которое есть well-formed XML, <strong>как единое целое,</strong> например. Ну то есть, PCDATA - это же дырявый текст.
Вернёт ли результат в такой форме, чтобы XML-редактор понял, какую часть текста нужно подсветить для пользователя?
Есть ли рабочие примеры кода? Или это только теоретически можно заюзать вордовую проверялку для чего-то сложнее plain text?

bleyman

Согласись, что обращение к функциям (как в примере выше причем даже не просто обращение к функциям, а полноценная ООП модель с точки зрения программера все-таки удобнее чем общение через текстовую консоль. Правда, за нее приходится платить отсутствием интерактивности. И то - хз. Приблуду для запуска ЖСкрипта в интеракивном режиме, я думаю, не очень долго писать, и она, возможно, есть.

Marinavo_0507

Ты тоже проверяешь plain text. Это и с ispell немудрено.
А я хочу дырявый текст, как XML или TeX-исходник.

Ivan8209

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

Dasar

> Общение через консоль легко подводится под обычные и привычные
потоки данных
если все-так хорошо с консолью, то почему постоянно идут треды про то, что в разных окружения скрипты работают по разному, про проблемы с кодировкой, про то, что если в пути будут пробелы, то ничего работать не будет и т.д.
ps
да, кстати, как через консоль одновременно пропихнуть текст, который содержит отрыки на русском, немецком, арабском и т.д.?
или unix-way приложения уже научились unicode поддерживать?

Ivan8209

Потому что писать надо уметь.
Нужные --- уже.
---
...Я работаю антинаучным аферистом...

bleyman

Общение через консоль легко подводится под обычные и привычные потоки данных
Видишь ли, "обычные потоки данных" иногда содержат разные интересные символы. Например, данные могут быть вообще бинарными, тогда придется с ними какой-нибудь ууенкод делать туда и обратно, причем два раза. Или они, например, будут содержать какой-нить условно-служебный символ типа кавычки, бэкслеша или процента. Очень большой простор для ошибок - не, я конечно помню, что настоящие программисты типа тебя ошибок вообще не делают, но блин. Передача плейн-текста мне как-то совершенно не нравится. Я сам и куча знакомых наступали на прекрасные грабли под названием "стандартный сишный препроцессор вывода в текстовый файл", который со _всеми_ символами работает нормально - кроме \n. То есть под виндой \n превращается в \r\n, а под никсом - наоборот (насколько я помню).
Еще очень забавная вещь под виндами (как под юнихами дело обстоит не в курсе) - формат чисел с плавающей точкой. Когда эта точка иногда оказывается на самом деле запятой.
Короче, если есть за тебя написанный работающий способ передать куда-нибудь массив флоатов, это очень приятно и позволяет избежать ненужного геморроя.
А вообще подобная система позволяет спокойно и без лишних изъебств организовывать _интеракивное_ взаимодействие со сторонним объектом.
Спеллчек - это хуйня. Вот представь что у тебя есть прога, предоставляющая типа как бы шелл на некоем устройстве. Чужая прога. В парадигме потоковой передачи данных тебе придется использовать некий протокол, который будет достаточно сложным - потому что нужно передавать команды, получать результаты, правильно сопоставлять результат с командой для которой этот результат, каким-то образом перехуячивать передаваемые данные так чтобы они не перепутались с командами, корректно обрабатывать ошибки передачи... И в результате получится что ты организовал RPC поверх потоков. А тут это уже сделано.

bleyman

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

Marinavo_0507

Похоже, кто-то придумал xmlrpc, руководствуясь примерно такими соображениями.
Но с тем, что спеллчекер - хуйня, не соглашусь, пока не увижу код.

evgen5555

ERRORLEVEL не в счёт.
Тоже больно хреновый.
Никсы, по-моему, от этого тоже никуда укатиться не смогли. Даже стандарта не разработали на exit(Ы).

bleyman

В смысле - код?
Ты хочешь увидеть функцию, которая разбивает хтмлку на фрагменты вида "плейн-текст" "всё остальное", после чего склеивает куски плейн-текста, передает их вордовому спеллчекеру, получает обратно, распихивает обратно по местам? Хз, наверное можно написать. По крайней мере если не склеивать куски а спеллчекать прямо кусками - точно можно. Еще может быть вордовый спеллчекер поддерживает какое-нибудь внутреннее форматирование. Не знаю. Мне лично совершенно не хочется с ним разбираться.
Я, собственно, пример со спеллчеком привел с единственной целью - продемонстрировать как легко и непринужденно мы получаем чужой объект Document, а потом с ним опять же легко и непринужденно работаем.

Marinavo_0507

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

Marinavo_0507

То есть я понимаю, что легко и непринуждённо получать доступ к объектам это круто и всё такое.
Но что такого чудесного получается в результате?
Я рискну выдвинуть такую теорию:
Все эти шняги - результат хитрой политики Microsoft.
Они берут какие-то свои внутренние библиотечки, используемые для интеграции Офиса,
и начинают рекламировать их как The Next Big Thing (tm).
В результате все остальные фирмы начинают это изучать по той части внутренней документации,
которая выложена. На это уходят силы опытных специалистов, в то время как в Microsoft продолжают инновации.
Поэтому они впереди, остальные сосут.
Но есть способ выбраться из западни - отбросить Microsoft Way, использовать открытый процесс.

bleyman

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

ЗЫ: Вот жёппой чую, что всякие разные макстоны и прочие веббраузеры-юзающие-движок-ИЕ используют этот самый движок ИЕ именно таким способом. Вот. Это я к тому, что возможности извратнуться над чужим компонентом очень широки.

bastii

COM, OLE - это красиво (хотя бы взять моникеры если еще учесть что этим технологиям лет 15. Мне вообще майкрософт нравиться тем, что не сидят на старых технологиях, а создают новые, которые решают определенные проблемы на качественно новом уровне. А то сидят некоторые на своем перенаправлении потоков ввода-вывода несколько десятков лет и думают, что ничего круче быть не может.

Marinavo_0507

Всё-таки это не совсем то.
Вот если бы был редактор, заточенный под XML или под TeX, с соответствующим набором фичей _и_ вордовым чекером в том же окошке.
Ну например, какой ценой можно привязать вордовый чекер к vim? Что-то вроде COM или OLE (фиг запомнишь отличия между
этими аббревиатурами!) vim под win32 уже поддерживает.
А так и я тебе покажу Mozilla с установленым плагином для спеллчекера, похожее окошко вылезает.
Или вот: http://hermitte.free.fr/vim/VS_help.html
Первое - не unix way. Второе - вроде да.

bleyman

Да блин! Какая разница!
Я говорил про виндовс-вэй а не про микрософт-вэй.
Что типа активХ компоненты предоставляющие много функциональности окружающим прогам - это добро. А утилитки жрущие и срущие текстом (ггг) это немножко устарело.
А что там микрософт продвигает - это хз. Но надо заметить, что в данный момент от них очень много пользы. Вот .НЕТ например. А в это время Сан отказывается открыть жава-компилятор (АФАИК).

Marinavo_0507

> Что типа активХ компоненты предоставляющие много функциональности окружающим прогам - это добро.
> А утилитки жрущие и срущие текстом (ггг) это немножко устарело.
Ну а я объяснил, почему такой твой взгляд, если ты разработчик, выгоден Microsoft и не выгоден тебе
> Вот .НЕТ например. А в это время Сан отказывается открыть жава-компилятор (АФАИК).
Не вижу повода противопоставлять. .net как платформа ничуть не более открыт, чем java.

bleyman

>> Что типа активХ компоненты предоставляющие много функциональности окружающим прогам - это добро.
>> А утилитки жрущие и срущие текстом (ггг) это немножко устарело.
>Ну а я объяснил, почему такой твой взгляд, если ты разработчик, выгоден Microsoft и не выгоден тебе
гг. Ты объяснил почему M$ выгодно делать открытую функциональность у эксплорера и ворда. А технология активХ сама по себе выгодна всем, ибо песдата. И я, наверное, объяснил почему.
Да, а .НЕТ вообще-то полностью открытый, насколько я знаю. Недалеко от меня лежит прекрасная книжка про илАсм, так вот, там все расписано вплоть до формата PE. С константами. И вообще - моно же делают вроде.

Marinavo_0507

> Да, а .НЕТ вообще-то полностью открытый, насколько я знаю. Недалеко от меня лежит прекрасная книжка про илАсм, так вот, там все расписано вплоть до
> формата PE. С константами.
Формат байт-кода java тоже открыт.
> И вообще - моно же делают вроде.
kaffe делают сколько лет уж...
Самое главное - стандартная библиотека классов (не помню, какое модное слово придумали MS, чтобы по-новому назвать это) - закрыта.
То есть привязана к windows, под mono не заработает.
Никакой разницы, кроме того, что .Net как платформа (а только как виртуальная машина) привязана к windows.

Marinavo_0507

> А технология активХ сама по себе выгодна всем, ибо песдата. И я, наверное, объяснил почему.
Песдато - это ты сказал.
А вот какие такие рулезы доступны, которых нельзя получить более простым путём, примера не привёл.
Но всё равно - кажущаяся красота притягивает.
Маза на это и расчёт пиарщиков из MS.

bastii

BCL (Base Class Library) называется
В отличии от джавы .НЕТ разрабатывался в первую очередь для того, что жизнь стала легче под виндой, поэтому неудивительно что там зашито очень много спецефичных для винды вещей.
А вообще мне интересно, как будут смотреться юниксы лет так через 5, когда под виндой обретут реальность технологии которые скрываются под словами: ClickOne, Monad, WinFX (тут этих слов немерено WinFS, ... За последние годы майкрософт очень резво набирает оботоры. Взять хотя бы ту же Visual Studio, SQL Server, ....

Marinavo_0507

> что там зашито очень много спецефичных для винды вещей
например?
> ClickOne
хм
попытка добиться такого же удобного механизма обновлений, как в Debian?
> WinFX (тут этих слов немерено)
всего лишь новое API взамен гнилого Win32
чему радоваться, непонятно
разве только тому, что придётся переписывать свои программы,
вместо того чтобы править баги или добавлять функциональность
> WinFS
про это я уже высказался: 10 лет уже в стадии Real Soon Now
Vaporware, иначе говоря
> Monad
лень искать, что за фигня

Marinavo_0507

> Monad
Ах да, вспомнил. Читал про эту штуку.
Что я могу сказать. Идея лежит на поверхности. Лично я подумал про такое в раннем детстве,
как только прочитал про ООП. (Командную строку к тому времени я уже видел).
И мне кажется я знаю, почему до сих пор не реализовано.
Потому что, при кажущейся красоте идеи, использовать это по назначению, т.е. как шелл,
было бы неудобно - много писать слишком. Претензии ровно те же, что и к COM, только ещё сильнее.
Конечно, если MS заставит использовать это, будут учиться использовать.
И быстро сделают Open Source аналог, копировать разработки MS много желающих находится.

bastii

Ну если на это смотреть с уровня news.com.com, то оно конечно так. Не знаю что там за апдейти в Debian, но вроде важную составляющую функциональности ClickOne (безопасно деплоить проги из непроверенных источников) пока под Linux технически реализовать сложно. На сколько я знаю CAS пока в Mono не реализовали.
WinFX - это качественно новый API. Прогать на WinFX на порядок продуктивнее чем на Win32, MFC (да и Qt не сильно лучше).
А Monad это как раз то чего винде так давно не хватало, это аналог bash (хотя реализация интереснее).
Можно конечно не верить, что WinFS увидет свет, но у меня есть все основания в это верить.

Marinavo_0507

> Не знаю что там за апдейти в Debian, но вроде важную составляющую функциональности ClickOne (безопасно деплоить проги из непроверенных источников)
> пока под Linux технически реализовать сложно. На сколько я знаю CAS пока в Mono не реализовали.
Погуглил ещё чуть-чуть про CAS. Подход к обеспечению безопасности очень похож на SELinux.
Сейчас SELinux сложновато пока использовать, я думаю, примерно через год это станет обычным делом.

bleyman

Насчет "стандартной библиотеки классов".
Есть такая замечательная прога - .NET Reflector. А к ней замечательнейший плагин - fileGenerator. В принципе ее можно напустить даже на mscorlib, и получить как-бы сурцы, причем вполне вменяемые (потому что херятся только имена локальных переменных и комментарии - кроме тех, которые /// и сохраняются в хмлке). Правда есть два "но". Во-первых винформы в полном составе завязаны на вин32апи. По понятным причинам. Половина винформовских функций - это просто врапперы. Во-вторых вроде как я там видел что-то типа внутренних инлайнов... Хз, не удалось рефлектору вытащить какую-то функцию (не помню какую мне показалось что она там просто на каком-то низком уровне написана из соображений скорости. Но я нифига не помню что именно это было, так что точно сказать не могу.
А моно кстати уже 1.05 (production) & 1.13 (development) релизнули. Щаз они активно фишки С# 2.0 добавляют. Насколько я понял, АДО и АСП у них портированы в полном объеме, а для графики - GNOME и GLIDE. Вот. Я даже задумался - а не заценить ли, вдруг реально клево...

bastii

они вроде сейчас winform реализуют, а то до этого через wine работали

bastii

ма как CAS реализовать без проверяемого кода, т.е. виртуальная машина нужна так или иначе

Marinavo_0507

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

bleyman

Можно еще раз более внятно? Где утопия, кто утопия, что за нативная функция, на чем не особо много приложений написано? НА ЖАВЕ НЕ ОСОБО МНОГО ПРИЛОЖЕНИЙ НАПИСАНО?

bastii

осталость SELinux с Debian объединить, тогда будет Linux с ClickOne

Marinavo_0507

Утопия - реализовывать механизмы безопасности на уровне виртуальной машины.
Потому что native-функции будут иметь возможность нарушить политику безопасности, обходя монитор обращений.
> НА ЖАВЕ НЕ ОСОБО МНОГО ПРИЛОЖЕНИЙ НАПИСАНО?
Ну да, особенно если не считать те, в которых есть native-методы.
У меня на тачке нет ни одного приложения на Java, и зачем они могут понадобиться, не знаю.

bleyman

Утопия - реализовывать механизмы безопасности на уровне виртуальной машины.
Потому что native-функции будут иметь возможность нарушить политику безопасности, обходя монитор обращений.

А почему утопия-то? Я вот на шарпе пишу, и я буду только рад, когда у меня все общение с виндой будет без использования анманагед функций. А щаз я эти самые функции использую по одной единственной причине - нету соответствующей либы с врапперами =)
А вот написать грамотные неглючащие врапперы наверное все-таки возможно. Хотя бы частично.
Вот, а анманагед длл запускать на виртуальных машинах!
А директХ интегрировать в ядро. И будет щастье.
Да, а по поводу Жавы - это лол. Точно.
Вот я у Мадкроза спросил. Он ответил Microsoft Content Management Server 2002 частично, матлаб, еще я тут же вспомнил ИДЕА и эклипс, а потом Мадкроз сказал, что наверное сан, оракл и ибм половину своего софта пишут на жаве, но он корпоративный, поэтому у тебя его на машЫне нет. Еще у нас куча знакомых пишет на жаве. И вообще ЛОЛ. Как бы наличие трех стандартных полноценных кроссплатформенных библиотек визуальных компонентов (типа оконные подсистемы) заставляет предположить что это неспроста. Кстати, как ты определяешь наличие в приложении нативного кода? И что вообще считать нативным кодом?

mirt1971

Он ответил Microsoft Content Management Server 2002 частично, матлаб, еще я тут же вспомнил ИДЕА и эклипс
Это как много софта... Да это капля в море! А домыслы про корпоративный софт - это всего лишь домыслы.

mirt1971

PS: жаба - всего лишь нишевое решение... Вообще не понимаю кому она нужна... Сама по себе она - отстойный недоязычок с ублюдочным синтаксисом(недос++). Единственный плюс - кроссплатформенность. Но я не готов платить за это такую цену(тормоза + куча ресурсов). Я лучше буду использовать нормальные кроссплатформенные библиотеки. А жаба идет лесом.

Unna



'RenameFiles.vbs
Option Explicit
Dim oDlg,oF,oFile,fso,oFolder,oFiles,args,path,i,folder
Set args = WScript.Arguments
If args.Count = 1 Then
path = args(0)
Else
path =""
End If
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(path) Then
Set oDlg = WScript.CreateObject("Shell.Application")
Set oF=oDlg.BrowseForFolder(0,"xxx",&H0001,17)
path=Left(Right(oF.ParentFolder,32) &"\"& oF.Title
End If
folder = Right(path,Len(path)-InstrRev(path,"\",-1,vbTextCompare
Set oFolder = fso.GetFolder(path)
Set oFiles = oFolder.Files
i = 1
For Each oFile In oFiles
oFile.Name = folder & CStr(i)
i = i + 1
Next


можно запускать двумя путями: перетащив значок папки на этот файл
или просто запустив его

bleyman

Сама по себе она - отстойный недоязычок с ублюдочным синтаксисом(недос++).
Муа-ха-ха. В жаве прекрасный синтаксис. Гораздо лучше чем в с++. По крайней мере, нету "->" и "::". А так ты вообще жаву-то знаешь, дружОк?

Marinavo_0507

> Я вот на шарпе пишу, и я буду только рад, когда у меня все общение с виндой будет без использования анманагед функций.
Вот когда будет - посмотрим, что у получившейся фигни будет с безопасностью.
> А вот написать грамотные неглючащие врапперы наверное все-таки возможно. Хотя бы частично.
10000 native-фунцкий за врапперами, необходимые приложению, означают, что попытка
обеспечить безопасное выполнение этого приложения с помощью монитора обращений в виртуальной машине
потерпела фиаско.
> Вот, а анманагед длл запускать на виртуальных машинах!
В смысле, в отдельных виртуальных машинах?
И передавать им параметры через RPC?
Надеюсь, это шутка.
Про Java - ну если 1.5 приложения, не считая средств разработки для java же,
считать огромным количеством софта, что уж тут обсуждать...

Ivan8209

> и начинают рекламировать их как The Next Big Thing (tm).
Где-то я это уже видел.
"Joel on Software?"
---
...Я работаю антинаучным аферистом...

Marinavo_0507

Да, по мотивам.

bobby

выложить что ли весь список софта, который написан на Java вообще?
у меня его нет, простите.

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

bleyman

SourceForge.net Java foundry (http://java.foundries.sourceforge.net/repository.pl?section=java&op=list)
Embedded Software
*The New WORLD - MMORPG - http://sourceforge.net/projects/billybossmmorpg/
*Caller Id Presentation System - Caller Id Presentation System
*mp3elf - http://sourceforge.net/projects/mp3elf
Java and Databases
*The New WORLD - MMORPG - http://sourceforge.net/projects/billybossmmorpg/
*Compiere ERP & CRM Business Solution - Compiere ERP & CRM Business Solution
*The Open For Business Project - http://sourceforge.net/projects/ofbiz
*JukeX - http://sourceforge.net/projects/jukex

Java Desktop Applications
*Caller Id Presentation System - Caller Id Presentation System
*Jext - Jext
*IDLE - http://sourceforge.net/projects/idle
*OCD - http://ocd.sourceforge.net
*The Freenet Project - The Freenet Project
*CatChat - http://catchat.sourceforge.net/
*JukeX - http://sourceforge.net/projects/jukex
*Hunt For Gold - http://sourceforge.net/projects/huntforgold

Java Development Tools
*JBoss JBuilder Open Tool - JBoss JBuilder Open Tool
*JFreeChart - JFreeChart
*Zaval Java Resource Editor - http://sourceforge.net/projects/zaval0002/
*Jext - Jext
*The Open For Business Project - http://sourceforge.net/projects/ofbiz
*iText, a JAVA-PDF library - iText, a JAVA-PDF library
*NetBeans - NetBeans
*netbyte - netbyte

Java Middleware
*JBoss JBuilder Open Tool - JBoss JBuilder Open Tool
*jboss.org - jboss.org
*The Freenet Project - The Freenet Project
*The Open For Business Project - http://sourceforge.net/projects/ofbiz
*dom4j: flexible XML framework for Java - dom4j: flexible XML framework for Java
*JukeX - http://sourceforge.net/projects/jukex
*m-e-c eagle - B2B integration software - m-e-c eagle - B2B integration software
*Distributed Storage Leasing (DSL) - http://sourceforge.net/projects/dsl
*NetBeans - NetBeans

Java Servlet Technology
*JPublish - JPublish
*Tapestry - Tapestry
*jboss.org - jboss.org
*The New WORLD - MMORPG - http://sourceforge.net/projects/billybossmmorpg/
*Jetty - Java HTTP Servlet Server - Jetty - Java HTTP Servlet Server
*The Open For Business Project - http://sourceforge.net/projects/ofbiz
*WebZone - WebZone

Java Web Tools
*JPublish - JPublish
*Tapestry - Tapestry
*Jetty - Java HTTP Servlet Server - Jetty - Java HTTP Servlet Server
*Compiere ERP & CRM Business Solution - Compiere ERP & CRM Business Solution
*The Open For Business Project - http://sourceforge.net/projects/ofbiz
*WebOS (xtremesuite) - WebOS (xtremesuite)

Java with XML
*OCD - http://ocd.sourceforge.net
*The New WORLD - MMORPG - http://sourceforge.net/projects/billybossmmorpg/
*The Open For Business Project - http://sourceforge.net/projects/ofbiz
*dom4j: flexible XML framework for Java - dom4j: flexible XML framework for Java
*Piccolo XML Parser for Java - http://piccolo.sourceforge.net
*m-e-c eagle - B2B integration software - m-e-c eagle - B2B integration software
*Picture Metadata Toolkit - Picture Metadata Toolkit

Jini Technology
*The New WORLD - MMORPG - http://sourceforge.net/projects/billybossmmorpg/
*WebOS (xtremesuite) - WebOS (xtremesuite)
*jAugment - jAugment
*Java Jini Tools - Java Jini Tools

JIT Compiling
*Jikes - JIT Compiler - Jikes - JIT Compiler

Ivan8209

А что, уже разучились передавать двоичные данные без кодирования?
В виндах всё настолько плохо?
Твои грабли с сишными библиотеками показывают лишь качество этих
самых библиотек.
imapd за "чужую прогу" сойдёт?
smtpd? telnetd?
Работают ведь как-то.
---
...Я работаю антинаучным аферистом...

Marinavo_0507

> скажи, сколько надо софта (в штуках чтобы ты понял, что на Java много написано?
мы здесь говорим в контексте обеспечения безопасности на уровне виртуальной машины
при таком подходе каждая native-функция является доверенным компонентом, в том смысле,
что она имеет возможность нарушить полититику безопасности
понимаешь, о чём я?
надо не софт на Java считать в штуках, а используемые native-приложения и функции
вот когда их можно будет сосчитать в штуках, тогда можно будет сказать,
что механизмы безопасности разумно разместить в виртуальной машине

evgen5555

Генеральный вопрос: а зачем нужно кодировать двоичные данные?

bobby

AudioScrobbler.
http://iammoving.com/ - делал один знакомый человек, он даже на форуме есть (точно помню, что он использовал PHP с Java). Вот вы все можете точно определить, была или не была тут использована Java? Если нет, с чего бы вам думать, что на сотнях [тысячах] других веб-проектов она не юзалась?
ну, это из разряда программистского юмора, скорее.
Oracle Application Server 10g - точно ни в чем не уверен, но слова Java и J2EE там мелькают обильно!
влом выбирать отсюда правильные ссылки... в определенном смысле, они все там правильные

bobby

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

bleyman

А это я просто серч по сурсфоржу сделал. Первые 10 по активности результатов.
Project Name Description Files Activity %
Azureus - BitTorrent Client Azureus is a powerful, full-featured, cross-platform java BitTorrent client. 100.00%
FCKeditor This HTML editor (DHTML editor for ASP, ASP.NET, ColdFusion, PHP and JavaScript brings to the web many of the powerful functionalities of known desktop editors like Word. It works with Mozilla, Netscape and IE. 99.99%
OpenWFE OpenWFE is an open source java workflow engine. It is a complete Business Process Management suite, with 4 components : an engine, a worklist, a webclient and a reactor (host for automatic agents). It can also be used behind the scene. 99.91%
JasperReports Free Java reporting library. XML report templates are used to generate ready to print documents using data from customizable data sources, including JDBC. The output can be delivered to the screen, printer, or stored in PDF, HTML, XLS, CSV and XML format 99.90%
JavaHMO TiVo HMO Server JavaHMO is a media server for the Home Media Option (HMO) from TiVo® implemented in the Java programming language. 99.78%
iReport-Designer for JasperReports iReport is a visual reporting tool based on JasperReports written in 100% pure java. You can manage charts, images, subreports,... Data can be retrived using JDBC, TableModels, JavaBeans, XML,...It supports output in PDF,XML,XLS,CSV,HTML,Java2D,... 99.77%
PMD PMD is a Java source code analyzer. It finds unused variables, empty catch blocks, unnecessary object creation, and so forth. 99.75%
hipergate Intranet CRM, sales automation, customer service, email marketing, content management, bug tracker, project manager, groupware, webmail, calendar, forums, file sharing, directory. Based on Java /JSP for PostgreSQL, Oracle, SQL Server. 99.74%
BORG Calendar BORG is a calendar and task tracking system written in Java. The calendar provides a nice month view, month-print, email reminders, popup reminders and to do list. The task tracker tracks issues through various states. 99.72%
RSSOwl | RSS / RDF / Atom Newsreader RSSOwl is a RSS / RDF / Atom Newsreader written in Java using SWT as fast graphic library. Read News in a tabfolder, save favorites in categories, Export to PDF / RTF / HTML / OPML, Import Feeds from OPML, perform fulltext-search, use internal browser 99.68%
Notepad++ Notepad++ is a source editor (c/c++/java/html/xml/php/js/makefile/asp/VB/SQL/ObjC/Perl/Python/CSS...) written in C++ with the win32 API (without MFC strictly). The aim of Notepad++ is to offer a small and efficient binary with a totally customizable GUI 99.67%
Tyrant - Java Roguelike Tyrant is a graphical roguelike fantasy adventure game. It features intricate randomly generated landscapes, towns and dungeons. It is written in Java with a highly extensible game engine. 99.66%
MegaMek MegaMek is a networked Java clone of BattleTech, a turn-based sci-fi boardgame for 2+ players. Fight using giant robots, tanks, and/or infantry on a hex-based map. 99.64%
HSQL Database Engine HSQLDB is a relational database engine written in Java, with a JDBC driver, supporting a subset of ANSI-92 SQL. It offers a small (about 100k fast database engine which offers both in memory and disk based tables. This product includes Hypersonic SQL 99.64%
JBoss.org The JBoss/Server is the leading Open Source, standards-compliant, J2EE based application server implemented in 100% Pure Java 99.63%
jBpm.org - java Business Process Mgmt jBpm is a WorkFlow Management System. Business processes must be expressed in process archives in a simple and powerfull language. Users or systems perform single steps of the process. jBpm maintains the state, logs and performs all automated actions. 99.58%
Mantaray A fully distributed peer-to-peer serverless communication and messaging solution, 100% pure Java, supports JMS & RMI APIs, integrates with WebLogic & WebSphere. Provides guaranteed delivery, security, and transactions. Supports TCP, UDP & SSL transports. 99.57%
GanttProject Ganttproject lets you plan projects using a Gantt chart. It is written in Java. GanttProject use a XML file format. It can export the project in HTML Web pages or PDF document (using XSLT) or image files. It support 21 languages. 99.50%
httpunit a Java library for the automatic stimulation and testing of web applications 99.50%
NHibernate A .NET port of the excellent Java Hibernate (http://www.hibernate.org) relational persistence tool. 99.45%
PDFBox PDFBox is a Java PDF Library. This project will allow access to all of the components in a PDF document. More PDF manipulation features will be added as the project matures. This ships with a utility to take a PDF document and output a text file. 99.44%
Java Universal Network/Graph Framework JUNG provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network. 99.41%
PCGen :: An RPG Character Generator PCGen is a Java role-playing game character generator and maintenance program. All datafiles are ASCII so they can be modified by users, and are available through the pcgendm project. An XML conversion is underway. 99.39%
TinyMCE TinyMCE is a platform independent webbased Javascript HTML WYSIWYG editor control, developed in JavaScript/ECMAScript and it's main features include theme/template support, language support and plugin extentions. Works in Mozilla, Firefox and MSIE 99.37%
open ArchitectureWare A suite of tools and components assisting with model driven software development built upon a modular MDA/MDD generator framework implemented in Java(TM) supporting arbitrary import (design) formats, meta models, and output (code) formats. 99.34%
мы здесь говорим в контексте обеспечения безопасности на уровне виртуальной машины
при таком подходе каждая native-функция является доверенным компонентом, в том смысле,
что она имеет возможность нарушить полититику безопасности
Блин, я ж сказал. Ядро ОС, естественно, нужно писАть на чем-то низкоуровневом. Функции ОС я бы не стал считать такой уж страшной брешью в безопасности. Ну то есть их по любому нужно писАть так, чтобы невозможно было все наебнуть, их и щаз так пишут (пытаются). Для манагед приложения еще нужно будет дописать автоматическую проверку того, что АПИ записывающая что-нить в предоставленный юзером массив не вылезет за границы. Это не очень сложно.
А писать приложение наполовину манагед а наполовину нативным естественно не стоит. Разве что эти половины достаточно разделены чтобы безопасный маршаллинг данных между ними не сжирал слишком много времени.
Вообще нативный код нужен только если ты хочешь написать что-нить жутко быстрое, или твоя платформа не предоставляет средств для вызова специфической функции. Вот.
>> Вот, а анманагед длл запускать на виртуальн

bleyman

smtpd? telnetd?
Работают ведь как-то.

Да. Работают. Я даже сказал как. Реализуют RPC поверх потоков данных, в более или менее полном объеме. Зачем писАть для своей проги реализацию этого самому - я не очень понимаю. Если ты юзаешь либину которая это позволяет делать (тут упоминали что-то под названием xmlrpc) - молодец. Но у тебя по-прежнему остается возможность где-нить наебнуццо (хотя теоретически ты можешь написать гипотетическую прогу без ошибок). Поэтому язык, в котором ООП модель РПЦ фактически встроена - это добро.

bleyman

А что, уже разучились передавать двоичные данные без кодирования?
Муа-ха-ха. Я этой фразы как-то даже и не заметил =)
А что, уже научились?
Или обкладывание данных 4711 дохуябайтными хедерами и контрольными суммами везде где только можно кодированием не считается?

Marinavo_0507

> Ядро ОС, естественно, нужно писАть на чем-то низкоуровневом.
> Функции ОС я бы не стал считать такой уж страшной брешью в безопасности.
Если их мало - то да.
А если их невозможно перечислить, и следовательно учесть риск, то всё очень плохо.
Среди функций ОС:
* оконный интерфейс
* 3d-графика
* криптографические функции
* мультимедиа-кодеки
* что-нибудь похожее на базу данных
То, что в голову пришло. Это куча библиотечных фунций, очень много кода, дыры в нём обязательно будут найдены.
Что из этого _уже_ _полностью_ реализовано в виде managed-кода?
Теперь: тут много говорят о том, как круто использовать компоненты от третьих производителей.
В какой срок их все перепишут полностью в managed-код?
На Java я писал немного 3-4 года назад, это отбило охоту заниматься этим в дальнейшем,
несмотря на то, что я слышал про многочисленные успехи позже.

bleyman

Дыры в ОС - это всегда плохо. Причем абсолютно пох - у тебя юзерская прога написАна на манагед коде или нативная - дыра в ОС может ее убить или compromise. Наличие managed кусков ОС уменьшает количество анманагед кода, следовательно - количество возможных ошибок. Наличие изначально встроенной рантайм для манагед юзерских приложений позволяет надеятся на ускорение их работы.
Ты вообще чего хочешь - технологии, позволяющей писать ОС без дырок? Так это к Контре, он вроде владеет Секретом Теоретического Написания Безглючного Кода.

Marinavo_0507

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

Ivan8209

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

Marinavo_0507

Позволю себе обратить внимание публики на ещё один косяк компонентной модели.
Представим себе гипотетическое торжество компонентного подхода.
Программа, которая использует кусочек AutoCAD для конструирования 3d-объекстов,
кусочек 3dmax для визуализации, кусочек PhotoShop для обработки 2d-графики,
ещё для звука и диаграмм кусочки чего-нибудь, и с помощью компонентов MS Office
сводит это в единый документ.
Как такую программу распространять? Сказать пользователю, что он должен купить и поставить
Office, Photoshop, 3DMax, AutoCAD? Это $$$$$ и много гемора.
В рамках Open Source такая модель может ещё прожить, но в области собственнического софта - получается, нереально.
А может быть, будет возможно заменить упомянутые продукты на менее мощные и дорогие, но
с сохранением работоспособности написанного кода? Я в это не верю, но вдруг у Microsoft какое-нибудь чудесное средство есть, а?

bleyman

Ок. Допустим есть прога на некоем языке без синтаксиса. Например, форте. И хочется ее как-нибудь подсвечивать. Соответсвенно есть некий кусок кода, который жрет текст (в аски еще ему можно указывать слова которые подсвечивать, а наружу он какает текстом в котором расставлены тэги. Ну то есть пример довольно притянут за уши, но идея в том, что в терминах ООП получается объект
class Parser
{
public string Parse(string s);
public void AddReservedWord(string s, int color);
}
А вызывается он так:
Юзер набил очередной кусок текста, мы вызвали Parse и вывели результат, потом сами пропарсили этот кусок, получили новые слова, добавили их: AddReservedWord, повторили наццать раз пока юзер не устал. Пример, повторюсь, притянут за уши ибо влом думать. Но задача вполне корректная.
В ООП парадигме все ок. Вызываем и вызываем.
А вот когда ты пытаешься передать все это сквозь один поток, начинается полная жёпа. Либо ты сразу говоришь, что ты гонишь чисто бинарные данные, и каждый вызов функций превращаешь в хедер (в котором записана длина параметра, sequence number етс.) + данные + контрольная сумма. Но если у тебя поток типа условно текстовый (с escape sequences етс.) то тебе придется прилагать некие усилия по передаче бинарного файла через текстовый поток. Плюс полнейшая human unreadability.
Или же ты говоришь, что у тебя команда "вызвать функцию Parse" начинается с кодовой последовательности %Parse, но чтобы встретившаяся в парсящемся тексте такая же кодовая последовательность не переебала все нахх, все отдельные % мы будем заменять на %%. А в полученном результате заменять обратно. А если у нас поток не просто поток, а стандартный никсовый файловый поток, то нужно еще всякие ^D (как один символ) заменить на три символа %^D (например). А потом опять таки заменить обратно.
То есть как только требуется некоторая интерактивность, приходится строить над потоком обыкновенную RPC. Интерактивность - в смысле не настроил тулзу через параметры командной строки и переменные окружения, она тебе обработала кучу текста одинаковым образом и выдала результат, а как в вышеприведенном примере - послали кусочек текста, перенастроили немножко, послали еще кусочек. Причем перезапускать тулзу с новыми параметрами нельзя, потому что она у себя внутри дофига всего помнит, и у нас получатся просто чудовищные накладные расходы.
О! Я придумал вменяемый пример! Когда у тебя есть модуль архивации, который словарь не строит сам, а словарь ему дается снаружи. То есть он сожрал кусок текста, высрал пожатый кусок + некоторую статистику. Мы статистику как-нибудь хитро обработали, послали ему команду "поменяй словарь вот так!", послали следующий кусок текста.

helpall

Весь тред не читал, но хочу заметить вот что: в своё время когда разбирался с ipfw чуть не охуел, как там всё вывернуто сделано после логичного iptables.

bastii

У Oracle почти все тулы и утилиты на джаве

bastii

И все же проблема с native функциями в .НЕТ. Сегодня в .НЕт приложению, которые содержит unmanaged code, требуется Full Trust. Думаю, что так будет еще очень долго. С другой стороны думаю реализация ограничений, отслеживая системные вызовы не такая гибкая в итоге. А еще разница наверно в том, что нужно будет в рантайм чекать, что можно выполнять данный системный вызов. В .НЕТ это делается при загрузке наверно, ну уж точно не надо чекать каждый вызов.

Marinavo_0507

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

bastii

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

Marinavo_0507

Ну а есть про этот CAS какие-нибудь документы?
Я бы почитал, это моя область.

Ivan8209

"Если пойдёте по этой живописной дороге без определённой цели,
то вы заблудитесь," --- говорил Антон Палыч.
Ты закопался в те внутренности, когда пользователь ничего не
может сделать, окромя как написать новую программу.
Что в винде, что в униксе.
Вот только ОО парадигма и здесь плоха:
обмен сообщениями проще вызова чего-то там виртуального.
Кстати, прочитай, кем отрабатываются C-C, C-D, C-\ и прочие C-Z.
Узнаешь много нового.
---
...Я работаю антинаучным аферистом...

sergey_m

Ответ тебе и , т.к. у него сходные аргументы.
А утилитки жрущие и срущие текстом (ггг) это немножко устарело.
"Устарело" - это очень хуевый аргумент. Он не описывает никаких недостатков. Это примерно как Киря заявляет, что форум лучше ньюсов потому, что NNTP - очень старый протокол. Замечу, что не старее TCP/IP через которое работает форум.
Эти "устарелые" утилитки работают намного быстрее, чем COM объекты и прочая современная поебень. Сразу пресеку вопли про то, что на современных компах, мол, скорость на важна. Важна! Как говорится, size matters. К примеру, раз в месяц у меня на работе выставляются счета клиентам за трафик. Задача простая: по определенным фильтрам и признакам ссуммировать определенные столбцы простой электронной таблицы. Только с этой электронной таблицей не справится Excel. Объем компрессированных gzipом данных за месяц превышает 100 Гб. Я выполняю задачу исключительно "устарелыми" поточными утилитами.

sergey_m

SourceForge.net Java foundry
Бу-га-га! Теперь приведи цифру количества проектов на SourceForge. Что бы наглядно был виден процент приложений на джаве.

bastii

Не знаю, что посоветовать про CAS почитать. Можно посмотреть MSDN Online. Я вообще сейчас на джава пишу

sergey_m

smtpd? telnetd?
Работают ведь как-то.
Да. Работают. Я даже сказал как. Реализуют RPC поверх потоков данных, в более или менее полном объеме.
Не позорься. telnet, SMTP - протоколы взаимодействия абсолютно разных систем между собой. Они реализуют протоколы поверх потоков данных, а не вызовы удаленных процедур (RPC).

bastii

Ну про производительность СОМ лучше не надо -- это в умелых руках резвая лошадка. СОМ вовсе не обязательно в разных процессах создавать. И при определенных условиях СОМ вызовы -- это вызовы виртуальных методов с++.
Я конечно согласен, что если технологиям несколько десятков лет, то это ничего не значит. Хотя майкрософт обычно свои технологии начинают неустраивать раньше, чем они заканчивает свое развитие. Конечно можно сказать, что такие значит у майкрософт технологии. Но думаю тут просто существуют два подхода.
1) Вот есть одна очень старая, но привычная и родная технология. Правда здесь есть не большая проблема, и тут тоже, но если немного подправить, то вроде проблем и нет.
2) Да, есть у нас технология, когда придумывали все было круто, то сегодня где-то требования другие или что, но не все так хорошо с ней сегодня. Но вот если сделать сегодня такую технологию, что она будет лишена всех проблем старой и еще появятся новый возможности и т. д.
Понятно кто придерживается какого подхода. И вообщем-то понятно почему. Поэтому я слежу за развитием майкрософтской платформы, а не, скажем, за развитием linux.

bleyman

ты в курсе че такое foundry на сурсфорже вообще? =) Если ты найдешь как на сурсфорже поиметь статистику по языкам проектов, то тогда можно будет че-нить репрезентативное получить.
А насчет "устарело" - это я в смысле что в парадигме "утилитка обрабатывает поток" крайне хуйово реализуется интерактивность, про которую я уже писал. Эта интерактивность безусловно добро. Довольно часто она необходима. Естественно не всегда, но довольно часто. Но никто и не собираеццо отправлять старые добрые потоки (вместе с файлами, кстати =) ) на свалку истории.
2 контра:
>Ты закопался в те внутренности, когда пользователь ничего не
>может сделать, окромя как написать новую программу.
ну да, а мы тут что обсуждаем? По поводу голого шелла я полагаю мы уже пришли к общему мнению, что цмд вообще-то достаточно мощен для того, чтобы написАть такой скрипт на нем.
>обмен сообщениями проще вызова чего-то там виртуального.
ЛОЛ. Ничего ебанутей обмена сообщениями программеры всех стран начиная с Ады Лавлейс еще никогда не придумывали, ИМХО. Тебе, наверное, повезло, ты, наверное, никогда не писАл под винАпи кнопку, которая рисует надпись на себе произвольным цветом =) И это не винапи такое ебанутое, это парадигма обмена сообщениями.
Да, и посмотри - там был _полностью_ _работающий_ код, который "вызывал что-то там виртуальное" =) Прекрасный понятный код.

sergey_m

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

sergey_m

А насчет "устарело" - это я в смысле что в парадигме "утилитка обрабатывает поток" крайне хуйово реализуется интерактивность, про которую я уже писал. Эта интерактивность безусловно добро. Довольно часто она необходима.
То есть "устарело" == "не интерактивно"? Будем знать. Я не считаю что интерактивность безусловное добро. Нафиг она нужна, когда делается сумма по миллионам записей? Да пусть у меня экранчик будет не подвижен пока не будет результата, мне так удобнее. Когда я работаю через модем, то для меня излишняя интерактивность удаленных программ - зло.

Ivan8209

"Тому везёт, кто сам себя везёт."
Я избежал участи программирования под винапи.
А обмен сообщениями я делал.
Очень даже хорошо читаемые КА.
Всё хорошо бы в ООП, да только при объяснении, как оно работает,
почему-то привлекаются слова "послать сообщение."
---
...Я работаю антинаучным аферистом...

bleyman

Всё хорошо бы в ООП, да только при объяснении, как оно работает,
почему-то привлекаются слова "послать сообщение."
мб это кто-то тебе что-то неправильно как-то раз объяснил, и именно это на тебя так повлияло забавно? Я, честно говоря, не могу представить куда в описание ООП вставить слова "послать сообщение".
2глебиус: да-да-да! Я полностью согласен! А еще кстати многозадачность (особенно вытесняющая) редкостное говно - если создать 65536 процессов, то очень много времени тратится на переключение контекстов. Так что фпесду ее, будем юзать пакетную обработку везде.

bastii

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

Ivan8209

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

Ivan8209

Думаю, если бы ёксель мог правильно обработать подобные объёмы
данных за секунды, с удовольствием пользовался бы им,
а не скриптом.
---
...Я работаю...

sergey_m

2глебиус: да-да-да! Я полностью согласен! А еще кстати многозадачность (особенно вытесняющая) редкостное говно - если создать 65536 процессов, то очень много времени тратится на переключение контекстов. Так что фпесду ее, будем юзать пакетную обработку везде.
Я бы проигнорировал этот бред, если бы не было обращения ко мне. Что ты хотел сказать? Пожалуйста проясни.

bleyman

Это я к
То есть "устарело" == "не интерактивно"? Будем знать. Я не считаю что интерактивность безусловное добро. Нафиг она нужна, когда делается сумма по миллионам записей? Да пусть у меня экранчик будет не подвижен пока не будет результата, мне так удобнее. Когда я работаю через модем, то для меня излишняя интерактивность удаленных программ - зло.
Приведен пример электронной таблицы для обработки которой годятся только "устаревшие" потоковые методы, потому что памяти загрузить её в Excel ни у кого не хватит.

2 Контра: ок, пошел читать Буча. Хотя мне почему-то попадались описания ООП на основе процедурной ориентированности (типа структура + методы = инкапсуляция, затем прибавим наследование и полиморфизм и получится типа ООП). Буду расширять кругозор =)

Marinavo_0507

Поиск в microsoft.com по слову "clickone" не нашёл ничего.
Поиск по слову "cas" находит много чего про certificate authorities.
Кто вообще первый сказал, что планируется такая технология?

bastii

в гугле нашел
http://desigeek.com/weblog/amit/archive/2004/10/20/444.aspx
CAS = Code Access Security в .NET присутствует с версии 1.0, соответственно должна быть хорошо описана много где, в том числе и в MSDN

Dasar

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

Marinavo_0507

С чего ты взял, что я так считаю?

Dasar

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

Marinavo_0507

Если ты носишь очки, протри их.
Если нет, то наверное всё-таки надо поспать.
В данном случае я не говорил, что то, что я использую, лучше гипотетических аналогов.
Оставить комментарий
Имя или ник:
Комментарий: