thedeemon: (vonny tropics)
Купил на днях новый ноут, а на нем оказалась предустановлена Windows 8. [livejournal.com profile] maxim говорит, что ее интерфейс вдохновлен фильмом 44-летней давности, но на самом деле для его создания подразделение Майкрософт Уганда наняло дипломированных жрецов вуду, и они оживили Казимира Малевича. В результате работы зомби-малевича получился Самый Худший UI За Всю Историю Компьютеров. Гипотеза Максима была так правдоподобна, потому что интерфейс восьмерки действительно полностью игнорирует все достижения и наработки по юзабилити и интерфейсам за последние 44 года. Судите сами:
* отображение на экране нескольких приложений в окнах - практически игнорируется, новый UI предпочитает полноэкранные программы.
* рамки у окон, позволяющие видеть границы между ними - фиг, тут рисуют полоски, сливающиеся с контентом окон
* визуально выпуклые элементы управления - фиг, все в стиле зомби-супрематизма.
* группировка элементов стартового меню в иерархию с помощью папок - фиг, все значки в одной куче, занимающей сто экранов и крайне неудобной в навигации. Вендору ноута даже пришлось поставить свою программу, имитирующую старт-меню из нормальных систем.
* навигация в UI c возможностью возврата в предыдущее окно/локацию - фиг, в UI куча мест, откуда нет возврата, только переход "в начало".
* discoverability интерфейса, когда о возможностях и управлении можно узнать, не читая мануалов - фигъ.
* консистентность в управлении - фиг, способ скроллинга как в старт меню не работает в аналогичных экранах метро-приложений вроде скайпа.

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


И самое неприятное, что если в других версиях винды можно было выбирать стиль интерфейса, то тут эту возможность тоже выпилили.

msvc

