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



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

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


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

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

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

В статье мы рассмотрим кеширование, векторное программирование, чтение и понимание ассемблерного кода, а также написание кода, удобного для компилятора.
01/11/2017 16:37:51
0

[Из песочницы] Tertiarm — роборука, напечатанная на 3d принтере

Всем привет! Представляю вашему вниманию мой проект — роборука на базе настольной лампы с напечатанными на 3d-принтере суставами.

image
01/11/2017 16:31:04
0

Тот день, когда аноним с 4chan затроллил разведывательные агентства и мировые СМИ


Название треда: «Тот день, когда 4chan затроллил неоконсерваторов, разведывательные агентства и крупнейшие СМИ». Данный тред уже удалён с сайта 4chan

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

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

Впрочем, обо всём по порядку.
01/11/2017 16:19:16
0

Как использовать SELF XSS в формах входа/восстановления пароля/регистрации

Добрый день. В этой статье я расскажу, как правильно эксплуатировать SELF XSS, чтобы получить за неё деньги в баг баунти или взломать пользователя/админа.

Я писал эту статью полгода назад в своём блоге на wordpress для англоязычных пользователей, решил её написать на русском здесь. Уверен, что это тема актуальная сейчас с быстрым появлением различных bug bounty программ и будет многим интересна.

Итак, у нас есть хранимая или отраженная XSS в форме восстановления пароля.

Но мы не можем осуществить атаку на пользователя, так как это не XSS в учетной записи. И если мы не можем прислать юзабельный PoC, то эта уязвимость класифицируется как SELF XSS, она не опасная и не может претендовать на большую награду в Bug Bounty!
01/11/2017 16:15:15
0

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

image

В этой статье я попытаюсь ознакомить читателя с лидирующей, на данный момент, технологией хранения отработавшего ядерного топлива – так называемым, «сухим» хранением. Ну и конечно доказать, почему хранение ОЯТ это не «свалка отходов» и не «ядерный могильник».
01/11/2017 16:11:30
0

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



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


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

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

Из чего это состоит? Нам нужно доставить, прежде всего, код — то, над чем мы работали большое количество времени, тестировали и прочее.
01/11/2017 16:00:56
0

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

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

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

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



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

В данной статье мы коснемся различных аспектов работы с сервером, расскажем о некоторых дополнительных функциях, которые потребовались для введения социальной составляющей, и о том, как они были реализованы в продукте.
01/11/2017 15:24:33
0

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

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

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



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

Итак, мы снова приглашаем всех умеющих писать на наш конкурс!
01/11/2017 15:14:49
0

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

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

Решил пройтись по топу alexarank, начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию (www.gismeteo.ru/soft/), обратил внимание на тех.поддержку.
01/11/2017 15:02:23
0

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

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


image


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


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

01/11/2017 14:53:11
0