Исходники сайтов – Существуют ли сайты, где выкладываются исходники, заготовки и примеры популярных и хороших дизайнов сайтов?

100 OpenSource инструментов для Web-мастера. / Habr

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

Лучшие порталы с открытыми шаблонами сайтов


В сети есть множество бесплатных шаблонов, но искать подходящий часто может быть очень долго, поэтому мы предлагаем вам посетить сначала следующие четыре портала:
  1. OSWD: Более 2?000 бесплатных шаблонов сайтов. Возможность подобрать шаблон по цвету, направлению и структуре.
  2. OpenWebDesign: Большое сообщество дизайнеров, которые бесплатно выкладывают свои шаблоны. Часто проводятся внутренние соревнования. Удобная система поиска.
  3. Open Designs: Портал принадлежит некоммерческой организации. Содержит более 600 шаблонов, отобранные сообществом. Так же имеет активный форум, где дизайнеры делятся опытом и советами.
  4. CSS Tinderbox: CSS Tinderbox советует не «изобретать колесо», если вам необходим простой CSS/XHTML шаблон, который вы можете взять с этого портала.

Открытые дизайнерские программы


Зачем платить за программы, если есть бесплатные аналоги. Многие считают, что бесплатный софт, не может быть качественным, но это не так. Дальше представлены лучшие открытые программы для дизайнера.
  1. Nvu: Программа для верстки страниц — конкурент FrontPage и Dreamweaver. (Linux, Windows, and Mac)
  2. Cssed: Редактор CSS, снабженный авто-заполнением, выделением синтаксиса и проверкой. (C, C++) (Linux)
  3. Quanta Plus: Отличный HTML редактор для KDE.
  4. Bluefish: Среда разработки для программистов и вэб-мастеров. © (GNU/Linux, Unix)
  5. GIMPShop: Отличная замена Photoshop. (Mac, Linux, and Windows)
  6. Inkscape: Открытый векторный редактор, по возможностям схожий с Adobe Illustrator.

Готовые дизайнерские шаблоны


