• Как работать с Com портом на C++ и Python?

    Nipheris
    @Nipheris Куратор тега C++
    boost::asio::serial_port - просто, кроссплатформенно, и со вкусом. Единственный минус - зависимость от буста. Однако если он в проекте уже и так есть - то тогда и проблем нет.
    Ответ написан
    Комментировать
  • Как организовать синхронизацию данных БД между разработчиками в период разработки?

    1) соглашусь с Алексей Николаев , если данных немного, и это именно development-данные (т.е. тестовые наборы данных), то миграции подойдут как нельзя лучше;
    2) если же все-таки речь идет о живых данных, то у Оракла есть Oracle Workspace Manager, который отвечает на ваш вопрос "как быть с данными?". Разумеется это компонент Oracle Database, о самостоятельных open-source решениях аналогах не слышал.
    Ответ написан
    Комментировать
  • Microsoft Visual Studio 2013, как перейти от простого вывода в консоли до полноценных программ?

    Nipheris
    @Nipheris Куратор тега C++
    как начать создавать программы с интерфейсом?

    Понять, что C++ имеет большую экосистему с множеством библиотек, которыми надо научиться пользоваться. Узнать, что такое Qt, wxWidgets, услышать краем уха про MFC (но не пользоваться без необходимости). Обязательно узнать про boost.
    Visual Studio 2010 я перетаскивал элементы кнопок, меню и тп. как показать это меню?

    Сложно догадаться, где вы это перетаскивали. В студии есть не только C++, то и масса других языков и технологий, возможно вы пользовались Windows Forms в связке с C#.
    Ответ написан
  • TFS. Не добавляется член команды. Ошибка TF400067. В чем причина?

    Судя по разным именам машины с TFS (ASDU789) и домена, из которого вы хотите взять пользователя (ASDU111) я предположу, что вы пытаетесь добавить в TFS локального пользователя другой машины. Это невозможно, т.к. TFS-сервер просто не знает про локальных пользователей машины ASDU111. Чтобы решить эту проблему, вам нужно либо развернуть Active Directory (которого у вас видимо нет), что удобнее, но требует нужной серверной редакции Windows, либо просто продублировать всех локальных пользователей рабочих станций на сервер: тогда у вас вместо ASDU111\fgh будет ASDU789\fgh и так для всех - у вас просто будет локальный пользователь НА СЕРВЕРЕ помимо такого же на рабочей станции.

    Важно понимать, что это именно дублирование пользователя - например, смена пароля для fgh на сервере TFS никак не отразится на пароле локального пользователя. Собсно, чтобы этого не было, службы каталогов и придумали.
    Ответ написан
    Комментировать
  • Какие технологии выбрать для создания кроссплатформенного файлового менеджера?

    Nipheris
    @Nipheris Куратор тега C#
    За JavaFX говорить не буду, вроде штука развивается, возможно наконец будет нормальная джава для десктопа; сравнивать не могу, не пользовался
    Также я видел что-то про Qt Quick и QML

    пожалуй это и стоит рассматривать для новых проектов.
    Сам я им не пользовался, но говорят, что WPF гораздо мощнее, чем Qt

    Раньше, когда появился - да, был значительно мощнее (до появления QML). Вообще был наверное самой продвинутой технологией для десктопа. Но уже 2015-й год, Qt Quick 2 и все такое, так что Qt и WPF уже вполне сравнимы.
    Если не ошибаюсь, то это совсем не кроссплатформенное решение

    Да, к сожалению. Поэтому вам резонно вернуться к рассмотрению Qt.
    рассказать про WPF что-то еще, я буду благодарен.

    дотнетовская технология, появилась в .net 3.0, использует direct3d для отрисовки, windows-only. Если нужны еще подробности - пишите в комментарии.
    то я больше склоняюсь к Qt, так как скорость работы всё же важнее скорости разработки

    хороший выбор для кроссплатформенного файлового менеджера, только замечу, что вы выбираете вы достаточно смело - в 95% случаев люди ищут либу к знакомому языку/платформе, т.к. обычно именно язык новый язык изучить не могут/не хотят. Если вы уверены, что C++ вы тянете, то тогда без вариантов - Qt.
    Ответ написан
    6 комментариев
  • Как сразу полностью закрыть сокет у TcpClient, без таймаута и освободить порт в системе?

    Nipheris
    @Nipheris Куратор тега C#
    по тому порту, который использовался tcp клиентом

    возможно снова подключиться по этому порту, без таймаута.


    Я вообще не пойму что вы делаете. Вы указываете фиксированный номер клиентского порта? Как и зачем?
    Ответ написан
  • Как можно использовать Visual Studio 2013 Platform Toolset в Visual Studio 2015?

    Nipheris
    @Nipheris Куратор тега C++
    1) поставить компилятор из 2013-й студии;
    2) выбрать установленный тулсет в свойствах проекта.
    Ответ написан
    2 комментария
  • Windows 10. Что в себе хранит оперативная память?

    Начиная c Висты, основной принцип работы ОС с оперативной памятью такой: если какое-то количество памяти НЕ требуется для работы в данный момент запущенных программ, то оно будет использовано под кэш. Это не значит, что абсолютно вся оперативная память будет занята сразу после запуска ОС, но это значит, что Винда не будет освобождать оперативку, пока она не понадобится кому-то еще.
    По этой причине для Vista+ нет особого смысла смотреть общую занятость RAM, гораздо важнее, для чего конкретно она сейчас используется (т.к. 2 гига может быть под кешем, а активно использоваться только 400 Мб). А для чего она используется, видно у вас на скринах. System сожрал конечно многовато, но это видимо у вас запущенный эмулятор съедает из режима ядра.

    Друго дело, если вы мучаетесь от свопа. Тогда нужно разбираться конкретнее (сперва убедиться, что диск шуршит именно изза свопа).
    Ответ написан
    Комментировать
  • Почему компьютер включается каждую ночь?

    Доброй ночи))
    Проверил в самой винде мышку и клаву, галочки на пробуждение от них также не стояли

    То же самое проверьте для всех сетевых карт. Эта настройка не коррелирует с Wake-on-Lan в биосе, и контролируется операционкой. Если бы он у вас включался из ВЫКЛЮЧЕННОГО состояния - то тогда да, биос бы это определял, а тут определяет ОС.
    Возможно кем-то (самим роутером?) посылается волшебный пакет, и комп пробуждается. У меня в аналогичной ситуации именно это было причиной. Винда любит будить другие машины, особенно если на них есть другие ресурсы, объявленные через UPnP и Ко (всякие расшаренные мультимедиа-библиотеки и т.д.).
    Ответ написан
    1 комментарий
  • Какие книги читать в первый год обучения C#?

    Nipheris
    @Nipheris Куратор тега C#
    Работаю

    Коллеги ничего не подсказали? Обычно справшивают чтобы устроиться, а вы уже на производстве.
    Ответ написан
    Комментировать
  • Идентифицирующая или неидентифицирующая связь?

    Смысл в том, что при идентифицирующей связи внешний ключ в дочерний сущности также становится частью первичного ключа. В этом и смысл фразы "зависимая сущность" - т.к. внешний ключ есть часть первичного, то сущность просто не может существовать без указания значения внешнего ключа.

    Хороший пример - сущность "элемент заказа" (OrderItem). Не может быть элемента заказа без самого заказа. Поэтому идентифицирующая связь из отношения "заказ" (Order) отлично тут подойдет. Если у заказа первичный ключ Id, то первичный ключом OrderItem будет, к примеру, такая пара: (OrderId, Number), где OrderId - внешний ключ в таблицу заказов, добавленный идентифицирующей связью, а Number - номер элемента заказа (строки в чеке, если так понятнее), позволяющий иметь несколько заказанных товаров в одном заказе.

    Неидентифицирующая связь, соответственно, НЕ добавляет колонки внешнего ключа в первичный ключ. Соответственно, значение внешнего ключа при неидентифицирующей связи может быть как NULL, так и NOT NULL.
    Ответ написан
    1 комментарий
  • Проблемы с изучением C# (разные операционные системы, сервера баз данных и версии фреймворка)?

    Nipheris
    @Nipheris Куратор тега C#
    Курсирует инфа, что программа написанная на VS 2015 не запуститься на XP и что под XP максимум NET 4.5 можно установить

    Не знаю, где она у вас там "курсирует", но под XP максимум устанавливается фреймворк 4.0. Это все на MSDN находится без проблем, тестируется на виртуалке для надежности.

    а современный 6-ой C# уже под версию 4.6

    Сейчас я вам фокус покажу. Создаем консольный проект на C#. Используем пару фич из C# 6.0:
    namespace ConsoleApplication1
    {
    	class A
    	{
    		public int Test { get; set; } = 0;
    	}
    
    	class Program
    	{
    		static void Main(string[] args)
    		{
    			Console.WriteLine(nameof(Main));
    		}
    	}
    }


    Далее ретаргетим проект на .Net Framework 2.0:
    67e06871538647a4a5e956d452298976.png
    Удаляем сборки и using-и, недоступные во втором фреймворке (для второго это LINQ и TPL).
    Компилим, запускаем, и радуемся.

    Выводы:
    1) под XP доступны все дотнеты до 4.0 включительно
    2) версия фреймворка определяет фичи, доступные в "стандартной библиотеке", а не фичи языка. Замечу, что в 4.0 есть и LINQ и Tasks;
    3) разрядность имеет значение, если ваша программа или зависимые библиотеки компилятся НЕ в AnyCPU. Иначе разницы нет.
    4) с SQL сервером вообще отдельная история, не знаю при чем тут вообще .Net. Это у вас наверное мнение такое о стеке MS, что у него все туго вместе завязано и не развязывается. Это не так. Меньше слушайте бестолковых коллег, больше читайте MSDN. Поверьте, после 3-х и более лет разработки под дотнет вы все вышеуказанное расскажете наизусть даже если вас разбудить в 3 часа ночи.

    корпоративное приложение тогда нужно использовать сервер БД в локальной сети

    конечно, Express версия это вам для примера, чтобы можно было создать и запустить, например, веб-приложение. Почитайте про ADO.NET, это подсистема работы с реляционными СУБД, и все поймете.
    Ответ написан
    2 комментария
  • Необходим найти совпадающие участки в двух битовых массивах, как это сделать?

    Наибольшая общая подпоследовательность

    Прям как вам надо.

    Если проблема извлечь битики откуда-то, или как-то их представлять - то язык программирования в студию. Или даже можно отдельный вопрос задать.

    UPD: Вот еще точнее: Наибольшая общая подстрока - для случая, когда разрывов в цепочке быть не должно ( Mrrl правильно заметил, что в подпоследовательности они могут быть).
    Ответ написан
    3 комментария
  • E-mail вместо id плюсы и минусы?

    1) Так и не понял, вы хотите email вместо логина или вместо id. Начинаете вопрос одним, заканчиваете другим.
    2) Если вместо логина - то что вообще значит "вместо"? Не использовать логин вообще или использовать email для авторизации?
    3) Если вместо id - оно как бы в теории можно, но как бы не стоит. Вы же помните, что вам потом внешние ключи ставить в виде email-ов? И обновлять их при смене адреса пользоватаелем. Правильно, это жесть, поэтому не надо.
    4) А чего вы вообще переживаете про WHERE `email`='почта@домен' - ну авторизовали аутентифицировали человека один раз, в сессию положили его id, дальше выборки по id, в чем задача-то?
    Ответ написан
    1 комментарий
  • Почему TFS build не подставляет значение макроса $(VSInstallDir)?

    В свойствах билдплана можно указывать дополнительные аргументы для передачи MSBuild-у при запуске сборки.
    Process->Build process parameters->5. Advances->MSBuild arguments
    С помощью аргументов можно задать значения MSBuild-пропертей таким образом:
    /p:ИмяСвойства=Значение
    Я думаю и VSInstallDir задать получится. Возможно значение этого свойства подтягивается из переменных окружения, а на билдсервере они не заданы.
    Ответ написан
  • Скомпилированная программа на Qt просит библиотеку qt5cored.dll, где искать?

    Nipheris
    @Nipheris Куратор тега C++
    <Папка установки Qt>\qtbase\bin - берем все что нужно и копируем в папку с exe. Что конкретно нужно, можно выяснить с помощью Dependency Walker или просто пытаться запустить, пока не запустится. А, да, еще вам плагин для платформы понадобится, создаете рядом с exe папку platforms, идете в подпапку с таким же именем в qtbase\bin, копируете оттуда qwindows.dll. Если этого будет недостаточно - ошибку в комментарии.

    Пробовал переименовать qt5core.dll в qt5cored.dll, пишет, что не может найти вход в библиотеку.

    Переименовывать не стоит, даже если бы это заработало, вы бы поймали кучу непонятных ошибок при отладке. Вам нужно либо скачать готовые дебажные dll-ки, либо скомпилить дебаг-версию Qt самому.
    Ответ написан
    Комментировать
  • Как защититься от sql иньекции?

    Nipheris
    @Nipheris Куратор тега C#
    с помощью класса SqlParametrs можно защититься от sql иньекции?

    Можно и нужно. При использовании параметров и prepared statements значения для конкретного запроса могут передаваться вообще отдельно от синтаксиса запроса. В любом случае, за корректность будет отвечать драйвер конкретной СУБД, а не вы.
    Ответ написан
    Комментировать
  • Можно ли написать вирус на JavaScript?

    Разумеется никому не нужен браузер, который вам позволит, не спрашивая пользователя, сделать на его машине что-либо серьезное. Фактически, в браузере и API-то толком нет, чтобы, допустим, файловую систему шерстить. Оно там и не нужно, веб-приложение на то и веб, что большинство данных берет с сервера, в отличие от приложения десктопного.
    Другое дело, что в браузере можно искать уязвимости, и пытаться их эксплуатировать, но "на чем" будет написан ваш вирус в таком случае - вопрос конкретной уязвимости. Если это будет удаленное выполнение кода, то на js вы скорее всего напишете лишь непосредственно эксплоит, а полезная нагрузка уже должна быть в нативном коде платформы жертвы.
    Писать обыкновенные вирусы на языках вроде C/C++/C# можно потому, что они исполняются как процессы операционной системы, и имеют доступ либо к нативному API, либо к API некоей плафтормы, такой как .NET. А эти API имеют достаточно средств для доступа к системе - достаточно лишь заставить жертву запустить тело вируса и, возможно, дать повышенные привелегии (хотя тем же шифровальщикам повышенные привелегии совсем не нужны - им ничто не мешает перезаписывать несистемные (пользовательские) файлы и вымогать деньги за дешифратор). В браузере таких средств нет. Если они и появятся, то тогда наверняка будет какой-либо механизм четкого разграничения доступа.
    Максимум что можно сделать, как сказал Itvanya - завалить движок js хламом (навыделять памяти, запилить кучу таймеров), с контролем съедаемых ресурсов сейчас у браузеров плоховато.
    Ответ написан
    Комментировать
  • Как получить доступ к MenuItem в ContextMenu?

    Nipheris
    @Nipheris Куратор тега C#
    В гугле не могу найти ничего кроме привязки данных, но в моем сценарии галка должна быть только на одном из 4 пунктов и я думал их переключать в коде, но не знаю как получить к ним доступ из кода.

    В codebehind конечно делать можно, но не нужно. Вы могли бы сделать нормальную viewmodel с четырьмя свойствами, соответствующими пунктам вашего меню и режимам, которые вы переключаете. После этого вы просто привязываете IsChecked каждого пункта меню к каждому свойству вьюмодели. А уже в ней вы реализуете логику, что если выбран один пункт, т.е. некоторое свойство из 4-х имеющихся проставлено в true, то вы снимаете true со всех остальных. Разумеется, чтобы привязка получила нужные уведомления, вы должны реализовать INotifyPropertyChanged.
    Если вышесказанное для вас туманно, то я могу посоветовать что почитать, т.к. ваше решение далековато от основных идей WPF и MVVM :)
    Ответ написан
    1 комментарий