Мне кажется, что все эти приемы характерны скорее для процедурного подхода, чем для правильного ООП. Местами его советы помогают бороться со следствием, а не с причиной.
Функция на 200 строк кода — это же дичь! Никакие объявления переменных в середине не способны ее улучшить, скорее могут только отсрочить столь необходимый рефакторинг. Вывод: пишем небольшими завершенными кусками кода и объявляем переменные где душе угодно.
То же самое применимо ко вложенным функциям. В них есть смысл, если используются замыкания, а в других случаях, как мне кажется, это признак того, что автору такого кода пора наконец открыть для себя ООП. Возврат значения через параметр, длинный список аргументов функций — все туда же, изучить ООП и паттерны проектирования, и проблемы уйдут сами собой. Процедурный подход часто хорош, но не во всех задачах. Когда вылезают такие проблемы, сигнал к тому, что этот подход лучше чем-нибудь заменить.
А в целом интересно, отбрасывает лет так на 10 назад, ностальгия))
«мак без OS X не такой уж и большой идол.» — так и есть, только где ж найти мак без Mac OS. Их потому и берут, что там лицензионная Mac OS и совместимое с ней железо.
Насчет ноутов — уже пол-года как пересел на макбук алюминевый, и мне кажется, что по удобству тачпад маковский даже сравнивать-то не с чем. Просто как другое устройство ввода какое-то. А для ноутов с небольшими экранами функция expose (четыре пальца вниз по тачпаду) — настоящее спасение. Пол-года без мыши живу, т.к. на тачпаде тупо удобнее. Если макбук предлагают из последних, хватайте и радостно убегайте.
Насчет десктопов согласен, цены на всякие мак про, аймаки и мак мини все-таки задраны, даже за бугром.
Кстати, не вижу особого смысла в гонке за железом. На современных маках его хватает для всех задач, с которыми я сталкивался (возможно, кому-то и не хватит, конечно, но это экстремальные случаи). Про игрушки не скажу точно, в них не играю и не знаю, как там обстоит дело, но, думаю, там тоже все ОК.
Более мощное железо на PC (при одной цене) должно потенциально дать юзабилити-преимущество, которое заключается в меньшем времени отклика системы, вроде все, больше ничего. А т.к. и так все работает субъективно быстро, то преимущество это не может быть большим. Причем не понятно, будет ли оно вообще, с учетом разных ОС и всяких антивирусов. Юзабилити-фичи макинтошей (тот же тачпад на ноуте, к примеру) лично для меня эту потенциальную юзабилити-фичу PC перевешивают с лихвой, вот и все.
А в чем проблема? Больше ничего и не надо, большинство (подавляющее) профессиональных музыкантов не имеют абсолютного слуха, просто слышат все интервалы. Абсолютный слух почти не тренируется, он или есть, или нет, и он может даже мешать — по этому поводу не стоит заморачиваться. Разница, грубо говоря, — подбираешь первую ноту композиции со второй попытки, а не с первой, вот и все, дальше без разницы. Интервальный слух полезнее абсолютного, т.к. позволяет анализировать и достраивать гармонию в голове.
Рассуждения здравые. Я просто не заметил особого демографического перевеса в сторону мужчин в интернете в целом. Поэтому не факт, что стоит сейчас над этим заморачиваться.
Возьмем, например, данные по 10 самым посещаемым новостным сайтам в базе (название сайта — отношение М к Ж):
Мы уже когда-то об этом спорили, помнится) В итоге оказалось, что говорим примерно об одном и том же, только по-разному. С вами согласен. И, как мне кажется, то, что вы пишете, не сильно противоречит тому, что пишу я.
Нет, любая железка не лучше софтовой альтернативы, это все маркетинг. Лучше в том плане, что взять с собой можно и играть вживую удобно, это да. А в плане звука — не факт (для недорогих «железок»), они, по сути, то же самое делают, что и компьютер.
Но, как мне кажется, все это для баловства больше, пользы для обучения несут все эти примочки мало. Максимум — представлять, какие эффекты вообще в природе существуют. Лучше побольше думать о технике и гармонии, и поменьше об оборудовании. На эффекты только отвлекаешься. Хотя если надо отвлечься — самое то.
Прошу прощение за задержку с ответом. Про парадокс не знал, почитал, интересно.
Но задача определения пола по истории навигации — это не один из видов парадокса Симпсона. Нет никакого смысла суммировать всех пользователей различных сайтов и потом вычислять общее отношение. Влияние сайтов с большой посещаемостью в этом случае возрастет очень сильно, что неверно. Предположим, девушка зайдет случайно на хабр, а до этого она сидела исключительно на форумах о материнстве и прочих «женских» ресурсах. Суммарное число мужчин на сайтах, которые она посетила, значительно превысит суммарное число женщин, и девушка станет мужиком, и ничего поделать с этим будет уже нельзя.
Пример:
сайт А с посещаемостью 10 000 человек и долей мужчин 60%
сайт Б с посещаемостью 1 000 человек и долей мужчин 20%
человек зашел только на А и Б. Определить его пол.
Если считать задачу частным случаем парадокса Симпсона, имеем:
кол-во мужчин = 6000 + 200 = 6200
кол-во женщин = 4000 + 800 = 4800
k = 6200/4800 = 1,29. Вывод: человек — мужик с вероятностью 1,29/(1+1,29) = 56%
Если считать как у меня:
коэффициент первого сайта = 6000/4000 = 1.5
коэффициент второго сайта = 200/800 = 0.25
k = 1.5*0.25 = 0,375. Вывод: человек — девушка с вероятностью 1-0,375/(1+0,375) = 72%
Вроде бы второй результат значительно логичнее кажется. Непонятно, почему мужской сайт большой популярности с долей мужчин должен обязательно перевешивать женский сайт средней популярности.
А сайты с малой популярностью (где будет велика статистическая погрешность в данных демографии) в базу просто не включались у меня.
Про суммарную точность и точность определения пол в отдельности — тоже интересно, но я не понял, что конкретно вы предлагаете, и в чем конкретно вы видите недостаток нынешнего алгоритма.
Почему неправильный? Если в интернете больше мужчин, то должны требоваться более веские основания длоя того, чтобы считать посетителя женщиной, чем для того, чтобы считать его мужчиной. Иначе точность прогноза снижается. Теория вероятности, 2й (или какой там) курс универа.
Насчет того, что в интернете больше мужчин. Скачайте базу, посмотрите, там в топовых сайтах примерно одинаковое число «мужских» и «женских». Большая часть девушек не ходит на компьютерные, игровые сайты, а ограничивается какими-нибудь ЖЖ, diary.ru, специальными женскими сайтами, сайтами с рецептами и тд.
Алгоритм неправильный по другой причине, к ней ближе всех подошел хабраюзер kolpeex. Вероятность посещения данного сайта пользователем зависит не только от его пола, но и от
а) популярности сайта;
б) других сайтов, на которые ходит пользователь.
Т.е. вероятности не являются независимыми, и их нельзя так просто перемножать. Но в качестве первого приближения это работает: сестру мою определяет как девушку, людей с форумов, по которым была размещена (не мной, из логов веб-сервера узнал) ссылка — вроде бы тоже правильно более-менее.
А у нас он и не популярен. Предложения на русском длиннее, чем на английском, в среднем. У нас нет возможностей, связанных с смс. Интерфейс не переведен на русский. Если б побывать в шкуре англичанина/американца-твиттерчанина, — кто знает, наверное, стало бы понятно, откуда популярность.
А из России-то сколько людей там зарегистрировано? Тыщ 10, насколько мне известно. Или что-то вроде того. Число этого порядка. О нем все пишут и все знают, но, по сути, почти никто им у нас не пользуется.
Приношу официальные извинения за то, что ваш пол определился неправильно.
Ссылка пробежалась по форумам (не техническим), люди писали там свои результаты, и, в принципе, видно, что определялка работает. Это многим показалось интересным и забавным. Чего же боле?)
male_ratio — это отношение мужской аудитории сайта к женской. Не в смысле личного отношения, а в смысле дробь. Количество мужчин, побывавших на сайте за период N, делится на количество женщин, побывавших на этом сайте за тот же период. Алгоритм мне кажется простым, логичным и непредвзятым. Правильным, короче. Тупо берем и все перемножаем. Что получилось — то и получилось.
На чем основывались 27 человечков и почему у вас 99% — без понятия, вам виднее, алгоритм работы я описал, список сайтов есть. Видимо, вы посещали много сайтов компьютерной или околокомпьютерной тематики. На том же башорге, например, мужчин в 3 раза больше. А на итхеппенз — в 8 раз. Новости 3dnews — в 10 раз. Перекос на компьютерных сайтах в мужскую сторону сильнее, чем на порнографических и спортивных. Это не я придумал, это оно так и есть. Отсюда и неправильное определение пола девушек, узнавших про эту ссылку с хабра. Изначально было ясно, что так будет, я поэтому не очень по этому поводу переживаю. Ваш молодой человек, видимо, посещал не очень много разных сайтов про спорт и игры из тех, что у меня собраны. И нельзя было точно удостовериться, что он мужчина, т.к. на эти сайты и девушеи тоже ходят. Но претензия-то в чем?) Пол ведь определился правильно?
Думал, что ирония по поводу практического применения угадывания пола была очевидна) Конечно, есть много отличных способов использовать тот список сайтов, используйте, все в открытом доступе.
Функция на 200 строк кода — это же дичь! Никакие объявления переменных в середине не способны ее улучшить, скорее могут только отсрочить столь необходимый рефакторинг. Вывод: пишем небольшими завершенными кусками кода и объявляем переменные где душе угодно.
То же самое применимо ко вложенным функциям. В них есть смысл, если используются замыкания, а в других случаях, как мне кажется, это признак того, что автору такого кода пора наконец открыть для себя ООП. Возврат значения через параметр, длинный список аргументов функций — все туда же, изучить ООП и паттерны проектирования, и проблемы уйдут сами собой. Процедурный подход часто хорош, но не во всех задачах. Когда вылезают такие проблемы, сигнал к тому, что этот подход лучше чем-нибудь заменить.
А в целом интересно, отбрасывает лет так на 10 назад, ностальгия))
Насчет ноутов — уже пол-года как пересел на макбук алюминевый, и мне кажется, что по удобству тачпад маковский даже сравнивать-то не с чем. Просто как другое устройство ввода какое-то. А для ноутов с небольшими экранами функция expose (четыре пальца вниз по тачпаду) — настоящее спасение. Пол-года без мыши живу, т.к. на тачпаде тупо удобнее. Если макбук предлагают из последних, хватайте и радостно убегайте.
Насчет десктопов согласен, цены на всякие мак про, аймаки и мак мини все-таки задраны, даже за бугром.
Кстати, не вижу особого смысла в гонке за железом. На современных маках его хватает для всех задач, с которыми я сталкивался (возможно, кому-то и не хватит, конечно, но это экстремальные случаи). Про игрушки не скажу точно, в них не играю и не знаю, как там обстоит дело, но, думаю, там тоже все ОК.
Более мощное железо на PC (при одной цене) должно потенциально дать юзабилити-преимущество, которое заключается в меньшем времени отклика системы, вроде все, больше ничего. А т.к. и так все работает субъективно быстро, то преимущество это не может быть большим. Причем не понятно, будет ли оно вообще, с учетом разных ОС и всяких антивирусов. Юзабилити-фичи макинтошей (тот же тачпад на ноуте, к примеру) лично для меня эту потенциальную юзабилити-фичу PC перевешивают с лихвой, вот и все.
Возьмем, например, данные по 10 самым посещаемым новостным сайтам в базе (название сайта — отношение М к Ж):
lenta.ru — 1.90
rian.ru — 0.93
kp.ru — 0.58
beta.novoteka.ru — 0.70
newsru.com — 1.38
infox.ru — 0.78
utro.ru — 1.09
mk.ru — 0.91
AIF — 0.72
kommersant.ru — 1.22
данные и дальше прыгают туда-сюда, и нет такой тенденции, что мужчин заметно больше.
Но, как мне кажется, все это для баловства больше, пользы для обучения несут все эти примочки мало. Максимум — представлять, какие эффекты вообще в природе существуют. Лучше побольше думать о технике и гармонии, и поменьше об оборудовании. На эффекты только отвлекаешься. Хотя если надо отвлечься — самое то.
Но задача определения пола по истории навигации — это не один из видов парадокса Симпсона. Нет никакого смысла суммировать всех пользователей различных сайтов и потом вычислять общее отношение. Влияние сайтов с большой посещаемостью в этом случае возрастет очень сильно, что неверно. Предположим, девушка зайдет случайно на хабр, а до этого она сидела исключительно на форумах о материнстве и прочих «женских» ресурсах. Суммарное число мужчин на сайтах, которые она посетила, значительно превысит суммарное число женщин, и девушка станет мужиком, и ничего поделать с этим будет уже нельзя.
Пример:
сайт А с посещаемостью 10 000 человек и долей мужчин 60%
сайт Б с посещаемостью 1 000 человек и долей мужчин 20%
человек зашел только на А и Б. Определить его пол.
Если считать задачу частным случаем парадокса Симпсона, имеем:
кол-во мужчин = 6000 + 200 = 6200
кол-во женщин = 4000 + 800 = 4800
k = 6200/4800 = 1,29. Вывод: человек — мужик с вероятностью 1,29/(1+1,29) = 56%
Если считать как у меня:
коэффициент первого сайта = 6000/4000 = 1.5
коэффициент второго сайта = 200/800 = 0.25
k = 1.5*0.25 = 0,375. Вывод: человек — девушка с вероятностью 1-0,375/(1+0,375) = 72%
Вроде бы второй результат значительно логичнее кажется. Непонятно, почему мужской сайт большой популярности с долей мужчин должен обязательно перевешивать женский сайт средней популярности.
А сайты с малой популярностью (где будет велика статистическая погрешность в данных демографии) в базу просто не включались у меня.
Про суммарную точность и точность определения пол в отдельности — тоже интересно, но я не понял, что конкретно вы предлагаете, и в чем конкретно вы видите недостаток нынешнего алгоритма.
Насчет того, что в интернете больше мужчин. Скачайте базу, посмотрите, там в топовых сайтах примерно одинаковое число «мужских» и «женских». Большая часть девушек не ходит на компьютерные, игровые сайты, а ограничивается какими-нибудь ЖЖ, diary.ru, специальными женскими сайтами, сайтами с рецептами и тд.
Алгоритм неправильный по другой причине, к ней ближе всех подошел хабраюзер kolpeex. Вероятность посещения данного сайта пользователем зависит не только от его пола, но и от
а) популярности сайта;
б) других сайтов, на которые ходит пользователь.
Т.е. вероятности не являются независимыми, и их нельзя так просто перемножать. Но в качестве первого приближения это работает: сестру мою определяет как девушку, людей с форумов, по которым была размещена (не мной, из логов веб-сервера узнал) ссылка — вроде бы тоже правильно более-менее.
Ссылка пробежалась по форумам (не техническим), люди писали там свои результаты, и, в принципе, видно, что определялка работает. Это многим показалось интересным и забавным. Чего же боле?)
male_ratio — это отношение мужской аудитории сайта к женской. Не в смысле личного отношения, а в смысле дробь. Количество мужчин, побывавших на сайте за период N, делится на количество женщин, побывавших на этом сайте за тот же период. Алгоритм мне кажется простым, логичным и непредвзятым. Правильным, короче. Тупо берем и все перемножаем. Что получилось — то и получилось.
На чем основывались 27 человечков и почему у вас 99% — без понятия, вам виднее, алгоритм работы я описал, список сайтов есть. Видимо, вы посещали много сайтов компьютерной или околокомпьютерной тематики. На том же башорге, например, мужчин в 3 раза больше. А на итхеппенз — в 8 раз. Новости 3dnews — в 10 раз. Перекос на компьютерных сайтах в мужскую сторону сильнее, чем на порнографических и спортивных. Это не я придумал, это оно так и есть. Отсюда и неправильное определение пола девушек, узнавших про эту ссылку с хабра. Изначально было ясно, что так будет, я поэтому не очень по этому поводу переживаю. Ваш молодой человек, видимо, посещал не очень много разных сайтов про спорт и игры из тех, что у меня собраны. И нельзя было точно удостовериться, что он мужчина, т.к. на эти сайты и девушеи тоже ходят. Но претензия-то в чем?) Пол ведь определился правильно?
Думал, что ирония по поводу практического применения угадывания пола была очевидна) Конечно, есть много отличных способов использовать тот список сайтов, используйте, все в открытом доступе.