Pull to refresh
41
Karma
0
Rating
Андрей Бибичев @bibigone

User

  • Followers 7
  • Following 6

Пишем игровой движок. Часть вторая

Game development *
Translation
Продолжаем тему разработки игр, начатую в прошлом посте.

Графическое ядро


Каким путем я пойду при разработке графической подсистемы?


Всем известно, чем занимается графический процессор (рисует симпатичную графику). Но как же разработать одно общее ядро, которое будет делать все, что вы хотите? Первый шаг в разработке чего-либо — это обдумывание того, что же вам все таки нужно. Когда я проектировал ядро, я записал на бумагу все вещи, которые я хотел, а затем объединил все в несколько простых групп. Я решил, что мне нужны текстуры, секции текстур, анимация, шрифты и камера. Вы можете удивиться, зачем мне секции текстур? Ну, в основном, для экономии ресурсов.

Как же оно устроено?


Читать дальше →
Total votes 89: ↑85 and ↓4 +81
Views 33K
Comments 44

Динамические вызовы: сравнение методов

.NET *

Динамические вызовы: что это и зачем?



Думаю, для каждого разработчика, работающим на статических языках программирования, иногда возникала необходимость прибегнуть к динамическим вызовам — вызвать метод чего-то, о чем пока еще ничего не известно. Или получить какое-то свойство у какого-то объекта, о котором будет известно только в run-time.

Это иногда используется в алгоритмах, основанных на так называемой «утиной типизации» (duck typing):
Если что-то выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, утка и есть.


В данной статье я хотел бы рассмотреть основные доступные в Microsoft .NET 4.0 способы, сравнить их производительность и синтаксис.

Читать дальше →
Total votes 98: ↑76 and ↓22 +54
Views 7.8K
Comments 27

Внутри MP3. А как оно всё устроено?

Algorithms *


Однажды мне понадобилось решить простенькую (как мне тогда казалось) задачу – в PHP-скрипте узнать длительность mp3-файла. Я слышал о ID3 тегах и сразу подумал, что информация о длительности хранится либо в тегах, либо в заголовках mp3-файла. Поверхностные поиски в интернете показали что за пару-тройку минут решить эту задачу не получится. Поскольку от природы я довольно любопытен а время не поджимало — решил не использовать сторонние инструменты а разобраться в одном из самых популярных форматов самостоятельно.

Если Вам интересно, что там внутри – добро пожаловать под кат (трафик).
Читать дальше →
Total votes 230: ↑219 and ↓11 +208
Views 86K
Comments 55

Десять вещей, которые вы не ожидали от HTML/Javascript

Website development *
Translation
Пятнадцать лет назад трудно было представить, что когда-нибудь HTTP, HTML, CSS и Javascript станут основными технологиями для доступа к информации и заменят целые классы десктопных приложений. Например, вот десять примеров того, что сложно было ожидать от веб-технологий в 2010 году, но они это делают.

1. Интерактивный рендеринг физики ткани


2. Распознавание объектов на видео в реальном времени


Читать дальше →
Total votes 117: ↑88 and ↓29 +59
Views 4.4K
Comments 41

Javascript играет в шахматы — размер скрипта 1 KB!

Website development *


JavaScript в работе использует уже чуть ли не каждый веб-разработчик. Но пока только мексиканцу Оскару Толедо удалось упихнуть в один килобайт кода на JavaScript самый настоящий шахматный алгоритм.

По ссылке можно сразиться с компьютером прямо в окошке браузера, а также ознакомиться с мозгодробильным весьма заковыристым кодом скрипта.
Total votes 125: ↑119 and ↓6 +113
Views 18K
Comments 141

Правильный захват контекста в Javascript

JavaScript *
Довольно часто во многих статьях я вижу, как люди захватывают контекст this для использования в анонимной функции и удивляюсь — то, что уже стало стандартом — просто ужасная практика, которая противоречит всем канонам программирования. Вам знакома такая запись?
var self this;
Может вам тоже стоит переосмыслить этот аспект?
Читать дальше →
Total votes 113: ↑87 and ↓26 +61
Views 34K
Comments 147

