{"id":284687,"date":"2017-04-10T00:00:02","date_gmt":"2017-04-09T20:00:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=284687"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=284687","title":{"rendered":"\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0441\u0432\u0435\u0436\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u0432 \u0438\u0437 \u043c\u0438\u0440\u0430 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043d\u0435\u0434\u0435\u043b\u044e \u2116257 (3 \u2014 9 \u0430\u043f\u0440\u0435\u043b\u044f 2017)"},"content":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c1d\/287\/101\/c1d287101ce9436ba5d897700aa9e49f.png\"\/><\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<table>\n<tbody>\n<tr>\n<td><a href=\"#webdev\"><b>\u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/b><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#css\"><b>CSS<\/b><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#js\"><b>Javascript<\/b><\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"#intresting\"><b>\u0417\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435<\/b><\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3><a name=\"webdev\"><\/a><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b70\/f9f\/eae\/b70f9feaeee78b42a0c78c3731555e73.gif\"\/> \u0412\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430<\/h3>\n<p>   <\/p>\n<ul>\n<li><a href=\"http:\/\/fronterki.fm\/post\/159297855437\/suzdalev\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u0424\u0440\u043e\u043d\u0442\u0451\u0440\u043a\u0438 #004<\/a>: \u0412\u0438\u043a\u0442\u043e\u0440 \u0421\u0443\u0437\u0434\u0430\u043b\u0435\u0432, \u0445\u0438\u043f\u0441\u0442\u0435\u0440\u044b \u043e\u0442 \u043a\u043e\u0434\u0430 \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u043e\u0434\u0445\u043e\u0434<\/li>\n<li><a href=\"https:\/\/tproger.ru\/translations\/frontend-testing-1\/\">\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 \u0444\u0440\u043e\u043d\u0442\u044d\u043d\u0434-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><a href=\"https:\/\/medium.com\/devschacht\/how-to-write-your-own-virtual-dom-c166b56cf01f\">\u041a\u0430\u043a \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432\u0430\u0448 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 DOM<\/a><\/li>\n<li><a href=\"http:\/\/www.cossa.ru\/152\/157200\/\">\u041a\u0430\u043a \u0412\u0412\u0421 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0441\u0430\u0439\u0442\u044b: 7 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/www.webdesignerdepot.com\/2017\/04\/the-state-of-front-end-tooling\/\">\u0421\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 front-end \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f \u0432 2017<\/a><\/li>\n<li>PWA:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"\/> <a href=\"https:\/\/habrahabr.ru\/company\/webo\/blog\/325788\/\">PWA, \u00ab\u0417\u043b\u043e\u0432\u0435\u0449\u0430\u044f \u0434\u043e\u043b\u0438\u043d\u0430\u00bb \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u043e\u0444\u043b\u0430\u0439\u043d\u0435<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/blog.twitter.com\/2017\/how-we-built-twitter-lite\">\u041a\u0430\u043a \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 Twitter Lite<\/a>. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0437\u0430\u043c\u0435\u0442\u043a\u0430 \u0432 \u0431\u043b\u043e\u0433\u0435 \u0442\u0432\u0438\u0442\u0442\u0435\u0440\u0430 \u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0438 Progressive Web App \u043d\u0430 mobile.twitter.com.<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/www.stefanjudis.de\/three-things-to-consider-before-your-progressive-web-app-goes-standalone.html\">\u0422\u0440\u0438 \u0432\u0435\u0449\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c, \u043a\u0430\u043a \u0432\u0430\u0448\u0435 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u043e\u0435 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u043c<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> Progressive Web Apps: \u043d\u0435\u0442\u0435\u0445\u043d\u0438\u0447\u0435\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e <a href=\"https:\/\/medium.com\/pastportal\/progressive-web-apps-the-non-technical-guide-17ef112038d9\">\u0447\u0430\u0441\u0442\u044c 1<\/a>, <a href=\"https:\/\/medium.com\/pastportal\/progressive-web-app-the-non-technical-guide-part-2-3f6d74d1a98b\">\u0447\u0430\u0441\u0442\u044c 2<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/ibm-watson-data-lab\/offline-sync-for-progressive-web-apps-ccab6bf6db17\">\u041e\u0444\u0444\u043b\u0430\u0439\u043d \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f Progressive Web Apps<\/a><\/li>\n<\/ul>\n<p>   <\/li>\n<li>Browsers:<br \/> \n<ul>\n<li><a href=\"https:\/\/medium.com\/devschacht\/using-the-chrome-devtools-new-code-coverage-feature-6535bc26c97b\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 code coverage\u200a\u2014\u200a\u043d\u043e\u0432\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 Chrome devtools.<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/www.smashingmagazine.com\/2017\/04\/browser-extension-edge-chrome-firefox-opera-brave-vivaldi\/\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445: Edge, Chrome, Firefox, Opera, Brave \u0438 Vivaldi<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/@patrickbrosset\/a-quick-history-of-firefox-devtools-620d3074b510\">\u041a\u0440\u0430\u0442\u043a\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f Firefox DevTools<\/a><\/li>\n<\/ul>\n<p>   <\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/www.sitepoint.com\/design-tricks-with-svg-filters-a-masked-blur-effect\/\">\u0414\u0438\u0437\u0430\u0439\u043d\u0435\u0440\u0441\u043a\u0438\u0435 \u0442\u0440\u044e\u043a\u0438 \u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u043c\u0438 SVG: \u044d\u0444\u0444\u0435\u043a\u0442 \u0440\u0430\u0437\u043c\u044b\u0442\u0438\u044f \u043f\u043e \u043c\u0430\u0441\u043a\u0435<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/arjs\/augmented-reality-in-10-lines-of-html-4e193ea9fdbf\">\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0432 10 \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u043a\u043e\u0434\u0430 \u043d\u0430 HTML<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/blog.153.io\/2017\/03\/08\/you-dont-get-amp\/\">\u0412\u044b \u043d\u0435 \u043f\u043e\u043d\u044f\u043b\u0438 AMP<\/a>. \u041f\u043e\u044f\u0441\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u0432<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/freebiesupply.com\/blog\/top-monospace-fonts-for-developers\/\">\u0422\u043e\u043f \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u043d\u043e\u0448\u0438\u0440\u0438\u043d\u043d\u044b\u0445 \u0448\u0440\u0438\u0444\u0442\u043e\u0432 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/hiddedevries.nl\/en\/blog\/2017-04-04-how-to-make-error-messages-accessible\">\u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <img decoding=\"async\" alt=\"video\" src=\"https:\/\/habrastorage.org\/storage3\/976\/d3e\/38a\/976d3e38a34b003f86f91795524af9f8.gif\"\/> <a href=\"https:\/\/www.youtube.com\/playlist?list=PLkEZWD8wbltnRp6nRR8kv97RbpcUdNawY\">Webpack 2 Tutorials<\/a>, \u0441\u0435\u0440\u0438\u044f \u043e\u0431\u0443\u0447\u0430\u044e\u0449\u0438\u0445 \u0432\u0438\u0434\u0435\u043e \u0441 \u043e\u0431\u044a\u044f\u0441\u043d\u0435\u043d\u0438\u0435\u043c Webpack API \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u044b\u0445 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/webpack\/webpack-and-rollup-the-same-but-different-a41ad427058c\">Webpack \u0438 Rollup: \u043f\u043e\u0445\u043e\u0436\u0438\u0435, \u043d\u043e \u0440\u0430\u0437\u043d\u044b\u0435<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/softwareengineeringdaily.com\/2017\/03\/31\/webassembly-with-brendan-eich\/\">\u0421\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c JavaScript Brendan Eich \u043e WebAssembly<\/a><\/li>\n<\/ul>\n<h3><a name=\"css\"><\/a><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/36c\/2c6\/966\/36c2c69660dd21085a2dcb71d7246ae6.gif\"\/> CSS<\/h3>\n<p>   <\/p>\n<ul>\n<li><a href=\"http:\/\/css-live.ru\/vecssti-s-polej\/podarki-ot-brauzerov-ko-dnyu-vebmastera.html\">\u041f\u043e\u0434\u0430\u0440\u043a\u0438 \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u043a\u043e \u0434\u043d\u044e \u0432\u0435\u0431\u043c\u0430\u0441\u0442\u0435\u0440\u0430<\/a><\/li>\n<li>CSS Grid Layout:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"\/> <a href=\"https:\/\/habrahabr.ru\/post\/325760\/\">CSS Grid Layout. \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/cssgridgarden.com\/\">Grid Garden<\/a> &mdash; \u0437\u0430\u0431\u0430\u0432\u043d\u0430\u044f \u0438\u0433\u0440\u0430 \u0434\u043b\u044f \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u044f CSS Grid Layout, \u0430\u043d\u0430\u043b\u043e\u0433 Flexbox Froggy<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/rachelandrew.co.uk\/archives\/2017\/04\/04\/edge-starts-work-on-their-grid-implementation-update\/\">Edge \u043d\u0430\u0447\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0443 \u043f\u043e \u0441\u0432\u043e\u0435\u0439 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0433\u0440\u0438\u0434\u043e\u0432<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/meyerweb.com\/eric\/thoughts\/2017\/04\/07\/grid-powered-drop-quotes\/\">Grid-Powered Drop Quotes<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/codepen.io\/adrianroworth\/pen\/OpeyZq\">\u041a\u0440\u043e\u0441\u0441\u0432\u043e\u0440\u0434 \u043d\u0430 \u0447\u0438\u0441\u0442\u043e\u043c CSS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CSS Grid<\/a><\/li>\n<\/ul>\n<p>   <\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/madebymike.com.au\/writing\/the-invisible-parts-of-CSS\/\">\u041d\u0435\u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 CSS<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/hackernoon.com\/rems-and-ems-and-why-you-probably-dont-need-them-664b9ce1e09f\">rem \u0438 em, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0432\u044b \u0432 \u043d\u0438\u0445 \u043d\u0435 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0435\u0441\u044c<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/danielcwilson.com\/blog\/2017\/04\/individualized-properties\/\">\u0418\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f CSS \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e CSS \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/robots.thoughtbot.com\/positioning\">\u041f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432 \u0432\u0435\u0431\u0435<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/www.sitepoint.com\/relational-and-attribute-selectors-in-css3\/\">\u041e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b \u0438 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u044b \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u0432 CSS3<\/a><\/li>\n<\/ul>\n<p>   <\/p>\n<h3><a name=\"js\"><\/a><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/49d\/04e\/fb9\/49d04efb96fb6ce31cde9be5dc12a874.gif\"\/> JavaScript<\/h3>\n<p>   <\/p>\n<ul>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"\/> <a href=\"https:\/\/habrahabr.ru\/post\/325660\/\">The State of Reactive in JS: \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043e\u0431\u0437\u043e\u0440 FRP \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a<\/a><\/li>\n<li><a href=\"https:\/\/dou.ua\/lenta\/articles\/reactive-libraries\/\">\u0420\u0435\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 RX<\/a><\/li>\n<li><a href=\"https:\/\/medium.com\/devschacht\/modern-javascript-for-ancient-web-developers-e601e59e87a2\">\u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 JavaScript \u0434\u043b\u044f \u0434\u0440\u0435\u0432\u043d\u0438\u0445 \u0432\u0435\u0431-\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\u00b7<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/www.sitepoint.com\/debugging-javascript-node-debugger\/\">\u041e\u0442\u043b\u0430\u0434\u043a\u0430 JavaScript \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Node Debugger<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/www.sitepoint.com\/javascript-operators-conditionals-functions\/\">\u041d\u0430\u0437\u0430\u0434 \u043a \u043e\u0441\u043d\u043e\u0432\u0430\u043c: \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b, \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 JavaScript<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/gist.github.com\/myshov\/05800f083a0afce56e0f782314a103eb\">function_invocation.js<\/a> &mdash; 11 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0432\u044b\u0437\u043e\u0432\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/css-tricks.com\/pong-svg-js\/\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043e\u043d\u0433\u0430 \u043d\u0430 SVG.js<\/a><\/li>\n<li>ES2015+:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/ponyfoo.com\/articles\/regular-expressions-post-es6\">\u0420\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0432 \u043c\u0438\u0440\u0435 post-ES6<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/www.hongkiat.com\/blog\/javascript-promise-object\/\">\u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 JavaScript \u043f\u0440\u043e\u043c\u0438\u0441\u0430\u043c\u0438<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/thecodebarbarian.com\/unhandled-promise-rejections-in-node.js.html\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u043a\u043e\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u043c\u0438\u0441\u043e\u0432 \u0432 Node.js<\/a><\/li>\n<\/ul>\n<p>   <\/li>\n<li>Frameworks:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"\/> <a href=\"https:\/\/habrahabr.ru\/company\/matreshka\/blog\/325480\/\">Matreshka.js 2 \u2014 tl;dr<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/github.com\/stickfigure\/blog\/wiki\/Opinionated-Comparison-of-React%2C-Angular2%2C-and-Aurelia\">\u041c\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0449\u0435\u0433\u043e React, Angular2, \u0438 Aurelia<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/@mattburgess\/javascript-frameworks-a-futile-attempt-at-objectivity-adf6e75d2fbe\">Javascript \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0438: \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/emberjs.com\/blog\/2017\/04\/05\/emberconf-2017-state-of-the-union.html\">EmberConf 2017: \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/hackernoon.com\/why-im-excited-about-glimmerjs-3631bd0c95c4\">\u041f\u043e\u0447\u0435\u043c\u0443 \u044f \u0432\u043e\u0441\u0445\u0438\u0449\u0451\u043d GlimmerJS<\/a><\/li>\n<\/ul>\n<p>   <\/li>\n<li>React:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/facebook.github.io\/react\/blog\/2017\/04\/07\/react-v15.5.0.html\">\u0420\u0435\u043b\u0438\u0437 React v15.5.0<\/a><\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"\/> <a href=\"https:\/\/habrahabr.ru\/post\/325688\/\">\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 React Loadable<\/a><\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"\/> <a href=\"https:\/\/habrahabr.ru\/post\/325756\/\">\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u043d\u0430 React+Redux<\/a><\/li>\n<li><img decoding=\"async\" alt=\"habr\" src=\"https:\/\/habrastorage.org\/storage2\/c57\/b92\/af4\/c57b92af4ee0d37f787c211a068b1b95.png\"\/> <a href=\"https:\/\/habrahabr.ru\/company\/jugru\/blog\/325628\/\">React Native: \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0430\u044f \u00ab\u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u0430\u044f \u043f\u0443\u043b\u044f\u00bb \u0434\u043b\u044f \u043a\u0440\u043e\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438?<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/microsoft.github.io\/reactxp\/blog\/2017\/04\/06\/introducing-reactxp.html\">\u0412\u0441\u0442\u0440\u0435\u0447\u0430\u0439\u0442\u0435 ReactXP<\/a> &mdash; \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443\/\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u043e\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b Skype, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u043a\u0440\u043e\u0441\u0441-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 React<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/elrumordelaluz.github.io\/reactour\/\">Reactour<\/a> &mdash; \u0438\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0439 \u0433\u0438\u0434 \u043f\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u043c React<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/robots.thoughtbot.com\/react-rendering-misconception\">\u0417\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u0430 \u0432 React<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/daveceddia.com\/snapshot-testing-react-with-jest\/\">\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043d\u0430\u043f\u0448\u043e\u0442\u043e\u0432 React \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Jest<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/hackernoon.com\/introducing-redux-offline-offline-first-architecture-for-progressive-web-applications-and-react-68c5167ecfe0\">\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 Redux Offline<\/a>: Offline-First \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u044b\u0445 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 React Native<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/@kentcdodds\/introducing-glamorous-fb3c9f4ed20e\">\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 glamorous<\/a> &mdash; styled-components \u0438 jsxstyle, \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0441\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 React Components \u043e\u0442 PayPal<\/li>\n<\/ul>\n<p>   <\/li>\n<li>Vue:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/codingthesmartway.com\/vue-js-2-state-management-with-vuex-introduction\/\">\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435\u043c \u0432 Vue.js 2 \u2013 \u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/www.pointofvue.net\/2017\/04\/05\/7-things-you-should-know-about-vue-js\/\">7 \u0432\u0435\u0449\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0437\u043d\u0430\u0442\u044c \u043e Vue.js<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/@caseymorrisus\/creating-reusable-components-with-vue-js-button-component-503167facfde\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Vue.js: \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u043d\u043e\u043f\u043a\u0438<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/vuetips.com\/vue-web-components\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Vue.js \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0445 \u0432\u0435\u0431 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432<\/a><\/li>\n<\/ul>\n<p>   <\/li>\n<li>Angular:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> \u0418\u0442\u043e\u0433\u0438 ng-conf 2017: <a href=\"https:\/\/auth0.com\/blog\/ngconf2017-summary-day1\/\">\u0434\u0435\u043d\u044c 1<\/a>, <a href=\"https:\/\/auth0.com\/blog\/ngconf2017-summary-day2\/\">\u0434\u0435\u043d\u044c 2<\/a> <\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/@urish\/angular-and-accessibility-8ae1f601803a\">Angular \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c (Accessibility)<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/@dormoshe\/angular-v4-practical-countries-application-f866b567ead1\">Angular v4: \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0430\u043d<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/medium.com\/burak-tasci\/angular-4-with-server-side-rendering-aka-angular-universal-f6c228ded8b0\">Angular 4 \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u044b\u043c \u0440\u0435\u043d\u0434\u0435\u0440\u0438\u043d\u0433\u043e\u043c (aka Angular Universal)<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/hackernoon.com\/everything-you-need-to-know-about-change-detection-in-angular-8006c51d206f\">\u0412\u0441\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0437\u043d\u0430\u0442\u044c \u043e\u0431 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 Angular<\/a><\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/developer.telerik.com\/topics\/web-development\/using-pipes-angular-2\/\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Pipes \u0432 Angular<\/a><\/li>\n<\/ul>\n<p>   <\/li>\n<li>Libs &#038; Plugins:<br \/> \n<ul>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/atomiks.github.io\/tippyjs\/\">Tippy.js<\/a> &mdash; \u043b\u0435\u0433\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043e\u043a<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/shobhitsharma.github.io\/embedo\/\">embedo<\/a> &mdash; \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f \u0432\u0441\u0442\u0430\u0432\u043a\u0438 \u043c\u0435\u0434\u0438\u0430 \u0438\u0437 \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/github.com\/brockwhittaker\/BitArray.js\">BitArray.js<\/a> &mdash; \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0441 \u0431\u0443\u043b\u0435\u0432\u044b\u043c\u0438 \u0444\u043b\u0430\u0433\u0430\u043c\u0438 \u0432 JavaScript<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/github.com\/photopea\/UTIF.js\">UTIF.js<\/a> &mdash; \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u0438 \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 TIFF<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"http:\/\/engineering.wingify.com\/across-tabs\/introduction.html\">across-tabs<\/a> &mdash; \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u043a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u044f \u043c\u0435\u0436\u0434\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043d\u044b\u043c\u0438 \u0442\u0430\u0431\u0430\u043c\u0438 (\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 cross-origin)<\/li>\n<li><img decoding=\"async\" alt=\"en\" src=\"https:\/\/habrastorage.org\/storage3\/2e2\/522\/737\/2e2522737ec404a9f76047e108dfaea0.gif\"\/> <a href=\"https:\/\/github.com\/deepmind\/sonnet\">Sonnet<\/a> &mdash; \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 TensorFlow \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043d\u0435\u0439\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439<\/li>\n<\/ul>\n<p>   <\/li>\n<\/ul>\n<p>   <\/p>\n<h3><a name=\"intresting\"><\/a><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d4b\/289\/ef0\/d4b289ef0a00e969108c25d0c3d75f58.gif\"\/> \u0417\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435<\/h3>\n<p>   <\/p>\n<ul>\n<li><a href=\"http:\/\/css-live.ru\/vecssti-s-polej\/vazhnaya-vexa-android-oboshel-windows-i-stal-platformoj-1-v-vebe.html\">\u0412\u0430\u0436\u043d\u0430\u044f \u0432\u0435\u0445\u0430: Android \u043e\u0431\u043e\u0448\u0435\u043b Windows \u0438 \u0441\u0442\u0430\u043b \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u043e\u0439 \u21161 \u0432 \u0432\u0435\u0431\u0435<\/a><\/li>\n<li><a href=\"https:\/\/tproger.ru\/news\/canonical-breaking-news\/\">\u0412\u043e\u0437\u0432\u0440\u0430\u0442 Ubuntu \u043d\u0430 GNOME, \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f Ubuntu Phone \u0438 Unity 8, \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u0448\u0442\u0430\u0442\u0430 \u2014 \u0432 Canonical \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0438 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f<\/a><\/li>\n<li><a href=\"http:\/\/itc.ua\/news\/google-dobavil-faktchek-v-novostnoy-agregator-i-poiskovik\/\">Google \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0444\u0430\u043a\u0442\u0447\u0435\u043a \u0432 \u043d\u043e\u0432\u043e\u0441\u0442\u043d\u043e\u0439 \u0430\u0433\u0440\u0435\u0433\u0430\u0442\u043e\u0440 \u0438 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u0438\u043a<\/a><\/li>\n<li><a href=\"https:\/\/tproger.ru\/news\/mozilla-firefox-redesigned-gui\/\">Mozilla \u0433\u043e\u0442\u043e\u0432\u0438\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 Firefox<\/a><\/li>\n<li><a href=\"https:\/\/lifehacker.ru\/2017\/04\/08\/mastodon\/\">Mastodon \u2014 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0442 Twitter \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c<\/a><\/li>\n<li><a href=\"https:\/\/vc.ru\/p\/usability-user-delightful-experience\">\u0422\u0435\u043e\u0440\u0438\u044f \u0432\u043e\u0441\u0442\u043e\u0440\u0433\u0430: \u043f\u043e\u0447\u0435\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u043d\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f, \u0430 \u043f\u0440\u043e\u0434\u0443\u043c\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b<\/a><\/li>\n<li><a href=\"https:\/\/roem.ru\/03-04-2017\/246705\/chat-bot-analitics\/\">\u0427\u0430\u0442-\u0431\u043e\u0442\u044b \u043d\u0435 \u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043b\u0438 \u0445\u0430\u0439\u043f \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e \u0433\u043e\u0434\u0430<\/a><\/li>\n<li><a href=\"https:\/\/ain.ua\/2017\/04\/03\/interfeis_mozg-kompjuter\">\u041d\u0430 \u043a\u0430\u043a\u043e\u043c \u044f\u0437\u044b\u043a\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0441\u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0441 \u043c\u043e\u0437\u0433\u043e\u043c \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e<\/a><\/li>\n<li><a href=\"https:\/\/tjournal.ru\/42743-kovchegi-dlya-spaseniya-chelovecheskogo-naslediya\">\u00ab\u041a\u043e\u0432\u0447\u0435\u0433\u0438\u00bb \u0434\u043b\u044f \u0441\u043f\u0430\u0441\u0435\u043d\u0438\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043d\u0430\u0441\u043b\u0435\u0434\u0438\u044f<\/a><\/li>\n<li><a href=\"https:\/\/tproger.ru\/translations\/vr-explained\/\">\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c: \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043a\u043b\u0430\u0441\u0441\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 \u043e\u0431\u043b\u0430\u0441\u0442\u0438<\/a><\/li>\n<li><a href=\"https:\/\/secretmag.ru\/trends\/players\/chto-to-poshlo-ne-tak-istorii-provala-shesti-mnogoobeshayushih-startapov.htm\">\u0427\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a: \u0418\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u043e\u0432\u0430\u043b\u0430 \u0448\u0435\u0441\u0442\u0438 \u043c\u043d\u043e\u0433\u043e\u043e\u0431\u0435\u0449\u0430\u044e\u0449\u0438\u0445 \u0441\u0442\u0430\u0440\u0442\u0430\u043f\u043e\u0432 <\/a><\/li>\n<li><a href=\"https:\/\/dtf.ru\/5760-kompyuternyy-virus-zastavil-polzovateley-prohodit-igru-dlya-dostupa-k-faylam\">\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0439 \u0432\u0438\u0440\u0443\u0441 \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0433\u0440\u0443 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c<\/a><\/li>\n<\/ul>\n<p>   <\/p>\n<p>\u041f\u0440\u043e\u0441\u0438\u043c \u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0437\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0438 \u0438\u043b\u0438 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435\/\u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0441\u0441\u044b\u043b\u043a\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043c\u0435\u0442\u0438\u043b\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u2014 \u043d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0432 \u043b\u0438\u0447\u043a\u0443, \u043c\u044b \u0441\u0442\u0430\u0440\u0430\u0435\u043c\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e \u0438\u0445 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c. <\/p>\n<p>  <a href=\"https:\/\/habrahabr.ru\/company\/zfort\/blog\/325462\/\">\u0414\u0430\u0439\u0434\u0436\u0435\u0441\u0442 \u0437\u0430 \u043f\u0440\u043e\u0448\u043b\u0443\u044e \u043d\u0435\u0434\u0435\u043b\u044e<\/a>.<br \/>  \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0438 <a href=\"http:\/\/habrahabr.ru\/users\/dersmoll\/\">dersmoll<\/a> \u0438 <a href=\"http:\/\/habrahabr.ru\/users\/alekskorovin\/\">alekskorovin<\/a>.<br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habrahabr.ru\/post\/326034\/\"> https:\/\/habrahabr.ru\/post\/326034\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u043f\u043e\u0434\u0431\u043e\u0440\u043a\u0443 \u0441 \u0441\u0441\u044b\u043b\u043a\u0430\u043c\u0438 \u043d\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0438\u0437 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u0444\u0440\u043e\u043d\u0442\u0435\u043d\u0434\u0430.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/c1d\/287\/101\/c1d287101ce9436ba5d897700aa9e49f.png\"\/><\/p>\n<p>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-284687","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/284687","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=284687"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/284687\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=284687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=284687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=284687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}