Реальный опыт использования open source

суббота, 7 ноября 2009, Александр Краковецкий

Этой статьей открываем новый блог - .net open source. Так получилось, что открывает ее статья о моем реальном опыте использования open source, который был не совсем удачным. Очень рад буду выслушать ваш опыт, удачи и не удачи использования open source, как говорится, в реальном мире.

Добрый день!

Хочу поделиться своим опытом использования опенсорса в различных проектах — от учебных до коммерческих. Кто-то обязательно обвинит меня в не профессионализме, кто-то просто скажет, что это все как-то однобоко, но тем не менее…

Студенческий проект MathWorld

Решил я как то выучить PHP. А какой лучший способ выучить новый язык программирования? Правильно, нужно написать свой проект на этой технологии. Так как я люблю математику, то проект решил посвятить mathcad, которым пользовался для расчетов в университете. За месяц-два, как говориться, «на коленке» с нуля был написал небольшой движок, который:
— был очень простым
— содержал код, за который в последствии было стыдно
— был не удобным для автоматического наполнения.

Но тем не менее, он работал и, думаю, это самое главное. После того, как посещаемость на сайте достигла отметки 50-60 хостов в сутки (согласитесь, для первого проекта студента-самоучки на бесплатном хостинге четвертого уровня — это неплохо), я решил расширить сайт. Выбор пал на PHPNuke — open source CMS.

После установки и настройки движка, переноса большей части материалов, я получил:
— глючную тормознутую систему, которая грузилась на порядок дольше моей (оговорюсь, что отключил практически все не используемые модули)
— спам в размере 10-20 коментов в день
— любая кастомизация занимала очень много времени.

В итоге, я отказался от сайта на PHPNuke и просто доделал старую систему, что позволило еще 3 года ей успешно работать.

Как говорится, дилетанты стоили Ковчег, профессионалы строили «Титаник» (с).

Коммерческий проект

Уже будучи сотрудником ИТ компании, выполнял проект для израильского Microsoft. Это был ASP.NET проект для настройки некой системы, но не в этом суть. Необходимо было реализовать модальный прогресс бар (modal update progress). Решение нашлось очень быстро на codeproject и было интегрировано в проект.

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

Итак ситуация,
— codeperoject напрямую поддерживается Microsoft
— код был подкреплен какой-то лицензией, которая просто там должна быть, а не потому что автор кода решил кому-то создать сложности. Она позволяла делать все, что угодно с эти кодом
— вся dll состояла приблизительно из 100 строк!

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

Личный проект

Возникла идея создания проекта TechPosters (в данный момент он не работает, так как возникли проблемы с хостером), который я упоминал несколько раз на хабре.

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

На codeplex результаты поиска по ключевым словам «blog engine» выдает много результатов.

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

Выбор был сделан в сторону dasBlog, который не требовал базы данных, был простым в настройке и использовании. Вся информация хранилась в XML файлах. Только потом я понял, как облажался. Движок писал все пути к файлам в виде

http://домен/путь к файлу

Т.е. перенос сайта целиком на другой хостинг (с чем я столкнулся в данный момент) — это тихий ужас. Кроме того, все логи движок хранит в файлах, бережно созданные в корне (!) сайта, т.е. когда я обнаружил после двух месяцев 200 лишних файлов в корне, я был удивлен. Но когда увидел changeLog на 100 МБ, я занервничал… Спам, неудобство в плане модерации комментариев и т.д. отношу к цветочкам.

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

Вопрос был в том, что ставить движок мне нужно было на IIS7. Так вот, проблемы начались сразу же. Движок в упор не хотел работать. 3 дня ушло на разговоры с хостерами, которые очень вежливо, но все таки в итоге послали меня далеко. Вся соль в том, что они оказались правы. Нюансы IIS7 не учтены при разработке движка, также нигде не было написано о том, чтобы не пытаться методом грубой силы заставить движок работать на IIS7. На блогах сайта было найдено много упоминаний о проблеме, но нигде не было детально описано решение проблемы. В итоге еще 2 дня на нервах, после чего пришлось отказаться от IIS7 и взять дополнительный хостинг на apache. А все потому, что не написано на сайте большими буквами о том, что не стоит ставить на IIS7 или если стоит, то как.

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

В данный момент TechPosters работает в тестовом режиме на apache.

Еще один пример

Год назад искал движок соцсети и нашел! Одна проблема — движок на китайском. Отправил тикет на локализацию на английский — пообещали в течении месяца обновить. Скоро будет год… А что вы хотели — это open source, никаких гарантий. Я бы уже и сам локализировал, но вот с китайским не сложилось…

Просто наблюдение

При установке чего-то с помощью Microsoft Web Platform Installer решил посмотреть, что еще интересного содержит данная тулза. Увидел в разделе вики ScrewTurn Wiki — викидвижок на asp.net, open source. Хм, замечательно, подумал я и полез скачивать «open source». В процессе скачивания обнаружил вкладку «Commercial», открыл и… офигел. Лицензия на Unlimited Redistribution + Lifetime Updates стоит €5,000. На stackoverflow даже вопрос поднял по поводу commercial use, из чего понял, что мне она точно не подойдет, потому что под нарушения GPL я попадаю, а €5,000 у меня нет.

Еще меня убил калькулятор стоимости проекта. Стоимость разработки вики оказывается $1,230,990. Мда…

Неужели все так плохо?

Нет, конечно. Например, мы используем redmine и он мне нравится. Много небольших проектов и примочек успешно использую каждый день, но в области «complete solution» дела обстоят плохо.

Кроме того, на codeplex я координирую несколько небольших проектов. И мне это нравится :-) Но just for fun.

Вывод

Я всегда осторожно относился к open source. Я никогда не поддерживал идею «свободного программного обеспечения» на уровне религии, я не понимаю, когда open source приравнивают к светлому и чистому, а проприетарное ПО — к злому и ужасному. Все, что хочу сказать, что нужно хорошо подумать перед тем, как использовать open source в своих проектах, чтобы не получилось делать двойную работу.

Спасибо за внимание.

Обсуждение на хабре

P.S. У Microsoft есть отдельный сайт, полностью посвященный open source: http://www.microsoft.com/opensource/

P.S.S. Кто хочет писать в этот блог - сообщите мне, я добавлю вас в авторы тематического блога.

Компании из статьи


Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии