Archive for October 2007

чтиво за память

What every programmer should know about memory, Part1:

http://lwn.net/Articles/250967/

What every programmer should know about memory part 2: CPU caches

http://lwn.net/SubscriberLink/252125/568f5f3b7d53bd46/

Memory part 3: Virtual Memory

http://lwn.net/Articles/253361/

Memory part 4: NUMA support

http://lwn.net/Articles/254445/

Memory part 5: What programmers can do

http://lwn.net/SubscriberLink/255364/1e135ddf3bff4b77/

one-liner

Ранний тест Напида-Раса много проще, чем консервативный тест Наха-Уятора.

Черная консоль и черный треугольник.

Нарисовался треугольник на PS3 RSX. Под Линуксом. Последняя стадия была нудной и не такой искрометной как прежние. Всего-то заполнить десяток рендерстейтов, залудить шейдерцы в микрокоде, поместить в командный буфер треугольник.

Continue reading ‘Черная консоль и черный треугольник.’ »

Мегабайты в квадрате это вам не биты. Удаление многих элементов из массива.

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

Имеется массив чисел. Надо удалить все отрицательные:

float *array; 
int size;

Continue reading ‘Мегабайты в квадрате это вам не биты. Удаление многих элементов из массива.’ »

Render state rant

crossposted to zeuxcg.blogspot.com

Today we’ll talk about render state management in D3D10 a little.

While designing D3D10, a number of decisions were made to improve runtime efficiency (to reduce batch cost, basically). It’s no secret that D3D9 runtime is not exactly lean & mean – there is a lot of magic going on behind the scenes, a lot of validation, caching, patching…

Continue reading ‘Render state rant’ »

ИНТЕРВЬЮ ГЛАЗАМИ ПОСТРАДАВШЕГО

Кадровый кризис не столько очевидный, сколько неизбежный. Требования растут быстрее, чем зарплаты, а зарплаты растут очень быстро. Кадры решают всё, но не все кадры одинаково полезны. Будем их ловить.
Continue reading ‘ИНТЕРВЬЮ ГЛАЗАМИ ПОСТРАДАВШЕГО’ »

Вирт и C/C++

  Наконец-то нашёл статью, точнее доклад Вирта о современных технологиях, Преподавание информатики: потерянная дорога. Я не спорю с основными тезисами этого доклада, действительно в последнее время всё становится сложнее. Но одно место в тексте привлекло моё внимание и вызвало возмущение, абзац об «уродливом синтаксисе» языка С, выделяющийся по эмоциональности из основного текста, ключевое предложение: «Он запутывает студентов, допуская разный смысл для x = y и y = x и принуждая всех писать x == y вместо обычного x = y.» Очевидно, здесь язык С противопоставляется виртовскому Паскалю. И Вирт явно имеет в виду, что надо писать x:=y. Я не могу аргументировано судить, какой синтаксис более уродлив, сишный или паскалевский. Но делать самую часто встречающуюся конструкцию языка — оператор присваивания — состоящей из двух символов, причём один из них набирается с шифтом, это по-моему поступок недостойный. Помню, какое я ощутил чувство свободы, когда я перешёл на С и мне больше не надо было набирать это надоевшее двоеточие. Хуже этого только LET x=y в ZX Basic.
«Вот и всё, что я могу сказать о войне во Вьетнаме» (Форрест Гамп)
(Crossposted in LJ)

Cuckoo hashing, или о чём не написал Д.Кнут

Мой любимый раздел в «искусстве..» (http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming)- сортировка и поиск; если точнее, то хеши. C 1973 года пор прошло ужасно много лет, но книга до сих пор остаётся актуальной. Речь впрочем не про неё, а про хеши.
Continue reading ‘Cuckoo hashing, или о чём не написал Д.Кнут’ »

one-liner

Fee-nancial question.

Глупые поточные ошибки

Про глупую ошибку в собственном коде писать несколько стыдно, но я попробую. Вдруг кому-нибудь поможет.

Всем известно, что в некоторые функции libc, как в реку, дважды зайти нельзя. Против этого придуманы reeentrant версии.

Однако в reentrant версию тоже не всегда можно зайти дважды.
Continue reading ‘Глупые поточные ошибки’ »