Category: наука

Category was added automatically. Read all entries about "наука".

|, me, hikki, ok

Лабораторный тотализм как версия метода контроля над мозгами студентов

Вам никогда не казалось, что традиционный способ подготовки и сдачи лабораторных работ — это ад какой-то?

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

Во-вторых, принимать лабораторные в интерактивном режиме (когда студент сидит под боком) — стресс для обеих сторон. Если что-то не работает, то начинаются всякие fastfixы. Это раздражает. Время оборачиваемости fastfixов не даёт параллельно с принятием лабораторной заниматься чем-то полезным.

Наконец, студентов нужно заставлять приходить в какое-то определённое время и самому тоже заставляться. Обычно я веду себя добросовестнее студентов и прихожу раньше положенного, а когда все опаздывают, очень печалюсь, ибо 40 впустую потраченных минут я всегда мог бы потратить с пользой.
И вообще, тяжело заставить себя делать что-то, если знаешь, что через 30 минут нужно будет начать делать что-то совсем другое, и это совсем другое будет длиться очень долго. Как бы незачем загружать в оперативную память то, что всё равно будет из неё выгружено по мере делания совсем другого.

Барабанная дробь.

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

Вообще, чиста философски, я люблю Git (потому что формат хранения данных очень ня), но Меркуриал выруливает по нескольким причинам:
* его команды cli понятны даже детям;
* можно pushать в удалённые репозитории без головной боли;
* на всяких странных операционных системах не приходится ставить Cygwin.

Кроме того, что несчастные студенты узнают, что бывает не только svn (некоторые, правда, и этого не знают, но с каждым годом таких всё меньше), а для создания своего репозитория вовсе не нужно поднимать где-то сервер (для многих это оказывается божественным откровением), так ещё и задача проверки лабораторных сильно упрощается.

Можно пялиться на историю изменений. Плагиатить код, делая разумную историю, очень тяжело. Читерить, имея за спиной персистентную историю — тоже.

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

Можно править код и делиться патчами с выполняющим лабораторную (доброта mode on).

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

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

Можно не до конца специфицировать задание, а потом делать тесты, направленные на выявление неспецифицированного поведения. Два решения ведут себя одинаково на всех неспецифицированных тестах? Не плагиат ли?

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

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

И последнее. Я несколько лет назад делал чудесный конспект по своему предмету, но в процессе меня осенило, что писать очередной невнятный учебник мне не хочется. Предмет в достаточной степени устоялся, чтобы в базовой его части можно было найти приличное количество приличной литературы. Поэтому я написал ровно две лекции:
* про юридические ужасы и лицензии (чтобы попытаться разобраться в этом самому);
* про ABI и линковку (потому что, объективно, про это на русском языке нигде нормально не написано; правда у меня тоже очень хорошо не получилось).
Ещё я хотел было написать про файловые системы и всякие интересные смежные вещи связанные с RAIDами и durability, но интерес как-то поугас.

Поэтому несколько недель назад я решил не прятать от мира своё творение. Желающие могут проследовать на страницу конспекта на github. Там есть все исходники в ТеХе и уже скомпилированные pdfки.

Если у вас есть желание посмеяться над моим пониманием четвёртой части гражданского кодекса или немного просветиться (или снова посмеяться) по поводу Application Binary Interface, различных видов линковок (статическая, динамическая, динамическая линковка статических объектов, etc), релокации кода (PIC, GOT, etc), то милости прошу.
|, me, hikki, ok

Паттерны проектирования, гриды и прочая безответственность

В наш великий ВУЗ последние несколько лет с завидной частотой приглашают всяких дяденек прочитать лекцию на не то, чтобы на очень сильно ограниченные темы.
Скажем, в прошлом учебном году на лекции к третьему курсу заманивали учёных мужей Петербурга, не ограничивая их в выборе темы беседы, а в начале ноября — конце декабря этого учебного года соседняя кафедра проводила семинар по высокопроизводительным вычислениям, в связи с выигранным мега-грантом на приглашение зарубежного учёного.

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

Одним из фактов об этой стране, усвоенным на военных сборах, являлось то, что уйма граждан не может или не хочет даже выполнять своих элементарных служебных обязанностей. В принципе, это можно наблюдать в любом местном отделении какого-нибудь государственного органа, где никто не хочет ни за что отвечать, только целыми днями гоняют чай, а мою посылку из Китая, долетевшую в эту страну оттуда за сутки, «сортируют» на почте уже двадцать четвёртый день. Однако, если тут почти месяц лёжбыща мелкого пакета на складе вызывает народное недовольство, то в армии подобное поведение возведено в норму.
После последнего семинара во мне окончательно укрепилось мнение, что между многими учёными и виданными мной военными не такая уж и большая разница. Сейчас объясню почему.

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

