Да, но тут не все так просто, алгоритмы, которые производят замены на похожие работают еще в 2^вариантов_замен раз медленнее, чем просто декомпозиция или атака по словарю. Но, конечно, для полноты картины следует еще добавить набор распространенных правил замены, чуть позже займусь.
а в чем проблема — на девайсе несколько слотов, просто переключаешься по ним клавишей навигации. В худшем случае они просто занумеронваны, в лучшем — есть подпись и пиктограмма каждого сервиса.
мне кажется удивительным, что в данной простой проблеме есть пробелы. Те же китайцы, делающие кучу бесполезных гаджетов, вполне могли бы сделать флешку-брелок с дисплеем и парой кнопочек.
Нажимаем одну кнопочку — генерится и запоминается пароль, нажимаем вторую — девайс эмулирует клавиатуру, и этот пароль «набирает». Можно добавить мастер-пароль к нему, в зависимости от желаемого уровня безопасности (ведь девайс может схватить кто-то другой), но основные проблемы пользователя он бы решил и без мастер-пароля.
И на счет клише, уже не уверен, хотя, конечно, сталкиваюсь, даже на работе с теми самыми «каноническими» программистами (но не сказал бы, что их ряд доминирует). Многим из них просто нравится перерабатывать, ибо больше ничем не занимаются. У некоторых есть азарт относительно того, успеют ли они реализовать какую-то крутую, пусть и не очень нужную идею, до дедлайна. И со стороны, посмотреть, им тоже весело, так что тут, пожалуй, просто каждый выбирает, что ему ближе.
Я же не утверждаю, что программирование — вообще сплошное безделье. Просто относительно других вариантов работы — менее затратно. Например, если учителем поработать в школе — то в сравнении, программирование — это вообще не работа, а отдых :)
Но все-таки у человека по определению должны быть жизненные силы и свободное время, мы же не рабы. Даже грубо говоря, из 24 часов вычесть 8 на сон и 8 на работу, должно еще 8 оставаться. Конечно, по большей части они распределяются на необходимости, но 3-4 часа полностью свободного времени можно найти.
А чем это контрфактор? То, что на работе сложнее найти «женщину своей мечты», или тем что со временем просто отвыкаешь общаться с женщинами?
конечно, правда не на плоскости, а нужно повернуть крышку перпендикулярно люку, и разместить по диагонали, что случайно маловероятно. А так не будут проваливаться любые фигуры, у которых разница между минимальным и максимальным радиусом (от геометрического центра) не больше ширины паза. при ширине паза == 0 — это только круг.
Я могу тут начать дискуссию, правда она не очень связана из изначальной темой обсуждения.
Фрилансеры правда, увы, сразу «выпадают». Почему люди идут в фриланс (достаточно одного из четырех пунктов):
1. желание получать больше денег за ту же работу,
2. возможность иметь столько работы, на сколько хватает времени,
3. неумение или отсутствие желания общаться с коллективом, подстраиваться под начальство,
4. отказ от выполнения «неинтересных» задач, попытка выбрать то, что тебе «по душе».
А теперь попробуем построить worst-case (это важно! ибо это не обязательно вытекает из вышеописанного) аналогию тех же тезисов в плане «отношений»:
1. некоторая жадность,
2. трудоголизм, нежелание (или неумение) балансировать время,
3. эгоцентризм,
4. уход «от реальности».
Разумеется, при наличии хотя бы одного из этих пунктов с «отношениями» будут сложности. Более одного — ничего не получится.
Я же подразумевал типичного «офисного» программиста, проводящего на работе не более 8 часов, как это и положено, по ТК.
И теперь, подхожу к мысли, которая, возможно не многим будет по душе, но… железки хороши на работе, за деньги компании, в их офисах. Обучение новым технологиям, не связанным непосредственно с рабочим проектом — тоже в офисе.
Если же у вас (собирательный образ) дедлайны, оверворк, отказы на оборудование для экспериментов, нет возможности иметь карьерное развитие, то, вероятно:
1. вы достигли своего уровня некомпетентности (то бишь выбрали лучшее по деньгам или другим факторам рабочее место, куда вас смогли пригласить),
2. у вас просто плохая работа.
То есть заняться этим вопросом лучше в первую очередь, а потом уже переходить на вопрос «отношений».
А на мой взгляд, прекрасно читается. По факту, конечно, текст состоит из нескольких самоочевидных фактов, но авторский стиль помогает от набора тезисов перейти к связному изложению.
во-первых «завести» несколько некорректный тезис, заводят всякие другие вещи, и обычно нежелательные :)
а во-вторых, за «нас» наверное не стоит говорить, ибо в целом программисту справиться с этой задачей значительно проще, чем большинству людей, не работающих в IT, потому как:
* много свободного времени;
* материальная обеспеченность, стабильность;
* низкий стресс-фактор от работы, и как следствие большое количество жизненных сил, остающихся на послерабочее время.
Дело в том, что в парадигму ООП разделение интерфейсов и абстрактных классов попросту не входит. Таким образом — этот вопрос, просто привязка к конкретным языкам, где нет честного множественного наследования. Если человек устраивается как специалист узкого профиля — ему это знать не нужно, не обязательно игнорировать специально, но есть существенная вероятность, что пока он с этими вопросами и не сталкивался.
именно так и отвечал, а товарищи из HR настаивали, что это неверный ответ.
То есть круглый люк не может провалиться внутрь, но не проваливается сам и под нагрузкой он благодаря тому что есть специальный паз, диаметр люка больше, чем диаметр отверстия. Квадратный с таким же пазом, не провалится.
Антивандальные соображения? Ну да, это «for fun» поднимать тяжеленные квадратные люки, ставить по диагонали, чтобы уронить внутрь. А вот круглый можно поднять и укатить на ближайший прием металлолома.
> Также слабым местом хэш-скана является скорость проверки.
В каком же простите месте? Самым слабым местом всегда является скорость считывания с диска, а посчитать мд5 хеш (хотя что-то слабо верится что именно по хешу сравнение, а не по шаблонам) и найти в списке сигнатур (пусть даже среди нескольких миллионов) хеш-поиском (да хоть бинарным) — вопрос нескольких долей миллисекунды.
Читать конечно никто не заставляет, но вы ошибаетесь. Не в существовании быстрых хранилищ, а в том насколько они быстрые должны быть — десятки миллисекунд (точнее «десяток») * 5000 запросов (на один хеш) как раз и дают минуту.
1. Если таблицы отсортированы и у них есть индекс, то найти одно значение можно за десятки миллисекунд (предполагаем, что индекс уже в памяти, а вот к конкретному месту в файле уже придется обращаться), всего таких операций на одно значение нужно 5000 (в моем случае) — дает минуту (приблизительно, т.к. сильно зависит от параметров железа, вдруг все таблицы в память влезают?).
2. потому что хеш таблица хорошо работает, только если она слабо заполнена (<30%), что в случае 5.7 миллионов элементов (*8 байт) требует больше памяти, чем есть на моей видяхе. А по первым результатам хеш-поиск на основном ядре при оптимальных параметрах сливает бинарному на видеокарте.
3. ну это и не «мой метод», просто разновидность частотного анализа, немного упрощенная для эффективной реализации.
Нажимаем одну кнопочку — генерится и запоминается пароль, нажимаем вторую — девайс эмулирует клавиатуру, и этот пароль «набирает». Можно добавить мастер-пароль к нему, в зависимости от желаемого уровня безопасности (ведь девайс может схватить кто-то другой), но основные проблемы пользователя он бы решил и без мастер-пароля.
А остальные хобби, они же и у «обычных людей» есть, это не должно создавать проблем.
Но все-таки у человека по определению должны быть жизненные силы и свободное время, мы же не рабы. Даже грубо говоря, из 24 часов вычесть 8 на сон и 8 на работу, должно еще 8 оставаться. Конечно, по большей части они распределяются на необходимости, но 3-4 часа полностью свободного времени можно найти.
А чем это контрфактор? То, что на работе сложнее найти «женщину своей мечты», или тем что со временем просто отвыкаешь общаться с женщинами?
Фрилансеры правда, увы, сразу «выпадают». Почему люди идут в фриланс (достаточно одного из четырех пунктов):
1. желание получать больше денег за ту же работу,
2. возможность иметь столько работы, на сколько хватает времени,
3. неумение или отсутствие желания общаться с коллективом, подстраиваться под начальство,
4. отказ от выполнения «неинтересных» задач, попытка выбрать то, что тебе «по душе».
А теперь попробуем построить worst-case (это важно! ибо это не обязательно вытекает из вышеописанного) аналогию тех же тезисов в плане «отношений»:
1. некоторая жадность,
2. трудоголизм, нежелание (или неумение) балансировать время,
3. эгоцентризм,
4. уход «от реальности».
Разумеется, при наличии хотя бы одного из этих пунктов с «отношениями» будут сложности. Более одного — ничего не получится.
Я же подразумевал типичного «офисного» программиста, проводящего на работе не более 8 часов, как это и положено, по ТК.
И теперь, подхожу к мысли, которая, возможно не многим будет по душе, но… железки хороши на работе, за деньги компании, в их офисах. Обучение новым технологиям, не связанным непосредственно с рабочим проектом — тоже в офисе.
Если же у вас (собирательный образ) дедлайны, оверворк, отказы на оборудование для экспериментов, нет возможности иметь карьерное развитие, то, вероятно:
1. вы достигли своего уровня некомпетентности (то бишь выбрали лучшее по деньгам или другим факторам рабочее место, куда вас смогли пригласить),
2. у вас просто плохая работа.
То есть заняться этим вопросом лучше в первую очередь, а потом уже переходить на вопрос «отношений».
Это же не «how to» какое-нибудь :)
а во-вторых, за «нас» наверное не стоит говорить, ибо в целом программисту справиться с этой задачей значительно проще, чем большинству людей, не работающих в IT, потому как:
* много свободного времени;
* материальная обеспеченность, стабильность;
* низкий стресс-фактор от работы, и как следствие большое количество жизненных сил, остающихся на послерабочее время.
То есть круглый люк не может провалиться внутрь, но не проваливается сам и под нагрузкой он благодаря тому что есть специальный паз, диаметр люка больше, чем диаметр отверстия. Квадратный с таким же пазом, не провалится.
Антивандальные соображения? Ну да, это «for fun» поднимать тяжеленные квадратные люки, ставить по диагонали, чтобы уронить внутрь. А вот круглый можно поднять и укатить на ближайший прием металлолома.
«Ибо ничем. Я на C++ пишу.»
В каком же простите месте? Самым слабым местом всегда является скорость считывания с диска, а посчитать мд5 хеш (хотя что-то слабо верится что именно по хешу сравнение, а не по шаблонам) и найти в списке сигнатур (пусть даже среди нескольких миллионов) хеш-поиском (да хоть бинарным) — вопрос нескольких долей миллисекунды.
2. потому что хеш таблица хорошо работает, только если она слабо заполнена (<30%), что в случае 5.7 миллионов элементов (*8 байт) требует больше памяти, чем есть на моей видяхе. А по первым результатам хеш-поиск на основном ядре при оптимальных параметрах сливает бинарному на видеокарте.
3. ну это и не «мой метод», просто разновидность частотного анализа, немного упрощенная для эффективной реализации.