Sep. 14th, 2012 04:02 pm
thedeemon: (Default)
Пытаюсь тут собрать в vs2010 в 64 бита код, который успешно собирался в vs2005. Не собирается, не находит некоторые SSE интринсики - те, что используют тип __m64 (пришедший из MMX'a еще). Заглядываю в MSDN, а там просто так пишут: "The __m64 data type is not supported on x64 processors". Как же оно у меня тогда работало столько лет? А просто там проект интеловским компилятором компилился, он прекрасно эти типы и интринсики понимает, и отлично они себе работают на x64. Просто в MSVC кто-то решил их не поддерживать, а чтобы не задавали лишних вопросов написали, что это процессоры виноваты. Молодцы, чо.
thedeemon: (Default)
Что общего у этих двух картинок?





Для того, чтобы понять их смысл и оценить юмор, нужно иметь определенные знания. Не знающий английского языка (совсем) не поймет обоих картинок. Не знающий про рациональные и комплексные числа не поймет первой картинки. Не знакомый с определенными правилами IP-адресации не поймет второй. Такой необразованный человек сможет лишь прокоментировать художественную ценность рисунков, и, вероятно, обругает ее.
И тут я многих расстрою, сообщив, что со многими книгами Пелевина ситуация та же самая, причем большая часть читателей как раз находится "за бортом" и подобна тому, кто оценивает приведенные картинки только по художественной шкале.

Кто не отличает прасангику от сватантрики, а дзогчен от чагчена, тот не поймет Чапаева и Пустоту. Кто не слышал про анатман и бардо, не поймет Жизни Насекомых. Кто не делал нендро, как минимум не оценит некоторых пассажей из Поколения П. Не отличающие бодхичитту от бодхисаттвы, не слыхавшие про джалу, не оценят Священную Книгу Оборотня. Не читавшие про манас и алая-виджняну, не слыхавшие про тулку, не поймут Шлем Ужаса. Не отличающие кьедрим и дзогрим, не видевшие йидамов, не поймут Зала Поющих Кариатид. Не знакомые с тантрой не поймут графа Т. Не изучавшие аннутарайогу не оценят Ананасную Воду.

Про Пелевина часто говорят, что он пишет одну и ту же книгу. И действительно, большинство его работ последних 15 лет посвящены одной теме: работе ума и его взаимоотношениям с реальностью. Этой же теме посвящен весь буддизм, откуда и взяты все перечисленные выше страшные слова. Причем если раньше ссылки на буддизм в книгах были сравнительно тонкие (но совершенно определенные), то со временем все больше и больше стало писаться прямым текстом. Однако в школе его не проходят, а самообразовываться в этой теме мало кто желает, вот и полнится интернет "критиками" кривизны букв и непроработанности лиц на картинках. :)
thedeemon: (Default)
Есть у них такая штука - Flex: пишешь на ActionScript3 (что-то среднее между JavaScript и C#) и MXML (аналог XAML) прыложение, а оно выполняется либо в браузере посредством Flash player'a, либо отдельно посредством AIR runtime. А еще у них есть штука под названием Pixel Bender - очередной язык для pixel shader'ов (ибо GLSL, HLSL, Cg и т.п. конечно недостаточно, нужен свой), работающий в фотошопе, After Effects, ну а теперь еще и во флэше. И вот в четвертый Flex добавили эффекты на базе этих шейдеров, чтобы переходы между разными картинками или состояниями интерфейса анимировать. Например, Wipe - где одна картинка замещается другой постепенно: когда прошло X% времени эффекта, X% площади картинки занимает новая, а остальную площадь - еще старая. Попробовал я такой эффект применить на картинке 600х400 и обнаружил, что он загрузил на 65-70% мой двухгигагерцевый двухъядерник (Core 2 Duo). Изменение частоты кадров проекта и приложения никак не повлияло: при любом заданном фреймрейте эффект оставался плавным и продолжал грузить процессор. Стал разбираться, почитал исходники (благо Flex опенсорсный) и блоги разработчиков и выяснил вот что:
1. Частота кадров эффектов жестко зашита в дебрях фреймворка и равна 100 кадрам/с.
2. Во флэше поддержка шейдеров pixel bender'a исключительно программная - никакого GPU. Ибо честная их поддержка на видеокартах сильно увеличит размер самого flash player'a, на что они пойти не готовы.
3. Зато есть JIT и распараллеливание по ядрам CPU. Сколько ядер ни дай - все загрузит ненужной работой.
4. Шейдер для Wipe выглядит так:
    void
    evaluatePixel()
    {
        float2 coord = outCoord();
        // Use src0 in a branch we won't reach just to defeat the 
        // optimizer from removing the input parameter
        if ((width * progress) < coord.x) 
            dst = sampleNearest(from, coord);
        else if (progress < 100.0)
            dst = sampleNearest(to, coord);
        else
            dst = sampleNearest(src0, coord);
        // workaround for Flash filter bug that replicates last column/row
        if (coord.x >= width || coord.y >= height)
            dst.a = 0.0;
    }

Другими словами, вместо того, чтобы на каждом кадре просто скопировать небольшую изменившуюся полоску картинки (x% площади, где x - доля прошедшего за один кадр времени), тут для каждой точки изображения выполняется 2-3 сравнения вещественных чисел, плюс копирование данных. Как вам такое решение?
А, и да, при каждом создании такого эффекта плеер съедает пару мегов памяти и не освобождает, пока не утечет 50 мегов.

Судя по тому, что в исходниках Flex'a упоминается одно и то же имя, и тот же человек вел видеорассказы про flex на офф.сайте, он сам это все и понаписал. До этого он работал в Sun над клиентом java (ага), а теперь в гугле работает над SDK андроида. Бойтесь.
thedeemon: (Default)
Поставил тут на винду Quicktime с его родным плеером. Открываю в нем HD файл (1920x1080), при этом разрешение экрана у меня меньше (1280х1024). Что обычно делают плееры в такой ситуации? Уменьшают окошко до размеров экрана. Что делает Quicktime Player? Показывает все 100%, делая окно сильно больше экрана. При этом, повторяя суперудобство маковского интерфейса, ресайзить его окно можно только за нижний правый угол, который далеко за пределами экрана. Можно попытаться перетащить окно выше, чтобы достать до нижнего угла, но фиг - оно всегда само возвращается вниз, чтобы заголовок был виден. Все-таки интерфейсы в Apple делают редкостные молодцы.

Profile

thedeemon: (Default)
Dmitry Popov

May 2017

S M T W T F S
 1234 56
789 10 11 1213
14151617181920
21222324252627
28293031   

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 02:52 pm
Powered by Dreamwidth Studios