Если вы хотите скорей запустить свой сайт, то вам нуден шаблон, не требующий тонкой настройки. В этом разделе представлены лучшие порталы предлагающие полностью готовые шаблоны.
  1. TemplateNavigator: Самый большой выбор бесплатных Web и Flash шаблонов, сопровождаемых качественными демонстрационными снимками.
  2. TemplateBox: Более 300 бесплатных шаблонов, логотипов и баннеров.
  3. Template Monster: Небольшая, но качественная коллекция шаблонов для сайтов, Flash? а и блогов.
  4. Art for the Web: 75 бесплатных шаблонов. Отличное место, если вы ищете что-то простое и оригинальное.
  5. Free CSS Templates: 206 шаблонов. Часто обновляемый портал.
  6. Effex-Media: Free website templates designed by designers, this massive list is categorized by website type and includes user reviews of many of the templates.
  7. DotcomWebDesign: Сотни бесплатных шаблонов, некоторые из которых действительно отличного качества. К сожалению категории немного разбросаны, так что будьте готовы потратить время на поиск того, что вам нужно.
  8. Themebot Design Templates: Не очень много шаблонов для сайта, но зато хороший выбор оформлений для форумов, блогов и др.
  9. Groovy Lizard: Шаблоны для персональных страниц. Для коммерческого использования необходимо купить лицензию.
  10. Interspire: Неплохой выбор бесплатных шаблонов.
  11. Joyful Heart Designs: Интересный портал. Большинство шаблонов здесь связанны с цветами.
  12. OpenSourceTemplates: Бесплатные CSS и XHTML открытые шаблоны для Web 2.0 дизайна.
  13. Ricky?s Web Templates: Более 50 бесплатных шаблонов, картинок и кнопок. *Не понимаю, что этот сайт здесь делает. Бесплатные экземпляры просто ужасны, а для получения доступа к остальному контенту нужно иметь премиум.
  14. Free CSS Templates: Много функциональных шаблонов на CSS.
  15. FreekTemplates.com: Коллекция шаблонов для бизнеса, хостинга, сайтов о машинах и мотоциклах и пр.
  16. Template Perfection: Более 200 бесплатных шаблонов.
  17. TemplateWorkz: 48 бесплатных шаблонов, подходящих для сайтов-визиток.
  18. Zymic: 80 бесплатных шаблонов (HTML Pages + CSS + Images + PSD Files + Blank Images Files).
  19. OpenSourceTemplates: Шаблоны CSS и XHTML разметок страниц.
  20. Freelayouts: HTML и Flash шаблоны.
  21. FreeCSSTemplates.org: Более 100 бесплатных CSS шаблонов.
  22. Free Layouts: Сотни готовых HTML, Flash и CSS шаблонов.
  23. Free Templates Online: Десятки легко настраиваемых шаблонов, разложенных по категориям.
  24. Free Website Templates: Большая база шаблонов, не требующих ссылки на автора.
  25. Six-Shooter Media: Бесплатные CSS и XHTML открытые шаблоны.
  26. Free Flash Template: Бесплатные шаблоны и презентации во флеше.
  27. Layouts4Free.com: Хорошая коллекция бесплатных шаблонов, упорядоченных по категориям.
  28. Solucija: Бесплатные XHTML / CSS шаблоны для сайтов, готовые к использованию.
  29. MasterTemplates: Профессиональные бесплатные шаблоны для сайтов и PowerPoint.
  30. TemplateWorld: Бесплатны шаблоны, разработанные дизайнерами из Template World.
  31. Painted Pixels: Бесплатные шаблоны, кнопки и фоновые изображения для некоммерческого использования.
  32. CSSFill: Отобранные CSS / XHTML шаблоны от Michael Strand.
  33. ThemesBase: Большая коллекция оформлений для форумов, блогов, движков и др.
  34. Arcsin Design Templates: 22 бесплатных XTML и CSS шаблонов
  35. Snakeye Web Templates: 20 шаблонов, сделанных в Dreamweaver или Fireworks.
  36. Steve?s Templates: Десятки шаблонов. *Очень некрасивые бесплатные шаблоны
  37. GordonMac.com: Бесплатные шаблоны и скрипты. Выбор небольшой.
  38. Web Design Helper: Неплохой портал с бесплатными шаблонами и графикой.
  39. Webmaster Resources: 25 бесплатных шаблонов.

CSS Layouts


Если вам нужна простая бесплатная разметка страницы, то эти ресурсы — для вас. Вы можете использовать готовую разметку CSS, для своего дизайна
  1. Layout Gala: 40 CSS трехцветрых разметок. Наглядный интерфейс.
  2. AndreasVilkund.com: Бесплатные шаблоны от дизайнера Andreas Viklund.
  3. CSS Template Directory: Много CSS шаблонов, разработанных и распределенных множеством дизайнеров.
  4. BenMeadowcroft.com: Разметки высшего класса от Ben Meadowcroft.
  5. Mollio: Отличный ресурс, с несколькими очень функциональными шаблонами.
  6. Real World Style: Разметки CSS, разложенные по формату.
  7. Little Boxes: Шаблоны CSS с простым и понятным кодом.
  8. The Layout Reservoir: Простые двух и трехколонные разметки.
  9. Protagonist Web Resources: Список из 43 сайтов с разметками CSS, некоторые из которых рассмотрены здесь.
  10. Glish: «Голые» разметки от Eric Costello.
  11. FU2K: Размеки CSS, разработанные для корректного отображения в Netscape 4.
  12. Position is Everything: Содержит множество ссылок на ресурсы, посвященные CSS.
  13. ThreeColumnLayouts: Удобный список из 3х-колонных разметок..
  14. ssi-developer: Хорошо оформленный список разметок. На сайте много материалов для вэб-мастера.
  15. MIS Web Design: Необычные параграфы (<p>…</p>) с использованием CSS
  16. Ruthsarian Layouts: Хорошая коллекция разметок, готовых меню и нескольких шаблонов.
  17. A List Apart: CSS: Много советов для вэб-мастера, в том числе по CSS.
  18. Code-Sucks.com: Много CSS разметок содержащих от 1 до 4 колонок, и несколько готовых Вэб-шаблонов.
  19. Particle Tree: Динамичные разметки.
  20. Project Seven: Несколько простых CSS разметок.
  21. MyCelly: 16 простых шаблонов разметок.
  22. Ideas: 12 бесплатных CSS шаблонов.
  23. CSS Library: Динамичные «бестабличные» CSS разметки.
  24. IntensiveStation: Несколько простых новых CSS разметок.
  25. IronMyers: Коллекция разметок поддерживаемых самыми популярными браузерами, такими как IE6, IE7, Firefox, Opera, Safari и др.
  26. The CSS Playground: Примеры CSS разметок, оформления блоков, менюшек и др. *Очень понравился
  27. WordPress Theme Viewer: Стандартная база оформлений для WordPress. Отличная система поиска по критериям.
  28. Fluid 2-Column Template: Пример готового динамического шаблона. Растягивается по ширине окна.
  29. Avinash 2.0: 12 бесплатных CSS-шаблонов.

