Вернуться к разделу "Реализация проекта BookScanLib ".


3. Памятка участникам проекта BookScanLib

Эта памятку я написал для всех тех, кто заинтересовался проектом BookScanLib, и хотел бы в нём как-либо поучаствовать, но не знает с чего начать и что, собственно, делать.

Итак, начнём с главного. Прежде всего, Вам потребуется:

1. Желание поучаствовать в проекте. (Это - самое главное. Вы можете иметь лишь это и больше ничего).

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

3. Наличие собственного компьютера дома.

4. Подключение к Интернету - либо дома, либо (у кого есть) на работе.

5. Творческий склад характера.

Вот и всё - этого вполне достаточно. Ничего больше из основного не нужно.

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

Анкета нового участника

1. Знаете ли Вы, что такое формат "DjVu"?

Обязательно ознакомтесь с сущностью этого формата. Начните с определения формата DjVu в русской Википедии. Обширную дополнительную информацию о формате DjVu можно найти на моём сайте http://www.djvu-soft.narod.ru. Понимание сущности формата DjVu необходимо для понимания сути проекта BookScanLib.

2. Представляете ли Вы себе, чем в техническом смысле будет заниматься проект BookScanLib?

Проект BookScanLib - это открытая общественно-коллективная разработка алгоритмов сканобработки. Что такое "сканобработка" - см. Ликбез по теории и алгоритмам обработки сканов книг. Подобные открытые проекты - обычная мировая практика.

3. Есть ли у Вас дома сканер?

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

Однако, если у Вас нет сканера и Вы не планируете его покупать - не беда - без сканера можно легко обойтись. В Интернете есть очень много DjVu-книг плохого качества - на них вполне можно испытывать будущие алгоритмы BookScanLib.

4. Умеете ли Вы программировать на С/С++?

Если нет - сначала займитесь изучением языка программирования Си. После этого изучите язык программирования Си++. Благо, что в Интернете предостаточно литературы по этим языкам программирования. Купите на местном рынке программный пакет MS Visual Studio .NET (с библиотекой MSDN впридачу), проинсталлируйте его, и попробуйте написать по книгам простейшие программы. Для тех, кто не знает: язык Си++ - это "более развитый" язык Си, обычно их так и обозначают: "C/C++" (по-английски). Знание языка Си (и Си++) автоматически предполагает умение писать консольные приложения - а большего и не требуется для участия в проекте.

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

Я сам учился по прекрасным бумажным книгам "Как программировать на С" и "Как программировать на С++" - авторы Х.М. Дейтел, П.Дж. Дейтел - только я не уверен, что они и сейчас есть в продаже, но в электронном виде они существуют.

5. Читали ли Вы мою статью Гуманитарные задачи проекта BookScanLib?

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

6. Вы решили для себя задачи 5-х предыдущих вопросов. Что же Вам теперь конкретно делать?

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

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

7. В чём состоит коллективность проекта? Как всё это будет выглядеть?

В основу проекта положен "принцип Linux". То есть, это совершенно особая, "антибюрократическая" организационная структура.

Главная движущая сила проекта - это ОБЩАЯ ИДЕЯ - "разработать набор алгоритмов сканобработки". То есть коллективная работа НЕ будет выглядеть так, что, допустим "я раздаю руководящие директивы - а все остальные их выполняют" - как это организовано в любой бюрократической системе. Нет, здесь пусть каждый делает что-либо, что, ПО ЕГО МНЕНИЮ, ведёт к успешному достижению общей идеи - при этом оставаясь в рамках здравого смысла, правил форума проекта, и норм общественной морали.

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

8. Какова организационная структура проекта?

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

Я предлагаю "динамическую" структуру проекта. В центре проекта - мой сайт (или сайт какого-либо более активного участника - если таковой появится). Обсуждение проекта ведётся на некоем Интернет-форуме.

Далее я предлагаю практически каждому участнику сделать свой пользовательский сайт - например, на бесплатном хостинге Narod.ru (как у меня). Только хостинг Narod.ru подходит лишь для тех, кто имеет российский IP-адрес (т.е. находится на территории России). Для того, чтобы сделать простейший сайт, необходимо иметь базовые знания по языку разметки Интернет-страниц - HTML. Я могу порекомендовать превосходный вводный курс по языку HTML - "для самых чайников" - с нуля и в простой и понятной форме.

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

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

9. Какова общая стратегия проекта?

Собственно, создание библиотеки алгоритмов сканобработки - это лишь побочная цель - как бы странно это ни показалось. А какова же тогда главная цель, спросите Вы?

