ืืกืืฃ ืืื, ืืืืจืื ื ื-Technopark (Bauman MSTU), Technotrack (MIPT), Technosphere (Lomonosov Moscow State University) ื-Technopolis (Peter the Great St. Petersburg University Polytechnic University) ืืื ื ืขื ืคืจืืืงืื ืืชืขืืื ืฉืืื. ืฉืืืฉื ืืืืฉืื ืืืงืฆื ืืขืืืื, ืืืืืจ'ื ืืฉืงืืขื ืืืืืืชื ืืช ืืืืข ืืืืืืื ืืืืช ืฉื ืจืืฉื ืืืืื ืฉื ืชืืื ืฉื ืืืืืืื.
ืืกื ืืื, ืืื 13 ืคืจืืืงืืื ืืชืืื ืืืืืืื ื, ืฉืคืืชืจื ืืขืืืช ืฉืื ืืช ืืชืขืฉืืืช ืฉืื ืืช. ืืืืืื:
- ืืืกืื ืืขื ื ืขื ืืฆืคื ืช ืงืืฆืื ืงืจืืคืืืืจืคืืื;
- ืคืืืคืืจืื ืืืฆืืจืช ืกืจืืื ืื ืืื ืืจืืงืืืืืื (ืขื ืกืืคืื ืฉืื ืื);
- ืืื ืืื ืืืฉืืง ืฉืืื ืืืืชื ืืจืฉืช;
- ืืจืืืืงืืืจื ืืืืืืจ ืืืฉืื ืฉื ืืืืจืื ืจืคืืืืื;
- ืชืืื ื ืืืืจืืช ืืืื ืืืช ืกืคืจ ืืกืืื ืืช ืืกืืืืช ืืืืืืจืืชืืืืฆืื.
ืืื ืื ืคืจืืืงืืื ืืืืืืืช ืขืกืงืืืช:
- ืืขืจืืช CRM ืขืืืจ TamTam Messenger;
- ืฉืืจืืช ืืื ืืจื ื ืืืืคืืฉ ืชืืื ืืช ื ืืฉืืืืช ืขื ืืืคื ืขืืืจ Odnoklassniki;
- ืฉืืจืืช ืงืืืื ืืืืืืจืคื ืฉื ืืชืืืืช ืขืืืจ MAPS.ME.
ืืืื ื ืกืคืจ ืืื ืืืชืจ ืคืืจืื ืขื ืืืืฉื ืคืจืืืงืืื ืฉื ืืืืืจืื ืฉืื ื.
ืืืคืืฉ ืืืฉืื ืฉื ืืืืจืื ืจืคืืืืื
ืืฉื ื ืชืืืืื ืจืืื ืืชืืื ืืืืขื, ืฉืืื ืืื ืืื ืืชืืฆืข ืืืงืจ ืืชืคืจืกื ืืกืคืจ ืขืฆืื ืฉื ืืืืจืื ืืืืืื ืืชืื ืขืช. ืืื ืื ืืื ืืืืืืืช ืืืืข, ืคืืืืงื, ืืชืืืืงื, ืืืืืืืื, ืจืคืืื ืืขืื ืจืืื ืืืจืื.
ืืืืจืื
ื-SERP ืืืื ืจืฉืืื ืืืืจืืช ืฉื ืืกืืืื ืืฉืื ืืฉืืื ืฉืืื ืืืืืจืื, ืืืืืื ืืืื ืืื ืืงืฉืืจืื ืื ืืฉืืื ืืื ืืืืืฉืื ืืืืฆืขืืช ืืืืืื ืืกืชืืจืืชืืื ืื ืืฉืืื. ืืืฉืชืืฉ ืืืื ืืืืืฅ ืขื ืืืื ืืื ืืืืืืฉืื ืืื ืืฆืืฆื ืืช ืฉืืืืชืช ืืืืคืืฉ.
ืืื ืืืคืื ืืช ืืืืคืืฉ ืืืกื ืื ืชืื ืื ืืขื ืง ืฉื PubMed ืืืืืจ, ืืืืืจืื ืืชืื ืื ืืข ืืืคืืฉ ืืฉืืื ืฉื ืืชื ืืฉืื ืืงืืืช ืืื ืชืฉืชืืช.
ืืืืคืืฉ ืืชืืฆืข ืืฉืืืฉื ืฉืืืื:
- ืืกืืืื ืืืขืืืื ื ืืืจืื ืืืืฆืขืืช ืืื ืืงืก ืืคืื.
- ืืืืขืืืื ืืืืจืืื ืืืืฆืขืืช ืืืืืจืืชื BM25F, ืฉืืืงื ืืืฉืืื ืฉืืืช ืฉืื ืื ืืืกืืืื ืืืืื ืืืืคืืฉ. ืืคืืื, ืืืืืื ืืืืชืจืช ืืฉ ืืฉืงื ืจื ืืืชืจ ืืืืืื ืืชืงืฆืืจ.
- ืืขืจืืช ืืืืื ืืฉืืฉืช ืื ืืื ืืืืืฅ ืืช ืืขืืืื ืฉื ืืงืฉืืช ืชืืืคืืช.
ืืจืืืืงืืืจืช ืฉืืจืืช ืืืงืจื:
ืืขืืงืจืื, ื ืชืื ื ืืงืกื ืืืื ืื ืืืขืืจืื ืืื ืฉืืจืืชืื. ืขืืืจ ืืืืจืืืืช ืืขืืจื ืืืืืืช, ื ืขืฉื ืฉืืืืฉ ื-GRPC - ืืกืืจืช ืืืืืืจ ืืืืืืื ืืืจืืืืงืืืจืช ืืืงืจื-ืฉืืจืืช. ื ืขืฉื ืฉืืืืฉ ืืกืจืืืืืืฆืื ืฉื ื ืชืื ืื ืื ืืืืฆืขืืช ืคืืจืื ืืืืคืช ืืืืขืืช Protobuf.
ืืืื ืจืืืืื ืืืืืช ืืืขืจืืช:
- ืฉืจืช ืืขืืืื ืืงืฉืืช ืืฉืชืืฉืื ื ืื ืกืืช ื-Node.js.
- ืืงืฉืืช ืืืืืื ืขืืืกืื ืืืืฆืขืืช ืฉืจืช ื-proxy nginx.
- ืฉืจืช Flask ืืืืฉื ืืช REST API ืืืงืื ืืงืฉืืช ืืืืขืืจืืช ื-Node.js.
- ืื ืื ืชืื ืื ืืืืืืืื ืืืืขืืืืื, ืืื ืื ืืืืข ืฉืืืืชืืช, ืืืืืกื ืื ื- MongoDB.
- ืื ืืืงืฉืืช ืืชืืฆืืืช ืจืืืื ืืืืช ืืขืืฆืื ืืกืืืื ืขืืืจืืช ืื RabbitMQ.
ืืืืื ืืชืืฆืืืช ืืืคืืฉ:
ืื ืื ืื ื ืืชืื ื ืื ืืขืฉืืช ืืืืฉื:
- ืืืืฆืืช ืืขืช ืืืืืจ ืกืงืืจืืช ืื ืืฉื ื ืชืื (ืืืืื ื ืืฉืืื ืืฉืืืื ืืืกืื ืืืืคืืฉ ืืชืชื ืงืืืฆืืช ืฉื ืืกืืืื).
- ืืืคืืฉ ืงืืฆื PDF.
- ืคืืืื ืืงืกื ืกืื ืื.
- ืขืงืื ืืืจ ื ืืฉืืื ืืืืืืช ืืืืจื ืืื.
ืฆืืืช ืืคืจืืืงื: ืคืืืจ ืคืืจืืืืงืื, ืืืืืกืื ืืืจืื'ืื ืกืงื, ืืงืกืื ื ืืืื ืื, ืืงืกืื ืคืืืื
ืืืื ืืกืื
ืืืื, ืืืฉืจ ืืืืืื ืชืื ืืช ืืืืขื ืืืืฉื, ืืฉ ืืืืืื ืืืืืื ืืืช ืกืคืจ ืืกืืื (ืืืชืืช ื'-ื') ืืขืืืช ืืฉืืืื ืืืืืจ. ืื ืืกืฃ, ืื ืืชืืืืืื ืจืืฆืื ืืืฆืข ืืืืืช ืืืืช, ืขืืืื ืืืชืงืื ืชืืื ืืช ื ืืกืคืืช ืืืืฉืืืื. ืขื ืืืืจืื ืืืืืง ืืกืคืจ ืจื ืฉื ืคืชืจืื ืืช ืืืืื ืืืขืืืช, ืืืืงืจื ืฉื ืืืืื ืืจืืืง, ืขืืืื ืืคืชื ืื ืืชืืืืืืืื ืืงืืืช ืืืืืช ืืชืืืืืื.
ืืืืจื ืคืจืืืงื Block Log ืืืืขื ืืืกืงื ื: ืืืฉืจ ืืืืืื ืืืืื ืืืื ืืืช ืกืคืจ ืืกืืื ืืช ืืกืืืืช ืืืืืืจืืชืืืืฆืื, ืืืืฉ ืื ืฆืจืื ืืืืืช ืขื ืฉืื ืื ืคืงืืืืช ืฉืคืช ืชืื ืืช, ืืื ืขื ืื ืืืช ืืืืืจืืืช ืืืืืจืืชืืื. ืื ืืืคืฉืจ ืืชืืืืืื ืืืฉืงืืข ืืื ืืืืืฅ ืืชืื ืื ืืืืืจืืชื, ืืืงืื ืืืงืืื ืืืื ืื ืชืืืืจืืื ืืกืืจืืืื.
ืคืืืคืืจืื
- ืฆืืจ ืืขืจืื ืชืจืฉืืื ืืจืืื.
- ืืคืขื ืืช ืชืจืฉืืื ืืืจืืื ืฉื ืืฆืจื ืืจืื ืืช ืืชืืฆืื ืฉื ืขืืืืชื (ื ืชืื ื ืคืื).
- ืฉืืืจ ืืืขื ืคืจืืืงืืื ืฉื ืืฆืจื.
- ืฆืืืจ ืชืืื ืืช ืจืกืืจ (ืืฆืืจืช ืชืืื ื ืืืืืกืกืช ืขื ืืืืืจืืชื ืฉื ืืฆืจ ืขื ืืื ืืืื).
- ืงืืืช ืืืืข ืขื ืืืจืืืืช ืืืืืืจืืชื ืฉื ืืฆืจ (ืืืชืืกืก ืขื ืืกืคืจ ืืคืขืืืืช ืฉืืืฆืขื ืืืืืืจืืชื).
ืฆืคืืื ืืืืงืช ืชืคืงืืืื ืืืืจืื ืืืชืืืืืื. ืื ืืฉืชืืฉ ืืงืื ืกืืืืก ืชืืืื; ืืื ืืงืื ืกืืืืก ืืืจื, ืขืืื ืืคื ืืช ืืื ืื ืืืขืจืืช. ืืืืจื ืืืื ืื ืจืง ืืืืื ืชืืืืจืื ืืชื ืืื ืฉื ืืขืืืช, ืืื ืื ืืืฆืืจ ืืืื ืื ืืืืืืืืื ืฉืืืฉืงื ืืืืืืืืช ืืืฉืจ ืชืืืื ืืืืฉ ืคืชืจืื ืืืขืื ืืืขืจืืช.
ืขืืจื ืืืื ื ืืกืืืช ืืคืืคื:
ืืืืจ ืคืชืจืื ืืืขืื, ืืชืืืื ืืืื ืืืืจืื ืืช ืืคืชืจืื ืืืจืืืช ืืช ืืชืืฆืืืช:
ืืคืืืคืืจืื ืืืจืืืช ืืืคืืืงืฆืื ืืืืชืืช ื-Vue.js ืืืืคืืืงืฆืื ืืืืจื ื-Ruby on Rails. PostgreSQL ืืฉืืฉ ืืืกืืก ืื ืชืื ืื. ืืื ืืคืฉื ืืช ืืคืจืืกื, ืื ืจืืืื ืืืขืจืืช ื ืืจืืื ืืงืื ืืืื ืจืื ืฉื Docker ืืืืจืืืื ืืืืฆืขืืช Docker Compose. ืืจืกืช ืฉืืืื ืืขืืืื ืฉื Block Log ืืืืกืกืช ืขื ืืกืืจืช Electron. Webpack ืฉืืืฉ ืืื ืืืช ืงืื JavaScript.
ืฆืืืช ืืคืจืืืงื: ืืืืกื ืืจ ืืจืืื, ืืงืกืื ืงืืืืืืืงืื, ืงืืจืื ืงืืฆ'ืจืื.
ืืขืจืืช CRM ืขืืืจ TamTam Messenger
CRM ืืื ืืื ืืืื ืืจืืงืฆืื ื ืืื ืืื ืขืกืงืื ืืืฉืชืืฉื TamTam. ืืคืื ืงืฆืืืช ืืืืืช ืืืฉืื:
- ืืื ื ืืืืื ืืืืคืฉืจ ืืืฆืืจ ืืืืื ืืื ืืืฉืืจื ืชืื ืืช. ืชืื ืืกืคืจ ืืงืืช ืืชื ืืืื ืืงืื ืืื ืขืืื ืืืืืื ืฉืืืื ืื ืจืง ืืืฆืื ืืืืข ืืืฉืชืืฉืื, ืืื ืื ืืืกืืฃ ื ืชืื ืื, ืืืื. ืงืืฆืื ืฉืื ืื ืืืขืจืืช ืืืื ืืืฆืื ืืืืืจ ืืืชืจ.
- RSS. ืืชื ืืืื ืืงืืืช ืืืืจ RSS ืืื ืขืจืืฅ.
- ืคืจืกืื ืืืืืจ. ืืืคืฉืจ ืื ืืฉืืื ืืืืืืง ืืืืขืืช ืืืื ืื ืืืืืจืื ืืจืืฉ.
ืืฆืืืช ืื ืืงื ืืืง ืืืืืงืช ื-Bot API, ืืืฆืจ ืืกืคืจ ืืืืื ืฉื ืืชืื ืืขืฆืื, ืืื ืืื ืขืืืจ ืืืืข ืืขืืื ืืืืงื 2019, ืืื ืืจืืฉืื/ืืจืฉืื ืืฉืืจืืช ืฉืื ื ืืืื ืขืืืจ CI/CD.
ืชืฉืชืืช ืคืชืจืื ืืช:
- ืฉืจืช ืื ืืืื ืืืื ืืขืจืืช ื ืืืืจ ืืื ืฉืจืช ืืืื ืงืื ืืืื ืจ Docker ืฉืขืืื ืขื ืื ืช ืืืชืจ ืืขืื ืืืืืจืืช ืืื ืืืืช ืืืคืชืืจ ืืืชื, ืืฆืคืืช ืืืืืื ืฉืื ืื ืืกืืืืกืืืงืืช ืฉืืืืฉ. ืืฉื ื ืื ืืขืจืืช ืื ืืืื ืชืฆืืจื ืืจืืืง ืฉื ืืืคืืืงืฆืื ืฉืื ื.
- ืฉืจืช ื-Staging ืืืื ืืช ืืืจืกื ืื ืืืืืช ืฉื ืืืคืืืงืฆืื ืฉืื ื, ืืืืื ื ืืืืืงื ืืืืืช ืขื ืืื ืฆืืืช ืืคืืชืื.
- ืฉืจืชื ื ืืืื ืืืืขืจืืืช ืืืื ืื ืจืง ืืจื VPN ืืืคืชืืื, ืืฉืจืช ืืืืฆืืจ ืืืื ืืช ืืจืกืช ืืฉืืจืืจ ืฉื ืืืคืืืงืฆืื. ืืื ืืืืื ืืืืืื ืฉื ืืคืชืืื ืืืืื ืจืง ืืืฉืชืืฉ ืืงืฆื.
- ืืขืจืืช ื-CI/CD ืืืืืขื ืืืืฆืขืืช Github ื-Travis, ืืืืขื ืืืืฆืขืืช ืืื ืืืชืื ืืืฉืืช ื-TamTam.
ืืจืืืืงืืืจืช ืืืคืืืงืฆืื ืืื ืคืชืจืื ืืืืืืจื. ืืืคืืืงืฆืื, ืืกื ืื ืชืื ืื, ืื ืื ืืชืฆืืจื ืืื ืืืืจ ืืืคืขืืื ืืงืื ืืืื ืจืื ื ืคืจืืื ืฉื Docker, ืื ืฉืืืคืฉืจ ืืืคืฉื ืืกืืืืช ืืืฉืงื, ืืฉื ืืช ืื ืืืคืขืื ืืืืฉ ืงืื ืืืื ืจ ื ืคืจื. ืืฆืืจืช ืืืคืืืืืืืช ืจืฉืช ืื ืืืื ืงืื ืืืื ืจืื ื ืขืฉืื ืืืืฆืขืืช Docker Compose.
ืฆืืืช ืืคืจืืืงื: ืืืืกืื ืื ืืืคืืื, ืืืืจ ืืืจืืืืื, ืืืืกืื ืงืืืืืกืงื.
ForkMe
ืคืจืืืงื ForkMe ืืื ืคืืืคืืจืื ืืฆืคืืื ืืกืจืืื ืื ืืื ืืจืืงืืืืืื, ืื ืชืืืื ืืืฆืืจ ืกืจืืื ืืฉืืื ืืืืจืืืช ืืืชื ืืืืจืื ืฉืืื. ืืื ืื ืื ื ืฆืจืืืื ืกืจืืื ืื ืืื ืืจืืงืืืืืื ืื ืืฉ ืืืื ืจืืืืื?
ืืขืืืื ืืื-ืืื ืืจืืช ืฉื ืืกืจืืื ืืืืืืืช ืืืืืจ ืืช ืืืืฉื ืืขืฆืื ืืืคืฉืจืืช ืืฆืืคื ืืืืืช ืืขืืจื, ืืืืฆืจื ืชืืื ืืืืื ืืืฆืื ืกืืคืืจืื ืืืืืืืื ืฉืขืืืืชื ืชืืฉืคืข ืืืืฉืชืืฉืื. ืืื ืื, ืืืฆืจื ืชืืื, ืขื ืืื ืืืืื ืกืืืืกืืืงืืช ืืืจืืช ืืืืื, ืืืืื ืืืืื ืื ืืื ืืขื ืืื ืืช ืืงืื ืืืืคืื ืืืืจืื ืืืืจืงืืืืืื ืืืชืจ.
ืืขืช ืคืืชืื ืืคืจืืืงื, ืืืืจ'ื ืงืืืื ืืฉืจืื ืืืกืจื ืืืื ืืจืืงืืืื Bandersnatch ืืืืช ื ืืคืืืงืก, ืฉืืื ืืฆืคืืืช ืจืืืช ืืืืืงืืจืืช ืืืืืช. ืืฉื-MVP ืืืจ ื ืืชื, ืืืคืืขื ืืืฉืืช ืฉืืืืืื ืืชืื ื ืื ืืืฉืืง ืคืืืคืืจืื ืืกืืจืืช ืืื ืืจืืงืืืืืืช, ืื ืฉืืืฉืจ ืฉืื ืืช ืืคืืคืืืจืืืช ืฉื ืืืืืื ืืื.
MVP ืืืื: ื ืื ืืื ืืจืืงืืืื, ืืื ื ืืืืื, ืืืคืืฉ ืืคื ืชืืื ืืชืืืืช, ืืืกืคื ืืืืื, ืืขืจืืช, ืฆืคืืืช, ืืืจืืืื, ืขืจืืฅ ืืคืจืืคืืื ืืฉืชืืฉืื.
ืขืจืืืช ืืื ืืืืืื ืืฉืืืืฉ ืืคืจืืืงื:
ืืืฆื ืืชืืื ื ืืคืชื ืืช ืืคืจืืืงื:
- ืืืกืฃ ืกืืืืกืืืงืืช ืืืื ืคืืืจืคืืงืืช ืขื ืืขืืจืื ืืืืืืื;
- ืืชืจืืืช ืืืืืขืืช ืืืฉืืืช ืืืฉืชืืฉื ืืืชืจ;
- ืืจืกืืืช ืขืืืจ ืื ืืจืืืื ื-iOS.
ืืืืจ ืืื ืื ื ืืชืื ื ืื ืืืืกืืฃ:
- ืืฆืืจืช ืกืืคืืจื ืืืืื ืืืืืคืื ืฉืื;
- ืขืจืืืช ืงืืขื ืืืืื ืฉืืืจืื (ืืืืืื ืืืชืื);
- ืืฆืืจื ืืืฉืงื ืฉื ืคืจืกืื ืืื ืืจืืงืืืื ืื ืื.
ืฆืืืช ืืคืจืืืงื: ืืงืกืื ืืืจื (ืืคืชื fullstack, ืขืื ืขื ืืจืืืืงืืืจืช ืืคืจืืืงื) ืืจืืื ืืกืืื (ืืคืชื fullstack, ืขืื ืขื ืชืื ืื ืืคืจืืืงื).
On-Line-On-Board
ืืืื ืืืืจืื ืืงืืืฉืื ืชืฉืืืช ืื ืจืื ืืืชืคืชืืืช ืื ืคืฉืืช ืฉื ืืืืืื, ืืืืืื ืืชืขื ืืื ืื ืืืฉืืงืื ืืื ืืืงืืืืืืื. ืืื, ืืฉืืื ืฉืื โโืฆืืืจ ืคืืคืืืจืืืช. ืืืืจืืช ืฉืืื ืืืืคื ืืืื ืื ืคืืคืืืจื, ืืฆืืืช ืืจืื ืงืืืข ืืืฉืืงืื ืืื ืืขืืืชืืช. ืืื, ืื ืฉืื ืจืืื ืืฉืชืืฉืื ืืฉืืจืืชื ืฉืืื ืืงืืื ืื, ืืืจืืช ืืขืืืื ืฉืฉืืงื ืื ืจืืื ืืขืืืคืื ืืฉืืง "ืื" ืขื ืืืื ืืืืชืืื. ืขื ืืืช, ืืืฉืจ ืืฉืืง ืฉื, ืืื ืืฉืงืืข ืืืืฅ ื ืคืฉื ืจื ืืืชืขืืืฃ, ืืืขืืืคืืช ืื ืืฉืืืื ืืืฉืคืขื ืืฉืืืืืช ืฉื ืืฉืืื ืืื ืืืฉื ืื ืกืืืจืืคืื. ืืชืืฆืื ืืื, ืืืื ืืืคื ืืขืืืก ืืชืจ ืืืืจ ืฉื ื ืืฉืืงืื ืืืื.
ืื ืืืืจืืื ืืืื ืืืคื ืืช ืืืืืจืื ืืจืขืืื ืฉื ืคืจืืืงื On-Line-On-Board, ืืืืจืื ืืฉืืืฉื ืืืงืื: ืืื ืฉืืื ืคืืื, ืืืฉืื ืฉืืืื ืขืืืื ืืฉืืจืืช ืืื ืืจื ื. ืืืื ืืื ืืืจืฉ ืฉืืื ืจืืื, ืืืืื ืืช ืืืงืืื ืฉื ืืืืื ืืืขืืจืช ืืืืื ืงื ืืฆืืื ืืช ืืืืื ืืืจืื. ืืืื ืืืืืจ ืืืืฆืขืืช USB ืืืืฉื ืืืชืงืฉืจ ืขื ืืืฉืื ืฉืืืื ืืขืืืื. ืืืฆื ืืืืืื (ืืื ืืืืืื), ืืืืืืื ืืืคืฉืจืืื ืฉืื ืืืืืฉืื.
ืืืคืืืงืฆืื ืืฉืชืืืช ืขื ืืคืื ืงืฆืืืช ืืืกืืกืืืช ืฉื ื ืืืื ืืืื, ืื ืฉืืืคืฉืจ ืืืืืื ืืืื ืืช ืขืืืชื ืืืืืื ืืช ืืืฉืื ืจืื ืืคืื ืงืฆืืืช ืืจืืช ืืชืืื ื. ืืืคืืืงืฆืื ืืชืงืฉืจืช ืขื ืฉืืจืืช ืืื ืืจื ื ืฉืืขืจื ืืขืืงืจื ืฉืื ืืื ืขืืืื ืืื ืื.
ืืชืจืืืฉ ืืขืืงืจื ืืฉืืืืฉ ืืืืฆืจ: ืืื ืืื ืืฉืืง ืืฉืืจืืช, ืืฉื ื ืืืื ืคืืื ืืืืืืจ ืืฉืืจืืช. ืืืืืจ, ืืฉืืจืืช ืืงืื ืคืื ืงืฆืื ืชืงืฉืืจืชืืช.
ืฆืืืช ืืคืจืืืงื: ืื ืืื ืืืืื, ืื ืืื ืืืืืจืืื, ืกืฉื ืงืืื ืฆืื.
ืชืืื ืืงืจืื ืขืื ืขื ืืคืจืืืงืืื ืืืื ืืืืื ืฉืื ื ืืืชืืืช
ืืงืืจ: www.habr.com