[Перевод] Повышаем производительность кода: сначала думаем о данных


Занимаясь программированием рендеринга графики, мы живём в мире, в котором обязательны низкоуровневые оптимизации, чтобы добиться GPU-фреймов длиной 30 мс. Для этого мы используем различные методики и разработанные с нуля новые проходы рендеринга с повышенной производительностью (атрибуты геометрии, текстурный кеш, экспорт и так далее), GPR-сжатие, скрывание задержки (latency hiding), ROP…


В сфере повышения производительности CPU в своё время применялись разные трюки, и примечательно то, что сегодня они используются для современных видеокарт ради ускорения вычислений ALU (Низкоуровневая оптимизация для AMD GCN, Быстрый обратный квадратный корень в Quake).


Быстрый обратный квадратный корень в Quake


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


Эта статья — не исчерпывающее хардкорное руководство по железу. Это всего лишь введение, напоминание, свод базовых принципов написания эффективного кода для CPU. Я хочу «показать, что низкоуровневое мышление сегодня всё ещё полезно», даже если речь пойдёт о процессорах, которые я мог бы добавить.


В статье мы рассмотрим кеширование, векторное программирование, чтение и понимание ассемблерного кода, а также написание кода, удобного для компилятора.
Читать дальше →
[Перевод] Повышаем производительность кода: сначала думаем о данных
Source: habrahabr

Эволюция процесса деплоя в проекте

Денис Яковлев (2ГИС)


Меня зовут Денис, я работаю в компании 2ГИС, около полутора лет занимаюсь вопросами continuous delivery для проектов веб-отдела. До этого работал в копании Parallels и там прошел путь от QA инженера до team lead’а.


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


Из чего это состоит? Нам нужно доставить, прежде всего, код — то, над чем мы работали большое количество времени, тестировали и прочее.
Читать дальше →
Эволюция процесса деплоя в проекте
Source: habrahabr

Внедрение социальных сервисов в неигровое приложение

Современную реальность невозможно представить без социальных сетей и различных рейтингов. В связи с этой тенденцией мобильные игры и приложения активно «социализируются». Однако, в то время как для игр такое явление обыденно и закономерно, добавить фунционал социальной сети в неигровые приложения не каждому покажется очевидным решением. Тем не менее, наши давние партнеры и друзья — компания-разработчик музыкальных приложений Music Paradise — решились на подобный шаг. Сегодня мы делимся их кейсом под кодовым названием «Внедрение социальных сервисов в неигровое приложение».


«В этой статье мы хотели бы поделиться опытом создания социальной платформы для меломанов на базе музыкального приложения DJ Mix Pads 2.


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


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


В данной статье мы коснемся различных аспектов работы с сервером, расскажем о некоторых дополнительных функциях, которые потребовались для введения социальной составляющей, и о том, как они были реализованы в продукте.
Читать дальше →
Внедрение социальных сервисов в неигровое приложение
Source: habrahabr

Взломай будущее! PHDays снова приглашает авторов на конкурс киберпанка

Если вы уже участвовали в международной конференции PHDays или смотрели ее трансляции, то наверняка заметили, что первый день мероприятия традиционно заканчивается выступлением проекта «Модель для сборки»: это чтение киберпанковских рассказов, занявших первые места в конкурсе «Взломанное будущее».


Прочитать историю конкурса и узнать имена победителей прошлых лет можно в наших прошлых новостях (2015, 2016). Если вкратце: мы решили потеснить книжные образы женщин-детективов более современными историями, которые касаются жизни в информационном пространстве, со всеми его угрозами и героями. За прошедшие два года на конкурс поступило более 300 рассказов. Наших финалистов успел высоко оценить «отец киберпанка» Брюс Стерлинг, а прямо сейчас готовится к печати сборник, в который входят рассказы-победители «Взломанного будущего» 2015 и 2016 года.



Ну а для участников очередного, третьего конкурса у нас есть сюрприз: главным судьей в 2017 году будет известный российский фантаст Вадим Панов, лауреат множества литературных премий, автор циклов книг «Тайный город», «Анклавы» и «Герметикон», которые по духу очень близки к киберпанку.


