Libmapi писали индусы?
Есть ощущение, что некоторые части libmapi писали индусы. Напоминаю, что libmapi — библиотека для общения с Microsoft Exchange Server, к которой я пишу биндинг в Python с использованием ctypes.
Некоторые вызовы я предпочёл переписать на Python, так как код содержит баги и глупости. Например, мне приходит (в терминах Python) массив событий. Приходят два «слова», два числа, которые содержат дату/время старта и окончания. Числа приходят в минутах, например, чтобы узнать какой там указан день, нужно нацело разделить число на 1440 (количество минут в сутках) и прибавить один.
В итоге, я вычисляю всё вот так (часовой пояс я ещё не умею определять):
last = event_end - event_start
day = event_start // 1440
hour = (event_start - day * 1440) // 60
minute = event_start % 60
day += 1Авторы libmapi делают куда затейлевее:
for (hour = 0; hour < 24; hour++) {
if (!((event_start - (60 * hour)) % 1440)) {
// значит мы нашли час, который указан в событии
day = ((event_start - (60 * hour)) / 1440) + 1;
last = event_end - event_start;
}
}Читайте также
Ctypes и alloc
В биндинге для Python libmapi (который я пишу, с использованием ctypes), возникла следующая задача: есть куски кода, где надо выделить память через вызовы talloc. Желательно, чтобы память сама освобождалась, когда переменная, в которой у меня указатель на эту структуру, исчезает.
2009
Эпопея с MAPI
2008
Комментарии 7
Если бы индусские программисты проповедовали описанную религию, то они бы, наверное, не обращались бы со своей кармой так безрассудно
Я практически уверен что моя ненавистная глючная стиральная машинка, которой живётся ой как несладко, была в прошлой жизни индусским программистом.
Жизнь другая, но
А если серьёзно, то, помниться, цель — спрыгнуть с колеса перерождений путём правильной жизни.