• Что означает сообщение компилятора g++ при работе с массивами?

    gbg
    @gbg Куратор тега Программирование
    Любые ответы на любые вопросы
    Из какой книжки накопипастили куски? Сообщение в гугл вводили? Переводить пытались?
    Английским по белому написано - вы пытаетесь использовать фичи из C++11, а компилятору об этом не сказали.
    И даже решение написано - опцию нужно добавить.
    Ответ написан
    2 комментария
  • С чего начать изучение ИСХОДНИКОВ Urho3D?

    @Y0Y
    Суть чтения исходников - самообразование. Здесь Вам их никто разжевывать не станет.
    Ответ написан
    2 комментария
  • Когда заголовок iostream заменяет другие заголовки, например, string?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    iostream явно или еще через какой-то header включает string. Лучше всегда явно включать то, что вы используете. Так при модификации кода будет вылезать меньше ошибок.
    Ответ написан
    Комментировать
  • Какую книгу выбрать по сетевому программированию в Qt?

    Nipheris
    @Nipheris Куратор тега C++
    Читайте книги по сетям (а именно - слои OSI, TCP/IP, сокеты, про клиент-серверную архитектуру в целом, кто куда подключается, как передает данные).
    Читайте книги про техническую сторону веба (протокол HTTP, архитектура REST и т.д.).
    Когда вы поймете, что происходит при запросе www.yandex.ru в адресной строке, использовать класс QNetworkRequest не составит никакого труда.
    Ответ написан
    7 комментариев
  • Gcc -Os или -O3?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Нет, размер и скорость - противоположные оптимизации.

    Уменьшить размер программы можно, путем устранения inline-вызовов, что приведет к тормозам.

    Другой пример: ускорить программу можно, заменив циклы на линейные наборы инструкций (loop-unroll (его и включает -O3)), что опять же увеличит размер бинарника.
    Ответ написан
    Комментировать
  • Как получить данные по https в qt?

    @s0L
    У вас же в логе написано, что не может найти либу OpenSSL
    Ответ написан
    1 комментарий
  • С++. Работа с графикой. Когда начинать?

    Nipheris
    @Nipheris Куратор тега C++
    > Возможно перед работой с любой библиотекой нужно знать "основу" в самом языке?
    Вполне логично, что язык надо знать, вопрос - насколько полно (особенно это касается C++, полностью его знают только разработчики стандарта и компиляторов).
    OpenGL (который я бы советовал вам посмотореть) это по сути Си-шная либа, поэтому с ней проще - выучите что такое функции и указатели, разберитесь с базовыми типами данных и особенностями операций (чтобы не удивляться, почему 3 / 2 = 1, а 3.0 / 2.0 = 1.5), и можете пробовать. Из общего развития - матричная алгебра, особенности компьютерной арифметики (числа с плавающей точкой и т.д.). Ну и сама "графика" - устройство графического конвейера, типы рендеринга (фотореалистичный/реального времени), этапы рендеринга, и т.д.
    Отдельная задача - уметь настроить компилятор и IDE для того, чтобы все, что использует OpenGL, нормально компилилось, но это вы и в гугле найдете.
    Ответ написан
    Комментировать
  • Из чего сделан сайт Sony(http://www.sony.com/be-moved/)?

    @mr-molodoy
    Если говорить непосредственно про реализацию на этом сайте, то здесь можно увидеть анимацию canvas элемент растянутый на размер окна в котором прокручиваются кадры из анимации привязанные к scroll и управляемые через javascript.

    Если разбить весь процесс по этапам, то получим следующее:
    1. Продумать концепт.
    2. Создать наброски отдельных элементов.
    3. Смоделировать отдельные элементы по эскизам в любом 3D редакторе.
    4. Скомпоновать сцену, проработать освещение.
    5. Создать анимацию.
    6. Экспортировать в видео и разбить по кадрам либо экспортировать сцену сразу набором изображений.
    7. Оптимизировать изображения (скорее всего изображения будут обрезаться с сохранением только части изображения которое анимируется при этом статические элементы (которые на протяжении определенного времени не изменяются будут подложены как отдельное изображение на заднем)). Т.е в конечном итоге у нас получится на выходе независимых 3-4 слоя с изображениями, которые размещены на холсте друг под другом и с идеально подобранными позициями, что бы в целом картинка смотрелась целостно. Самый сложный, на мой взгляд, этап, которым можно пренебречь в прототипах и случаях когда анимация не очень долгая.
    8. На javascript пишется специальный "движек" для позиционирования слоев, подготовленных на пред. этапе и размещения на холсте (элемент canvas на странице).
    9. Пишется обработчик для события scroll в браузере, отслеживающий положение view порта относительно высоты страницы.
    10. Пишется контроллер инициализирующий обработчик события и передающий параметры прокрутки в "движек" для рендеринга нужного кадра на холсте основываясь на положение viewport'а (скролла).
    11. Помимо этого так же подготавливается css анимация для появления некоторых элементов на странице, таких как текст.
    12. кадры из CSS анимации подгоняют под кадры основной анимации внутри canvas, что бы она проходила синхронно и так же управление воспроизведением css анимацией включается в контроллер обрабатывающий анимацию в canvas.
    13. СSS анимация подключается к страницы поверх Canvas элеменета.
    14. Утверждаем работу с заказчиком.
    15. Получаем деньги и незабываем выдать зарплату всем трудящимся.
    Ответ написан
    1 комментарий
  • Какой есть бесплатный фриланс для исполнителя?

    @KingAnton
    Часто у меня возникает когнитивный диссонанс, когда я читаю подобные посты. Фрилансом занимаюсят, чтобы заработать денег, так почему бы не заплатить за билет в этот клуб. Ведь цена за него по соотношению к заработку будет очень маленькой.

    По сабжу - форумы.
    Ответ написан
    1 комментарий
  • Как лучше реализовать API для модулей?

    Nipheris
    @Nipheris Куратор тега C++
    > Конечно, C++ может вызвать виртуальные методы у указателей
    именно, поэтому вам нужно, как вариант:
    1) сделать абстрактные интерфейсы вроде IFooService, библиотека будет отдавать указатели на объекты, их реализующие
    2) сделать функции-фабрики и функции-уничтожители:
    IFooService* CreateFooService(...);
    void DestroyFooService(IFooService* service);

    Это все нужно в частности для того, чтобы управление памятью не выходило за пределы DLL - иными словами, где порождается, там и убивается. Для большинства библиотек это приемлемое ограничение, которое позволяет сохранять ABI и даже использовать разные рантаймы для DLL и для EXE, его использующего.
    Если вы будете передавать какие-то параметры по указателю, также следуйте этому правилу - не делайте так, что код в EXE выделяет память, а код в DLL - освобождает, и наоборот.
    Ну и вообще, это хорошая абстракция интерфейса (ваш IFooService) от реализации (ваш конкретный класс FooService с конкретным конструктором и деструктором. К-р и д-р сложного класса должны оставаться частью _реализации_).
    Если в качестве параметров, передающихся по значению вы используете struct-ы, это вполне допустимо, но тогда уже надо компилировать DLL и EXE одним компилятором, как этого требует, например, Qt (игнорирование этого правила рано или поздно приведет к странным и трудноуловим ошибкам, связанным с тем, что разные версии компилятора генерируют разный код конструкторов и деструкторов, и вообще могут по разному разложить struct в памяти).
    Ответ написан
    3 комментария
  • Плюсы и минусы фронта и бэкэнда?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    ЗП примерно одинакова. Идите лучше туда, где уже есть хоть какой-то опыт. Фронтенд конечно динамично развивается, но на самом деле просто феерический разброд и шатание.
    Ответ написан
    Комментировать
  • Как выполнять функцию без зависания главной формы в qt?

    Nipheris
    @Nipheris Куратор тега C++
    Берете и разбирайтесь с QThread. Для остановки/запуска используете сигналы/слоты (смысл QThread в том, что он умеет запускать свой eventLoop, и ловить QueuedConnection-сигналы из других потоков)
    Ответ написан
    Комментировать
  • Какой из способов безопасного хранения критически важных переменных оптимален?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Поймите, все утечки которые происходят - в 99% это не exploit, а тупо человеческий фактор.
    Все решения с конфигами сервера, ORM и прочим - абсолютно бессмысленны когда вашему сисадмину подарят новый X6 и он сольет дамп сервера целиком.

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

    Могу пример из личного опыта рассказать:
    Ваша компания пишет известный мульти-мессенджер работающий по некому протоколу с внешними сервисами.
    Что бы к ним подключаться, вы вынуждены где то хранить логины-пароли от внешки в не зашифрованном виде.
    Понятно что если просто положить их в базу - утечет все сразу же.

    Решение 1:
    Пишем хранимку которая отдает связанные логины-пароли от внешнего сервиса по логину-паролю от нашего мульти-мессенджера.
    Доступ к изменению хранимки и к базе в которой лежат все пароли есть у 1 человека в компании. Остальные тупо ходят через хранимку. Способа получить полный список логинов-паролей сервиса не существует.

    Первое решение в принципе хорошо, но человек имеющий доступ - bigboss и слегка устал лично заниматься этим волшебным сервером.

    Решение 2:
    Разделяем каждый пароль от внешнего сервиса на N частей (N >= 3)
    Дублируем решение 1 на N серверов, каждый пароль получается размазан на N серверов.
    Первоначальная хранимка занимается тем что собирает данные из N хранимок с N серверов.
    У каждого сервера - свой ответственный человек. Доступ к каждому серверу есть только у ответственного и у bigboss (на случай внештатных ситуаций).

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

    @dmitryKovalskiy
    программист средней руки
    Чистая кроссплатформенность - это веб-приложение. Клиенту пофиг на чем написано ваше приложение, главное что в браузере открылось. Для настолок - идеального решения нет.
    Ответ написан
    1 комментарий
  • Какой ЯП использовать для кросплатформенной разработки в 2015 году?

    sim3x
    @sim3x
    Никакой
    Кроссплатформенность из коробки - миф
    Ответ написан
    Комментировать
  • Нужен ли python для gamedev'a?

    Lovesuper
    @Lovesuper
    pyhon, java, swift программист
    насколько я знаю, Python используется для скриптования сцен, или например в том же Blender данный язык используется для написания основной логики приложения. Да и вообще Python довольно полезный язык во всех областях. Вообще, ошибка -- изучать только кажущиеся нужными "потом" языки. Лучше разобраться в теме применения.
    Ответ написан
    Комментировать
  • Куда съезжать с Ubuntu?

    Ernillew
    @Ernillew
    Администрирую *nix-системы с 1997 года
    > что с бубунты пора съезжать вообще на что-то более серьезное

    Этот человек — клоун начитавшийся форумов для чайников.
    Ubuntu — мэйнстримный дистрибутив. Никуда съезжать с него нет нужды.
    Ответ написан
    6 комментариев
  • Как найти удалённую практику для начинающего python программиста?

    sim3x
    @sim3x
    while not is_person_working:
       Ходить на собеседования и узнавать, что нужно компаниям и людям
       Учить, то что они хотят не переставая ходить на собеседования
    Ответ написан
    3 комментария
  • Как конвертировать массив int в int?

    @Mixxer
    Да ладно, чуть-чуть подумать всего нужно.

    Простой вариант (как раз для int): пройтись циклом с "конца" массива, умножая каждый раз число. То есть 0 * 1 + 3 * 10 + 5 * 100 + 4 * 1000 + 7 * 10000.

    А если числа как string (вводятся например) можно вообще пройтись циклом, дописывая всё как строку (или число переводить в строку и дописывать. Но так делать не стоит, это как просто пример того, что всегда есть несколько способов).
    Ответ написан
    Комментировать
  • Что делать что бы не потерять зрение?

    paradokso
    @paradokso
    Начинающий фронт-эндер
    Моргать. Серьезно, следите за тем, чтобы глаза не пересыхали. Делайте перерывы на 5 минут каждый час. Зарядку, не только для глаз - встаньте и разомнитесь, необходимо чтобы кровь не застаивалась.
    + зарядка для глаз, о которой вам уже сказали.

    А витаминки - это так, конфетки
    Ответ написан
    Комментировать