Многим не нравится WinAPI, но мне почему-то кажется, что навряд ли кто-то из них смог бы спроектировать API хотя бы не хуже того, как это сделали ребята из MS.
Ну, все закономерно ) Джаверы берут декомпилятор и либо переопределяют часть методов, либо заменяют класс целиком, втаскивая его себе в jar. Дотнетчики пересобирают сборки в IL, добавляя модификаторы virtual к методам и правя код прямо в IL, ну а тем, кто довольствуется компилируемыми языками программирования — приходится работать по-старинке в дизассемблере и hex-редакторе.
А какие вообще операции можно выполнять над шифрованным текстом без расшифровки?
То есть как это вообще использовать-то можно?
Например я пишу приложение, которое как-то обрабатывает введенные данные. Но юзеры не хотят мне открывать свои явки и требуют чтобы их данные не расшифровывались. И что я смогу с ними сделать без расшифровки? Сложить и умножить например могу (как следует из статьи), а дальше-то что? Что будет представлять результат этого сложения — тоже шифротекст?
Если кто шарит, напишите плз вкратце, что к чему, а то совсем мыслей нет.
Ах Рихтер, редиска, забыл про необходимость статического конструктора упомянуть! (в его книге написано, что простой статик филд эквивалентен способу с двойной блокировкой).
Для диагностики рассинхрона можно сделать следующее: во-первых, при несовпадении контрольных сумм сравнивать с другими участниками игры, если у этого компа значения отличаются, а у остальных одинаковые — вероятнее всего, этот комп и есть бажный. После того, как мы получаем это предположение, мы можем на бажном компе сделать более качественный подсчет хешей — скажем, не брать хеш от всего состояния игры, а разбить эти состояния на подсостояния, и у каждого посчитать хеш. Таким образом будет легче локализовать место рассинхрона. Ну и обязательно нужно взять 2 реплея до момента рассинхронизации — один с бажной машины, другой с машины, на которой, вероятно, все в порядке (а то вдруг еще бага в записи реплеев присутствует). И после всего этого нужна тулза, которая бы симулировала по шагам, по самым минимальным итерациям ход игры по этим двум реплеям, постоянно сравнивая их. Правда это не поможет, если бага воспроизводится только на конкретной машине и не зависит полностью от реплея.
Кортежи и пары — это примерно как анонимные определения структур. Поэтому их самое полезное применение — в реализациях классов, когда лениво писать отдельные структуры. Проще сделать pair и дописать рядом 2 строчки комментария о том, что там хранится и в каком порядке. Если потом нужно будет разобраться в коде, это будет несложно. Естественно, в public интерфейсе класса кортежи смотрятся очень плохо.
Имхо все проекты рано или поздно становятся помойками без диктатора, который следил бы за общим состоянием codebase. Либо нескольких диктаторов, постоянно общающихся между собой.
Ну лично мое мнение — Ваш способ не очень, поскольку требует при заходе с любого ресурса проведения полноценной регистрации. В идеале этого быть не должно. Пользователь должен иметь возможность войти с помощью твиттера, дозаполнить необходимые поля (email, если какой-нибудь твиттер его не предоставляет), и полноценно работать с системой. А потом при желании ткнуть кнопку наподобие «Я могу еще заходить с ресурса YYY», и смерджить 2 аккаунта. Ключевое здесь — алгоритм мерджа акков, не всегда его можно реализовать.
То есть как это вообще использовать-то можно?
Например я пишу приложение, которое как-то обрабатывает введенные данные. Но юзеры не хотят мне открывать свои явки и требуют чтобы их данные не расшифровывались. И что я смогу с ними сделать без расшифровки? Сложить и умножить например могу (как следует из статьи), а дальше-то что? Что будет представлять результат этого сложения — тоже шифротекст?
Если кто шарит, напишите плз вкратце, что к чему, а то совсем мыслей нет.