а). Главная цель проекта BookScanLib - создать "информационное поле" по алгоритмам сканобработки. Проще говоря, нам необходимо хотя бы раскрыть всю эту тематику для людей - а это означает, что самое главное - это НАПИСАТЬ ДОКУМЕНТАЦИЮ по алгоритмам и теории, а не столько сами алгоритмы.

То есть необходимо в первую очередь СОЗДАТЬ УСЛОВИЯ для создания людьми таких алгоритмов - а это значит, что нужно РАССКАЗАТЬ людям обо всей проблематике проекта - путём написания обширного массива ДОКУМЕНТАЦИИ - вот для чего нам всем и потребуются личные сайты - как место для размещения собственных статей по теме проекта.

Причём я бы сказал - нужно не просто рассказать, а скорее, буквально РАЗЖЕВАТЬ людям всю необходимую учебную информацию - доступным языком, с приведением всех нужных Интернет-ссылок, с исходниками учебных алгоритмов и т.д.

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

Такое РАССКАЗЫВАНИЕ должно, кроме того, носить характер УПОРЯДОЧИВАНИЯ и СИСТЕМАТИЗАЦИИ разнообразной разрозненной информации, собранной на просторах Интернета - путём увязывания всего этого в некую простую систему. Как образец, я могу привести в пример свой сайт http://www.djvu-soft.narod.ru - казалось бы, это просто табличка, куда я занёс всё, что смог найти в Сети о программах, так или иначе связанных с форматом DjVu - но даже и такая простая систематизация дала огромные плоды - теперь давайте повторим то же самое и в отношении информации о программной работе с растровой графикой плюс дополним это своими статьями.

б). Параллельно с созданием "информационного поля" необходимо будет сделать УЧЕБНЫЕ программные реализации алгоритмов сканобработки - перечисленных в  Ликбезе по теории и алгоритмам обработки сканов книг. Не стоит сразу пытаться сделать профессиональные версии алгоритмов - сначала просто учебные реализации - как компонент "информационного поля".

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

Как видно, наша стратегия получилась трёхступенчатой - словно космическая ракета - и эта аналогия явно не случайна.

10. Что лично Вам даст участие в проекте?

Да много чего. И новые знания и умения, и общение с интересными людьми, и высокоинтеллектуально-утончённое развлечение - в виде придумывания алгоритмов. Кроме того - все мы ознакомимся с такими вещами, как "искусственный интеллект" и "распознавание образов" - разве это не интересно, и разве бы у Вас самого (самой) дошли бы руки до этого?

Посмотрите, например, что показывают каждый вечер по телевизору :) - может быть, и вправду лучше вместо телевизора посидеть вечером часок-другой за компьютером и BookScanLib? ;-)

11. Что делать, если Вам нравится общий замысел проекта, но не нравится его организационная структура?

Создайте ПАРАЛЛЕЛЬНЫЙ ПРОЕКТ - например, для Unix, или для Делфи. Ведь один проект невозможно сделать универсальным. Я постараюсь оказать Вашему проекту всяческую информационную поддержку.

Однако, если Вы, скажем, знаете Делфи, а С/С++ не знаете и знать не хотите - Вы всё равно сможете поучаствовать в проекте BookScanLib - пишите алгоритмы на Делфи (или на Java - как умеете, так и пишите) - а кто-нибудь потом "перебьёт" их под Единую Платформу проекта BookScanLib (Win32/С++/FreeImage/VC++). В алгоритмах самое ценное - идея, а не тот язык программирования, на котором они написаны.

12. А насколько вообще реально осуществить общий замысел проекта? Разве мы потянем написание таких, по-видимому, сложных алгоритмов? Разве найдутся желающие участвовать в проекте?

Осуществить проект - реальнее, чем Вы думаете. Думаю, ни у кого нет сомнений, что с программированием растровой графики мы справимся легко - там нет ничего сверхъестественного.

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

По поводу привлечения желающих: собственно, проекту BookScanLib нужно не так уж и много людей - достаточно от 3 до 15 человек. Дело это довольно интересное и нужное, так что шансы привлечь людей - неплохие. Но даже если никто не захочет принять участие в проекте - я сам всё сделаю "от и до" - но это в самом крайнем случае.


Обсудить данную статью можно в ветке форума:

Обсуждение проекта BookScanLib   http://forum.sources.ru/index.php?showtopic=161275

Автор: monday2000.

17 декабря 2006 г.

E-Mail  (monday2000 [at] yandex.ru)

Hosted by uCoz