[Перевод] Сможет ли Питон прожевать миллион запросов в секунду?



Возможно ли с помощью Python обработать миллион запросов в секунду? До недавнего времени это было немыслимо.


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


Python-сообщество в последнее время уделяет много внимания производительности. С помощью CPython 3.6 за счет новой реализации словарей удалось повысить скорость работы интерпретатора. А благодаря новому соглашению о вызове (calling convention) и словарному кешу CPython 3.7 должен стать еще быстрее.


Для определенного класса задач хорошо подходит PyPy с его JIT-компиляцией. Также можно использовать NumPy, в котором улучшена поддержка расширений на Си. Ожидается, что в этом году PyPy достигнет совместимости с Python 3.5.


Эти замечательные решения вдохновили меня на создание нового в той области, где Python используется очень активно: в разработке веб- и микросервисов.

03/28/2017 08:22:38
0

Как собрать иконочный шрифт из файла скетча

image


У дизайнера есть несколько разных способов передать иконки разработчику:
— отдельными файлами PNG и спрайтом PNG,
— отдельными файлами SVG и спрайтом SVG,
— иконочным шрифтом.


Разработчики фронтенда все чаще привыкли использовать иконки в виде шрифта. Этим же способом распространяются популярные иконочные наборы (например, Font Awesome). У нас в компании разработчики тоже просят «дай шрифт». Мы некоторое время отлаживали схему сборки шрифта: как из файла Sketch автоматически получить файл, пригодный для фронтенда, не замучив дизайнера.


В этом посте я расскажу о нашей схеме, покажу скрипты сборки. Рассказ может быть полезен разработчикам фронтенда и дизайнерам интерфейсов. В меньшей степени он будет полезен бекендным разработчикам интерфейсов (классический Asp.Net MVC или что-то подобное): схема будет та же, но не будет готовых файлов конфигураций и скриптов.

03/27/2017 23:48:13
0

[Из песочницы] Реализация на Java хешированного бинарного дерева

Один мой друг любит говорить (не знаю, его это слова или он их где-то взял), что в программисты идут по двум причинам: если ты хочешь стать хакером или если ты хочешь писать игры. Мой случай второй. Всегда интересовался разработкой игр, причём той частью, которая отвечает за искусственный интеллект в играх. Очень много времени я потратил на изучение алгоритмов поиска пути. Реализуя очередную версию алгоритма A* на Java, столкнулся с интересной ситуацией, связанной с коллекциями TreeSet и TreeMap.
03/27/2017 22:17:38
0

Первый опыт работы с Google API (на примере ContactsAPI) и OAuth2.0 на чистом HTTP

В ходе написания проекта мне понадобилось добавлять записи в книгу контактов Google. Вроде бы все просто, есть API, бери и пользуйся, но взять и использовать его сразу не получилось. Много документации, перекрестных ссылок (само собой не на русском языке). Мне понадобилось много времени чтобы во всем этом разобраться. Кроме того, мне нужны были пример использования в чистом протоколе HTTP без кода на каком-либо другом языке. После того, как все получилось я решил написать сюда чтобы сэкономить кому-нибудь много времени, разложив все шаги по полочкам. Для многих ничего нового здесь не будет, тем более что эта статья — большей частью перевод и упрощение гугловской документации.
03/27/2017 20:11:16
0

Гид по верстке адаптивных писем

Команда мультиканальной маркетинговой платформы Sendsay специально для Нетологии составила подробный гид по верстке адаптивных писем для начинающих верстальщиков: с пошаговой инструкцией, примерами и ссылками на фреймворки, инструменты и шаблоны.


image

В гиде: основные принципы адаптивной верстки, таблицы с ограничением максимальной ширины, резиновые картинки, специальные комментарии, инструменты, фреймворки, советы и подборка классных писем.


03/27/2017 19:03:48
0

Готовимся к собеседованию по PHP: Всё об итерации и немного про псевдотип «iterable»

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

И, разумеется, какими бы вам странными и некорректными ни казались вопросы на собеседовании, приходить нужно всё-таки подготовленным, зная тот язык, за программирование на котором вам собираются платить.

image

Третья часть серии статей посвящена одному из самых объемных понятий в современном PHP — итерации, итераторам и итерируемым сущностям. Я постарался свести в один текст некий минимум знаний об этом вопросе, пригодный для самоподготовки к собеседованию на позицию разработчика на PHP.

Две предыдущие части:

Добро пожаловать под кат!
03/27/2017 18:40:10
0

[Перевод] Создаем 3D модель города в Unity 5

Unity3D – это очень популярный среди инди-разработчиков игровой движок. Он ценится за удобную в использовании платформу, реалистичную графику и возможность многоплатформенной публикации. Этот урок по Unity будет полезен новичкам в геймдизайне или тем, кто ищет простой способ создать 3D модель города.

03/27/2017 18:37:09
0

Открытая лекция Сергея Зыкова о первоапрельских акциях в играх

28 марта у нас на программе «Менеджмент игровых интернет-проектов» начинается обучение пятого потока наших слушателей. Программа длится 8 месяцев, мы ее запускаем весной и осенью. Если вам интересно сейчас начать учиться, то на сайте есть подробная информация по оформлению. И на этой же неделе в субботу мы делаем бесплатную открытую лекцию на необычную тему — по кейсам запуска игровыми компаниями первоапрельских акций. Все-таки в субботу будет первое апреля. Так как вход по спискам, то надо пройти онлайн-регистрацию. Под катом подробности про лекцию.

03/27/2017 18:29:50
0

[Из песочницы] learnopengl. Урок 1.8 — Системы координат

imageВ предыдущем уроке мы узнали о том, какую пользу можно получить от преобразования вершин матрицами трансформаций. OpenGL предполагает, что все вершины, которые мы хотим увидеть, после запуска шейдера будут в нормализованных координатах устройства (NDC — normalized device coordinates). Это означает, что x, y и z координаты каждой вершины должны быть между -1.0 и 1.0; координаты вне этого диапазона видны не будут. Обычно мы указываем координаты в диапазоне, который настраиваем самостоятельно, а в вершинном шейдере преобразовываем эти координаты в NDC. Затем, эти NDC передаются растеризатору для преобразования их в двумерные координаты/пикселы вашего экрана.
03/27/2017 17:56:48
0

Разрабатываем видеочат между браузером и мобильным приложением


Империи зла нередко получают лучи ненависти со стороны конечных пользователей. Не смотря на это, Uber частично оплачивает наши поездки, хоть и временно, а Google придал значительное ускорение технологии WebRTC, которая бы так и оставалась проприетарной и сильно платной софтиной для узких целей b2b, если бы не ИЗ.

После появления WebRTC, видеочаты стало делать проще. Появились различные API и сервисы, серверы и фреймворки. В данной статье мы подробно опишем еще один способ разработки видеочата между веб-браузером и нативным Android-приложением
03/27/2017 17:21:09
0