Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
mejedi

mejedi

  • 25
    вклад
  • 9
    вопросов
  • 28
    ответов
  • 29%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Подскажите парер XML для C++ для разбора больших файлов (1Гб+)

    mejedi
    mejedi @mejedi
    Любой SAX парсер подойдет.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Вопрос про терминал в системе mac os x

    mejedi
    mejedi @mejedi
    Индикация наличия расширенных аттрибутов.

    man xattr
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Задача, прошу review решения

    mejedi
    mejedi @mejedi
    Есть недочеты как в части знания и применения идиом C++, так и в скиле системного программирования.

    Базовый класс InterthreadObject — фе. В данном случае правильно использовать агрегацию. Вместо Enter/LeaveCriticalSection использовать класс lock a-la boost scoped_lock. Что на счет копирования/присваивания таких объектов?

    StopperCondition — а зачем там вобще синхронизация? (Здесь соискатель может начинать рассказывать про volatile, барьеры и тд).

    InterthreadRequestQueue перевести на умные указатели или обосновать почему они здесь не нужны. Не использовать new[] для выделения буфера под хэндлы. Сами хэндлы сделать объектом для автоматического закрытия в деструкторе.

    Возможно им не понравился printf. Лично у меня вызывает неприятие getc(cin) в конце main. Возможно, ожидается обработка исключений раз уж GetRequest/StopRequest старательно объявлены как no-throw.

    Consumer thread будет находиться в состоянии активного ожидания при исчерпании очереди. Более того несколько консъюмеров будут мешать друг другу и продьюсеру постоянно борясь за одну критическую секцию. Я бы оснастил очередь condition variable, это бы решило данную проблему.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Повторное слияние rebased ветки — как обычно делается?

    mejedi
    mejedi @mejedi
    Предлагаю такой вариант. Вместо порождения rebased, вы мерджите devel1 в master с ключем --no-commit (и --no-ff).
    Это симуляция workflow с конфликтом слияния — перед тем как окончательно сформировать merge commit, git даст вам возможность внести произвольные изменения.

    Далее вы откатываете изменения из коммита C10, и комититесь.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Перевод терминов Git на русский?

    mejedi
    mejedi @mejedi
    Я бы посмотрел в сторону книг по гиту на русском, изданных в хороших издательствах.

    Но судя по всему, устоявщейся терминологии нет.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Влияние наличия конструктора на расположение элементов внутри класса?

    mejedi
    mejedi @mejedi
    Вам знакомо понятие «выравнивание»?

    В зависимости от модели, процессор либо вообще не умеет читать невыравненные данные (ex: попытка чтения четырех байтового слова по адресу, не кратному 4 приводит к аппаратному исключению) либо делает это очень медленно. Атомарные операции также работают только с выравненными данными.

    Таким образом, поле типа long должно быть выравнено на границу 8 байт. Так как объекты могут располагаться в массивах подряд друг за дружкой, размер объекта также должен быть кратен 8. В общем случае — необходима кратность максимальному выравниванию среди полей. В результате получается следующий расклад: 8 байт long, 4 байт int, 4 байт паддинга. Если выравнивание на 8 байт не нужно (отсутствует long поле), то необходимости «подгонять» размер объекта тоже нет, и паддинга не возникает.

    Теперь самое интересное — почему есть эффект от пустого конструктора?

    Снова обратимся к теории. В C++ есть понятие POD типа. Можно сказать, это такая декларация, для которой гарантируется совместимость с Си. Для структур в языке Си непосредственно в стандарте прописаны правила «раскладки» полей в памяти, паддинги и все такое. До тех пор, пока Point не имеет пользовательского конструктора, он является POD, и следовательно должен иметь в конце «неприкосновенный» padding.

    Напротив, для не-POD типов стандарт не фиксирует представление в памяти. Например классы вполне законно представлять хоть хеш-таблицей, именно поэтому в C++ запрещено использование offsetof для полей класса. Поэтому компилятор вполне вправе творчески переиспользовать padding в объете Point для полей Point3D. Замечу, на другом компиляторе вы могли получить другой результат, и это было бы все равно ок с точки зрения языка C++.

    Что любопытно, объявления с ключевым словом class все еще могут быть POD-типами. Классы и структуры перестают быть POD типами наприемр если есть наследование или пользовательские конструкторы или виртуальные функции.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как лучше передать Callback в объект?

    mejedi
    mejedi @mejedi
    Третий вариант сейчас уже реализованный — передача функтора, содержащего указатель на объект и указатель на фунцию класса.

    Нормальный вариант.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Почему Линус не любит C++?

    mejedi
    mejedi @mejedi
    Проблема не в качестве языка, а в качестве программистов.

    Не любят вот почему:
    1) Сферический C++ программист не знает структур данных — за него все делает STL.
    2) Сферический C++ программист беззаботно выделяет память.
    3) Программа сферического C++ программиста не работает без буста.
    4) Сферический C++ программист делает простые вещи сложно.
    Ответ написан более трёх лет назад
    6 комментариев
    6 комментариев
  • Наследование проепроцессорных определений основного проекта сабпроектами

    mejedi
    mejedi @mejedi
    Для XCode есть xcconfig файлы (определение настроек проекта в текстовом файле, подерживается include между файлами) Для студии есть аналог.

    Для xcode можно еще попробовать BUILD_VARIANTS — обычно используется normal, profile, debug или их сочетания, но можно добавить свои имена конфигураций. Собираться будут все «варианты», настройки задаете в переменных OTHER_CFLAGS_.
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Вопрос о красоте ссылок?

    mejedi
    mejedi @mejedi
    pwgen + проверка на уникальность?
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Принцип работы Google NativeClient (NaCl) на x86_64?

    mejedi
    mejedi @mejedi Автор вопроса
    Как оказалось, достаточно было поискать потщательнее чтобы найти дополнительные материалы. Я так и подозревал, а вопрос создал скорее для того, чтобы сконнектиться с людьми со похожими интересами:)

    В этой статье описывается решение для x86_64 и arm. Действительно, применяется специальная последовательность инструкций, если нужно модифицировать память. Утверждают, что замедление в пределах 10%. Читать можно бесконтрольно откуда угодно, говорят что это безопасно, т.к. куки и прочие интересные вещи менеджатся в другом процессе. ИМХО это не совсем верно — как минимум можно использовать для идентификации клиента (можно получить много данных о его системе).

    Здесь описывается pnacl. Вместо того, чтобы отдельно распространять x86, x86_64 и arm код, предлагается промежуточный байткод (основан на LLVM).

    На клиенте это транслируется в ассемблер нативной архитектуры и выполняется в песочнице NaCl. Это намного проще в реализации, чем JIT и имеет приемлимую эффективность.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как компилировать с OpenNi, OpenCV, PCL в OS X?

    mejedi
    mejedi @mejedi
    Еще актуально? Можно и по teamviewer.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как компилировать с OpenNi, OpenCV, PCL в OS X?

    mejedi
    mejedi @mejedi
    Могу помочь; с этими либами никогда правда не работал, но xcode знаю хорошо.
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Кто-нибудь занимается разработкой под Windows Phone на MacBook Pro?

    mejedi
    mejedi @mejedi
    Я использую виртуальную машину с виндоуз для разработки которую запускаю на маке. Правда разработка не под windows phone и мак не MacBook Pro.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Почему возникает ошибка при декодировании base64 из c++ в python?

    mejedi
    mejedi @mejedi
    Ну так посмотрите, что шлет программа.
    Посмотрите вот-это на всякий случай en.wikipedia.org/wiki/Base64#Variants_summary_table
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как сделать кабельный вывод от шкафа до потолка?

    mejedi
    mejedi @mejedi
    проволочные лотки
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • G++ и порядок линковки

    mejedi
    mejedi @mejedi
    второй ответ
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Чем организовать удаленный доступ к OS X для разработчиков?

    mejedi
    mejedi @mejedi
    Доступ по VNC страшно лагает в 100 Мбитной локалке. ИМХО не взлетит.
    Ответ написан более трёх лет назад
    3 комментария
    3 комментария
  • Отладка so-библиотеки, загружаемой посредством dlopen()?

    mejedi
    mejedi @mejedi
    Проверьте непосредственно в gdb, чтобы исключить проблемы со стороны IDE.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Выбор скриптового языка для проекта, песочница?

    mejedi
    mejedi @mejedi
    Вы рановато сдались. Например github.com/haypo/pysandbox
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • GNUBack
    • 10 ответов
    • 0 вопросов
  • nedosekinstanislav
    Stanislav
    • 8 ответов
    • 0 вопросов
  • alexey-m-ukolov
    Алексей Уколов
    • 7 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • Deita
    Deita
    • 4 ответа
    • 2 вопроса
  • dimonchik2013
    Dimonchik
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации