• Правильно ли хранить данные JSON в MySql, в место создания кучи таблиц?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Можно, конечно, только тут есть одна проблема - проверка валидности данных перед записью в MySQL. Из коробки в MySQL нет встроенных средств проверки схемы. Я такую проверку писал на Java/JavaScript/Nashorn (чтобы одна и та же функция валидировала JSON на выходе со страницы и на входе в сервлет) перед сохранением.
    Ответ написан
    Комментировать
  • Где рассказывать о своих Open Source проектах?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Можно и на хабре опубликовать с подробным описанием даже коммерческий проект, но для этого надо использовать тэг "я пиарюсь". Поищите в правилах хабра условия такой публикации. Я пару раз публиковал так свои проекты. Есть некоторые технические ограничения, про которые не написано в правилах - если после публикации вы обнаружите ошибку в тексте, то после редактирования вам не дадут его выложить, тк это будет считаться повторной публикацией. Если уберёте в черновики, то вернуть обратно сможете не раньше, чем через сутки, но дата публикации не изменится и ваша статья уйдёт в списках глубоко вниз. Так что надо перед публикацией все оооочень тщательно проверить - текст, ссылки и картинки. Подробности - в саппорте.
    Ответ написан
    Комментировать
  • WPF XAML шаблон?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Да, можно. Нужно в проект добавить новый тип, называется "control". Назовём его MyControl.xaml. Он тоже является типом XAML и редактируется как обычное окно. Там можете создать любую структуру GUI, которая вам нужна (кнопки, чекбоксы, списки, вот это все). Потом возвращаетесь в код главного окна, в которое надо добавить этот control. Создаёте программно новый Control:
    MyControl ctrl = new MyControl();
    this(или подконтрол окна).Children.Add(ctrl);
    После этого ваш новый control появится в главном окне в runtime.
    Можно ещё добавлять новый control и визуально, но по моему опыту Visual Studio до 2017 версии неохотно работает в визуальном редакторе с пользовательскими контролами, много глючит и иногда даже требует перезагрузки Visual Studio. 2017-я стоит у меня не так давно, пока не довелось проверить на этот глюк.
    Ответ написан
    Комментировать
  • Где можно практиковаться в программирование на С++ и Java?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Я не поклонник А. Лебедева, но иногда он говорит правильные вещи. Например, по поводу "Вышлете мне тестовое задание?" Он говорит - "а придумайте его сами!" Так и вообще с задачами. Нужно увидеть задачу. Точнее увидеть, как с помощью программирования вы можете перевести проблему из некоторого нерешённого состояния в решённое. В жизни задача никогда не скажет вам, что "вот она я, задача" и добровольно отдаст своё решение.
    Когда я занимался легкой атлетикой, то думал, что есть два состояния, одно, когда я тренируюсь, а второе, когда я выступаю. Тренер мне объяснил, что состояние только одно - тренировка. Только на соревнованиях выкладываешься больше. Это вообще изменило моё отношение к поиску задач.
    Если вы считаете, что способны решить задачу, то разве вы не способны её придумать? Каждая задача - это проверка своих возможностей, вызов. Если вы не работаете над решением задачи в таком ключе, значит вы неправильно и занимаетесь и работаете, т.к. нет развития.
    Ответ написан
    Комментировать
  • Программа не запускается под обычным пользователем. В чем может быть проблема?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Я обычно начинаю с просмотра журналов Windows:

    59f1d568aef9f450810663.png

    потом пускаю в ход procmon от sysinternals
    Ответ написан
    Комментировать
  • В случае ошибки, обязательно ли функции что то вовзращать?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Уважаемый Дон. Есть ещё третий вариант. Передать в функцию объект и одним из его свойств назначать, что функция действительно получила конечный результат. И без выставления этого свойства любой ответ признаётся невалидным.
    Все зависит от задачи.
    Ответ написан
    Комментировать
  • Как программно вызвать диалог использования программы по умолчанию для заданного протокола (http/https)?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Нашёл решение. На основе кода: https://github.com/joewalker/devtools-window/blob/...

    public static void NotifySystemOfNewRegistration() {
    
                tagOPENASINFO info = new tagOPENASINFO();
                info.cszFile = "https";
                info.cszClass = null;
                info.oaifInFlags = tagOPEN_AS_INFO_FLAGS.OAIF_FORCE_REGISTRATION |
                                   tagOPEN_AS_INFO_FLAGS.OAIF_URL_PROTOCOL |
                                   tagOPEN_AS_INFO_FLAGS.OAIF_REGISTER_EXT;
                SHOpenWithDialog(IntPtr.Zero, ref info);
            }
    
            // http://msdn.microsoft.com/en-us/library/windows/desktop/bb773363(v=vs.85).aspx 
            private struct tagOPENASINFO {
                [MarshalAs(UnmanagedType.LPWStr)]
                public string cszFile;
    
                [MarshalAs(UnmanagedType.LPWStr)]
                public string cszClass;
    
                [MarshalAs(UnmanagedType.I4)]
                public tagOPEN_AS_INFO_FLAGS oaifInFlags;
            }
    
            [Flags]
            private enum tagOPEN_AS_INFO_FLAGS {
                OAIF_ALLOW_REGISTRATION = 0x00000001,   // Show "Always" checkbox
                OAIF_REGISTER_EXT = 0x00000002,   // Perform registration when user hits OK
                OAIF_EXEC = 0x00000004,   // Exec file after registering
                OAIF_FORCE_REGISTRATION = 0x00000008,   // Force the checkbox to be registration
                OAIF_HIDE_REGISTRATION = 0x00000020,   // Vista+: Hide the "always use this file" checkbox
                OAIF_URL_PROTOCOL = 0x00000040,   // Vista+: cszFile is actually a URI scheme; show handlers for that scheme
                OAIF_FILE_IS_URI = 0x00000080    // Win8+: The location pointed to by the pcszFile parameter is given as a URI
            }
    
            // http://www.pinvoke.net/default.aspx/shell32.SHOpenWithDialog
            [DllImport("shell32.dll", EntryPoint = "SHOpenWithDialog", CharSet = CharSet.Unicode)]
            private static extern int SHOpenWithDialog(IntPtr hWndParent, ref tagOPENASINFO oOAI);

    Результат:

    59e7476d5d485533031337.png

    Диалоговое окно выводится.
    Ответ написан
    Комментировать
  • Как сделать два INSERT в разные таблицы одним запросом?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Похоже, что вам просто нужна транзакция. В таком случае количество запросов по разным таблицам на вставку/обновление/удаление не имеет значения.
    Ответ написан
    Комментировать
  • Как остановить выполнение AJAX по результату ответа от сервера?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Ну так и надо программировать ответ от сервера в котором вы укажете, правильно или нет пользователь ввёл данные. А пока идёт ajax-запрос - блокировать интерфейс
    angular-block-ui.nullest.com/#!/examples/element-b...
    jquery.malsup.com/block/#demos
    А так да, остановить выполнение скрипта нельзя.
    Ответ написан
    Комментировать
  • Почему возникает ошибка No 'Access-Control-Allow-Origin' header is present...?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Мне в своё время вот эта статья помогла:
    https://learn.javascript.ru/xhr-crossdomain
    Одного заголовка "Access-Control-Allow-Origin" помнится было мало.
    Ответ написан
  • Изучение математики через программирование, глупое решение?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Пока задача не решена у неё нет алгоритма решения.
    Бывает, что задача не решается. В этом случае надо доказать, что решения нет.
    Можно быть умным человеком и без знания математики.
    В фильме "Западня" главный герой сказал: "Сюрпризы бывают всегда".
    Бумага иногда помогает.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы при определенном if получалась ошибка сервера?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    С ошибкой 500 плохой вариант. Все ошибки HTTP введены для технических проблем, а не для проблем с бизнеслогикой. В вашем случае сервер работает нормально, поэтому надо вернуть 200. Лучше доработайте бизнеслогику.
    Ответ написан
    Комментировать
  • Какая из областей программирования, предположительно, в будущем не сильно измениться?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Думаю, что в ближайшее время не изменятся требования к кандидатам при устройстве на работу.
    Ответ написан
    Комментировать
  • Коэффициент полезных данных XML, JSON?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Все зависит от того, кто и как организует эти данные. Поскольку наименования атрибутов Json/xml разработчик выдумывает сам, то тут пропорции могут быть совершенно разнообразного масштаба. Эти форматы создавались для возможности работы с ними человеком, в отличии от всяких dbf и др.
    Кроме того, можно "взять" и запаковать XML, как это сделал Microsoft с форматами docx и xlsx. (Это уже не по теме)
    В отношении пропорций понятнее такое понятие как url-encode - преобразование двоичных данных в ascii. Тут очевидно увеличение объема процентов от 30 и более. Такое сравнение с JSON/XML не очень подходит.
    Ответ написан
    2 комментария
  • Win7, почему долго открывается контекстное меню?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Могу предположить, что у у вас в контекстном меню есть пункты, которых там не было изначально. Особенность некоторых пунктов в том, что их инициализация проводится каждый раз при открытии меню. И иногда этот процесс бывает длительный, особенно, когда в пункте контекстного меню требуется предоставить актуальную информацию. А если это файловая инфа, так это норма с туплением. Надо либо выкинуть часть пунктов либо смириться.
    Если хотите глянуть, что за программы стоят, то могу посоветовать (исключительно предвзятый мой выбор)
    www.door2windows.com/ultimate-windows-context-menu...
    Ответ написан
    3 комментария
  • Почему не выполняется второй запрос C# + xNet?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    У c# как и любого браузера есть ограничение на одновременное подключение к одному сайту. Гляньте этот пост: https://stackoverflow.com/questions/1361771/max-nu...
    Ответ написан
    Комментировать
  • Как в elasticsearch связать данные?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Изначально сам ElasticSearch так делать не умеет и его и не планировали делать таким. Важно понимать, что elasticsearch не база данных и не имеет таких функций по выборке, как реляционные базы. Предполагается, что вы добавите все необходимые данные для возможных вариантов запросов в сам elasticsearch. Т.е. если вы предполагали, что вам потребуется извлекать данные по соответствующему id, то эти данные и следовало добавить СРАЗУ в схему! Именно поэтому elasticsearch идёт как дополнение к базе данных, а не как её заместитель, хотя иногда и может подходить для хранилища, но не для неопределенного круга задач, как реляционные базы.
    Поэтому, если вы все-таки хотите использовать связи, то только самостоятельной выборкой данных из mongo на основе id-шников, полученных из elasticsearch.
    Ответ написан
    1 комментарий
  • Как научиться писать большие javascript приложения?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Большое приложение не является монолитным. Оно состоит из набора маленьких приложений, которые выполняют свои маленькие задачи. Любая большая программа начинается с маленького прототипа, который потом вырастает до галактических размеров. Ну, если получается. Получается не очень часто. Часто получается выбрасывать прототип и писать новый. Со временем учитесь правильной архитектуре с самого начала и тогда разработка большого приложения идёт несколько быстрее.
    Например, я вчера получил ошибку в архитектуре, которую программировал три дня на c#. Пришлось исправлять несколько часов. Знаете какое ощущение? Отличное! Я все-таки решил задачу!
    Ответ написан
    3 комментария
  • Как настроить Fiddler так, чтобы просматривать траффик на всех устройствах подключённых к модему?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Вам нужно настроить проксирование на iPad (https://www.howtogeek.com/293676/how-to-configure-... и указать на fiddler на вашем компе. В настройках fiddler-tools-fiddleroptions прописать "allow external access".
    Проксирование запросов настраивается только на клиенте (в отличии от маршрутизации или реверс-прокси). Поэтому собирать трафик вы сможете, только если руками пропишите прокси на все свои устройства. "Fiddler echo service page" в данной задаче не требуется.
    Ещё: возможно нужно будет разрешить дешифровать трафик https, но iPad будет ругаться, что трафик ненадежный. Тут надо будет найти, как прописать root сертификат от fiddler в iPad.
    Ответ написан
  • Как создать исполняемый файл с использованием maven java project в Intellij idea и конечно же selenium и testng?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Надо использовать package, не install:

    52ad3bc62cb64d229bf0813c52141d48.png


    5ccebcd6e6494895a11388bfb7cd8151.png

    install выполняется после того, как пакет собран. Install кладёт файл в локальный репозиторий.
    Ответ написан
    Комментировать