суббота, 10 марта 2012 г.

Снижение издержек для мобильности

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

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

Иллюстрация в экономике

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

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

Рассмотрение как системы

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

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

Способы повышения мобильности

Снижение издержек

Для большого числа уже нам известных операций нам требуется какое-то время и стоимость. Если мы снижаем эти составляющие, то это снижает издержки в целом. Это можно сделать, если вложиться в инфраструктуру: повысить степень доступа к информации (скорость, время обращения, объемы хранения, — компьютер/блокнот/интернет всегда под рукой и с достаточным каналом/ручкой/кнопками), тжс по системам коммуникации (доступ к телефону, почте + e-почте, знание иностранного языка, …), к системам транспорта (авто, велосипед, удаленное присутствие, …). Люди, которые отказываются от Интернета, авто, телефона, … — понижают свою мобильность. Им сложнее выполнить практически любые операции по изменению своего состояния.

Увеличение доступных связей

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

Уменьшение зависимости от различных факторов

В силу каких-либо обстоятельств мы зависимы от множества вещей. Если подъем строго в 6:00, а отбой в 23:00, то это уже зависимость. Также если покупаем балабулечки строго в одном месте, не будем разбирать чайник до истечения гарантии, обязаны выполнить deadline, … Чаще всего такого рода зависимости приносят плюшки и не обременительны, и, по-моему, редко могут быть принесены в жертву для мобильности.

Вывод

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


четверг, 8 марта 2012 г.

Самоорганизация оперативной памяти

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

Представление рабочего процесса и ресурсов

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

Т.о. наглядное представление — есть область где могут находится предметы, и ими мы манипулируем.

В каких случаях операции происходят быстрее?

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

Здесь выделю три основных критерия:

Общий объем оперативной памяти
Чем больше оперативная память, тем лучше. Лучше иметь более большой стол, больше ОЗУ на компьютере, и ещё два монитора вместо одного, уметь держать большее число понятий в голове.
Объем занятой памяти
Чем меньше занята память, тем лучше. Меньше предметов на столе, меньше лишних мыслей о чем-то, меньше директорий-файлов на диске, …
Меньшая фрагментация памяти
Лучше, когда предметы, которые находятся на столе, находятся рядом друг с другом, нежели разбросаны по всему столу. В таких случаях быстрее можно найти нужное место для новых предметов, легче управлять оперативными вещами (с которыми прямо сейчас работаем).

Что же можно сделать для улучшения?

Выгрузка после выполнения задачи

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

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

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

Очистка перед выполнением задачи

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

Перед новой когнитивной задачей мозг лучше освободить от того, что есть.

Перед работой за письменным столом убрать по возможности все лишнее.

Cброс в более медленную память

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

Расширение памяти

Простой, но ресурсоемкий способ. Больше стол, больше монитор, больше шкаф, … Способ действительно прост, но в ряде случаев требует ресурсов ($) или усилий (времени на поддержания состояния), при этом мы ещё зачастую ограничены (дотянуться до всех предметов на бесконечно большом письменном столе сложно). Расширить оперативную память мозга можно например с помощью N-back, но это требует большого количества времени, сил и организации себя.

Разделение задачи на подзадачи

Принцип известен и прост. Если можно разбить задачу на две более малые, то их лучше сделать отдельно. Здесь же получается, что для подзадачи зачастую требуется меньше памяти, поэтому мы берем задачу A, разбиваем на B и C, загружаем в память B, решаем, освобождаем память, загружаем C, решаем, освобождаем.


пятница, 24 февраля 2012 г.

Гуманитарные и технические науки

В каждой естественной науке заключено столько истины, сколько в ней математики.

(И. Кант)

Всё, что нельзя выразить в цифрах — это не наука, это — мнение.

(Роберт Хайнлайн)

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

Необходимое условие точных наук

Оно же — необходимое условие для технических наук, для математики и для работы технического мышления.

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

Ключевое здесь то, что любая техническая теория работает только тогда, когда имеется набор железобетонных утверждений. То есть, аксиом, которые выполняются всегда. Например, только если свет распространяется по прямой, то только тогда мы получим геометрию Евклида. Только если числа 1,2,3,4,… упорядочены друг за другом — получим арифметику. Аксиомой может быть постулат или закон (непреодолимость скорости света, закон Ома, …), т.е. что-то, обладающее свойством железобетонности.

Если таких аксиом нет, то нет никакой технической науки. Нет ни математики, ни матмоделей, ни формул, ни цифр, … Но, тем не менее, есть науки, которые не содержат в себе аксиом. Например лингвистика (смысл слова в которой у каждого человека может отличаться от другого и меняться с течением времени; все, что касается правил — работает с исключениями, поправками, натяжками и «авторским стилем»). Кроме того, есть науки, в которых часть изучаемой области аксиоматике не поддается. Например в биологии молекула ДНК это не постоянный носитель информации, а такой носитель, который может в любой момент изменится, быть исправленным другим носителем, стать активным устройством и др..

Постоянный процесс формализации в технических науках

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

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

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

Отсутствие аксиом

Что же делать, если аксиом нет? Неужели тут наук нет?

Этим делом как раз таки занимаются гуманитарные науки (в данном контексте).

Такое может произойти в случае, если предметная область малоизучена. Или например она настолько быстро меняется, что нельзя успеть установить аксиомы.

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

Даже если выбрать какой-то более оптимальный вариант (возможно привлекая некие технические инструменты), то далеко не всякая система поддастся изменению. Например когда-то пытались все привести к десятичной системе (например время), но это сделать не удалось (так и пользуемся 24 часа, 60 минут и секунд). Мер счисления несмотря на СИ до сих пор много в мире. Таким образом, если уже что-то возникло, и люди к этому привыкли, то изменить это очень сложно. Фактически получается, что больше предыдущий опыт управляет нами, нежели мы оптимизируем его, используя стандарты.