Две недели до Application Developer Days

Self Promo
image

Сетка докладов конференции Application Developer Days 2010 сверстана! Еще будут небольшие подвижки, еще есть незанятые слоты — для них мы пока еще выбираем самые интересные доклады, но общий костяк уже зафиксирован:
Читать дальше →
Total votes 37: ↑31 and ↓6 +25
Views 518
Comments 44

«Захват движения» от iPi Soft

Intel corporate blog
image   Motion capture (MoCap; Захват движения) — технология для записи движений актеров, которые затем используются в компьютерной графике. Поскольку тело человека (и животных) устроено достаточно сложно, то гораздо проще, убедительней, а зачастую и дешевле записывать движения актеров и перекладывать их на трехмерные модели, чем анимировать трехмерные модели вручную.

   Большинство систем захвата движения работают с маркерами или датчиками, которые крепятся на тело актера, как правило — при помощи костюма. Но есть и способ захват движения при помощи хромакея — мы поговорили с Михаилом Никоновым, одним из участников команды iPi Soft (выигравшей дубнинскую инновационную школу) и обсудили подробности проекта и его перспективы.
Читать дальше →
Total votes 59: ↑55 and ↓4 +51
Views 39K
Comments 40

Визуальный редактор jHtmlArea

Website development *
Очень компактный, но в то же время довольно удобный визуальный редактор jHtmlArea. По первой букве в названии можно догадаться, что используется jQuery.

Он в чем-то схож с более известным jWysiwyg. Несмотря на то что имеет меньший размер, обладает не меньшими возможностями. На мой взгляд код организован гораздо удобнее, очень легко расширяем. Также огромный плюс в том, что иконки в меню можно располагать в любом порядке.
Читать дальше →
Total votes 57: ↑49 and ↓8 +41
Views 5.2K
Comments 57

jQuery.keyboard v0.2.0

jQuery *

Снова приветствую Хабрасообщество. Недельку назад я выкладывал свою либу jQuery.keyboard. Там было несколько недостатков, нереализованных идей, да и огромное количество предложений и положительных отзывов побудили меня к быстрому написанию новой версии
Читать дальше →
Total votes 85: ↑74 and ↓11 +63
Views 5.3K
Comments 59

Быстрое создание CRUD-основы приложения на Entity Framework/ASP.Net MVC

ASP *
Большинство прикладных приложений, которые приходится разрабатывать на практике, сводятся к примитивному шаблону: есть некая предметная область, в которой выделены объекты и связи между ними. Все это легко представляется в виде таблиц в базе данных, а базовый функционал приложения состоит в том, чтобы выполнять над этими таблицами четыре основных действия: создание, модификацию, просмотр и удаление объектов. Далее, обычно, на эту основу прикручивают дополнительную бизнес-логику, модуль отчетов и остальной необходимый функционал.
Естественной реакцией организма разработчика на присутствие определенного шаблона является желание автоматизировать его применение, например, используя кодогенерацию. Шутка. Кодогенерация – это тот же метод copy-paste, только за программиста его делает специально написанный инструмент. Иногда это оправдано, но перед тем, как решится на генерацию кода, лучше хорошо подумать, а нельзя ли здесь обойтись средствами ООП, к примеру?
Читать дальше →
Total votes 34: ↑24 and ↓10 +14
Views 11K
Comments 7

Каррирование и частичное применение функции

.NET *
Translation
Когда я впервые услышал термин Каррирование, я сразу же представил себе вкусные тайскую и индийскую кухни.  К моему удивлению, я обнаружил, что разговор шел не о прекрасных специях, а о преобразовании функции, принимающей n аргументов в функцию, которая принимает один аргумент и возвращает каррированую функцию, которая принимает n — 1 аргументов. Где бы это могло быть полезным?
Читать дальше →
Total votes 29: ↑21 and ↓8 +13
Views 24K
Comments 37

Не кроссбраузерный event

JavaScript *
Здравстуйте, уважаемое хабрасообщество. Реквестирую консультацию.
Позавчера, во время разработки jQuery.keyboard столкнулся с абсолютной браузерной несовместимостью, ужасно неприятной непоследовательностью и т.д. в возврашении значения event.keyCode в различных браузерах. На удивление, единственный, кто меня порадовал — IE 6 (ies4linux) и больше всех огорчила — опера 10. Хромиум и фокс же ж вернули приблизительно одинаковый результат.
Читать дальше →
Total votes 49: ↑34 and ↓15 +19
Views 3.1K
Comments 46

Избирательное юнит-тестирование или ещё раз о тонких контроллерах

.NET *
Translation
В дополнение к недавно упомянутой на Хабре статье о том, что полное 100%-е покрытие кода юнит-тестами почти всегда не является экономически выгодным, поскольку просто лень писать всю эту.… это требует неоправданных затрат рабочего времени и увеличивает расходы на поддержку кода, сегодня хотелось бы представить на суд общественности размышления по этому поводу Стива Сандерсона (Steve Sanderson), автора книг Pro ASP.NET MVC и Pro ASP.NET MVC V2.
Читать дальше →
Total votes 46: ↑29 and ↓17 +12
Views 2.9K
Comments 11

Стиль кода

Python *
Translation
По просьбам хабраюзеров я сделал перевод текста, составленного abchernin на основе PEP 8 — «Styleguide for Python Code» (см. топик).

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

Надеюсь, вам будет полезна моя работа: pdf, 200кб
Читать дальше →
Total votes 52: ↑48 and ↓4 +44
Views 12K
Comments 44

jQuery.keyboard v0.1.0

jQuery *

У меня есть на примете как минимум два проекта, в которых понадобится активное управление с помощью клавиатуры. Поэтому, я сел и написал удобный и красивый плагин для jQuery, который выкладываю во всеобщий доступ под свободной лицензией LGPL.
Читать дальше →
Total votes 141: ↑136 and ↓5 +131
Views 5.3K
Comments 82

Отладка Javascript

JavaScript *
Debug Logo

Многие задают мне один и тот же вопрос:
«Как дебажить этот $%*!%$! JavaScript?».

Так вот, во-первых JavaScript — не $%*!%$! А как я его дебажу — сейчас расскажу.

(Примечание: наверное эта статья больше для новичков. Так что не судите строго)

Читать дальше →
Total votes 192: ↑178 and ↓14 +164
Views 140K
Comments 78

Что такое Pimpl по версии Qt, и с чем его едят!

Qt *

Вступление.



Часто в документации от Qt встречается термин Pimpl. Кроме того, те кто хоть немного копался в исходном коде Qt часто видел такие макросы как: Q_DECLARE_PRIVATE, Q_D. А также встречал так называемые приватные заголовочные файлы, название которых заканчивается на "_p.h".
В этой статье я попробую приоткрыть ширму за всей это структурой.

Pimpl, что это?


Pimpl — Pointer to private implementation. Это одно из названий паттерна программирования. Еще его называют чеширским котом — «Cheshire Cat» (это название мне больше нравится). В чем суть этого паттерна? Основная идея этого паттерна — это вынести все приватные члены класса и, в не которых случаях, функционала в приватный класс.
Отсюда название «чеширский кот» — видно только улыбку, а все остальное остается невидимым, но оно несомненно есть :-) Кто не помнит этого замечательного кота, может обратится к первоисточнику, к книге Льюиса Кэрролла «Алиса в стране чудес». Очень интересная книга, особенно если читать в оригинале.
Что это дает?
Читать дальше →
Total votes 48: ↑46 and ↓2 +44
Views 35K
Comments 70

WMI в .Net

.NET *
Хотелось бы поделиться личным опытом использования WMI в .Net приложениях.
Для начала немного теории: WMI — Windows Management Instrumentation, набор интерфейсов для управления операционной системой. Так как данная технология позволяет управлять компонентами системы и приложениями удаленно, она полюбилась многим системным администраторам. В одном проекте заказчики выдвинули нам отдельное требование, что бы была реализована возможность мониторить работу серверной части приложения через WMI. И я хочу поделиться с вами способами этой самой реализации.

Читать дальше →
Total votes 46: ↑31 and ↓15 +16
Views 7.9K
Comments 12

Information

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