Здравствуйте, adontz, Вы писали: A>Я не знаю откуда ты узнал об истинных намерениях моего сообщения. Главе "Междугородняя телепатия" книжечки "Чёрная магия в быту" (ISBN 5-9643-0042-1, 717 страниц, 346 цветных иллюстраий, твёрдый переплёт) я бы на твоём месте не очень доверял. Там есть несколько существенных опечаток в текстах заклинаний.
Гм. Боюсь показаться излишне педантичным, но указанный ISBN не вполне соответствует заявленной книге. Тема, конечно же, близка, но я очень сомневаюсь, что Влад часто сверяется с замечательной книгой А. Майорова для переписки с тобой. Указанную же книгу "Черная магия в быту" мне найти не удалось. Не мог бы ты привести ее ISBN? Только, умоляю, будь на этот раз повнимательнее, и не переписывай номер с первого, что лежит на столе.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Аннотация:
Статья рассказывает о создания универсального обработчика клавиатурных сокращений созданного при разработке Rsdn.Editor. Статья показывает, как с использованием возможностей .NET Framework создать высокопроизводительные декларативные решения тех или иных проблем. В частности, демонстрируется техника динамического создания делегатов.
Требуются знания C#.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Чистяков Влад aka VladD2, Вы писали:
Несколько замечаний Формат файла несколько странный и недостаточно гибкий. Обозначение "Shift | A" совершенно непривычно. Почему бы не сделать "Shift + A" тем более что всё равно парсить приходится самим? Это обозначение общепринято. Кроме того статья претендует на изложение "самого правильного и общего способа" хотя это на самом деле не так. Если взять пресловутый редактор Visual Studio, да и многие другие редакторы, то там употребляются не только комбинации клавиш, но и последовательности комбинаций. Та же Ctrl+R, Ctrl+W. А ведь ещё есть такие вещи как "Ctrl + Left Click", "Ctrl + Wheel up". Это реализуется несколько сложнее. Нужно делать конечный автомат (и не только тут, но об этом ниже).
Не как безусловный минус, но я бы оформил чтение файла настроек как конечный автомат. Мой опыт подсказывает, что этот способ сложнее реализуется, но приводит к гораздо более стабильному коду. Кстати говоря, строка
throw new ApplicationException("Неверный формат файла '" + mapFileName + "'");
неприятно удивила. Кидать исключения с не английским текстом сообщения не хорошо, потому что его не всегда можно прочесть. Да и не думаю, что у статьи найдутся читатели которые не смогут перевести Invalid file format или Unexpected tag. О том что сообщения совершенно не информативны и не говорят где именно ошибка долго распространятся не буду, просто отмечу.
Маленькая пометка. Скорее даже редактору, а не автору. Если уж приводится кусок кода, то он должен быть целостным. В первом листинге я вижу переменные
object[] args = new object[0];
StringBuilder errors = new StringBuilder();
но зачем они (особенно args) не ясно.
Чтобы получать путь до пользовательских настроек лучше использовать функции SHGetFolderLocation, SHGetFolderPath, SHGetSpecialFolderLocation и SHGetSpecialFolderPath или их .Net аналог System.Environment.GetFolderPath, а не переменную %APPDATA%. Это не моё мнение, а рекомендация MSDN. Что же дальше? А дальше мы видим почти (почему "почти" чуть ниже) правильный код который не соответствует комментариям.
потому что делать то, что написано в статье надо так
Environment.GetEnvironmentVariable("APPDATA");
А вернее, не надо
Кроме того, раз уж коснулись темы хранения данных. Настроки специфичные для компьютера и хранятся в "All Users\Local Settings\Application Data", настройки по умолчанию для новых пользователей хранятся в "All Users\Application Data", настройки специфичные для конкретного пользователя хранятся в папке "%UserProfile%\Application Data", а настройки специфичные для конкретного пользователя и компьютера хранятся в папке "%UserProfile%\Local Settings\Application Data" которой соответствует значение LocalApplicationData перечисления System.Environment.SpecialFolder
Действительно настройки клавиатурных комбинаций специфичны для пользователя, но они специфичны и для компьютера — клавиш учавствующих в некоторой комбинации на другой клавиатуре может просто не быть, не говоря уже о разном количестве кнопок и колёс на мыши.
Очень субъективное замечание. Слово Рефлексия мне напоминает название болезни (эпилепсии, например). Я исключительно за термины с русскими корнями, удачные транслитерации и проч. но данный случай мне не кажется удачным.
Ещё одно очень субъективное замечание. Раздражает множество упоминаний о магии .Net. Мы дело делаем или кому-то поклоняемся? К конце концов, если уж испытываешь такое восхищение, то можно и синонимы подобрать "чудо .Net", "волшебство .Net" или даже с юмором искажая слова "колдунство .Net". Там же потрясная фраза "Но она не всегда приемлема, так как привносит значительные непроизводительные затраты времени.". Судя по всему тут стилистическая муза отвернулась. Приемлемо или не приемлемо, (даже не знаю чьё имя тут написать), может быть использование. Плохо, тем более что суть очень простая и перефразировать не составляет труда — "Использование рефлексии не всегда приемлемо, так как значительно снижает производительность".
Упс. Только я разогнался, а статья закончилась Что же мы узнали? Во-первых, узнали что XML файлы можно читать по-разному. Во-вторых, познакомились с методами Enum.Parse и Delegate.CreateDelegate. В-третьих, мы узнали где можно хранить настроки (правда не до конца). В целом не густо — от статьи я ожидал значительно большего
Здравствуйте, adontz, Вы писали:
A>А не пытался ли ты найти книги с тем же количеством страниц и цветных иллюстраций и не заметил ли при этом каких-либо закономерностей?
Нет, не пытался. Мне просто стало интересно, что за книга. Я б ее цитировал ежедневно A> А ещё можно из букв названия составлять новые слова и искать по ним.
Можно. Но зачем, если есть ISBN? A>Что за дурацкая манера докапыватся до несущественных мелочей.
Гм. Вот я уверяю тебя, именно эту фразу подумал Влад, увидев твой комментарий по поводу %APPDATA%. Но он, как ты видишь, сильно смягчил ее в своем ответе. A>На столе у меня лежала книга с ISBN "5-9643-0011-1". Изменил всего две цифры чтобы формат остался похож на ISBN. Был глубоко уверен что такого ISBN просто нет. Искать не стал, потому что оно того не стоило. С твоими талантами не составит труда узнать какая именно книга у меня лежала на столе. A>Мне выслать её со своими отпечатками пальцев или нелепые обвинения закончатся и так?
Спокойно. Я тебе верю и так. Что ж, книжки разные бывают. Мне, честно говоря, стало страшно интересно, намеренно ли ты вставил ссылку на такую неординарную книгу, или это игра случая. Вне зависимости от того, как это получилось, в данном контексте совпадение просто великолепное. Я просто не могу передать всю глубину своего восторга этими маленькими черными буковками! A>По-моему за то что я назвал Влада голубым я уже отсидел в бане. Ещё не успокоились? Пытаетесь опять мне что-то пришить?
Э-э, я вроде никому ничего пришить не пытаюсь. Да и отрезать тоже.
З.Ы. Да, кстати, ISBN для "Черной магии в быту" все еще актуален.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Бунтарь проснулся. Приветствую.
A>Несколько замечаний A>[list=1] A> Формат файла несколько странный и недостаточно гибкий.
Ну, это кму как. Для моих нужд более чем. На главное не в этом. Статья ведь не про формат файла. Статья про общее решение... я бы даже сказал про принцип... Смысл его в том, чтобы превращать решение из запутанного императивного в ясное и простое в поддержке декларативное. А уж все тонкости — это как бы забота тех кто будет создавать собственные решения.
A> Обозначение "Shift | A" совершенно непривычно. Почему бы не сделать "Shift + A" тем более что всё равно парсить приходится самим? Это обозначение общепринято.
Сделай, если нужно. Там ровно один символ для этого нужно заменить. Мне кажется более логичным '|' в качестве разделителя, но на истину в последенй инстанции я не претендую.
A> Кроме того статья претендует на изложение "самого правильного и общего способа" хотя это на самом деле не так.
Мне кажется, что тебе показалось. Еще раз для тех кто видит во всем окружающем заговор мирового это . Статья описывает конкретное решение из конкретного продукта, но с целью показать подход. Если углубиться во внутренности, то можно заметить, что статья демонстрирует создание внешнего DSL и возможности дотнета по автоматизации преобразования этого DSL во внутрение структуры программы. Детали реализации или спецификации файлов есть не более чем детали реализации.
A> Если взять пресловутый редактор Visual Studio, да и многие другие редакторы, то там употребляются не только комбинации клавиш, но и последовательности комбинаций. Та же Ctrl+R, Ctrl+W. А ведь ещё есть такие вещи как "Ctrl + Left Click", "Ctrl + Wheel up". Это реализуется несколько сложнее. Нужно делать конечный автомат (и не только тут, но об этом ниже).
Мне не были нужны многокнопочные шорткаты. Ну, не люблю я их. Между тем модифицировать данный код так чтобы эта функциональность поддерживалась ничего не стоит. И никакие конечные автоматы тут не нужны. Просто нужно чуть-чуть усложнить формат хранения шортката, расширить парсер и усложнить процедуру обрабокти клавиатурных сообщений так чтобы она умела накапливать шорткаты в неком стеке.
A> Не как безусловный минус, но я бы оформил чтение файла настроек как конечный автомат.
Ну, будешь делать — оформи.
A> Мой опыт подсказывает, что этот способ сложнее реализуется, но приводит к гораздо более стабильному коду.
Как только у меня появятся проблемы со стабильностью кода, я сразу же его перепишу. А пока я предпочту меньшее кличество телодвижений.
A> Кстати говоря, строка
A>throw new ApplicationException("Неверный формат файла '" + mapFileName + "'");
A>
неприятно удивила. Кидать исключения с не английским текстом сообщения не хорошо, потому что его не всегда можно прочесть.
Думашь, статью будут читать те кто это сделать не сможет? Ну, в их воле вставить туда работу с ресурсами. Я вот так и хотел сделать... кода редактор будет дописан. Но пока, ты уж извини меня, но я опять выберу более простое решение. Более того, текст изначально был написан по английски, но учитывая, что статья идет в русский журнал и мое "свободное" владение английским я решил что так будет лучше для всех.
Но поверь, оскорбить этим твою ранимую душу я не хотил. Ну, да хорошо еще ты меня в шовинизме не обвинил.
A> Маленькая пометка. Скорее даже редактору, а не автору. Если уж приводится кусок кода, то он должен быть целостным.
Ну, это опять таки замечание мне, так как за это дело отвечаю как раз я.
И не считаю, что тут что-то не так. Цель участков кода продемонстрировать нужные части решения. Если кому-то нужен целостный код, то он возьмет готовый проект.
A>В первом листинге я вижу переменные
A>object[] args = new object[0];
A>StringBuilder errors = new StringBuilder();
A>
A> но зачем они (особенно args) не ясно.
args — это действительно промашка. Просто нечайно оставленная грязь после рефакторинга.
А вот твое возмущение на счет "errors" явно выдает рельные намерения твоего письма — попробовать зародить скандальчик на ровном месте. Рома, одно название этой переменной, тебе как тонкому ценителю русского языка, должно было бы уже сказать, что эта переменная будет содержать сообщения об ошибке (а тип, о том что это будет строка). Но даже если бы ты не смог понять мой плохой английский, то ты мог бы обратить внимание на коментарий стоящий за переменной "// сообщения об ошибках".
A> Чтобы получать путь до пользовательских настроек лучше использовать функции SHGetFolderLocation, SHGetFolderPath, SHGetSpecialFolderLocation и SHGetSpecialFolderPath или их .Net аналог System.Environment.GetFolderPath, а не переменную %APPDATA%. Это не моё мнение, а рекомендация MSDN.
Позволю себе процитировать статью:
Другим подходом является хранение файла настроек в скрытом каталоге, принадлежащем пользователю. Обычно таким каталогом является каталог «Application Data». Путь к нему можно получить из системной переменной окружения «%APPDATA%». В .NET-приложении ее можно прочесть следующим образом:
Я рад, за то что ты такой тонкий знаток Вынь-технологий, но одно расстраивает. Вместо того, чтобы вникнуть в то, что написано в статье и коде ты всячески пыташся найти места где бы можно было подловить меня и уличать в некомпетенции. Рома, право это не красиво.
A> Что же дальше?
Дай угадаю? Полная деградация до высот плитуса?
A> А дальше мы видим почти (почему "почти" чуть ниже) правильный код который не соответствует комментариям.
Рома, право некрасиво. Что не соотвествует, и каким коментариям? Цитату я привел выше. А вот как раз ниже есть код с коментариями:
string path = Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData);
path = Path.Combine(Path.Combine(path,
GetProductName(controllerType)), mapFileName);
// Если файл с клавиатурными настройками существует в папке
// "Application Data" (%APPDATA%), или в папке где расположена DLL-а, то
// читаем настройки из него. Иначе читаем настройки из файла,
// сохраненного при компиляции в ресурсах.if (File.Exists(path))
reader = XmlReader.Create(path);
потому что делать то, что написано в статье надо так
Environment.GetEnvironmentVariable("APPDATA");
А вернее, не надо
Не, ну, ты все же определить, что в коде правильно, а что не правильно. Приведи цитаты... что, мол, не правильно в статье. Вот тогда и поговорим. Пока что я вижу все то же жаления налить грязи и по больше.
Ром, конструктивная критика, и дружеская критика — это конечно хорошо, но вот у тебя она почему то не удается. Отдает она каким-то нехорошим запашком.
Вот представь себе возьму я сейчас твои легендарные произведения не прошедшие нашу вычитку и начну докапываться до каждого абзаца. Ведь замечаний будет с пол текста. А прикинь если их еще организовать в эдакий обвинительный список и закончить таким итоговым приговором автору. Ну, и чтобы было по прикольнее начать со слов вроде:
Кроме того статья претендует на изложение "самого правильного и общего способа" хотя это на самом деле не так.
A>Кроме того, раз уж коснулись темы хранения данных. Настроки специфичные для компьютера и хранятся в "All Users\Local Settings\Application Data", настройки по умолчанию для новых пользователей хранятся в "All Users\Application Data", настройки специфичные для конкретного пользователя хранятся в папке "%UserProfile%\Application Data", а настройки специфичные для конкретного пользователя и компьютера хранятся в папке "%UserProfile%\Local Settings\Application Data" которой соответствует значение LocalApplicationData перечисления System.Environment.SpecialFolder A>Действительно настройки клавиатурных комбинаций специфичны для пользователя, но они специфичны и для компьютера — клавиш учавствующих в некоторой комбинации на другой клавиатуре может просто не быть, не говоря уже о разном количестве кнопок и колёс на мыши.
Что же я люблю грамотных теоретиков, но нелюблю рассуждать на сасвсем ен итнтересные мне темы. Если ты считаешь, что общий конфиг нужно хранить где-то в недрах Виндовс, то так и поступай. У меня на этот счет свое мнение. Мне удобнее хранить его рядом с испоняемым файлом. Так проще для развертывания приложения, да и удобнее так как на одной машине может быть более одной ОС и копировать файл во все "All Users..." никакого желания нет.
A> Очень субъективное замечание.
A> Слово Рефлексия мне напоминает название болезни (эпилепсии, например).
Это не так страшно. Многие люди не знают значения слов в языках на которых они общаются. Но я тебя научу как с этим борюсь я сам. Чтобы пополнить пробелы в своих знаниях нужно открыть толковый словарь, инциклопедию или просто поспользоваться гуглем. В нем есть такая замечательная опция "define : <термир>". Во многих случаях помогает. Например, в данном: define: Рефлексия.
Если тебя интересует история применения этого перевода на нашем сайте и в нашем жунале, то можешь воспользоваться поиском. Если я не ошибаюсь, он начал применяться со статьи Метаданные в среде .Net
В общем-то, это просто перевод. Причем, по-моему, наиболее удачный. Но если ты с ним не согласен, то в своих статьях можешь пытаться подбирать другие переводы.
A> Я исключительно за термины с русскими корнями, удачные транслитерации и проч. но данный случай мне не кажется удачным.
Значит у нас с тобой снова не совпали мнения. Только для этого форума это офтопик. Можешь обсудить этот вопрос в форуме проблемы перевода.
A> Ещё одно очень субъективное замечание. Раздражает множество упоминаний о магии .Net.
Это заметно. Я вот только не полностью понял, что же больше раздражает слово "магия" или ".Net". Мне кажется, что если бы я говорил о магии С++, то ты был бы более благсклонен. Но, увы, С++ мне все менее и менее интересен.
A> Мы дело делаем или кому-то поклоняемся?
Вы? Лично я пишу статьи. Стараюсь, чтобы статьи были интересными и не скушными. Я конечно понимаю, что есть люди раздражающиеся от разных образных высказываний. Но не до такой же степени? Все же три упоминания в стать слова "магия" вне контекста С++ можно и пережить.
A> К конце концов, если уж испытываешь такое восхищение, то можно и синонимы подобрать "чудо .Net", "волшебство .Net" или даже с юмором искажая слова "колдунство .Net".
Рома, спасибо в очередной раз за безценный совет. Не, скажи мне как программист редактору, не кажется ли тебе, что применение синонимов для слова встречающегося три раза в статье в разных и довольно отдателнных абзацах может увеличить экспрессию изложения, при этом никак не повлияв на качество изложения?
A> Там же потрясная фраза "Но она не всегда приемлема, так как привносит значительные непроизводительные затраты времени.". Судя по всему тут стилистическая муза отвернулась.
Ну, остается радоваться, что она отвернулась только в этой строчке.
A> Приемлемо или не приемлемо, (даже не знаю чьё имя тут написать), может быть использование. Плохо, тем более что суть очень простая и перефразировать не составляет труда — "Использование рефлексии не всегда приемлемо, так как значительно снижает производительность".
Производительность понятие размытое. Хотя несомненно обсуждение этой строчки весма увлекательно.
A> Упс. Только я разогнался, а статья закончилась
От облом. А так все было интересно. Ну, не расстраивайся. Я тут знаю место где можно найти немало материала для исследования. Когда закончишь с вот этим списком: http://rsdn.ru/Forum/?uid=73&ArticleOnly=1
Переходи к более короткому, не не менее интересному вот этому списку: http://rsdn.ru/Forum/?uid=2053&ArticleOnly=1
Там, правда, первые две (сверху) статьи вычитывали бездарные редактов (я с Купаевым), так что они скорее всего безнадежно испорчены. Но последние три могут оказаться весма интересны самобытным лингвистам.
A> Что же мы узнали? Во-первых, узнали что XML файлы можно читать по-разному. Во-вторых, познакомились с методами Enum.Parse и Delegate.CreateDelegate. В-третьих, мы узнали где можно хранить настроки (правда не до конца). В целом не густо — от статьи я ожидал значительно большего
Ну, не расстраивайся. Прочти статью еще раз. Возможно узнашь еще что-то. А если повезет, то найдешь вторую строку которая по твоему субъективному мнению окажется интересна для лингвистического анализа.
В общем, Рома всегда рад с тобой общаться. Всегда испытывашь море приятных эмоций. Где и от кого еще можно услышать столько объективной информации, столько комплиментов, добрых слов и что самое главное веселых слов?
PS
В общем, Ром спасибо тебе конечно за критику, но недобрая она какая-то. Так что извини, и ответ на нее ехиднинький. Ты будь добрее и люди к тебе потянутся.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, adontz, Вы писали:
S>>З.Ы. Да, кстати, ISBN для "Черной магии в быту" все еще актуален. A>На самом деле такой книжечки нет.
Э-эх. Ну, нет — так нет. Может тогда хотя бы оглавление кинешь? A>Никому больше ничего не надо? Не стесняйтесь, я знаю много полезных колдунств.
Как насчет очистки управляемой и неуправляемой ауры дот-нет приложений по стек-трейсу?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, VladD2, Вы писали:
VD>А твои намерения видны не вооруженным взглядом.
Ну-ка ну-ка. Не расскажешь какой такой злобный заговор тебе привиделся на этот раз? Вонючие орки задумали захватить прекрастный замок эльфов?
VD>Ты единственный кого это покоробило.
Я единственный кто вообще высказался за неделю. Никаких "других которых не покоробило" просто не сущесвует. Если охота заниматся формализмом, то покоробило 100% высказавшихся.
VD>Возможно формулировка на 100% точная, но объяснения как и откуда там рельно ноги ростут лично в мои планы не входило. Если кому-то интересно написать статью о том где и как виндвос хранит информацию, то это его право.
Пока ты не поймёшь, что вызов Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); не читает переменную %APPDATA% и что переменной %APPDATA% может даже не существовать, мне с тобой по существу обсуждать нечего. Ты "сел на осла" и самозабвенно цитируешь самого себя, не пытаясь даже понять, что я говорю. Я вовсе не хотел тебя задеть, я просто уточнил этот момент, для того чтобы твоя оплошность не введла никого в заблуждение. А ты очень агрессивно воспринимаешь малейшие исправления.
VD>Понимаш ли, у меня хватает других дел окромя поиска неувязок в твоей статье.
Поиском неувязок в своей статье ты тоже не рвёшься заниматся. Я указал на простую неточность, это даже на ошибку не тянет. Но вместо того, чтобы признать очевидную вешь ты начинаешь переходить на личоности. Влад, переменной %APPDATA% может не быть, даже если я об этом не скажу.
VD>И я точно знаю, что сколько бы народу и с каким бы то нибыло пристрастием не читали статью в ней всегда можно будет найти еще одну две ошибки/неувязки/неточности и т.п. И заниматься этм специально можно только от большой озлобленности на мир или автора статьи.
То есть любая критика от озлобленности? Да, ну и выводы.
A>>Ну, а никто не говорил что правильно делать просто. VD>Еще никто не говорил, что то что говоришь ты правильно, а то что другие не правильно.
Нет. Никто не говорил. Но некоторые написали. Такая штука, MSDN называется. Наверное слышал.
VD>То что ты докопался до этого пункта говорит лишь о том, что в других местах докапаться было не до чего.
Это ты докопался. Поддержка последовательностей клавиатурных комбинация на мой взгляд куда более стоящая внимания вешь.
VD>А. Ну, тебе виднее. Если потом прийдет желание подумать, а желание повредничать пройдет, то подумай над тем как может появиться у треслитерации опредление да еще и ссылающееся на латынь.
Назло кондуктору пойдёшь пешком?
VD>И в дальшейшем я, и все кому нравится использовать это русское слово в качестве перевода слова рефлекшон (так кажется будет оно звучать в танслите? ), буду испльзовать это слово в данном контексте. Если тебе не нравится, то ты можешь заловаться куда угодно.
Ты уже себя наказываешь использованием необщепринятой терминологии. Добавлять я не собираюсь.
A>>Влад, твоя статья просто красуется на первой странице сайта (вернее красовалась 8-го, когда я писал отзыв. VD>Ром, по чаще заходи на сайт. Каждая статья красуется там какое-то время. Ну, да если что места где искать ссылки ты теперь знашь.
Вот именно. Тем более не ясно с чего ты взял что я именно твою решил поругать, а все остальные хвалю Однозначно мания преследования.
Влад, запомни, ты мне нафиг не сдался. Пользы от тебя в моём хозяйстве не будет никакой, да и выгодно продать тебя не получится.
VD>Автор очень редко может действительно критически оценить свое произведение.
Ты это действительно понимаешь или для красного словца ввернул?
VD>Ты поробуй сделать так. Отршишись и попроубй внушить себе, что ты никогда не видил эту статью и не знаком с автором. Лучше даже сделать так. Забудь что ты вообще знаешь поднимаемую тематику. Включи, что называется дурака... Побудь в шкуре редактора разок... И вот в таком настрое прочти статьи которые не вычитывались нами. Ну, те у которых оценки не трехзначные. Я тебя уверяю, что когда ты закончишь читать, ты найдешь такое количество ошибок и т.п. которые ускользнули от твоего взора когда ты писал статью, что ты удивишься, а возможно даже тебе станет чуточку стыдно.
ОК, давай смотреть
Библиотека XWPL – Extreme Windows Programming Library. То что лежит на сайте полное дерьмо о чём я сам неоднократно говорил. С тех пор всё раз 10 было переписано. От того кода не осталось ничего. Я не думаю, что статья к сомнительной библиотеке будет лучше оценена после вычитки, если сама библиотека не ахти. Вобщем здесь промазал — вычитка не помогла бы.
BSP деревья. Статья поверхностная. Ничего нового или уникального в ней нет. Сам разобрался и после этого написал как понимал. Там и вычитывать-то особо нечего, потому что информации мало. Здесь тоже промазал. Вычитывать ИМХО фактически нечего.
Особенности программирования DirectX графики. Это просто перевод.
Я что-то упустил?
VD>>>Там, правда, первые две (сверху) статьи вычитывали бездарные редактов (я с Купаевым), так что они скорее всего безнадежно испорчены. Но последние три могут оказаться весма интересны самобытным лингвистам.
Хм. А примерчик будет? А то всё бревно, бревно... Показал бы какое-нибудь несогласованное предложение, авось и ясность бы настала who is кто.
Здравствуйте, VladD2, Вы писали:
VD>И никакие конечные автоматы тут не нужны.
Я не сказал, что это единственный способ. Просто он наиболее, на мой взгляд, правильный. Я писал программу которая реагировала на настраиваемые комбинации клавиатурного и мышыного ввода (правда не в окне, а глобально по системе через хуки, но это только всё усугубляет) и после нескольких разных вариантов остановился именно на конечном автомате как наиболее понятном и легко поддерживаемом варианте.
VD>Более того, текст изначально был написан по английски, но учитывая, что статья идет в русский журнал и мое "свободное" владение английским я решил что так будет лучше для всех.
Необычное решение. Я бы на твоё месте добавил комментари с переводом. Ну да дело твоё.
VD>Но поверь, оскорбить этим твою ранимую душу я не хотил. Ну, да хорошо еще ты меня в шовинизме не обвинил.
Ранимая душа, шовнизм? Влад, ты о чём, всё ещё о статье?
VD>И не считаю, что тут что-то не так. Цель участков кода продемонстрировать нужные части решения. Если кому-то нужен целостный код, то он возьмет готовый проект. VD>А вот твое возмущение на счет "errors" явно выдает рельные намерения твоего письма — попробовать зародить скандальчик на ровном месте.
Я не знаю откуда ты узнал об истинных намерениях моего сообщения. Главе "Междугородняя телепатия" книжечки "Чёрная магия в быту" (ISBN 5-9643-0042-1, 717 страниц, 346 цветных иллюстраий, твёрдый переплёт) я бы на твоём месте не очень доверял. Там есть несколько существенных опечаток в текстах заклинаний.
Что касается переменной, то дело не в том, что не понятно зачем она нужна, а в том, что она объявлена, но в том коде который представлен, ниже не используется.
VD>Не, ну, ты все же определить, что в коде правильно, а что не правильно. Приведи цитаты... что, мол, не правильно в статье. Вот тогда и поговорим.
Значения возвращаемые Environment.GetEnvironmentVariable("APPDATA"); и Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); могут быть не равны. Понятно?
В статье ты говоришь о первом, но в коде пользуешься вторым.
VD>Вот представь себе возьму я сейчас твои легендарные произведения не прошедшие нашу вычитку и начну докапываться до каждого абзаца.
Это твоё право, но по-моему мы говорим об уже опубликованной твоей статье. К тому же какое отношение мои неопубликованные (почему-то легендартные ) статьи имеют к обсуждаемому вопросу? Что за неуместный переход на личности?
VD>Ведь замечаний будет с пол текста.
Возможно, но причём тут это? Мне не кажется что показав мою предположительно плохую статью, ты сможешь каким-либо образом похвалить свою или опровергнуть мою критику.
VD>А прикинь если их еще организовать в эдакий обвинительный список и закончить таким итоговым приговором автору. Ну, и чтобы было по прикольнее начать со слов вроде: VD>
Кроме того статья претендует на изложение "самого правильного и общего способа" хотя это на самом деле не так.
Флаг тебе в руки. История одной оптимизации уже у нас была. Теперь будет история одной статьи
VD>Что же я люблю грамотных теоретиков, но нелюблю рассуждать на совсем не итнтересные мне темы. Если ты считаешь, что общий конфиг нужно хранить где-то в недрах Виндовс, то так и поступай. У меня на этот счет свое мнение. Мне удобнее хранить его рядом с испоняемым файлом. Так проще для развертывания приложения, да и удобнее так как на одной машине может быть более одной ОС и копировать файл во все "All Users..." никакого желания нет.
Ну, а никто не говорил что правильно делать просто. Естественно, что написать приложение которое работает не только у тебя, а в куче разных и порою весьма странных конфигураций на порядок сложнее. Никто не мешает лично тебе в каком-то конкретном случае исходя из каких-то предпосылок решить, что "и так сойдёт". И правда, есть случаи, когда обеспечение совместимости напоминает акробатические номера — проще плюнуть, но гораздо чаще, достаточно всего лишь строго следовать рекомендациям. Ведь Application Data это не странная папочка в которой придурки из Microsoft зачем-то держат настройки, но и не редко часть перемещаемого профиля. А вот Local Settings\Application Data — нет. А ещё бывают групповые политики... В целом только описание где и когда хранить настройки чтобы они работали в рабочей группе, домене, контроллёре домена, кластере, вовремя реплицировались, легко сохранялись и восстанавливались — это тема нескольких статей если не книги.
VD>В общем-то, это просто перевод. Причем, по-моему, наиболее удачный. Но если ты с ним не согласен, то в своих статьях можешь пытаться подбирать другие переводы.
Вобщем-то это транслитерация. Переводом является слово "отражение". Но как я уже сказал это очень субъективное замечание и я не вижу что тут можно обсуждать. А ссылка которую ты дал лишь объянила мои ощущения — термин действительно медицинский. Вот почему он мне напоминает название болезни, а не скажем, лекартсва — это великая тайна моего подсознания. Без изучения главы "Междугороднее восстановление памяти через гипноз" книжечки "Чёрная магия в быту" нам её не решить.
VD>Не, скажи мне как программист редактору, не кажется ли тебе, что применение синонимов для слова встречающегося три раза в статье в разных и довольно отдателнных абзацах может увеличить экспрессию изложения, при этом никак не повлияв на качество изложения?
Вообще-то в соседних, к тому же довольно маленьких. Кроме того это ещё одно очень субъективное замечание и я опять таки не вижу что тут можно обсуждать.
VD>От облом. А так все было интересно. Ну, не расстраивайся. Я тут знаю место где можно найти немало материала для исследования. Когда закончишь с вот этим списком: VD>http://rsdn.ru/Forum/?uid=73&ArticleOnly=1
Влад, твоя статья просто красуется на первой странице сайта (вернее красовалась 8-го, когда я писал отзыв. Вчера, 9-го, добавили новость и её уже нет) — вот я и заглянул. У тебя мания преследования? Ну тогда прочитай главу "Междугороднее снятие порчи и сглаза" книжечки "Чёрная магия в быту".
VD>Переходи к более короткому, не не менее интересному вот этому списку: VD>http://rsdn.ru/Forum/?uid=2053&ArticleOnly=1
Спасибо я с ним уже знаком
VD>Там, правда, первые две (сверху) статьи вычитывали бездарные редактов (я с Купаевым), так что они скорее всего безнадежно испорчены. Но последние три могут оказаться весма интересны самобытным лингвистам.
Ну чего же так? Разве только вы с Купаевым? Да их, бедненьких, человек 10 в большей или меньшей степени "портило"
VD>В общем, Ром спасибо тебе конечно за критику, но недобрая она какая-то. Так что извини, и ответ на нее ехиднинький. Ты будь добрее и люди к тебе потянутся. VD>
Да, Влад. Трудно общатся с вами гениями. Каким образом ты сумел связать неудачные статьи Романа Акопова с настраиваемой реакцией на клавиатруный ввод в .Net я наверное никогда не пойму.
Главное не болей. Я по этому случаю перечитаю главы "Междугороднее усиление вдохновения" и "Междугороднее повешения иммунитета телекинетической пересылкой эльказеев и дефенсисов" книжечки "Чёрная магия в быту".
Здравствуйте, adontz, Вы писали:
A>Я не сказал, что это единственный способ. Просто он наиболее, на мой взгляд, правильный.
Ну, вот я тебе и ответил, что на мой взгляд на фиг КА тут не упали.
A>Необычное решение. Я бы на твоё месте добавил комментари с переводом. Ну да дело твоё.
Опять, же необычное оно для тебя лично. На своем месте ты можешь принимать любое другое.
A>Я не знаю откуда ты узнал об истинных намерениях моего сообщения. Главе "Междугородняя телепатия" книжечки "Чёрная магия в быту" (ISBN 5-9643-0042-1, 717 страниц, 346 цветных иллюстраий, твёрдый переплёт) я бы на твоём месте не очень доверял. Там есть несколько существенных опечаток в текстах заклинаний.
Что ты постоянно на мое место метишь? Ты та своем сиди и делай свою работу. А я буду делать свою, на своем. А твои намерения видны не вооруженным взглядом.
A>Что касается переменной, то дело не в том, что не понятно зачем она нужна, а в том, что она объявлена, но в том коде который представлен, ниже не используется.
Ты единственный кого это покоробило.
A>Значения возвращаемые Environment.GetEnvironmentVariable("APPDATA"); и Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); могут быть не равны. Понятно? A>В статье ты говоришь о первом, но в коде пользуешься вторым.
В статье мне нужно было пояснить о чем идет речь. Не ветку же реестра или название на фиг не упершейся функции шела мне приводить? Как видишь, даже ты понял о чем речь. Значит нужного результата я таки достиг. Собственно прочти еще раз что написано в статье:
Другим подходом является хранение файла настроек в скрытом каталоге, принадлежащем пользователю. Обычно таким каталогом является каталог «Application Data». Путь к нему можно получить из системной переменной окружения «%APPDATA%». В .NET-приложении ее можно прочесть следующим образом:
Возможно формулировка на 100% точная, но объяснения как и откуда там рельно ноги ростут лично в мои планы не входило. Если кому-то интересно написать статью о том где и как виндвос хранит информацию, то это его право.
Ты же докопался до этого с таким пристрастием какбудто от этого зависит твоя сдьба или будто данные знания испортят представление о Виндовс у всего будущего поколения программистов.
VD>>Вот представь себе возьму я сейчас твои легендарные произведения не прошедшие нашу вычитку и начну докапываться до каждого абзаца.
A>Это твоё право, но по-моему мы говорим об уже опубликованной твоей статье.
Понимаш ли, у меня хватает других дел окромя поиска неувязок в твоей статье. Я написал не одну статью, и еще больше прочитал, причем прочитал с пристрастием докапываясь до каждого слова. И я точно знаю, что сколько бы народу и с каким бы то нибыло пристрастием не читали статью в ней всегда можно будет найти еще одну две ошибки/неувязки/неточности и т.п. И заниматься этм специально можно только от большой озлобленности на мир или автора статьи. Я уже незнаю что тебя сподвигло на данное занятие, но я понимаш ли только то с Кубы прилител и прибываю в относительно неплохом настроении. Так что заниматься фигней не намерен.
A> К тому же какое отношение мои неопубликованные (почему-то легендартные ) статьи имеют к обсуждаемому вопросу? Что за неуместный переход на личности?
Да, я про опубликованные. Ну, ты их должен помнить... Те с минусами где ты в срочном порядке... ну, короче ты понял. О том что было в статьях прошедших вычитку или завернутых я даже не заикаюсь. Ром, искать блох можно везде и всегда. Они всегда скрываются между шерстинками. Так что была бы шерсть. Проблем небывает только у тех кто ничего не делает.
VD>>А прикинь если их еще организовать в эдакий обвинительный список и закончить таким итоговым приговором автору. Ну, и чтобы было по прикольнее начать со слов вроде: VD>>
Кроме того статья претендует на изложение "самого правильного и общего способа" хотя это на самом деле не так.
A>Флаг тебе в руки. История одной оптимизации уже у нас была. Теперь будет история одной статьи
Еще раз. Кто такие "у нас"?
VD>>Что же я люблю грамотных теоретиков, но нелюблю рассуждать на совсем не итнтересные мне темы. Если ты считаешь, что общий конфиг нужно хранить где-то в недрах Виндовс, то так и поступай. У меня на этот счет свое мнение. Мне удобнее хранить его рядом с испоняемым файлом. Так проще для развертывания приложения, да и удобнее так как на одной машине может быть более одной ОС и копировать файл во все "All Users..." никакого желания нет.
A>Ну, а никто не говорил что правильно делать просто.
Еще никто не говорил, что то что говоришь ты правильно, а то что другие не правильно.
A> Естественно, что написать приложение которое работает не только у тебя, а в куче разных и порою весьма странных конфигураций на порядок сложнее. Никто не мешает лично тебе в каком-то конкретном случае исходя из каких-то предпосылок решить, что "и так сойдёт". И правда, есть случаи, когда обеспечение совместимости напоминает акробатические номера — проще плюнуть, но гораздо чаще, достаточно всего лишь строго следовать рекомендациям. Ведь Application Data это не странная папочка в которой придурки из Microsoft зачем-то держат настройки, но и не редко часть перемещаемого профиля. А вот Local Settings\Application Data — нет. А ещё бывают групповые политики... В целом только описание где и когда хранить настройки чтобы они работали в рабочей группе, домене, контроллёре домена, кластере, вовремя реплицировались, легко сохранялись и восстанавливались — это тема нескольких статей если не книги.
Ну, можешь заняться этой книгой. Я по этому поводу все сказал. Я сделал как хотел и делать иначе пока что у меня повада нет. Это и так для красоты получилось. Реально встроенного в экзешник конфига хватает за глаза, а если пользователь захочет, то создаст свой совсбвенный.
Цель статьи была явно не в том чтобы обучить кого-то раскладывать файлы по диску. То что ты докопался до этого пункта говорит лишь о том, что в других местах докапаться было не до чего.
VD>>В общем-то, это просто перевод. Причем, по-моему, наиболее удачный. Но если ты с ним не согласен, то в своих статьях можешь пытаться подбирать другие переводы.
A>Вобщем-то это транслитерация.
А. Ну, тебе виднее. Если потом прийдет желание подумать, а желание повредничать пройдет, то подумай над тем как может появиться у треслитерации опредление да еще и ссылающееся на латынь.
A> Переводом является слово "отражение". Но как я уже сказал это очень субъективное замечание и я не вижу что тут можно обсуждать. А ссылка которую ты дал лишь объянила мои ощущения — термин действительно медицинский. Вот почему он мне напоминает название болезни, а не скажем, лекартсва — это великая тайна моего подсознания. Без изучения главы "Междугороднее восстановление памяти через гипноз" книжечки "Чёрная магия в быту" нам её не решить.
Понимаш ли. Ты можешь хоть покусать себя, но по-твоему не будет. И в дальшейшем я, и все кому нравится использовать это русское слово в качестве перевода слова рефлекшон (так кажется будет оно звучать в танслите? ), буду испльзовать это слово в данном контексте. Если тебе не нравится, то ты можешь заловаться куда угодно.
VD>>Не, скажи мне как программист редактору, не кажется ли тебе, что применение синонимов для слова встречающегося три раза в статье в разных и довольно отдателнных абзацах может увеличить экспрессию изложения, при этом никак не повлияв на качество изложения?
A>Вообще-то в соседних, к тому же довольно маленьких.
В одном месте абзацы разделяются двумя абзацами. В другом одним, но он является заголовком, т.е. предложения из разных разделов. Ну, да ты наверно дествительно можешь судить лучше чем два человека занимающихся с утра до вечера тем что разбавляют свои и чужие статьи синонимами дабы те не были напачканы одинаковыми словами идущими через два слова.
A> Кроме того это ещё одно очень субъективное замечание и я опять таки не вижу что тут можно обсуждать.
Опять таки. Со своими ИМХО по поводу стилистики и т.п. нужно ходить на соответствующие форумы соответствующих сайтов, а не устраивать разбор полетов в техническом форуме.
Если ты уж действительно так заинтересован в повышении уровня русского языка на сайте, то можешь написать лично Купаеву и обсудить с ним этот вопрос высказав ему свое "фэ" за пропущенные по-твоему недостатки.
VD>>От облом. А так все было интересно. Ну, не расстраивайся. Я тут знаю место где можно найти немало материала для исследования. Когда закончишь с вот этим списком: VD>>http://rsdn.ru/Forum/?uid=73&ArticleOnly=1
A>Влад, твоя статья просто красуется на первой странице сайта (вернее красовалась 8-го, когда я писал отзыв.
Ром, по чаще заходи на сайт. Каждая статья красуется там какое-то время. Ну, да если что места где искать ссылки ты теперь знашь.
A> Вчера, 9-го, добавили новость и её уже нет) — вот я и заглянул. У тебя мания преследования? Ну тогда прочитай главу "Междугороднее снятие порчи и сглаза" книжечки "Чёрная магия в быту".
Да, рома у меня мания преследования. Я бегаю за тобой и пытаюсь подкалоть по любому поводу. А ты приходишь помочь в трудный час. Извиним меня убогого.
VD>>Переходи к более короткому, не не менее интересному вот этому списку: VD>>http://rsdn.ru/Forum/?uid=2053&ArticleOnly=1
A>Спасибо я с ним уже знаком
Нет. Ты с ним знаком плохо. Ты его писал. Автор очень редко может действительно критически оценить свое произведение. Ты поробуй сделать так. Отршишись и попроубй внушить себе, что ты никогда не видил эту статью и не знаком с автором. Лучше даже сделать так. Забудь что ты вообще знаешь поднимаемую тематику. Включи, что называется дурака... Побудь в шкуре редактора разок... И вот в таком настрое прочти статьи которые не вычитывались нами. Ну, те у которых оценки не трехзначные. Я тебя уверяю, что когда ты закончишь читать, ты найдешь такое количество ошибок и т.п. которые ускользнули от твоего взора когда ты писал статью, что ты удивишься, а возможно даже тебе станет чуточку стыдно.
VD>>Там, правда, первые две (сверху) статьи вычитывали бездарные редактов (я с Купаевым), так что они скорее всего безнадежно испорчены. Но последние три могут оказаться весма интересны самобытным лингвистам.
A>Ну чего же так? Разве только вы с Купаевым? Да их, бедненьких, человек 10 в большей или меньшей степени "портило"
Ну, вот те три вроде тоже 10 портило. А последние... ну, чтобы не сорать по крайней мере ту что про цвета читали только мы с ним.
VD>>В общем, Ром спасибо тебе конечно за критику, но недобрая она какая-то. Так что извини, и ответ на нее ехиднинький. Ты будь добрее и люди к тебе потянутся. VD>>
A>Да, Влад. Трудно общатся с вами гениями.
Ну, вот видишь опять ярлычек приклеил. Нехорошо однако.
A> Каким образом ты сумел связать неудачные статьи Романа Акопова с настраиваемой реакцией на клавиатруный ввод в .Net я наверное никогда не пойму.
Ром, я тебе пытался намекнуть, что не стоит искать у других в глазу пылинку когда у самого бревнышко торчит. А уж если захотел покритиковать то делать это надо как-то добрее. И не так выборочно.
A>Главное не болей. Я по этому случаю перечитаю главы "Междугороднее усиление вдохновения" и "Междугороднее повешения иммунитета телекинетической пересылкой эльказеев и дефенсисов" книжечки "Чёрная магия в быту".
От это дело. Займись. Вопрос и правда актуальный. Вдруг что выдет. Ну, а не выйдет, так не в первой... не бери в голову.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, adontz, Вы писали: A>>Я не знаю откуда ты узнал об истинных намерениях моего сообщения. Главе "Междугородняя телепатия" книжечки "Чёрная магия в быту" (ISBN 5-9643-0042-1, 717 страниц, 346 цветных иллюстраий, твёрдый переплёт) я бы на твоём месте не очень доверял. Там есть несколько существенных опечаток в текстах заклинаний. S>Гм. Боюсь показаться излишне педантичным, но указанный ISBN не вполне соответствует заявленной книге. Тема, конечно же, близка, но я очень сомневаюсь, что Влад часто сверяется с замечательной книгой А. Майорова для переписки с тобой. Указанную же книгу "Черная магия в быту" мне найти не удалось. Не мог бы ты привести ее ISBN? Только, умоляю, будь на этот раз повнимательнее, и не переписывай номер с первого, что лежит на столе.
А не пытался ли ты найти книги с тем же количеством страниц и цветных иллюстраций и не заметил ли при этом каких-либо закономерностей? А ещё можно из букв названия составлять новые слова и искать по ним. Что за дурацкая манера докапыватся до несущественных мелочей.
На столе у меня лежала книга с ISBN "5-9643-0011-1". Изменил всего две цифры чтобы формат остался похож на ISBN. Был глубоко уверен что такого ISBN просто нет. Искать не стал, потому что оно того не стоило. С твоими талантами не составит труда узнать какая именно книга у меня лежала на столе.
Мне выслать её со своими отпечатками пальцев или нелепые обвинения закончатся и так? По-моему за то что я назвал Влада голубым я уже отсидел в бане. Ещё не успокоились? Пытаетесь опять мне что-то пришить?
Здравствуйте, Sinclair, Вы писали:
S>Гм. Вот я уверяю тебя, именно эту фразу подумал Влад, увидев твой комментарий по поводу %APPDATA%. Но он, как ты видишь, сильно смягчил ее в своем ответе.
S>З.Ы. Да, кстати, ISBN для "Черной магии в быту" все еще актуален.
А я свой ответ смягчал шуточками про несуществующую книгу. Вместо того чтобы написать "Влад, какого хрена ты опять пытаешься приписать мне какой-то злой умысел, хотя я просто комментировал статью?" я написал "Я не знаю откуда ты узнал об истинных намерениях моего сообщения. Главе "Междугородняя телепатия" книжечки "Чёрная магия в быту" (ISBN 5-9643-0042-1, 717 страниц, 346 цветных иллюстраий, твёрдый переплёт) я бы на твоём месте не очень доверял. Там есть несколько существенных опечаток в текстах заклинаний."
На самом деле такой книжечки нет. Ну неужели не ясно что это стёб? Чего стоит только названи главы "Междугороднее повешения иммунитета телекинетической пересылкой эльказеев и дефенсисов". Это просто такой оригинальный подход к избавлению от негатива. Вот, Антон, скажи, ты что действительно думал что есть такая книга и практикую чёрную магию? Я ПРАКТИКУЮ ЧЁРНУЮ МАГИЮ!
Ура товарищи! Если кому приворожить любимую, то все ко мне! Тут кого-то недавно бросила девушка, MNZ кажется.
Мужик не переживай! Достань мне корень травы вынь-сунь собранный в полнолуние, во время парада планет и я её верну.
Никому больше ничего не надо? Не стесняйтесь, я знаю много полезных колдунств.
Здравствуйте, Sinclair, Вы писали:
A>>Никому больше ничего не надо? Не стесняйтесь, я знаю много полезных колдунств. S>Как насчет очистки управляемой и неуправляемой ауры дот-нет приложений по стек-трейсу?
Будешь ждать парада планет? Быстрее дебаггером...