Есть подозрение, что если вы нарисуете свои «stable, release и dev, плюс у каждого разработчика есть свои ветки» получится примерно картинка сверху. Нет?
Флага гарантирует, что у вас по идее всегда будет отдельный коммит с информацией о том, что с чем слилось и отдельная «петелька» с коммитами из feature ветки. По-моему, вполне достаточно, чтобы не запутаться в истории и, если надо, отменить feature.
Да, знаком :) Не буду повторяться, обратите внимание на первые две ссылки в моём предыдущем комментарии. MapBox != Яндекс.карты. Подобное уже было, такого же ещё нет.
Вы про возможность выбрать или создать свой стиль карты, на нём разместить маркеры (в том числе и свои), и получить на это всё URL для картинки, которая будет автоматически обновляться, если кто-то что-то обновит OSM? Никогда :) Надо смотреть на решение в комплексе.
Зачем баланс? Do It Yourself — это Do It Yourself. Три слова и ничего больше. Зачем придумывать неявные условия к тому, что раньше не вызывало вопросов? Вкрутили лампочку сами -> DIY. Позвали электрика -> не DIY.
А то, о чём вы говорите — я бы назвал это сложностью:
— вставить батарейку или карточку cможет каждый, это слишком простой, а потому неинтересный, DIY.
— сделать мышку как в топике смогут единицы. Это сложный, и потому интересный, DIY.
— собрать из ардуино мигающую на движение фигню смогут проценты. Единицы с мышками могут посчитать этот DIY простым, но от этого он не перестаёт быть DIY :) И не перестаёт быть интересным для остальных.
А что если кто-то придёт и скажет: «фи, покупные конденсаторы! пока не скрутите их из фольги и папиросной бумаги, не смейте называть свои поделки DIY» Он будет прав?
Если это правильная лицензия на макось, то там есть:
Your rights under this License will terminate automatically without notice from Apple if you fail to comply with any term(s) of this License.
Как я понимаю, это что-то вроде проверки целостности. Не смогли выполнить любое условие, значит прав больше нет. А вот это похоже на ограничения для железа:
This License allows you to install and use one copy of the Apple Software on a single Apple-labeled computer at a time.
Как я понимаю, надо признать ничтожным оба пункта. Первый вообще сам в себе и никакому закону противоречить не может. А второй это не запрет, а разрешение. Признание ничтожным разрешения, это уже автоматический запрет.
Как мне недавно доходчиво объяснили на opennet, не надо путать изобретение велосипеда и создание другой реализации. Идея велосипеда одна: колёса, педали, крутим, едем. Но реализаций множество (горные, шоссейные, колхозные, спортивные, детские и т.д и т.п.)
Когда выпускают очередную модель/реализацию идеи велосипеда, почему-то никто не говорит: «велосипед изобрели!», но в мире ПО эти два понятия часто путают :)
Это немного оскорбительно. У японца наверняка семь потов сошло, пока он научил софт правильно соединять фотографии и убирать искажение линзы, а заценили убунту :)
В облаках дорого, пока есть большая нагрузка, а как она прошла, опять дёшево. Такая ценовая политика всегда найдёт своего клиента.
И, я надеюсь, мы оба понимаем, что бенчмаркать надо в том же окружении, в котором потом будет продакшн. Как раз именно для того, чтобы бенчмарк выявил проблемы и окружения и используемых инструментов.
И, если ваш любимый инструмент вдруг показал себя в каком-то тесте, в каком-то окружении плохо, надо просто признать проблему. Да, здесь не работает. А не называть дибилами тех, кто его запустил. Иначе это уже баттхёрт.
Похож на старый добрый facetracknoir, известный любителям авиа-симуляторов, только работает по другому алгоритму и отслеживает положение губ.
Судя по личному опыту, facetracknoir прилично отнимает CPU даже на 30fps, а также очень капризен к освещению. Неравномерное освещение (окно сбоку), и летать уже спокойно нельзя.
> Ммм? Когда f(f(p)) = f(p)? f это хеш-функция которая не делает ничего?
моя условная запись «H = H1» — означает что там одно и то же число разных вариантов. Это вроде бы называют мощность множества. К примеру в первом 2^160, значит и во втором тоже 2^160. Т.е. любой хеш из H переводится в свой собственный хеш из H1.
Очевидно мощность H1 может быть или равна или меньше мощности H. Больше, не может.
И только если мощность равна, только тогда f(f(P)) выдаст тоже самое число разных вариантов, что и f(P), а значит и тоже самое число коллизий.
> Что хеш-функция должна магическим образом избавляться от коллизий если вычисляет хеш от хеша? Хеш ничем не лучше и не хуже пароля от которого он получен в плане коллизий.
Вот в этом и суть. Каждая последующая f() работает с результатом от предыдущих вызовов (т.е. уже накопившиеся коллизии никак не уменьшатся) и при этом добавляет свои.
f() — хеш функция
P — множество всех паролей
H — множество всех хешей
f(P) -> H
f(H) -> H1
f(f(P)) не хуже чем f(P) только тогда, когда H = H1. Т.е. хеш функция переводит свои хеши в хеши без коллизий.
С точки зрения безопасности принято считать верным пессимистичный вариант. Поэтому пока не доказано, что хеш функция переводит хеши в хеши без коллизий считается, что они там есть. А значит в хеше от хеша от хеша от хеша… они накапливаются.
Шутка дня :)
А то, о чём вы говорите — я бы назвал это сложностью:
— вставить батарейку или карточку cможет каждый, это слишком простой, а потому неинтересный, DIY.
— сделать мышку как в топике смогут единицы. Это сложный, и потому интересный, DIY.
— собрать из ардуино мигающую на движение фигню смогут проценты. Единицы с мышками могут посчитать этот DIY простым, но от этого он не перестаёт быть DIY :) И не перестаёт быть интересным для остальных.
Позвонил в саппорт Apple, и там запись голоса реальной девушки, не синтезированный, хотя и робот. В каком месте Apple не прав? ;)
Как я понимаю, это что-то вроде проверки целостности. Не смогли выполнить любое условие, значит прав больше нет. А вот это похоже на ограничения для железа:
Как я понимаю, надо признать ничтожным оба пункта. Первый вообще сам в себе и никакому закону противоречить не может. А второй это не запрет, а разрешение. Признание ничтожным разрешения, это уже автоматический запрет.
Поправьте, если я неправ :)
Как мне недавно доходчиво объяснили на opennet, не надо путать изобретение велосипеда и создание другой реализации. Идея велосипеда одна: колёса, педали, крутим, едем. Но реализаций множество (горные, шоссейные, колхозные, спортивные, детские и т.д и т.п.)
Когда выпускают очередную модель/реализацию идеи велосипеда, почему-то никто не говорит: «велосипед изобрели!», но в мире ПО эти два понятия часто путают :)
И, я надеюсь, мы оба понимаем, что бенчмаркать надо в том же окружении, в котором потом будет продакшн. Как раз именно для того, чтобы бенчмарк выявил проблемы и окружения и используемых инструментов.
И, если ваш любимый инструмент вдруг показал себя в каком-то тесте, в каком-то окружении плохо, надо просто признать проблему. Да, здесь не работает. А не называть дибилами тех, кто его запустил. Иначе это уже баттхёрт.
Судя по личному опыту, facetracknoir прилично отнимает CPU даже на 30fps, а также очень капризен к освещению. Неравномерное освещение (окно сбоку), и летать уже спокойно нельзя.
А IO если и перекособочивает, то для всех одинаково.
Но также я согласен, что с точки зрения как бы посильнее затруднить брутфорс, можно разменять мощность множества на время вычисления.
моя условная запись «H = H1» — означает что там одно и то же число разных вариантов. Это вроде бы называют мощность множества. К примеру в первом 2^160, значит и во втором тоже 2^160. Т.е. любой хеш из H переводится в свой собственный хеш из H1.
Очевидно мощность H1 может быть или равна или меньше мощности H. Больше, не может.
И только если мощность равна, только тогда f(f(P)) выдаст тоже самое число разных вариантов, что и f(P), а значит и тоже самое число коллизий.
> Что хеш-функция должна магическим образом избавляться от коллизий если вычисляет хеш от хеша? Хеш ничем не лучше и не хуже пароля от которого он получен в плане коллизий.
Вот в этом и суть. Каждая последующая f() работает с результатом от предыдущих вызовов (т.е. уже накопившиеся коллизии никак не уменьшатся) и при этом добавляет свои.
Коллизии на каждом этапе суммируются.
f() — хеш функция
P — множество всех паролей
H — множество всех хешей
f(P) -> H
f(H) -> H1
f(f(P)) не хуже чем f(P) только тогда, когда H = H1. Т.е. хеш функция переводит свои хеши в хеши без коллизий.
С точки зрения безопасности принято считать верным пессимистичный вариант. Поэтому пока не доказано, что хеш функция переводит хеши в хеши без коллизий считается, что они там есть. А значит в хеше от хеша от хеша от хеша… они накапливаются.
Где ошибся?