?

Log in

   Journal    Friends    Archive    Profile    Memories
 

Внеочередное незавоевание Манхэттена

Mar. 25th, 2017 02:58 am Explorative search в школьном образовании и науке

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

Меня консерватизм в образовании, конечно, раздражает безумно, но в этом часто встречаемом возражении много логики. Школьников, безусловно, надо учить искать и читать информацию; это самое важное умение современного человека. Но человек гуглящий должен знать, что он ищет.

Впрочем, кажется, что современные технические средства можно приспособить как раз для исследования новых областей, когда ты ещё не знаешь, что именно ищешь. То, что называется "explorative search": ты тыкаешь пальцем где-то не слишком далеко от того, про что хотел бы узнать - и постепенно уточняешь своё представление о том, что тебе нужно. При наличии хороших инструментов это гораздо быстрее, чем прочесть весь учебник (и хорошо, если известно, какой). Если у вас есть онтология, описывающая растения, вы очень быстро осознаете основные признаки, которыми растения отличаются друг от друга и от других царств. Для этого достаточно ткнуть пальцем в капусту и посмотреть на названия признаков, которыми описывается это и любое другое растение.

Этот же алгоритм работает не только со школьниками. Когда я забуриваюсь в новую тему, первое, что приходится сделать - это изучить словарь области. Это позволяет понять, чем люди в области вообще занимаются и по каким ключевым словам искать материалы. Зачастую даже не нужно читать определение термина, хорошее название говорит само за себя. Так или иначе, когда пытаешься что-то изучить с нуля, первым делом тыкаешь наугад, и попадаешь далеко от реально интересующей тебя цели (которую пока и сформулировать-то не можешь). Не вижу, почему, если я, оснащенный только гуглом и википедией, могу войти в совершенно новую область, этого не может сделать семиклассник, оснащенный удобными поисковыми инструментами.
Вдохновляться тем, каким может и должен быть поиск можно в паре глав отличнейшего курса "Linked Data Engineering" по семантическим сетям. Там, понятное дело довольно базовые примеры, но дают почувствовать вкус мира семантического поиска. Я, конечно, рекомендую, смотреть курс целиком; это меняет взгляд на данные, на процесс поиска и на то, какой должна быть гибкость запросов.

Надо сказать, пока что действительно хороших инструментов для свободного поиска то ли нет, то ли я про них просто не знаю. У нас с Владом Стержановым с полгода назад фактически одновременно возникла мысль об инструменте для забуривания в новую научную область, который будет имитировать поведение человека: будет помогать искать ключевые работы, основных авторов, наиболее подробные обзоры, выделять действительно ключевые слова. Благо граф цитирований OpenCitations есть и доступен бесплатно без регистрации и смс. Кажется, Влад в этом направлении даже работает. Надеюсь, мы ещё увидим революцию в школьном образовании.

4 comments - Leave a comment

Mar. 7th, 2017 01:14 am Альтернативы E-mail, паранойи псто

Учитывая количество сервисов, которые "внезапно" закрываются, у меня возникает некоторая паранойя касательно почтового ящика. Я понимаю, что gmail едва ли закроется в обозримом будущем, но всё же. В современном вебе всё привязано к почтовому адресу, плюс ещё немного - к телефонному номеру.
Если вдуматься, это какое-то безумие: вы полностью зависите от вашего сервиса электронной почты. Он может забанить ваш аккаунт, может отказаться пропускать часть писем и, уж конечно, читает вашу переписку. Корпоративный ящик - так вообще лучше не использовать для любых дел, не связанных с работой, иначе смена работы может доставить некоторое количество дополнительной головной боли.
В общем, существующая система электронной почты ничуть не лучше классического vendor lock-а. Типичные мессенджеры, конечно, ещё хуже: у них вообще зачастую одна точка обмена сообщениями.
А есть ли какие-то способы вести переписку, и быть ей хозяином? Достаточно ли и необходимо ли заводить свой почтовый сервер? Есть ли шанс добиться этого, не разворачивая свой сервер и не находясь онлайн постоянно?
Возможно ли технически отбить уже существующий свой почтовый адрес у почтовой службы, чтобы письма уходили на мой сервер, не проходя через условный gmail? // Подозреваю, что DNS не даст, но я тут совсем не шарю, так что уточняю.

5 comments - Leave a comment

Dec. 22nd, 2016 04:30 am Всё больше неновости

Я не умею заворачивать свою жизнь в красивую обёртку и рассказывать, как я замечательно живу.
Трепаться-то я люблю больше, чем любую другую деятельность, но гораздо лучше умею слушать (и это довольно грустно). У меня происходит не очень много событий, о которых легко и зажигательно рассказывать, большая часть проектов - недострой долгострой. А про мелочи и рассказывать неуютно.
Но раз в год, наверное, можно и отшутиться про то, чем живу.Read more...Collapse )

Current Music: То, что хотел бы я высказать, высказыванию не подлежит

5 comments - Leave a comment

Nov. 6th, 2016 05:38 pm Ни единого разрыва (об индексации массивов в питоне/руби)

В питоне и руби есть очень удобная штука: индексация элементов массива с конца: последний элемент доступен как arr[-1], предпоследний по arr[-2] итд. Так вот. Это удобно, но, на мой вкус, совершенно ужасно для динамических языков.
Вот есть у вас целочисленный столбец, который вы считаете возможным использовать как индекс to. И предполагаете, что у вас нет нулей, поэтому с чистым сердцем пишете где-нибудь arr[from:to-1], а потом оказывается, что в одном месте почему-то to равен нулю и вы забрали вместо пустого среза почти весь массив. Напоминает прекрасную ошибку `size_t index = arr.size() - 1` (которую еще и маскирует название типа size_t вместо unsigned int). Вроде не в мире C/C++ живем, чтобы ошибка в индексе на 1 могла вызвать такой бардак.

