Pull to refresh

Дерек Сиверс: Почему мои программы и идеи публичны

Reading time4 min
Views18K
Original author: Derek Sivers
Как-то, во время ужина, моя подруга Валери заявила: «А мне все равно, если кто-нибудь обнаружит мои секреты. Потому что секрет – это всего лишь очередной факт, правильно? Так что если кто и залезет в мои личные вещи, например, и расстроится от того, что он там найдет – ну… это его проблемы».

Конечно, такое отношение меня заинтересовало и заставило задуматься.

Позже, когда мы выходили, я помог ей надеть плащ и подхватил сумочку. Сумочка оказалась такой тяжелой, что я не удержался и спросил: «Это что там такое?».
«— А, это, наверное, мои Большие дневники. Один дневник у меня личный, а второй… ну, вроде, очень-очень личного».

Вспомнив ее фразу о секретах, я не удержался от очевидного вопроса: «То есть мне можно почитать твой очень-очень личный дневник, да?»
Сначала она отшатнулась, потом задумалась, через несколько секунд рассмеялась и… согласилась.
Мы заказали по сидру и Валери терпеливо прождала минут 20, пока я прочту. Что было в дневнике? Куча страниц, заполненных словами. Разбор семейных проблем, формулировки целей, планы по изменению жизни, романтические подробности, списки разочарований и сожалений, тексты медитаций ну и т.д.

Удивительно, но для меня это было абсолютно бессмысленно. Т.е. для нее каждая страница дневника отражала целый мир, но для меня все это оказалось не содержательнее любой предыдущей нашей, не «по секрету», беседы. Это был обычный поток сознания, ну то, что постоянно крутится в голове у каждого из нас.

Позже я задумался о том, что сам держу в секрете.

Ну, например, об исходниках моих программ. Они у меня заперты на зашифрованном разделе/сервера/доступного только через SSH. Вся моя текущая работа. Очень-очень личная. Куда никому нельзя давать доступ!

Интересно, а что на самом деле произойдет, если кто-нибудь прочтет мой код? Он что, украдет его и разбогатеет? Серьезно?

Со временем я понял, что это как с дневниками Валери. Значимо для меня. Бессмысленно для остальных. Ну, так чего в таком случае напрягаться и прятать его? (Я понимаю, что есть и обратный аргумент: зачем напрягаться и делать его публичным?)

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

Ну, а все остальное перечислено здесь: sivers.org/projects. Наслаждайтесь!

P.S. Я никогда не утверждал, что все должно быть публично. Я только хочу сообщить, что делаю свой код и идеи доступными. И все. Мы тут не пытаемся решать, что Вы должны сделать публичным, а что держать в секрете – у каждого свои критерии. Каждый сам должен делать выбор того, что подходит именно ему.


Дерек Сиверс

Откуда вы могли о нем слышать:
Идея – лишь множитель при реализации.
Уроки лидерства от танцующего парня (первый последователь важен не меньше лидера).



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

База данных PostgreSQL


В проектах используется только PostgreSQL. Базы данных классические, с внешними ключами и ограничениями в самой схеме.
Я слышал все аргументы за NoSQL, и я порядочно наигрался с MongoDB, но все эти проекты используют PostgreSQL, так вот.

Центральная база данных со схемами


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

REST Сервер и простой клиент


Мне гораздо интереснее быть скорее серверным, чем фронт-энд спецом. Подразумевается, что каждый проект будет использоваться сторонними сайтами/приложениями/интерфейсами. Таким образом, каждый проект должен содержать полнофункциональный REST сервер, ну а сайт — это просто клиент, использующий REST API. Это обеспечивает уверенность в том, что все внешние клиенты имеют те же возможности, что и сайт, и пользовательский интерфейс отделен от внутренней функциональности.
Твиттер тут выступает в качестве примера для подражания. Так же, как большинство людей не посещают twitter.com напрямую, но используют другие инструменты, использующие API Твиттера, ни один из своих сайтов я не вижу в качестве очень популярного для посещения места, но рассматриваю их скорее как нормальный, крепкий «бэкенд», к которым другие люди могут написать отличные «фронтенды».
У REST сервера должна быть очень строгая авторизация/контроль каждого действия, так что клиент может быть простым. Любой должен иметь возможность написать свой полноценный клиент на Rails, Node, Android, iPhone, и т. д.

Многоязычность


Большинство сайтов полностью многоязычны. В качестве примера можно посмотреть на musicthoughts.com. Ничто не должно быть жестко прописано на английском. Техника установки/переключения языков одинакова для всех сайтов. (Для локализации нанимаются профессиональные переводчики)

Мультивалютность


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

Какой фреймворк?


Для API серверов я использую старый добрый Sinatra. Я до сих пор присматриваюсь к Grape, но на данный момент я не могу найти никаких больших преимуществ по отношению к простому Sinatra.
Для реальных БД-веб-приложение частей, я склоняюсь к AngularJS как к общему веб-фронтенду для всех моих проектов. Цена изучения ужасная, но я и выгоду я вижу.
Для разделов вебсайтов, абсолютно не требующих взаимодействия с БД, я большой поклонник старых простых, статичных сайтов. Как пример — можете заглянуть в код sivers.org.
Для CSS мне нравится Foundation, ну или простой, ручной работы CSS.
Tags:
Hubs:
+46
Comments34

Articles