Derek Sivers:なぜ私のプログラムとアイデアが公開されているのか

かつて、夕食時に友人のヴァレリーは言った。「しかし、誰かが私の秘密を見つけても構わない。 秘密は別の事実にすぎないので、そうですか? たとえば、誰かが私の個人的なことに興味を持ち、彼がそこで見つけたものに腹を立てた場合-それは...彼の問題です。」



もちろん、この態度に興味があり、考えさせられました。



後で、私たちが出かけたとき、私は彼女がコートを着るのを手伝い、財布をつかみました。 ハンドバッグは非常に重いため、抵抗することができず、「それは何ですか?」

「-ああ、これらはおそらく私のビッグダイアリーです。 1つの日記は私にとって個人的なものであり、2つ目は...まあ、非常に非常に個人的なものです。」



秘密についての彼女の言葉を思い出して、私は明白な質問に抵抗することができませんでした:「それは、私はあなたの非常に、非常に個人的な日記を読むことができますね?」

最初、彼女は反動し、数秒後に彼女は笑い、そして同意しました。

私たちはサイダーを注文し、私が読んでいる間、ヴァレリーは約20分間辛抱強く待っていました。 日記には何がありましたか? 言葉で満たされたページの束。 家族の問題の分析、目標の声明、人生を変える計画、ロマンチックな詳細、失望と後悔のリスト、瞑想のテキストなど



驚いたことに、私にとってはまったく無意味でした。 つまり 彼女にとって、日記の各ページは全世界を反映していましたが、私にとってはすべてが以前の「秘密の」会話ではなく、意味のあるものでした。 それは、私たち一人一人の頭の中を常に回っている、普通の意識の流れでした。



後で、私自身が秘密にしておいたものについて考えました。



たとえば、私のプログラムのソースについてです。 それらは暗号化されたパーティション/サーバーにロックされており、SSH経由でのみアクセスできます。 私の現在のすべての仕事。 非常に個人的なものです。 誰にもアクセスを許可しない場所!



誰かが私のコードを読んだらどうなるのだろうか? 彼はそれを盗んで金持ちになりますか? ほんと?



時間が経つにつれて、私はそれがヴァレリーの日記と似ていることに気づきました。 私にとって重要です。 残りには意味がありません。 それでは、なぜ緊張させて隠すのでしょうか? (私は逆の議論があることを理解しています:なぜそれを公開しますか?)



しかし、人生は現在進行中の実験であるため、プログラムとビジネスアイデアのすべてのソースコードを開いて、パブリックドメインに配置することにしました。

誰かが私たちのアイデアを盗もうとしているという恐怖を克服したい。

実際、2年以上にわたって、これらのビジネスアイデアはすべて私のWebサイトに自由に公開されていますが 、まだ誰も「盗んだ」ことはありません。 ちなみに、試してみてください-新しいものを追加します。



さて、他のすべてはsivers.org/projectsにリストされています。 お楽しみください!



PSすべてを公開すべきだと主張したことはありません。 私は自分のコードとアイデアをアクセシブルにすることをあなたに知らせたいだけです。 そしてそれだけです。 私たちはあなたが何を公開すべきか、何を秘密にするべきかを決定しようとはしていません-それぞれに独自の基準があります。 誰もが自分に合ったものを選択する必要があります。




デレク・シヴァーズ



どうやって彼について聞くことができますか:

アイデアは実装の要素にすぎません

ダンスをする人からのリーダーシップのレッスン(最初のフォロワーはリーダーよりも重要です)






UPD:Derekのコードを実際に見る場合は、彼のサイトから短い要約を読んで開始してください。
テクノロジー設定

PostgreSQLデータベース



プロジェクトはPostgreSQLのみを使用します。 データベースはクラシックであり、スキーマ自体に外部キーと制限があります。

NoSQLのすべての議論を聞いたし、MongoDBをかなり試しましたが、これらのプロジェクトはすべてPostgreSQLなどを使用しています。



中央スキーマデータベース



プロジェクト間で情報を複製する代わりに、人々に関する情報は中央データベースに保存され、他のすべてのプロジェクト(ユーザー、顧客、従業員など)は単にperson_idによって参照されます。 厳密な外部キー関係を維持するために、すべてのプロジェクトが同じデータベース内にあり、異なるスキームのみで分離されています。



RESTサーバーとシンプルクライアント



私は、フロントエンドのスペシャリストではなくサーバーになりたいと思っています。 各プロジェクトは、サードパーティのサイト/アプリケーション/インターフェースによって使用されることが理解されています。 したがって、各プロジェクトには完全に機能するRESTサーバーが含まれている必要があり、サイトはREST APIを使用する単なるクライアントです。 これにより、すべての外部クライアントがサイトと同じ機能を持ち、ユーザーインターフェイスが内部機能から分離されます。

ここのツイッターは従うべき例として役立ちます。 ほとんどの人がtwitter.comに直接アクセスするのではなく、Twitter APIを使用する他のツールを使用するように、私のサイトは訪問するのに非常に人気のある場所ではありませんが、通常の強力な「バックエンド」のようです。他の人が素晴らしい「フロントエンド」を書くことができます。

クライアントをシンプルにするために、RESTサーバーには各アクションの非常に厳密な許可/制御が必要です。 誰でもRails、Node、Android、iPhoneなどで完全なクライアントを作成できるはずです。



多言語



ほとんどのサイトは完全に多言語です。 例として、musicthoughts.comをご覧ください。 英語で何も書いてはいけません。 言語のインストール/切り替えの手法は、すべてのサイトで同じです。 (プロの翻訳者がローカライズのために雇われます)



多通貨



お金を扱うすべてのサイトはいくつかの通貨をサポートしています。 お金は常に通貨コードとして1000分の1セント単位で保存されます。 これにより、浮動小数点の計算エラーを回避するために、データベースは整数のみで動作できます。 すべてに共通のMoneyクラスは、各通貨を正しく表示する方法、または通貨を別の通貨に変換する方法を知っています。



どのようなフレームワークですか?



サーバーAPIには、古き良きSinatraを使用します。 まだグレープを見ていますが、現時点ではシンプルなシナトラに比べて大きな利点はありません。

実際のデータベースWebアプリケーションパーツの場合、私はすべてのプロジェクトの共通WebフロントエンドとしてAngularJSに傾倒しています。 勉強にかかる費用はひどいですが、私には利点があります。

データベースとの対話を絶対に必要としないWebサイトのセクションについては、私は古いシンプルで静的なサイトの大ファンです。 例として、sivers.orgコードを見ることができます。

CSSについては、Foundation、まあ、またはシンプルな手作りのCSSが好きです。




All Articles