Как стать автором
Обновить

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

Все никак не успокоятся. Теперь еще и сортировка не так как нужно.
В любом случае чисто случайная невозможна, разве что на квантовых компьютерах, хотя не факт.
По ссылке можно прочитать о том, что если использовать алгоритм Фишера-Ятса (Fisher–Yates shuffle), Javascript-код которого приведен в Википедии, можно добиться хороших результатов:
Да это все понятно, мне просто сам факт всякой подобной шумихи забавляет.
Впрочем, это же все во имя великой справедливости, но закон о том что всех удовлетворить невозможно никто не отменял.
Я не думаю что кто-то специально искал возможность «опустить» Майкрософт и поднять шумиху. Это просто интересный факт, в статье рассказано о методике тестирования и способах исправления.

Лично я писал этот пост не для того чтобы поглумиться на программистами Microsoft, а в качестве рассказа о типичной проблеме. Согласитесь, этот случай послужит для многих отличным примером и позволит избежать подобных проблем в будущем.
Здесь никого я не виню. Меня просто поражает сам факт такого большого шума вокруг этого. Какие все жадные до $$, прикрываясь за ширмой борьбы за справедливостью. В общем лицемерие. Особенно Opera отличилась на этом поприще(пусть простят меня любителя этого хорошего браузера).
Вы знаете, на опере просидел всю свою интернетную жизнь, но в данном случае я с вами полностью согласен, пилят мс по поводу и без, аже к алгоритму сортировки придолбались, вот делать им нехуй выбирать наиболее оптимальный алгоритм, итак отказаись от собственного браузера
>Как выяснили ребята со словацкого сайта DSL.sk, у модуля большие проблемы именно со случайным порядком вывода браузеров.

Вы статью читали? Причём здесь опера?
>Какие все жадные до $$, прикрываясь за ширмой борьбы за справедливостью
это была фраза «между прочим», типа воспоминания череды событий, не более
Не ребят, тут в ряд Фурье нужно брузеры раскладывать.
будут опять отмазываться, мол «куча строчек кода, за всем не уследишь», тьфу!

многие пользователи уже давно сделали свой выбор в пользу полюбившегося им браузера, и то, на каком месте стоит тот или иной из предлагаемых на странице выбора в винде, не повлияет ни на что.
опять оштрафуют, чо
Не, ну если по результатам сортировки пользователь видит IE на последнем месте, то лично я как верстальщик совсем даже не против использования этого алгоритма :)
Запоминается первое и последнее. Это тоже ход, только не такой явный.
Де факто использовался алгоритм, которым первым предложил поисковик Google :)
Честно говоря, не ожидал увидеть этот бред на хабре.
Там используется обычный рандомизатор, который никогда не даст истинно случайную последовательность.

Люди верят в то, во что хотят верить. Если человек захочет, он найдет закономерность в случайно с генерированной последовательности цифр длинной в 100000 символов.
Так она там есть. Это первые 100000 символов переодичной последовательности (состоящей из повторения этой последовательности).
Вопрос — что считать «истинно случайной». Отвечающей какому-нибудь из классических распределений с погрешностью не больше X? Такое вполне возможно.
Это не вера, это математический алгоритм. Испытание нужно было только для проверки и без того очевидных вещей.
Дело не в том, какой источник случайных чисел там использован, дело в том каково распределение браузеров в последовательности. Форма распределения — объективная штука, она не зависит от предпочтений экспериментатора.