Инструменты и генераторы для CSS стилей.


Если вы не очень сильный кодер или вы ищете простое решение для стандартного стиля, то обратитесь к следующим инструментам. Эти ресурсы позволят вам в считанные секунды, получить CSS который вам нужен.
  1. CSS Creator: Выберете цвета, задайте количество колонок, версию HTML и нажмите на кнопку. Получите CSS шаблон вашей страницы.
  2. Inknoise: Выберете настройки для вашего стиля и просто скачайте страницу себе на компьютер.
  3. Strange Banana: Интересное решение. Просто обновляйте генерируемую страницу, пока не получите то, что вам надо.
  4. Nidahas: Пример формы сделанной при помощи CSS.
  5. Maketemplate: Генерирует шаблон сайта с использованием PHP, HTML, CSS, каждый блок которого подгружается из отдельного файла при помощи php.
  6. IBDjohn: Генератор CSS разметки для сайта из 3х колонок.
  7. CSS Creator: Простой генератор CSS разметки с выбором фиксированной или динамической ширины и количества столбцов. *Повторение пункта 79. Ошибка автора.
  8. PsycHo: «Ваш дизайн — ваш характер». Удобный инструмент для создания шаблонов.
  9. Firdamatic: Генератор бестабличных двух- или трех-колонных разметок.
  10. WordPress Theme Generator: Онлайновый генератор оформлений для WordPress.

Оформления для блогов.


Оформление для блогов стало очень популярным направлением в вэб-дизайне, так что мы не могли не уделить внимание этим ресурсам. Сюда мы поместили лучшие открытые шаблоны для вэб-блогов.
  1. SmashingMagazine: 83 замечательных оформлений, которых вы, возможно, еще не видели.
  2. Kaushal Sheth: Красивые оформления для WordPress.
  3. ErraticWisdom: Коллекция оформлений для Textpattern.
  4. Scribez: 10 лучших оформлений для WordPress..
  5. pinkdesign: Бесплатные оформления для блогов.
  6. Textgarden.org: Официальный сайт оформлений для Textpattern.
  7. Blogger Templates: Множество разнообразных оформлений для Blogger.
  8. Blogfashions: Коллекция оформлений для блогов Movable Type.
  9. FinalSense: Оформления для Blogger хорошего качества.
  10. WP Themes: Оформления WordPress разработанные Sadish Bala.
  11. Drupal Theme Garden: Оформления для движка Drupal.
  12. Weblog Design: Не много оформлений для блогов высокого качества.

Были получены исходники 3300 глобальных интернет-проектов / Habr

Пару месяцев назад нами (2Товарища и Антон Исайкин) была обнаружена уязвимость, присущая в основном большим интернет-проектам (вроде Рамблера, Мейла, Яндекса, Оперы и пр.). Удалось получить доступ к файловым структурам известнейших сайтов (в общей сложности 3320 сайтов) и в ряде случаев их полные исходные коды.

