Статья хорошая, но на мой взгляд местами есть немного софистики, особенно в пункте про дефицит
Например:
«Разумеется, покупатель находит для себя целый ряд оправданий, не связанных с психологическим эффектом, например, «мне удобнее использовать маленькую упаковку», «мне не нужно больше». „
На мой взгляд здесь нет никаких психологический оправданий — только вопрос удобства.
К примеру, несколько раз брал вместо 1,5 литровой бутылки воды 4-ех литровые (потому что дешевле) и оказалось что это очень неудобно. Неудобно таскать, неудобно наливать воды и т.д.
То же самое насчет крекеров — я бы взял два — потому что быстро насыщаешься и хранить остальные крекеры неделями уже совершенно не хочется. и т.д. После того как несколько раз выбросил недоеденные конфеты из коробки тоже стараюсь брать меньше — столько сколько хочется съесть в ближайшее время
Возможно потому что я сам работаю разработчиком, но закрытое тестирование отпугивает от продукта больше (на мой взгляд — продукт настолько сырой и недоделанный/бажный что даже публиковать еще нельзя)
Также скорее всего уже не куплю билет в кино/концерт если лучшие места уже заняты (скорее даже наоборот — стараемся подобрать время когда будет как можно меньше всего народу в зале).
Присоединяюсь к вышесказанным комментариям и вдобавок — кто будет контролировать знак?
К неприкрытому нацизму я не вижу еще и логики: Легальные мигранты, (как Вы выразились, «с мозгами» (остальные же без мозгов очевидно), только пострадают и отпугнем их, а нелегальные и так нелегальные — могут наштамповать на продукт что угодно: лебедь, принтер, щуку…
На мой взгляд идея не только аморальна, но и абсурдна.
Прошу прощения что отвечаю так поздно — только сейчас в очередной раз загуглив решение проблемы увидел комментарий. Дело в том что XAML разработчикам при создании ViewModel очень много приходится создавать property with backing field только для того что бы вызывать OnPropertyChanged для этого поля или дополнительно для нескольких полей. И таких полей приходится делать очень много. И при этом рефакторинг значительно усложняется если решили что это поле должно быть в другой VM. Вместо того что бы «вырезать»-«вставить» получаем «вырезать» «вставить» вернуться, найти это поле где оно было «вырезать», «вставить». Если решили удалить это проперти совсем — можно запросто забыть удалить поле наверху и т.д. и т.п. Да при построении логики это может быть и удобно когда поле генерируется на верху, но при активной работе с VM (а эта чуть ли не львиная доля работы для тех кто работает с XAML) это страшно неудобно и раздражает. То же самое касается Dependency Property. А в целом решарпером очень доволен — один из тех продуктов за который не жалко потраченных денег, но вот это «фича», которая по мнению JetBrains сделала нашу жизнь гораздо проще, субъективно снижает ценность продукта.
По сути получится то же самое если просто давать слабый электрический заряд в голову приемника. Было бы намного интереснее если бы мог различать два сигнала — к примеру нажатия «влево» или «вправо».
Нет такой традиции проявлять неуважением к людям среди которых живешь и нет такой традиции стрелять на свадьбе, танцевать под громкую музыку среди ночи. Они говорят что не позволят ущемлять себя, но при этом проявляют полное неуважение к окружающим и по сути позорят весь кавказ. Я сам кабардинец и в полной мере осуждаю их выдуманное поведение и нравы которые очень и очень далеки от того как ведут себя дома. Очень жаль что у такие люди могут откупаться от судов и жаль что законы относительно поведения в обществе слишком мягкие.
Где то около 20% девочек HR с которыми приходилось общаться — общались в основном уничижительно, а некоторые с нескрываемым пренебрежительно-презрительным тоном. При чем когда спрашивали об опыте работы переспрашивали тоном «а вы сами верите в то что говорите?». А когда спрашивали про прописку и говорил что я с Кабардино-Балкарии — где то половина отвечали «а это в какой стране?» или «это в России?» или есть ли у меня гражданство в РФ. Одна даже открыто спросила — действительно ли я что то умею или решил на «авось» попробовать устроиться? И т.д. в этом духе. Создается ощущение что некоторые HR зовут на собеседование для того что бы самоутвердиться и при этом думаешь то ли этот сотрудник так со всеми общается, то ли смотрит на мое ФИО и небольшой кавказский акцент и в любом случае чувствуешь себя очень неуютно и все о чем думаешь о том что бы как можно быстрее, вежливее и тактичнее завершить собеседование и уйти поскорее.
При чем среди коллег технарей такого отношения не встречал почти никогда (кроме одного раза при прохождении собеседования в одном крупном российском интернет-магазине).
В WP изначально было более мягкое требование по безопасности в отличие от W8 где изначально закладывалась более жесткие требование к безопасности. Кроме того шаблоны Live Tile в W8 и WP отличаются.
UI дизайнер в студии со сложным Xaml перестал падать с ошибокй Error HRESULT E_FAIL has been returned from a call to a COM component. И в целом стал быстрее работать.
Присоединяюсь к мнениям выше — Вы умышленно перевираете и сравниваете теплое с длинным пытаясь продвинуть свой сервис.
Если я подписался на какой нибудь блог — к примеру подписался на блог Скотта Хансельмана или на статьи www.geekchamp.com — значит я это сделал потому что мне оттуда интересно все — а не то что news 360 посчитает интересным для меня. Если вдруг среди технических статей автор блога поделится ссылкой на интересную утилиту или объявит о вебинаре — и news 360 посчитает что мне это не интересно — значит оно мне не нужно?
При всем уважении к вашему действительно хорошему и полезному для некоторых сервису, это как автоматизированный тематический поиск в инете и на данный момент для меня ваш сервис выдает несоизмеримо больше мусора в котором надо искать что то полезное и интересное, чем RSS канал на которого я умышленно подписался.
> Пожалуйста, указывайте на любые недочеты в статье. Буду учиться.
Я позволил себе последний код чуть чуть оптимизировать:
while(true)
{
var doc = XDocument.Load("https://api.vk.com/method/messages.getHistory.xml?uid=12345&offset=" + m + "&count="+n+"&access_token=" + token);// Загружаем наш xml с сервера и начнем обработку
foreach (var el in doc.Root.Elements("message"))// Раскрываем корневой узел
{
foreach (var el_msg in el.Elements("attachment"))// Теперь в узле message
{
foreach (var el_attch in el_msg.Elements("photo"))
{
foreach (var el_photo in el_attch.Elements("src_xbig"))
{
// Скачиваем фотографию в img/
src_client.DownloadFile(el_photo.Value, "img/img" + k + ".jpg");
k++;
}
}
}
}
// Ну и конечно увеличение параметра count
m += n;
}
А для не совсем маленьких, так же сделал linq вариант:
while (true)
{
var doc = XDocument.Load("https://api.vk.com/method/messages.getHistory.xml?uid=12345&offset=" + m + "&count=" + n + "&access_token=" + token);// Загружаем наш xml с сервера и начнем обработку
var photoElements=
doc.Root.Elements("message")
.SelectMany(el => el.Elements("attachment")
.SelectMany(el_msg => el_msg.Elements("photo")
.SelectMany(elAttch => elAttch.Elements("src_xbig"))));
foreach (var el_photo in photoElements)
{
// Скачиваем фотографию в img/
src_client.DownloadFile(el_photo.Value, "img/img" + k + ".jpg");
k++;
}
// Ну и конечно увеличение параметра count
m += n;
}
Можно так же еще сделать десериализацию данных без ручного разбора — но в рамках этой задачи наверное смысла нет.
> «Остерегайтесь инструментов повышения производительности»
А ведь сама студия тоже инструмент производительности. Можно заменить в статье R# на VS и будет такой же ошибочной статьей. Можно ведь писать в блокноте и компилировать код из консоли — студия только мешает так как навязывает «программирование снизу-вверх».
Рассматривать R# только как инструмент для быстрого набивания кода так же абсурдно как и рассматривать VS в том же ключе.
Я лично минусовал статью за категорическое несогласие с автором. А за перевод конечно же спасибо. Но не могу сказать что, объективно и аргументировано написано.
Если речь идет о MVC то конечно — есть готовый фреймворк ASP.NET MVC который поставляется прямо в студии. Но вы наверняка спрашивали про WF — конечно же WF можно без проблем использовать и в веб приложениях. Просто обычно WF достаточно медленная штука и если вам нужна высокая производительность то WF, мягко говоря, надо использовать очень осторожно.
На самом деле все MV-x (MVC, MVVM, MVP и т.д.) шаблоны в чистом виде не подходят для разработки больших приложений, и порой даже для не больших кросс-платформенных приложений. По сути это все равно что использовать Code Behaind в WinForms, WPF и т.п. К примеру в своих проектах там где испольузую моно, ядро приложения (общий код) пишу классической трехзвенкой а дальше для работы с UI для Windows Phone, Win 8 и Single Page Web клиент использую шаблон MVVM (VM работает с LogicLayer). А для Android, iOS и классической web-интерфейс на MVC (Controller работает с LogicLayer).
Я планировал сделать очередную статью на эту тему на каком нибудь простом кроссплатформенном (Android, iOS, WP, W8, Web) примере вроде простого списка покупок или списка задач с бекендом, но не уверен что это будет кому нибудь интересно.
Например:
«Разумеется, покупатель находит для себя целый ряд оправданий, не связанных с психологическим эффектом, например, «мне удобнее использовать маленькую упаковку», «мне не нужно больше». „
На мой взгляд здесь нет никаких психологический оправданий — только вопрос удобства.
К примеру, несколько раз брал вместо 1,5 литровой бутылки воды 4-ех литровые (потому что дешевле) и оказалось что это очень неудобно. Неудобно таскать, неудобно наливать воды и т.д.
То же самое насчет крекеров — я бы взял два — потому что быстро насыщаешься и хранить остальные крекеры неделями уже совершенно не хочется. и т.д. После того как несколько раз выбросил недоеденные конфеты из коробки тоже стараюсь брать меньше — столько сколько хочется съесть в ближайшее время
Возможно потому что я сам работаю разработчиком, но закрытое тестирование отпугивает от продукта больше (на мой взгляд — продукт настолько сырой и недоделанный/бажный что даже публиковать еще нельзя)
Также скорее всего уже не куплю билет в кино/концерт если лучшие места уже заняты (скорее даже наоборот — стараемся подобрать время когда будет как можно меньше всего народу в зале).
К неприкрытому нацизму я не вижу еще и логики: Легальные мигранты, (как Вы выразились, «с мозгами» (остальные же без мозгов очевидно), только пострадают и отпугнем их, а нелегальные и так нелегальные — могут наштамповать на продукт что угодно: лебедь, принтер, щуку…
На мой взгляд идея не только аморальна, но и абсурдна.
При чем среди коллег технарей такого отношения не встречал почти никогда (кроме одного раза при прохождении собеседования в одном крупном российском интернет-магазине).
stackoverflow.com/questions/14404834/loading-list-of-available-fonts-using-c-sharp-in-winrt
но в любом случае можно поставить свои шрифты вместе с приложением.
Если я подписался на какой нибудь блог — к примеру подписался на блог Скотта Хансельмана или на статьи www.geekchamp.com — значит я это сделал потому что мне оттуда интересно все — а не то что news 360 посчитает интересным для меня. Если вдруг среди технических статей автор блога поделится ссылкой на интересную утилиту или объявит о вебинаре — и news 360 посчитает что мне это не интересно — значит оно мне не нужно?
При всем уважении к вашему действительно хорошему и полезному для некоторых сервису, это как автоматизированный тематический поиск в инете и на данный момент для меня ваш сервис выдает несоизмеримо больше мусора в котором надо искать что то полезное и интересное, чем RSS канал на которого я умышленно подписался.
> Пожалуйста, указывайте на любые недочеты в статье. Буду учиться.
Я позволил себе последний код чуть чуть оптимизировать:
А для не совсем маленьких, так же сделал linq вариант:
Можно так же еще сделать десериализацию данных без ручного разбора — но в рамках этой задачи наверное смысла нет.
Единственное возможно стоит картинки перенести в хабрасторадж — а то уже не открываются.
> Код, связанный с OpenGL я в тексте статьи опущу, т.к. он достаточно простой.
Возможно не стоило опускать а добавить спойлером — это тоже интересно — залез в исходники ради них :).
А ведь сама студия тоже инструмент производительности. Можно заменить в статье R# на VS и будет такой же ошибочной статьей. Можно ведь писать в блокноте и компилировать код из консоли — студия только мешает так как навязывает «программирование снизу-вверх».
Рассматривать R# только как инструмент для быстрого набивания кода так же абсурдно как и рассматривать VS в том же ключе.
Я планировал сделать очередную статью на эту тему на каком нибудь простом кроссплатформенном (Android, iOS, WP, W8, Web) примере вроде простого списка покупок или списка задач с бекендом, но не уверен что это будет кому нибудь интересно.