Search
Write a publication
Pull to refresh
1
0
Send message

Дайджест свежих материалов из мира фронтенда за последнюю неделю №254 (13 — 19 марта 2017)

Reading time4 min
Views20K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы и интересные материалы из области фронтенда.


Читать дальше →

Yapf — причесываем код Python автокорректором

Reading time2 min
Views29K
В эпоху все большей популярности различных js и css linter'ов, не удивительно появление удобного линтера с автокоррекцией для Python.

Приветствуйте, Yapf — готовое решение, для превращения каши из строк во вполне читаемый код. И поверьте, он вам пригодится.

image
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №253 (6 — 12 марта 2017)

Reading time4 min
Views19K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы и интересные материалы из области фронтенда.


Читать дальше →

PHP-Дайджест № 104 – интересные новости, материалы и инструменты (1 – 12 марта 2017)

Reading time4 min
Views19K


Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!
Читать дальше →

Асинхронный JavaScript против отложенного

Reading time3 min
Views71K

В моей статье «Понимание критического пути рендеринга» (перевод статьи) я писала о том, какой эффект оказывают JavaScript-файлы на Критический Путь Рендеринга(CRP).


JavaScript является блокирующим ресурсом для парсера. Это означает, что JavaScript блокирует разбор самого HTML-документа. Когда парсер доходит до тега <script> (не важно внутренний он или внешний), он останавливается, забирает файл (если он внешний) и запускает его.

Такое поведение может доставить проблемы, если мы загружаем несколько JavaScript-файлов на странице, так как это увеличивает время первой отрисовки, даже если документ на самом деле не зависит от этих файлов.


К счастью, элемент <script> имеет два атрибута async и defer, которые дают нам возможность контролировать то, как внешние файлы загружаются и выполняются.


Читать дальше →

10 мифов о Docker, которые пугают разработчиков

Reading time10 min
Views46K

Источник: 'Nova typis transacta navigatio' (Linz: s.n., 1621), p.12 (British Library, G.7237).


Часто во время разговоров о Docker я слышу мнения, с которыми не совсем согласен.


«Docker по своей сути предназначен для крупных компаний»

«под OSx у него экспериментальная поддержка, под Windows работает еле-еле»

«Я не уверен, что смогу быстро развернуть его локально»

… и еще много всякого.

В этих утверждениях есть доля истины (см. ниже мифы 3 и 5), но она мала, и по большей части реальная картина получается искаженной.


А есть еще и наполненные жаргоном статьи о том, как при использовании немалого количества фреймворков обрабатывать 10к миллионов запросов в секунду. И это с помощью всего лишь 30к контейнеров при автоматизации 5к микросервисов, размещенных на шести сотнях облачных виртуальных машин…


Что ж, нетрудно догадаться, почему Docker окружен таким количеством мифов.


К сожалению, эти мифы очень живучи. И главное их достижение заключается в том, что они пугают разработчиков и не дают им решиться на использование Docker.


Давайте поговорим о самых распространенных мифах – тех, с которыми я сталкивался и в которые верил, – и попробуем найти в них истину, а также решения, если таковые имеются.

Читать дальше →

Книга «Стек MEAN. Mongo, Express, Angular, Node»

Reading time7 min
Views20K
image Обычно при веб-разработке на всех уровнях стека используются разные языки программирования. База данных MongoDB, фреймворки Express и AngularJS и технология Node.js вместе образуют стек MEAN — мощную платформу, на всех уровнях которой применяется всего один язык: JavaScript. Стек MEAN привлекателен для разработчиков и бизнеса благодаря простоте и экономичности, а конечные пользователи любят MEAN-приложения за их скорость и отзывчивость.

JavaScript достиг зрелости. Благодаря ему теперь можно создать веб-приложение от начала до конца с помощью всего одного языка программирования. Стек MEAN включает в себя лучшие в своем классе технологии в данной области. В качестве БД вы получаете MongoDB, в качестве серверного фреймворка веб-приложений — Express, в качестве клиентского фреймворка — AngularJS, а в качестве серверной платформы — Node.

Эта книга познакомит вас с каждой из этих технологий, а также с тем, как заставить их работать вместе в качестве стека. На протяжении этой книги мы создаем работающее приложение, сосредотачиваясь по очереди на каждой технологии, наблюдая, как она вписывается в общую архитектуру приложения. Так что эта книга ориентирована на практику, на то, чтобы вы освоились со всеми перечисленными технологиями и их совместным использованием.
Читать дальше →

Скриншаринг на сайте по WebRTC из браузера Mozilla Firefox

Reading time9 min
Views6.7K

Недавно мы писали статью о том, как сделать расширение скриншаринга для браузера Google Chrome. В результате мы создали собственное расширение для скриншаринга, опубликовали его в Chrome Store и протестировали трансляцию экрана через Web Call Server в режиме один-ко-многим.

