вторник, 26 мая 2009 г.

Управление

Не пугайтесь, когда не на месте закат, Судный день - это сказки для старших, Просто землю вращают, куда захотят, Наши сменные роты на марше. Володя. Хоть эпиграф немного не в тему, опишу свое видение слов "управление" и "контроль". Я ничего не скажу про "теорию заговоров", у меня нет мании преследования (ни я, ни меня), и вроде бы других отклонений (по крайне мере соответствующий специалист на мед. осмотре обычно пишет прикольную фразу, типа "припадки отрицает"). Начнем... У Вас наверняка есть мечта/цель: например, жить в загородном коттедже и ездить на какой-либо крутой машине. Вы уверены, что это Ваша мечта/цель? По мне, так это цель производителя машин и строителей. Это все наведено посредством рекламы, телевидения, книг. И какая бы ни была у Вас мечта, есть кто-то другой, кому хочется что бы у Вас это осуществилось (со своими корыстными целями). Жажда денег, власти... Это опять же стремление управлять и быть менее управляемым. Есть ведущие и ведомые. Ведомые отрываются на другом. Среди родственников с расстоянием не более 2 есть парочка таких, которым как только достается пульт от телевизора, ... Есть люди, которые замыкаются на компьютерных играх. Маленькие дети только и делают, что играют (понятно почему ? :) ). Если дальше продолжать по Фрейду, то программирование - та же самая безграничная власть. Захочу, будет так, а могу и вот так. И будет так, как я захочу. Поэтому, большинство не любит проблем, например, с железом. Так как они не контролируют ситуацию, а их контролируют. Из-за этого мне нравится ФП, и я ненавижу побочные действия, глобальные мутабельные структуры.

понедельник, 25 мая 2009 г.

Минимакс

Чем же бить? Ладьею - страшновато, Справа в челюсть - вроде рановато, Неудобно - первая игра. Володя. Сейчас не будет про теорию игр, альфа-бета отсечения и ретроспективный анализ. Будет про рекорды и антирекорды (минимумы и максимумы) некоторых видов программирования. Рассматриваются промышленное программирование против спортивного. Я еще как класс выделяю академическое программирование, но при сравнении почти не встретится. Рекорды спортивного программирования: - количество вложенных циклов = 13. Задачка как раз про теорию игр: на поле 4х4 выколоты 2 клетки. На поле расположено 2 фигурки из тетриса (которые буквой "Г"). За ход обязательно нужно поднять свою фигурку и переместить на новое положение. Проигрывает тот, кто не может сделать хода. Так вот, авторское решение (поляки вроде) содержало 13 (!) вложенных циклов 1..4. 4^13 = одному хорошему числу :) . Хотя, вроде, ретроспективой можно проще. - наибольшая размерность массива(количество измерений) = 5. Задачка была как производная баяна про небоскреб и кидание яиц, только посложнее (вход такой же, число объектов и этажей, оптимизировать надо кое что посложнее). Придумали только лень, где состояние задается кортежом из 5 элементов. Еще и напряги с памятью, пришлось хранить в 5-ти мерном массиве (даже 2 массива, так как еще булевский на "посещение" состояния), на хранение хеша не хватило бы. Как проще, я не знаю. Авторской решение такое же. - Встретилась вот такая конструкция: a[b[c[d[e]]]++] = x; С точностью до \alpha-редукции. Если будете реализовывать суффиксный массив по классической работе Манбера и Майерса, то что-то похожее у Вас встретится. У нас это реализовывал Артем (так как он первый вкурил эту работу), у него получилось a[b[c[d]]++][e] = x; Хотя в одной академической работе и MSU SE коде я встречал первый вариант. Антирекорды промышленного программирования: - в метод передается 29 параметров (почти все long). - класс с 380 + n методов - метод с 80 + n локальными переменными. Если Вы думаете, что это шутка, или в крайнем случае "индийский код", то, увы, это реальность. Сразу вспоминается про отрубание рук за воровство, запрет эвтаназии, мораторий на смертную казнь и УК РФ 105. Хочется всего, и наблюдать, медленно и мучительно... Еще раз, это реальный код одной довольно большой компании ( > 10000 человек). У них в списке заказчиков есть Аэрофлот, Федеральная налоговая служба РФ, Центральный банк Российской Федерации, Visa International. Так что не удивляетесь, если что не так. В том же списке есть и Coca-Cola, MS, Sun. Недолго видимо им осталось. В промышленности последние лет 15 рулит бизнес-логика (как я всегда говорю, бизнес минус логика). Все приложение - это одно большое ЕСЛИ. Правда, заказчик и сам не знает, что ему надо. И все ЕСЛИ поступают на вход динамически. Если бы (опять если) заказчик все знал как ему надо, то это было бы не сложнее простого конечного автомата. Выходит чуть посложнее. Все-таки за автоматным программированием (Шалытовское) в промышленности будущее. В промышленности (из-за отсутствия ясности у заказчика) тестов нет и быть не может. В спорте тесты есть :) . В академическом программировании тестов тоже нет, там уже формальное доказательство. По деньгам - в другом порядке. В промышленности они есть и довольно много, в спорте есть порядка 10 человек в мире, которые смогут жить на призовые (не то что бы у них потребности маленькие, призовых только на 10 человек хватит). У академиков деньги не платят за алгоритмы. Хотя, если Вы решите 3n + 1... Короче, спорт - это что-то среднее между промышленностью и академиками. Академики - это тот же спорт, только раз в полгода и на неделю. Когда муза в голову ударит. У Эрдеша (правда, он чистый математик, не cs) она (муза) сбежать не смогла. Подходя к эпилогу, хочется плюсов из всех классов программирования и отсутствие минусов этих же классов. Где ж такое найти?

