?

Log in

masterden says [entries|archive|friends|userinfo]
masterden

[ website | программирование ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Интересные статьи. [Aug. 15th, 2015|10:52 pm]
masterden
[Tags|, , ]
[music |Joe Satriani - In My Pocket | Powered by Last.fm]

Оригинал взят у droids_life в Интересные статьи.

Тут нашлась подборка статей про z-буфер:
https://developer.nvidia.com/content/depth-precision-visualized - это очень хорошая и доходчивая;
http://www.geometry.caltech.edu/pubs/UD12.pdf;
http://www.humus.name/Articles/Persson_CreatingVastGameWorlds.pdf - про боевой опыт использования reverse z buffer;
http://www.humus.name/index.php?ID=255 - тут больше про производные на видеокарте, правда;
http://outerra.blogspot.ru/2012/11/maximizing-depth-buffer-range-and.html;
http://outerra.blogspot.ru/2009/08/logarithmic-z-buffer.html.

Понравившееся:
http://blogs.msdn.com/b/shawnhar/archive/2009/11/06/premultiplied-alpha.aspx - про premultiplied alpha:
http://www.jpct.net/wiki/index.php?title=GPU_guide - список эпичных засад на мобильных GPU.
linkpost comment

Застрял. [Aug. 15th, 2015|10:34 pm]
masterden
[Tags|]
[music |Joe Satriani - In My Pocket | Powered by Last.fm]

Довелось недавно в лифте застрять. Обнаружил любопытный набор дефектов в нём. Ехал я не четвёртый этаж с велосипедом и, выходя из дверей, уронил на пол пакет. Пока возился с ним, лифт решил закрыть двери. Далее дефекты:

  • Лифт не отреагировал на мои попытки нажать кнопку "открыть двери" (со стрелочками в разные стороны) в процессе закрывания. Придержать двери телом у меня не было возможности.

  • После закрытия дверей выключился свет и кнопки (даже связь с диспетчером!!) не реагировали на нажатия. Где, б*я, датчик массы? В кабине около 90 килограмм, а мы закрываемся.

  • Скорее всего, выключением света и кнопок пытались сэкономить электроэнергию. Но при этом циферблат с номером этажа продолжал гореть. Либо специалиста по эргономике надо гнать ссаными тряпками из профессии, либо программистов, окучивавших сиё устройство. Вот на кой чёрт? : ) Лифт явно думал, что внутри никого. Зачем циферблат жечь?

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

  • Вентиляция херовая и явно не была рассчитана на застревание человека. А если б нас трое было в кабине? Я там просидел минут 15 и уже нехило чувствовал духоту.

Вылез я от туда всё-таки благодаря сотовому. Заметил, что на пару секунд полоска наличия сигнала таки мигает. Набрал смс в квартиру, куда ехал, надеясь что аппарат сумеет автоматом пропихнуть её в окно наличия связи. Прокатило.
linkpost comment

Переплыл Бердский залив. [Aug. 12th, 2015|12:30 am]
masterden
[Tags|]
[music |Joe Satriani - Keep on Movin' | Powered by Last.fm]

На день Ивана купалы (7 июля) участвовал в мероприятии. Небольшой группой любителей плавания переплыли Бердский залив. Среди участников были ваш покорный слуга, тренер сборной НГУ по плавание Сергей Игоревич Тимофеев, мой друг Иван Болдов и выпускница ФИТ НГУ Алёна Кожакина.

День был с утра пасмурный, и мы готовились к дождю. Так-то плыть под ним или без него – без разницы. На суше неприятно. Но за несколько минут до старта тучи разошлись и вышло яркое солнце. Стартовали мы с пляжа яхт-клуба «Акваленд». Нужно было добраться до бердского городского пляжа. На воде нас сопровождал катер МЧС.

Перед стартом пожали руки и ринулись в воду! Плылось легко. Мы с Иваном шли в гидрокостюмах – отрабатывали триатлон. Конечно, открытая вода отличается от бассейна. Во первых, постоянно приходится сверяться с курсом.  Тут сильно помогали яркие шапочки участников. Их было легко приметить за одно поднятие головы из воды. Во вторых волны сбивают технику вдоха. Если под них не подстраиваться, то рот зальёт по полной.

Плыли мы группой, лидеры иногда притормаживали, что бы подождать. В какой-то момент я потерял Ивана и секунд 10 стоял на месте, выискивая его. Заметил катер МЧС, державшийся от нас в метрах 100. Нашёл :) и поплыл дальше.

На дистанцию 1.85 километра (морская миля) у нас ушло 28 минут.

P.S. заметка про заплыв на сайте НГУ (в конце статьи): http://www.nsu.ru/173f12eb409790ff0a2b2e002cd33d7b#5.

Фотографии...Collapse )
linkpost comment

Задачка. [Jul. 20th, 2015|11:08 pm]
masterden
[Tags|, ]

Оригинал взят у droids_life в Задачка.

Тут на кружочках проскакивала занятная задачка. Простая, но со вкусом. Думаю, автор соответствующего "треда" не будет против публикации : )

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

Васе и Маше нужно помочь придумать стратегию, чтобы они выигрывали каждый раз.


Источник задачи занятен: https://www.whitehouse.gov/blog/2015/05/17/hello-world

Решение подбирается быстро. А вот осознание, того, что его "бытовая" формулировка приводит к успеху команды, доходит далеко не сразу.
link1 comment|post comment

Жук в Canvas.drawBitmap на андроиде. [Jul. 20th, 2015|11:07 pm]
masterden
[Tags|, ]
[music |Blackmore's Night - The Last Leaf | Powered by Last.fm]

Оригинал взят у droids_life в Жук в Canvas.drawBitmap на андроиде.

Read more...Collapse )
linkpost comment

