Pull to refresh
7
0.6

Пользователь

Send message
Позволю небольшой оффтопик. Мне кажется, что до тех пор, пока производители планшетов/смартфонов, вместо того, чтобы придумать новую концепцию портативного устройства(связывающую железо, ОС и прикладной софт в единый пакет услуг, удобный как пользователю, так и стороннему разработчику), будут заниматься бессмысленными попытками сделать очередного «убийцу» ipad/iphone, ситуация на рынке не изменится и эппл как лидировали, так и будут лидировать. В силу это статьи, с заголовком вроде «7 причин, почему лучше <что-то там> лучше ipad» вызывают довольно сильный скептицизм.
Опечатку поправил, спасибо. А за «сленг» — извиняюсь, привык за годы. «Добавить к методу установки значения свойства вызов события об изменении значения данного свойства» — так будет лучше?
Спасибо за ссылку =) Насчет тормозов — я использовал этот подход для построение визуального редактора абстрактного синтаксического дерева некого упрощающего диалекта питона(в нем описывались формулы преобразования одного значения в другое). При общем количестве нод в графе порядка 50 никаких тормозов не видел. Впрочем ничего не берусь утверждать, все зависит от задачи и проекта.
Честно говоря, основная причина написания статьи — продемонстрировать возможности dynamic type. Но если интересно, то быстродействие я мерил — dynamic выигрывает на создании, ибо кастоловский прокси компилирует объект на лету с emit-апи, но зато потом в моей реализации идут проигрыши на вызове методов реального объекта, поскольку я дергаю их через рефлексию. Впрочем в дата-объекте особо методов быть не должно. Вызов свойств по времени вполне сравним, ибо там я прикрутил вызов через компилируемые лямбда-функции. Что касается решений типа T4 или посташарпа, то там конечно все быстрее, т.к. все нужные действия происходят на компиляции, но зато удобство написания явно ниже(особенно это касается Т4).
>Там предлагалось три варианта вместо двух, не только М/Ж, но и «другой». Честно говоря, сразу подумал, что это шутка очередного фотошопера

Ну на хабре таже история:
image
Ага, спасибо за ссылку. Но Clay позволяет делать вот так IPerson lou = people[0]; за счет использования DynamicProxy от Castle, а он может перехватывать только вызовы виртуальных методов либо методов интерфейса. Т.е. если у меня есть свойство Name и я хочу во вью-модели при сеттере добавить добавить какую-то валидацию на него(которая возможно мне совершенно не нужна или даже вредна в обычной дата-модели), то мне придется сделать свойство виртуальным. Это, конечно, не очень страшно, но мне было интересно сделать решение, которое позволяет не модифицировать сами модельные классы.
Возможно я чего-то не понимаю, поправьте, если ошибаюсь, но, как я понял, схема такая: есть ключ, с помощью него дешифрует система команд виртуальной машины, затем машина запускается и выполняет нужные инструкции, который производят полезное действие(«например печатают Hello World»). Вопрос — что мешает нам поставить отладчик уровня ядра(привет DDK) и получить дамп всех инструкций 86-го процессора, которые сделала виртуальная машина? Допустим среди них есть какие проверки(взятие системного времени, для проверки, что мы еще можем работать или проверка CPUID). Такую команду вполне реально обнаружить, и заменить на нопы, после чего сделать из полученного дампа запускаемый exe, лишенный всякой защиты. Пример со скайп не корректен, т.к. можно привести аргумент «неуловимого Джо» — зачем кому-то взламывать бесплатную программу для ip-телефонии? Разве что для попытки узнать протокол и получить возможность прослушивать разговоры(сомнительно, что осуществимо в принципе), но в таком случае на месте этого взломщика я бы хранил полное молчание.
12 ...
60

Information

Rating
2,050-th
Location
Саха (Якутия), Россия
Date of birth
Registered
Activity