• Как вывести последние n элементов map?

    Nipheris
    @Nipheris Куратор тега C++
    #include <string>
    #include <map>
    #include <algorithm>
    #include <iostream>
     
    int main() {
        std::map<int, std::string> m {
            { 1, "one" },
            { 2, "two" },
            { 3, "three" },
            { 4, "four" },
            { 5, "five" },
            { 6, "six" },
            { 7, "seven" },
            { 8, "eight" },
            { 9, "nine" },
            { 10, "ten" },
        };
     
        auto from = m.end();
        // откатываемся назад на 5 элементов (возможно есть способ покрасивее)
        for (int i = 0; i < 5; i++) {
        	from--;
        }
     
        std::for_each(from, m.end(), [](auto&& pair) {
            std::cout << pair.first << ": " << pair.second << std::endl;
        });
    }


    https://ideone.com/bUps4b
    Ответ написан
    Комментировать
  • Как реализовать команды Microsoft SQL Server в C# windows forms?

    Nipheris
    @Nipheris Куратор тега C#
    У DataAdapter-а проставить SelectCommand в select * from Classes where Класс=5
    Ответ написан
    Комментировать
  • В чём причина постоянного переделывания кода?

    Заказчик хочет чтобы разработчик сделал сложное приложение.

    Причина 1: обычно заказчик хочет, но не знает чего конкретно. Фишка в том, что разработка приложения, у которого ещё нет аналога - это... не только разработка приложения. Это ещё и выяснение того, что действительно нужно, начиная с пожеланий по UX, и заканчивая оптимизацией бизнес-процессов во всей компании (это когда заказчик внезапно говорит "слушайте, и правда, на кой чёрт мы печатаем эту накладную каждый раз").

    КПД получается крайне низок.

    Причина 2: вы не учитываете причину 1 при расчёте КПД и думаете, что проделали мало работы. Да, приложение ещё не готово или делается очень долго, но это не потому что вы мало работаете, а потому что работы намного больше, чем казалось.

    но идёт на удаление или переделку из-за того, что что-то не так.

    Причина/особенность 3: иногда это неизбежно: бизнес меняется, потребности - тоже.
    Иногда этого можно избежать, не заводя требования слишком "далеко" - очевидно, нет смысла реализовывать то, что УЖЕ СЕЙЧАС кажется неподходящим под требования, НО это далеко не всегда вовремя замечают. Над проектом работает много людей, у всех немного разные представления о задаче, или ещё хуже: не все и далеко не всегда говорят о проблемах с системой, которые уже виднеются "на горизонте", говоря что "в ТЗ всё написано, а мы делаем по ТЗ". Можете погуглить статьи о стоимости ошибок на разных этапах разработки.

    Причина 4: заказчик, разработчики или и те и другие не умеют останавливаться и выбирать необходимый и достаточный функционал для первого или очередного релиза. Я в последнее время убеждаюсь, что это целая наука - вовремя остановиться и не расширять список "супернужных" фич, из которых треть окажется почти невостребованными. Особенно часто это бывает, когда бизнес уже работает как-нибудь (например, на экселевских табличках или Access-овских базах), а теперь пришла пора автоматизации, но релиз постоянно откладывается, потому что "и это хочется, и то бы сразу сделать". Иными словами, иногда нужно решиться на гарантированные переделки в будущем ради релиза сейчас. Оценка возможности и стоимости таких "переделок" - т.е. подождать и переделать сейчас или зарелизиться и переделать потом (соответственно, с удорожанием "переделок") - и есть та самая наука. Разработчик обычно видит только архитектуру, и раньше понимает её недостатки/ограничения, ему сложно решиться на релиз того, что не будет идеально решать поставленную задачу.
    Ответ написан
    Комментировать
  • Как растянуть элемент canvas на всю оставшуюся ширину?

    Nipheris
    @Nipheris Куратор тега C#
    Превратите горизонтально-ориентированный StackPanel, т.е. тот, в котором у вас канвас, в DockPanel (тэг Orientation нужно будет убрать). Тогда ваш канвас, как последний из потомков, займёт всю оставшуюся доступную площадь (поведение по умолчанию). Плюс, это будет логично - ведь у вас управляющие контролы должны быть задоканы слева, поэтому логичнее использовать DockPanel.

    С Новым Годом!
    Ответ написан
    1 комментарий
  • На чем написать - REST API?

    На чем написать — REST API?

    написать ПО которое работает с REST API.


    Это конечно не взаимоисключающие вещи, но вы уж конкретизируйте - таки сервис вы пишете или клиент.
    Ответ написан
    2 комментария
  • Как сгенерировать видео с помощью c или c++?

    Nipheris
    @Nipheris Куратор тега C++
    Готовые библиотеки для генерации видео называются - внезапно - кодеками. Вот например почему бы не упомянуть x.264. Есть и куча других. Т.к. почти все они пишутся на C/C++, из этих языков ими наиболее удобно пользоваться.

    Также нужно упомянуть FFmpeg как более общее и комплексное решение. Лучше наверное даже на него сначала посмотреть.
    Ответ написан
  • Scheme для JSON. Как сделать валидацию и замену некорректных свойств?

    Проверка JSON по схеме - практикуется. Насчёт замен и "автопочинки" - не встречал такого, возможно вам нужно кастомизировать процесс верификации по схеме, когда с невалидным элементом нужно что-то сделать (выбросить и поставить заглушку согласно схеме).
    Ответ написан
    Комментировать
  • С# WPF Иконка в трее, как сделать такого типа?

    Очевидно, вам нужно генерировать содержимое иконки самостоятельно, т.к. вариантов иконки слишком много чтобы все их заранее подготовить.

    Расскажите подробнее каким способом в вашей программе иконка попадает в трей, и возможно я смогу подсказать как сгенерировать и передать туда своё изображение.
    Ответ написан
  • Как работает экономика облачного майнинга?

    Уже ясно что крипта будет интегрироваться в реальную экономику и сейчас ее надо майнить и складывать

    Вы не понимаете, что можете (!) ошибаться именно здесь. А вот продавцы/арендодатели майнинг-оборудования ещё весной/летом заработали очень неплохо, они уже не ошибутся. Стандартное "лучше синица в руках чем эфир в небе".
    Ответ написан
  • Есть ли какое то приложение для разработки АПИ?

    Если вы про HTTP REST API, то OpenAPI (редактор и генераторы). Если про что-то другое - уточните.
    Ответ написан
    Комментировать
  • Проблема при установке Visual Studio 2008?

    Nipheris
    @Nipheris Куратор тега C++
    На какую версию Винды ставите? 2008-я Студия мягко говоря не нова, на 10-ке наверное уже и не работает.
    Ответ написан
    9 комментариев
  • Как получать информацию с экрана о чем либо?

    Если Windows 8.1 и выше - Desktop Duplication API (вот первая попавшаяся обёртка под дотнет).
    Если ниже - то боль. Ну в смысле можно ещё библиотеки поискать, у OBS наверняка что-то готовое есть.
    Ответ написан
    Комментировать
  • Почему не видит перегрузку оператора потока вывода?

    Nipheris
    @Nipheris Куратор тега C++
    Т.к. вы реализуете оператор << в форме внешней функции, то и при доступе к полям объекта нужно указывать конкретный экземпляр объекта, например s.Matrix. Во внешней функции у вас нет и не может быть this, а значит и нет полей объекта в скоупе функции.
    Ответ написан
    Комментировать
  • Как подключить библиотеку к проекту на ubuntu?

    Nipheris
    @Nipheris Куратор тега C++
    Правильный путь: собрать deb-пакет и ставить его.
    Быстрый путь: на целевой машине попробуйте запустить sudo ldconfig.

    Таскать so-шник с бинарником не стоит. Если уж совсем туго, попробуйте слинковать статически.
    Ответ написан
  • Как проверить равно ли значение в таблице указанному?

    Поместите сравнение поля с нужной константой в select.
    Ответ написан
    Комментировать
  • Как подключить скачанную библиотеку?

    Nipheris
    @Nipheris Куратор тега C++
    Какая библиотека-то? Возможно в vcpkg есть, для Винды самый нормальный вариант.
    Ответ написан
    Комментировать
  • Правила хорошего тона protected или private?

    А почему вы по умолчанию public не ставите, если выбираете между public и private? Наверное потому что вам инкапсуляция нужна?

    Ситуация с дочерними классами ничем не отличается. Не стоит делать метод protected по умолчанию по той же причине, по которой его не стоит делать public по умолчанию.
    Ответ написан
    Комментировать
  • Зачем нужны WCF?

    И да и нет. Тоже для обмена данными между приложениями, но не обязательно с использованием REST-архитектуры.

    WCF он больше про классические веб-сервисы на базе XML и SOAP. Хоть в WCF и есть возможность создания HTTP REST сервисов, сложно сказать что WCF под них заточен.

    В основном этот фреймворк ориентирован на разработку приложений на базе группы стандартов WS-*, например таких как WSDL, WS-Addressing и WS-Security. Это объёмные стандарты, написанные для обеспечения взаимодействия классических веб-сервисов (см. нулевой уровень, swamp of POX в Richardson Maturity Model ).

    Ранее эти стандарты были более популярны в связи с большим желанием интегрировать друг с другом всевозможные информационные системы, размазанные по миру. Многие из таких систем как раз сейчас работают в продакшене, однако далеко не все новые проекты разрабатываются на основе WCF.

    Классические веб-сервисы многими недолюбливались, в частности потому что:
    а) REST-ом как правило и не пахнет, HTTP как правило использовался исключительно как транспорт для RPC: т.е. вместо GET/PUT/POST/DELETE/.. всегда вызывался POST с параметрами запроса в его теле. Цитата из ссылки:
    These services have a single URI, and use a single HTTP method (typically POST). For example, most Web Services (WS-*)-based services use a single URI to identify an endpoint, and HTTP POST to transfer SOAP-based payloads, effectively ignoring the rest of the HTTP verbs.

    б) стандарты группы WS-* очень сложные, все технологии на их основе просто не могут быть простыми (как и в частности WCF). Да, есть свои плюсы вроде "могу вызвать что угодно у кого угодно по какому хочешь протоколу", но не всегда такая гибкость была реально нужна.

    Уже давно в многих новых системах наблюдается сдвиг к REST-архитектуре, как к более масштабируемой и простой для потребления клиентом, и, следовательно, протокол HTTP используется по прямому назначению, а не тупо как транспорт для сообщений. А там где REST неудобен/излишен и где RPC лучше походит, проще взять для этого более легковесный протокол или вообще поднять свой на базе какого-нибудь protobuf, как делают во многих игровых проектах.

    Соотв-но WCF сегодня реже выбирают для разработки новых проектов, т.к. для него HTTP REST сервисы немного не "родные". Удобнее взять другие фреймворки вроде ASP.NET Core или Nancy.
    Ответ написан
    Комментировать