В таком же смысле лямбда-исчисление и теория типов значительно проще, чем объектно-ориентированное программирование и паттерны проектирования. При этом, мне кажется, между первым—третьим и вторым—четвёртым куда больше сходства, чем может показаться на первый взгляд. В каком-то интервью (которое я не смог загуглить) вроде Simon Peyton-Jones говорил, что там, где ООП-кодеры начинают совать UML, хаскелисты расчехляют дополнительные стрелки в типовых аннотациях (вот ещё тред почти про это же на sof). Также и большинство паттернов занимается эмуляцией поведения шашечек из функционального мира (выборочно иду по часто упоминаемым из списка паттернов в Википедии): Adapter — замыкания, Interpreter — GADTs + eval, Listener (тут обман, его в списке в Вики нет) — замыкания, Mediator — ещё раз замыкания, Nullable — пахнет Maybe monad transformer, Proxy — тайпклассы и снова замыкания, Visitor — и тут снова тайпклассы. Ля-ля-ля, все всё давно поняли, а я — Капитан О.

Так вот, вернувшись на два параграфа назад, но глядя в список паттернов в Википедии (нет, там есть что-то осмысленное, но, в целом, один этот размер списка уже о чём-то говорит), нетрудно заметить, что эти паттерны проектирования — это философия какая-то, а совсем не математика. Конечно, философствовать куда приятнее, чем делом заниматься — сиди сочиняй себе паттерны. Частных случаев, выражающихся в случайной перестановке фич GADTs, замыканий, кванторов существования и прочей фигни высших порядков хватит на всю жизнь, можно не одну квази-интеллектуальную книжку по проектированию ПО написать. Тут же можно догадаться почему я там умолчал про всякие MV(C|.*).

В общем, наблюдается ярко выраженная любовь человечества к дисциплинам с огромным количеством мелких деталей, где можно строить из себя умного, вообще по сути ничего не понимая. В этом свете, любовь к преподаванию ООП на всяких «языках, используемых в индустрии», типа там C++, или Java, становится мотивационно оправданной: когда больше нечего сказать, можно пофилософствовать почему условие
(a < b) || (a == b) || (a > b)

для a и b целочисленного типа, может никогда не выполниться.

Надеюсь, я достаточно прямо выразил свою простую мысль: ООП, UML, паттерны и прочая «инженерия ПО» — это (за мелкими исключениями) философия, философия — не математика, программирование — математика. Любовь к такой философии легко объяснить отсутствием достаточного уровня абстрактного мышления, ибо ковыряться в деталях всегда проще, чем построить общую теорию. А работать-то не хочется.

Кстати, в этом смысле достаточно поучителен тот (исторический) факт, насколько сильно отличаются по количеству правил первые формализации систем типов для ООП-языков, и их современные версии. Об этом почему-то не часто вспоминают.

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

В заключение хочу отметить, что со времени последних постов, полных уважения к философии, я пришел к выводу, что всякие философы, любители UMLя, паттернов и прочей мути — вовсе не вредны для общества. Смотрите сами, если бы по мгновению волшебной палочки вдруг все фишеры и спамеры исчезли из сети, то люди так расслабились бы, что появление очередного вида мошенничества могло бы вызвать катастрофу глобального масштаба. Философия, РАЕН и ООП с паттернами просто необходимы обществу, чтобы у адекватных его членов не скисли мозги.
|, me, hikki, ok

Задачка

В четверг на военке компания увлечённых товарищей поделилась забавной задачкой:
«Доказать или опровергнуть, что у выпуклого многоугольника хотя бы одно ребро лежит на bounding box.»

Для общего случая решить не смог (порвал брутфорсом для треугольника и ромба), но нашёл в интернете, что это утверждение действительно всегда верно и доказано товарищами Freeman и Shapira в «Determining the Minimum Area Encasing Rectangle for an Arbitrary Closed Curve». Хотел было почитать их статью, а за неё везде денег просят. Она, блин, 1975-ого года. Эти буржуи совсем офигели, я считаю. Какая, нафиг, наука, если ничего нахаляву прочитать нельзя? А потом удивляются, что студент дурной пошёл.
|, me, hikki, ok

Сны

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

А потом то ли меня усыновили, то ли я сам выбрал куда усыновиться, но у меня перед глазами долго был список каких-то людей, отсортированный по размеру черепа. Потом я кого-то выбрал и была какая-то анимешная сцена встречи после долгой разлуки (мой персонаж там на Инуяшу был похож почему-то). А потом были прыжки с кувырками в полубесконечной комнате с оружием на диком западе.
|, me, hikki, ok

