Кошке
А ты подписался на rss?

День программиста

by Игорь Лизунов после дождичка в четверг

Скоро ж день программиста, емае

 

Как отмечать будем? Може пейнтбольчег стенка-на-стенку?

Tags:

Программирование

Средство рефакторинга для Visual Studio

by Игорь Лизунов 01.08.2009 10:16

Никто не любит стоять в очереди в больницах.

Чтобы людям не приходилось стоять в очереди в больницах, нужно чтобы врачи в больницах работали быстрее.

Чтобы врачи в больницах работали быстрее, чтобы людям не приходилось стоять в очереди в больницах, нужно чтобы у врачей была программа, которая выполняет рутинную работу.

Чтобы написать программу, которая выполняет рутинную работу для врачей в больницах, чтобы они работали быстрее, чтобы людям не приходилось стоять в очереди, нужны мы.

Нам для того, чтобы написать программу, которая выполняет рутинную работу для врачей в больницах, чтобы они работали быстрее, чтобы людям не приходилось стоять в очереди, нужна среда разработки.

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

Что и почему посоветуете? Чем сами пользуетесь?

Tags:

Программирование

Смерть Yahoo!

by Игорь Лизунов 30.07.2009 17:59
Microsoft и Yahoo подписали соглашение, и теперь внутри Yahoo будет работать движок Microsoft

Наверное уже все слышали, что Microsoft и Yahoo, подписали так называемое «партнерское соглашение». Ключевые моменты этого соглашения переведены @XaosCPS на хабре.

Интересным является факт, что теперь поиск и контекстная реклама Yahoo будет основываться на технологиях Microsoft.

Простой пример — Mercedes делает движки для BMW.



Через 10 лет BMW превратится в дилера Mercedes’а
Поясню на простом примере. Представьте себе, что в компанию BMW приходит компания Mercedes Benz и сказала: «Давайте в ваших тачках 10 лет двигатели будем делать мы, да еще и платить будем, а вы тока наклейки клеить?» С одной стороны, это хорошее предложение, т.к. BMW будет на халяву получать очень ценные ресурсы двигателя. С другой стороны, это предложение означает смерть BMW. Почему? Потому что двигатели имеют такое свойство — совершенствоваться. И за 10 лет (блин Гуглу, таким, каким мы его знаем, меньше) технологии уйдут на столько далеко вперед, что о-е-ей. Что случится через 10 лет? Mercedes скажет: «спасибо коллеги, неплохо поработали». А что скажет BMW? А ничего. Ее двигатели десятилетней давности морально устарели. Да, у нее есть клиенты, но что она им может предложить? Она фактически превратилась в продавца технологий Mercedes’а.
То же самое ждет Yahoo Точно также случится и с Yahoo. Я не знаю за какие деньги куплено это решение. Возможно у Yahoo начались серьезные проблемы с работой поиска. Но это решение делает Yahoo не производителем, а дилером.
Все пункты договора просто кричат об этом

Многие, вероятно, возразят: «но Microsoft же получает эксклюзивное право использовать технологии Yahoo в сфере поиска на 10 лет!» Пусть эти люди ответят мне на 2 вопроса:

1) Если технологии Yahoo на столько хорошие, то почему тогда и поиск, и реклама будет работать на движке Microsoft?

2) Все принципиальные концепции технологий поиска у всех компаний описаны в статьях на ACM-конференциях. О результативности того или иного подхода можно судить по внезапной пропаже статей (как в свое время следили за статьями по ядерной физике). Кроме того, за технологии, заимствованные у Yahoo придется через 10 лет платить. И что-то мне подсказывает что Microsoft гораздо большие евреи :-) Так зачем Microsoft технологии Yahoo?

Итак, MS через 10 лет убьет конкурента. А сейчас получит площадку для выхода в страны с малой долей занятого рынка.

Итак, мы выяснили, что Microsoft получает от Yahoo 2 замечательные вещи: 1) пользователей (не клиентов, а именно пользователей) и 2) смерть Yahoo в перспективе.

Со вторым пунктом понятно, а зачем нужны пользователи? Неужели 10% bing’а не хватает для тестирования и роста? Единственное здравое предположение, которое пришло мне в голову — это то, что Yahoo имеет классный рынок в некоторых странах, которого нет у Microsoft. И для развертывания на этих рынках алгоритмов классификации чуть-чуть не хватает пользователей. Возможно, что Yahoo как раз таки не получит доступ к этим фишкам, чем станет существенно хуже bing’а.