Этот код, конечно, написан, неверно и криво, не учитывает граничных случаев, на него должны быть юнит-тесты и всё такое. Но когда занимаешься cheap-and-dirty анализом данных, нет нужды писать код сразу правильно и красиво, поскольку а)он одноразовый, б)ты не видишь, как устроены данные, пока не запустишь код.
Идеально было бы, чтобы на таком индексе программа падала, тогда достаточно было бы постфактум сделать поправку на наличие таких индексов, а не огораживать заранее код по всему периметру заборчиками, которые окажутся не нужны.

Решение проблемы, кстати, есть в матлабе. Для этого есть специальное слово для последнего элемента -- end. Последний элемент зовется arr[end], предпоследний - arr[end-1]. Более многословно, зато арифметика индексов обладает своеобразной "дискретной непрерывностью", и не имеет адовых разрывов между индексами 0 и -1.
Правда есть еще один минус: end придется делать либо встроенным спец.объектом (так себе вариант), либо ключевым словом (совсем плохо). Это может сделать несолько более сложным переопределение оператора индексации. Впрочем, не так уж часто это требуется, чтобы этот кусок кода не продумать тщательно.

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

13 comments - Leave a comment

Oct. 22nd, 2016 01:58 pm MOOC не ок

Я очень восторженно отношусь к MOOC-ам и рад, что у огромного числа людей есть принципиальная возможность изучать курсы лучших преподавателей, не вылезая из родного ПГТ. Но я совершенно не верю, что они могут заменить нормальное очное образование. Быть вспомогательным инструментом они должны несомненно. Но перевести нормальное очное образование на MOOC-и невозможно без дичайшей потери качества. Особенно школьное образование.
Во-первых, потому что мотивация в онлайне слабее; я и сам до конца смог пройти лишь один онлайн-курс. Во-вторых, потому что образование - очень индивидуальная вещь, а лектор не может подстроиться подо всех. Что радует, авторы некоторых популярных онлайн-курсов, придерживаются той же точки зрения ;)
Кстати, автор той статьи высказал буквально дословно мою мысль о том, что образование - одна из немногих сфер деятельности, которую не заменят роботы. И в этом, надо сказать, спасение нашего уклада жизни. У нас есть большой потенциал, куда девать рабочие руки, которые освободятся в процессе модернизации: делать образование все более и более индивидуальным, делая классы по пять человек и даже проводя занятия один на один.
Так что профессия учителя не только не вымрет с появлением онлайн-платформ, а скорее наоборот расцветет, хотя и будет нести совершенно не тот смысл, какой несет сейчас (учитель как хранитель/ретранслятор знаний).
Если что я тут не про современную Россию с её низкооплачиваемыми учителями, работающими на несколько ставок в гигантских класса, а про мир лет этак через 20-30. Но чтобы через 30 лет у нас было нормальное массовое образование, нужно уже сейчас менять педвузы и готовить огромное число учителей для учителей.

2 comments - Leave a comment

Oct. 18th, 2016 01:15 am КПД, помноженный на ноль

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

РАНовской кафедре истории и философии науки стоило бы разрешить в качестве альтернативы написанию реферата писать или дорабатывать статьи в русской википедии. Если человек пишет статью в английской википедии, то экзамен по английскому, кстати, тоже можно было бы зачесть. По грубым оценкам, в РАН ежегодно защищается полтысячи кандидатов наук. Аспирантов первого года учится в академических институтах раза в три больше. Только представьте себе: полторы тысячи человек, обязанных под контролем научного руководителя, преподавателя и сообщества википедии написать связный текст про свою науку, подкрепить его ссылками, прошить гиперссылками и выложить в открытый доступ.
Да у нас был бы эпический рост объема и фатальное улучшение качества доступной информации по современному состоянию науки. А может и академический русский язык вымирал бы медленней впрочем, это как раз минус.

p.s. Кстати, написал на почту кафедры своё предложение. Авось лет через десять, когда даже старпёры из отечественных НИИ начнут воспринимать википедию как нормальный источник информации, вспомнят, что какой-то фрик писал им странное предложение и сделают шаги навстречу открытым знаниям.

upd: Кстати, в википедии по машинному обучению множество статей сделано студентами в качестве зачетного задания.

4 comments - Leave a comment

Oct. 11th, 2016 12:29 am Open Access и стоимость рецензирования

Этот пост - продолжение предыдущего про научные публикации.
Как многие знают, есть такая модель издательства литературы как Open Access (OA). Люди не сталкивающиеся с наукой обычно полагают, что это бесплатные научные публикации, что является неправдой. Это модель публикаций, при которой чтение статьи бесплатно, а публикация требует денег, и немалых.
Существует довольно высокорейтинговый журнал eLife, который существует чуть больше трех лет и все эти годы был бесплатным для обеих сторон: и для читателя, и для авторов. Это, конечно, было не бизнес-моделью (в лучшем случае, способом рекламы), а результатом щедрой спонсорской помощи. Недавно они опубликовали отчет о своих расходах и спустя какое-то решили сменить модель своей работы. По плану eLife собирается брать с авторов статей, принятых к публикации по $2500, что покрывает часть(!) расходов на публикацию. Более точно, это стоимость, которую публикация одной статьи прибавляет к стоимости функционирования журнала. И даже это - дофига!
В ответ на статью eLife вышла совсем уж мрачная статья, которая обвинила eLife в преуменьшении расходов и создании ложного впечатления, что с такой ставкой можно нормально работать. Мол, если вы не имеете спонсоров, то на отбор и публикацию статьи уходит 6-7 тысяч долларов. Авторы утверждают, что некоторые издательства дотируют свои OA-журналы за счет доходов от своих журналов по подписке.

