Category: технологии

Category was added automatically. Read all entries about "технологии".

nyaload

Мой серый - это зелёный

Если нарисовать пикселями шахматную доску, то она у меня окрашивается в зеленый цвет прямоугольными пятнами, положение пятен зависит от взаимного расположения элементов на далеком расстоянии на экране на той же scanline. Если залить черно-белой решёткой весь экран - то он окрашивается в четко зелёный цвет примерно соответствующий rgb=#53b053
Кто-нибудь в курсе, как называется этот баг и можно ли его поправить в мониторе (ASUS PB287Q)? Фото под катом. update: похоже что это "технология улучшения картинки" называемая в меню монитора "sharpness", но отключить её для стандартного sRGB режима невозможно.

Наткнулся на него в ходе выяснения "какое же значение гаммы используется на моем мониторе при гамма-коррекции".

* однопиксельный checker board для проверки гамма-коррекции на мониторе использовать нельзя. Чередующиеся через один пикселы не дают такого же освещения, как крупные блоки, как из-за физическо-железных проблем (пикселы не успевает поменять освещение при быстром чередовании), так и из-за железно-софтварных - баги в пост-процесс софте внутри монитора, dithering, у меня наверное что-то из этого.

* Браузеры при просмотре изменяют размер картинок, из-за чего граница между черными и белыми пикселями размывается в непредсказуемый серый. Тесты нельзя смотреть в браузере.

update: Я при измерении гаммы наткнулся на то, что браузер при ресайзе картинок размывает пиксели в непредсказуемый серый цвет без четкой границы между двумя цветами. Из-за этого у меня и получалисть неадекватные значения.

Collapse )
nyaload

Пластик течёт и меняется

При печати в "хорошем качестве" (с толщиной слоя в 0.1mm) постоянно возникают проблемы. Решил для отладки напечатать разнообразные маленькие кубики 1x1x3см с разной температурой печати. Фото: http://dobrokot.ru/pics/i2015-12-30__08-05-17_531kb.jpg

5 кубиков на переднем плане с подписью 240° - отличаются тем, что более качественные кубики напечатаны по 4 штуки за один раз. И поэтому предыдущие слои успели остыть, за счет чего качество и улучшилось. Вывод: калибровочные кубики полезны очень ограничено, так как отличаются от реальных более крупных моделей размером.

Это синтетическая демонстрация того, что качество печати модели зависит не только от настроек принтера, и даже не только от локальной формы модели, но и от наличия далёких частей (из-за которых слои по-другому остывают). Есть параметр Minimal Layer Duration, определяющий минимальное время для перехода на следующий слой, но дефолтного значения в 5сек явно не хватает для стабильного остывания предыдущего слоя.



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


Я попробовал печатать при запрещенных всеми гайдами 275 градусах. Кубик 1x1x3 см, вышел пусть и со слегка смазаными углами, но не обуглившийся и не в виде лужи (см. группое фото в начале поста). Правда пугают, "это потому что он постоянно вытекает, если бы остановился - то тут же бы превратился в уголь и закупорил бы головку навсегда". Что будет если остановить печать с разогретой головкой - решил не проверять, запасных головок у меня нет. Но это пугает, так как получается что температура выходящего пластика и качество модели зависит и от того, насколько велика пауза перед выходом этого пластика (например, после печати поддержки другим экструдером).

Кубик 4x4x4 на запрещённых 260° - получился вообще идеальным.

Смазанность на разных углах разная, т.е. получается что качество модели в разных её местах зависит не только от настроек печати, высоты, но и от того, северную или южную часть мы печатаем (возможно, от неоднородности потоков воздуха)

Выяснилась так же грустная вещь, что столь полезный вентиляр для охлаждения пластика - отсутствует в моём MakerBot Replicator 2x (можно добавить самостоятельно, но я не буду рисковать пока у меня нет лишних 3d принтеров)
nyaload

багрепорты от квалифицированных пользователей

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

А обученые биороботы не cмогут выделить в таком потоке жалоб подробное изложение бага с приложенным traceroute и способом воспроизведения бага. Или важное сообщение от добрых хакеров об обнаруженной уязвимости, особенно если оно слишком лаконичное и выглядит абракадаброй для биоробота, "you p0wned, XSS in user_sign cgi param"

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

Примеры капчи - "чему равно (10%3 ? (71&21) : (126^13))" или "переведите 1defa из 16-ричной в десятичную систему счисления" или "команда unix для печати содержимого директории" и тд. Можно дать несколько вопросов, и засчитывать ответ на любой из них.

Вопрос про систему счисления мне нравится больше всего, кстати.
nyaload

эргономика

У стилуса N900 есть два конца. Один для того что бы писать/рисовать мелко на экране или нажимать мелкие кнопки, второй конец - по форме корпуса, что бы корпус был плавным и без дырок когда стилус убран в корпус.

