Уже года 2 использую для рисования автоматов cmaptools.
На основании полученного файла генерирую код переходов и подключаю к классу, в котором объявлены функции y0, y1,...yn и z0, z1,...zn для обработки соответственно состояний и действий при переходах.
Таким образом код переходов и обработка переходов в разных местах и я в любой момент могу внести изменения через cmaptools. Естественно нужно поправить затронутый изменениями код обработки, но в целом получается железобетонная система, с помощью которой можно быстро и надёжно решить практически любую достаточно сложную задачу.
Плюс всегда остаётся подробнейшая документация к коду, в которой можно без труда разобраться и через дцать лет.
Идея хороша, но.
Ввиду двумерности языка PATH будет слишком много зря потраченного места.
15 команд всё-таки очень много.
Имхо, гораздо эффективнее будет использовать брэйнфак. Его 8 команд можно кодировать всего тремя точками: либо горизонтальными, либо вертикальными, либо (почему-то мне нравится больше всего) уголками с обходом по часовой стрелке:
xyy
xxy
Теперь думаю, какую же более-менее полезную программу для мобилы можно изобразить в qr-коде…
Есть идеи?
Очень интересная статья.
Но есть одно но: такое многообразие софтового безобразия существует ещё и потому, что правильность — понятие весьма и весьма относительное. К сожалению )
ИМХО для оценки «достаточности» можно воспользоваться правилом Парето: например уделять особое внимание 20% наиболее важной функциональности, 20% наиболее критических ошибок и т.п. Естественно, что это может быть не 20%, а где-то рядом, и, естественно, что я не призываю забить на остальные 80% функционала и ошибок.
Для реализации всего-то необходимо: оценка важности чего-то (функции, ошибки и т.п.) и мониторинг ситуации в реальном времени.
В моей статье написано, что отказаться от OpenID, который я уважаю, меня побудил как раз тот факт, что основные представители моей целевой аудитории как раз далеки от показателя «более 1000 часов в интернете».
Вы ещё скажите, что приятный дизайн, правильная типографика, удобная навигация — это тоже всё «борьба с симптомами». Я уж молчу про такие факторы, как интуитивно понятный интерфейс в целом и SEO (хотя бы внутренняя оптимизация).
Кстати IP адрес для одного пользователя не всегда будет из одного города. Некоторые ОпСоСы выделяют московский IP для GSM-модемов. Это ещё более усложняет задачу.
Идеальный вариант — запись движений и щелчков мыши, но это требует времени и сил на исследования, которые есть разве что у Гугла )
Да, я это понимаю и принимаю. В основном, благодаря вам )
Решение простое: если персональные данные пользователя без подтверждённого емэйла или телефона (перечень которых выбран заранее для конкретного сайта) круто изменились, то это новый пользователь.
Добавлю к топику. Люблю людей, уделяющих внимание мелочам.
Во-первых, половина пользователей, поленится регистрироваться и просто уйдёт туда, где регистрироваться не нужно. Во-вторых, даже те, кто зарегистрируются, если они не станут тут же постоянными посетителями (а это бывает редко), тут же забудут этот сайт навсегда.
Это основной посыл к написанию моего топика, т.е. не сначала регистрация и потом плюшки, а сначала плюшки и потом (или во время) регистрация.
При заказе пиццы подтверждение по емэйлу глупо, но это тонкости реализации предложенного механизма. Будет достаточно звонка оператора на указанный телефон, но это опять же тонкости реализации предложенного механизма.
На основании полученного файла генерирую код переходов и подключаю к классу, в котором объявлены функции y0, y1,...yn и z0, z1,...zn для обработки соответственно состояний и действий при переходах.
Таким образом код переходов и обработка переходов в разных местах и я в любой момент могу внести изменения через cmaptools. Естественно нужно поправить затронутый изменениями код обработки, но в целом получается железобетонная система, с помощью которой можно быстро и надёжно решить практически любую достаточно сложную задачу.
Плюс всегда остаётся подробнейшая документация к коду, в которой можно без труда разобраться и через дцать лет.
Ввиду двумерности языка PATH будет слишком много зря потраченного места.
15 команд всё-таки очень много.
Имхо, гораздо эффективнее будет использовать брэйнфак. Его 8 команд можно кодировать всего тремя точками: либо горизонтальными, либо вертикальными, либо (почему-то мне нравится больше всего) уголками с обходом по часовой стрелке:
xyy
xxy
Теперь думаю, какую же более-менее полезную программу для мобилы можно изобразить в qr-коде…
Есть идеи?
Но есть одно но: такое многообразие софтового безобразия существует ещё и потому, что правильность — понятие весьма и весьма относительное. К сожалению )
Для реализации всего-то необходимо: оценка важности чего-то (функции, ошибки и т.п.) и мониторинг ситуации в реальном времени.
Идеальный вариант — запись движений и щелчков мыши, но это требует времени и сил на исследования, которые есть разве что у Гугла )
А бот, который прикидывался FF, куки поддерживал?
У жены десктоп, у меня ноут.
По завершении проекта для лесохозяйственников обязательно напишу подробности реализации и скину вам ссылку на топик.
Тонкости реализации механизма — это не отказ от применения механизма.
Решение простое: если персональные данные пользователя без подтверждённого емэйла или телефона (перечень которых выбран заранее для конкретного сайта) круто изменились, то это новый пользователь.
Добавлю к топику. Люблю людей, уделяющих внимание мелочам.
Это основной посыл к написанию моего топика, т.е. не сначала регистрация и потом плюшки, а сначала плюшки и потом (или во время) регистрация.
При заказе пиццы подтверждение по емэйлу глупо, но это тонкости реализации предложенного механизма. Будет достаточно звонка оператора на указанный телефон, но это опять же тонкости реализации предложенного механизма.