2 апр. 2012 г.

Кому интересен parallelizer C++ (ну или C#) кода? Начать разработку сабжа?

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

Что до самого распараллеливателя
Естественно речь идет не о такой примитивной системе, как используется в Visual Studio 2011. Студия требует вручную помечать подходящие для распаралеливания циклы, а я речь веду об автоматическом анализе кода с распараллеливанием и линейных участков тоже. Плюс конфиг с перечнем запрещенных для параллелизации вызов внешних ф-ций; ну и со всякими другими подобными штуками.

С чего решил этим заняться? Да подумал, что возможно есть смысл в том, что бы воплотить в жизнь некоторые свои древние идеи семилетней давности: голова моя тогда была занята выдумыванием штук, что по своим функциям похожи на то, что как сейчас мне уже известно, называется БНФ и AST (которая Abstract Syntax Tree). Только по-удобней, пожалуй, чем БНФ/РБНФ.

2 сент. 2010 г.

DAPS (Data Access Prevention System). Alpha version preview.

Первое превью работы альфа-версии моей DAPS (http://www.mihail-fieryice-butenko.in.ua/project-definition/daps). DAPS (Data Access Prevention System) - это система, предотвращающая незаметный (без ведома пользователя), а главное - нежелательный доступ програм к конфиденциальным пользовательским данным.

(http://www.youtube.com/watch?v=Z6vwx-DrsjA)

20 апр. 2009 г.

Мысли в слух. Определение жизни от дилетанта.

Размышлизмы над вопросом AndrewVK, о том, являются ли прионы формой жизни:

В принципе, почему бы и нет, ведь прионам для размножения необходимо то же самое, что и вирусам и бактериям и многоклеточным и программкам на десять строк: благоприятная для самовоспроизведения, среда (в случае с вирусами и прионами - это работающая клетка) и набор информации для самовоспроизведения. Да только при такой (да и не только притакой) формулировке получиться, что (снова чистая теория) искусственно собранная конструкция, использующая метаболизм, имеющая относительно сложный интеллект (можно вести интересную беседу) и способность к ограниченной регенерации, но при этом совершенно не имеющая механизма самовоспроизведения_как_единого_целого (информация_для_регенерации отдельных частиц тела достаточно только для регенерации конкретной части тела, но ни как не целого организма + в самой конструкции организма нет механизма, который мог-бы обеспечить сбор распределенной генетической информации, для последующего самовоспроизведения организма_как_единого_целого) - будет считаться неживым (мертвым :maniac-smile: ). В то же время, говоря про смерть человека имеется в виду неспособность более поддерживать жизнедеятельность мозга, а именно той части организма, которая является инициализатором манипуляций над внешней средой. Получается, что жизнь - это наличие и исправное функционирование того, что инициирует и управляет взаимодействием и манипуляциями над окружающей средой. Это нечто можно назвать интеллектом, в результате чего интеллект человека, кошки и инфузории-туфельки будет различаться только своей сложностью (своими масштабами). А вышеописанная гипотетическая конструкция, наделенная интеллектом, но обделенная в возможности самовоспроизведения - так же является живой, в отличии от пассивных прионов и вирусов. Однако если вспомнить, что благоприятной для воспроизведения прионов и вирусов, средой являются функционирующие клетки, которые под воздействием этих самых прионов и вирусов начинают менять свое поведение, т.е. можно сказать, что прионы и вирусы, находясь в подходящей среде - манипулируют этой средой (код манипулирования, а значит то, что управляет взаимодействием и манипуляциями над окружающей средой - присутствует), т.е. являются живыми. По идее, продолжать таким манером разглагольствовать, можно вплоть до фотонов, кварков, ... Получаем два варианта:
1) если по какой-то причине очень не хочется включать в понятие жизни (не "белковой жизни", а "жизни" вообще) всякие элементарные частицы - то можно попытаться внести в понятие жизни дополнительные условия, которые, впрочем, не должны создавать помехи во включении в клан живых существ, различных белковых/небелковых конструкций обладающих/не_обладающих возможностью к самовоспроизведению и интеллектом;
2) принять, что четкое разделение на живое/неживое не имеет большого смысла, а выражение вида "такая-то конструкция более живая, чем другая-то конструкция" - не слишком удачно. Зато выражение вида "такая-то конструкция (собака) более интеллектуально-живая, чем другая-то конструкция (прион)" - уже лучше, хотя и не идеал.

15 апр. 2009 г.

Зачем мне выдумывать собственный лицензионный велосипед?

Коротко: хочу сделать выгодным распространение коммерческих разработок в виде свободного ПО, и одновременно - необременительным, использование этих коммерческих разработок даже самыми небогатыми разработчиками. Естественно там все сложнее и интереснее.

Живем

Проект не мертв. На данный момент продолжается работа над лицензией, под которой будет распространяться FITaFS и ее исходники. Дело в том, что я уже давно решил отказаться от идеи использовать GNU/GPL, а лицензии, позволяющие свободно использовать код кому угодно и как угодно (MIT, BSD, ...) меня не интересуют.

3 июн. 2008 г.

Тезисы

На конференции отучаствовал, диплом защитил. Свобода (почти :) )! В результате появления дополнительного свободного времени я, в ближайшие сроки, начну работу над реализацией «FITaFS» под FUSE.


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

