• Структура SQLite базы данных в Android-приложении

    bogolt
    @bogolt
    Id|date|mark
    _____________
    1|23|4
    2|12|5
    1|56|5

    Id юзера не является тут первичным ключем поэтому ничегон не мешает иметь много оценок по каждому из них. При необходимости можно добавить и айди предмета.
  • Структура SQLite базы данных в Android-приложении

    bogolt
    @bogolt
    И что же помешает в моей структуре выставить более одной оценки студенту?
  • Регулярные выражения, Поиск всех видов чисел в строке, CString

    bogolt
    @bogolt
    1. Хм посмотрел апи, и правда возможности указать позицию у метода нет. Печально, с другой стороны это же ms - никогда они не славились хорошими АПИ. Если бы вы использовали boost то там есть вполне адекватный find + is_any_of
    3. Мне кажется что решать задачу нужно тем методом которым вы владеете, если вы только не ставите себе целью разобраться с чем-нибудь еще. И раз вы задали вопрос в котором признались, что не можете этого сделать и поэтому думаете о регулярках, я посчитал что вам действительно нужно подсказать возможный алгоритм.
    >Но вам не кажется ли что объём и время потраченные на данный алгоритм будут гораздо больше чем на составление шаблона регулярного выражения.
    Для спеца по regexp быстрее их использовать, для человека который привык писать обычный код думаю будет быстрее написать обычный код.
  • Реализовать класс на C++, матрицы

    bogolt
    @bogolt
    Безопаснее? Подозреваю что вы неправильно поняли мой комментарий. Еще раз, в коде класса используются неконстантные operator+ - *
    Это приведет к тому, что можно написать код
    Matrix a, b;
    a+b; // заметьте - знака = в этом коде нет
    после этого кода - значение переменной "a" изменилось. Для любого человека читающего этот код - будет совершенно необычно такое изменение значения переменной, поэтому данный интерфейс плохой. Чтобы сделать его лучше нужно или
    1. Сделать эти операторы константыми и всегда возвращать новый объект
    2. Заменить их на += -= *= что даст понять любому читающего код что в реальности произойдет.
    3. Совместить 1 и 2 - сделать внутри класса операторы += -= *= и вынести за пределы класса методы которые на их основе реализуют глобальные операторы + - =
  • Реализовать класс на C++, матрицы

    bogolt
    @bogolt
    Matrix& operator+(Matrix &b)
    Лучше везде в подобных операторах использовать += *= и тд.
    Если же оставить как есть, то можно будет писть код
    a+b; который будет менять значение переменной a - что согласитесь нелогично.
  • CLR Windows Form - как определить, есть ли в строке слова-палиндромы?

    bogolt
    @bogolt
    Теперь разберитесь с отладчиком, он здорово упростит вам жизнь.
    Как альтернативный вариант отладки - можно выводить куда-то каждый этап работы алгоритма, тогда вам станет ясно на каком этапе происходит ошибка.
  • Программы для анализа безопасности?

    bogolt
    @bogolt
    Простите а как это связано с безопасностью?
  • (C++) Клиент-Серверное взаимодействие. Многопоточность. Когда? Как?

    bogolt
    @bogolt
    в си++.11 появился std::thread который реализует кросс-платформенную многопоточность. Еще можно почитать про boost.thread. Для написания потоков на голом си - существуют posix thread ( для никсов ) и их свободный порт под виндовс платформу.
  • (C++) Клиент-Серверное взаимодействие. Многопоточность. Когда? Как?

    bogolt
    @bogolt
    >код сервера работающий с сокетами у вас под эти две платформы будет различаться на 90%
    Да вроде обычные berkeley-sockets имеют одинаковый апи как для Винды так и для Линукса. Такчто даже работая с голыми сокетами программа будет очень переносимой. Сюда же добавить потоки из стандартной библиотеки, и сервер без больших усилий можно сделать кроссплатформенным.
    Насчет того что вы сказали про системы сборок - многие открытые проекты используют сразу несколько систем - для линукса создают make/cmake файлы, а для винды пользуются обыным проектом студии.
  • Как подключить SQLite к Visual C++ (MS Visual C++ 2010)?

    bogolt
    @bogolt
    > не удается восстановить после предыдущих ошибок; остановка компиляции
    А какие были предыдущие ошибки компиляции?
  • Изучение C++. Как сдвинуться с мертвой точки?

    bogolt
    @bogolt
    В вашей ситуации, когда код написан но не работает нужно либо отлаживать дебаггером, либо выводить отладочную информацию в консоль - ну и разбираться в каком месте возникает ошибка. У меня не раз случалось например что при правильном алгоритме неправильно работала финальная функция вывода значения на экран, отчего казалось будто алгоритм сломан.
    Если вы будете выводить значения массивов и переменных после каждого действия алгоритма - так так вы сможете при каждом запуске быстро проверить где, в каком месте что-то пошло не так, а в таких делах - понять где - 90% успеха.
  • Посоветуйте linux для старого ноутбука

    bogolt
    @bogolt
    Crunchbang уже пару лет как перешел на Debian. Я именно его ставлю на старые ноуты для браузинга и скайпа, единственное предвратиельно меняю openbox на xfce. Работает успешно на ноуте с 256 оперативки уже пару лет.
  • Работа для пожилого человека

    bogolt
    @bogolt
    Читал, заметил в нем вот это:
    основная цель — с пользой занять свободное время
  • Как написать игровой сервер на Qt?

    bogolt
    @bogolt
    А если там игровая логика и куча вычислений? Тогда выбор С++ оправдан.
    Кроме того удобно когда вычисления логики игры на клиенте и на сервере работают одинаково, и нет необходимости все переписывать на другом ЯП.
  • Как написать игровой сервер на Qt?

    bogolt
    @bogolt
    Когда вышел Qt4 компания где я работал писала сервер на Qt4.
    Найденные проблемы
    — QTcpServer насколько я помню работал поверх обычного select — следовательно был ограничен 64 сокетами ( клевый будет сервер который одновременно может не больше 64 коннектов держать да? )
    — У многих базовых классов не было реализовано обработки ошибок ( в частности QString при нехватке памяти просто не делал ничего ). Как ответили нам на форуме разработчиков — «Если закончится память то у клиента даже мышка двигаться перестанет» — следовательно кому какое дело до нашего приложения. Узнав что пишем мы сервер там только разводили руками.

    Вывод — qt тогда точно не был предназначен для серверов. Сейчас — имхо это тоже не профильный инструмент.
  • Как познать C++?

    bogolt
    @bogolt
    stl и шаблоны когда человек только хочет начать учить язык? Вы шутите? Имхо взять какое-то плавное введение, и без всяких хитрых умных классов изучать возможности языка. Согласен с вами, что написание чего-то конкретного в этом может помочь.
    Из книг я бы порекомендовал «Брюс Эккель — Философия C++. Введение в стандартный С++»
    Оригинал на английском доступный для скачивания
  • Шифрованные конференции через XMPP: миф или реальность?

    bogolt
    @bogolt
    Да SSL спасает от атаки «человек посередине». Варианты когда он не спасает — запрет ssl трафика, и клиенты соединяются по незащищенному каналу, попытки подменить сертификат — тут по идее клиент должен среагировать, но некоторые могут это игнорировать, ну и наконец — генерация валидного сертификата для данного сервера. Последний вариант единственно надежный, однако насколько я понимаю все упирается в доверие, простите за тавтологию, Центрам Доверия
  • Как конвертировать unix time в std::string?

    bogolt
    @bogolt
    Хм, думаю правильно было бы пройтись профайлером, либо добавить код который будет измерять скорость выполнения разных функций.