Потребовалось переписать код с одного языка на другой, и возникла странная ситуация. Одинаковый с виду листинг ведет себя совершенно по-разному. В виду того, что кода действительно много, ошибку очень сложно заметить. На примере данной ситуации порассуждаем, насколько разные языки программирования?!
Рубрика «c++» - 89
Преступление и наказание в программировании
2018-07-02 в 9:37, admin, рубрики: C#, c++, Go, golang, java, javascript, php, python, ПрограммированиеЧто не так с std::visit в современном C++
2018-06-30 в 5:29, admin, рубрики: c++, variant, visit, visitor pattern, Программирование, Совершенный кодСигма-тип и вы
Давайте поговорим о простой, но мощной концепции в программировании — сигма-типах.
Сигма-тип (тип-сумма, меченное объединение) может содержать значения одного и только одного из нескольких типов. Например, рассмотрим настройки в INI-подобном файле конфигурации. Пусть каждая настройка может быть строкой, целым или булевым значением. Если бы мы хотели сделать свою библиотеку на C++, мы бы написали что-то вроде этого:
Читать полностью »
Три коротких истории о реестре Windows
2018-06-29 в 14:12, admin, рубрики: c++, windows, Блог компании «Лаборатория Касперского», разработка под windows, реестр windows, системное программированиеДобрый день, уважаемые читатели.
Реестр — это одна из самых заметных и значительных систем Windows. Вряд ли найдется человек, который не слышал о нем. Занимаясь программированием под Windows уже около 20 лет, я думал, что знаю о нем все. Но время от времени появляется что-то новое, что показывает мне, как я был неправ. Поэтому сегодня я хочу рассказать вам о необычных способах работы с реестром, которые я встречал, исследуя руткиты, и которые удивили меня.
Learn OpenGL. Урок 5.5 – Normal Mapping
2018-06-29 в 12:17, admin, рубрики: bitangent, bump mapping, c++, normal mapping, OpenGL, opengl 3, tangent, tangent space, Программирование, разработка игр
Normal Mapping
Все сцены, которые мы используем состоят из многоугольников, в свою очередь состоящих из сотен, тысяч абсолютно плоских треугольников. Нам уже удалось немного повысить реализм сцен за счет дополнительных деталей, которые обеспечивает нанесение двухмерных текстур на эти плоские треугольники. Текстурирование помогает скрыть факт того, что все объекты в сцене – всего лишь набор множества мелких треугольников. Великолепная техника, но возможности её не безграничны: при приближении к любой поверхности все одно становится ясно, что она состоит из плоских поверхностей. Большая же часть реальных объектов не является абсолютно плоской и демонстрирует множество рельефных деталей.
Читать полностью »
ИОК: библиотеки GCrypt и KSBA как альтернатива OpenSSL с поддержкой российской криптографии. Продолжение
2018-06-29 в 8:28, admin, рубрики: C, c++, cms разработка, GnuPG, libgcrypt, libksba, open source, openssl, PKCS#7, PKI, TK26, x509, ГОСТ 34.10-2012, ГОСТ 34.11-2012, криптография, Программирование, Разработка под LinuxМы продолжаем разговор об альтернативе openssl и речь пойдет о библиотеке libksba, которая входит в состав GnuPG. Библиотека libksba предоставляет высокоуровневый интерфейс для работы с такими объектами инфраструктуры открытых ключей как сертификаты, запросы на сертификаты, электронная подпись (CMS/PKCS#7). Однако, в отличии от библиотеки GCrypt, в которой реализована поддержка российских криптографических алгоритмов, то в libksba отсутствует реализация рекомендаций ТК-26 по использованию алгоритмов ГОСТ Р 34.10-2001/2012, ГОСТ Р 34.11-94/2012 в таких объектах ИОК как сертификаты, запросы на сертификаты, объекты PKCS#7/CMS (подписанные и/или шифрованные документы и т.п).
Читать полностью »
Разработка интерфейсных плат на SoC Xilinx Zynq 7000 для записи речи в аналоговом и цифровом формате
2018-06-27 в 13:00, admin, рубрики: ARM+FPGA, AXI_DMA, C, c++, fpga, HLS, IP-ядра, linux, opencl, PCI, promwad, SoC, xilinx, интерфейсная плата, ПЛИС, Программирование, Производство и разработка электроники, Разработка под Linux, разработка электроники, системное программирование
В этой статье мы поделимся опытом разработки интерфейсных плат блока сопряжения на базе SoC ARM+FPGA Xilinx Zynq 7000. Платы предназначались для записи речевых сигналов в аналоговом и цифровом формате PRI/BRI (ISDN, E1/T1). Само конечное устройство будет использоваться для фиксации переговоров в гражданской авиации.
Читать полностью »
Работа с API КОМПАС-3D → Урок 10 → Спецсимволы, включающие строку
2018-06-22 в 8:11, admin, рубрики: api, c++, c++ builder, CAD/CAM, библиотеки, Блог компании АСКОН, компас, компас 3d, приложения, чертеж, чертежиМы уже знакомились со спецсимволами в 4 уроке нашего цикла. Там было показано их простейшее использование. Там же говорилось, что если интерфейс ksTextItemParam задает и спецсимвол, и строку, то строка располагается сразу за спецсимволом. Однако существуют спецсимволы, которые нарушают это правило. О них мы сегодня и поговорим.
Приглашаем на Unreal Engine 4 Meetup в эту субботу в Санкт-Петербурге
2018-06-21 в 16:19, admin, рубрики: blueprint, c++, Gamedev, games development, meetup, meetups, Unreal Engine 4, итмо, Санкт-Петербург, я пиарюсь
Уже в эту субботу, 23 июня, в Санкт-Петербурге, в Университете ИТМО состоится второй официальный Meetup для разработчиков игр и не только на движке Unreal Engine 4. Приходите слушать доклады, задавать вопросы, участвовать в обсуждениях и выигрывать официальный мерч!
Для участия в мероприятии необходимо зарегистрироваться. Вход бесплатный.
Подробности под катом.
Читать полностью »
Разработка нового статического анализатора: PVS-Studio Java
2018-06-20 в 11:18, admin, рубрики: c++, java, pvs-studio, Блог компании PVS-Studio, Программирование, статический анализСтатический анализатор PVS-Studio известен в мире C, C++ и C# как инструмент для выявления ошибок и потенциальных уязвимостей. Однако у нас мало клиентов из финансового сектора, так как выяснилось, что сейчас там востребованы Java и IBM RPG(!). Нам же всегда хотелось стать ближе к миру Enterprise, поэтому, после некоторых раздумий, мы приняли решение заняться созданием Java анализатора.
Читать полностью »