Рубрика «c++» - 83

Вступление

Сама библиотека довольно таки зрелая, — первый релиз на гитхабе
датируется аж 2004 годом. Я был удивлён когда хабр в поиске
не выдал мне ни одной ссылки на статьи, в которых бы упоминалось
об этой замечательной библиотеке.

SOCI поддерживает ORM, через специализацию type_conversion.

В SOCI имеются бэкенды для:

  • Firebird
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite

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

Читать полностью »

Хотел сегодня поспать, но опять не удалось. В Телеграме появилось сообщение, что у кого-то не собирается Java… и мы очнулись только через пару часов, уставшие и довольные.

О сборке JDK 8 на Ubuntu, качестве кода Hotspot и почему всё валят на C++ - 1

Кому этот пост может быть полезен? Да, наверное, никому, кроме тех, кто тоже собирает JDK8 или просто любит почитать кошмарные ужасы. В общем, я вас предупредил, закрывайте статью срочно.

Проблемы три:

  • Не собирается (уровень первый)
    Очень скучная часть, которую можно пропустить. Нужна только для тех, кто хочет полностью восстановить историю событий;
  • Не собирается (уровень второй)
    Интересней, потому что там есть пара типичных ошибок, некромантия, некрофилия, в чём BSD лучше GNU/Linux и почему стоит переходить на новые версии JDK.
  • Даже если собирается, падает в корку
    Более интересно. Йахууу, JVM упала в корку, давайте пинать её ногами!

Под катом показан подробный ход решения проблем, с разными побочными мыслями о жизни.

Будет много C++, кода на Java не будет вообще. Любой джавист в конце концов начинает писать только на C++…

Читать полностью »

DevDay про тестирование: Relax. Test it easy - 1

28 сентября зовём тестировщиков и всех неравнодушных на встречу — подключайтесь к трансляции, заглядывайте в гости. Сторонники традиционных докладов секции QA узнают, как проверить API на изменения и автоматизировать его же с помощью Postman и Newman. Для любителей послушать разработчиков организуем выступление про фаззинг.

Под катом расписание, детали и всё про регистрацию.
Читать полностью »

«Высокий уровень самодисциплины». Джеффри Рихтер о том, как кодить, писать книги и создавать свои компании - 1Сегодня в нашей виртуальной студии один из самых известных дотнетчиков — Джеффри Рихтер.

В данный момент он — Partner Software Architect в Microsoft, работающий по направлению Distributed Cloud Apps & Storage. Иначе говоря, человек, который знает об Azure Storage всё.

F.A.Q.

Слишком много текста. О чём это всё?

Чтобы вам было веселей читать, для этой статьи мы придумали более интересную вёрстку. Слева будут говорящие головы, а справа — текст. Если вам уныло листать до интересующей части, то в оглавлении есть анкерные ссылки. В ролях:

«Высокий уровень самодисциплины». Джеффри Рихтер о том, как кодить, писать книги и создавать свои компании - 2Евгений phillennium Трифонов (нетехнические вопросы)

  • Советы разработчикам по созданию компании
  • Комбинирование разных видов деятельности
  • Что читать, что изучать, как писать

«Высокий уровень самодисциплины». Джеффри Рихтер о том, как кодить, писать книги и создавать свои компании - 3Олег olegchir Чирухин (технические вопросы)

  • Зачем Рихтер изучает JS, Golang и Python
  • Стоит ли продолжать писать на C++
  • Эволюция и будущее разработки на платформе Windows, .NET и вообще
  • Захватит ли JavaScript мир, нужна ли типобезопасность
  • Немного о пользе облачных провайдеров
  • Что лучше иметь — личный самолет или личный вертолёт
  • Как всё успевать

Почему эта статья попала в хаб JavaScript?

Только для тех, кому интересно мнение архитектора Azure относительно JS и его позиция в холиваре о типобезопасности. Этот холивар перетекает у нас из интервью в интервью, и конца ему не видно.
Почему эта статья попала в хаб С++?

Изначально Рихтер писал книги про C++. Только для тех, кому интересно мнение архитектора Azure относительно будущего и применимости C++

«Высокий уровень самодисциплины». Джеффри Рихтер о том, как кодить, писать книги и создавать свои компании - 4

Джефф стал известен еще в начале 90-х, когда написал книгу о том, как программировать Windows 3.1. Его книга «Programming Applications for Microsoft Windows» стала классикой, позже выпускалась как «Windows via C/C++» и выдержала несколько изданий.

С появлением .NET он написал «CLR via C#» — тоже получилась классика, тоже несколько изданий. В то время он был одним из основателей компании Wintellect и, формально не будучи частью Microsoft, оказался более свободен в оценках. Чем и заработал репутацию крупного независимого эксперта по Windows. Это человек-легенда уровня Чарльза Петцольда и Дона Бокса.

Читать полностью »

