• Как лучше организовать взаимодействие с настольным Qt/C++ Application через интернет?

    nekipelov
    @nekipelov
    Если у вас нет опыта работы с сокетами, то лучше и не беритесь. Воспользуйтесь протоколом более высокого уровня: HTTP, в качестве формата данных json. Не совсем понятно, что вкладывается в понятие "взаимодействие c Arduino", возможно вам потребуется что-то вроде WebSockets, если это взаимодействие может происходить с любой стороны.
    Ответ написан
    Комментировать
  • Как наиболее эффективно выкачать несколько миллионов html страниц, при этом не потратив вечность?

    nekipelov
    @nekipelov
    Я не программирую на C#, поэтому могу сказать только по подходу к задаче. На каждую страницу по потоку - расточительство. Тем более, что на каждом углу говорят о том, как удобно сделана асинхронность в C#. Т.е. потоки не нужны вообще, скачивать надо асинхронно и единственный поток вполне справится со скачиванием данных на достаточно широком канале.
    Ответ написан
    2 комментария
  • Есть ли описания алгоритмов поиска в БД по не ключевому атрибуту?

    nekipelov
    @nekipelov
    Принцип везде один: если есть возможность использовать индекс, он используется, если же индекса нет или БД считает его использование не рациональным, осуществляется полное сканирование.

    Алгоритмы, как и сами типы индексов бывают разными, в основном B-дерево, хеш таблица, иногда R-дерево (может и k-d дерево тоже встречается, я так сильно не углублялся).

    Так вот, вам интересны эти самые алгоритмы? Тогда следует читать "Исскуство программированя" Дональда Кнута. Если же нужны конкретные реализации в серверах БД, то официальную документацию по интересующей вас БД (не забываем, что самая лучшая документация - это исходники).
    Ответ написан
    1 комментарий
  • Как перенсти почту с сохранением всех писем?

    nekipelov
    @nekipelov
    Не совсем понятно, какой объем почты, количество пользователей и как организовано ее хранение (локально или на сервере), поэтому корректный ответ дать сложно. Возможно поможет использование imap сервера. Стороннего, если он не предоставляется текущими серверами. Т.е. просто текущую почту заливаете на imap сервер, подключаете новый почтовый ящик и перемещаете почту туда. Должно получится с любым почтовым клиентом и количество действий зависит от количество каталогов, а не писем.

    Если оба почтовых сервера предоставляют imap, то должно быть возможно подключение двух ящиков и простое копирование/перемещение всех писем из одного в другой.
    Ответ написан
    1 комментарий
  • Какие возможные проблемы при использовании UDP?

    nekipelov
    @nekipelov
    > При использовании сокетов, по протоколу UDP, какие возможны проблемы?

    Это довольно странный вопрос. Если понимать его буквально, то никаких проблема там нет. Это при работе с TCP проблемы: таймауты, keep-alive, асинхронность или потоки... При работе с UDP все значительно проще: отправил и забыл :-)

    > Мне стоит заботится только о не дошедших и дублированных пакетах?

    Это уже от задач зависит. Разумеется не дошедшие пакеты будут. Будут и дубликаты и переупорядочивание. Но это особенность протокола, а не проблема.

    > И как посоветуете бороться с не дошедшими пакетами?

    Нужен reliable протокол, но сделанный поверх UDP, я правильно понял? Тогда надо смотреть в сторону проектов вроде enet.bespin.org. На github много чего находится по слову rudp, возможно подойдет: https://github.com/search?q=rudp. Но я ни одно подобное решение не использовал, когда была необходимость, пришлось писать самому. Сразу предупреждаю, что достичь эффективности аналогичной TCP невозможно хотя-бы потому, что весь код будет работать в user-space, а не на уровне ядра. Да и вообще дело это неблагодарное...
    Ответ написан
    Комментировать
  • Как в Android можно передавать аудио-поток с выхода звуковой карты по Wi-Fi?

    nekipelov
    @nekipelov
    Все просто: открываешь UDP сокеты, одна сторона пишет, другая читает. Отправляются небольшие пакеты (аудио данные продолжительностью по 40-80 мс). При приеме надо сделать джиттер-буфер, чтобы собирать и упорядочивать аудио пакеты.

    В общем, надо смотреть в сторону протокола RTP. Ну и аудио-кодек подобрать в зависимости от желаемого качества.
    Ответ написан
    2 комментария
  • Почему для стандартной сортировки выбрана Quick Sort?

    nekipelov
    @nekipelov
    У пирамидальной сортировки всегда O(n log n). А quck sort зачастую сортирует быстрее. Но не всегда, поэтому в STL используется Introsort.
    Ответ написан
    Комментировать
  • Посоветуйте библиотеку C++ для работы с конфигами

    nekipelov
    @nekipelov
    Boost.Program_options. Повторение имен групп (секций) допустимо.
    Ответ написан
    1 комментарий
  • В последнее время появилось много критики Монго. С чем связано это?

    nekipelov
    @nekipelov
    Сначала все руководствовались слухами, а теперь собственным опытом? :-)

    Лично я много раз расстраивался, используя mongo. Уже по коду первый версий видно, что БД пишется далеко не профессиональными программистами (ну а кому еще взбредет в голову переопределять стандартные C функции? пруф: github.com/mongodb/mongo/blob/v1.4/util/assert_util.h, github.com/mongodb/mongo/blob/v1.4/util/allocator.h). Но вроде бы, от версии к версии, с проблемами сталкиваемся все реже. Только вот наш продукт еще на этапе разработки, кто знает, что будет в реальной работе…
    Ответ написан
    2 комментария
  • С чего начать изучение C++?

    nekipelov
    @nekipelov
    Когда-то собирал подборку, некоторые уже были упомянуты, но все же:

    Основы программирования на С++. Том 1
    Essential C++
    Автор: Стэнли Б. Липпман
    Издательство: Вильямс
    Серия: C++ In-Depth
    ISBN 5-8459-0349-1; 2002 г.

    Язык программирования C++. Вводный курс.
    C++ Primer
    Автор: Стенли Б. Липпман, Жози Лажойе, Барбара Му
    Издательство: Вильямс
    ISBN 5-8459-1121-4, 0-201-72148-1; 2007 г.

    Эффективное программирование на С++
    Accelerated C++
    Автор: Эндрю Кениг, Барбара Му
    Издательство: Вильямс
    Серия: C++ In-Depth
    ISBN 5-8459-0350-5; 2002 г.

    C++: базовый курс
    C++ from the Ground Up
    Автор: Герберт Шилдт
    Издательство: Вильямс
    ISBN 978-5-8459-0768-4, 5-8459-0768-3, 0-07-222897-0; 2008 г.

    Искусство программирования на C++
    The Art of C++
    Периодическое издание
    Автор: Герберт Шилдт
    Переводчик Татьяна Коротяева
    Издательство: БХВ-Петербург
    ISBN 5-94157-544-0, 0-07-225512-9; 2005 г.

    Как программировать на C++
    C++: How to Program
    Автор: Х. М. Дейтел, П. Дж. Дейтел
    Переводчик В. Тимофеев
    Издательство: Бином-Пресс
    ISBN 978-5-9518-0224-8, 0-13-185757-6; 2008 г.

    или сокращенный вариант:

    Как программировать на C++
    Small C++: How to Program
    Автор: Х. М. Дейтел, П. Дж. Дейтел
    Переводчик В. Тимофеев
    Издательство: Бином-Пресс
    ISBN 978-5-9518-0338-2; 2009 г.

    Программирование на C++ (+ CD)
    C++ Programming for the Absolute Beginner
    Автор: Дирк Хенкеманс, Марк Ли
    Издательство: Символ-Плюс
    Серия: Опыт не требуется
    ISBN 5-93286-050-2, 1-93184-143-8; 2005 г.

    Объектно-ориентированное программирование в C++
    Object-Oriented Programming in C++
    Автор: Р. Лафоре
    Издательство: Питер
    Серия: Классика Computer Science
    ISBN 978-5-94723-302-5; 2007 г.

    Философия C++. Практическое программирование
    Thinking in C++. Volume Two: Practical Programming
    Автор: Брюс Эккель, Чак Эллисон
    Переводчик Е. Матвеев
    Издательство: Питер
    ISBN 5-469-00043-5, 0130353132; 2004 г.

    Программирование на C++
    Автор: Коплиен Дж.
    Издательство: Питер
    Серия: Классика Computer Science
    ISBN 5-469-00189-Х; 2005 г.
    Ответ написан
    2 комментария
  • Какой ИБП для dev-сервера?

    nekipelov
    @nekipelov
    APC от 1000ВА, а уж конкретную модель выбирайте по ценам и требованиям. Пусть дороже остальных, зато надежнее. С Linux, в случае APC, проблем быть не должно.
    Ответ написан