Привет! Я Дима, и я довольно давно и плотно сижу на Python. Сегодня хочу показать вам отличия двух асинхронных фреймворков — Tornado и Aiohttp. Расскажу историю выбора между фреймворками в нашем проекте, чем отличаются корутины в Tornado и в AsyncIO, покажу бенчмарки и дам немного полезных советов, как забраться в дебри фреймворков и успешно оттуда выбраться.
Александр Шалахин @shalakhin
Начальник отдела разработки
Микросервисы: опыт использования в нагруженном проекте
17 min
68KНа конференции HighLoad++ 2016 руководитель разработки «М-Тех» Вадим Мадисон рассказал о росте от системы, для которой сотня микросервисов казалась огромным числом, до нагруженного проекта, где пара тысяч микросервисов — обыденность.
Тема моего доклада — то, как мы запускали в продакшн микросервисы на достаточно нагруженном проекте. Это некий агрегированный опыт, но поскольку я работаю в компании «M-Tех», то давайте я пару слов расскажу о том, кто мы.
Если коротко, то мы занимаемся видеоотдачей — отдаём видео в реальном времени. Мы являемся видеоплатформой для «НТВ-Плюс» и «Матч ТВ». Это 300 тысяч одновременных пользователей, которые прибегают за 5 минут. Это 300 терабайт контента, который мы отдаем в час. Это такая интересная задача. Как это всё обслужить?
Про что сама эта история? Это про то, как мы росли, как проект развивался, как происходило какое-то переосмысление каких-то его частей, какого-то взаимодействия. Так или иначе, это про масштабирование проекта, потому что это всё — ради того, чтобы выдержать ещё больше нагрузки, предоставить клиентам ещё больше функционала и при этом не упасть, не потерять ключевых характеристик. В общем, чтобы клиент остался доволен. Ну и немного про то, какой путь мы прошли. С чего мы начинали.
+76
React или Vue? Выбираем библиотеку для фронтенд-разработки
7 min
84KTranslation
На чём делать фронтенд? Самый верный способ найти ответ – попробовать лучшие библиотеки самостоятельно. В идеале, хорошо бы начать с самого простого и понять, как таинственные для непосвящённого конструкции превращаются в готовые к выводу страницы. Дальше же, вооружившись пониманием основ, можно осмысленно читать документацию и усложнять собственные эксперименты до тех пор, пока ответ не покажется очевидным.
Сегодня мы поговорим о React.js и Vue.js. Это – одни из самых популярных JavaScript-библиотек в мире. Взгляните на этот список, посмотрите их репозитории на GitHub. И та, и другая обладают впечатляющими возможностями и служат для создания пользовательских интерфейсов. Работать с ними довольно просто, главное – сразу понять, что к чему, сделать правильный первый шаг. Собственно говоря, этому вот первому шагу в разработке с использованием React и Vue и посвящён данный материал.
Сегодня мы поговорим о React.js и Vue.js. Это – одни из самых популярных JavaScript-библиотек в мире. Взгляните на этот список, посмотрите их репозитории на GitHub. И та, и другая обладают впечатляющими возможностями и служат для создания пользовательских интерфейсов. Работать с ними довольно просто, главное – сразу понять, что к чему, сделать правильный первый шаг. Собственно говоря, этому вот первому шагу в разработке с использованием React и Vue и посвящён данный материал.
+29
Интернационализация (i18n) в Angular 2
5 min
33KTutorial
Для создания мультиязычных интерфейсов Ангулар предлагает использовать механизм разметки HTML шаблонов специальным маркером i18n который после компиляции удаляется из финального кода. Для этого достаточно указать этот маркер как атрибут тега окружающего текст.
+24
React Native — одного JS мало
5 min
193KTutorial
Итак, пришла пора быстро погрузиться в тему. Для усиления эффекта, использую разные техники преобразования информации в знания. В частности, представляю конспект доклада Алексея Андросова (старшего разработчика интерфейсов, Yandex).
+38
Засуньте этот инфостиль себе в текст: 22 заповеди сильного редактора
9 min
48KНе так давно я прочёл книгу «Пиши, сокращай» (авторы — Максим Ильяхов и Люда Сарычева) — современные популяризаторы инфостиля. Крутые чуваки, и книга тоже крутая.
Периодически в книге встречаются фразы в жирной оранжевой рамке — это основные идеи авторов. Фразы как бы закрепляют ранее описанные советы. Очень ценный ресурс.
Я быстро забываю прочитанное, поэтому выписал весь текст из оранжевых рамок в таблицу. Теперь, когда нужно писать статью, использую таблицу как руководство. Вот из чего она состоит.
Периодически в книге встречаются фразы в жирной оранжевой рамке — это основные идеи авторов. Фразы как бы закрепляют ранее описанные советы. Очень ценный ресурс.
Я быстро забываю прочитанное, поэтому выписал весь текст из оранжевых рамок в таблицу. Теперь, когда нужно писать статью, использую таблицу как руководство. Вот из чего она состоит.
+41
5 уроков семимесячного пребывания в стартаповом аду
3 min
6.2KНе каждый стартап основан на пустых обещаниях или неоправданной рекламной свистопляске, но многие, именно на этом и основаны.
Автор:Стив Тобак — консультант по вопросам управления, публицист, бывший топ-менеджер и автор книги «Настоящие лидеры не ведутся. Как выделиться в век предпринимателя». Тобак управляет компанией «Invisor Consulting» ии ведёт собственный блог.
«Стартапы- это навсегда.» Так мне сказал основатель и директор нового, на тот момент, весьма раскрученного стартапа. Изучая стенды на промышленной выставке в Лос-Вегасе, этот ветеран техиндустрии. расписал волшебную картину с молочными реками и кисельными берегами, известную в миру как Земля Стартапов.
Автор:Стив Тобак — консультант по вопросам управления, публицист, бывший топ-менеджер и автор книги «Настоящие лидеры не ведутся. Как выделиться в век предпринимателя». Тобак управляет компанией «Invisor Consulting» ии ведёт собственный блог.
«Стартапы- это навсегда.» Так мне сказал основатель и директор нового, на тот момент, весьма раскрученного стартапа. Изучая стенды на промышленной выставке в Лос-Вегасе, этот ветеран техиндустрии. расписал волшебную картину с молочными реками и кисельными берегами, известную в миру как Земля Стартапов.
+5
12 кейсов по биг дате: подтвержденные примеры из индустрии, когда биг дата приносит деньги
8 min
36KХабр, привет! Проанализировали кейсы по big data, в которых технологии больших данных помогли компаниям более эффективно работать с клиентами или оптимизировать внутренние процессы.
Кстати, совсем скоро у нас стартует первый набор программы Big Data for Executives, цель которой подготовить руководителя или владельца бизнеса к использованию данных в своей деятельности. Почитать о ней подробнее можно здесь.
Кстати, совсем скоро у нас стартует первый набор программы Big Data for Executives, цель которой подготовить руководителя или владельца бизнеса к использованию данных в своей деятельности. Почитать о ней подробнее можно здесь.
+12
SSL-сертификаты: всем, каждому, и пусть никто не уйдёт обиженным
8 min
97KКак ранее сообщалось на GeekTimes, EFF при поддержке Mozilla, Cisco, Akamai, IdenTrust и исследователей из Мичиганского университета (University of Michigan) создали новый некоммерческий центр сертификации (Certificate Authority) Let's Encrypt [1]. Целью проекта является ускорение перехода всемирной паутины от HTTP к HTTPS.
+110
Выразительный JavaScript: Рисование на холсте
23 min
124KTranslation
Содержание
- Введение
- Величины, типы и операторы
- Структура программ
- Функции
- Структуры данных: объекты и массивы
- Функции высшего порядка
- Тайная жизнь объектов
- Проект: электронная жизнь
- Поиск и обработка ошибок
- Регулярные выражения
- Модули
- Проект: язык программирования
- JavaScript и браузер
- Document Object Model
- Обработка событий
- Проект: игра-платформер
- Рисование на холсте
- HTTP
- Формы и поля форм
- Проект: Paint
- Node.js
- Проект: веб-сайт по обмену опытом
- Песочница для кода
Рисование — это обман.
М.К.Эшер
Браузеры позволяют нам рисовать графику разными способами. Проще всего использовать стили для расположения и расцветки стандартных элементов DOM. Так можно добиться многого, как показал пример игры из предыдущей главы. Добавляя частично прозрачные картинки узлам, мы можем придать им любой нужный вид. Возможно даже поворачивать или искажать узлы через стиль transform.
Но такое использование DOM – не то, для чего он создавался. Некоторые задачи, типа рисования линии между двумя произвольными точками, крайне неудобно выполнять при помощи обычных элементов HTML.
Есть две альтернативы. Первая – SVG, масштабируемая векторная графика, также основанная на DOM, но без участия HTML. SVG – диалект для описания документов, который концентрируется на формах, а не тексте. SVG можно встроить в HTML, или включить через тег
<img>
.Вторая альтернатива – холст (canvas). Холст – это один элемент DOM, в котором находится картинка. Он предоставляет API для рисования форм на том месте, которое занимает элемент. Разница между холстом и SVG в том, что в SVG хранится начальное описание форм – их можно в любой момент сдвигать или менять размер. Холст же преобразовывает формы в пиксели (цветные точки растра), как только нарисует их, и не запоминает, что эти пиксели из себя представляют. Единственным способом сдвинуть форма на холсте является очистить холст (или ту часть, которая окружает форму) и перерисовать её на другом месте.
+33
Многоликие функции Swift
16 min
43KTranslation
Русский перевод очень полезной статьи Natasha Murashev The Many Faces of Swift Functions.
Хотя у Objective-C синтаксис выглядит несколько странно, по сравнению с другими языками программирования, синтаксис метода — прост и понятен. Вот небольшой экскурс в прошлое:
В противоположность этому, синтаксис Swift выглядит в большинстве случаев также, как и в других языках программирования, но временами он может быть более сложным и запутанным, чем в Objective-C.
Прежде чем я продолжу, я хочу прояснить разницу между «методами» и «функциями» в Swift, так как я повсеместно буду использовать оба этих термина в этой статье. Вот определение «методов», данное в книге Apple «Swift Programming Language»:
Хотя у Objective-C синтаксис выглядит несколько странно, по сравнению с другими языками программирования, синтаксис метода — прост и понятен. Вот небольшой экскурс в прошлое:
+ (void)mySimpleMethod
{
// метод "класса"
// нет параметров
// нет возвращаемых значений
}
- (NSString *)myMethodNameWithParameter1:(NSString *)param1 parameter2:(NSNumber *)param2
{
// метод "экземпляра"
// первый параметр - типа NSString указатель,
// второй параметр - типа NSNumber указатель
// должен вернуть значение типа NSString указатель
return @"hello, world!";
}
В противоположность этому, синтаксис Swift выглядит в большинстве случаев также, как и в других языках программирования, но временами он может быть более сложным и запутанным, чем в Objective-C.
Прежде чем я продолжу, я хочу прояснить разницу между «методами» и «функциями» в Swift, так как я повсеместно буду использовать оба этих термина в этой статье. Вот определение «методов», данное в книге Apple «Swift Programming Language»:
+24
Тонкости nodejs. Часть II: Работа c ошибками
5 min
19KTutorial
Обработка ошибок в JS – та еще головная боль. Не ошибусь, если скажу, что ошибки – самое слабое место всего языка. При чем проблема состоит из двух других: сложности отлова ошибки в асинхронном коде и плохо спроектированного объекта Error. И если первой проблеме посвящено множество статей, то о второй многие незаслуженно забывают. В этом материале я постараюсь восполнить недостаток и рассмотреть объект Error более пристально.
+23
История операционных систем Apple. Часть 2. Взлет Macintosh
11 min
136KTranslation
Продолжаем знакомиться с историей операционных систем Apple. Сегодня Lisa, Macintosh вплоть до System 7 и ранние попытки использовать Unix.
Первая часть: habrahabr.ru/post/194696
Apple представил компьютер Lisa в январе 1983 года, за год до Макинтоша. Стартовая цена составляла $9995. Сердцем новинки был 32-битный процессор Motorola 68000. При создании разработчики явно вдохновлялись Xerox PARC, см. habrahabr.ru/post/194696. Этому способствовала договоренность между Xerox и Apple — акции в обмен на технологию. Следует заметить, что проект Lisa начали еще до причащения к PARC. В целом непонятно, какие именно идеи позаимствовали у Xerox, а какие изобрели своими силами.
Lisa Office System (OS), операционная система этого компьютера, имела полностью графический интерфейс. Был файловый менеджер с иконками, при клике запускалось соответствующее приложение. В комплекте также был табличный процессор LisaCalc, программа для рисования диаграмм LisaGraph, продвинутый редактор списков LisaList, менеджер проектов LisaProject, рисовалка LisaDraw, эмулятор ANSI терминала LisaTerminal и т. д. Кроме того, на Lisa поддерживалась работа SCO Xenix.
Первая часть: habrahabr.ru/post/194696
Приход графики
Apple представил компьютер Lisa в январе 1983 года, за год до Макинтоша. Стартовая цена составляла $9995. Сердцем новинки был 32-битный процессор Motorola 68000. При создании разработчики явно вдохновлялись Xerox PARC, см. habrahabr.ru/post/194696. Этому способствовала договоренность между Xerox и Apple — акции в обмен на технологию. Следует заметить, что проект Lisa начали еще до причащения к PARC. В целом непонятно, какие именно идеи позаимствовали у Xerox, а какие изобрели своими силами.
Lisa OS
Lisa Office System (OS), операционная система этого компьютера, имела полностью графический интерфейс. Был файловый менеджер с иконками, при клике запускалось соответствующее приложение. В комплекте также был табличный процессор LisaCalc, программа для рисования диаграмм LisaGraph, продвинутый редактор списков LisaList, менеджер проектов LisaProject, рисовалка LisaDraw, эмулятор ANSI терминала LisaTerminal и т. д. Кроме того, на Lisa поддерживалась работа SCO Xenix.
+130
Компания Lytro представила пленоптическую камеру второго поколения
2 min
134KКомпания Lytro, основанная выходцем из Стэнфордского университета Рена Нг (Ren Ng), занимается коммерциализацией пленоптической фотографии, или фотографии светового поля, когда матрица с помощью системы микролинз фиксирует не плоскую картинку, а полную информацию о световом поле объекта съемки — фокусировку таких снимков можно производить уже после съёмки, а кадры, полученные такой камерой, позволяют получить стереоизображение. Очень подробную и большую статью о принципе работы такой камеры опубликовал хабраюзер Antelle. Первая камера Lytro была больше похожа на забавную игрушку, чем на серьёзный фотоаппарат, и качество снимков было не слишком высоким — при рендеринге в обычное плоское изображение разрешение составляло всего около мегапикселя.
Камера второго поколения, названная Lytro Illym, уже гораздо больше похожа на настоящий фотоаппарат, как по внешнему виду, так и по характеристикам. Диагональ сенсора увеличена с 1/3" до 1", разрешение снимков составляет 40 мегалучей (в этих единицах измеряется разрешение пленоптических камер) против 11 у первой Lytro. Плоские отпечатки со снимков Lytro Illym могут теперь иметь разрешение порядка 4 мегапикселей, пропорционально выросла и точность фокусировки. Большую часть камеры занимает зум-объектив с эквивалентным фокусным расстоянием 30-250 мм и постоянной апертурой F2. Камера имеет поворачивающийся 4-дюймовый видоискатель разрешением 800х480 пикселей. Её цена — 1600 долларов. Первые поставки ожидаются в июле.
Камера второго поколения, названная Lytro Illym, уже гораздо больше похожа на настоящий фотоаппарат, как по внешнему виду, так и по характеристикам. Диагональ сенсора увеличена с 1/3" до 1", разрешение снимков составляет 40 мегалучей (в этих единицах измеряется разрешение пленоптических камер) против 11 у первой Lytro. Плоские отпечатки со снимков Lytro Illym могут теперь иметь разрешение порядка 4 мегапикселей, пропорционально выросла и точность фокусировки. Большую часть камеры занимает зум-объектив с эквивалентным фокусным расстоянием 30-250 мм и постоянной апертурой F2. Камера имеет поворачивающийся 4-дюймовый видоискатель разрешением 800х480 пикселей. Её цена — 1600 долларов. Первые поставки ожидаются в июле.
+79
Я, пират
17 min
278KВсе-таки красные у меня глаза или нет? Кажется не очень. Может так и должно быть? Я внимательно разглядывал себя в зеркало. Нет, всё-таки красные, хоть и не так сильно. Может не стоит уже с утра проверять почту и ходить по всем этим сайтам? Ну напишут там что-то, а я не прочитаю, ну и что такого? Нет, каждый раз просыпаюсь и первым делом туда…
Так начинался фантастический рассказ — антиутопия про один день из жизни программиста в недалёком будущем, написанный мной в 2010 году. Меня просили продолжить, и через какое-то время появились идеи, но всё никак не было времени их реализовать. Однако в связи с последними событиями начинает казаться, что придуманный мной сюжет того гляди может стать реальностью. Поэтому сегодня представляю вам вторую главу. Рисунок был сделан в прошлом году совсем по другому поводу, но он хорошо подошел сюда как иллюстрация.
+182
Что случается, когда проект, получивший финансирование на Kickstarter, проваливается?
5 min
146KОзвученный выше вопрос стал меня интересовать, когда компания, на которую я удаленно работаю, начала не только строить планы, но и делать какие-то реальные шаги для размещения собственного проекта на Kickstarter. Настроение у руководства более чем оптимистичное. Начитавшись success stories, перспектива получить финансирование «сейчас», а думать об обязательствах «потом» просто дурманит и манит к себе любого предпринимателя. Как человека больше отвечающего за техническую часть проекта, слегка пообщавшегося с потенциальными подрядчиками как в наших краях, так и в Китае, параллельно с более глубоким пониманием наших возможностей и деталей реализации проекта у меня в голове неуклонно рос один показатель — риски. Я конечно «командный игрок», «сфокусирован на цели» и вовремя зажигаю блеск в глазах и выравниваю спину в нужный момент, но дело в том, что компания в которой я работаю мне действительно нравится и работа которой занимаюсь достаточно интересна, поэтому перспектива проекта, который может убить бизнес, в котором мне, пусть и небольшому винтику, комфортно работается меня не радует. Вначале отдельные замечания, а затем все более настойчивое акцентирование внимания на потенциальных рисках все же возымело действие на руководство (может ввиду его адекватности мне и нравится место работы?) и повернувшись лицом в сторону проблемы было решено выяснить, что же собственно будет, если после получения финансирования компания не в состоянии выполнить свои обязательства перед спонсорами?
+98
Ebay. Украина. О таможне и пересылках — 2012
7 min
192KНебольшое предисловие. В 2010 году на Хабре был опубликован пост Ebay. Украина. О таможне и пересылках, в котором aevdox рассказал о нюансах доставки товаров с Ebay применительно к Украине и, особенно, об украинских таможенных правилах. Прочитав этот пост, я почувствовал, что мне есть, что к нему добавить, и, не будучи хабражителем, написал письмо автору. Так там появился «Upd # 3».
Вчера вечером со мной неожиданно связался aevdox и сообщил, что, во-первых, ему пишут, что информация 2010 года устарела и было бы полезно привести статью в актуальное состояние, во-вторых, он готов стать моим хабрапапой. Таким образом и получился этот пост. Далее по тексту я предполагаю, что читатель уже знаком с первоначальным постом и воспринимает этот как его логичное продолжение.
А теперь к сути. С принятием в 2012 году нового Таможенного кодекса Украины (далее – ТК) и его вступлением в силу информация в статье «Ebay. Украина. О таможне и пересылках» сразу же безнадёжно устарела. Прежде всего потому, что новый кодекс отменил нормативно-правовые акты, на которые я ссылался в своём дополнении (Закон № 2681-III, Постановление Кабмина № 1652), и теперь эти отношения регулирует сам кодекс. Регулирует он их уже иначе. Я попытался разобраться с тем, что же изменилось для нас, простых покупателей с Ebay, и соответственно актуализировать информацию в статье.
Если вкратце – «жить стало легче, жить стало веселей».
Вчера вечером со мной неожиданно связался aevdox и сообщил, что, во-первых, ему пишут, что информация 2010 года устарела и было бы полезно привести статью в актуальное состояние, во-вторых, он готов стать моим хабрапапой. Таким образом и получился этот пост. Далее по тексту я предполагаю, что читатель уже знаком с первоначальным постом и воспринимает этот как его логичное продолжение.
А теперь к сути. С принятием в 2012 году нового Таможенного кодекса Украины (далее – ТК) и его вступлением в силу информация в статье «Ebay. Украина. О таможне и пересылках» сразу же безнадёжно устарела. Прежде всего потому, что новый кодекс отменил нормативно-правовые акты, на которые я ссылался в своём дополнении (Закон № 2681-III, Постановление Кабмина № 1652), и теперь эти отношения регулирует сам кодекс. Регулирует он их уже иначе. Я попытался разобраться с тем, что же изменилось для нас, простых покупателей с Ebay, и соответственно актуализировать информацию в статье.
Если вкратце – «жить стало легче, жить стало веселей».
+144
Curiosity провел самое подробное геологическое исследование на Марсе
3 min
115KРентгеноскопическая дифракция — один из самых точных методов минералогического анализа. Благодаря этому методу получается узнать именно минеральный состав, а не химический. Ведь, например, алмаз и графит, с точки зрения химии — идентичны, но различные условия формирования повлияли на строение кристаллической решетки, и радикально изменили свойства минерала. Цель Curiosity — как раз определить какие условия приводили к возникновению того или иного минерала, а значит узнать какие условия были на Марсе в древности.
+150
Спросите спеца по iTunes
4 min
45KTranslation
Я продолжаю публиковать западные статьи о секретах OS X и советах по соответствующему софту. Прошлый материал вызвал живой отклик с массой советов-комментариев, которые со временем будут скомпилированы в новый материал. Сегодня я решил разместить материал из журнала MacWorld. Автор Кирк МакЭлхерн отвечает на вопросы пользователей об iTunes. Понятно, что многое может быть вам знакомо, но я вот, например, наконец-то догадался, что в колонки можно добавить еще и дату добавления и удобно смотреть свои новые загрузки, а не создавать смарт-лист с нужными времеными интервалами…
+19
Рекомендательные системы — будущее интернета
3 min
6.1KНедавно наткнулся на новомодный тренд: рекомендательные системы, — на конкретного его представителя Surfingbird (нет, я не сотрудник данной компании). Сразу встал вопрос,
Почему так серьезно?
+2
Information
- Rating
- Does not participate
- Location
- Киев, Киевская обл., Украина
- Date of birth
- Registered
- Activity