«Обычные» рандомизаторы генерируют равномерно распределённые случайные числа.
А если после множества проверок IE гораздо чаще оказывается на пятом месте, чем на любом другом — кто-то где-то смухлевал…
Когда уже закончатся дни ИЕстерики на хабре?
Какой смысл дебатов? Главное в случайном порядке, что еще нужно…
Судя по статье, используется как раз общепринятый алгоритм ;-)
но они видимо не смогли его нормально реализовать :(
>предпологается
>предполагалось
И все же, как правильно?
НЛО прилетело и опубликовало эту надпись здесь
Идём читать исходники (http://www.browserchoice.eu/resources/scripts/page.js). Фактически перемешивание осуществляется таким кодом:
function RandomSort (a,b)
{
return (0.5 - Math.random());
}

var browsers = new Array("IE8","Firefox","Opera","Chrome","Safari");
browsers.sort(RandomSort);

Результирующее распределение сильно зависит от имплементации Array.sort и нифига не равномерно. Похоже, мелкомягкие отдали написание сего рандомизатора индусу-быдлокодеру и даже не подумали проверить.
а не пофигу? оно ведь сортирует
Можете расказать как может зависить от реализации Array.sort?
Немного поэкспериментировал с разными сортировками: pastebin.com/YSi8GvDC
Вот результаты:
Insertion sort
Pos\Val a b c d e
0 6.25% 6.25% 12.50% 25.00% 50.00%
1 33.59% 11.72% 10.94% 18.75% 25.00%
2 22.07% 32.23% 19.14% 14.06% 12.50%
3 19.04% 24.90% 28.71% 21.09% 6.25%
4 19.04% 24.90% 28.71% 21.09% 6.25%

Bubble sort
Pos\Val a b c d e
0 34.57% 28.91% 20.12% 10.16% 6.25%
1 23.83% 29.49% 24.02% 16.41% 6.25%
2 20.51% 20.51% 26.17% 20.31% 12.50%
3 14.84% 14.84% 17.19% 28.12% 25.00%
4 6.25% 6.25% 12.50% 25.00% 50.00%

Python internal sort
Pos\Val a b c d e
0 32.23% 12.30% 16.41% 21.88% 17.19%
1 16.60% 32.62% 16.41% 23.44% 10.94%
2 12.11% 23.83% 28.12% 14.06% 21.88%
3 14.06% 24.22% 17.97% 21.88% 21.88%
4 25.00% 7.03% 21.09% 18.75% 28.12%

Я к сожалению не читаю питон ;(… но поинт не в том. Сортировка это детерминированная штука. Недетерминированость вносит рандомайзер. Ну еще в теории интерпритация результата сортировочного метода (например если он вернул 0). Но я так понимаю вторым можно пренебреч так как выполняется на одинаковой реализации.

Из вашего кода. Последовательность рандомных чисел у вас одинаковая для всех методов сортировки?
Ну даешь, ядрена вошь!
И олень тебе не гож?
А вчерась мытарил душу:
Вынь оленя да положь!..

Коли ты и так богат,--
Я верну его в Багдад.
Кто там нонича у власти? --
То-то парень будет рад!..
(с) Cказ про Федота-стрельца
такой бред %)
Это уже больше походит не на жажду равноправия браузеров, а на попытки обхаять майкрософт) (Я про шумиху вокруг порядка вывода браузеров)
Кстати, мысль использовать такой вариант, ИМХО пришла-бы в головы работников любой(ИМХО) фирмы сразу же.:)) Неудивительно, что они её реализовали именно так:)

И вообще лично меня бесит, что принимаются такие решения… ну это нечестно как-то по отношению к самому майкрософт… мол вот они гады этакие не дают пользователю выбора
Никто не запрещает залезть на сайт мозиллы и качнуть Firefox.,,,
Вы не поверите, но многие даже не знают что бывает другой «интернет»… :)
Я это прекрасно знаю, просто опупительно прекрасно, но сейчас по всем каналам… уже есть программы про интернет итд… в конце концов вся молодеж лет 10 уже об этом знает, и если люди которым больше 30-40 не желают о них(альтернативных браузерах) знать — то зачем их заставлять.
Нас же(разработчиков) никто не заставляет поддерживать IE6.

Но накидыватся на IE вообще, уже некрасиво как-то получается… в той же Opera тоже есть косяки,
да и в Firefox не все идеально(хотя-бы скорость его загрузки)

