Обновить
72
Александр Тихонов@AlexTikhonov

Программист

8
Подписчики
Отправить сообщение
Кстати, отмечу свой личный опыт: еще ни разу попапы/баннеры мне не помогали найти/купить что-то полезное, скорее раздражали, но по ссылкам справа от письма в gmail я уже пару раз натыкался на именно то, что мне нужно или меня заинтересовало.

Я не СЕОшник, но меня немного это удивляет, неужели прыгающие-мигающие баннера, которые так раздражают эффективны?
Честно говоря, действительно не совсем ясна цель топика.

На каждое предложение свой покупатель. Я ни разу не пользовался mail.ru, но, думаю, тем кто пользуется нужна была такая фича (как я понял по комментам ее там раньше не было), и люди готовы были платить — вот она и появилась.

Другой вопрос, почему доллар, если сайт Российский? Логичней было в рублях цену.

Лично мне скорее не понятно, почему ресурс, считающий себя вроде типа крупным вводит систему монетизации скорее похожую на небольшие стартапчики. Обычно крупные ресурсы окупают себя трафиком, а не СМС или разовыми услугами по типу почистить комменты/вопросы.

Я очень удивлюсь если гугл или яху или майкрософт введут что-то подобное на своих ресурсах (плиз киньте ссылкой если такое есть, просто интересно — например удаление паблик документа из docs.google.com или из code.google.com за деньги), но совершенно не удивлюсь подобного решения от Мейл.ру или Одноклассников или ВКонтакте.
Действительно так, это сделано для безопасности (иначе можно подменять расширения).

Если все-таки хочется чтоб работало и там, то в строку запуска хрома добавить "--allow-scripting-gallery"

Обычно используется для автоматического тестирования.
Если реально будут желающие реализовать, я готов перевести некоторую сумму на создание такого «фильма».

Имхо если собрать все предложения («Зверь из машины», «мировые обманы — проблема 2к и бум доткомов», «миллиарды за ничто или за что получили деньги самые богатые люди мира» и т.д.) может выйти даже серия «разоблачающих» фильмов + запустить перед релизом пару вирусных видео с якобы отрывками + попытками саботажа, снятых с мобилок (например, несколько бритоголовых парней врывающихся в «студию»).

Кстати, главное не забыть стандартный якорь, используемый в таких фильмах — это всемирный заговор и скрытое правительство (сюда добавить «разоблачающие» ссылки на реальные старые судебные процессы по сговору крупных корпораций — Intel, AMD).

+ добавить репортажи о том, как один русский парень написал ОС (а все тратят миллиарды — вот он, заговор!) и еще парочку таких сюжетов.

В общем, думаю действительно можно собрать некую сумму для реализации этой задумки.
Если не шутка, то запостите плиз ваши ходы… просто интересно :)
Когда я писал, у меня тоже возник этот вопрос. На википедии было три варианта: «отражение или рефлексия (синоним интроспекция, англ. reflection)». Я выбрал «рефлексия», потому-что оно проще чем «интроспекция» но более ближе к английскому варианту «reflection».

Но, действительно, в дальнейшем я все-таки пересмотрю свою точку зрения. Спасибо.
сорри, случайно отправилось.

теперь вместо
var method = typeof (B).GetMethod("DoWork");
method.Invoke(b, "xxx");

Можно
var b = new B();
var expr = MakeCall<B,string>(b, "DoWork");
expr("xxx");


разница (пустой класс б с 1 методом, фор с вызовом 20000000 раз через expr и через method.Invoke(b, «xxx»); ):
time = 00:00:00.8665175
time = 00:00:27.2921866

впечатляет… :)
leo, чисто ради интереса написал вот такой метод:
public static Action MakeCall<TClass, TArg>(TClass instance, string name)
{
var instanceExpr = Expression.Constant(instance);
var param = Expression.Parameter(typeof (TArg), "arg");
var call = Expression.Call(instanceExpr, name, Type.EmptyTypes, param);
var expr = Expression.Lambda<Action>(call,param).Compile();
return expr;
}

использовать:
Т.е. если вместо свойства (property) — метод? тогда просто вместо Expression.Property — Expression.Call. А остальное то же самое — в конце концов выходит обычный Func<>, который можно вызывать, и по скорости намного выше MethodInfo.Invoke

