Да что там Explay, если Windows Phone 7.x (а значит и все смартфоны от Nokia, Samsung и HTC c ней) не поддерживала такие USSD запросы.
Настройки MMS там тоже как-то странно реализованы.
У Tele2 в Москве это связанно с отсутствием лицензии на 2G.
Если не ошибаюсь, частоты для 3G/4G различаются в США и Европе (и России), что отражается на поддержке частот в телефонах. В результате, при отсутствии 2G, роуминг, в том числе и голосовой, для некоторых абонентов просто не будет работать. Не думаю, что все операторы пойдут на это.
Более того, при использовании Bot Framework, сообщения еще и проходят через сервера Microsoft и никто не может гарантировать, что они не оседают там.
Также, Bot Framework позволяет подключить бота к Facebook Messenger (правда придется пройти ревью), в котором вся история переписки с ботом сохраняется в явном виде и доступна администратору привязанной страницы Facebook в любой момент.
По-моему, Dialogs позволяет работать с более гибкими, а не с более простыми сценариями. FormFlow позволяет пользователю ходить между полями формы вперед и назад, но эта последовательность полей задается жестко. А Dialog позволяет боту реагировать на каждое «неожиданное» сообщение пользователя и обрабатывать его, делая диалог более естественным. При этом, разумеется, реализация с Dialog требует больше усилий.
Забавно, что уже после публикации от NIST Social Security Administration ввела MFA через SMS. В любом случае, это выглядит более надежным, чем присылать временный пароль обычной почтой (кое-где и такое бывает).
Не вдавался в подробности, но проводник таки позволяет удалять такие папки. Ошибка возникает только если относительный путь превышает MAX_PATH. Т.е. можно зайти в предпоследнюю по вложенности папку и в ней все удалить, потом перейти выше и удалить еще… Если длина пути позволяет, можно даже с середины начинать.
Альтернативный способ — с помощью subst создать виртуальный диск, указывающий на папку, не лежащую в корне.
Был метод вроде такого:
private async Task A(IClient client)
{
var l = L;
if (l == null)
l = await service.GetL();
if (l == null)
return;
R = await client.Search(l);
}
В целях отладки другого кода я временно добавил в начале: await Task.Delay(TimeSpan.FromSeconds(10)); return;
Анализатору от моей наглости похоже снесло крышу: V3021 There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless.
Я, конечно, не против, если он будет ругаться на код после безусловного return (что компилятор, однако, и так делает). Но в чем провинились 'if' statements?
У меня в проекте V3062 срабатывает на код вида var vm = container.Get(); vm.Navigate(vm);
При этом, вызываемый метод выглядит как-то так: public void Navigate(T viewModel) { var t = typeof(T);… }
Т.е. параметр viewModel используется в том числе и для получения информации о типе переданного аргумента.
Нельзя ли сделать, чтобы эта диагностика не срабатывала, при условии, что метод не является static, и подозрительный параметр имеет тип из generic определения метода? А описанный сценарий — вынести в другую диагностику, чтобы можно было ее отдельно выключать.
Спасибо за диагностики для DependencyProperty — очень полезная штука. Работают даже для самостоятельно определенного класса DependencyProperty. Правда их названия, начинающиеся с «WPF:», несколько сбивают с толку, т.к. проверяемый код совместим с WPF только в плане наименований. Полагаю, они также работают для Silverlight и для UWP.
А вот диагностика V3052 могла бы быть немного умнее, реагируя на потерю стека в коде вроде этого:
catch (TargetInvocationException ex) { throw ex.InnerException; }
Под заголовком «бот для службы поддержки» ожидал прочитать об опыте создания бота заменяющего операторов-людей.
Схема с паролем, сохраняющимся в истории, не выглядит надежной. Лучше уж присылать пользователю ссылку с токеном и аутентифицировать его в браузере, после чего сообщать боту, что пользователь доверенный.
А можно по-подробнее про «финал AngelHack, который соберет команды победителей со всех стран»? На angelhack.com событие «AngelHack Silicon Valley 2016» такого же уровня, как и в Новосибирске, а никакой не финал. И там, и на angelhack.io главный приз — возможность поездки на Annual Global Demo Day от HACKcelerator.
Test Recorder для Visual Studio ожидаемо работает только c Android, так что никаких симуляторов, только эмуляторы. Кроме того, он внезапно оказался совместимым только с Enterprise версией VS.
Вы это серьезно? В оригинале такой проверки нет, хотя Conditions зачем-то доступно для записи и там. Лучше уж newValue проверять на null.
Настройки MMS там тоже как-то странно реализованы.
Если не ошибаюсь, частоты для 3G/4G различаются в США и Европе (и России), что отражается на поддержке частот в телефонах. В результате, при отсутствии 2G, роуминг, в том числе и голосовой, для некоторых абонентов просто не будет работать. Не думаю, что все операторы пойдут на это.
Также, Bot Framework позволяет подключить бота к Facebook Messenger (правда придется пройти ревью), в котором вся история переписки с ботом сохраняется в явном виде и доступна администратору привязанной страницы Facebook в любой момент.
Альтернативный способ — с помощью subst создать виртуальный диск, указывающий на папку, не лежащую в корне.
private async Task A(IClient client)
{
var l = L;
if (l == null)
l = await service.GetL();
if (l == null)
return;
R = await client.Search(l);
}
В целях отладки другого кода я временно добавил в начале: await Task.Delay(TimeSpan.FromSeconds(10)); return;
Анализатору от моей наглости похоже снесло крышу: V3021 There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless.
Я, конечно, не против, если он будет ругаться на код после безусловного return (что компилятор, однако, и так делает). Но в чем провинились 'if' statements?
При этом, вызываемый метод выглядит как-то так: public void Navigate(T viewModel) { var t = typeof(T);… }
Т.е. параметр viewModel используется в том числе и для получения информации о типе переданного аргумента.
Нельзя ли сделать, чтобы эта диагностика не срабатывала, при условии, что метод не является static, и подозрительный параметр имеет тип из generic определения метода? А описанный сценарий — вынести в другую диагностику, чтобы можно было ее отдельно выключать.
А вот диагностика V3052 могла бы быть немного умнее, реагируя на потерю стека в коде вроде этого:
catch (TargetInvocationException ex) { throw ex.InnerException; }
Схема с паролем, сохраняющимся в истории, не выглядит надежной. Лучше уж присылать пользователю ссылку с токеном и аутентифицировать его в браузере, после чего сообщать боту, что пользователь доверенный.