В этой статье мы проделаем тоже самое с браузером Firefox. Подход остается прежним и снова потребуется упаковка и публикация расширения, на этот раз в Mozilla Add-ons. В результате мы сможем делать скринкасты видеопотоков из FF без установки внешнего дополнительного ПО.
Читать дальше →

Go дайджест. События, статьи, интересные проекты из мира Go [1 — 14 марта 2017]

Reading time2 min
Views9.4K
imageВсем привет!
Давно не было дайджеста, посвящённого языку Go, и я решил восполнить этот пробел.

В этом выпуске перечислены лучшие статьи за прошедшие пару недель, интересные события и проекты, заслужившие внимания.

Добавляйте свои материалы в комментариях, а также любые замечания и предложения — постараюсь их учесть в следующем дайджесте.
Читать дальше →

Модели памяти, лежащие в основе языков программирования

Reading time24 min
Views30K
Предлагаем вашему вниманию перевод статьи, посвящённой рассмотрению используемых в программировании моделей памяти.

Сегодня в программировании доминируют шесть основных моделей памяти (не путать с моделями памяти Intel 8086). Три из них проистекают из трех исторически наиболее важных языков программирования 1950-х годов — COBOL, LISP и FORTRAN, а остальные связаны с тремя исторически важными системами хранения данных: магнитная лента, иерархическая файловая система в Unix-стиле и реляционная база данных.

Эти модели на гораздо более глубоком уровне, чем синтаксис или даже система типов, определяют, что наши языки программирования могут или не могут делать. Давайте подробно рассмотрим эти модели, а затем обсудим некоторые возможные альтернативы и причины, почему они могут быть интересны.
Читать дальше →

Фича, а не баг. Или как Rambler позволяют подменять отправителя письма

Reading time2 min
Views18K
image

Добрый день. Меня зовут Алексей. Я занимаюсь написанием ботов и реверсом Android приложений с поиском в них уязвимостей.

Мне попало в руки приложение Рамблер/почта для Android. Цель была автоматизировать отправку почты средствами API мобильного приложения. Был запущен эмулятор MEmu и Charles, однако SSL отказывался показать свои запросы. В ход пошел реверс. В файле smali_classes2\okhttp3\OkHttpClient.smali были сделаны изменения, дабы убрать шифрование.
Читать дальше →

Анализ исходного кода Duke Nukem 3D: Часть 2

Reading time7 min
Views22K
image

[Перевод первой части находится здесь.]

Унаследованный код


Build — это выдающийся движок, а множество игр, использовавших его, принесли большую и заслуженную славу и Кену Силверману, и 3D Realms.

Кен Силверман выполнил условия договора: он предоставил двоичный файл потрясающего 3D-движка с хорошо задокументированными методами и форматами ресурсов. В качестве признания его заслуг 3D Realms указала его имя в титрах как «Ken 'I can do that' Silverman» (Кен «Я могу это сделать» Силверман). Но разработка Build была сосредоточена на возможностях и скорости, а не удобстве портирования и чтения. После изучения кода я думаю, что open source-разработчики избегали его по следующим причинам:

  • Его обескураживающе сложно читать и получать из него знания.
  • Он не был портируемым.

В этой статье я перечислил часть сложностей, с которыми столкнулся. Также я выпустил порт Chocolate Duke Nukem 3D, призванный решить эти проблемы. Я хотел, чтобы люди запомнили, какой уровень гениальности нужен был для создания 3D-движка в то время. Кроме того, я хотел, чтобы они осознали, как движимый страстью подросток смог внести вклад в одну из величайших игр всех времён.
Читать дальше →

Как сделать высоконагруженный сервис, не зная количество нагрузки

Reading time18 min
Views24K


На конференции HighLoad++ 2016 Олег Облеухов рассказал о не требующей при росте нагрузки вмешательства администратора архитектуре, которую он спланировал и внедрил в компании InnoGames.

Всем привет. Буквально пару слов обо мне. Меня зовут Олег, до этого я работал в компании «Яндекс», жил в замечательном городе Санкт-Петербурге. Сейчас я переехал в Германию и работаю в InnoGames. Компания занимается разработкой онлайн-игр. На счету 150 миллионов пользователей — достаточно большая компания, ну поменьше, чем «Яндекс», конечно. И сегодня мы поговорим с вами о том, как сделать высоконагруженный сервис без данных о нагрузке, не зная её количество.

Прежде чем мы начнем. Теперь вы все знаете обо мне, я хотел бы узнать немножко об аудитории. Поднимите руку те, кто использует Docker на продакшне? Ну треть зала примерно, хорошо. А теперь из тех, кто поднял руку, поднимите те, кто доволен использованием Docker на продакшне? Значительно меньше. А теперь ещё более сложный вопрос. Те, кто доволен использованием Docker на продакшне, поднимите руку те, кто сисадмин или инженер, или еще кто-то не-разработчик. Я вижу троих. Окей.

