OberonCore
https://forum.oberoncore.ru/

На дворе XXI век, а допускаются такие ошибки.
https://forum.oberoncore.ru/viewtopic.php?f=86&t=4160
Страница 1 из 1

Автор:  Иван Кузьмицкий [ Воскресенье, 18 Ноябрь, 2012 16:39 ]
Заголовок сообщения:  На дворе XXI век, а допускаются такие ошибки.

Цитата:
В стандартном менеджере контактов Android 4.2 отсутствует месяц декабрь. За ноябрём 2012 года сразу идёт январь 2013. В предыдущих версиях календарь работает нормально. Баг зарегистрирован в багтрекере Android под номером 39692. В обсуждении бага высказано предположение, что нелепая ошибка вызвана классической путаницей с индексами — декабрь будет 12-м месяцем, если считать с 1, и 11-м, если нумерация начинается с 0.


https://code.google.com/p/android/issue ... l?id=39692

Если в XXI веке одна из самых больших корпораций позволяет себе такие баги, то что это значит?

Автор:  Владислав Жаринов [ Вторник, 20 Ноябрь, 2012 08:23 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

Может, дело, в частности, в этом?..

Автор:  kemiisto [ Вторник, 20 Ноябрь, 2012 10:38 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

Это значит, что язык должен позволять задавать произвольные границы изменения индексов массивов. Например, от 1 до 12. А не строго от 0, за что ратовал столь горячо любимый сообществом Дейкстра.

Автор:  Пётр Кушнир [ Вторник, 20 Ноябрь, 2012 11:12 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

вы видели код и нашли ошибку?

Автор:  Иван Кузьмицкий [ Вторник, 20 Ноябрь, 2012 11:17 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

Пётр Кушнир писал(а):
вы видели код и нашли ошибку?


Android Police says this on the matter:
"After digging through the AOSP source, I think the bug can be likely found in one of these commits, probably in the datepicker/DatePicker.java file - if you spot it, definitely drop a note in the comments. I think it has to do with adjusting for indexes that start with 0 - "off by 1" bugs are quite common."

Автор:  albobin [ Вторник, 20 Ноябрь, 2012 12:03 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

kemiisto писал(а):
Это значит, что язык должен позволять задавать произвольные границы изменения индексов массивов. Например, от 1 до 12. А не строго от 0, за что ратовал столь горячо любимый сообществом Дейкстра.

Не вижу связи между уменьшением ошибок и возможность произвольно задавать границы индексов. Всегда может быть противоречие между "естественностью" назначения конкретных границ и необходимостью в то же время получать например значение первого элемента.

Автор:  Пётр Кушнир [ Вторник, 20 Ноябрь, 2012 12:39 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

Иван Кузьмицкий писал(а):
Android Police says this on the matter:
да там непонятно, если они ошиблись с границами массива, и спинбокс [1..12], а массив имён месяцев [0..11], то почему спинбокс выбора месяца всё равно начинается с января. То есть, неверное предположение про кровавого Дейкстру.
Получается, что ошибка не в массивах, а в процедуре подгонки диапазона спинбокса под диапазон массива, https://android.googlesource.com/platfo ... c7%5E!/#F0

то есть, это тупняк, в клиентском коде пишут - нам бы, от 1 до 12, а код внутри контрола сам меняет этот диапазон на 0..11, при этом в клиентском коде всё ещё существует поправка на то, что диапазон от 1..12, а он на самом деле уже 0..11, и в итоге получают диапазон -1..10, но минус один успешно заменяют на ноль, ну а чо.

И ващё неясно, где там ассерты :)

Автор:  Пётр Кушнир [ Вторник, 20 Ноябрь, 2012 12:45 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

жесть какая, а если бы я задал диапазон от 35 до 70, они бы тоже тыкались в 36-й элемент массива имён.

Автор:  Александр Ильин [ Вторник, 20 Ноябрь, 2012 14:05 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

Пётр Кушнир писал(а):
жесть какая, а если бы я задал диапазон от 35 до 70, они бы тоже тыкались в 36-й элемент массива имён.
Вообще, судя по комментарию, это кривой фикс. Не проверяются значения < 0.

Автор:  Valery Solovey [ Вторник, 20 Ноябрь, 2012 19:24 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

kemiisto писал(а):
А не строго от 0, за что ратовал столь горячо любимый сообществом Дейкстра.
Это Ваша отсебятина. Или есть ссылка на конкретную статью?

Автор:  kemiisto [ Среда, 21 Ноябрь, 2012 12:42 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

Пётр Кушнир писал(а):
жесть какая, а если бы я задал диапазон от 35 до 70, они бы тоже тыкались в 36-й элемент массива имён.

Если бы Вы задали такой диапазон индексов для массива с названиями месяцев в качестве элементов, Ваше умственное здоровье можно было бы поставить под сомнение. :lol:

Valery Solovey писал(а):
Это Ваша отсебятина. Или есть ссылка на конкретную статью?

Обсуждалось здесь. В моём сообщении в той теме есть ссылка на первоисточник.

Автор:  Пётр Кушнир [ Среда, 21 Ноябрь, 2012 12:55 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

kemiisto писал(а):
Если бы Вы задали такой диапазон индексов для массива с названиями месяцев в качестве элементов, Ваше умственное здоровье можно было бы поставить под сомнение.
Виджет NumberPicker, в котором обнаружили баг вообще про месяцы ничего не знает, учитесь читать.

Автор:  igor [ Среда, 21 Ноябрь, 2012 16:40 ]
Заголовок сообщения:  Re: На дворе XXI век, а допускаются такие ошибки.

Кстати, нумерация месяцев стандартизирована:

Вложения:
From ISO 8601.png
From ISO 8601.png [ 45.2 КБ | Просмотров: 10094 ]

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/