Попросил меня на днях товарищ помочь с одной задачкой: управлять компом с аудиопроигрывателем, установленном на ноутбуке с Windows, с помощью маленького аппаратного пультика. Просил всякие ИК пульты не предлагать. И сделать AVR-е, коих у него осталось некоторое немалое количество, пристраивать потихоньку надо.

Читать полностью »

Во время работы в Headlands Technologies мне посчастливилось написать несколько утилит для упрощения создания высокопроизводительного кода на C++. Эта статья предлагает обобщенный обзор одной из этих утилит — OutOfLine.

Читать полностью »

Я боролся с соблазном назвать статью как-то типа «Ужасающая неэффективность алгоритмов STL» — ну, знаете, просто ради тренировки в мастерстве создания кричащих заголовков. Но всё же решил оставаться в рамках приличий — лучше получить от читателей комментарии по содержанию статьи, чем негодование по поводу её громкого названия.

В этом месте я предположу, что вы немного знаете С++ и STL, а также заботитесь об используемых в вашем коде алгоритмах, их сложности и соответствия поставленным задачам.

Алгоритмы

Одним из хорошо известных советов, которые вы можете услышать от современного сообщества разработчиков на С++, будет не придумывать велосипеды, а использовать алгоритмы из стандартной библиотеки. Это хороший совет. Данные алгоритмы безопасны, быстры, проверены годами. Я тоже часто даю совет применять их.

Каждый раз, когда вам хочется написать очередной for — следует сначала вспомнить, нет ли в STL (или в boost) чего-то, что уже решает эту задачу в одну строку. Если есть — чаще лучше использовать это. Нам, однако, и в этом случае следует понимать, что за алгоритм лежит за вызовом стандартной функции, каковы его характеристики и ограничения.

Обычно, если наша проблема в точности совпадает с описанием алгоритма из STL, будет хорошей идеей взять и применить его «в лоб». Беда только в том, что данные не всегда хранятся в том виде, в котором их хочет получить реализованный в стандартной библиотеке алгоритм. Тогда у нас может возникнуть идея сначала преобразовать данные, а потом всё же применить тот же алгоритм. Ну, знаете, как в том анекдоте про математика «Затушить огонь из чайника. Задача сведена к предыдущей».
Читать полностью »

Для тех кто не в курсе: LAppS — Lua Application Server, это почти как nginx или apache, но только для WebSocket протокола, вместо HTTP.

HTTP в нём поддерживается только на уровне Upgrade запроса.

LAppS изначально затачивался на высокую нагрузку и вертикальную масштабируемость, и сегодня достиг пика своих возможностей на моём железе (ну почти, можно и дальше оптимизировать, но это будет долгий и упорный труд).

Самое главное, LAppS по производительности WebSocket стека, превзошёл библиотеку uWebSockets, которая позиционируется как самая быстрая WebSocket имплементация.

Заинтересованных прошу под кат.

Читать полностью »

OGL3

SSAO

Тема фонового освещения была затронута нами в уроке по основам освещения, но лишь вскользь. Напомню: фоновая составляющая освещения – суть постоянная величина, добавляемая во все расчеты освещения сцены для имитации процесса рассеяния света. В реальном же мире свет испытывает множество переотражений с разной степенью интенсивности, что приводит к столь же неравномерной засветке косвенно освещенных участков сцены. Очевидно, что засветка с постоянной интенсивностью не очень правдоподобна.

Одним из видов приближенного расчета затенения от непрямого освещения является алгоритм фонового затенения (ambient occlusion, AO), который имитирует ослабление непрямого освещения в окрестности углов, складок и прочих неровностях поверхностей. Такие элементы, в основном, значительно перекрываются соседствующей геометрией и потому оставляют меньше возможностей лучам света вырваться наружу, затемняя данные участки.

Ниже представлено сравнение рендера без и с использованием алгоритма AO. Обратите внимание на то, как падает интенсивность фонового освещения в окрестности углов стен и прочих резких изломов поверхности:

Learn OpenGL. Урок 5.10 – Screen Space Ambient Occlusion - 2

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

RPC — повод попробовать новое в C++ 14 - 17 - 1Несколько лет назад разработчики на C++ получили долгожданный стандарт C++ 11, принесший много нового. И у меня был интерес быстрее перейти к его использованию в повседневно решаемых задачах. Перейти к C++ 14 и 17 такого не было. Казалось, нет того набора фич, который бы заинтересовал. Весной я все же решил посмотреть на новшества языка и что-нибудь попробовать. Чтобы поэкспериментировать с новшествами нужно было придумать себе задачу. Долго думать не пришлось. Решено написать свое RPC с пользовательскими структурами данных в качестве параметров и без использования макросов и кодогенерации — все на C++. Это удалось благодаря новым возможностям языка.

Идея, реализация, фидбэк с Reddit, доработки — все появилось весной, начале лета. К концу же удалось дописать пост на Хабр.

Вы задумались о собственном RPC? Возможно, материал поста Вам поможет определиться с целью, методами, средствами и принять решение в пользу готового или что-то реализовывать самостоятельно…
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js