Программстское портфолио (опенсорсное)
Apr. 18th, 2019 01:47 pmМногое из того что я когда-то делал по программистской работе или не доступно окружающим, или уже более не используется, по независящим от меня причинам. Но еще есть опенсорс, и вот из него уж точно слова не выкинешь. В этом месте предполагается поместить сводный список моих опенсорсных достижений.
Postgres
4cb658af - Refactor reloption handling for index AMs in-core - Не надо использовать StdRdOptions для хранения опций индексов, таская за собой не используемые для дела опции heap'а
1bbd608f - Split handling of reloptions for partitioned tables - Партиционированные таблицы все равно не используют ни одной опции. Поэтому завязывать их хранение на StdRdOptions совершенно ни к чему.
39677376 - Add some assertions to view reloption macros - Дополнительная проверка перед преобразованием типа
773df883 - Support reloptions of enum type. В постгресе строковый тип опций таблиц использовался фактически как enum, всякий раз писать функцию валидации походу не правильно, лучше прямо сделать его enum'ом.
640c1986 - Add dummy_index_am to src/test/modules/ so it can be used for test purposes and as an access method example
4b95cc1d - Add more tests for reloptions - Опции таблиц как выяснилось не тестировались ранее. Перед тем как их ломать, было решено для начала научиться тестировать то что есть. Правда с поламыванием воз и ныне там...
d6061f83 - Improve pageinspect module - Модуль pageinspect позволяющий изучать страницы хранилища postgres, с помощью этого патча научился разбирать на части содержимое записи, и показывать их в человеко-читаемом виде.
xmlsec
0606b742 - Поддержка подписи GOST2012.
AFL++
3a6dea4 – расшифровка кода ошибки при получении свойств CPUs при определении количества доступных процессоров в
f3ec554 – Показывать в заголовке окна фаззинга "AFL" вместо "american fuzzy lop" если user-defined часть заголовка слишклм длинная. (Позволяет задавать более длинные user-defined тексты в заголовке)
LibTAP++
Библиотека для TAP-тестирования C++'ных проектов LibTAP++ оказалась заброшена, пришлось взять над ней шефство и сделать форк.
153f1d11 – правки позволяющие использовать эту библиотеку в проектах использующих современные стандарты C++
perl
свои модули
Lingua::StarDict::Writer – модуль для создания StarDict словарей
патчи
Misc
subtutleeditor - 1dd00d03 - Fix building with older version of enchant - у кого-то в системе был уже enchant-2 и он послал фикс для сборки. А в дебиане до сих пор enchant без двойки, в результате собираться перестало. Сделал так чтобы собиралось в обоих случаях.
KDE networkmanagement - 99d3dbe8 - Show APN string for the APN selected by the user in Mobile Connection - чего-то оно там неправильно показывало при настройке USB-модема. Давно это было.
KDE networkmanagement - d395cfe7 - Hide non-Internet APNs in Mobile Connection Wizard.- В serviceproviders.xml начали разделять APN'ы по типам назначения (internet|mms|wap) а KDE'шный network manager об этом не знал, и показывал все в кучу.
preeny – e317826: добавил библиотеку
*будет пополняться*
Postgres
4cb658af - Refactor reloption handling for index AMs in-core - Не надо использовать StdRdOptions для хранения опций индексов, таская за собой не используемые для дела опции heap'а
1bbd608f - Split handling of reloptions for partitioned tables - Партиционированные таблицы все равно не используют ни одной опции. Поэтому завязывать их хранение на StdRdOptions совершенно ни к чему.
39677376 - Add some assertions to view reloption macros - Дополнительная проверка перед преобразованием типа
773df883 - Support reloptions of enum type. В постгресе строковый тип опций таблиц использовался фактически как enum, всякий раз писать функцию валидации походу не правильно, лучше прямо сделать его enum'ом.
640c1986 - Add dummy_index_am to src/test/modules/ so it can be used for test purposes and as an access method example
4b95cc1d - Add more tests for reloptions - Опции таблиц как выяснилось не тестировались ранее. Перед тем как их ломать, было решено для начала научиться тестировать то что есть. Правда с поламыванием воз и ныне там...
d6061f83 - Improve pageinspect module - Модуль pageinspect позволяющий изучать страницы хранилища postgres, с помощью этого патча научился разбирать на части содержимое записи, и показывать их в человеко-читаемом виде.
xmlsec
0606b742 - Поддержка подписи GOST2012.
AFL++
3a6dea4 – расшифровка кода ошибки при получении свойств CPUs при определении количества доступных процессоров в
afl-gotcpu.c
f3ec554 – Показывать в заголовке окна фаззинга "AFL" вместо "american fuzzy lop" если user-defined часть заголовка слишклм длинная. (Позволяет задавать более длинные user-defined тексты в заголовке)
LibTAP++
Библиотека для TAP-тестирования C++'ных проектов LibTAP++ оказалась заброшена, пришлось взять над ней шефство и сделать форк.
153f1d11 – правки позволяющие использовать эту библиотеку в проектах использующих современные стандарты C++
perl
свои модули
Lingua::StarDict::Writer – модуль для создания StarDict словарей
патчи
Lingua::StarDict::Gen
— версия 0.09: исправил серьезную проблему с сортировкой из-за которой пропадали слова.Template
— 849569e: доработка документации: доступ к элементам хэша со "сложными" именамиMisc
subtutleeditor - 1dd00d03 - Fix building with older version of enchant - у кого-то в системе был уже enchant-2 и он послал фикс для сборки. А в дебиане до сих пор enchant без двойки, в результате собираться перестало. Сделал так чтобы собиралось в обоих случаях.
KDE networkmanagement - 99d3dbe8 - Show APN string for the APN selected by the user in Mobile Connection - чего-то оно там неправильно показывало при настройке USB-модема. Давно это было.
KDE networkmanagement - d395cfe7 - Hide non-Internet APNs in Mobile Connection Wizard.- В serviceproviders.xml начали разделять APN'ы по типам назначения (internet|mms|wap) а KDE'шный network manager об этом не знал, и показывал все в кучу.
preeny – e317826: добавил библиотеку
setstdin
позволяющая, через подмену системных вызовов подавать программе требуемые данные на стандартный вход. Нужен этот инструмент например при фаззинге, например AFL++'ом, когда другого способа передать какую-либо константную строку на вход исследуемой программе просто нету.*будет пополняться*