Полезное для отладки под андроид. [Jul. 20th, 2015|11:06 pm]
masterden
[Tags|]
[music |Blackmore's Night - The Last Leaf | Powered by Last.fm]

Оригинал взят у droids_life в Полезное для отладки под андроид.

adb shell setprop debug.assert 1 - включает Java'овские assert'ы.

adb shell dumpsys activity - показывает информацию по текущим активностям, задачам, провайдерам контента и пр. Полезно при отладке всяких отложенных сервисов, будильников, отложенных обновлений и пр.

Обе команды, кстати, Санёк Казанин нарыл. Первую ещё году так в 2012. Вторую буквально сегодня.
linkpost comment

Обмазать всё const'ом. [Jul. 18th, 2015|11:57 am]
masterden
[Tags|, , ]
[music |Norah Jones - Broken | Powered by Last.fm]

Оригинал взят у droids_life в Обмазать всё const'ом.

Есть неплохой принцип в программировании: объявлять любую сущность с максимальным уровнем защищённости по умолчанию (к примеру, для классов в C# - делать их sealed, internal) и понижать его только по факту необходимости. Но в C++11 есть внезапная засада с частным случаем этого принципом - всё что можно объявлять, как const. Простейший код:

void foo(std::string&&)
{
    std::cout << "rvalue ref" << std::endl;
}

void foo(const std::string&)
{
    std::cout << "lvalue ref" << std::endl;
}

int _tmain(int, _TCHAR*)
{
    std::string bar = "the string";
    foo(std::move(bar));
    return 0;
}

Если же добавить const к объявлению строки bar, то будет вызываться первый второй foo, а не первый. И тут можно не просто просадить производительность, если речь идёт о каком-нибудь более хитром коде. Нутря функций, понятно, могут быть сильно разными, да и вызывающий код будет наивно полагать, что отдал управление std::unique_ptr'ом (замените на него std::string в примере). Уже второй раз, примерно, за девять месяцев на эту штуку натыкаюсь. Оба раза повезло - перегруженной на const refeference функции не было и код не компилировался.

Всем внимательности, поцоны!
linkpost comment

Ремонт карбоновой рамы. [Jul. 12th, 2015|08:44 pm]
masterden
[Tags|, ]
[music |Dream Theater - Learning to Live | Powered by Last.fm]

Я, вроде, детально не писал о починке карбоновой рамы? Прошерстил записи этого журнала, вроде не рассказывал. Думаю, некоторым читателям будет любопытно. При транспортировке из Минска подседельная труба треснула на шоссейном велосипеде. Варианты с отправкой за бугор отпали из-за отсутствия компаний (DHL за >20К рублей в одну сторону не в счёт), которые могут раму за вменяемые деньги туда довезти. К счастью, нашлись две конторы в РФ: http://biketrip.spb.ru/ и http://veloline.ru/. Выбрал москвичей, так как они предложили более качественный ремонт. Смета (все суммы в рублях) получилась следующая:

  • 300 разбор велосипеда в "ТестЦентре"

  • 2100 упаковка в "Академупаке"

  • 910 доставка "Деловыми Линиями" до мастерской в Москве

  • 8000 за ремонт и покраску рамы

  • 1665 доставка "ЖелДорЭкспедицией" до меня в Новосибирске

  • 1000 сборка велосипеда в ТестЦентре

Сейчас рама в полном порядке, как будто повреждения и не было. Нормально держит тренировочные заезды до Кольцово и даже побывала на соревнованиях.
linkpost comment

Из прошлого. [Jul. 1st, 2015|11:00 pm]
masterden
[Tags|, ]
[music |Dream Theater - Endless Sacrifice | Powered by Last.fm]

Оригинал взят у droids_life в Из прошлого.

Из-за того, что на куче аппаратов (с ходу мой планшет Sony Tablet S на Tegra 2) либо нет мультисэмплинга, либо он тормозит, либо на него не хватает памяти, либо не доступен через стандартный OpenGL ES 2.0 (а.к.а. магия специфичная для производителя) у нас в карте есть различного рода самопальные сглаживания.

Один из свежайше написанных алгоритмов пользует производные в пиксельном шейдере (функция fwidth). Но тут тоже есть зоопарк, хоть и меньший, чем с мультисэмплингом. Например в Lumia 920 ( на Adreno 225 ) производные не работают. OpenGL ES 2.0 есть, а производные не работают - шейдер компилируется, но вычисляется "погода". Решение, внезпно, нарылось коллегой в правильной олдовой книжке GPU Gems: http://http.developer.nvidia.com/GPUGems/gpugems_ch25.html. Чувствую себя лохом, так как эту книжку я неплохо изучил ещё в СофтЛабе, но про эту статью даже не вспомнил :(

Это, кстати, занятная тенденция. Мой научрук говорил в 2008, что большая часть статей по графике - это вариации на тему "мы взяли алгоритм из 80-х, переписали на шейдерах, замутили кешик на текстурах и оно стало интерактивным и применимым для игр!". Сейчас в 2015 же выходит: "мы взяли алгоритм из 2008 для DirectX 9.0c, переписали на OpenGL ES 2.0, обрулили пару багов на корявом Adreno, включили fallback на Mali и у нас всё засвистело и запердело на мобилах!"
linkpost comment

Потусили. [Jun. 28th, 2015|10:39 pm]
masterden
[Tags|]

Был тут у Леона. Хорошо посидели, перетёрли местячковые темы, кто где работает, у кого какой говнокод, происходящее на ФИТе и всё такое : ) Лев у него уже болтает. Результат поседелок - фотография меня лохматого.



linkpost comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]