Кстати, если говорить именно о 4.0, я там заметил RuntimeVariablesExpression — возможно его можно было бы использовать, но пока не нашел достаточно информации.
В реальной системе перехватом можно пользоваться для совсем не существующих методов. Например: есть веб-узел, предоставляющий свои функции через урл по типу domain.com/{funcname}/{parameters}
С помощью перехвата это можно сделать реализовав один перехватчик кидающий запрос на узел. В результате будет что-то вроде service.DoSomeFunc(a,b) будет кидать запрос на domain/DoSomeFunc/a=xxx&b=xxx

С ExpandoObject — действительно он лучше всего предназначен для представления сильно отличающихся друг от друга сущностей. Иначе стоит задуматься о создании общих классов с необходимыми функциями и делегировать им поведение.

Если сравнивать с рефлексией, то метод с выражениями меня лично очень поразил — ведь фактически особых изменений нет — вместо PropertyInfo/MethodInfo храним откомпилированное выражение. А прирос производительности просто потрясающий.
Действительно так, но я хотел метод с выражениями максимально приблизить к рефлексии. PropertyInfo.GetValue тоже принимает Object как первый параметр.
Странно, сейчас попытался найти в MSDN про Sercurity по Expression<TDelegate>.Compile, и не нашел.

Если вдруг у кого есть информация, какой именно permission требует, напишите. Логически он должен требовать что-то…
Огромное спасибо! Действительно, очень хотелось все-таки выложить статью. Думаю время публикации «05:44» чуть чуть меня оправдает. Да и орфография — одно из самый слабых моих качеств, но стараюсь импрувить :)

Конечно же проверю все и постараюсь исправлю.
На самом деле это был первый вариант реализации — с использованием DynamicMethod. Даже был более или менее работающий код, но он был довольно громоздкий, и не очень читабелен. А про производительности по сравнению с Expressions он давал разницу сравнимую с random (фактически автоматический генератор иногда генерирует непонятные конструкции по типа безусловных прыжков на следующую инструкцию). По этому я удалил это решение.

Возможно все-таки надо было включить, но статья и так вышла слегка раздутая, хотелось чтоб различия в методах были все-таки более заметные. А то реально можно придумать еще парочку модификаций каждого метода :)
Действительно варианты похожие. Но вариант с Expression-ами:
а) дает все-таки некое подобие на строгую типизацию — мы задаем точный тип возврата.
б) не надо каждый раз писать руками делегат (он фактически генерируется).
Спасибо, действительно так. Добавлю в минусы к этому способу.
имхо в ConEmu самое главное:
— встроенный drag-n-drop
— табы и Win-W
— установка кастомного шрифта (для отображения каны)

А то, на каком диске я нахожусь я определяю легко — включаю отображение свободного пространства :)

Остальное для меня — приятные незаметные вкусности. Но надо попробовать.
Ну в Undying можно было хоть пострелять во врагов :)

Но Undying действительно имхо в своем роде шедевральная игра, особенно в то время, когда она появилась.
Не хватает пункта
— У меня не IT, но техническое образование (мехмат, физик и т.д.). В нем был курс дискретной математики, но не было theoretical CS.

Я — математик, закончил физ.мат. специальность математика (КПИ, Киев, Украина). Дискретной математики было очень много, но «theoretical CS»… если не ошибаюсь, то один семестр были какие-то основы компьютерной науки, где максимум сортировку пузырьком писали на паскале. Никаких теорий алгоритмов и т.д.

Зато мат. логика, теория доказательств и т.д. — т.е. «чистая математика» (у нас отдельный был факультет — «прикладная математика», где уже были теории алгоритмов).
Ну как бы индексы в RDMS под частую на них и делаются :)

Не забывайте, что основные задачи MapReduce — обойти ограничение по памяти и максимально запаралелить.

А с деревьями проблема, что надо дерево иметь в распоряжении во время индексирования (добавления/поиска). И если очень большое дерево или надо чтоб обработка шла одновременно на распределенной системе, деревья не оправдывают возложенных на них задач.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность