Pull to refresh
2
0
userID = '11855' @bvasya

User

Send message

Синтез 3D звука :: Clunk

Reading time2 min
Views3K
Работая над проектом уютненькой аркады, я с сожалением обнаружил что OpenAL отбирает слишком много моего времени. Мало того, что для него пришлось написать менеджер звуков о полутора тысячах строк кода, так ещё и приходилось бороться с разного рода чёрной магией. (Например реализация от nvidia намертво вешала венду) Поэтому, я внезапно решил что потратил на него достаточно времени и написал свой собственный велосипед, который и был успешно обкатан в поле, и выпущен с открытыми исходниками на sourceforge.

Вообще, наше ухо не такое уж и хитрое устройство. Позицию источника ухо определяет двумя способами. В горизонтальной плоскости звук приходит в одно ухо чуть раньше чем в другое. Простая тригонометрия умноженная на диаметр головы и дело в шляпе! :)
Второй способ уже куда сложнее — голова имеет разную плотность и разные технологические отверстия, следовательно, спектр звука искажается по разному в зависимости от направления вхождения сигнала. Было много попыток сделать эталонную голову(ничего постыдного, даже Стив Джобс делал это), заполнить её желеобразным заменителем мозга и померить искажения эталонного звука, например проект KEMAR из MIT.

Мой проект называется Clunk, и умеет практически всё, что необходимо уметь звуковой библиотеке:
  • Бесконечное количество всего: музыкальных потоков (SDL_Mix умеет только один, например), объектов и именованных источников звука прикреплённых к объектам или слушателю.
  • Простое апи на c++. (В OpenAL вы вынуждены сами перестраивать сцену, для того чтобы перекинуть 16 источников поближе к слушателю, рестартуя источники (sic), ещё рекомендую посмотреть примерчик «как сделать фоновую музыку на OpenAL», ~полтыщи строк кода =-O ) )
  • HRTF, HDT описанные выше(собственно 3d звук)
  • Поддержка всех distance models (падение громкости в зависимости от расстояния) из OpenAL
  • Опциональная оптимизация под процессоры с технологией SSE
  • Эффект допплера
  • Должно работать под всеми платформами где есть SDL, не содержит платформно-зависимого кода.
  • Лицензия LGPL 2.1 — можно использовать в коммерческих продуктах.


Адрес проекта на sf.net: https://sourceforge.net/projects/clunk
Если вам интересно, можно смело писать мне в icq, я готов ответить на любые вопросы.
Total votes 96: ↑95 and ↓1+94
Comments43

Памятка дизайнеру сайтов

Reading time10 min
Views244K
Вторая версия статьи, расширенная и дополненая.

Большая часть готовилась для моего выступления на «РИТ: Клиентские технологии», куда я, к сожалению, не доехал.

 

Памятка дизайнеру сайтов

К сожалению огромная армия даже опытных, «модных» и эффектных дизайнеров забывают, что результатом их творчества должен быть сайт, а не только «супер-скриншот» годный только для портфолио.

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

Читать дальше →
Total votes 453: ↑444 and ↓9+435
Comments231

Отладка в Django

Reading time4 min
Views28K
Новичкам в Django будет полезно узнать об очень полезном инструменте отладки — debug-toolbar. Он настолько крут, что его называют Firebug for Django. На больших проектах без него (или другого отладчика) не обойтись.
Посмотрите, как это работает.
Total votes 54: ↑53 and ↓1+52
Comments32

Что делать девелоперам под iPhone из России?

Reading time1 min
Views2.2K
Хотел бы поинтересоваться у общественности о тонкостях становления Registred Apple Developer и о продаже через Apple Store в целом. Из того что я знаю:
  • Для того чтобы продавать программы через Apple iTunes Store нужно купить участие в Apple Developer Connection за $99.
  • Разработка только на Mac, Леопард. IDE бесплатно.

Дальше одни вопросы:
  • Участие в Apple Developer Connection покупается за $99 через тот же Apple Store, но России в списке нет (насколько я понимаю они не работают в РФ). Предлагается отписаться в саппорт. Письмо автоматом пинают в европейское отделение, там они и гибнет: прошла неделя – ответа нет. Пытаться зарегаться в другой стране?
  • У кого есть опыт покупки, чем там оплата? Российская Visa classic проходит?
  • Если ты девелопер из штатов, с тебя удерживают налог. Если нет, то тебя просят это подтвердить, в какой форме? Насколько я знаю там нужно показать не пасспорт, а аналог штатовкого SSN. ИНН?
  • Если программа продается, возможные варианты вывода денег? Только чеки или wire тоже возможен. Если первое, то сколько идет чек, и насколько просто его обналичить.
  • Apple удерживает 30% с продаж. Какие еще минусы? Стоимость перевода чека?
Total votes 37: ↑31 and ↓6+25
Comments51

Об устройстве на работу в Google и Microsoft

Reading time4 min
Views19K

Как я не пошел работать в Google и Microsoft


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

Вот мой сосед дядя Вася полез под свой древний Москвич, который он больше ремонтировал, чем ездил на нем. Как ни странно он завел свой драндулет всего лишь через полчаса. Баба Клава с пятого этажа, как обычно, смачно выругалась, что ей не дают спать. Утро разгоралось все ярче и ярче.
Читать дальше →
Total votes 191: ↑180 and ↓11+169
Comments110

Разметка. Transitional vs Strict

Reading time4 min
Views7.1K
Речь в статье пойдет о такой, казалось бы изжеваной и изъезженой теме, как валидация веб-документа по одной из DTD-схем, которые в свою очередь определяются с помощью DOCTYPE.

Тема эта нетривиальна; преимущества и недостатки того или иного способа валидации на первый взгляд не всегда являются явными. Поэтому я решил что упомянуть о них еще раз будет не лишним.

В последнее время, многие редакторы и CMS'ки автоматически проставляют DOCTYPE для документа, что само по себе является прорывом, но к сожалению этого недостаточно, так как зачастую это именно Transitional схема. Начинающие разработчики не уделяют этому должного внимания, а зачастую вобще не подозревают что у них есть выбор.
Читать дальше →
Total votes 150: ↑142 and ↓8+134
Comments119

Покупатор — Change We Need

Reading time17 min
Views7.9K

Что такое Покупатор?


Если кратко, то это место, где магазины торгуются за покупателей.

Чуть подробнее: на Покупаторе человек, который хочет купить электронику, телефон, бытовую, офисную и другую технику, говорит, ЧТО он хочет купить, КУДА и КОГДА нужно привезти покупку, а магазины, которые могут выполнить эти условия, делают ему свои предложения, конкурируя между собой за право продать ему товар.

Ну, а чтобы рассказать еще подробнее, нужно гораздо больше букв и картинок ;).

(Disclaimer для тех, кто не любит читать длинные статьи: чтение этого материала может повлиять на шелковистость ваших волос).
Читать дальше →
Total votes 84: ↑74 and ↓10+64
Comments189

su или sudo?

Reading time3 min
Views240K
С давних времен многих смущает разнообразие вариантов обеспечения безопасности при выполнении операций с максимальными привилегиями. Например, в официальной документации Ubuntu в качестве команды редактирования рекомендуется использовать что-то вроде sudo nano, а в многочисленных любительских мануалах (в стиле «5 фокусов в командной строке, которые удивят вашу бабушку») для получения root'ового шелла предлагается писать sudo su -. Попробую объяснить, почему такое положение вещей кажется мне неправильным.
Читать дальше →
Total votes 117: ↑105 and ↓12+93
Comments58

Свободные векторные карты для GPS

Reading time1 min
Views5.7K
Не так давно став «администратором» usb-шного gps-приемника и Asus eeePC 901, я задался вопросом поиска подходящего софта для организации GPS-навигатора на базе eeePC.

На данный момент мною было найдено две программы, более-менее обладающих нужным функционалом: gpsdrive и navit. Первая мне как-то не очень понравилась и ковыряния с нею были отложены на потом, а вот со второй софтинкой я поковырялся более основательно.

Благодаря наботу скриптов, navit поддерживает множество различных форматов векторных карт (в том числе карты от garmin). Но меня больше интересовали открытые и свободные источники.
Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments31

1000 замечательных иконок для веб страниц

Reading time1 min
Views6.5K

Fugue Icons


image
Отличный пак из 1000 иконок в размере 16x16

Эти иконки распространяются по лицензии Creative Commons Attribution 3.0 license.

Ссылка на сайт
Скачать пак | Посмотреть иконки (1199.25 КБ)
Total votes 127: ↑98 and ↓29+69
Comments43

Кластеризация memcached и выбор ключа кэширования

Reading time4 min
Views23K
Серия постов под общим заглавием “Web, кэширование и memcached” продолжается. В первом мы поговорили о memcached, его архитектуре и возможном применении.

Сегодня речь пойдет о:
  • выборе ключа кэширования;
  • кластеризации memcached и алгоритмах распределения ключей.

Следующий пост будет посвящен атомарности операций и счетчикам в memcached.

Итак, поехали!
Total votes 61: ↑61 and ↓0+61
Comments42

JavaScript библиотека «Raphaël» — SVG расцветает, SVG и iPhone

