Pull to refresh
17
0
Дмитрий @StrangerInTheKy

PL/SQL разработчик

Send message

Кризис ожирения сайтов

Reading time30 min
Views123K
Примечание переводчика: визит под кат этого поста означает большие объёмы потреблённого трафика. И это иронично, если учесть поднятую тему. Но всё сразу встаёт на свои места, если помнить, что в оригинале это было выступление в прошлом ноябре в Сиднее длиной почти в час. Чтение поста занимает куда меньше времени. В форме видеозаписи (1280×720) речь занимает два гигабайта. Пост же занимает всего лишь 12 МиБ. Рекомендуется просмотр на широких мониторах.



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

Выступление совсем не об этом. Я хотел бы поговорить об этом общественном кризисе здоровья, этом ожирении сайтов. Отличные дизайнеры, которые задумываются о вебе как я или даже больше, почему-то делают страницы, которые становятся больше. Речь пойдёт о текстовых в своей основе сайтах, которые по каким-то непостижимым причинам с каждым годом становятся всё больше и больше.
Читать дальше →
Total votes 97: ↑93 and ↓4+89
Comments123

Попиксельная заливка экрана в Wolfenstein 3D

Reading time4 min
Views42K
В коде id Software порой встречаются бесподобные жемчужины. Самая знаменитая — это, конечно, 0x5f3759df, удостоившаяся даже комикса на xkcd. Здесь же речь пойдёт о заливке экрана: пиксели закрашиваются по одному в случайном порядке, без повторов. Как это сделано?

Читать дальше →
Total votes 152: ↑151 and ↓1+150
Comments96

Как работает поле Хиггса: основная идея

Reading time5 min
Views26K
Разбираемся в физике частиц:
1. Шар на пружине, ньютоновская версия
2. Квантовый шар на пружине
3. Волны, классический вид
4. Волны, классическое уравнение движения
5. Квантовые волны
6. Поля
7. Частицы – это кванты
8. Как частицы взаимодействуют с полями

Как работает поле Хиггса:
  1. Основная идея
  2. Почему поле Хиггса в среднем ненулевое
  3. Как появляется частица Хиггса
  4. Почему поле Хиггса необходимо


Если вы читали мою серию статей про физику частиц и полей, вы знаете, что все т.н. «элементарные частицы» на самом деле – кванты (волны, чья амплитуда и энергия минимально допустимые квантовой механикой) релятивистских квантовых полей. Такие поля обычно удовлетворяют уравнениям движения класса 1 (или их обобщению) вида

$ d^2Z/dt^2 - c^2 d^2Z/dx^2 = - (2 \pi \nu_{min})^2 (Z - Z_0) $


Где Z(x,t) – поле, Z0 — равновесное состояние, x – пространство, t – время, d2Z/dt2 представляет изменение по времени изменения по времени Z (d2Z/dx2 — то же для пространства), c – универсальное ограничение скорости (часто называемое «скоростью света»), а νmin — минимально допустимая частота для волны в поле. Некоторые поля удовлетворяют уравнению класса 0, которое представляет собой просто уравнение класса 1, в котором величина νmin нулевая. У кванта такого поля масса

$ m = h \nu_{min} / c^2 $


Где h – постоянная Планка. Иначе говоря,

$ d^2Z/dt^2 - c^2 d^2Z/dx^2 = - (2 \pi c^2/h)^2 m^2 (Z - Z_0) $


Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments11

«Магическая константа» 0x5f3759df

Reading time9 min
Views121K
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

Вот полная реализация этого алгоритма:

float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;  // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}

Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

image

Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
Читать дальше →
Total votes 212: ↑210 and ↓2+208
Comments188
12 ...
7

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity