• Как динамически определять условия для параметризованного select?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Специального встроенного механизма в jdbc нет. Нужно сначала сгенерировать строку для нового запроса с параметрами, потом выполнить установку этих параметром. Либо заготовить несколько запросов с разными условиями и также параметризовать их перед выполнением.
    Ответ написан
    2 комментария
  • Как определиться с направлением c#?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Программирование вторично. Нужно тренировать своё видение решения. Решение - это полный набор технологий, которые обеспечивают желаемый сервис пользователю. И программирование только часть такого сервиса. Если какой-то "дядя", который продумывает архитектуру приложения ошибётся и перекинет проблему на программеров, то лично вы в проекте будете иметь много головной боли.
    Поэтому не забывайте подтягивать админку, поучитесь настраивать сервера, контейнеры приложений и т.д. Иногда программирование начинается через день, неделю и более после тестирования архитектуры.
    Ответ написан
    Комментировать
  • Как поднять nginx/php/postgreSql сервер на Win7?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Php через Apache httpd работает. Не полный стек собираете. Для разработки локально вам вряд ли понадобиться nginx (Хотя все зависит от задачи).
    Ответ написан
  • Как вызвать функцию с динамическим именем?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Попробуйте так:
    block1.onclick = this[ 'fun'+func ];
    Согласен, что способ вызова странный, но иногда такое бывает нужно.
    Ответ написан
  • Как парсить двойные кавычки в JSON?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Если все пары ключ/значение раскиданы по строкам, то регулярными выражениями, между третьей и последней кавычкой заменить все кавычки на \" или ' (на ваш вкус)
    Ответ написан
    Комментировать
  • Народ как скомпилировать программу с помощью g++ которая работает с библиотекой png++?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Обычно в ./configure --help пишется как подключить библиотеку. Вполне возможно, что нужную библиотеку тоже придётся собрать из исходников.
    Ответ написан
    Комментировать
  • Как отслеживать активность пользователя на элементе?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Есть такой термин "карта кликов", "тепловая карта кликов": https://habrahabr.ru/company/altweb/blog/224847/
    Ответ написан
  • Можно ли во время выполнения проекта в idea остановить его и потом продолжить??

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Красный кружок называется "точка останова" (break point, хотя point break переводится несколько иначе) и в Visual Studio, и в Idea, и в Chrome DevTools, да и вообще в любых IDE. Не знаю, почему у неё цвет красный, но так исторически сложилось.
    Чтобы остановить программу в любом месте в многопоточных программах используется метод sleep. Обычно текущий поток останавливают Thread.sleep( число миллисекунд ). Вот пример Java: https://docs.oracle.com/javase/tutorial/essential/... После окончания указанного количество миллисекунд поток движется дальше.
    PS
    Я как-то делал эту фичу в разработке, чтобы ускорить отладку. Я знал где падает программа, но если её просто ввести в режим отладки, то приходилось ждать минут 10, пока дело дойдёт до точки останова. Тогда я ставил задержку 10 сек. в sleep, после которой стояла точка останова и за эти десять сек успевал перевести программу в режим отладки и после sleep сразу попадал на строчку со сбоем. Экономил себе 10 минут. (Небольшой лайфхак).
    Ответ написан
    Комментировать
  • Можно ли сделать автоматическую авторизацию??

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Если вам для тестов, то посоветую вам использовать fiddler. Там есть возможность скриптования и можно заменять всякие заголовки и куки на лету. Т.е. вы проходите авторизацию на сайте (любым методом, хоть post-аутентификацией, хоть oauth, хоть openid), вытаскиваете из любого запроса после авторизации куки или необходимые заголовки (очень редко) а после во всех запросах скриптом fiddler подменяете параметры. Я так прогонял тесты по смс-аутентификации, когда программа уж точно сама не может залогиниться. Таким способом можно делать любые запросы авторизованными, даже curl, wget и другие, главное перенаправить запрос через fiddler. Иногда кука может протухнуть, тогда заново перелогиниваетесь, прописываете новую куку в скрипт fiddler и продолжаете дальше... Бронебойная хрень даже для сайт-скраббинга. )))
    Ответ написан
  • Что взять за основу для сайта: несколько форм, несколько человек с разным уровнем доступа?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Если проект у вас вообще с одной формой, то не стоит заморачиваться со spring по двум причинам:
    1. Изучение Spring у вас займёт времени больше, чем сам проект.
    2. Spring автоматизирует действия, в которых вы ещё не очень разбираетесь. Это как изучать angular, не понимая JavaScript.
    Лучше освоить логику работы сервлетов, на уровне обработчиков запросов, потому что все Java-фреймворки работают через них.
    Tomcat нормально подойдёт.
    Ответ написан
  • Что входит в обязанности frontenda (вопрос к работающим)?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Почему вы решили, что эти фреймворка пилят бизнес-логику? Бизнес-логика это движение только данных. Перечисленные вами фреймворки только связывают интерфейс с данными, предоставляемые бизнеслогикой. Грань между бизнес-логикой и интерфейсом - смена интерфейса. Если интерфейс можно поменять без изменений на стороне backend-а (например с HTML на WPF), то разделение выполнено правильно.
    Ответ написан
  • Как сделать такую canvas анимацию?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Немного Chrome Dev Tools:

    9fa61752577344e7b3ea7747e1ca9f8e.png

    И вот библиотека найдена: www.createjs.com/easeljs
    Ответ написан
    4 комментария
  • Какой язык программирования удобен для создания контрольно/аварийных систем и систем автоматизации и для визуализации процесса (HMI)?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Посоветую всё-таки начать с декомпозиции задачи, т.к. сбор данных - одно, визуализация - другое. Не факт, что вам вообще сильно нужно программирование, т.к. если сможете загнать данные в какой-то формат (или БД) без программирования, то отобразить их сможете даже в Excel через источники внешних данных. Посоветую пока не углубляться в программирование, а постараться решить задачу малыми усилиями.
    На странице https://www.siemens-pro.ru/components/s7-300.htm достаточно много информации. Меня немного повеселила такая инфа в одном из документов (видать очень давно разрабатывают эти контроллеры, что в общем-то характеризует их весьма положительно):

    1cac292a9271443ea8bca4e809d00940.png

    Ну а если без шуток, если у вас есть доступ к контроллерам siemens, то вроде как не проблема снимать с них показания и складывать их в БД MSSQL (может даже бесплатный MySQL). Главное получить данные с контроллеров. Эксперименты с отображением можно отложить на потом.
    Ответ написан
    1 комментарий
  • Есть ли "тестовый репозиторий" для десктопных Windows приложений?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Я пишу десктопное Windows приложение и хочу прислать клиенту тестовую версию
    Такие вопросы должны быть прописаны в договоре. Что предоставляется, на каких этапах. По идее акт приёма-передачи. У вас есть какие-то официальные договорённости или всё на честном слове?
    Ответ написан
    Комментировать
  • Правильно ли я понимаю, что такое протоколы?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    В принципе понимание правильное. Почитайте ещё про многоуровневую модель OSI: https://ru.m.wikipedia.org/wiki/Сетевая_модель_OSI
    Есть общий протокол работы с протоколами на низком уровне - ASN.1: https://ru.m.wikipedia.org/wiki/ASN.1
    Для просмотра http-протокола используйте fiddler (www.telerik.com/fiddler) . Он показывает всю изнанку HTTP(S).
    Ну а логику работы по протоколу каждый производитель обеспечивает сам. Протокол только описывает как должен производиться обмен, но как это реализовывать каждой стороне протокол не регламентирует. Поэтому реализация протокола остаётся на совести производителя ПО или оборудования.
    Ответ написан
    Комментировать
  • Могут ли разные сущности объектов объединять в одной таблице?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Реляционная база подходит или стоит посмотреть в сторону NoSQL?
    Хранить первичные данные в реляционной базе правильно, а изменения, которые делают сотрудники (версионность) записывать в отдельную JSON-сущность и складывать в отдельную таблицу. Дело в том, что бизнеслогика может требовать возможности работы с транзакциями, а в NoSQL они поддерживаются только на уровне документа (ElasticSearch, Mongo). Если во время работы вам потребуется откатить изменения в нескольких сущностях, то NoSQL вам этого не обеспечат.
    Есть вариант скрестить NoSQL и реляционные базы - использовать JSON в MySQL. Но тут будет другая проблема - проверка схемы записываемых данных. Нетривиальная задача для MySQL. В общем, NoSQL на сегодняшний день ещё сыроват и для применения в проектах над ним надо попотеть. В Mongo схема вроде как есть, в ElasticSearch вообще жесткач по схеме (раз вы задаёте вопрос, то точно с ним не сталкивались и уверяю, что на изучение схемы в Elastic вы потратите время не меньше, чем на сам проект)

    Вчера как раз отвечал на похожий вопрос с версионностью в MySQL: Как сделать версионность как на вики?

    Что касается версионности, то тут есть ещё один момент - как защитить сущности от перезаписи другим пользователем? Основываясь исключительно на своём субъективном мнении я делаю инкрементируемое поле (скажем, version) для каждой сущности (группе значений, которых я принимаю за сущность), значение которого я отдаю при select-е из базы. При сохранении сущности клиент обязан предоставить этот индекс. Если индекс не менялся, то запись разрешена. Как только происходит запись сущности, то я инкрементирую это поле и если другой человек тоже попытается перезаписать данные со старым значением поля version, то программа ему не позволит это сделать (это очень примитивный способ блокировки, очень отдаленно напоминающий git. Там используются хеши, ну а я все упростил до безобразия) Проверка значения поля version делается в триггере, он же и отменяет процесс записи, если версии не совпадают (чего как раз нельзя сделать в чистой NoSQL). Можно было бы сделать как в 1С блокировку чтения, но для программ не уровня 1с имеем кучу геморроя при реализации.

    Что касается Excel и Word, то читайте описание формата OOXML и смотрите библиотеки по работе с офисными форматами. Для Node не знаю, но для Java и C# есть очень мощные, если не хотите разбираться с OOXML.

    Остальные сущности по бизнеслогике вы описали нормально. Лично я бы в постановке задал бы несколько вопросов непосредственным исполнителям этой бюрократической процедуры, а так вроде все норм.
    Ответ написан
    1 комментарий
  • Как сделать версионность как на вики?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Не работал с бухгалтерскими базами, но для своей базы MySQL хранение истории изменений использую JSON. Есть отдельная таблица history с полями - table_name, table_id и history (JSON) с данными типа массив [], в который добавляются записи формата JSON, за которыми производится наблюдение. На пользовательской таблице висят триггеры на добавление, изменение, удаление. Как только в пользовательской таблице производятся изменения, то триггеры записывают изменения в таблицу history. Это позволяет отслеживать всю историю работы с записью от момента создания, до удаления не вставляя код во всякие процедуры или бизнеслогику, а работая абстрактно только средствами базы.
    Ответ написан
    4 комментария
  • Возможно ли загрузить файл через форму автоматически?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Если у вас задача тестировать upload файлов через форму, то генерировать http-запросы выгрузки файлов можно не только через браузер. Выгрузка файлов - это стандартизованная процедура http протокола, а не просто фишка браузера. Называется multipart form data: https://ru.m.wikipedia.org/wiki/Multipart/form-data Сгенерировать такой запрос как через curl, fiddler, так и на разных языках, например c#: https://stackoverflow.com/questions/27425043/uploa... и это позволит вам выполнить даже нагрузочное тестирование выгрузки файлов на сервер.
    Ответ написан
    Комментировать
  • Whitelist для CORS из базы данных?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Учитывая, что CORS не поддерживает wildcard и regexp-ы, то без проверки тут не обойтись и нормальной практики тут нет. Замерьте сколько времени занимает у вас проверка с запросом к БД и если устраивает, то работайте так. Если нет, то ищите подходящий вариант БД или храните белый список прямо в коде.
    Ответ написан
    Комментировать
  • Нужна ли программисту профильная математика?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Чем больше вы знаете, тем лучше. Как обычно, самым важным качеством программиста является поиск решения. Сначала правильного, потом оптимального. Иногда это математическое решение, иногда нет. Но если уж речь идёт об образовании, то его никогда мало не бывает. Неочевидное, нелогичное следствие - учиться надо будет всю жизнь. Эх, если бы мне об этом сказали в первом классе, я бы очень расстроился )))
    Ответ написан
    8 комментариев