Я не берусь делать какие-то рассчеты, но откуда вообще берется такая стоимость публикаций? В первую очередь это оплата труда редакторов. Перед тем, как принять статью или отклонить, редактор её должен прочесть, а это процесс тяжелый и небыстрый. Иногда и не один редактор должен её прочесть - еще перед тем, как отправить статью на рецензию. В высокорейтинговых журналах на одну принятую статью приходится по 5-15 отклоненных. И, кстати, не всегда это плохие статьи; иногда просто не прорывные или не очень подходящие аудитории журнала, или не "вау-статьи" (случаи, когда прорывные статьи отклонялись крутыми журналами и публиковались в малоизвестном журнале, хорошо известны науке). Автору это дает "видимость": в крутом журнале его прочтут все а в "вестнике сельхоз академии" - никто. Современные системы поиска публикаций несколько сглаживают ситуацию, но все равно, авторитетность журнала является неплохой прокси-характеристикой значимости статьи и влияет на решение о том, читать ли статью: "окупит ли полученная информация время на прочтение".
Соответственно стоимость публикационных издержек линейно растет с качеством отбираемых статей. Решение известно и даже где-то применяется: брать стоимость рецензирования при подаче статьи - тогда вы платите только за редактуру своей статьи. Всем хорош этот вариант: стоимость снижает на полпорядка, а еще сильно смягчает внутренний конфликт интересов OA-издателя между "принять статью и получить деньги" и "отклонить статью, нарастить репутацию". Но эту модель сложно продать людям, поскольку вы мучительно верстаете статью под нужный размер-формат, платите деньги, а гарантий, что ваша статья будет опубликована вам не дают. Научная работа - всегда некий риск, что ничего не получится, но я отнюдь не уверен, что многие ученые любят рисковать деньгами.

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

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

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

В дополнение к оплате рецензирования при подаче и рекомендательным системам, стоило бы разрешить не переверстывать статью до концептуального решения "берем/не берем". Потому что написать статью на две страницы, четыре страницы или без ограничений размера, с разными лимитами на числа картинок, длину абстракта и прочее - это огромная работа. Я помню, как мы написали статью в журнал с лимитом размера, а когда статью отклонили и мы её переделывали для другого журнала - она выросла в размере в три раза. Меж тем, её размер слабо влияет на заинтересованность журнала: она либо подходит по тематике и качеству, либо нет. Cover letter и грамотная структура позволят потратить сходные усилия на первичную оценку качества материала статьи любого размера.

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

Не могу отступиться от давней традиции в одном посте намешать кучу всего не относящегося к друг другу, но кое-как приклеенного сбоку.
Продолжая тему качества статей, стоит сказать, что статья не обязана быть хорошей целиком. Иногда в статье (как в моём посте) намешана куча разных исследований разной степени проработанности. Однако рецензируется, публикуется и цитируется статья целиком.
Недавно в сообществе семантических сетей возникла идея нанопубликаций - минимальных единиц информации к публикации. По понятным причинам, семантические сети наиболее активно проникают в такие науки как молекулярная биология и генетика. Полагаю, что сама идея нанопубликаций возникла у биологов. На сайте, посвященном им, приводится следующий пример: "Аллельный вариант такой-то имеет ассоциацию с болезнью такой-то c P-value таким-то (+ метод получения данных + публикационные данные)" . Из подобных утверждений строится здоровенный граф всего, что известно про эту болезнь, этот белок, аллельный вариант, ткань итд. А дальше у вас появляются и нормальные механизмы поиска информации, логического вывода, поиска концов. Сейчас найти гуглом информацию, зарытую в supplement в экселевскую табличку (сконвертированную в pdf без текстового слоя, ага, видели-знаем) решительно невозможно. Я пока не особо вдавался в эту тему, но звучит многообещающе.
Так вот, отдельные эксперименты в рамках одной статьи (а значит и поднаборы нанопубликаций) вполне можно рецензировать отдельно, как разделы статьи. Это добавит слой надежности семантическому графу научных данных. В том море информации, которое генерирует современная наука, это становится необходимостью.

Leave a comment

Aug. 30th, 2016 10:27 pm Только и исключительно наукой?

Вот avva по мотивам интервью с Куниным написал пост про очень знакомое мне ощущение, что "в жизни можно заниматься только и исключительно наукой, а если не сложится, то беда".
В своём детстве я часто бывал у родителей на работе. Мама занималась органическим синтезом, папа - ЯМР-спектроскопией. Посмешивать что-нибудь в пробирке мне самому не давали, но лабораторную жизнь у меня была возможность наблюдать часами. Смотреть за сложными химическими установками, разглядывать хроматографические пластинки и поиск сигнала в спектрах и даже немного помогать отцу с установкой спектрометров. Не сказать, чтобы я что-то понимал, но к концу школы точно знал, что хочу заниматься наукой и ничем другим. Честолюбив и оптимистичен, я, как все нормальные пацаны, мечтал получить Нобеля, причем не просто так, а за дело. Но достойное дело до сих пор (пока) не подвернулось.
Мне повезло, я даже точно знал, какой наукой я хочу заниматься: физика и математика, в этом у меня не было ни малейших сомнений, так что вопрос выбора университета стоял просто: МФТИ или мехмат, никаких абитуриентских страданий "а не пойти ли мне в геологию?.. или в живопись?" передо мной не стояло. И это был лучший расклад, какой я могу себе представить. Я сейчас занимаюсь вычислительной биологией и обыкновенным программированием, но по-настоящему я до сих пор люблю именно физику и математику. Несмотря на то, что мозгов и усидчивости на занятия теорфизом и математикой мне не хватило, направление учебы ни на что бы не променял.
К концу бакалавриата я уже довольно хорошо понимал, что я не хочу идти в науку. Про себя я понял, что мне интереснее изучать чужие достижения, чем самому что-то открывать. Особенно, если это какое-то мелкое уточнение, которое не принесет счастья всему человечеству разом и прямо сейчас. И всё-таки я попал в науку. Попал в значительной степени случайно: знакомый искал программиста для выполнения одной довольно занудной прогерской задачки. Потом стало интересно, и я втянулся.
Вот уже пять лет я занимаюсь биоинформатикой. Это не только наука, но и технология. Но и наука тоже. С тех пор я что-то узнал про молекулярную биологию и генетику. Крупных открытий не совершил, но некоторое количество кирпичиков в стену современной науки положил и какие-то детали устройства мира успел посмотреть вблизи. Мое школьное желание заниматься единственным по-настоящему стоящим делом - наукой - в общем и целом можно считать удовлетворенным.
Впрочем, это меня сейчас уже волнует довольно мало. Главное, что я понял за последние несколько лет - это то, что наука - лишь один из многих способов прожить стоящую и интересную жизнь. Для меня это совершенно точно не единственный способ. Просто наука - один из самых очевидных способов тешить своё любопытство и попутно сделать что-то для собственного бессмертия и остаться в истории: носителем открытых явлений являются сами законы природы, которые фиг отменишь. Но что, неужели вне науки мало интересных и стоящих задач, на которые не жалко потратить жизнь?
Это какая-то нездоровая мысль про "только и исключительно наукой". Очень жаль, что в околоакадемических кругах её принято скорее культивировать, чем искоренять. Сколько людей сидит с этой жуткой мыслью "если заниматься не наукой, то просто беда"? И сколько из них не занимается наукой?