В принципе, есть еще один сценарий, для которого Microsoft’у нужен Yahoo. Впрочем, на судьбу Yahoo это никак не влияет, а вот шансы Microsoft на успех существенно ухудшает.

Ну а сегодняшний пост закончен, ждите продолжения.

ЗЫ. Если вам понравился пост — оставьте комментарий или плюсаните, мне будет приятно.

Tags: , ,

Программирование

Лучшая оценка — тройка или почему я не люблю идеальный код

by Игорь Лизунов 29.07.2009 18:52

UPD: Если вы считаете, что «спагетти-код», «вылетающие ошибки» и т.д. это тройка — я прошу вас заменить все «тройки» в посте на «четверки».

UPD2: Под тройкой в данном посте понимается «минимум усилий для достижения какой-то группы целей». Это значит что для группы целей: {Сдать 1-ю версию; Написать 2-ю; Обеспечить поддержку} в рамках работы на «тройку» должно быть уделено время адекватному проектированию и коду, чтобы проект развивался нормально. Я прошу прощения за не точность формулировки и за то, что я кого-то ввел в заблуждение. Видимо это связано с завышенным мнением о тройке :-)

Стремление выполнить работу на «отлично» — идеальтизм!

Я много раз видел код, который был идеален. Я много раз видел людей, днями соображающими, как лучше спроектировать какой-то кусочек. Я видел людей, которые добились, что внешний вид программы заслуживает установки в музей современного искусства. Я видел проекты, покрытые тестами на 500%.

Я сам часто этим страдаю. Это своего рода отголоски комплекса отличника.

Так вот, это — идеальтизм!

Никому не нужна «отличная» работа. Всем нужна работа на «сдал», то есть тройку.

Зачем нам нужен идеальный код? «Он просто воспринимается, очень-очень модульный, просто рефакторится… Как ты вообще мог такое спросить?!»

А будет ли он рефакториться? Нужна ли ему эта модульность и чистота? Заглянет ли вообще кто-то туда? А если и заглянет и решит переписать, то действительно ли понадобится эта модульность?

Что значит оценка «3»? Это достижение результата с минимумом затраченных усилий. Все живое идет по этому пути.

Поэтому лучшая оценка — тройка.

Сформулируйте цели и идите к ней, выполняя всю работу на 3. Лишняя работа — пустая трата времени.

Если вы руководите проектом, ваша цель — не сделать программу без ошибок, не обложить ее тестами. Ваша цель — сдать проект и перевести его в стадию поддержки. Зачем делать идеальный интерфейс, если заказчик примет проект и с кнопочками windows’98? Эта цель — единственно важное. Все остальные работы — лишь «галочки» на пути к этой цели.

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

Залог успеха — это грамотный выбор цели и достижение этой цели на «тройку».

Сомневаюсь, что кто-то сможет меня в этом переубедить :-)

А вы на какую оценку работаете?

Что бы это значило или будущее интернет-поиска

by Игорь Лизунов 28.07.2009 17:28
Зачем Google нужен вики, а Microsoft — игры?

В связи с выходом в свет bing’а, тема поисковых движков стала гораздо живее обсуждаться в программистском сообществе. Я тоже решил ее коснуться, поскольку в связи с темой аспера это мне близко и я могу по-человечески объяснить некоторые вещи.

Я не буду говорить о технологической стороне поиска (federated search и т.д.), а остановлюсь на алгоритмической.

Вероятно, все обратили внимание, что в поиске у гугла появилась вики. С ее помощью можно поднимать понравившийся результат поиска или, наоборот, удалять из списка. Недавно bing запустил игру, которая призвана собрать информацию о соответствии запросов ответам.

Они хотят повысить релевантность (корректность выдачи) Догадливые коллеги догадались, что все это затеяно не просто так, а с великой и светлой целью — повысить релевантность поиска.

Каков идеально релевантный поиск? Это когда 1000 ваших копий перечитывают весь интернет и выбирают для вас 10 самых удачных страниц по запросу «сиськи Анны Семенович».
Для этого им нужно «обучить» машину думать как эксперта по поиску. А для этого им нужны обучающие данные (мы).

Каково приближение идеального поиска? Это когда 1000 людей, которые являются «идеальной выборкой человечества», перечитывают весь интернет и выбирают по 10 самых удачных страниц на каждый запрос.