Так вот, вторым концом стилуса - писать и рисовать удобней, чем тем который специально для работы с тач-скрином. Это же сколько усилий нужно было приложить дизайнеру, что кончик для рисования рисовал хуже, чем случайный кончик!

Предупреждая насмешки "зачем стилус вообще" - пальцами кнопки жмутся не хуже чем на двух других моих андроидах, и не сильно хуже чем на айфоне.

nyaload

WTF-8

Вообще я считаю что UTF-8 - это гениальное изобретение для обеспечения совместимости старых и новых программ, которое позволяет плавно переходить на юникод. Как клёво и тонко продумана сборка букв в байты, что бы работали старые программы!

Хотите что бы правильная™ технология заменила кривую, которую вы ненавидите, но которой пользуется весь мир - изобретайте такие же гениальные схемы перехода.

Обнаружил ситуацию, где незадумчивый UTF-8 ломает старый однобайтовый код: регулярные выражения вроде [а-яА-ЯёЁ] превращаются в чёрти что, через раз работающее.

Видел ещё одно место, где UTF-8 порождает баги: показать пользователю первые N символов. При этом один из русских символов разрезается ровно пополам.
В браузере выглядит так:

Это начало некого длинного текс[?]

где вместо [?] - квадратик или вопросик или т.п.

Ещё грабли, поинтересней. В cp1251 есть один неопределённый код символа, 0x98. Это соответствует второму байту буквы 'И' в UTF-8 ('\xd0\x98'). Иногда при интерпретации UTF-8 через промежуточный cp1251 происходит мистика - 'И' исчезает, заменяется на '?' и тп.

Кто ещё с чем таким сталкивался, на границе UTF-8 и однобайтовых программ?
nyaload

(no subject)


Представители японской фирмы «Симицу» также предлагают решать проблему производительности труда и снижение уровня стрессовых ситуаций с помощью запахов. Что делать, если уставшая машинистка или программист стали делать больше ошибок? Ответ прост: надо дать им подышать запахом лимона - и усталость пройдет. Специалисты фирмы разработали уже 20 вариантов запахов цветов и растений, так или иначе действующих на состояние рабочих и служащих. Особое значение использование подобной парфюмерии имеет для программистов. Проведенные фирмой исследования показали, что число ошибок программиста снижается на 20 процентов, когда он вдыхает запах лаванды, на 33 процента - от запаха жасмина, на 54 процента - от запаха лимона. Кроме того установлено, что запахи лаванды и розмарина действуют успокаивающе и устраняют стрессовое состояние, а запахи лимона и эвкалипта, напротив, возбуждают и повышают производительность.

(источник)
Забавно, что такие точные цифры! :) Ну и это подверждает моё мнение что человек важнее используемой технологии. Впрочем, если используемая технология делает его счастливей и работу более интересной - вот тогда это уже важно :)
nyaload

Денормализованые числа

Оказывается, на PC можно случайно получить сверх-маленькие (денормализованные) числа, после чего программа с расчётами может начать очень сильно тормозить. (Получить можно разными способами, например взять две матрицы поворота на 355.99998 градусов, и перемножить, где "почти нулевые" элементы могут получится денормализоваными.
Страшно, что это невозможно отключить (_control87(_DN_FLUSH, _MCW_DN) похоже ничего не делает, флажка у сопроцессора нет), может появиться в коде который ничего особенно не делает, просто камера и монстр так встали, что появилось сверх-малое число. А потом оно уползёт в AI и физику, и всё будет плохо.
Попробуйте запустить код ниже, увидете что скорость работы зависит от того, что перемножается.

Collapse )
Collapse )

updated: обнаружил в физике шариков нашего маджонга кучу таких underflow после pos + dt*velocity; и чо с этим делать - пока не очень понятно. Возможно, в вашей физике тоже полно такого, а вы об этом не знаете ;)
updated: Проверка показала, что с SSE - таже фигня.
updated: Если компилятору удаётся всё-всё засунуть в регистры, то возможно что промежуточных денормализованых чисел не будет, так как внутри регистры 80-битные. Таким образом, производительность может фантастически меняться при очень небольших правках кода. В SSE - 32 битные регистры. Поэтому на денормализованых числах FPU может работать в 100 раз быстрей, пока они в регистрах, а не в памяти. А от добавления /arch:SSE - оно начинает работать резко медленней.

Вот такой вот подарок от Intel. Как с ним бороться - непонятно. Учитывая что денормализованые числа не нужны, но отключить их нельзя.

updated:
Бинго!
/arch:SSE + _mm_setcsr(_mm_getcsr() | _MM_FLUSH_ZERO_MASK);
Источник информации:
http://softpixel.com/~cwright/programming/simd/sse.php
Intel автоматически включает этот флажок, MSVC нет.
Вроде если установить флажок DAZ (0x40), то оно подействует на FPU. У меня не получилось.