7 comments - Leave a comment

Aug. 25th, 2016 02:11 am Пользы пост - исторические визуализации и работа с данными

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

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

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

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

  • Есть карта Running Reality с весьма подробной разметкой территорий. Проект хочет описать историю вплоть до истории улиц и для этого позволяет вики-редактирование карты (как я понимаю, не в веб-версии). У них довольно бедная визуализация исторических данных, зато очень грамотная модель данных, которая позволяет описывать альтернативные ветки истории. Они пишут, что веб-карта сильно урезана в возможностях по сравнению со standalone. Впрочем, standalone-версия так же бесплатна, как и веб.

  • Карту geacron я нашел давным-давно. Она нарисована историками по источникам и атласам, а значит, вероятно, что она точнее других отражает историю. Но интерактивности этой карте серьезно не хватает. Помимо режима карты, на сайте есть timeline по исторически значимым периодам. Уныло, зато приоритезировано настоящими историками.

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

  • Проприетарный атлас CENTENNIA без веб-версии.

  • Timemaps - слабенький клон geacron-а.


Вторая к категория - разное. :)

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

  • Wikijourney - карта с геотэгированными вики-статьями про эти места. Предполагается, что она используется для достопримечательностей, но в википедии есть статьи чуть ли не о каждой улице Москвы и о каждой станции метрополитена - так что я вижу вокруг себя довольно бытовой список "достопримечательностей". На вышеупомянутом Chronoas'е, кстати, на карте тоже есть фотки, как-то отнесенные к месту-времени. Отнесение ко времени довольно условное, сколько там этой фотографии лет?.. Но вообще подобных сайтов много

  • Инструменты визуализации данных гуманитарных исследований. Последние полвека существует наука "Digital humanities" -- компьютерные методы гуманитарных исследований. Я бы сказал, что эта наука еле теплится, судя по тому, как мало сделано до сих пор... но тем не менее. Так вот, для историков, филологов, археологов и прочих специалистов разработано некоторое количество инструментов визуализации. Большей частью это визуализации всяких связей между объектами. В графе, на карте, в облаке тэгов, во временной перспективе итд.
    Например, Стэнфорд разработал ряд подобных инструментов (я несколько раз натыкался на упоминание их инструмента Palladio, видимо это главный их инструмент).
    Также есть проект NodeGoat -- они хорошо заточены под визуализацию linked data. На картах здорово смотрится, хотя путешествовать по ссылкам на привязанные объекты не слишком удобно.


Третья категория - моя любимая; за ней будущее, определенно. Linked data. Размеченные графы знаний, семантические сети, вот это вот всё. Одна из ключевых проблем со связанными данными - сложность обучения. Кажется, за пару недель я более-менее освоился и готов помогать другим войти в этот удивительный мир.
Технологию семантических сетей берут на вооружение все крупные поисковые и информационные системы. В частности, сейчас многие учатся переводить естественный язык в формализованные запросы такому графу. Наверняка, всякие следственные органы и разведывательные службы пользуются этим (учитывая, что один из самых популярных графов знаний делается по CIA Factbook). Можно придумать миллион способов использовать эту технологию в любой аналитической работе.

  • Есть отличнейший туториал "Using SPARQL to access Linked Open Data"(на сайте The Programming Historian) о том, что такое linked data, и зачем они нужны. Я считаю, что каждый образованный человек должен выучить основы SPARQL, так же как каждый человек должен уметь гуглить. Это буквально про то, как строить сложные и мощные поисковые запросы (см. примеры ниже).
    Скажу честно, материал сложный: формат данных RDF, онтологии и язык запросов SPARQL. Пока я не нашел эту статью, я мог только восхищаться тому, как круто люди им пользуются, но вообще не понимал как это заставить работать. The Programming Historian дает сложный материал на очень понятных примерах и показывает, как этим пользоваться.
    Их сайт, кстати, небезынтересен уже своим названием. Они учат историков пользоваться вычислительными инструментами и программированием для исследований. Потому что капелька программирования любую работу делает проще.

  • Примеры запросов, чтобы проникнуться мощью инструмента. Не стесняйтесь нажать "Run". ;) В окошке запроса можно мышкой наводить на идентификаторы - во всплывающей подсказке вам покажут, что скрывается за загадочными wdt:P31 и wd:Q12136. Ну, например, запрос, возвращающий всех женщин-мэров крупных городов или композиторов, озвучивших более 100 фильмов. Или мой личный запрос о причинах смертности киноактеров, помимо болезней.

  • Сами провайдеры данных - стремительно развивающийся вики-проект Wikidata и сходный проект dbpedia ставят своей целью оцифровать википедию и сделать её машинночитаемой. Наш исторический проект намерен к этой движухе присоединяться. Еще есть всякие более консервативные источники данных, поддерживаемые музеями - про коллекции объектов искусства и археологии, словари географических названий и биографий. И наверняка еще много чего другого. Гуглить по словам "SPARQL endpoint".

  • Неплохой пример того, где используются linked data - это PanamaPapers. Чтобы исследовать такой здоровенный массив документов они вносят в него связи в формате сходном с RDF. Визуализируют как граф. Не идеально, но имеет смысл посмотреть, чтобы потрогать структуру руками.

  • upd: Хороший вводный урок о том, как делать запросы к викиданным, а затем визуализировать их в histropedia.