Итак, мы снова приглашаем всех умеющих писать на наш конкурс! Читать дальше →
Взломай будущее! PHDays снова приглашает авторов на конкурс киберпанка
Source: habrahabr

[Из песочницы] Iframe injection и self xss на более чем 20 000 сайтах alexarank UA/RU

Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.


Решил пройтись по топу alexarank, начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию (www.gismeteo.ru/soft/), обратил внимание на тех.поддержку.
Читать дальше →
[Из песочницы] Iframe injection и self xss на более чем 20 000 сайтах alexarank UA/RU
Source: habrahabr

[Из песочницы] Iframe injection и XSS на более чем 20 000 сайтах alexarank

Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.


Решил пройтись по топу alexarank, начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию (www.gismeteo.ru/soft/), обратил внимание на тех.поддержку.
Читать дальше →
[Из песочницы] Iframe injection и XSS на более чем 20 000 сайтах alexarank
Source: habrahabr

[Из песочницы] Iframe injection и self xss на более чем 20 000 сайтах alexarank рунета

Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.


Решил пройтись по топу alexarank, начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию (www.gismeteo.ru/soft/), обратил внимание на тех.поддержку.
Читать дальше →
[Из песочницы] Iframe injection и self xss на более чем 20 000 сайтах alexarank рунета
Source: habrahabr

Мобильный опыт Яндекса в трех видеокурсах: дизайн, разработка, интерфейсы

В прошлом году Яндекс провел образовательный экспериментальный проект, который получил название «Мобилизация». Наша цель была в том, чтобы участники поработали в настоящей команде и создали настоящий продукт — причём продукт мобильный. «Мобилизация» объединила Школу мобильной разработки, Школу менеджеров, Школу мобильного дизайна и Школу разработки интерфейсов

image

Мы пригласили 126 студентов из 25 городов; 91 участник успешно завершил программу. Первый этап состоял из лекций, второй — из той самой командной работы. Обычно студента окружают люди той же специализации, что и он сам: менеджеры учатся вместе с менеджерами, дизайнеры — с дизайнерами и т. д. Но в реальности вам нужно хотя бы по одному представителю нескольких профессий. В каждую команду вошли студенты разных школ: дизайнер, менеджер и один-два разработчика.

Лекции студентам читали сотрудники Яндекса, которые каждый день сталкиваются с реальными задачами и делают приложения для миллионов пользователей. Специально для читателей Хабра мы собрали полную программу курса по мотивам лекций «Мобилизации».

Читать дальше →
Мобильный опыт Яндекса в трех видеокурсах: дизайн, разработка, интерфейсы
Source: habrahabr

Экономика идей. Компонуемая инфраструктура. HPE Synergy

В современной бизнес-среде с высоким уровнем конкуренции предлагать новые инновационные решения стало намного проще – всё, что помогает эффективнее управлять ресурсами и получать более быструю отдачу, приживается очень хорошо. Облачные и мобильные вычисления в сочетании с растущей популярностью социальных сетей открыли для предприятий беспрецедентные возможности выхода на новых клиентов за счет инновационных продуктов и услуг.
image
Читать дальше →
Экономика идей. Компонуемая инфраструктура. HPE Synergy
Source: habrahabr

Итоги: Что сильнее – ассемблер или хабраэффект?

Отшумели страсти после моей первой статьи на хабре.

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

Сайт уже был один раз под подобным наплывом посетителей — когда в августе кто то опубликовал ссылку на сайт одновременно в Твиттер, ФБ и Реддит.

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

Как и ожидалось, чудо свершилось. Несмотря на то, что хостинг предельно слабенький (я его взял такой специально), несмотря на то, что сайт использует БД SQLite, которую все считают очень медленной, форум не упал. Он даже не замедлился. Все время сайт работал исправно и обслуживал всех посетителей.

Посмотрим как выглядит хабра–эффект изнутри:

Читать дальше →
Итоги: Что сильнее – ассемблер или хабраэффект?
Source: habrahabr