- PVSM.RU - https://www.pvsm.ru -
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы и интересные материалы из области фронтенда.

| Веб-разработка [1] |
| CSS [2] |
| Javascript [3] |
| Новости и занимательное [4] |
Веб-разработка
Facebook и Google выпустили Yarn, новый менеджер пакетов для JavaScript [6]
Обзор Yarn: все что вы должны знать о новом пакетном менеджере для JS от Facebook [7] (Yarn Roundup: What you need to know about Facebook’s new JS Package Manager)
NPM vs Yarn Cheat Sheet [8]
Блог npm: Hello, Yarn! [9]
Yehuda Katz: почему я работаю с Yarn [10] ( Why I'm Working on Yarn)
Yarn Package Manager: улучшения по сравнению с npm [11] (An Improvement over npm)
5 вещей, которые вы можете делать с Yarn [12] (5 things you can do with Yarn)
Тестирование yarn, быстрого npm для JavaScript [13] (Testing yarn, a fast npm for JavaScript)
Развенчание десяти мифов про AMP [14] (Debunked: 10 Misconceptions about AMP)
Развенчание шести мифов о SEO [15] (6 SEO Myths Debunked)
Оптимизация веб-изображений в Photoshop [16] (Optimizing Web Images in Photoshop)
Техника “Offline First” с помощью сервис воркеров [17] (“Offline First” with Service Worker (Building a PWA, Part 1))
Текущее состояние элементов ввода в HTML5 [18] (The State of HTML5 Input Elements)
Вам не нужны Gulp/Grunt/Webpack [19] (You don’t need Gulp/Grunt/Webpack)
Заметка в помощь для работы с ARIA [20] (A (not so) short note on ARIA to the rescue)
Раздражающая проблема двойного нажатия на мобильных устройствах [21] (The Annoying Mobile Double-Tap Link Issue)
Рескин для SVG Symbols: как их делать (и зачем) [22] (‘Reskinnable’ SVG Symbols: How to Make Them (..and Why))
Заметка о доступности на developers.google.com, основанная на курсе Accessibility на Udacity [23]
Вам не будет комфортно в веб-разработке [24] (You Can’t Get Comfortable in Web Development)
Умер ли MVC для фронтенда? [25] (Is MVC dead for the frontend?)
Прогрессивное улучшение не мертво, но уже с запашком [26] (Progressive enhancement isn’t dead, but it smells funny)
Визуальные примитивы для эпохи компонентов. [27] Используем лучше части из ES6 и CSS для стилизации ваших React приложений (Visual primitives for the component age)
Анимация дропдауна с эффектом морфинга [28]
Анимация декоративных линий [29] (Line Maker: Animated Decorative Lines)
С Днём рождения Foundation: пять первых лет первого адаптивного фреймворка [30] (Happy Birthday Foundation: Five Years of Firsts)
excel-bootstrap — генератор сайта на бутстрапе из Excel [31] (excel-bootstrap — Generate Bootstrap websites from Microsoft Excel)
Руководство по написанию качественных README файлов [32] (Learn the art of writing quality READMEs.)
Медиа
Видео докладов с митапа MoscowJS в Badoo [35]
Видео со LvivJS Conference [36]
Видео с KharkivCSS 2016 [37]
Видео с PiterCSS №6 [38]
Lea Verou — CSS Variables: var(--subtitle); [39]
Chrome DevTools Masterclass [40]
CSS
Возможно, вам не нужен JavaScript [44] (You might not need JavaScript)
Прагматичная, практичная и прогрессивная темизация с помощью нативных CSS переменных [45] (Pragmatic, Practical, and Progressive Theming with Custom Properties)
Вдумчивая архитектура CSS [46] (Thoughtful CSS Architecture)
Quantity Queries: Количественные запросы и Flexbox [47] (Quantity queries and Flexbox)
Media Queries: SVG & media queries [48]
Mod Queries: Использование мод-запросов с селекторами диапазонов [49] (Using CSS Mod Queries with Range Selectors)
Feature Queries: Как использовать Feature Queries (запросы свойств) [50] (How to use CSS Feature Queries)
Feature Queries: Добавляем предупреждение «свойство Х не поддерживается» для ваших CSS демок с помощью @supports [51] (Adding “feature X is unsupported” warnings in your CSS Demos with supports)
Будущее веб-шрифтов [52] (The Future of Web Fonts)
32 безопасных веб-шрифта для CSS [53] (32 Gorgeous Web Safe Fonts to Use with CSS)
Разбираемся с загрузкой веб-шрифтов [54] (Getting started with CSS Font Loading)
Grid Layout Summertime [55]. Сводка изменений, которые были представлены прошедшим летом для стандарта CSS Grid Layout
Удивительные женщины из мира CSS [56] (The Amazing Women of CSS)
Как сделать табы, используя только CSS [57] (How to make tabs using only CSS)
Фильтр контента на чистом CSS [58] (Pure CSS Content Filter)
Создание масштабируемой и поддерживаемой кодовой базы CSS с ITCSS [59] (Building a Maintainable and Scalable CSS Codebase with ITCSS)
Сапёр на чистом CSS [60] (Pure CSS minesweeper)
JavaScript
Инфографика, объясняющая, почему JS разработка выглядит такой сложной [61] (This Infographic Explains Why JS Dev Seems So Complicated)
Почему я считаю, что Elm — это будущее фронтенд-разработки [62] (Why I think Elm is the Future of Front End Development)
Нужны ли Service Worker-ы в твоем веб приложении? [63] (Do you need Service Worker in your web app?)
Уместен ли еще jQuery [64] (Is jQuery Still Relevant?)
Вам может понадобиться JavaScript [65] (You Might Need JavaScript)
Мы нуждаемся в JavaScript, чтобы починить веб [66] (We need JavaScript to fix the web)
Усталость от Javascript с точки зрения нуба [67] (Javascript Fatigue. From a noob perspective)
Фреймворк vs Библиотека — разница в веб-разработке [68] (Framework vs Library — differences in web development)
Объектно-ориентированный JavaScript [69]. Быстрое введение в OOP в JavaScript (Object-Oriented JavaScript)
Валидация форм как компонент высокого порядка часть.1 [70] (Form Validation As A Higher Order Component Pt.1)
Как быть компилятором — создаем компилятор с помощью JavaScript [71] (How to be a compiler — make a compiler with JavaScript)
ResizeObserver: это как document.onresize для элементов [72] (ResizeObserver: It’s Like document.onresize for Elements)
Улучшение формы комментариев: от основ до кастомных сообщениях об ошибках с помощью BackgroundSync [73] (Enhancing a comment form: From basic to custom error message to BackgroundSync)
Сравнение чистых и «нечистых» функций [74] (Pure versus impure functions)
Доступ к буферу обмена с помощью JavaScript [75] (Quick Tip: Accessing The Clipboard With JavaScript)
Promises 101 [76]. Базовые приемы создания и управления промисами.
Использование ES6 генераторов на примере koa.js [77]
Рекурсия в JavaScript с ES6, destructuring и rest/spread [78] (Recursion in JavaScript with ES6, destructuring and rest/spread)
Глупые трюки с ES6 [79] (Stupid ES6 tricks)
Свежие релизы: Angular 2.1.0 [80], Релиз Marionette v3.1.0 [81]
Лучший способ изучить AngularJS [82] (The best way to learn AngularJS)
Шаблоны Angular 2 для приложений Angular 1.x [83] (Angular 2 Patterns for Angular 1.x Apps)
Роутер Angular: предзагрузка модулей [84] (Angular Router: Preloading Modules)
Angular 2 — Dynamic View and Components [85]
Двусторонний data-биндинг в Angular 2 [86] (Two-way Data Binding in Angular 2)
Создание приложения с Material Design с Angular 2 [87] (Build a Material Design app with Angular 2)
Начало работы с Angular 2 End To End тестированием [88] (Getting Started with Angular 2 End To End Testing)
Разбираемся с данными роутера в Angular 2 [89] (Resolving route data in Angular 2)
Как тут у нас в Китае дела с React.js [90] (What we have in China about React.js)
react-day-picker [91] — календарь для React
desklamp — [92] чистый контейнер для роутинга и state в react (clean routing and state container for react)
Официальная интеграция Semantic-UI-React [93]
react-router-server — рендеринг на серверной стороне для React Router v4 [94] (react-router-server — Server Side Rendering library for React Router v4.)
gDoc.js [95] — используйте Google Spreadsheets для своей CMS (Use gDoc.js for your CMS)
CerebralJS [96] — контроллер состояний с собственным отладчиком. Подходит для сложных приложений (A state controller with its own debugger )
Порт движка по распознаванию изображений Tesseract на JavaScript [97] (Tesseract.js is a pure Javascript port of the popular Tesseract OCR engine.)
Новости и занимательное
Удивительная история эмодзи [120] (The surprising history of emojis)Просим прощения за возможные опечатки или неработающие/дублирующиеся ссылки. Если вы заметили проблему — напишите пожалуйста в личку, мы стараемся оперативно их исправлять.
Дайджест за прошлую неделю [121].
Материал подготовили dersmoll [122] и alekskorovin [123].
Автор: Zfort Group
Источник [124]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/199945
Ссылки в тексте:
[1] Веб-разработка: #webdev
[2] CSS: #css
[3] Javascript: #js
[4] Новости и занимательное: #intresting
[5] Как HTML-верстальщику поднять свой уровень: http://krekotun.ru/level-up.html
[6] Facebook и Google выпустили Yarn, новый менеджер пакетов для JavaScript: https://habrahabr.ru/post/312458/
[7] Обзор Yarn: все что вы должны знать о новом пакетном менеджере для JS от Facebook: https://medium.com/statuscode/roundup-of-yarn-links-npm-javascript-abad6a5ddbf6#.8xktfo515
[8] NPM vs Yarn Cheat Sheet: https://shift.infinite.red/npm-vs-yarn-cheat-sheet-8755b092e5cc
[9] Блог npm: Hello, Yarn!: http://blog.npmjs.org/post/151660845210/hello-yarn
[10] Yehuda Katz: почему я работаю с Yarn: http://yehudakatz.com/2016/10/11/im-excited-to-work-on-yarn-the-new-js-package-manager-2/
[11] Yarn Package Manager: улучшения по сравнению с npm: https://scotch.io/tutorials/yarn-package-manager-an-improvement-over-npm
[12] 5 вещей, которые вы можете делать с Yarn: https://auth0.com/blog/five-things-you-can-do-with-yarn/
[13] Тестирование yarn, быстрого npm для JavaScript: https://blog.elazzabi.com/testing-yarn-a-fast-npm-for-javascript-6fb4be5da36b#.4tf73vp6h
[14] Развенчание десяти мифов про AMP: https://paulbakaus.com/2016/10/13/debunked-10-misconceptions-about-amp/
[15] Развенчание шести мифов о SEO: https://www.sitepoint.com/6-seo-myths-debunked/
[16] Оптимизация веб-изображений в Photoshop: https://madebysidecar.com/journal/optimizing-images-for-the-web-in-photoshop
[17] Техника “Offline First” с помощью сервис воркеров: https://bitsofco.de/bitsofcode-pwa-part-1-offline-first-with-service-worker/
[18] Текущее состояние элементов ввода в HTML5: https://www.sitepoint.com/the-state-of-html5-input-elements/
[19] Вам не нужны Gulp/Grunt/Webpack: https://medium.com/@osternaud_clem/you-dont-need-gulp-grunt-webpack-56cc9a0934f
[20] Заметка в помощь для работы с ARIA: https://www.paciellogroup.com/blog/2016/10/a-not-so-short-note-on-aria-to-the-rescue/
[21] Раздражающая проблема двойного нажатия на мобильных устройствах: https://css-tricks.com/annoying-mobile-double-tap-link-issue/
[22] Рескин для SVG Symbols: как их делать (и зачем): https://www.sitepoint.com/reskinnable-svg-symbols-how-to-make-them-and-why/
[23] Заметка о доступности на developers.google.com, основанная на курсе Accessibility на Udacity: https://developers.google.com/web/fundamentals/accessibility/
[24] Вам не будет комфортно в веб-разработке: http://blog.reybango.com/2016/10/07/you-cant-get-comfortable-in-web-development-anymore/
[25] Умер ли MVC для фронтенда?: https://medium.com/@alexnm/is-mvc-dead-for-the-frontend-35b4d1fe39ec
[26] Прогрессивное улучшение не мертво, но уже с запашком: https://nolanlawson.com/2016/10/13/progressive-enhancement-isnt-dead-but-it-smells-funny/
[27] Визуальные примитивы для эпохи компонентов.: https://styled-components.com/
[28] Анимация дропдауна с эффектом морфинга : https://codyhouse.co/gem/stripe-navigation
[29] Анимация декоративных линий: http://tympanus.net/codrops/2016/10/12/animated-decorative-lines/
[30] С Днём рождения Foundation: пять первых лет первого адаптивного фреймворка: http://zurb.com/article/1447/happy-birthday-foundation-five-years-of-f
[31] excel-bootstrap — генератор сайта на бутстрапе из Excel: https://github.com/woganmay/excel-bootstrap
[32] Руководство по написанию качественных README файлов: https://github.com/noffle/art-of-readme
[33] Подкаст Веб-стандарты, Выпуск №37: https://soundcloud.com/web-standards/episode-37
[34] Подкаст radioJS, Выпуск 41: https://radiojs.ru/2016/10/radiojs-41/
[35] Видео докладов с митапа MoscowJS в Badoo: https://habrahabr.ru/company/badoo/blog/312530/
[36] Видео со LvivJS Conference: https://www.youtube.com/channel/UC6FuC3toXWdpNTVYdFd4quA
[37] Видео с KharkivCSS 2016 : https://www.youtube.com/playlist?list=PLJ5NW5T60UphOVDsbAC97JQ2KEprVgh2r
[38] Видео с PiterCSS №6: https://www.youtube.com/watch?v=vxe3zO7lQS8
[39] Lea Verou — CSS Variables: var(--subtitle); : https://www.youtube.com/watch?v=2an6-WVPuJU
[40] Chrome DevTools Masterclass: https://www.youtube.com/watch?v=KykP5Z5E4kA
[41] Способы подчеркивания в CSS: http://prgssr.ru/development/sposoby-podcherkivaniya.html
[42] Styling Underlines on the Web: https://css-tricks.com/styling-underlines-web/
[43] Визуальное регрессионное тестирование с PhantomCSS: http://getinstance.info/articles/tools/visual-regression-testing-with-phantomcss/
[44] Возможно, вам не нужен JavaScript: http://youmightnotneedjs.com/
[45] Прагматичная, практичная и прогрессивная темизация с помощью нативных CSS переменных: http://csswizardry.com/2016/10/pragmatic-practical-progressive-theming-with-custom-properties/
[46] Вдумчивая архитектура CSS : https://seesparkbox.com/foundry/thoughtful_css_architecture
[47] Количественные запросы и Flexbox: https://www.lottejackson.com/learning/quantity-queries-and-flexbox-part-2
[48] SVG & media queries: https://jakearchibald.com/2016/svg-media-queries/
[49] Использование мод-запросов с селекторами диапазонов: http://alistapart.com/article/using-css-mod-queries-with-range-selectors
[50] Как использовать Feature Queries (запросы свойств): https://getflywheel.com/layout/css-feature-queries-how-to/
[51] Добавляем предупреждение «свойство Х не поддерживается» для ваших CSS демок с помощью @supports: https://www.bram.us/2016/10/10/adding-feature-x-is-unsupported-warnings-in-your-css-demos-with-supports/
[52] Будущее веб-шрифтов: https://viljamis.com/2016/the-future-of-web-fonts/
[53] 32 безопасных веб-шрифта для CSS: http://www.instantshift.com/2016/10/10/web-safe-fonts-with-css/
[54] Разбираемся с загрузкой веб-шрифтов: https://medium.com/@matuzo/getting-started-with-css-font-loading-e24e7ffaa791
[55] Grid Layout Summertime: https://blogs.igalia.com/mrego/2016/10/13/grid-layout-summertime/
[56] Удивительные женщины из мира CSS: https://rachelandrew.co.uk/archives/2016/10/11/the-amazing-women-of-css/
[57] Как сделать табы, используя только CSS: https://silvestarbistrovic.from.hr/en/articles/how-to-make-tabs-using-only-css/
[58] Фильтр контента на чистом CSS: http://csswizardry.com/2016/10/pure-css-content-filter/
[59] Создание масштабируемой и поддерживаемой кодовой базы CSS с ITCSS: https://medium.okgrow.com/building-a-maintainable-and-scalable-css-codebase-with-itcss-ceda5b2f495b
[60] Сапёр на чистом CSS: http://codepen.io/bali_balo/pen/BLJONk
[61] Инфографика, объясняющая, почему JS разработка выглядит такой сложной: http://gilesbowkett.blogspot.co.uk/2016/10/this-infographic-explains-why-js-dev.html
[62] Почему я считаю, что Elm — это будущее фронтенд-разработки: https://medium.com/@rgoomar/why-i-think-elm-is-the-future-of-front-end-development-21e9b091fa05
[63] Нужны ли Service Worker-ы в твоем веб приложении?: https://codingbox.io/do-you-need-service-worker-in-your-web-app-d68131d65e2c
[64] Уместен ли еще jQuery: http://developer.telerik.com/featured/is-jquery-still-relevant/
[65] Вам может понадобиться JavaScript: http://hugogiraudel.com/2016/10/13/you-might-need-javascript/
[66] Мы нуждаемся в JavaScript, чтобы починить веб: https://www.christianheilmann.com/2016/10/14/we-need-javascript-to-fix-the-web/
[67] Усталость от Javascript с точки зрения нуба: https://medium.com/@mattlayton1986/javascript-fatigue-eaa09f93f4c
[68] Фреймворк vs Библиотека — разница в веб-разработке: http://www.merixstudio.com/blog/framework-vs-library-differences-web-development/
[69] Объектно-ориентированный JavaScript: https://medium.com/@justtoconfirm/object-oriented-javascript-d61fe073ca86
[70] Валидация форм как компонент высокого порядка часть.1: https://medium.com/javascript-inside/form-validation-as-a-higher-order-component-pt-1-83ac8fd6c1f0
[71] Как быть компилятором — создаем компилятор с помощью JavaScript: https://medium.com/@kosamari/how-to-be-a-compiler-make-a-compiler-with-javascript-4a8a13d473b4
[72] ResizeObserver: это как document.onresize для элементов: https://developers.google.com/web/updates/2016/10/resizeobserver
[73] Улучшение формы комментариев: от основ до кастомных сообщениях об ошибках с помощью BackgroundSync: https://justmarkup.com/log/2016/10/enhancing-a-comment-form/
[74] Сравнение чистых и «нечистых» функций: https://toddmotto.com/pure-versus-impure-functions
[75] Доступ к буферу обмена с помощью JavaScript: http://tutorialzine.com/2016/10/quick-tip-accessing-the-clipboard-with-javascript/
[76] Promises 101: https://habrahabr.ru/post/312670/
[77] Использование ES6 генераторов на примере koa.js: https://habrahabr.ru/company/dataart/blog/312638/
[78] Рекурсия в JavaScript с ES6, destructuring и rest/spread: https://hackernoon.com/recursion-in-javascript-with-es6-destructuring-and-rest-spread-4b22ae5998fa
[79] Глупые трюки с ES6: https://engineering.haus.com/dumb-es6-tricks-53ecadd1b29f
[80] Angular 2.1.0: http://angularjs.blogspot.com/2016/10/angular-210-now-available.html
[81] Релиз Marionette v3.1.0: http://blog.marionettejs.com/2016/10/13/v310-release/index.html
[82] Лучший способ изучить AngularJS: http://www.merixstudio.com/blog/best-way-learn-angularjs/
[83] Шаблоны Angular 2 для приложений Angular 1.x: http://developer.telerik.com/featured/angular-2-patterns-angular-1-x-apps/
[84] Роутер Angular: предзагрузка модулей: https://vsavkin.com/angular-router-preloading-modules-ba3c75e424cb
[85] Angular 2 — Dynamic View and Components: https://medium.com/nerdlog/angular-2-dynamic-view-and-components-330205fa6896
[86] Двусторонний data-биндинг в Angular 2: http://blog.thoughtram.io/angular/2016/10/13/two-way-data-binding-in-angular-2.html
[87] Создание приложения с Material Design с Angular 2: http://www.creativebloq.com/how-to/build-a-material-design-app-with-angular-2
[88] Начало работы с Angular 2 End To End тестированием: https://blog.jscrambler.com/getting-started-with-angular-2-end-to-end-testing/
[89] Разбираемся с данными роутера в Angular 2: http://blog.thoughtram.io/angular/2016/10/10/resolving-route-data-in-angular-2.html
[90] Как тут у нас в Китае дела с React.js: https://medium.com/@jiyinyiyong/what-we-have-in-china-about-react-js-9af983fcb984
[91] react-day-picker: http://react-day-picker.js.org/
[92] desklamp —: https://github.com/desklamp-js/desklamp
[93] Официальная интеграция Semantic-UI-React: https://github.com/Semantic-Org/Semantic-UI-React
[94] react-router-server — рендеринг на серверной стороне для React Router v4: https://github.com/gabrielbull/react-router-server
[95] gDoc.js: http://jadeallencook.github.io/gDoc.js/
[96] CerebralJS: http://www.cerebraljs.com/
[97] Порт движка по распознаванию изображений Tesseract на JavaScript: http://tesseract.projectnaptha.com/
[98] Выпуск web-браузера Chrome 54: http://www.opennet.ru/opennews/art.shtml?num=45313
[99] Google в 1,5 раза сократит расход памяти браузером Chrome: http://www.3dnews.ru/940718/
[100] Google запустил новый инструмент для проверки AMP: https://www.searchengines.ru/google-amp-check.html
[101] noto: https://www.google.com/get/noto/
[102] Кто «подложил бомбу» в смартфоны Samsung?: http://www.computerra.ru/156884/note-7/
[103] Samsung разослала огнеупорные коробки для возврата Galaxy Note 7: http://gagadget.com/samsung-galaxy-note-7/24083-samsung-razoslala-ogneupornyie-korobki-dlya-vozvrata-galaxy-note-7/
[104] Что случилось с Samsung Galaxy Note 7 и почему он горит: http://gagadget.com/samsung-galaxy-note-7/24098-chto-sluchilos-s-samsung-galaxy-note-7-i-pochemu-on-gorit/
[105] Facebook официально запустила корпоративную социальную сеть Workplace: http://www.3dnews.ru/940726/
[106] В Skype добавили поддержку русского языка для синхронного перевода речи во время голосовых и видеовызовов: http://itc.ua/news/v-skype-dobavili-podderzhku-russkogo-yazyika-dlya-sinhronnogo-perevoda-rechi-vo-vremya-videovyizovov/
[107] Насколько серьезны проблемы Элона Маска: https://vc.ru/p/musk-review
[108] Каково это — работать в Apple?: http://blogerator.ru/page/rabota-v-apple-sobesedovanie-intervju
[109] «Просто заткнитесь и дайте разработчикам сконцентрироваться на задачах», — считает сооснователь площадки Stack Overflow Джоэл Спольски: https://tproger.ru/news/stackoverflow-ceo-advice/
[110] «Samsung, ты не одна»: https://vc.ru/p/recent-failers
[111] Большая нейронная война: что на самом деле затевает Google: http://gagadget.com/24072-bolshaya-nejronnaya-vojna-chto-na-samom-dele-zatevaet-google/
[112] Что понял Павел Дуров в процессе создания «ВКонтакте»: http://keddr.com/2016/10/chto-ponyal-pavel-durov-v-protsesse-sozdaniya-vkontakte/
[113] Алгоритм чтения книг по программированию: http://blog.csssr.ru/2016/10/11/tech-book-reading/
[114] Разнообразие нейронных сетей. Часть вторая. Продвинутые конфигурации: https://tproger.ru/translations/neural-network-zoo-2/
[115] Как лайки и боты сформируют журналистику будущего: https://birdinflight.com/ru/mir/20161007-5-tech-trends-for-journalists.html
[116] Новые властители разума: как поисковые системы влияют на выборы: http://apparat.cc/network/epstein-interview/
[117] Смогут ли секс-роботы пройти тест Тьюринга?: http://rb.ru/story/sex-robots-among-us/
[118] Как проходит телефонное собеседование в Google: рассказ из первых рук от кандидата на должность технического директора: https://tproger.ru/translations/google-director-of-engineering-test/
[119] Инженеры MIT создали «Photoshop для 3D-печати»: http://gagadget.com/science/24100-inzheneryi-mit-sozdali-photoshop-dlya-3d-pechati/
[120] Удивительная история эмодзи: http://www.webdesignerdepot.com/2016/10/the-surprising-history-of-emojis/
[121] Дайджест за прошлую неделю: https://habrahabr.ru/company/zfort/blog/312136/
[122] dersmoll: http://habrahabr.ru/users/dersmoll/
[123] alekskorovin: http://habrahabr.ru/users/alekskorovin/
[124] Источник: https://habrahabr.ru/post/312832/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.