> Хотелось бы поинтересоваться у автора, зачем, например, писать вот такую дикость
Хоть и не автор, попробую объяснить.
Некоторые C++-программисты вначале пишут в уме код на for-if'ах. Затем улавливают смысл производимых действий, а именно: всё что здесь есть, это всего лишь фильтрация-агрегация. Смотрите, я больше не говорю ни про какие императивные циклы и if-операторы, я мыслю в декларативных терминах проекций, фильтраций, свёрток. Далее C++ программист пишет в уме код на нормальном языке типа OCaml'а, Haskell'а или даже C#, например: ints.Count(i => 5 < i && i <= 10);
И уже затем с нормального языка переводят на C++, рождая чудовищ.
Ещё раз. Не зная промежуточных рассуждений, кажется, что программист непонятно зачем заменил понятные for-if'ы на заумные binding'и и функторы. На самом же деле, он просто перевёл задачу в удобные для рассуждения термины, и закодировал их в меру убогости C++.
При должной сноровке, опытный программист в приведённом вами коде не увидит всего этого мусора типа boost::bind и std::logical_and. Но не увидит он и for-if'ов. А выцепит только самую суть — фильтрацию-свёртку.
> Но как я продолжил пользоваться last.fm, так продолжу и простоплеером. Я считаю, что за удобство в современном интернете не зазорно и заплатить. Тем более не такие уж и большие для большинства людей деньги.
Дальше можно не читать. Потому что вы исходите из неверной предпосылки, что основным предназначением ПростоПлеера было прослушивание музыки, и именно за эту услугу надо платить.
В действительности, одним из важнейших юзкейсов был шаринг музыки. Блоги, твиттеры, IM'ы кишат ссылками на ПростоПлеер.
Не имеет абсолютно никакого значения, заплатили ли вы за свой аккаунт, коль скоро у ваших читателей его нет.
Аналогичная картина: завтра разработчики bit.ly скажут, что теперь переход по их ссылкам стоит символических денег. Одновременно с этим громаднейшее количество пользовательского контента станет неработающим. Никакие рассуждения, что разработчики тоже хотят кушать, не оправдывают обман пользователей в своих ожиданиях. Это даже хуже, чем тихое навязывание мобильными операторами бесплатных услуг, исподтишка становящихся платными.
Я хочу бесплатный удобный ресурс для шаринга и прослушивания музыки.
Не то что бы я хотел обделить разработчиков, нет, я не против, чтоб они так или иначе получали вознаграждение.
Но теперь это уже другой ресурс. Для всех он был «просто плеером», и он изменился. Для меня он был «бесплатным просто плеером» — и он умер. Вместо него появился новый ресурс под названием «платный просто плеер».
На некоторых ресурсах иногда проскакивают посты типа «Музыка, которую я ставил на повтор 100500 раз», и т.п. Народ туда кидает ссылки прямо на ПростоПлеер. А теперь этой возможности нет. Что толку, что у меня премиум-аккаунт, если у тех, с кем я хочу поделиться музыкой, его нет?
Другой негативный момент — это обман потребителей. Пару месяцев назад я купил премиум-аккаунт — и не получил заявленных в FAQ функций, за которые, собственно, и платил. Так, например, возможность скачивать плей-листы архивом так и не появилась. Это абсолютно явное мошенничество. Бесстыдный обман.
И — да, веб-морда ПростоПлеера стала глючить неимоверно. Проигрывание тупит, прогресс-бар сходит с ума.
Нет, было сказано: «Кроме того, злоумышленники наверняка анализируют полученные исходные коды на предмет выявления новых уязвимостей, так что Kaspersky Antivirus потенциально становится менее надёжным продуктом.»
И не понятно, почему к «линукс с открытым кодом» применяются рассуждения в пользу повышения его надёжности, а в случае с «антивирус с открытым кодом» те же рассуждения приводят к «потенциально становится менее надёжным продуктом».
>Недавно я озадачился вопросом добавления сборки Silverlight в GAC. Это необходимо для того, чтобы можно было сослаться на сборку из нескольких проектов и не переносить эту сборку каждый раз с проектом.
Бред сивой кобылы. Для того, чтобы ссылаться на сборку без указания полного пути, нахождение её в GAC не является ни необходимым, ни достаточным. Это вообще независимые вещи.
GAC — это относится к разрешению ссылок на сборки CLR'ом, т.е. в рантайме.
AssemblyFoldersEx-разделы реестра — это относится к разрешению ссылок на сборки в процессе компиляции, т.е. в дизайн-тайме.
«При оценке надёжности шифрования необходимо предполагать, что противник знает об используемой системе шифрования всё, кроме применяемых ключей.» ru.wikipedia.org/wiki/Принцип_Керкгоффса
Используй «String.Empty» вместо «""», «Environment.NewLine» вместо «"\r\n"».
parseResult должно быть не String, а StringBuilder.
Прогони исходник через StyleCop и бинарник через FxCop.
Освой Linq, чтоб не городить ненужных циклов.
Хоть и не автор, попробую объяснить.
Некоторые C++-программисты вначале пишут в уме код на for-if'ах. Затем улавливают смысл производимых действий, а именно: всё что здесь есть, это всего лишь фильтрация-агрегация. Смотрите, я больше не говорю ни про какие императивные циклы и if-операторы, я мыслю в декларативных терминах проекций, фильтраций, свёрток. Далее C++ программист пишет в уме код на нормальном языке типа OCaml'а, Haskell'а или даже C#, например:
ints.Count(i => 5 < i && i <= 10);И уже затем с нормального языка переводят на C++, рождая чудовищ.
Ещё раз. Не зная промежуточных рассуждений, кажется, что программист непонятно зачем заменил понятные for-if'ы на заумные binding'и и функторы. На самом же деле, он просто перевёл задачу в удобные для рассуждения термины, и закодировал их в меру убогости C++.
При должной сноровке, опытный программист в приведённом вами коде не увидит всего этого мусора типа boost::bind и std::logical_and. Но не увидит он и for-if'ов. А выцепит только самую суть — фильтрацию-свёртку.
«
• Люди нифига не читают умные книги
• Люди имеют завышенную самооценку, считают себя умнее всех
»
«Поток» много к чему просится, и к «stream», и к «flow». Только кальками и спасаемся.
А качество? Серьёзно, предоставленная вами поисковая выдача практически однозначно свидетельствует в пользу «мемоизации».
Дальше можно не читать. Потому что вы исходите из неверной предпосылки, что основным предназначением ПростоПлеера было прослушивание музыки, и именно за эту услугу надо платить.
В действительности, одним из важнейших юзкейсов был шаринг музыки. Блоги, твиттеры, IM'ы кишат ссылками на ПростоПлеер.
Не имеет абсолютно никакого значения, заплатили ли вы за свой аккаунт, коль скоро у ваших читателей его нет.
Аналогичная картина: завтра разработчики bit.ly скажут, что теперь переход по их ссылкам стоит символических денег. Одновременно с этим громаднейшее количество пользовательского контента станет неработающим. Никакие рассуждения, что разработчики тоже хотят кушать, не оправдывают обман пользователей в своих ожиданиях. Это даже хуже, чем тихое навязывание мобильными операторами бесплатных услуг, исподтишка становящихся платными.
Не то что бы я хотел обделить разработчиков, нет, я не против, чтоб они так или иначе получали вознаграждение.
Но теперь это уже другой ресурс. Для всех он был «просто плеером», и он изменился. Для меня он был «бесплатным просто плеером» — и он умер. Вместо него появился новый ресурс под названием «платный просто плеер».
На некоторых ресурсах иногда проскакивают посты типа «Музыка, которую я ставил на повтор 100500 раз», и т.п. Народ туда кидает ссылки прямо на ПростоПлеер. А теперь этой возможности нет. Что толку, что у меня премиум-аккаунт, если у тех, с кем я хочу поделиться музыкой, его нет?
Другой негативный момент — это обман потребителей. Пару месяцев назад я купил премиум-аккаунт — и не получил заявленных в FAQ функций, за которые, собственно, и платил. Так, например, возможность скачивать плей-листы архивом так и не появилась. Это абсолютно явное мошенничество. Бесстыдный обман.
И — да, веб-морда ПростоПлеера стала глючить неимоверно. Проигрывание тупит, прогресс-бар сходит с ума.
Сраный ПростоПлеер скатился в сраное говно.
И не понятно, почему к «линукс с открытым кодом» применяются рассуждения в пользу повышения его надёжности, а в случае с «антивирус с открытым кодом» те же рассуждения приводят к «потенциально становится менее надёжным продуктом».
Не надо искать статью. Через несколько лет Джоэль сделал StackOverflow.com на .NET, nuff said.
bik-top.livejournal.com/37060.html
Пары пунктирных линий — это коридоры для непунктирных.
Прежде, чем на моём месте выбирать выражения, вы на своём-то постарайтесь. «Microsoft MVP», боже ж ты мой.
Иными словами, AssemblyFoldersEx-разделы реестра (упомянутые ещё Рихтером), не имеют отношения ни к GAC, ни к Silverlight.
Бред сивой кобылы. Для того, чтобы ссылаться на сборку без указания полного пути, нахождение её в GAC не является ни необходимым, ни достаточным. Это вообще независимые вещи.
GAC — это относится к разрешению ссылок на сборки CLR'ом, т.е. в рантайме.
AssemblyFoldersEx-разделы реестра — это относится к разрешению ссылок на сборки в процессе компиляции, т.е. в дизайн-тайме.
ru.wikipedia.org/wiki/Принцип_Керкгоффса
parseResult должно быть не String, а StringBuilder.
Прогони исходник через StyleCop и бинарник через FxCop.
Освой Linq, чтоб не городить ненужных циклов.