3 comments - Leave a comment

Aug. 1st, 2016 08:04 pm Слон (часть 1)

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

Вообще же школа получилась достаточно большой и чертовски продуктивной. Признаться, когда после первой контрольной даты, нам сдало задания 4 человека, мы думали отменять смену... но в итоге у нас набралось 36 школьников. А это значит, что можно а)делать школу дешевой, б)делать не два-три проекта, а столько, сколько захочется. А еще у нас откуда-то появилось немало 7-8 классников так что еще пару лет "Слон" не вымрет как мамонт. Мне как человеку, который немного, но занимался рекламой Слона это приятно. :) Хотя объективные данные и говорят, что "виноваты" в масштабе школы не мои усилия, а сайты ЛКШ и МЦНМО.

Дополнительно меня радует, что на Слоне можно вносить смуту проводить эксперименты. Формат медленно, но верно меняется.

Про учебуCollapse )
Продолжение - про мой с Пашей проект

Tags:

13 comments - Leave a comment

Aug. 1st, 2016 07:58 pm Слон (часть 2). Проект "Что, Где, Когда" -- интерактивная историческая карта

Лень читать? Клацни сюда! Пока вы не бросили читать, кликните на ссылку с результатами проекта.

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

Read more...Collapse )

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

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

Если вы хотите предложить идею или пожаловаться на баг, смело предлагайте! Если вы умеете писать в багтрекере (он расположен там же где репозиторий, см.ниже) - то прямо туда пишите. Если не умеете, то в пишите в комменты.
Жизнь проекта продолжается и после школы, хоть и в другом ритме. Несколько школьников решили присоединиться к проекту после окончания "Слона". Если и вы хотите, контрибьютить - юар велком. У нас в репозитории анархия, зато скучно не будет.

p.s. Пользуясь случаем, хочу сказать, что Оля, Наташа, Андрей и Мыш - крутые молодцы! А Паша - отличный прожект-менеджер (руководитель проекта, если по нашему).

Tags:

11 comments - Leave a comment

Jun. 19th, 2016 09:19 pm Меня посчитали

Насмешливо требует: "Выбери! Выбери! Выбери чёт или нечет". (М.Капустин)

Несколько лет назад от человека, которого я уважаю, услышал резкое осуждение морального релятивизма. С тех пор я регулярно спорю с этой позицией в своей голове; просто не понимаю, а как можно-то без релятивизма: ну невозможно же быть "заточенным в одномерной темнице".
Индуцированная вопросом редукция состоянияCollapse )

11 comments - Leave a comment

Apr. 30th, 2016 06:51 pm О научных публикациях

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

Разрозненные мысли о том, что с нами не такCollapse )

4 comments - Leave a comment

Apr. 13th, 2016 01:02 am Программистское

Хотел сделать на Слона лекцию про типы данных в программировании. А то посвящают им пять минут на первом занятии и идут дальше. Этакую практико-ориентированную сборную солянку, чтобы понимали:
- чем дихотомия статическая-динамическая типизация отличается от дихотомии явная-неявная
- почему примитивные типы могут вызвать много боли, как можно и нельзя обеспечивать приведение типов. Как понимать nil и как бороться с ним
- иммутабельные объекты
- who is интерфейсы и who is реализация
- откуда берется ко- и контравариантость наследования шаблонных классов
- класс классов и статические методы
- что такое функциональный тип
- как юзать простые монады
- и много чего еще

Поначалу я думал про одну лекцию, потом про две, потом про три трехчасовые и не в одиночку. Сейчас думаю, не сделать ли спецкурс на все время школы...
Попутно, чтобы не быть необразованным чудовищем, которое учит тому, чего само не понимает, учу clojure и читаю TAPL ("Типы в языках программирования" Б.Пирса). Дошел до бестипового лямбда-исчисления. Неимоверно красиво, конечно, как в такой простой системе реализуется полноценная арифметика. Но этого школьникам давать, пожалуй, нельзя.
Следующим пунктом обязательной программы я для себя давно наметил Haskell. Основы я понимаю, но всерьез на него пока не смотрел. Посоветуйте действительно хороший учебник, чтобы полноценно изучить язык вплоть до внутренностей и не тратить время на чтение разъяснений "для маленьких"?

12 comments - Leave a comment

Feb. 4th, 2016 03:10 am Кооперативные и некооперативные спектакли

Есть спектакли, в которых несколько историй разворачиваются параллельно, устраивая этакую "перекличку" героев. Я очень люблю любые сочленения сюжетов и переходные формы, так что мне подобные сценарные ходы кажутся крайне изящными. Это могут быть диалоги на две пары человек, находящихся в разное время (или в разных местах), но говорящих на сцене одновременно -- как в "Аркадии". Или может быть набор историй, побитых на сцены, которые сменяют друг друга, переводя зрителя от одной истории к другой и обратно -- как в недавно смотренном "Чехов. Gala". Красиво и здорово, как я уже сказал, но это понятный и давно известный жанр, когда сцены дополняют друг друга. Кооперативная, срежиссированная игра.
А вот что мне хотелось бы посмотреть - это как играется спектакль, побитый на сцены, но в котором связки между сценами не прописаны режиссером. Такой, что задача каждой группы актеров - аккуратно и красиво увести внимание зрителя на свою историю, заставив остальные группы притихнуть и освободить сцену (или тихонечко выжидать на заднем плане, чтобы вовремя суметь перехватить инициативу, занимаясь незначимыми, но вписывающимися в сюжет действиями). Поймать логическую паузу в чужой игре - и вклиниться. Это ж бесконечный простор, один единственный спектакль на две-три группы актеров можно разыграть немыслимым числом способов! А если перед спектаклем еще и тянуть жребий, какая пара спектаклей из, скажем, пяти возможных играет - то можно на один и тот же набор спектаклей несколько лет подряд ходить.