На самом деле мы не будем сегодня разговаривать о Docker. Но мы будем разговаривать о CRM. Я вам расскажу, что это такое, зачем нам нужна эта система.
Читать дальше →

Uber — причины перехода с Postgres на MySQL

Reading time19 min
Views106K


В конце июля 2016 года в корпоративном блоге Uber появилась поистине историческая статья о причинах перехода компании с PostgreSQL на MySQL. С тех пор в жарких обсуждениях этого материала было сломано немало копий, аргументы Uber были тщательно препарированы, компанию обвинили в предвзятости, технической неграмотности, неспособности эффективно взаимодействовать с сообществом и других смертных грехах, при этом по горячим следам в Postgres было внесено несколько изменений, призванных решить некоторые из описанных проблем. Список последствий на этом не заканчивается, и его можно продолжать еще очень долго.


Наверное, не будет преувеличением сказать, что за последние несколько лет это стало одним из самых громких и резонансных событий, связанных с СУБД PostgreSQL, которую мы, к слову сказать, очень любим и широко используем. Эта ситуация наверняка пошла на пользу не только упомянутым системам, но и движению Free and Open Source в целом. При этом, к сожалению, русского перевода статьи так и не появилось. Ввиду значимости события, а также подробного и интересного с технической точки зрения изложения материала, в котором в стиле «Postgres vs MySQL» идет сравнение физической структуры данных на диске, организации первичных и вторичных индексов, репликации, MVCC, обновлений и поддержки большого количества соединений, мы решили восполнить этот пробел и сделать перевод оригинальной статьи. Результат вы можете найти под катом.

Читать дальше →

Особенности протокола в IO-играх

Reading time5 min
Views15K
Допустим, вы хотите создать IO-игру. Что-то похожее на agar.io, slither.io и тысячи их.

Что такое IO -игры
Такое название закрепилось за браузерными, клиент-серверными многопользовательскими играми в реальном времени.

Механика таких игр обычно относительно проста и интерес достигается за счет эпических битв между большим количеством реальных игроков.

Родоначальником жанра является agar.io

Многие знают, что в таких играх используется websocket. И ничего сложного нет в том, чтобы создать свой протокол над ним. Я так думал, когда примерно год назад мы начинали проект космического шутера в этом стиле.

Сейчас я так не думаю.
Расскажу почему

Дайджест свежих материалов из мира фронтенда за последнюю неделю №252 (27 — 5 марта 2017)

Reading time4 min
Views21K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы и интересные материалы из области фронтенда.

Читать дальше →

Архитектура поиска в Booking.com

Reading time18 min
Views52K


На конференции HighLoad++ 2016 Иван Круглов рассказал про то, как сервис Booking.com развивал свой поиск — одну из центральных функций системы интернет-бронирования отелей.

Всем привет! Я Ваня, пишу на Perl — можете мне посочувствовать. [Лёгкий смех в зале и со сцены.]

Ладно. По-серьёзному, меня зовут Иван Круглов, я из компании Booking.com, из города Амстердам. Там я работаю последние 4 года, где последние года полтора я работал в команде, которая делает наш поиск лучше.

Начать я хочу немного издалека. Вот с этой фразы:
Читать дальше →

Создание картинок на CSS делает верстальщика лучше, или Чем себя занять долгими зимними вечерами

Reading time4 min
Views39K

Monster


Те, кто интересуется версткой, frontend разработкой и веб-дизайном, вероятно заметили, что в последние несколько месяцев в сети все чаще стали появляться анимированные картинки, сделанные с помощью HTML и CSS. В этой статье я постараюсь рассказать откуда это веяние появилось, в чем фишка и почему это стало так популярно среди верстальщиков (а возможно кто-то еще не слышал, может быть интересно познакомиться с таким видом деятельности).

Читать дальше →

Разработка игр на Rust. Моя история

Reading time5 min
Views26K
image

Привет Хабр! Я занимаюсь разработкой игры на Rust. В этот раз я хочу показать немного гифок и показать всю историю игры от идеи до страницы в стиме.

Почему раст можно прочитать в начале прошлого поста. Но почему такой странный геймплей? Я же ненавижу футбол и всё что с ним связано!
История в гифках

Встречайте Kotlin 1.1: JavaScript, корутины и многое другое

Reading time6 min
Views28K

Мы рады представить вам Kotlin 1.1, новую версию языка программирования Kotlin.


Kotlin 1.1

Наша цель — сделать выразительный статически типизированный язык, на котором можно эффективно писать все компоненты современного приложения. Сегодняшний релиз делает два важных шага в этом направлении.


Читать дальше →

Information

Rating
Does not participate
Registered
Activity