Чуть менее чем самая быстрая, переносимая, 64-битная хэш-функция, с достойным качеством.
Да, вжух и в дамки, примерно так. Читаем дальше?
Рубрика «C» - 61
t1ha
2017-10-02 в 14:35, admin, рубрики: C, cityhash, hash, hash function, t1ha, высокая производительность, ненормальное программирование, системное программирование, Совершенный кодt1ha = Fast Positive Hash
2017-10-02 в 14:35, admin, рубрики: C, cityhash, hash, hash function, t1ha, высокая производительность, ненормальное программирование, системное программирование, Совершенный кодЧуть менее, чем самая быстрая, переносимая, 64-битная хеш-функция, с достойным качеством.
Да, вжух и в дамки, примерно так. Читаем дальше?
Декомпиляция RNC ProPack длиной в 5 лет
2017-10-02 в 12:40, admin, рубрики: C, dosbox debugger, motorola 68000, python, rnc, source code, исходники, реверс-инжинирингПриветствую, друзья!

В данном материале я расскажу Вам, как на протяжении нескольких лет занимался реверсом 46 КБ (кажется — всего то!) исполняемого файла от AmigaOS, узнал много нового для себя, испробовал множество разных технологий, и, в итоге, добился своего — превратил декомпилированный Motorola M68000 ассемблерный код в C-шный код, которым может воспользоваться любой желающий.
Про интервальные индексы
2017-10-02 в 4:05, admin, рубрики: C, open source, postgresql, r-tree, rdbms, spatial index, zorder, Алгоритмы, СУБД
Под катом будем разбираться нужен ли для индексации интервалов специальный индекс, как быть с многомерными интервалами, правда ли что с 2-мерным прямоугольником можно обращаться как с 4-мерной точкой и т.д. Всё это на примере PostgreSQL.
Читать полностью »
Обзор дефектов кода музыкального софта. Часть 1. MuseScore
2017-09-27 в 8:12, admin, рубрики: C, c++, musescore, open source, pvs-studio, static code analysis, Блог компании PVS-Studio, Компиляторы, статический анализ кода
Программирование — занятие творческое, поэтому среди разработчиков встречается много талантливых людей, имеющих своеобразное хобби. Вопреки распространённому мнению, это не всегда программирование (ну или не только оно :D). На основе своего увлечения записью/обработкой музыки и профессиональной деятельности, я решил проверить качество кода популярных музыкальных программ с открытым исходным кодом. Первой для обзора выбрана программа для редактирования нот — MuseScore. Запасайтесь попкорном… серьёзных багов будет много!
Читать полностью »
Делаем MitM с помощью openssl на Android
2017-09-26 в 13:41, admin, рубрики: android, C, c/c++, c++, mitm, openssl, Блог компании InfoWatch, Разработка под android
Мотивация
В русскоязычном интернете трудно найти информацию об API-библиотеке OpenSSL. Большое внимание уделяется использованию консольных команд для манипуляции с самоподписанными сертификатами для веб-серверов или OpenVPN-серверов.
Такой подход хорош, когда нужно сделать пару сертификатов в час. А если потребуется создать сразу пару сотен за минуту? Или писать скрипт и разбирать вывод из консоли? А если в процессе произошла ошибка?
При использовании API генерация сертификатов, проверка валидности и подпись выполняются гораздо проще. Появляется возможность контролировать и обрабатывать ошибки на всех этапах работы, а также указывать дополнительные параметры сертификата (поскольку не все параметры можно задавать из консоли) и производить тонкую настройку.
Отдельно стоит отметить сетевую составляющую. Если сертификат есть и просто лежит на диске, он бесполезен.
К сожалению, очень мало русской документации по вопросу организации SSL-сервера, по тому, как организовать SSL-клиент для получения данных. Официальная документация не настолько полна и хороша, чтобы можно было сразу включиться в работу с библиотекой. Не все функции описаны подробно, приходится экспериментировать с параметрами, с тем, в какой последовательности и что именно нужно очищать, а что библиотека удалит самостоятельно.
Данная статья — компиляция моего опыта по работе с библиотекой OpenSSL при реализации клиент-серверного приложения. Описанные в ней функции будут работать как на десктопе, так и на Android-устройствах. К статье прилагается репозиторий с кодом на C/C++ для того, чтобы вы могли увидеть работу описываемых функций.
Цель Читать полностью »
Немного о программировании ESP8266 на C под FreeRTOS
2017-09-21 в 19:50, admin, рубрики: C, DIY, diy или сделай сам, программирование микроконтроллеровТут должна быть КДПВ, но на нее не хватило бюджета.
Замотивировавшись ответом от Tarson на мой комментарий к статье https://geektimes.ru/post/292801/ решил написать про основы программирования ESP8266 на C под FreeRTOS. Подробности под катом.
Читать полностью »
Nuklear+ — миниатюрный кроссплатформенный GUI
2017-09-18 в 9:47, admin, рубрики: C, glfw, GUI, linux, Nuklear, open source, OpenGL, opengl es 2.0, pure C, sdl, WinAPI, windows, Программирование, Разработка под Linux, разработка под windows
Nuklear+ (читается как "Nuklear cross", значит "кроссплатформенный Nuklear") — это надстройка над GUI библиотекой Nuklear, которая позволяет абстрагироваться от драйвера вывода и взаимодействия с операционной системой. Нужно написать один простой код, а он потом уже сможет скомпилироваться под все поддерживаемые платформы.
Я уже писал на хабре статью "Nuklear — идеальный GUI для микро-проектов?". Тогда задача была простой — сделать маленькую кроссплатформенную утилиту с GUI, которая будет примерно одинаково выглядеть в Windows и Linux. Но с тех самых пор меня не отпускал вопрос, а можно ли на Nuklear сделать что-то более-менее сложное? Можно ли целиком на нём сделать какой-нибудь реальный проект, которым будут пользоваться?
Проекции? Hет, спасибо
2017-09-18 в 4:02, admin, рубрики: C, open source, postgresql, r-tree, spatial index, SPI, zorder, Алгоритмы, Геоинформационные сервисы, СУБД
Под катом будет небольшая заметка о применении пространственного индекса
на основе zcurve для индексации точечных данных, расположенных на сфере.
А так же bencmark-и для PostgreSQL и сравнение с таким же (но совсем другим)
индексом на R-дереве.
Читать полностью »
Как написать свой первый Linux device driver
2017-09-14 в 12:50, admin, рубрики: C, drivers, linux, Разработка под LinuxЗдравствуйте, дорогие хабрачитатели.
Цель данной статьи — показать принцип реализации драйверов устройств в системе Linux, на примере простого символьного драйвера.
Для меня же, главной целью является подвести итог и сформировать базовые знания для написания будущих модулей ядра, а также получить опыт изложение технической литературы для публики, т.к через пол года я буду выступать со своим дипломным проектом (да я студент).
Это моя первая статья, пожалуйста не судите строго!
P.S
Получилось слишком много букв, поэтому я принял решение разделить статью на три части:
Часть 1 — Введение, инициализация и очистка модуля ядра.
Часть 2 — Функции open, read, write и trim.
Часть 3 — Пишем Makefile и тестируем устройство.
Перед вступлением, хочу сказать, что здесь будут изложены базовые вещи, более подробная информация будет изложена во второй и последней части данной статьи.
Итак, начнем.
Читать полностью »