1 comment - Leave a comment

Feb. 1st, 2016 12:49 pm Ларёчные огорчения

Методы работы московских властей - бандитизм не только по содержанию, но и по форме. В рамках борьбы с покупкой пирожков и прочих радостей жизни, снесли киоски на Ленинском проспекте. Снесли в своей обычной манере: разнесли десяток киосков у метро в щепки. Как обычно, никто не озаботился тем, чтобы разобрать киоски, вывезти. Нет! Надо чтобы по тротуару валялось битое стекло, разломанные полки прилавка поверх зимней слякоти. Впрочем, я и не видел, чтобы московские власти это когда-нибудь делали по-другому.

upd: История получила продолжение: власти Москвы снесли всё и везде. Мрак. Причем, судя по всему снесли законно возведенные постройки незаконным образом.

2 comments - Leave a comment

Dec. 29th, 2015 03:05 am Скрытая стоимость режимов и наша главная проблема

Сабж - это две несвязные темы, если что.

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




Если бы меня попросили описать современную Россию двумя словами, то я бы отправил к известному предсказанию Салтыков-Щедрина. Если бы меня попросили описать одним словом, то это слово было бы "некомпетентность". Серьезно, это главная объединяющая черта всего, что происходит вокруг.
И главная беда, что это касается не только госсектора, а всей страны: властей и оппозиции, топ-менеджеров и простых рабочих, учеников и учителей. Меня пугает, что процентам 10-20 даже моего первого круга (не самая пропащая, прямо скажем, выборка) я не могу доверить ничего и никому не могу порекомендовать взять их, например, на работу. // Если подходить с должным уровнем перфекционизма, то я и сам не попаду в список компетентных лиц, а 10-20 процентов вырастут до 50-70.
Больше всего, конечно, вредит полная некомпетентность "эффективных менеджеров", которые за десятилетие так и не смогли осознать, что поиск экстремума единственной характеристики -- средний балл ЕГЭ, количество цитирований, средняя зарплата, количество раскрытых преступлений -- способен разрушить систему как работающее целое. (Для иллюстрации посмотрите на внешний вид лис, которых отбирали руководствуясь только по принципу дружелюбия). Менеджеры, которые не в состоянии даже понять, что любая система - это люди, а не только правила. Пардон, они вообще учились хоть чему-то, если этот базовый принцип от них ускользает? Но и инженеры не отстают. И учителя - днище. Гуманитарное образование в России вообще за пределами пары кафедр, похоже, не существует. Качество дискуссий об устройстве общества - ниже плинтуса. Институту репутации, кажется, просто неоткуда взяться при таком уровне непрофессионализма.
Печалька, товарищи.

3 comments - Leave a comment

Nov. 18th, 2015 05:10 am Прогнило что-то в датском королевстве

В новой версии (2.3.0-preview1) руби что-то пошло не так. Разработчики MRI поддержали фичу сравнения хэшей по отношению включения при помощи операторов сравнения. Никого не смутило, что это частично упорядоченное множество. Ок, сравнения классов в языке уже живут очень давно. Но для них хотя бы есть специальный результат сравнения несравнимых объектов - nil. Тоже чудовищно плохо, но нынешнее предложение даже еще хуже. Оно с чистым сердцем говорит {a: 1} <= {b: 2} -- false и {b: 2} <= {a: 1} -- тоже false. Программистская и общечеловеческая интуиция говорит, что a<b - это отрицание a >=b. А вот теперь фиг!

Вообще отсутствие исключений при сравнении несравнимых объектов дает потрясающие эффекты. Без этого предположения вот такой, кажется, очевидный код:
def qsort(arr)
return arr if arr.size <= 1
pivot = arr[arr.length / 2]
left = arr.reject{|el| el >= pivot }
right = arr.reject{|el| el <= pivot }
central = arr.select{|el| el == pivot }
qsort(left) + central + qsort(right)
end

который нормально сортирует числа, строки, всё что угодно. А вот с массивом классов или хэшей он делает замечательную штуку: он их раскукоживает. Пример:

qsort([String, Fixnum, Hash])
# => [String, Hash, String, Fixnum, String, Hash, String]

qsort( [{}, {a:1,b:2}, {c:3}, {a:1}, {b:2}] )
# => [{}, {:b=>2}, {:a=>1}, {:b=>2}, {:a=>1, :b=>2}, {:c=>3}, {:b=>2}, {:a=>1}, {:b=>2}, {:a=>1, :b=>2}]


А теперь сделаем чуть больше хэшей в массиве. Десять - двадцать пять одноэлементных хэшей. Не бог весть какой объяем данных для сортировки.
Ну ок, быстрая сортировка 25-элементный массив "отсортировала" за минуту, получив 33.5 миллиона элементов. Если получить доступ к похожему рекурсивному методу, DoS обеспечен.
qsort( 10.times.map{|i| {i => i} } ).size # => 1023
qsort( 20.times.map{|i| {i => i} } ).size # => 1048575
qsort( 25.times.map{|i| {i => i} } ).size # => 33554431

Теперь думаю, как бы найти в кодовой базе популярных проектов вектор для подобной атаки. Раньше авторы спокойно могли полагаться на эксепшн "несравнимые объекты", а теперь такие места сурово уязвимы. По сути мне нужно искать либо рекурсивные вызовы (в сериализация где-нибудь может найтись), где за счет неудачных выборок размер частей больше размера целого.
Либо же мне нужно сравнение произвольных пользовательских данных, чтобы пройти в те ветки кода, которые считаются недоступными. Была еще надежда на то, что версии библиотек можно подделывать хэшами. Но если это так, то у Хьюстона гораздо более серьезные проблемы.