воскресенье, 10 мая 2009 г.

Когда это все смотреть...

Сейчас я *не буду* подробно описывать голливудский ширпотреб, который я изредка смотрю (в среднем раз в 2-3 недели по фильму посматриваю, но почему-то с торрентов успеваю скачать раз в 10 больше, чем просмотреть). 
Обычно смотрю googleTech. 
Кстати, вне зависимости от пола, возраста, религии и уровня зарплаты, рекомендую 2,3,5...infinity. К теории чисел (как я сначала подумал) никакого отношения не имеет. Красотень! 
Посмотрел лекции Лекции на Малом мехмате МГУ &Лекции летней школы "Современная математика". В очереди уже полгода стоит питерцы (судя по всему, тоже очень много вкусного. Очередь начала потихоньку двигаться). Про SICP я уже говорил (ладно хоть успешно досмотрел). 

И вот сегодня наткнулся на продолжение Дубны. Тут часть я уже видел. Но, блин, сабж. Там же 80+n штук. При текущем графике я в состоянии смотреть со скоростью 1 лекция/день. Да и за 2009 год еще накинут. Очередь на 4 месяца уже есть. Лишь бы не найти чего-нибудь еще вкусного :) . 
Дубнинские лекции со своей спецификой: в отличие от всяких БКШ/ЛКШ/ЛМШ, в них нет олимпиадной направленности. Читают люди типа Арнольда, Успенского, Новикова, Матиясевича, и куча других громких фамилий (хотя это доступно для школьников/младшекурсников. На mccme и говорится, что для участников межнара по математике туда можно ехать на халяву, уровень не слишком страшный. По крайне мере даже я, вроде, все понимаю). Питерцы читают по cs направлениям. Там тоже далеко не дети читают. Жаль что в сутках всего 24 ч.[его-то], что из этих 24 приходится еще большую часть времени спать и ходить на работу. Что в у КПК иногда заканчивается батарейка, что в маленьких наушниках через час устают уши, а в больших ушах трудно смотреть лежа на боку на кровати.

воскресенье, 3 мая 2009 г.

Этот замечательный МИФ

А потом началось самое интересное... Наполеон. Речь пойдет не о стиральном порошке, а о серии "МИФ" Роберта Асприна. Хочется сообщить (правда, не понятно кому и зачем, но все равно хочется), что я таки прочитал ее (серию), что переведены на русский. 16 книжек. Теоретически, есть еще две, но они пока на импортном. Увы, серия уже не продолжится, уже примерно год как Асприн не присутствует в этом мире. Хоть МИФ и принадлежит к фэнтези, но это не "Кольцо" или "Гарри Поттер" (эти две я точно читать не буду). Это что-то на уровне "Кибериады" Лема ("Иона Тихого" отнесем просто к фантастике), или маленькой серии Стругацких ("Понедельник", "Сказка о тройке", "Сказка о тройке - 2"). А вот Вы знаете, что есть "Сказка о тройке-2"? Я совсем недавно узнал. Оказывается, это их цензура не пускала, они порефакторили так, что получилось самостоятельное произведение (по их словам). Если у Вас хорошая память, или Вы будете читать их сразу последовательно, то заметите ну очень большое сходство. Так что отложите на пару лет вторую часть. В чем фишка Асприна? Только ради эпиграфов к каждой главе... это стоит почитать. На питерских контестах в openCup к каждой задаче стояли те самые эпиграфы (видимо, Лопатин тоже фанат Асприна). Я из-за них и начал его читать. Втянулся :) . Хотя в одной книжке эпиграфов не оказалось, и еще две другие книжки как-то выпали из общей серии (никакие получились, у автора перерыв был). Все равно рекомендую. Философии, конечно, поменьше чем у Лема и Стругацких, но юмор на уровне. И еще немного противоречия. За последний год я не прочитал ни одной бумажной художественной книги. Ключевые слова "бумажная" и "художественная". Хотя я сегодня заказал одну бумажную, но не художественную. Всю художественную я читаю на соньке (Sony PRS-505), а не художественные - экранка/бумага. Опять же приведу пример, как я читал две страницы по теории чисел порядка 40 минут. Точнее прочитать то можно и за две, но нормально переварить это я смог в 20 раз медленнее. Так как в книжке порядка 700 страниц... она так до сих пор на полке и стоит, страниц 20 наверное прочитал. С художественными все быстрее, на соньке это менее 1 мин/стр. Правда, я теперь слабо представляю, сколько это в настоящих бумажных страницах.