Гуманитарные задачи

Гуманитарными задачами являются: быстрое определение закономерностей; классификация неизвестной предметной области; сопровождение созданных больших систем; создание таких методик и систем, которые способны изменятся под новые факты. Здесь нет аксиом. Здесь все в любое время может изменится. Может появится что-то новое, а что-то уйти в небытие. Система обязана быть полной (описать нужно все, если что потребуется; а если не получается, то ввести новое понятие), но не обязана быть непротиворечивой (одна и та же фраза может быть понята по-разному, но если надо, то можно уточнить; в математике не может быть противоречивых утверждений, иначе она перестает работать на них).

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

Инженерная деятельность

Существует мнение, что для инженерной деятельности (и программирования в том числе) важны технические навыки и мышление. Есть другое мнение, которое говорит о том, что гуманитарная подготовка более важна. Как всегда — истина где-то рядом.

Если разработчик чувствует, что если сделать так, то будет плохо — это работа интуиции (гуманитарное мышление). Если делает выводы на основе железобетонных утверждений — то это логика (техническое мышление).

Придумывание идентификаторов — гуманитарная задача (введение новых понятий для работы в будущем). Создание множества структур и объектов для решения задачи — гуманитарная задача (формализация предметной области). Общение с заказчиком с целью выяснить особенности предметной области — гуманитарная задача.

Но. Как только мы определяем утвержденные истины (данные там-то не пропадут; питание не пропадет в течение 10 минут после сигнала тревоги; если записано x=1, то после операции x будет равен 1; на диске есть свободное место в несколько килобайт всегда, …), и начинаем делать выводы от них, то мы решаем задачу технически (математически). У нас есть аксиомы, на основании которых можно делать выводы и писать надежные программы. Или создавать на их основе аппаратные или механические комплексы.

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


вторник, 7 февраля 2012 г.

IN Cell Analyzer Image Competition, 2011

Ещё один интересный фото-конкурс: IN Cell Analyzer Image Competition. Озвучены победители 2011.

Это конкурс изображений, полученных с помощью флуоресцентной микроскопии.

Ниже изображения, с описанием от compulenta.


понедельник, 6 февраля 2012 г.

Способы поспособствовать научно-техническому прогрессу

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

Способов таких много. Каждый из них требует разных способностей, времени, по-своему интересен. Здесь будет идти речь о них.

Распределённые вычисления

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

Самыми известными являются проекты платформы BOINC, где можно найти задачи на практически любой вкус и цвет — биология (а значит и медицина), математика (а значит и многое другое), астрономия, физика, …

Есть и другие проекты. Но их уже надо искать. Например достаточно давно существующий проект GIMPS по поиску простых чисел Марсенна. Или например Folding@Home — российский проект по изучению сворачиванию белков.

Радиолюбительская помощь в поиске

Аэрокосмические агентства в случае проблем иногда обращаются к мировому сообществу радиолюбителей в помощи. Например в январе 2011 года NASA потеряла спутник. Далее обратилась за помощью к радиолюбителям. И именно они первыми поймали голос радиомаяка.

Во время проблем с Фобосом были подобные обращения.

Научно-технические конкурсы

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

Астрономический конкурс для программистов
Если вы увлекаетесь компьютерами, а точнее – программированием и обработкой изображений, то вас может заинтересовать объявленный международной группой ученых конкурс GREAT10 (GRavitational lEnsing Accuracy Testing), основной целью которого является создание алгоритма, способного помочь в поисках темной материи во вселенной.
Конкурс на технические идеи
К таким вещам отношусь осторожно, так как они имеют коммерческую основу. Но, как один из вариантов. Но есть и просто приемники идей.
Научная олимпиада от Google
Google каждый год предлагает школьникам и студентам из любого уголка планеты задать актуальные вопросы об окружающем мире и ответить на них посредством научных экспериментов. Проект поддерживают Европейская организация по ядерным исследованиям ЦЕРН, компания LEGO Group, журналы National Geographic и Scientific American.

Обращение к открытым массивам научных данных

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

  • Galaxy Zoo — интернет проект по классификации различных типов галактик. И там же список результатов, сделанных энтузиастами в проекте.

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

  • Поиск околоземных астероидов - пример результата.

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

  • Поиск экзопланет из своего дома.

  • Исследование, которое может повторить любой пользователь Интернета.

  • Охотники за планетами: первые два планетных кандидата, выделенных непрофессионалами по данным архива Кеплера. В рамках проекта Zooniverse работает проект Planet hunters. Он предназначен для анализа данных по экзопланетным кандидатам силами любителей. В статье рассказывается о первых двух кандидатах в экзопланеты, выделенных непрофессионалами, а затем, после более детального анализа и дополнительных наблюдений, подтвержденных уже профессиональными астрономами.

  • Поиск следов инопланетян на Луне.

Прямая помощь исследователям и разработчикам

Есть люди и организации, которые уже ведут свои проекты. И будут рады помощи.

Перенаправление усилий в научное русло

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

И другой интересный шаг от DARPA. В двух словах: DARPA для верификации программного обеспечения пытается привлечь толпу (crowd-технологии), в частности, геймеров. И для этого разрабатываются простые и понятные обычным людям игры. Пару месяцев назад они собирали конференцию и пытались как-то объяснить суть процесса.

Науку могут двигать и школьники. Средних и младших классов. Как случайно, так и организованно закономерно.