Казалось бы, что в XXI веке трудно найти подобную уязвимость. Кажется, что уже всё найдено, а то что не найдено, сидит где-то очень очень глубоко. Оказалось, что корнем сегодняшнего зла является вполне повседневная вещь. Наверняка каждый из вас когда-нибудь имел дело с системой контроля версий SVN.

SVN является продвинутым средством для организации совместной разработки десятков, а то и сотен разработчиков. В силу особенностей архитектуры, SVN хранит в каждой директории проекта свои метафайлы, аккуратно сложенные в скрытую директорию .svn. В одном из файлов под названием entries находится список всех файлов и директорий, расположенных в той же папке, что и .svn. Так же там находится информация о расположении репозитория, размере файлов, даты их изменения и логины пользователей, работающих над проектом. Уже не плохо, правда? Объясню, получается, если проект разрабатывается с помощью SVN, то заглянув по адресу draftcopy.ru/.svn/entries мы увидим файловую структуру корня проекта с авторами, последними изменениями, ссылкой на основную ветку репозитория итп.

Но можно пойти и далее. В той же папке .svn находится директори text-base, в которой лежат последние версии всех файлов, находящихся в репозитории. Картину дополняет так же и то, что файлы имеют не стандартное расширение (например .php), которое позволяет их сразу отправить на интерпретатор, а дополнительное расширение .svn-base, благодаря которому файл отдается запросившему его человеку «как есть», т.е. голый исходный код!

draftcopy.ru/.svn/text-base/index.php.svn-base

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

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


Уязвимость можно обойти несколькими путями. Путь в лоб — запретить обращаться к метадиректориям SVN по 80-ому порту, т.е. средствами вебсервера.
Решение для nginx
location ~ /.svn/ {
    deny    all;
}

