• Почему возникают ошибки линковщика?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    Вы слышали про оператор "->" в С++? Ну и попробуйте снести папку сборки.
    Ответ написан
    1 комментарий
  • Как перемотка видео работает в YouTube и обычных Media Center системах?

    Stalker_RED
    @Stalker_RED
    Если данные идут по http, то вероятно используется псевдостриминг
    Для скачивания файла со смещением существуют заголовки range.

    Если потоковое - то есть разные протоколы. (в вики далеко не все)

    В общем случае - клиент (плеер) умеет составить правильный запрос (с нужными заголовками или параметрами запроса), а сервер вещания умеет выдать файл с нужным смещением.

    И да, в начале файла зачастую записаны какие-то мета-данные - общая длительность ролика, битрейт, информация о кодеках и т.п.
    Ответ написан
    Комментировать
  • Как заработать первые деньги на игре без доната?

    krimtsev
    @krimtsev
    Chvalov: Как показывает практика, активные пользователи никогда не выключают WIFI. А 3g давно популярная штука. Если Ваша реклама не будет <<бесячая>> то она может появляться после смерти. Такую практику часто применяют KetchApp.

    Вообще советую пробежаться по схожим играм и посмотреть как реализовано у них.

    А еще лучше подумайте о том, как будете продвигать свою игру. Если о ней никто знать не будет, то и реклама <<где угодно>> приносить вам доход не будет ;)
    Ответ написан
    1 комментарий
  • Насколько сложно написать под Chrome?

    OrlovEvgenii
    @OrlovEvgenii
    golang developer / DevOps
    - Сложность реализации прямо пропорционально тому, что ты хочешь получить на выходе. Это очевидно.
    - HTML5, CSS, JS да этого достаточно.
    - habr жэ
    - Если ты задаешь столь очевидные вопросы тут, а не сидишь и "гуглишь".. то ставлю полтосик на то, что свое хорошее приложение для хрома ты будешь еще очень-очень долго реализовывать.
    Ответ написан
    1 комментарий
  • "Python experience is plus" в вакансии Senior C++ Developer и похожих. С чем связано?

    GavriKos
    @GavriKos
    На питоне часто пишут какие то мелкие тулзы для внутренних нужд компании. Возможно именно это и есть причина. А вообще - вы можете прийти на собеседование и спросить - зачем им питон :-)
    Ответ написан
    Комментировать
  • Как сбилдить релиз версию приложения на Qt?

    Nipheris
    @Nipheris Куратор тега C++
    Неужели нет какого нибудь более простого способа релиз билда приложения на qt???

    Если там правильные DLL (как сказал Ринат Велиахмедов , без суффикса "d") - то вам их надо собрать в одной папке вместе с exe (плюс отдельный разговор о плагинах для платформы). В документации Qt точно был отличный раздел про сборку релиза.. О, вот: https://wiki.qt.io/Deploy_an_Application_on_Windows и doc.qt.io/qt-5/windows-deployment.html
    Ответ написан
    Комментировать
  • Какую литературу по back-end посоветуете?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Ответ написан
    Комментировать
  • Какую запись делать в трудовой?

    AnnTHony
    @AnnTHony
    Интроверт
    для крупной компании


    Кадровик не знает что писать в трудовую


    818343149_4347189.jpg
    Ответ написан
    3 комментария
  • Цикл с таймаутом ровно в 1 секунду?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Ваш вопрос можно приводить в качестве наглядного пособия на тему "Как именно вылазит боком кривая архитектура системы" :) Основная проблема в том, что интеграция компонент через storage есть зло, рано или поздно (чаще - рано) заставляющее разработчика выполнять стойку на ушах. Так что, если есть такая возможность, постарайтесь устранить зло в корне, т.е. найти способ узнавать об изменениях, ну, или хотя бы о самом факте, до того, а не после. Тогда не придется ничего опрашивать в цикле, а только реагировать на изменения. А это уже - половина проблемы!

    Если возможности нет, а делать все равно надо, сначала смитритесь с тем, что Вы никогда на PHP не добьетесь ровненько 86400 вызовов в сутки каждую секунду, если только не поставите ядро реального времени / не напишете соответствующий код на С и т.д. и т.п. Особенно, если storage крутится на том же процессоре в той же ОС, и количесво данных в нем будет со временем увеличиваться. Но это почти наверняка и не нужно, а нужно проанализировать задачу и понять, что на самом деле критично и какие отклонения от идеала возможны без ущерба для функциональности.

    "Примерно 0.03с" само по себе еще не о чем не говорит. Это всегда или в случае, если изменений нет, или если они небольшого объема? А если 90% данных обновились? Это - раз. Два: если изменения обнаружены, сколько может занять их обработка (в худшем случае)?.. И, наконец, три: если уже наступила "следующая секунда", а мы все еще не закончили обработку прошлых изменений, возникает целый ряд вопросов. Имеет ли в этом случае вообще смысл проверять новые изменения (сможем ли мы их осмысленно обработать, если найдем)? Если да, понадобится как минимум 2 потока. Если нет, насколько критично пропустить эту секунду? А сколько еще можно пропустить без ущерба для функционала? Предположим, это не критично, и мы уже пропустили секунду (или несколько), что нам важнее: чтоб следующая проверка выполнилась как можно ближе к границе "следующей секунды", или как можно быстрее? И т.д. и т.п.

    Не зная ответов на эти и подобные вопросы, невозможно предложить "правильное" решение. Но в качестве сферического коня в вакууме можно посоветовать бесконечный цикл, в котором выполняется проверка, реакция на найденные изменения, после чего вычисляется время до следующей проверки, на которое выполняется sleep().
    Ответ написан
    Комментировать
  • Как получить видеопоток с IP-камеры по RTSP/RTP в Linux(Debian)?

    @Hocok_B_KapMaHe
    Я получал так:
    ffmpeg -rtsp_transport tcp -i rtsp://user:password@xxx.xxx.xxx.xxx:554/channel=1&stream=0?.dtp -vcodec copy -an -y out.mp4

    Если надо в программе то тут несколько уроков
    dranger.com/ffmpeg/tutorial01.html
    Ответ написан
    1 комментарий
  • Неявное наследование private ?!?

    Nipheris
    @Nipheris Куратор тега C++
    Вы невнимательно читали про наследование (или читали в плохом источнике).

    Логически (т.е. с точки зрения самой идеи) наследование (причем, любое, public и другие) подразумевает, что реализация базового класса станет частью реализации дочернего. Приватные поля класса - это часть его реализации.

    Технически, наследование в C++ подразумевает наличие подобъекта базового класса в объекте класса-наследника. Т.е. у вас в каждый объект Two помимо его собственных полей (в вашем примере их нет) запихиваются все поля Base (и так с каждым базовым классом, если их несколько), по принципу матрешки. НЕВАЖНО, как указали уже в первом ответе, что вы не имеете к ним доступ из класса-наследника. Важно, что они есть, и методы класса Base могут ими спокойно пользоваться, чтобы выполнять свою работу.
    Ответ написан
    Комментировать
  • Неявное наследование private ?!?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    А что в этом такого? Вы сделали виртуальный метод с реализацией. Затем унаследовали класс, не переопределив метод. Метод публичный. То, что он внутри обращается к приватным полям - без разницы. Приватные поля содержатся в наследнике, просто они ему не доступны.
    Ответ написан
    Комментировать
  • Какая IT-специальность наиболее востребована?

    @evgeniy_lm
    Востребованы не специальности, а специалисты.
    Ответ написан
    Комментировать
  • Какая IT-специальность наиболее востребована?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Углубиться следует в умение пользоваться поиском. Ваш вопрос задается каждые пару дней. Если человек хочет стать айтишником, и не умеет пользоваться поиском уже готовых ответов - у вас врядли получится "углубиться"

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

    Sanes
    @Sanes
    Для того, чтобы вас взяли на работу надо иметь портфолио. Делайте что-то для себя или вымышленны проекты, это и будет вашим портфолио.
    Ответ написан
    Комментировать
  • Суть виртуальной машины Java?

    ruFelix
    @ruFelix
    Предсказание будущего по руке, таро, кофе.
    Ну смотрите процессор компьютера понимает опкоды, для разных процессоров свои опкоды, x86 , AMD64, ARM и т.д.

    Компилируемыми языками называют те, что в итоге компиляции дают код исполняемый на конкретном процессоре. Простую программку без проблем можно компилировать под разные процессоры, но скомпилированную под один нельзя запустить на другом.

    Интерпретируемые языки поступают иначе, они имеют в своём составе интерпретатор, который транслирует код программы в опкоды процессора. Соответственно реализовав один раз интерпретатор по разные платформы мы получаем кроссплатформенный язык.

    Виртуальня машина java это тоже интерпретатор по сути, но ему на вход идёт не сама java программа, а её трансформированный вариант, т.е. уже проверенный и более удобный для VM.

    Да вы всё правильно поняли, без JVM программа на java не запуститься не где. Замечу что например в симкарте вашего телефона есть процессор на котором запущена JVM и софт который на ней исполняется, это я к тому, что кроссплатформенность у java действительно широка.
    Ответ написан
    Комментировать
  • Лафоре или Липпман?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Прочитать обе
    Ответ написан
    Комментировать
  • Почему char занимает 1 байт, а строка с одним символом - 2 байта?

    @redakoc
    Существует 2 типа строк:

    Типа С.
    Тип Паскаль.

    К языкам это не имеет отношения: язык Паскаль может использовать строки типа С, язык С может использовать строки типа Паскаль. Название просто исторически возникло, т.к. изначально в С и Паскале были только одного вида строки (разные, такие как описано ниже).

    Строка типа С - это массив байтов, заканчивающийся нулем. То есть строка не может содержать символ с кодом 0 (не числом 0, а символ с кодом 0, нулевой байт). Длина строки всегда = количество символов + 1 байт (с нулевым кодом) в конце строки.

    Строка типа Паскаль в начале хранит 1 байт, указывающий длину строки, затем идет массив символов. Строка может содержать внутри себя символы с кодом 0. Но не может быть длиннее 255 байт. В памяти такая строка занимает те же что и С = число символов в строке + 1 байт в начале, хранящий её длину.

    А еще есть строки UNICODE, UTF8, строки типа Паскаль, где длина указана 2-мя байтами (т.е. максимальная длина 65535 символов в строке).

    Длина таких строк в байтах может быть очень и очень разной. Совсем не соответствующей числу символов. Разница будет не на 1 байт (как в простых строках типа С и типа Паскаль). Более того, например, в UTF8 длина строки в байтах будет зависеть от того, что именно написано. )))

    В наше время я настоятельно рекомендую изучать не простые char, а обратить внимание именно на UNICODE.
    А там вовсе не один байт на один символ. )))))
    Ответ написан
    41 комментарий