Reading time1 min
Views3.1K
Raphaël — это небольшая JavaScript библиотека с простым синтаксисом для работы с векторными форматами: SVG и VML (для IE). Впрочем, как я успел заметить у разработчика возникают проблемы с VML (когда многие вещи в SVG делаются очень просто в VML не всегда есть простая альтернатива)

часы
Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments50

Оптимизация MySQL запросов

Reading time4 min
Views124K
В повседневной работе приходится сталкиваться с довольно однотипными ошибками при написании запросов.

В этой статье хотелось бы привести примеры того, как НЕ надо писать запросы.
Читать дальше →
Total votes 143: ↑132 and ↓11+121
Comments142

Gippos: посмотри, где твои друзья

Reading time1 min
Views724
GipposGippos – это бесплатная программа для мобильных устройств, позволяющая определять свое местоположение, показывать его друзьям и видеть на карте других пользователей. Кроме того, можно обмениваться сообщениями с пользователями из контакт-листа.
Подробности
Total votes 14: ↑9 and ↓5+4
Comments7

Правильная интеграция Doctrine в CodeIgniter

Reading time7 min
Views5.3K
Здравствуйте, на днях занялся интеграцией популярного PHP-ORM Doctrine с не менее популярным PHP-фрэймворком CodeIgniter и обнаружил, что официальный способ интеграции, озвученный в кукбуке Doctrine и на вики CodeIgniter вызывает у меня, по меньшей мере, негодование.
Почему ?
Total votes 41: ↑36 and ↓5+31
Comments31

Как готовить презентацию проекта для инвесторов

Reading time3 min
Views2K
За два месяца мы, проект Comindwork, провели 11 презентаций для инвесторов. Три из них — при личной встрече и на заседании украинского клуба бизнес-ангелов, UABAN, остальные 8 — в рамках ISDEF, форума независимых разработчиков программного обеспечения. Полезный опыт. Сначала презентация была в 10 слайдов. Теперь их 4. Как говорят англичане, «Less is more», то есть «меньше это больше».
Не буду говорить, как я в действительности готовился. Скажу, как надо было :)
Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments42

Старт блога

Reading time1 min
Views1K
Странно, что подобного блога еще нет на Хабре. Имею честь начать.
Я не претендую на гуру nginx, но использую его уже значительное время и имею представление, что это.
Всем привет, вливайтесь.
Total votes 103: ↑88 and ↓15+73
Comments26

Nginx UploadProgress Module

Reading time2 min
Views7.2K
Модуль для nginx, с помощью которого достаточно просто мониторить прогресс загрузки файлов на сервер. Ранее были подобные решения, через модули к php, ruby, через стороние скрипты, flash объекты итп. Автор предлагает универсальное решение на уровне web сервера. Подробную информацию и инструкции вы можете найти на wiki.codemongers.com (кстати, один из лучших проектов, посвященных nginx`у). Тут я хотел обратить внимание на другое.
Использовал модуль совместно с nginx upload module, работает на ура. Однако файлы, что я заливаю, достаточно большие (поддерживаю файлообменник), пытался запихнуть в директиву upload_progress размер обрабатываемых файлов — 1g, при релоаде nginx`а получил варнинг, мол непонятный размер вы поставили. Странно, т.к. в client_max_body_size у меня стоит 1g и нормально себя чувствует. Глянул исходники nginx`а и модуля, выяснелось, что модуль обрабатывает директиву upload_progress функцией ngx_parse_size, тогда как сам nginx обрабатывает ту же client_max_body_size соседней функцией ngx_parse_offset, функции абсолютно идентичны (на мой взгляд), разве что первая не понимает размерность «g», а вторая понимает =) Для того, чтобы модуль нормально обрабатывал размерность в директиве upload_progress, надо в исходнике модуля (ngx_http_uploadprogress_module.c) в строчке 1151 исправить ngx_parse_size на ngx_parse_offset.
В общем это не критично, т.к. директива нормально обрабатывает значение 1024m, но как-то нелепо выглядит подобная запись =)))
А вообще модуль очень понравился, очень удобное решение, не зависящее от бэк-енда.

update: Внимание, совершил глупую ошибку. Стыдно. Деректива upload_progress задает не максимальный размер загружаемых файлов для указанной зоны, как я думал, а размер оперативной памяти, выделяемой для обсчета одной загрузки в эту зону. Значение для этой дерективы — 1,2m, максимум 10-20m. Задавая 1g вы будете тратить гигабайт оперативки на каждую загрузку. Стыдно, ошибку не повторяйте.
p.s. тем не менее баг найден, автору сообщил, он обещал исправить.
Total votes 63: ↑57 and ↓6+51
Comments23

Information

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