Что такое идеальная выборка человечества? Это выборка, в которой доли людей по любому признаку совпадают с долями в человечестве в целом (столько же геев, столько же евреев, столько же айтишников и т.д.)

Как найти экспертов? Очень просто — нужно предложить людям простой способ оставлять свое мнение о поиске. Для этого и нужны вики и игры.

Как выбрать среди экспертов самых адекватных? Нужно выбрать экспертов, мнения которых минимально отличаются от мнений всех остальных экспертов.

Итак, мы получили группу экспертов, мнению которых можно доверять.

Что дальше делать с их мнением? В игру вступают алгоритмы классификации и машинного обучения. О них я поведаю чуть позже.

Результат? Смерть черного и серого SEO. Что же это значит для нас? Из поисковых результатов наконец-то выпадут спам и SEO-шные сайты. А останется только реальный контент.

По-моему это круто.
И махинации тут практически невозможны. А что может помешать махинациям?

О, ответ на этот вопрос самые внимательные читатели уже нашли. 

Допустим, злобные сеошники решат сделать ботов, которые будут в гугло-вики проставлять плюсы на их сайте. Попадут они в категорию экспертов? Нет! Потому что они будут отличаться от других людей (см. выше).

Значит придется делать ботов, которые как-то притворяются другими людьми и отмечают в вики свой сайт только в 1% от остальных действий. Тогда, возможно, они смогут попасть в результаты. Однако их также легко будет отсеять по активности на почте и т.д.
В итоге, по сути единственная адекватная возможность для CEO-шника — это заплатить реальным пользователям чтобы они поставили «+». А теперь вопрос, как вы думаете, сколько это будет стоить? =)
А может все-таки можно похимичить? Неа =)

А что если все-таки, а?

Дело в том, что компании интересует не сырое мнение экспертов (по запросу «титьки Анны Семенович» лидирует сайт http://machovik.ru ), это просто платформа для обучения машины классификации релевантен/нерелевантен. А значит что:

а) не нужна большая группа экспертов, достаточно данных, собранных например внутри компании Microsoft (ну по темам, в которых сотрудники компании адекватны)

б) не нужна постоянная подпитка информацией, на долго хватит данных, собранных за несколько месяцев

в) не нужна информация по всем запросам, т.к. машина сама научится работать как эти люди.

Итоги:
- SEO-шники идут лесом
- контент дорожает
- ссылки и реклама в поисковиках серьезно дорожает
Итак, что же нас ожидает после ввода в строй такой супер-машины.

Индустрия оптимизации сайтов, когда без реального контента можно было за счет ссылок, жирных шрифтов и бла-бла-бла продвинуть сайт в поиске практически изживет себя.

На ее смену придет индустрия, когда на сайте появляется реальный контент и сайт становится реально полезен. Для рядовых пользователей интернета это очень круто: меньше времени будут тратить на поиск. Для владельцев сайтов — это существенное удорожание рекламы и раскрутки.

Куда утекут деньги от SEO? Фирмы-то останутся, надо же еще племяннику директора порш кайен покупать. Очевидно что деньги начнут утекать в рекламу, и прежде всего в контекстную.
Я думаю что цены на показ баннеров и ссылок могут легко подняться в 2 раза. А купленные слова легко поднимутся в цене раз в 5.

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

Поэтому стоит приготовить сани летом. Такие вот пироги. А вы что думаете по этому поводу?

Классная книжка — Visual Thinking

by Игорь Лизунов Нажрамшись поливитаминов

 Visual Thinking— отличная книжка про:

  • UX
  • Usability
  • Design
  • Восприятие

для:

  • руководителей проектов
  • дизайнеров
  • аналитиков
  • преподавателей
Наполовину прочитал уже замечательную книжку под названием Visual Thinking for Design

Каждому:
- руководителю/менеджеру проектов
- дизайнеру
- аналитику
- преподавателю
настоятельно рекомендую прочитать.

Пара примеров, чтобы вызвать интерес:
image

Смотрим на средние квадраты на верхней и передней части куба. Как ни странно, у них одинаковые цвета :-) Мораль: мозг не способен отфильтровать цвет от контекста. Вот с нотами такого эффекта нет. Или есть?..

И 2 (программистское), цитата:

 