Пирамидки да календарики

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

Весьма часто, когда я прохожу мимо работающего в соседней комнате телевизора, там показывают какую-нибудь археологическую передачу (в спутнике даже целый канал есть почти только этому и посвящённый), где какие-то перцы ходят по всяким сооружениям из огроменных каменных глыб и рассуждают о том, как это всё построили и для каких целей. Мне всегда смешно и грустно смотреть такие передачи.
Не менее смешно и грустно смотреть передачи, где какие-то «алтернативно-одарённые» «археологи» рассуждают, о том, что расстановка пирамид/других штуковин на самом деле представляет созвездия «Ориона», строили пирамиды при помощи техники арендованной у инопланетян, и из соображений, что там по медианам этих конструкций течёт какая-то звёздная энергия, а такое расположение пирамид её усиливает и куда-то там направляет.

В аргументации первых «официальных» археологов меня всегда смущает их желание не признаваться, что на самом деле нихрена не понятно как и зачем это всё строили. Все крупные артефакты и сооружения у них списываются на какие-то религиозные обряды (никакой человек ни при каких условиях в здравом уме не будет камушком шлифовать мегатонную каменную плиту до блеска), а мелкие артефакты с непонятным предназначением, которые не вписываются в модель завязанную на какую-то непонятную религию, просто замалчиваются. Почему этим людям так важно придумать по некоторому подмножеству обнаруженных фактов и предметов какое-то объяснение каких-то общих механизмов работы всей древней цивилизации? Сам факт таких попыток абсурден и вот почему.
Мне на днях пришло в голову, что вся современная цивилизация начинается где-то от магнитных полей. Ну действительно, основная движущая сила, которой мы сегодня пользуемся — электричество, даже когда нефть или уголь какой-нибудь жжём, сначала зажигаем её электричеством, а потом процесс тоже электронно контролируем и электричество вырабатываем. В общем, текут себе электроны в магнитном поле по проводникам, им люди всякие препятствия выставляют, а в итоге получается побочные эффекты, которыми люди и пользуются.

А теперь представим, что текущая цивилизация погибла в ядерной зиме, люди ушли в горы, забыли об электронах и создали цивилизацию, которая в качестве основной движущей силы использует, скажем, движение снежных лавин. Например, втыкают они в гору столбики по определённой системе, потом вызывают лавину, а после её схода какие-то столбики сметает нахрен, а какие-то остаются стоять, так вот те, что остались стоять — результат вычисления чего-то при помощи лавины. И научились они таким способом страшные вещи вычислять, типа движений воздушных масс в горах, и всячески этими вычислениями пользуются для передвижений при помощи аэропланов. А потом эта великая цивилизация развивается до уровня, когда у неё появляется куча дармоедов, и некоторые их них начинают называть себя «археологами» и идут копать заснеженные долины.
И вдруг они обнаруживают мой пустующий дом, полный остатков компьютерной техники и гнилых книжек. Естественно, что они знать ничего не знают, что всё самое нужно хранится на каких-нибудь SSD где-нибудь в Eee PC (да и с неработающим Eee PC они сделать своими технологиями всё равно ничего не могут) и делают выводы о происходившем по единственной доступной для чтения ими информации — обрывке гнилой страницы из советской книжки по технике безопасности обращения с ПЭВМ. Из чего эти «археологи» строят теорию, что мой дом — это церковь, а современные люди были страшно религиозными, ибо приходили сюда и молились целыми днями перед клавиатурой и монитором, и так им это нравилось, что сами они стали изучать процесс воздействия молитв на организм, и выработали правила под названием «Правила обращения с ПЭВМ», для того чтобы не испортить себе зрения или каких других органов яростным компьютеропоклонничеством. А, например, PDA или ноутбуки использовались в качестве портативных молитвенников, если вдруг срочно припрёт помолится в дали от храма. Обнаруженные CD-диски они примут за метательное оружие для походов в лес на охоту за дичью. И конечно, остатки небоскрёба Охты-центра подскажут им, что в этих местах были железные горы и люди зубами и молотками выгрызали в них железные балки, из балок этих строили здания в 50 этажей, а потом покрывали их мочевыми пузырями буйвола, которые использовались в качестве стен и стёкол. И плевать, что ни одного мочевого пузыря найдено не было, ведь все знают, что стены только из них делать и можно.
А потом среди этой лавинной цивилизации появятся «алтернативно-одарённые» «археологи» и они, на базе клочка бумаги с моим рисунком графа для задания по «Языковым процессорам», который решили проигнорировать «археологи», сделают вывод, что компьютеры-молитвенники располагались подобно созвездию «Скорпиона», и позволяли не только молиться но и передавать ментальную энергию на большие расстояния.