Итак...

Файловые системы на основе тегов. Особенности организации данных на примере «FITaFS»

Классические ФС (файловые системы) с жесткой иерархической структурой каталогов успешно используются уже более 30 лет. Однако теперь, когда объемы хранимой пользователями информации исчисляются десятками и сотнями гигабайт, упорядочивание и поиск требуемых данных оказывается либо сильно затруднен, либо не удобен. Виной тому все та же жесткая иерархия и невозможность динамического отображения всех данных, соответствующих заданному критерию в одном месте, средствами самой ФС. Конечно, у пользователя имеется хорошо зарекомендовавший себя механизм жестких ссылок на файлы, однако и это далеко не панацея. К примеру, мы хотим отобразить в папке «Music» все имеющиеся на компьютере звуковые файлы – для этого необходимо будет найти все необходимые файлы, создать на них жесткие ссылки внутри «Music» (при этом придется изменять оригинальные названия во избежание повторения), и периодически сканировать систему на наличие новых звуковых файлов. Если же внутри «Music» необходимо воспроизвести часть оригинальной иерархии, как то: «%исполнитель%\%альбом%\%имя_файла%.mp3», то количество операций еще больше увеличится.

Для устранения подобных проблем было разработано множество реализаций ФС и надстроек (систем управления данными и метаданными, не являющихся файловыми системами), отображающих данные в виде страниц БД (баз данных), некоторые из которых используют SQL как родной язык запросов. К ним относятся: «WinFS» (Microsoft), «Hyppocampus». Однако и они не лишены недостатков, главными из которых являются: 1) отсутствие полной обратной совместимости с классическими ФС и использующими их программами; 2) большинство подобных систем являются надстройками над существующими ФС и используют внешние универсальные СУБД, что заметно увеличивает нагрузку на ЦП и расход памяти (как оперативной так и постоянной).

Как оказалось, есть еще один не безызвестный механизм отображения и упорядочивания информации – теги. Да, конечно, системы, основанные на базах данных также используют теги, но только в роли дополнительных свойств файла. В отличии от них теговые ФС («FITaFS», «Tagsistant») составляют из тегов путь к файлу. Если файл 1.mp3 имеет теги [музыка, классика], а файл 2.mp3 - [музыка, рок], то перейдя по любому из путей [«музыка\рок» или «рок\музыка»] мы найдем файл 1.mp3. В тоже время в каталоге «музыка» можно обнаружить оба файла - 1.mp3 и 2.mp3. Дерево каталогов, в большинстве случаев представляет собой перечень всех тегов-каталогов, внутри каждого из которых снова-таки список из всех тегов-каталогов (кроме уже выбранных) вместе со списком файлов, имеющих заданные теги. Тем самым обеспечивается полная обратная совместимость с классическими ФС. Однако, при большом количестве тегов, интерфейс становится неудобным, а громадная вложенность может привести к серьезным проблемам в программах, пытающихся обойти (просканировать) все дерево папок. Разработанная мной теговая файловая система «FITaFS» использует несколько иной подход, нивелируя проблему сверх-избыточной вложенности тегов-каталогов.

В докладе будут освещены методы устранения выше перечисленных проблем с интерфейсом, управления объемами данных и повышения быстродействия, использованные при проектировании «FITaFS». А также сравнение «FITaFS» с существующими системами.

Бутенко М.С. 2008

3 апр. 2008 г.

Первая запись ))

Первая заметка о том, что мой доклад принят в программу конференции САИТ-2008 (ИПСА КПИ). А это значит что я впервые буду докладчиком на научной конференции.))
Буду рассказывать про "файловые системы на основе тегов" (tag-based filesystem) вообще и про собственную подобную разработку - "FITaFS" - в частности.