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

Комментарии 7

gaius-julius.livejournal.com № 5
Комментарий для Евгения Степанищева:

Если бы индусские программисты проповедовали описанную религию, то они бы, наверное, не обращались бы со своей кармой так безрассудно (-:
Евгений Степанищев (bolknote.ru) автор № 6
С тех пор как Пифагор придумал им перерождения, они очень легко отказываются от текущей «неудачной» жизни в сторону новой.
gaius-julius.livejournal.com № 7
и как им не страшно-то умирать-то. Ведь если туп как дерево — родишься баобабом и будешь баобабом тыщу лет пока помрёшь.

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

Жизнь другая, но карма-то у них персистентна (-:

А если серьёзно, то, помниться, цель — спрыгнуть с колеса перерождений путём правильной жизни.