Глобальных локейшенов в nginx`е нет, поэтому прийдется подписывать для каждой server области. Чтобы правило имело силу, необходимо загружать его до других локейшенов с регулярным выражением. Универсальный способ — первым локейшеном.
Решение для Apache
<Directory ~ ".*\.svn">
    Order allow,deny
    Deny from all
    Satisfy All
</Directory>

Тут немного проще, дописываем это в httpd.conf и на всех проектах под управлением apache чтение из директории .svn будет недоступно.
Решение средствами SVN
Защита от уязвимости средствами вебсервера — лечение болезни. Любой доктор скажет, что профилактика проще, легче и менее затратней, чем лечение. Поэтому лучшим решение будет отсутствие этих самых метадиректорий в корне проекта. Добиться этого можно средствами svn export из основной ветки.
Информация взята с twocomrades.ru
Как уже было сказано, было решено просканировать весь рунет на наличие подобной уязвимости. Были подняты прокси-сервера, написан парсер и получена свежая база доменов в зоне ru. Первая версия скрипта работала две недели, получая сайт за сайтом в один поток. К завершению сканирования, база насчитывала более 3000 уязвимых сайтов и занимала более ста гигабайт исходных кодов.

Проблемой первого сканировния было то, что скачивались все сорцы без разбора, не зависимо от того, отдавали они 200 или 500 код, а так же закачивалась графика и js-скрипты. А так же часто веб-сервера были настроены таким образом чтобы отдавать 200 код, даже если файл на самом дела отсутствовал.

Вторая версия скрипта была уже шустрее, работала в несколько потоков с двух серверных машин и правильно различала коды ответа содержимое полученных страниц. Мы обошли весь рунет за 4 дня. Дальнейшими планами была база доткомов. Стало очевидно, что при текущих ресурсах обход был бы выполнен как минимум за пару лет (зона com сейчас насчитывает более 700 млн доменов (против 2 млн ru)).

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

Прежде чем публиковать открыто информацию об уязвимости, необходимо было предупредить всех пострадавших. В первую очередь письма были разосланы гигантам (yandex.ru, rambler.ru, mail.ru, opera.com, rbc.ru, 003.ru, bolero.ru, habrahabr.ru, итого 19 адресов), затем, сегодняшней ночью, письма получили остальные 3000+ сайтов.

Выпуск этой статьи был задержан ожиданием пока opera.com закроет уязвимость на всех своих серверах.

Просканировано доменов: 2253388
Уязвимых: 3320

Статистики по оповещениям пока нет, возможна она будет опубликована через пару недель. Из крупных порталов, ответили шестеро. Самым оперативным оказался Яндекс, прислав ответное письмо ночью в воскресенье. Десять проектов никак не прореагировали на наши письма, три проекта закрыли уязвимость не поблагодарив.
Мы не злопамятные, мы запишем их имена…

Несколько интересных фактов:

  1. Киберсквотеры полюбили SVN, как и оптимизаторы;
  2. Единый CSS для календарей яндекса собирается из десятка CSS средстами $make из консоли 0_0;
  3. На проектах Рамблера пользуются сервисами Яндекса 0_0, найдены файлы «подтверждения домена» для сервисов Яндекса;
  4. РБК использует и сервисы яндекса и сервисы гугля и очень любят «сложные» пароли;
  5. Опера уважает MySQL, но сайт у них на голом html с реальными директориями и поддиректориями;
  6. Блондинка уважает CodeIgniter;
  7. PostgreSQL уважают движок wikimedia => PostgreSQL уважают MySQL 😉 ошибко ;-(
  8. Все проекты Футурико (и Лепра) написаны на perl.
  9. Порядка 10 сайтов со словами в домене типа «hack» и «secure» уязвимы;
  10. Многие уверены, что назвав директорию с phpmyadmin примерно «__xpma123uff__» но сохранив пароль в конфиг, это хорошая защита;
  11. Многие до сих пор хранят конфиги в inc файлах, без расширения .php, которые открываются как текст в браузере.

P.S. Во избежании конфликтов все исходные коды, полученные за время исследования были распечатанны и сожжены.
P.S.S. Два пункта:
  • абсолютно все, кто мог пострадать, получили предупреждения об уязвимости с точной датой обнародования заранее.
  • никакие исходные коды ни при каких условиях не будут опубликованы или проданы. Не стоит писать нам по этому поводу.

P.P.P.S. Спасибо за содействие хабрапользователю oowl.
P.P.P.P.S. Никаких сорцов самого поискового механизма Яндекса получено не было, однако были получены корни веб морды некоторых ресурсов. Верстка, xmlapi, xsl шаблоны итп. Ничего серьезного, разве что все адреса репозиториев, логины разработчиков итп. Кукуц, Бобук, расслабьтесь.

Игорь Сысоев, ведущий системный администратор компании Рамблер, разработчик известного своей легкостью веб-сервера nginx ответил на пару наших вопросов:

  • Q: Отчего сразу столько известных проектов пренебрегли такой элементарной возможностью утечки?
    A: Причин, я думаю, много — кто-то считает, что в .svn лежит всё то же самое, доступное и без .svn. Кто-то, возможно, просто не знал или забыл об .svn.
  • Q: Планируется ли внести в nginx возможность глобально перенаправлять URL (до директивы server, чтобы можно было при настройке сразу заблокировать потенциально опасные адреса)?
    A: Нет. Я считаю, что глобальные настройки в конечном итоге приводят к конфигурации, которую с каждым разом всё сложнее сопровождать.


Готовые решения на ASP.NET для создания веб-сайтов / Habr

Часто к платформе ASP.NET предявляют претензию об отсутствии готовых решений на основе которых можно стоить корпоративные сайты, форумы, блоги и т.д. и т.п. этом небольшом посте я привожу список самых популярных веб-приложений, написанных на ASP.NET, которые, к тому же, можно установить с помощью Web Platform Installer (WebPI).

Название
Особенности
Официальный сайт
WebPI
Блоги

BlogEngine.NET
Для BlogEngine.NET создано большое количество тем и расширений, есть возможность создавать собственные компоненты. Поддерживает SQL Compact и хранение данных в XML. www.dotnetblogengine.net
Установка
dasBlog
Не требует использования СУБД, данные хранятся в XML файлах.
www.dasblog.info
Установка
Subtext
Простой в использовании движок блогов с красивой архитектурой. Один из создателей — член команды разработки ASP.NET MVC Фил Хаак.
www.subtextproject.com
Установка
AtomSite
Удобная платформа для блогов, схожа с популярным движком WordPress.
www.atomsite.net
Установка
Системы управления контентом (CMS)

DotNetNuke
Одна из самых популярных CMS на .NET. Для DotNetNuke существует огромное количество разнообразных модулей и расширений.
www.dotnetnuke.com
Установка
Umbraco
Самая динамично развивающаяся CMS на .NET с открытым исходным кодом. Рассчитана для создания сайтов разной сложности — от промо-сайтов до крупных порталов.
www.umbraco.org
Установка
mojoPortal
Поддерживает большое количество СУБД MS SQL 2005/2008/SqlAzure, SQL CE, MySql, PostgreSql, SQLite, or Firbird Sql. Расширяется через механизм UserControl.
www.sourcetreesolutions.com
Установка
Kentico
Поддерживает расширенный функционал для создания социальных сетей.
www.kentico.com
Установка
Kooboo
CMS разработана на MVC Framework.
www.kooboo.com
N2 CMS
Проект с неплохой документацией в которой есть кросс-ссылки на более детальную информацию по платформе ASP.NET в MSDN. Может быть хорошим подспорьем при изучении ASP.NET.
www.n2cms.com
Установка
Orchard
Проект, создаваемый разработчиками из команды ASP.NET. Хороший пример расширяемой архитектуры.
www.orchardproject.net
Инструкция
Composite C1
Многофункциональная CMS. Удобный интерфейс управления контентом.
www.composite.net
Инструкция
Bitrix.NET
.NET версия самой популярной в России коммерческой CMS.
www.1c-bitrix.ru
AxCMS
CMS для создания крупных порталов.
www.axcms.net
Электронная коммерция

nopCommerce
Одно из самых популярных решений для электронной коммерции на .NET. Разрабатывается ребятами из Ярославля.
www.nopcommerce.com
Установка
Kartris
Движок интернет-магазина, написанный на VB.NET. Удобный интерфейс для пользователя сайта.
www.cactusoft.com
Установка
Форумы

YetAnotherForum.NET
Самый многофункциональный форум с открытым кодом на ASP.NET, простая система применения тем, возможность интеграции в существующий ASP.NET сайт.
www.yetanotherforum.net
Установка
Галереи

Gallery Server Pro
Движок для публикации галерей изображений, аудио и видео. Поддерживает Silverlight и Flash.
www.galleryserverpro.com
Установка
KiGG
Галерея новостей.
kigg.codeplex.com
Wiki-движки

ScrewTurn Wiki
Wiki-движок с поддержкой плагинов и тем. Возможность использования СУБД SQL Server или файлового хранилища.
www.threeplicate.com
Установка

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

Открыть исходники (почти) всего / Habr

На этот раз я бы хотел предложить к прочтению [вольный] перевод статьи Тома Престон-Вернера, одного из сооснователей GitHub, в которой он рассуждает о том, какие выгоды компания может извлечь из открытия своих проектов, какие проекты открывать не стоит и какова Единственно Правильная Лицензия. Хочу также отметить, что мнение переводчика не всегда совпадает с мнением автора оригинала. Ссылка на оригинал, как всегда, под текстом перевода.

Когда Крис и я начинали работу над GitHub в конце 2007, мы разделили работу на две части. Крис работал над Rail-приложением, а я работал над Grit, первым в истории адаптером Git для Ruby. После шести месяцев разработки, Grit стал достаточно законченным, чтобы обслуживать GitHub во время нашего публичного запуска сайта и мы встали перед интересным вопросом:

Стоит ли нам открыть исходники Grit или оставить его проприетарным?


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

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

Почему открыть исходники (почти) всего круто?


Если вы все делаете правильно, то открытые исходники это отличная реклама для вас и вашей компании. В GitHub нам нравится публично обсуждать библиотеки и системы, которые мы разработали и которые ещё закрыты, но обречены стать открытыми. Этот подход имеет несколько преимуществ. Это позволяет определить, что именно открыть и как много внимания надо этому уделить. Недавно, к всеобщему восторгу, мы открыли исходники Hubot, нашего чат-бота. За пару дней он набрал 500 подписчиков на GitHub и 409 голосов на Hacker News. Это выражается в одобрении GitHub и ещё большем количестве фанатов, чем когда либо ранее.

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

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

Если вы нанимаете разработчиков, то лучшее техническое собеседование это то, которое вам не нужно проводить, потому что разработчик уже проявил себя в одном из ваших открытых проектов. Как только технические навыки было предъявлены таким способом, всё что остается это убедиться в соответствии корпоративной культуре и убедить этого человека работать на вас. Если они увлечены открытым кодом, который они писали, и вы относитесь к тем компаниям, которые заботятся о качестве кода (а вы, очевидно, заботитесь), это должно быть просто! Мы наняли Висента Марти (Vicent Martí), после того, как мы увидели его яркую работу над libgit2, проектом который мы инициировали для извлечения функциональности Git в отдельную библиотеку на C. Технического собеседования не требовалось, Висент уже продемонстрировал свои навыки с помощью открытого кода.

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

Когда я начинаю новый проект, я предполагаю что он, в конечном счёте, будет открыт (даже если это маловероятно). Такая установка без усилий приводит к модульности. Если вы думаете о том, как другие люди, вне вашей компании, могут использовать ваш код, меньше шансов, что вы станете использовать проприетарные компоненты или жёстко связанные интерфейсы. Это, в свою очередь, приводит к более чистому и более поддерживаемому коду. Даже внутренний код должен притворяться открытым.

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

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

Ладно, но что я не должен открывать?


Это просто. Не открывайте ничего, что является основой бизнеса.

Вот несколько примеров того, что мы не отрываем, и почему:

  • Основное Rails-приложение (его проще продавать, когда оно закрыто)
  • Sinatra-приложение для управления задачами (специально тесно завязано на github.com)

А вот примеры того, что мы открыли, и почему:
  • Grit (адаптер для Git общего назначения, полезен для разработки множества инструментов)
  • Ernie (RPC-сервер общего назначения для BERT)
  • Resque (очереди общего назначения)
  • Jekyll (генератор статических сайтов общего назначения)
  • Gollum (wiki общего назначения)
  • Charlock_Holmes (определитель кодировок символов общего назначения)
  • Albino (подсветка синтаксиса общего назначения)
  • Linguist (определитель типов файлов общего назначения).

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

Какова Единственно Верная Лицензия?


Я предпочитаю MIT и почти всё, что мы в GitHub открываем, распространяется под этой лицензией.

Я люблю эту лицензию по нескольким причинам:

  • Она короткая. Любой может её прочитать и понять что конкретно она означает без необходимости потратить кучу денег на консультации с высокооктановыми юристами.
  • Она предоставляет достаточно защиты, чтобы быть уверенным, что вы не засудите меня, если что-то пойдёт не так, когда вы используете мой код.
  • Все понимают её правовые последствия. Странные лицензии, вроде WTFPL и Пивной лицензии (Beer license) претендуют на звание «самой свободной лицензии» но совершенно не достигают этой цели. Эти хитрые лицензии слишком расплывчатые и неисполнимые, что быть применимыми для некоторых компаний. С другой стороны, GPL слишком ограничивающая и догматичная, чтобы быть подходящей во многих случаях. Я хочу, чтобы мой код был полезен всем. Всем. Вот что должно значить Открытый, и вот что должно означать Свободный.

Как я могу начать?


Легко, просто сдвиньте этот переключатель на вашем репозитории на GitHub из «закрытый» в «публичный» и расскажите миру о вашем проекте с помощью вашего блога, твиттера или Hacker News и за кружкой пива в местном пабе. Затем откиньтесь на спинку стула, расслабьтесь и наслаждайтесь тем, что вы часть чего-то большего.

P.S. От себя хочу предложить читателям поучаствовать в опросе, чтобы выявить судьбу открытых проектов читателей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *