Блиин, как можно было губить такой бренд? Ему 40 лет как-никак, его знают все, кто хотя бы касался SICP, а тут теперь что-то невнятное.
Тем более слово "Scheme" читается вслух как «Ским», что мне весьма импонировало :)
Свои пять копеек
Saturday, 26 March 2011 16:46- 50% демонстрирует, что действительно стоит знать программисту, чтобы вообще называться оным.
- 30% показывает то, что надо знать, если столкнешься в жизни, а поэтому лучше узнать сразу и решать больший класс задач.
- чтение списка вызывает у большинства товарищей, называющих себя программистами, лютый баттхерт :)
- впрочем, баттхерт часто встречается и у адекватных и умных товарищей, но они делают что-то для его решения. Остальные срутся в камментах.
- вся эта прелесть прекрасно описывается и выучивается лет за 5-7 (с перерывами на сон, еду, личную жизнь и работу) до уровня "знаю, что это, понимаю, зачем надо, большую часть применял". В идеале хороший разработчик годам к 25-30 ориентируется в 75% теорминимума.
- все вышеперечисленное никоим образом не относится к клепальщикам Интернет-магазинов, систем автоматического документооборота Института Железобетонных Унитазов, и социальных игрушек "Почувствуй себя бомжом" во Вконтакте.
Quite a bit
Friday, 4 February 2011 22:16We then need to count the number of maximum matchings in this graph, and then we're done. Unfortunately, this is a #P-complete problem, and if we can solve it in polynomial time, we would have proved that P = NP. That would make this problem quite a bit trickier than the usual Division 1 Medium.
Слова, вынесенные в заголовок, отправили меня ржать под стол :D Почти буквально)
Мой очередной ночной труд. К сожалению, из-за того что на Хабре чертово драконовское ограничение на объем статьи, полностью осветить вопрос не получилось, пришлось пожертвовать парочкой параграфов (делить на несколько статей уж сильно не хотелось).
Но все равно, как по мне, получилось неплохо. Конечно, в первую очередь inspired by
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Ещё раз о C++
Wednesday, 12 January 2011 16:57Кстати, забавно получилось с грамматикой. В комментариях изрядно удивленный народ в шоке обсуждает «как же это так, контекстно-зависимый язык, как они там вообще компилятор-то написали, какая же это каша в нем творится?» У них в голове не укладывается :) Что же, вполне справедливо.
Моё скромное мнение
Tuesday, 11 January 2011 23:19Любой мой знакомый может сформулировать, что
«А - компактный ⇒ ∀ε>0 card { λ ¦ |λ|≥ε, Ax=λx } < ∞ ».
Но мало от кого можно услышать, что «У компактного оператора вне любой окрестности нуля лежит лишь конечное число собственных чисел».
"Ты и с дипломом программер херовый..."
Monday, 20 December 2010 00:49Не ходите, дети,
Лучше годные книжки читайте.
P.S. Трындец капустный, его еще и в топ выводят. Моя бы воля, стопиццот минусов поставил.
UPD: «Автор переместил топик в черновики.» Вот и славно.
О преподавании математики
Saturday, 18 December 2010 01:08В ней две статьи из далекого 1998 года. Одна написана великим В. Арнольдом, так и называется "О преподавании математики", вторая - "Пятое правило арифметики", Виктор Дос.
Я позволю себе привести избранные цитаты:
( Read more... )
С тех пор прошло 12 лет. 12 лет назад я проводил беззаботное детство в детском саду, и понятия не имел о том, как решать квадратные уравнения :) Зато умел складывать, умножать, вычитать, делить, возводить в степень обыкновенные числа и десятичные дроби, и считал это само собой разумеющимся и простейшим пареной репы. Последующие 10 лет в школе и (на данный момент) 2.5 года в университете показали мне, как и великим математикам - авторам приведенных статей - всю суровую правду жизни: взрослые люди спокойно остаются на том же уровне, если они не понимают, во-первых, зачем им это нужно, во-вторых, откуда оно берется.
Я периодически общаюсь со школьниками, только что поступившими в лицей, и конкретно в маткласс, из которого я имел удовольствие выйти в свое время. Между нами разница в несчастных 6 лет, но я в точности помню, что мы такими не были. У нас не возникало того древнего, как само образование, вопроса: «Зачем нужны доказательства?». Точнее, он возник, но гораздо раньше, и нам дали понять смысл интуитивно, самостоятельно позволяя выводить факты и обнаруживать эти прекрасные, удивительные вещи, связывающие все буйство и красоту науки математики. Науки, черт возьми, естественной.
Люди уже и у нас считают, что вся суть этих палочек и крючочков - взять и заучить, нигде в реальной жизни оно тебе после экзамена не понадобится. Как в том анекдоте про выпускника, который проволочку в форме интеграла один раз согнул, чтобы телефон из канализационного люка достать. Но это же зло, дети, зло.
Вы приходите на теорию вероятностей - и слушаете колгоморовскую аксиоматику и сигма-алгебру событий, после чего от вас требуют самостоятельно вывести на экзамене дисперсию и матожидание гауссовского распределения, паскалевского распределения, биномиального распределения, геометрического распределения, экспоненциального распределения... Но ни одна собака не заикнется про то, где же вы в конце концов столкнетесь с этими распределениями. Поток событий, приходящий не сервер не расскажут, марковские цепи и бесконечно повторяемый выбор между альтернативами - на самостоятельную работу, погрешности вам и так уже в общих чертах на физике год назад описали. Вы не научитесь читать диаграммы и графики. Вы не знаете, что такое репрезентативная выборка и почему этот кандидат в депутаты облсовета сейчас демонстрирует вам по телевизору откровенную бредятину. И упорно будете получать в телешоу козу вместо автомобиля.
На дискретной математике - одна абстрактная структура с ассоциативной операцией, другая структура с двумя операциями, одна дистрибутивна по другой, а если там есть еще и нейтральный элемент по второй операции, то мы рассмотрим наличие или отсутствие его делителей и получим еще два подвида абстрактных структур, затем добавим еще три аксиомы, получим общим числом восемь и выделим последнюю абстрактную структуру в отдельный предмет, потому что она реально вам пригодится и там будет рассказываться с примерами.... нет, ну ё-моё!!! А остальное, значит, не пригодится?! Галуа свою короткую жизнь положил на то, чтобы вы тут за один месяц научились бросаться умными словами вроде "идемпотентное кольцо" и ни на один жалкий грамм не понимали, какое реальное применение оно имеет к проектированию и при чем тут, например, текстуры на плоскостях в вашем любимом Контр-Страйке? И что общей формулы решения нет для уравнения выше четвертой степени, вам сообщили, вы со скорбным лицом покивали, подумали про себя "Если мне попадется уравнение на экзамене - значит, у него есть метод решения попроще, а там уже и Wolfram Mathematica справится..."
А потом людям рассказывают о силе и мощи функционального программирования, они обретаются к Хаскеллу, а там же, кирдык ему в печенку, монады, моноиды, категории, функторы, стрелки, и вообще всякие зигохистоморфические препроморфизмы! И паренек в спешке улепетывает обратно, к своему jQuery. Там не надо знать математику (в программировании! испокон веков точной дисциплине!). Там достаточно интерфейсики клепать.
И когда на Хабре выкладывается статья о MapReduce с гордым подзаголовком "попробую без зауми" - это, черт возьми, клинический случай. Народ не интересует, откуда это взялось. Не интересует, правильно ли это вообще. Не интересуют особые рассуждения и тонкие случаи. Не интересуют модификации теории под другие неожиданные приложения. Они честно уверены, что готовая формула, или, в нашем случае, алгоритм, втиснется в их сферу: заработает - круто, не заработает - найдем другую дллку, мало их на свете, что ли. Это кошмарно.
Как говорил один мой преподаватель с первого курса, глядя на то, как мы не в силах решить тупейшую задачу: "У вас есть уникальная особенность: вы совершенно не умеете писать". Именно это я сейчас и вижу в тех школьниках и первокурсниках, которые попадаются мне на глаза - на факультативах, при репетиторстве, просто так. Они не умеют писать - то есть расписывать. Брать формулировку и выводить из нее следствия, идя хоть в какую-нибудь сторону, пользуясь известными фактами. В таких случаях и говорят: "ответ на задачу лежит в условии задачи", только перепиши другими словами, пойми наконец взаимосвязь эту скрытую, красивую, между двумя разными областями знаний!!! Не видят. Не понимают. Не считают нужным.
Я помню, когда я впервые узнал, что свободно подвешенная за два конца нить располагается в воздухе по закону гиперболического косинуса. Не поверил. Сообща с преподавателем это дело потом было доказано, и я еще несколько дней находился под впечатлением красивого приложения к реальной жизни.
Сейчас прошло меньше года - до меня за это время наконец дошло, что взаимосвязи математики с физикой жизни есть и гораздо более потрясающие, и в больших количествах. Потому что так изначально заложено в природе обоих наук, в конце-то концов. Но тогда это меня потрясло - и я сейчас могу сказать, почему. Потому что система образования не больно-то балует нас подобными примерами в первые 10+ лет обучения, и мы учим математику как абстрактную игру, забаву, в которой можно свести к моделям и играться объектами, обозначаемыми маленькими латинскими буквами.
Я прекрасно понимаю потребность подобных шагов в XX веке, когда господа Кантор, Гедель, Гильберт, Рассел и прочая CS-компания своими совместными действиями породили третий кризис математики. Который, кстати, до сих пор не закончен, и полчища математиков-логиков и теоретиков Computer Science по всему миру пытаются найти модель ZFC, или найти иную аксиоматику с доказанной непротиворечивостью, или решить наконец, равны ли P и NP, или разобраться с континуум-гипотезой... Это правильно, это основания математики, это необходимо для того, чтобы мы были уверены, что все наши результаты верны и мы можем далее продолжать работать. Но на самом-то деле в большинстве случаев есть правдоподобное "доказательство" корректности и непротиворечивости абстрактной структуры: в реальной жизни у нее есть модель, которая ведет себя так или почти так, как и предсказывает теория. А что компьютер не всегда стопроцентно сможет доказать теорему - ну что ж, увы. Вы же не думали, что все будет так легко. В конце концов, этой "легкости" противоречит сама жизнь и физика.
Не надо переносить этот подход на образование. Дети и студенты - скоропортящийся материал, мы быстро приобретаем свой собственный набор ценностей, который легко может отличаться от общепринятого миром. И понимание математических принципов, которые "рулят" миром, и как именно и где они им "рулят", в последнее время совершенно не входит в необходимый набор. Что печально. И дает катастрофические результаты, как показывают все те же статьи, приведенные мною в самом начале.
P.S. Мой блог посещают не самые глупые люди, насколько я знаю. В том числе куча программистов и других околоматематических специальностей.
Мне очень любопытно задать вам все тот же вопрос, который задавал Дос французским студентам. Сможете ли вы внятно объяснить, а почему же синус 30° равен 1/2? Ответ в комментах спойлерите, пожалуйста (цвет фона == цвет текста).
(UPD: наличие этого вопроса в постскриптуме НЕ значит, что на остальные размышления в посте не надо пробовать отвечать и дискутировать!)
Мне хочется верить, что в данной конкретной (очень нерепрезентативной) выборке все будет хорошо.
Совершенно не так, как в высших учебных заведениях XXI века.
Независимо от страны.
Нашел в инете, powered by Анонимус
Friday, 17 December 2010 01:19В общаге питерского политеха в середине девяностых жил да был один приколист и выпендрежник, по имени, скажем, Ваня. Его общага представляла собой обычный коридор с комнатами по бокам и с кухней в конце. И вот однажды в середине зимней сессии Ване конкретно надоело учиться и он решил приколоться над своими корешами из комнаты напротив (К1).
Поскольку той зимой Ваня мастерил себе не то шкаф, не то антресоль, помимо досок у него еще имелась электрическая дисковая пила, очень внушительного вида, немецкой фирмы бош. Или сименс. Ее можно было запросто держать в одной руке и походить одновременно на Шварцнегера, монстра из компьютерной игры и манъяка из фильма Хичкока. Поэтому, недолго думая, Ваня взял пилу в правую лапу, провод в левую и с разбегу пинком открыл дверь К1. Пробежав до середины, он дико выпучил глаза и заорал что-то вроде "Асталависта, бэбиз", а может быть даже "Порешу, засранцы", при этом левой рукой вставляя вилку шнура в розетку. Оба его корня спокойно сидели у стола и учили конспекты, посему столь драматическое явление вызвало у них шок и отвисание челюстей. Первая часть плана блестяще удалась. Второй частью плана было избежать тумаков путем сдерживания с помощью размахивания работающей пилой.
И тут Ване не повезло. Несмотря на его судорожные усилия, полноразмерная евровилка буржуйского агрегата никак не хотела лезть в худосочную советскую розетку. У себя в комнате Ваня все розетки давно поменял, а потому возможность такой неувязки ему в голову не пришла. Осознав неминуемость катастрофы, Ваня пробормотал извинения и быстро выбежал в коридор, аккуратно прикрыв за собой дверь. Это не помешало ему услышать раскаты хохота пришедших в себя корней. Оскорбленный в лучших чувствах, Ваня закрылся у себя и начал обдумывать реванш. Для реванша он наметил другую комнату напротив (К2) и техническое усовершенствование в виде переходника, каковой и отправился искать.
Тем временем, корни из К1 решили зайти в К2, дабы поболтать и посчитать кое-что на компютерах, т.к. своих у них не было. Однако хозяева К2 сами мочили в Матлабе какие-то мощные интегралы и предложили гостям подождать, а заодно заварить чайку.
В это время, наконец найдя переходник, Ваня красовался с оружием перед зеркалом и проверял контакты перед штурмом. Дальше все пошло по обкатанному сценарию. Вынеся дверь К2, Ваня прокричал свою коронную фразу, ловко втолкнул переходник в розетку и застыл в леденящей кровь позе. На Ваню смотрело четыре пары охреневших глаз.
"Тем лучше" - подумал Ваня и нажал на спуск. Пила взвизгнула и умолкла. Комната погрузилась в темноту. Двухкиловаттная пила в сочетании с работающей электрогрелкой, чайником и двумя копьютерами вырубила предохранитель. Ваня попытался бежать, но не смог на ощупь отключиться из розетки, запутался в проводах и упал. Гости из К1 заржали, как лошади. Очухавшиеся хозяева схватили Ваню и с воплями "это был наш курсовик" начали мять ему бока. Поостыв, они пригрозили впредь за такие шутки подвергать ветеринарным операциям и отправились на щиток искать свой предохранитель. По возврашении их слегка утешил нервно хрюкающий рассказ гостей из К1 о предыдущей серии Ваниных похождений.
Финита ля комедия? Вы плохо знаете Ваню. Резонно рассудив, что его сегодня уже точно никто не чает увидеть повторно, Ваня решился на новый прикол. Выждав с полчасика пока, по его подсчетам, корни из К2 восстановят потерянные данные, Ваня взял удлинитель, размотал его из своей комнаты через коридор и снова вломился в К2. На этот раз там были только хозяева, которые при виде Вани рефлекторно схватились за клавиатуры и слегка побледнели. Тем временем Ваня заорал диким голосом "Что бл*ди, не ждали?!!", сделал вид, что включает провод в розетку и нажал на спуск. Пила послушно завыла над головами хозяев, разрывающихся между своими мониторами и сверкающим диском. Ванин триумф длился ровно три секунды. После чего из коридора раздались трехэтажные маты и звон кастрюли. Пила резко взвизгнула и смолкла. Дверь К2 снова распахнулась от пинка, и на пороге с криками "какой м*дак разбросал тут провода" появились два студиозуса. По законам жанра, ими оказались корни из К1, не дошедшие в своих шлепанцах до кухни через ванину времянку. Завидев посередине комнаты Ваню в до боли знакомой позе, они замолкли на полуслове и застыли на пороге, с головы до ног во вчерашнем супе. Хозяева К2 заржали, как лошади. Через несколько секунд на смех пробило всех присутствующих. Смеялись долго, до боли в животе и икоты. Сил бить Ваню ни у кого не было. Учеба в этот день явно закончилась. В наказание Ваню послали в магазин за пивом и пельменями, чему он, в принципе, был рад. Его шутка все же удалась.
Хабра-todo
Monday, 13 December 2010 02:26Это - список, себе на память, чтобы брать из очереди, как время появится.
- FParsec - "утереть нос" товарищу Дмитрию mezastel Нестеруку :)
- Списочные гомоморфизмы. Свертка. Сканирующие пробеги. Короче, основы Vector Models for Data-Parallel Computing, и немного про MapReduce с математической стороны вопроса.
- Структура данных Rope, на основании уже существующего моего цикла про декартово дерево.
- В рамках той же темы "Основы Computer Science: ликбез для птушников" - λ-исчисление, порядок редукций, теорема Черча-Россера, и как отсюда логически выходят потоки и ленивые вычисления. Ссылки на SICP и ПФП.
- (?) Что-то про теорему Райса и теоретически вычислимые алгоритмы. Можно и классы сложности упомянуть.
- Дерево отрезков.
- (?) Дерево Фенвика.
- Суффиксный массив, его применения. Возможно - суффиксный автомат и дерево. Уже почти год хочу рассказать, офигенная вещь ведь.
To be continued...
Цели курса
- Продемонстрировать непривычный подход к решению задач разработки программных систем, отличный от традиционно преподаваемого в учебных заведениях, однако набирающий популярность в индустрии Software Development.
- Привить умение анализировать поставленную задачу, выделять в ней абстракцию, производить разбивку на подзадачи. Дать понять преимущества манипулированиями абстракциями предметной области в коде, в отличие от низкоуровневых команд языка программирования.
- Научить использовать полезные идиомы, свойственные функциональному подходу, вне зависимости от используемого языка и решаемой задачи.
- Показать практическое насущное применение ФП. В числе примеров:
- Алгоритмы параллельного и асинхронного программирования, которые сейчас являются одной из наиболее активно исследуемых областей в IT. В курсе им уделено особое внимание.
- Принципы работы с объемными потоками/списками данных.
- Парсинг текста, создание DSL (Domain Specific Language).
- Познакомить с некоторыми математическими основаниями, на которых строится предмет Computer Science. Показать, что знания теории алгоритмов действительно применимы в практической разработке.
( Предварительные знания )
( Организация )
( Программа курса )
- - - - - - - - - - - - - - - - - -
Планируется к чтению вашим покорной слугой в следующем семестре на факультете ИПСА Киевского политехнического института.
В значительной мере основан на курсе Евгения
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Кто что скажет?
Как заставить Хиндли и Милнера молить о пощаде
Tuesday, 23 November 2010 20:03> let f0 x = (x, x);; val f0 : 'a -> 'a * 'a > let f1 x = f0 (f0 x);; val f1 : 'a -> ('a * 'a) * ('a * 'a) > let f2 x = f1 (f1 x);; val f2 : 'a -> ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) > let f3 x = f2 (f2 x);; val f3 : 'a -> ((((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))))) * ((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))))) * (((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))))) * ((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))))))) * ((((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))))) * ((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))))) * (((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))))) * ((((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))) * (((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a))) * ((('a * 'a) * ('a * 'a)) * (('a * 'a) * ('a * 'a)))))))
Если вам не жаль свой fsi.exe, можете пойти еще дальше:
> let f4 x = f3 (f3 x);;
Моя консоль честно трудилась 42 секунды, выводя тип этой функции на экран. В её возвращаемом значении 65536 упоминаний 'a.
Когнитивный диссонанс мобильных платформ
Sunday, 7 November 2010 01:01
Небольшой поток сознания.
После того, как я в целях эксперимента установил на свой HTC Touch Cruise на энное время поиграться Android, моя чувствительная душа разработчика ушла в полный когнитивный диссонанс, фрустрацию, шизофрению и аннигиляцию. Потому что эта платформа действительно прекрасна: удобная, быстрая, с интуитивно понятным и согласованным подходом к софту, с нормально заточенным под пальцы UI, и еще тоннами плюшек, плюшечек и тульских пряников. Фрустрацию создает набор факторов в придачу.
Во-первых, я последние три года (сознательная студенческая жизнь) программирую исключительно в стеке Microsoft. Однако в их последнее создание — Windows Phone 7 — я попросту не-ве-рю! Не верю, что на рынке займет достойное место это аляповатое создание, с безвкусными квадратными хабами, с неинтуитивной горизонтальной прокруткой и обрезкой в стиле "Мы не нашли другого способа показать пользователю, что справа еще что-то есть", с жесткой обрезкой нативных приложений (даже у вендоров руки по локоть кастрированы), с ненужной социнтеграцией, зато без многозадачности... в общем, вы уловили суть. Зато под него можно писать на Silverlight. Это, конечно, очень круто, я действительно люблю Silverlight, но виндофоновская система UI, общий вид элементов и идеология километрового скроллинга убивает напрочь все желание писать в ТАКОМ стиле приложения.
Во-вторых, что важнее: для нормальной разработки под Андроид нужен телефон на Андроиде. Любительские прошивки, портированные на левые девайсы, как показал мой опыт, имеют тенденцию в самый неподходящий момент внезапно умирать без предупреждения. А полагаться на один только эмулятор — глупо. Но, в силу того, что я много знаю, отчего нигде не работаю :) — купить еще один HTC не представляется возможным.
В-третьих, разработка под Андроид ведется на Java, которой я как бы классовый враг. Причем реальной основой нелюбви остается именно синтаксис языка и базовые библиотеки, ибо небазовые библиотеки — SDK, которое там очень продумано, ну а run-time вообще не касается обычной Java, приложения перекомпилируются в специальный андроидовский байткод, под их же виртуальную машину. MonoDroid еще пилится, и в любом случае будет платным. Нехорошо.
Но, с другой стороны, я прекрасно понимаю, куда ветер дует. Причем дует уже пару лет как, с момента появления первого iPhone. Вон и Вконтакте подал клич о поиске добровольца на Андроид-разработку, и конкурсы всякие везде объявляют... Да и самому хочется удобный нормальный телефон с полной свободой и горой функциональности. До сих пор идеальным вариантом в этом плане оставался Windows Mobile, несмотря на кучу его сопутствующих косяков. Теперь вектор сместился на новый идеал :) И я в тяжелых затруднениях...