📜 ⬆️ ⬇️

Derek Sivers: Why are my programs and ideas public?

Somehow, during dinner, my friend Valerie said: “But I don’t care if someone discovers my secrets. Because the secret is just another fact, right? So if anyone gets into my personal belongings, for example, he will be upset that he will find there - well ... these are his problems. ”

Of course, this attitude interested me and made me think.

Later, when we were leaving, I helped her put on her raincoat and grabbed her purse. The handbag was so heavy that I could not resist and asked: "What is it there?".
“- Ah, these are probably my Big Diaries. I have a personal diary, and the second ... well, it seems, very, very personal. ”

Remembering her phrase about secrets, I could not resist the obvious question: “So I can read your very, very personal diary, yes?”
At first she recoiled, then she thought about it, after a few seconds she laughed and ... agreed.
We ordered cider and Valerie patiently waited about 20 minutes while I read. What was in the diary? A bunch of pages filled with words. Analysis of family problems, formulation of goals, plans for life change, romantic details, lists of disappointments and regrets, texts of meditations, etc.
')
Surprisingly, but for me it was absolutely meaningless. Those. for her, each page of the diary reflected the whole world, but for me it all turned out to be no more meaningful than any of our previous, not “secret”, conversations. It was an ordinary stream of consciousness, well, that is constantly spinning in each of our heads.

Later, I thought about what I kept secret.

Well, for example, about the source code of my programs. They are locked on an encrypted partition / server / accessible only through SSH. All my current work. Very, very personal. Where nobody should be given access!

I wonder what really happens if someone reads my code? Is he stealing it and getting rich? Seriously?

Over time, I realized that it was like Valerie’s diaries. Meaning to me. Pointless for the rest. Well, so what, in this case, to strain and hide it? (I understand that there is a reverse argument: why strain and make it public?)

But life is a constant experiment, so I decided to open all my source programs and business ideas and put them into open access, just to see what happens.
I want to overcome this fear, the fear that someone is going to steal our ideas.
In fact, for more than two years, all these business ideas have been published in free access on my website , but no one has yet “stolen” them. By the way, I invite you to try - I will add new ones.

Well, everything else is listed here: sivers.org/projects . Enjoy!

PS I never claimed that everything should be public. I just want to let you know that I am making my code and ideas accessible. And that's all. We are not trying to decide here what you have to make public and what to keep secret - each has its own criteria. Everyone must make the choice of what is right for him.


Derek Sivers

How could you hear about him:
The idea is only a multiplier in the implementation .
Leadership lessons from a dancing guy (the first follower is as important as the leader) .



UPD: If you’re really going to see Derek’s code, you may be interested in reading a brief summary from his site:
Technology Preferences

PostgreSQL database


Projects use PostgreSQL only. The databases are classic, with foreign keys and constraints in the schema itself.
I heard all the arguments for NoSQL, and I pretty much played enough with MongoDB, but all these projects use PostgreSQL, and so.

Central schema database


Instead of duplicating information between projects, information about people is stored in a central database and all other projects (users, clients, employees, etc.) simply refer to it by person_id. To maintain strict foreign key relationships, now all projects are in the same database, separated only by different schemes.

REST Server and simple client


It is much more interesting for me to be server-based rather than front-end specialist. It is understood that each project will be used by third-party sites / applications / interfaces. Thus, each project must contain a full-featured REST server, and a site is simply a client using the REST API. This ensures that all external clients have the same capabilities as the site, and the user interface is separate from the internal functionality.
Twitter here serves as an example to follow. Just as most people do not visit twitter.com directly, but use other tools that use the Twitter API, I don’t see any of my sites as a very popular place to visit, but I consider them rather like a normal, strong “backend”, to which other people can write excellent "frontends".
The REST server must have very strict authorization / control for each action, so the client can be simple. Anyone should be able to write their full-fledged client on Rails, Node, Android, iPhone, etc.

Multilingualism


Most sites are fully multilingual. As an example, you can look at musicthoughts.com. Nothing should be strictly written in English. The technique of installing / switching languages ​​is the same for all sites. (Professional translators are hired for localization)

Multicurrency


All sites dealing with money support multiple currencies. Money is always stored as a currency code and in thousandths of a cent. This allows the database to work only with integers to avoid computation errors for floating-point numbers. The Money class, which is common to all, knows how to correctly display each of the currencies, or how to convert one into another.

What is the framework?


For API servers I use the good old Sinatra. I still look at Grape, but at the moment I can not find any great advantages with respect to simple Sinatra.
For real db-web app parts, I tend to AngularJS as a common web front end for all my projects. The price of studying is terrible, but I see the benefits.
For sections of websites that absolutely do not require interaction with the database, I am a big fan of the old simple, static sites. As an example, you can have a look at the sivers.org code.
For CSS, I like Foundation, well, or simple, handmade CSS.

Source: https://habr.com/ru/post/206106/


All Articles