Нужно анализировать всё в целом, а некоторые услышали (melkosoft sucks) и даже не задумываясь (почему?) повторяют как попугаи… меня вот это бесит)
от того, что они увидят картинку с выбором каких-то странных программ ничего не измениться. Тот, кто хотел уже перешел, а тот, кто не знает, что это вообще за фигня, если и поставит другой браузер, то будет сильно материться, когда увидит, что привычные кнопки куда-то пропали. Мой прогноз — 1-2% в результате этой показухи отойдет от мелкомягких (1-2% от доли ИЕ сегодня).
Да пофиг на самом деле как выводится.
Решение еврокомиссии вообще реально бред кобылы сивой.
Следующим шагом, следуя их логике нужно запретить автоматическую установку Safari в MacOS.
И в дистрибутивах линукса тоже не устанавливать браузер при установке…
Топик о том, как можно криво применять алгоритмы. Ты говоришь «фигня это все» и переводишь тему на брюзжание о бреде. Потом идешь в твиттер и постишь, что на хабре опять статья о бреде. Во истину, каждый видит то, что хочет.
Раз за разом меня посещает желание собрать воедино случаи проведения «серьёзных» исследований и расследований на «значимые» и «судьбоносные» темы. Экран выбора браузера – штука полезная, хотя острая необходимость в нём сомнительна в высшей степени. А уж порядок расположения браузеров в окне настолько плоскоперпендикулярен, что даже говорить неловко. Однако же в доску сурьёзные братья-словаки, видимо, порешали уже все проблемы и исследовали всё, что исследования требует. Во всяком случае, данное конкретное исследование является полным аналогом той самой собаки, которой делать было нефиг и она под хвостом у себя вынюхивала.
В любом случае, если они (MS) сделали это специально, то это круто, да.
и нашлись же люди, которым настолько нечего делать, что они такие «исследования» проводят. и вроде ж не бретанские учёные…
Кризис в мире, у многих полно свободного времени ;)
та ну трындец. та какая разница! пусть по алфавиту выстроят и успокоятся.
Корейский рандом
Почему я не удивлен?
Ненавижу такие диаграммы… хрен разберёшь что как к чему относиться нормально. Даже когда-то давно пробегала статья на хабре про то как легко можно вводить в заблуждение подобными диаграммами.
Я понял эту диаграмму как сколько раз и на каком месте появлялся каждый браузер.
Только вот не все видно :(
Маразм крепчал
Кто бы сомневался в Microsoft. :)
Им за дверь, они в окно…
Ну и что, что он на последнем месте, зато это все-таки IE8, а не IE6.
Вообше, самое заметное — это третье место… В центре.
У Майкрософт ничего еще с первого раза не получалось)
ну ничего, выпустят пару апдейтов, потом кто-нибудь еще дыру или баг найдет, там поди, еще и откажутся от выбора дефолтного броузера, в силу невозможности безопасной организации алгоритма сортировки))
Интересно, почему справедливости ради, не принудили Apple показывать такой экран на Маках. А ситуация ничем не отличается, браузер один — чем не монополия?
Меня вот Chrome под Mac OS очень порадовал!
доля рынка windows гораздо больше, чем у mac os
Алгоритм был приведен в порядок :) Не поверите.

function GenerateBrowserOrder()
{
var c=[0,1,2,3,4],
a=[];
for(var b=5;b<dataBrowsers.length;b++)
a.push(b);
ArrayShuffle©;
ArrayShuffle(a);
aBrowserOrder=c.concat(a)
}

function ArrayShuffle(a)
{
var d,
c,
b=a.length;
while(b)
{
c=Math.floor(Math.random()*b);
d=a[--b];
a[b]=a[c];
a[c]=d
}
}
Видно, что чуть более продвинутый школьник переписывал )
Спасибо, порадовали! Не владею best practices в контексте явы, но даже мне показалось, что написано не лучшим макаром :)
Если смотреть с точки зрения бизнеса, то МС молодцы, сражаются до последнего. Это говорит что есть порох в пороховницах :).
… и ягоды в ягодицах?
Интересно, вот когда бык видит красную тряпку, он задумывается перед тем, как наброситься на неё?)) Наверное нет, это на уровне инстинкта)))
У меня складывается впечатление, что если начать говорить что-то хорошее о Microsoft на Хабре тебя заминусуют:))) Мелочь, но обидно) Обидно, что никто не задумается и не попытаеться разобратся сам:)
НЛО прилетело и опубликовало эту надпись здесь
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.