Вернувшись в текущий мир, соответственно, в аргументации современных «алтернативно-одарённых» «археологов» меня не устраивает их любовь к описанию каких-то неведомых свойств раскопанных сооружений. Главное побольше туда разных невнятных энергий понапихать, упомянуть какие-нибудь формулы распространения чего-нибудь, потом сказать что-то типа «ну вот тут отверстие, из него эта хрень распространяется с квадратичным убывание мощности, потому тут нужно это отверстие и типа того» и сидеть довольному. Ну раз такие умные, то давайте составим какие-нибудь формулы, что-нибудь посчитаем, и посмотрим какая у этого предсказательная сила. «Сооружения использовались для манипуляций энергиями, о свойствах которых мы ничего не знаем», — скажут они. Тогда какие могут быть распространения с квадратичными убываниями? Какие оплавления краёв пирамид под воздействиями атомных взрывов от сопел космических кораблей? Какие космические энергии?

Короче, эта ваша археология, что официальном, что в альтернативном варианте какая-то абсолютная чушь, и уж точно никакая не «наука». «Не знаешь — не лезь», — я считаю. Копайте. Складывайте в музеи. Радуйтесь. Аминь.
|, me, hikki, ok

Восставший

Я восстал из почти мёртвого состояния, в котором пребывал последние два дня.
В этой вашей Москве меня как-то очень удачно продуло, на обратном пути (в ночь со среды на четверг) в поезде обдалбывался лекарствами, а с поезда сразу попёр на военку, где до конца как-то пребывал в сознании, пожёвывая таблетки. Зато через три-четыре часа после входа в дом я потерялся до сегодняшнего утра. Сейчас температуры вроде нет, горло не болит, но слабость, в остальном ооок.

Обещал написать свои научные впечатления о конференции. Так вот. Организована она была очень круто, и гостиницы там, и соблюдение временного регламента, всё оок. Но содержание докладов, как минимум моей секции, оставило весьма печальное впечатление. Не то, чтобы там был сплошной вздор, но, на мой взгляд, применение экстенсивных методов при решении задач верфикации — трудно назвать высокими научными достижениями. И постоянное нытьё по поводу отсутствия финансирования — тоже не ок.
Почему в (кажется) двух работах аксиомы классической логики применяли для доказательств утверждений о алгоритмах я вообще не очень понял, казалось бы там следует опираться на интуиционизм, но бумажную версию публикации я пока не прочёл.
Вот. А хоть как-то заинтересовала меня только одна работа, что очень печально.

За два дня удалось развиртуалить: товарища Комбинатора (которому спасибо за гидство, терпение меня и прочие плюшки), cyber_lyric и red_buttons.
Также передаю привет violentlyshine, которую я донимал смсками и в жжтолке.
yes, )

Очередной пост с глупым математическим юмором

Действующие лица:

Я — я.
Е — однокурсник.
Д — однокурсник.
А — однокурсник.

Действие происходит в левом аквариуме.

Д: — Вот в твоей бакалаврской есть какая-нибудь теорема и её доказательство?
E: — Нет.
Д: — Значит твоя бакалаврская — говно.
E: — А разве наличие какой-нибудь теоремы с доказательством делает любую бакалаврскую не говном?
Д: — Нет, наличие теоремы и доказательства — условие необходимое, но не достаточное.
Я: — Хорошо, тогда, допустим, я напишу бакалаврскую со следующей теоремой:
«Теорема. Эта бакалаврская — не говно.
Доказательство. Тут есть доказательство.»
Д: — *через смех* Это, сука, парадокс!
*3 минуты ржача всем аквариумом*

*.... какая-то болтовня о теме диссертаций в институте физкультуры ...*
E: — Ну так ведь на нашей кафедре делают элитных специалистов!
A: — Ладно, в какой области ты считаешь себя элитным специалистом?
Я: — Ну если продолжать предыдущую логику, то как на счёт «элитного специалиста в области считания себя элитым специалистом»?

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

Меня удивляет другое, откуда в моей голове появляются эти парадоксальные утверждения, когда я просто сижу и слушаю чужой диалог. Я даже не думаю о том, что они там говорят. Просто в какой-то момент — бац, и рот сам открылся и сказал, а я искренне посмеялся со всеми над своей же шуткой.
Раздвоение личности? Таки мозг — штука мистическая.