• Из-за чего возникает перегруженность процессора при минимальных действиях?

    Вот у вас на скрине кнопочка есть - Монитор ресурсов, вот жмите ее, выбираете вкладку CPU, там в группе Процессы есть колонка Average CPU (не помню как по-русски), сортируете по убыванию - смотрите, кто в среднем жрет проц за последнюю минуту.
    Ответ написан
    Комментировать
  • Какой движок учётной (информационной) веб-системы выбрать?

    Несколько независимых рекомендаций
    1. Многие из перечисленных вами требований стандартны для большинства современных информационных систем, и предментными не являются. Вам стоит обдумать конкретные требования и конкретные ваши процессы на предприятии или в исследованиях. Если не считать некоторых продвинутых требований (история и разграничение доступа по классам), то вы и описали что-то вроде Access, которое как бы "подходит" для всего.
    2. Все-таки весьма сомнительно то, что вам нужна система для учета любых объектов, особенно с учетом того, что вы дали конкретное описание модели. Это бессмысленная цель, подобная система реально не упростит вам задачу. Вам стоит поставить конкретную задачу и автоматизировать ее. Невозможно получить что-то полезное на общем уровне, не вникая в детали. На общем уровне можно открыть Ворд или опять-таки Access, и забить в табличку данные.
    3. Если вам важна привязка к карте, посмотрите в направлении GIS-систем. Многие из них предлагают что-то похожее на ваши требования - создавать объекты с любым набором свойств (помимо геометрии). Только обычно клиентский софт в таких системах используется для работы именно с геометрией - все прочие операции автоматизируются отдельно (тут полезно хранить данные в СУБД общего назначения, классика жанра - PostgreSQL + PostGIS).

    P.S. Все-таки у вас видимо вполне конкретная задача, которую вы зачем-то пытаетесь обобщить. Система для учета любых объектов называется СУБД, а инструмент для выполнения операций и вычислений - языком программирования.
    Ответ написан
    Комментировать
  • Не могу понять как исправить ошибки в проекте QT Widgets?

    Nipheris
    @Nipheris Куратор тега C++
    Первый фрагмент - вы хедер с Profile-ом не забыли заинклудить?
    Второй фрагмент - пересоберите moc-файл, в котором эти ошибки. Видимо он уже не актуален.
    Ответ написан
  • Формирование из входного двоичного файла сортированоой коллекции структур с двумя полями?

    Nipheris
    @Nipheris Куратор тега C++
    Потоки и ввод/вывод в стандартной библиотеке C++:
    en.cppreference.com/w/cpp/io

    Если у вас уникальные ключи у структур, и не очень много их, юзаете для хранения вот это (реализовав компаратор):
    en.cppreference.com/w/cpp/container/set
    Если неуникальные или очень много, берете связный список и поддерживаете сортированность, вставляя в нужное место списка:
    en.cppreference.com/w/cpp/container/list - список
    https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%80%D... - сортировка

    Проходиться и по сету и по списку можно итераторами, количество элементов вернет метод size().

    Если вам что-то осталось непонятным, допишите. Если вам ничего не понятно, советую начать с изучения языка C++.
    Ответ написан
    Комментировать
  • Какова роль интерфейсов в ООП?

    Много ответов есть уже, лучше попробую идти рядом с вашими словами. Итак,
    > Зачем мне создавать файл, контролирующий это, если я и сам могу контролировать то, какие методы у меня есть
    Вы - это ваша голова, вы человек, не робот, ваш может не быть на работе например, или вы сами можете забыть, как у вас взаимодействуют части системы. Интерфейсы - это в общем-то тоже документация. И не нужно строго различать "чисто интерфейсы", и интерфейсы класса - те методы, которые у класса паблик - это точно такой же интерфейс, только он явно не отделен от класса. Когда у класса всего 3-4 метода, и все они связаны простой идеей, то и выделять ничего не надо. Когда у класса уже 10 методов, и среди них есть небольшие смысловые группы, то уже имеет смысл эти группы подчеркнуть. И, в конце концов, вместо каши из 10 методов, вы читаете следующее: class Graph : IEnumerable, IIndexable, IDrawable - и вы знаете, что ваш граф перечисляется, индексируется и рисуется. Это уже очень много информации, вы уже понимаете, как взаимодействуют части вашей системы.

    > Может создано это для работы в больших коллективах? Но ведь тогда любой участник сможет поправить и интерфейс.
    Да, совершенно верно, для больших коллективов. Нет, участник просто так не сможет поправить интерфейс, не побеседовав с остальными. В лучшем случае участнику придется поправить весь код, который "висит" на этом интерфейсе, в худшем - он в принципе ничего не сможет поменять, если интерфейс "публичный" и используется несколькими командами разработчиков. Классический пример - системы плагинов. Если к MS Word-у уже написано куча плагинов, то MS не может взять и просто так поменять ифейсы, не поломав совместимость. Хотя некоторые аспекты реализации - может. Потому что, как уже сказали выше, интерфейс - это ДОГОВОР. Чем БОЛЕЕ он стабилен, тем ЛУЧШЕ. Команды договариваются (!), создавая интерфейсы, чтобы потом было как можно МЕНЬШЕ конфликтов и разногласий, т.к. проблемы с интерфейсом затрагивают всех. Найдите любую команду от 30 человек, и вы увидите, насколько это все важно.

    Еще две вещи напоследок:
    1) интерфейсы из ОО языков лишь частный пример понятие интерфейса в жизни вообще. Вы же, когда покупаете SATA-диск, наверное рассчитываете, что сможете его подключить к своему компу? А с чего вы взяли? А, ну конечно, ведь на упаковке написано SATA - значит производитель соблюдает ДОГОВОР - интерфейс передачи данных;
    2) необходимость в некоторых фичах языков сложно осознать в личных проектах и даже в маленьких командах. Это тоже как в жизни: свой дом, как говорится, должен построить каждый мужик, а чтобы построить бизнес-центр или высотку, нужны определенные знания, т.к. другие масштабы. Это нормально. Тем не менее, нужно читать и искать примеры. Хотя современные ОО-языки и сами дают много примеров. Раз у вас PHP, почитайте про Iterator например.
    Ответ написан
    1 комментарий
  • Какой софт порекомендуете для работы с SQLite?

    sqlitestudio.pl - отличная вещь.
    Ответ написан
    Комментировать
  • Как сделать автовход для нескольких пользователей при запуске компьютера в windows 7?

    maksimnovgorodov85 вот поэтому такие фоновые вещи часто делаются с помощью сервисов - чтобы запускаться отдельно, независимо от пользователя (зашел он в систему или не зашел). По сути все, что работает постоянно и не требует интерактивного взаимодействия - подходит под критерий системного сервиса. Посмотрите, может ваш софт можно обернуть в сервисозапускалку. https://support.microsoft.com/en-us/kb/137890/ru . Еще один вариант (часто обсуждается на тостере, поищите) - запуск задач через планировщик винды. Там тоже можно указать, что запускать, из под какого пользователя, и весьма богатый набор способов для составления расписания запуска.
    Ответ написан
    1 комментарий
  • Почему вылетает собраный проект на других компах?

    Nipheris
    @Nipheris Куратор тега C#
    Не сразу увидел ваш коммент о версии студии - в 15-й студии дотнет 4.6, причем в данный момент RC-версия, вам бы лучше переключиться на 4.5.2, но в любом случае и тот и другой на 7-ке не установлен по-дефолту, там только 3.5. Так что если не ставили - надо поставить. Либо ВЫ переключаете свой проект на 3.5, если вам не нужны фичи из 4.0, тогда должно пойти на семерке без доп. телодвижений.
    Ответ написан
    Комментировать
  • Можно ли неуправляемо создавать потоки?

    Nipheris
    @Nipheris Куратор тега C#
    Теоретически, раз вы создаете форму в том же потоке, в которым с ней работаете - то все нормально, другой вопрос - зачем это делать и чего вы этим добиваетесь. В 98% GUI-приложений весь интерфейс находится в одном потоке и все работает замечательно (если открывается модальное окошко или диалог, оно просто крутит свой собственный цикл сообщений), а вот как раз другие потоки нужны для проведения длительных вычислений и операций ввода-вывода, чтобы GUI-поток не останавливался и мог спокойно и дальше ловить мессаджи от операционки на перерисовку и пользовательские действия. Так что если это не эксперимент в вакууме, то нужно основательно подумать, зачем вам такие финты - управлять несколькими гуевыми потоками нужно очень аккуратно.
    Ответ написан
    2 комментария
  • Как реализовать плавную прокрутку в ListView (WPF)?

    Nipheris
    @Nipheris Куратор тега C#
    stackoverflow.com/questions/1033841/is-it-possible...

    Годится для небольшого количества элементов. Пропишите у ListView: ScrollViewer.CanContentScroll="False"
    Ответ написан
    Комментировать
  • DataGridComboBoxColumn - как прибиндить поле из одной таблицы для отображения, и поле из другой - для значения?

    Nipheris
    @Nipheris Куратор тега C#
    Так, давайте по порядку.

    1. Для начала предположим что вы пользуетесь какой-либо ORM, ну или сами пишите SQL-запросы и преобразуете полученные результаты во вменяемые бизнес-объекты.
    2. Допустим, у вас есть классы CalendarItem и DayOfWeek такого вида:
    class CalendarItem
    {
        ....
        public string DayOfWeek Day { get; set; }
        public string Text { get; set; }
    }
    
    class DayOfWeek
    {
        ....
        public int Id { get; }
        public string Name { get; }
    }


    3. Теперь делаем датагрид с комбобоксом. Допустим у вас есть ObservableCollection<CalendarItem> Items. Тогда вам нужно привязать грид к этой коллекции, комбобокс (его выбранное значение) - к свойству Day элемента календаря, а то, что будет выведено в комбике в качестве текста - к св-ву Description класса DayOfWeek. Примерно это будет так:
    <DataGrid x:Name="dataGrid1" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" ItemsSource="{Binding Path=Items}">
        <DataGrid.Columns>
            <DataGridComboBoxColumn x:Name="dayColumn" Header="День недели" Width="200" SortMemberPath="Day.Id" DisplayMemberPath="Description" SelectedValueBinding="{Binding Path=Day}" />
            <DataGridTextColumn x:Name="textColumn" Header="Описание события" Binding="{Binding Path=Text}" />
        </DataGrid.Columns>
    </DataGrid>

    Заодно с сортировкой по айдишнику.
    Попробуйте это все, если что непонятно - в комментарии, разберемся. Пока попробуйте без считывания из базы, чтобы было проще, просто создайте объекты дней недели и несколько CalendarItem-ов.
    Ответ написан
    Комментировать
  • Подстраивание внешнего вида программы к ОС?

    Nipheris
    @Nipheris Куратор тега C++
    Не надо ничего получать и самому подстраивать. Вам в виде внешнего рядом лежащего файла или прямо в экзешник в виде ресурса нужно добавить XML-манифест, который будет декларировать совместимость приложения с более новой версией винды. Без этого манифеста приложение считается несовместимым, поэтому для него используются исключительно олд-скул контролы (мало ли, вдруг приложение так написано, что с новыми стилями будет работать криво?). Подробнее: https://msdn.microsoft.com/en-us/library/bb773175.aspx
    Хотите сами увидеть как это работает - берите ResHacker и раздербаньте любой современный экзешник, в ресурсе 24\1 будет этот манифест.
    Ответ написан
    4 комментария
  • Программа не открывает файлы, в пути которых присутствует кириллица, что не так в коде?

    Nipheris
    @Nipheris Куратор тега C++
    setlocale(LC_ALL, "rus");
    SetConsoleCP(1251);


    в начале работы программы.
    С поддержкой UTF-8 в винде туго, если очень нужна - тогда лучше читать из консоли винапишными средствами и конвертить в UTF-8 строки, а потом уже манипулировать.

    А, и да, без windows.h не обойтись, т.к. SetConsoleCP
    Ответ написан
  • ObservableCollection С#, как использовать?

    Nipheris
    @Nipheris Куратор тега C#
    Ну вот толковые в принципе ответы на SO: stackoverflow.com/questions/4279185/what-is-the-us..., посмотрите, и скажите что конкретно непонятно.
    Ответ написан
    1 комментарий
  • Используется ли C# в Entrerprise разработке?

    Nipheris
    @Nipheris Куратор тега C#
    Сейчас, в эпоху онлайн-сервисов, даже десктопные приложения частично работают с веб-службами и прочими интернетами, так что некоторые серьезные производители ПО уже начинают забивать на защиту десктопного приложения, ограничиваясь только проверками на стороне сервера при работе с сетевым функционалом (ну не знаю, например заливка файла в облако). Конечно, это пока не для всех подходит, но имеет смысл с учетом того что не ломаются только малопопулярные приложения (т.к. не интересуют взломщиков), а любые нормальные клиенты будут покупать продукт (на Западе вообще другой менталитет, люди считают работу ПО не по лицензии таким же воровством, как и украденный кошелек). Код на C++ тоже вполне себе неплохо дизассемблится тем, у кого есть опыт. Да, исходник восстановить гораздо сложнее, даже невозможно, но это и не нужно - все ломается в каком-нибудь OllyDbg по ассемблерному коду.
    Кстати, Word и Photoshop это скорее "коммерческое" ПО, энтерпрайзом обычно называют всякий внутренний софт (банковские системы, всякие автоматизаторы, генераторы отчетов), и там C# не просто используется, а конкрурирует только с джавой. WPF и прочие технологии как раз для такого софта и создавались. Если хотите примеры продаваемого ПО на шарпе: ну вот хотя бы Citavi - вполне серьезный софт для референс-менеджмента (управление библиографией и ссылками в научной деятельности). Все на шарпе, использует кучу библиотек, при этом вполне себе стоит денег.
    Ответ написан
    3 комментария
  • Windows Service или Application?

    Nipheris
    @Nipheris Куратор тега C#
    Тут зависит от деталей. В частности - надо ли это действие выполнять, даже если ни один пользователь не вошел в систему, или же вне контекста пользователя это бессмысленно. Если первое - тогда в общем-то лучше сервис, однако нужны дополнительные усилия, чтобы его устанавливать в систему, и, что еще важнее, из сервиса не стоит пытаться создавать окошки и вообще взаимодействовать с UI - это возможно, но сложно и требует доп. заморочек. Поэтому:
    а) подумайте, выполняет ли ваше приложение какую-то глобальную задачу, не зависящую от пользователя (а-ля дефрагментация или, там, архивация). Если да, то:
    б) оцените, возможно ли разбить ваше приложение на: собственно сервис, который будет выполнять полезную задачу; панель управления - обычное десктопное приложение, которое будет взаимодействовать с сервисом и менять его настройки и состояние;
    в) оцените, есть ли у вас ресурсы (время/деньги), чтобы разбираться с дополнительными тонкостями (установка и запуск сервиса, особенности написания сервиса (в шарпе нужно наследоваться от библ. класса), взаимодействие UI управления и сервиса);
    г) если пункты а, б, в истинны, то делайте в соответстии с ними, если хотя бы один ложный - сделайте лучше десктопное приложение.

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

    Nipheris
    @Nipheris Куратор тега C++
    C++ это слишком распространенный язык программирования, чтобы можно было адекватно ответить на просьбу "инфы о C++". Это про какой нибудь LOOPS или Axum можно добыть "инфу", потому что ее и так не очень много, а вот про C++ так сложно. Надо бы конкретнее. Перечислите что вам конкретно нужно - история, современные добавки в стандарт, если преимущества и недостатки то в сравнении с чем? С питоном? Шарпом? Ассемблером? Чтобы сократить время на рерайт, нужно конкретизировать содержание. Чтобы не пришлось выбрасывать/переделывать часть работы.
    Если вам для обоснования выбора языка на дипломного проекта, так это нужно объяснять исходя из поставленных задач.
    Ответ написан
    4 комментария
  • Как обратиться к файлу, который размещён в интернете С++?

    Nipheris
    @Nipheris Куратор тега C++
    Зачем же в файл? Лучше бы в базу, обычную реляционную, и лучше бы это обернуть в какой-нибудь сервис для авторизации, который будет выдавать ключи/токены, разрешающие выполнять опредленные действия в программе. Вам для чего конкретно? Разграничивать доступ к платному функционалу?
    Ответ написан
    6 комментариев
  • Как правильно организовать ленту постов?

    1) не могу понять зачем вам id и size в таблице post_likes. Для регистрации факта и времени лайка достаточно этого: (idPost, idUser, date) с ключом (idPost, idUser).
    2) почему ORDER BY id а не по дате?
    3) сделайте нормальные нужные вам индексы, включающие поля по которым вы фильтруете и сортируете (с указанием порядка сортировки).

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

    Вам уже посоветовали использовать json, я попробую дать более общую рекомендацию. У вас стандартная для вашей предметной области проблема - отсутствие единой схемы данных, у вас имеющихся. Очень редко в работающем приложении кто-либо меняет схему "на ходу" - т.е. в 99% случаев схема (по кр. мере логическая) проектируется вместе с приложением. Новая версия приложения - новая схема (при необходимости, конечно). Таким образом, ваша задача диктует вам необходимость работать с ЧАСТЬЮ ваших данных без использования схемы. Согласитесь, это не очень гибко - заводить новую таблицу под каждый вид товара, коих огромное количество может быть. Самое главное, новые товары приходят каждый день, и каждый день добавлять таблицы - с ума сойдешь. И совершенно непонятно, как при этом разрабатывать SQL-запросы на выборку, учитывая все новые и новые таблицы.
    Т.о., часть данных вам лучше хранить иначе, а именно атрибуты ваших товаров. Тут подхода два: это либо полуструктурированные данные (semistructured), т.е. XML или JSON, либо EAV модель. Последняя является классическим выходом из ситуации при использовании реляционных баз данных, однако т.к. она по определению идет в разрез с реляционной структурой данных - это все по сути большой костыль. Сегодня все чаще рекомендуют первый вариант, т.к. во-первых многие современные РСУБД поддерживают JSON или XML типы данных, причем даже с возможностями валидации и выборки (а если и нет - BLOB всегда поможет), а во-вторых под каталог товаров можно использовать любую документную базу данных, которая кстати еще и лучше подойдет по специфике нагрузки на каталог (очень много чтения и мало записи, целостность не особо нужна - шардинг будет без особых проблем).
    Итого:
    1) понимаете, почему не все данные не всегда получается уложить в фиксированную схему
    2) выбираете себе подходящее решение из перечисленных, помня, что можно (и нужно!) часть данных хранить в нормализованном виде, а часть - не получится.
    3) поиск и выборка по ненормализованным данным рассматривается как отдельная задача
    P.S. вот как раз таки в корзину достаточно класть ID товара и его количество, что отлично уложится в реляционную схему. А для этого таблица товаров одна должна быть.
    Ответ написан
    8 комментариев