7 comments - Leave a comment

Oct. 10th, 2015 11:05 pm Разработка вне команды

"Настоящие программисты" часто говорят о том, что сложности возникают из командного взаимодействия. У нас же в лабе большая часть проектов едет силами одного человека от старта и до финиша. Некоторые задачи делятся на два крупных этапа: один человек сделал первый этап, второй человек - второй. Но внутри этапа безраздельно властвует один человек. Это вызывает свои сложности: в какой-то момент такой режим работы деморализует и вгоняет в апатию и прокрастинацию. Я себе сформулировал причину таким образом:
Вот есть у меня проект, который я в одиночку пишу год. Там ужас, конечно: рисёч-код принципиально чудовищен. Но самое ужасное, что я знаю обо всём трындеце, который у меня наколбашен. Если бы мы регулярно передавали промежуточные результаты из рук в руки и чередовали этапы (то ничего бы вообще не получилось, но оставим это в стороне), то я мог бы без доказательств принять, что мне пришел с прошлого этапа нормальный результат. А так я и в конце проекта помню, какую фигню наворотил на первом этапе "и сомневаюсь, сомневаюсь, сомневаюсь", что просто дичайше тормозит продвижение вперед. Это дает, впрочем, некоторый бонус: у меня есть хотя бы гипотетический шанс понять, что я всё испортил.
Решением, видимо, является выносить код в библиотеки, тестировать их (притворюсь, что верю хотя бы сам себе) и считать работающими и как будто относящимся не к этому проекту. Правда, для этого надо уметь писать годные API, а я умею только негодные. Увы.

2 comments - Leave a comment

Sep. 18th, 2015 09:27 pm Жонглирование данными

Сейчас объем данных растет быстрее, чем емкость накопителей. В общем-то понятно, чем такое кончается: кончается место. А вот нельзя ли сделать сетевой протокол хранения данных, который будет постоянно слать данные туда-сюда и юзать для хранения не жесткий диск, а оптоволокно или что-то в этом духе? Ну, чтобы оно работало как жонглер: он не может одновременно держать столько кегль, сколькими может перекидываться.
Современные технологии, видимо, для такого не подходят. Но на proof-of-concept я бы с радостью посмотрел.

3 comments - Leave a comment

Aug. 10th, 2015 05:02 pm

Мне кажется, из меня вышел бы хороший бета-тестер: мне регулярно "везет" на поломки электронных систем. На этот раз порцию лулзов подарили мне программисты системы регистраций на прием к врачу. Вообще программисты в гос.конторах часто делают лажу (хотя, отдам должное, без портала московских госуслуг было бы значительно хуже, чем даже с несколько косячным порталом).
Лидируют в моем рейтинге пока чуваки из ЦИТИС, которые неделю не могли синхронизовать базу данных по грантам для внутреннего пользования и для внешнего. Еще были смешные ребята, которые из моего обращения на сайте гос.услуг вырезали опасную XSS-уязвимость в виде тэга "<...>". Другие ребята просто на сайт повесили столько анимации, что хром не выдерживал этой последней, примерно 101-ой вкладки и падал замертво. Ну да ладно.
Сегодня прихожу в поликлинику получить талончик к врачу, показываю машинке, раздающей талоны, штрих-код - и вижу: "полис недействителен, новый полис имеет номер такой-то, в следующий раз пользуйтесь новым". И отчество перепутано. Имя-фамилию и врача, притом, показывает верные. А полис никто еще не менял. И отчество, ясное дело, тоже. И как можно из электронной базы данных в нее же неправильно перенести отчество, мне неясно.

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

Позвонил в страховую компанию, где меня попытались отправить решать проблемы в офис и узнать, кто же перевыпустил карту, поменять данные, потом сходить еще раз - получить нормальную карту. Впрочем, мне удалось убедить оператора, что мне очень влом идти в офис, и совсем не влом катить бочку. Это позволило мне перейти на следующий уровень идиотизма. Оказалось(tm of RF), что новый номер полиса имеет "двойник" с теми же именем, фамилией и годом рождения, но другим отчеством, паспортным номером и местом прописки. Но система считает, что старому полису номер XXX соответствует этот чужой полис YYY. Похоже, что на этот раз от разработчиков утек смысл слов "unique id".
Уверен, что я получил не все возможные лулзы: гораздо смешнее оказалось бы, если бы по электронному номеру человек был зарегистрирован умершим. Или отбывающим наказание в местах лишения свободы (и потом доказывай, что верблюд это не ты, и что ты не сбегал из тюрьмы). Благо, дыра в системе позволяет так сделать.

2 comments - Leave a comment

Aug. 4th, 2015 01:37 am Хроники деградации, часть N-ая

ВЦИОМ провел прекрасное социологическое "исследование", показавшее, что половина россиян выступает за блокировку интернета.
Процитирую один абзац из неожиданно крупной ТАСС-овской статьи на сей счет:
"Делая выбор в специфических видах контента, 59% опрошенных заявили, что государство должно цензурировать или блокировать порносайты с гомосексуальным контентом, 46% призывают контролировать группы в социальных сетях, в которых содержится информация об антиправительственных протестах, 45% уверены, что нужно блокировать в интернете видео панк-группы Pussy Riot, участницы которой Надежда Толоконникова и Мария Алехина были осуждены на два года колонии за скандальный "панк-молебен" в храме Христа Спасителя в 2012 году".

Из ответов несложно сделать вывод о вопросах: "Не считаете ли вы, что хорошо было бы гей-порно заблокировать? А может Pussy Riot? Или хотя бы Навального?"
Как водится, ВЦИОМ своим опросником не замеряет, а создает общественное мнение. Только раньше ВЦИОМ был сильно менее конкретен, и спрашивал что-то типа "поддерживаете ли вы увеличение территории страны" и отвечал "86% вступились за Царя-батьку, не смейте ему перечить". А сейчас он уже прямо рассказывает, кого именно надо не любить и какими именно методами.