Flowcharts were a very expensive mistake. Hundreds of thousands of dollars were spent documenting computer programs in this way, only for the results to languish on shelves never to be consulted. It turned out that it was easier to read a pseudo-code description, or even the program logic itself, than the flowchart. Flowcharts now stand as a reminder of the limitations of visual representation. There are some things that words do much better.

Перевод:

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

Ну вот как-то так.

А вы читали эту книжку? Может быть читали что-то другое интересное?

Ура

by Игорь Лизунов Когда рак на горе свиснул
Грядут изменения этого блога

Я тут поковырял мой бложе, и скоро вы его не узнаете.

Некоторые изменения видны уже сейчас: к примеру, я могу проставлять дату публикации в нужном мне формате :-)

Tags:

Программирование

Му-ха-ха-ха

by Игорь Лизунов 04.05.2009 20:25

Програмко:

  1. class A
  2. {
  3.     public Action a;
  4.     public string s = "S";
  5.     public A(Action a)
  6.     {
  7.         this.a = a;
  8.     }
  9. }
  10.  
  11. class B : A
  12. {
  13.     public B()
  14.         : base(() => Console.WriteLine("{0}", this.s))
  15.     {
  16.     }
  17. }
  18.  
  19. class Program
  20. {
  21.     static void Main(string[] args)
  22.     {
  23.         (new B()).a();
  24.         Console.ReadLine();
  25.     }
  26. }
  27.  

  Компилятор схавает.

 Рантайм выбросит эксепшн, да какой клевый:

 InvalidProgramException

 Исключение, которое выбрасывается, если программа содержит недопустимые инструкции MSIL или метаданные. Обычно оно указывает на ошибку в компиляторе, который сгенерировал данную программу.

Tags: , ,

Программирование

Летняя школа intel 2009

by Игорь Лизунов 02.05.2009 8:23

В Нижнем Новгороде в этом году опять пройдет летняя школа intel.

Всем студентам очень советую туда пробиться.

По поручению организаторов посылаю Вам информацию о 10-й Летней молодежной школе-стажировке, организованной компанией Intel совместно с ННГУ им. Н.И. Лобачевского, которая будет проходить в Нижнем Новгороде с 6-го июля по 14-е августа этого года.
 
Обратите внимание! В юбилейном году Летняя школа пройдет в новом формате: стажеры будут работать над открытыми задачами под руководством специалистов компании Intel и ННГУ. Список задач будет опубликован на сайте компании Intel (www.intel.ru/education) на этапе конкурсного отбора.
Рабочие места для стажеров будут организованы в лабораториях ННГУ. Во время стажировки будут проведены циклы лекций, практических занятий и тренингов под руководством ведущих ученых различных научных школ и направлений, преподавателей российских университетов, а также сотрудников компании Intel и других IT-компаний.
Во время стажировки будет выплачиваться стипендия, всем участникам предоставляется грант на питание во время занятий, иногородним стажерам предоставляется грант на проезд до и от Нижнего Новгорода и проживание в студенческом общежитии.
 
Участниками школы могут стать: студенты старших курсов (начиная с 3-го), магистранты, аспиранты вузов России и молодые специалисты (выпускники, окончившие российский вуз не более трех лет назад).
 
Заявки на участие в Летней школе принимаются до 28-го мая, конкурсный отбор будет проходить с 25-го мая по 10-е июня.
Списки участников школы будут составлены до 11-го июня. Результаты будут сообщены каждому участнику конкурса по e-mail.
 
В приложении информационное письмо о предстоящей школе и анкета претендента.
Заполненные анкеты и вопросы принимаются на адрес innl-schools@intel.com.
 
Полная информация о школе доступна на сайте: www.intel.ru/education - раздел «Студентам».
 
Приглашаем Вас принять участие в Летней школе и будем признательны, если Вы распространите информацию о школе среди своих сокурсников, друзей и коллег.

Дерзайте!

Tags: ,

Программирование

Материалы выступления на днях технологий Microsoft

by Игорь Лизунов 30.04.2009 17:21

29 и 30 апреля в ЧелГУ и ЮУрГУ прошли дни технологий Microsoft, я рассказывал там об ASP.NET MVC.

Материалы конференции (слайды и исходники) доступны для скачивания.

Вопросы по докладу можно задавать в комментариях.

Спасибо всем слушателям и организаторам — выступать было очень легко и приятно!

 

Спасибо BlogEngine.NET за основу блога.

Комментарии

Comment RSS