Leave a comment

Jul. 9th, 2015 01:04 pm

Курсе на 3-4м, когда я умел читать научные статьи только развлечения ради, а не для пользы дела, ляпнул, что не понимаю зачем нужен список литературы, ссылки и всё такое. Следует сделать вывод, что у меня очень мирные друзья, раз меня тогда не убили за эту глупость. Даже в эпоху довольно мощных поисковиков без ссылок можно было бы повеситься, пытаясь отыскать корни тех или иных заключений.

Кстати, надо бы википедии завести раздел WikiReviews, а то вот натыкаешься на обзор 15-летней давности и гадаешь: стоит его читать или нет. Вдруг он сильно устарел, а ты не знаешь. А вдруг новых обзоров нет, поскольку тема раскрыта закрыта, и нового за 15 лет в ней не появилось. Если бы обзоры можно было править, было бы проще вносить в обзор небольшие детали, которые не заслуживают совсем нового обзора, но осветить которые стоило бы.
До некоторой степени статьи википедии сами играют эту роль, благо множество добрых людей старается описать текущее положение дел в науке. Но все-таки ревью и энциклопедическая статья - разные жанры. Чего энциклопедии не позволено, то научный обзор вполне стерпит }:-)

2 comments - Leave a comment

Jul. 4th, 2015 11:37 pm Изучение устойчивости ранга матрицы

C dead_doomer обсуждали проблему неустойчивости ранга матрицы к небольшим возмущениям матриц. Придумалась простая процедурка для оценки области неустойчивости и собственно вычисления ранга. Не нашел, описывал ли кто подобную вещь, так что пусть полежит здесь. Может кто покритикует, найдет ошибку или еще что-то дельное предложит по этому поводу.

Дана прямоугольная матрица без имени, хотим устойчиво оценить ее ранг. Дополним ее до квадратной матрицы нулями и эту квадратную матрицу уже как-нибудь обзовем, например $A$, ее размер $N\times N$. Рассмотрим функцию детерминанта на всех матрицах размера $n$. $\det A = |A|: Mat(n,n)\to\mathbb{R}$. Если мы рассмотрим окрестность любой матрицы, то закономерно увидим, что есть только одно направление изменения значения определителя: его градиент и ортогональная компонента, в которой как матрицы ни меняй, определитель не заметит.
Кстати, градиент определителя определяется красивой формулой: $\nabla |A| = adj(A)^t$. Или даже еще более прекрасной формулой $\nabla\log |A| = (A^{-1})^t$. Для симметрических матриц совсем красота выходит: аналогия с производной логарифма числа. Немного технических подробностей есть в лекциях. Ну это совершенно классический результат, про это все даже статья в википедии есть.

Раз у нас есть выделенное направление, разложим функцию определителя в ряд по малому изменению $\eps$ матриц вдоль градиента относительно матрицы $A$:
$$|A+\nabla|A|\cdot\eps| = P(\eps)$$
Теперь мы можем посчитать коранг (размерность ядра отображения $A$ или попросту $N - rank(A)$) матрицы $A$, как степень первого ненулевого члена разложения $P(\eps)$, ну и в целом оценить перспективы поиметь изменение коранга в той или иной окрестности матрицы, поискав нули многочлена $\frac{P(\eps)}{\eps^{corank A}}$. Нули такой функции будут описывать, где у определителя ноль более высокого порядка.
Ясное дело, что можно из одномерной матричной окрестности сделать многомерную, посчитав проекции. Но это уже скучные технические детали о том, как $\eps$ соотносится с окрестностью матрицы в более привычном смысле.

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

2 comments - Leave a comment

Jul. 3rd, 2015 11:00 pm Законодательство с контролем качества

Законодательные системы современного мира, кажется всё еще живут в двадцатом веке. Ну например, в госдумовской системе, где вывешиваются законопроекты, есть только сканы распечаток законопроектов, но нет pdf-ки с текстовым слоем. Как следствие не работает копипаст и поиск по документу.
Кроме того почему-то до сих пор законопроекты оформляются в виде diff-ов (чтобы через газеты рассылать, ага =\): на строке такой исправить слово такое-то на слово такое-то (ну почти). Для того, чтобы тупо прочитать современную редакцию закона приходится использовать специально сделанный для этой цели коммерческий софт. Мрак же. Как будто систем контроля версий не изобрели.
Чего еще сильно бы хотелось - это, конечно, согласованности законодательства. Чтобы законопроект не проходил, пока законодательство "не компилируется". Это должны быть верификации от простейшего "Термин "политическая деятельность" не определен" до "При условии Z статья X и статья Y конфликтуют, а при условии W вообще неизвестно что делать". Но это тоже старая мысль. Крайне сложная в реализации к тому же.

А вот что реализуемо хоть завтра - это контроль качества, встроенный законопроекты. Сейчас законопроект - это горстка "диффов" статей закона, плюс пояснительная записка, плюс экспертные заключения. Куча буковок разной степени идиотичности.
В плюс к этому необходимо добавлять формулок, циферок и алгоритмиков. Чего я хочу в нем:


  • Этапы внедрения законопроекта в силу. С этапами: в эти даты мы экспериментируем на одном субъекте, в эти даты - на пяти, после такой даты обобщаем на все субъекты. Каждый этап должен иметь чекпоинты, после которых законопроект может быть автоматически отменен, либо автоматически может перейти на следующий этап.

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

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

    • усредненный целевой показатель меньше 0.8: автоматически отменяем закон. Слитые в ходе эксперимента школы разъединяем обратно;
    • усредненный целевой показатель от 0.8 до 1.1: закон отменяем, уже слитые школы оставляем слитыми при условии, что для конкретной пары слитых школ показатель не меньше 0.9;
    • усредненный целевой показатель больше 1.1: переводим закон на следующий этап тестирования с расширением выборки (либо принимаем повсюду).


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

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

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


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

4 comments - Leave a comment

Back a Page