Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 58 [показано 10]
Урок информатики для мелкософта (пояснение к залепе №8)
Степень соответствия запросу: 29,4%
Фрагменты текста поста : ... Другие языки высокого уровня генерировали слишком медленный и прожорливый машинный код и не позволяли программисту управлять этой самой генерацией... ... Итак, рассмотрим механизм работы выражения c = a + b (естественно, что все три переменные имеют один и тот же тип и для данного типа определена операция сложения)... ... А получится следующее: для объекта a будет вызван метод T operator+(const T&) const , которому в качестве параметра будет "скормлен" объект b... ... этот метод что-то сделает (например прибавит одно к другому) и создаст временный объект типа Т для хранения результата... ... затем метод вернет ссылку на созданный временный объект (назовем его " объектом D ")... ... будет вызван метод объекта с : T& operator=(const T&) , т... ... этот метод и приведет объект с в соответствие с состоянием объекта D , переданного в качестве аргумента... ... Временный объект D будет уничтожен... ... Первоочередную важность тут имеют не вызовы методов и не махинации с объектами, а тот факт, что наше простейшее и казалось бы безобидное выражение c = a + b приводит к автоматическому (скрытому от наших глаз) созданию и уничтожению объекта со всеми вытекающими отсюда накладками... ... Но тут я хочу напомнить, что создание объекта - это не только выделение памяти под сам объект, но и создание и инициализация всех его членов-полей (которые, в свою очередь, тоже могут быть объектами), а также выполнение конструктора этого объекта и всех конструкторов всех его предков... ... Соответственно уничтожение объекта - это вызов деструкторов объекта и всех деструкторов всех его предков плюс уничтожение всех его членов-полей, которые тоже могут быть объектами... ... Ну, а если этот объект представляет собой, например, таблицу из базы данных, который, вдобавок ко всему сказанному, при инициализации будет устанавливать соединение с этой самой БД и загрузку данных из нее, отъедая не только память и процессорное время, но еще и канал связи... ... Берем выражение a += b и препарируем его: для объекта a будет вызван метод T& operator+=(const T&) , которому в качестве параметра будет "скормлен" объект b... ... этот метод что-то сделает с объектом а (изменит его состояние ) и вернет ссылку на объект а... ... Отличие шарпа от С++ (в данном случае) в том, что наши переменные a и b являются на самом деле не "хранителями" объекта, а всего лишь ссылками на него... ... теперь ссылается на тот же объект в памяти, на который ссылается a... ... x становится равным 4 (они же ссылаются на один и тот же объект) после выполнения сгенерированного компилятором оператора operator+=() происходит что-то очень странное - связь переменных a и c внезапно разрывается, ибо теперь они указывают на совершенно разные объекты... ... Разве наше сложение не должно просто изменить объект, на который ссылается переменная a и всё... ... Получается, что оператор сложения создал временный объект с результатом (помните " объект D "... ... Поэтому, если вам захочется самостоятельно перегрузить метод operator+=() или его аналоги для других операций, то просто попейте воды, сделайте несколько глубоких вдохов и расслабьтесь - вам перегрузить эти методы не удастся... Подробнее: http://fit-media.com/post_1198760520.htmlЗалепа №9. Microsoft друзей не признает.
Степень соответствия запросу: 22,2%
Фрагменты текста поста : ... Голуба "Правила программирования в С и С++" (речь идет именно о C++): Цитата: Как-то раз я видел интерфейс, в котором объект "календарь" позволял пользователю интерактивно выбирать дату, щелкая мышью на каком-либо из дней, показанных на изображении календаря... ... "Календарь" затем экспортирует эту дату в другие части программы, помещая ее в объект "дата", который возвращается из сообщения get_date()... ... При выполнении должным образом единственным видимым в других частях программы объектом был бы объект "дата"... ... "Дата" использовала бы объект "календарь" для реализации сообщения "инициализируй_себя" (которое могло бы быть конструктором), но "календарь" бы содержался внутри "даты"... ... Объект "дата" также мог бы поддерживать другие инициализирующие сообщения, такие как "инициализируй_себя_от_редактируемого_ввода" или "инициализируй_себя_из_строки", но во всех случаях объект "дата" отвечает за нужное для инициализации взаимодействие с пользовательским интерфейсом... ... никто, кроме "даты", даже бы не знал о существовании объекта "календарь"... ... Затем вы можете передавать объект "дата" всюду, куда необходимо... ... Конечно, "дата" должна также уметь себя вывести, переслать в файл или из файла, сравнить себя с другими датами и так далее... ... Другими словами, правильное проектирование в ООП - это создание классов, АБСОЛЮТНО НЕЗАВИСИМЫХ от других классов и объектов, инкапсулирующих все необходимые для работы классы внутри себя... ... // создали объект "дата" с текущей датой внутри cd = new CDate("15... ... // инициализировали другим объектом класса CData (присваивание) cd... ... Control или иметь некий другой механизм, чтобы (при необходимости) без проблем встраиваться в пользовательский интерфейс... ... Для него предоставлен интерфейс взаимодействия в виде открытых свойств и методов, им пусть и пользуется... ... Отсюда вытекают пункты: 3а) класс календаря не должен быть виден пользователю... ... Из третьего пункта следует, что объекты класса CCalendar будут создаваться не пользователем, а только классом CDate , им же они будут контролироваться в течении всей жизни календаря и, в конце-концов, он же их будет и уничтожать... ... Судя по первым двум пунктам, наши объекты CDate и CCalendar будут активно вызывать методы друг друга... ... :( В C++ мы бы просто сделали класс CCalendar другом класса CDate , разрешив тем самым календарю использовать внутренние механизмы в виде вызовов защищенных методов CDate... ... А именно, если распространять свой класс CDate в виде исходников, то он потянет за собой и класс CCalendar , а мы бы не хотели, чтобы пользователь знал о нем... Подробнее: http://fit-media.com/post_1199568462.htmlОптимизируем мышиную возню
Степень соответствия запросу: 19,89%
Фрагменты текста поста : ... Самое смешное, что ни один из них не может аргументированно доказать правоту своих взглядов... ... и сравню их с Adobe Photoshop : чтобы создать копию объекта, схватите его левой кнопкой мыши, оттащите и, не отпуская левую кнопку, щелкните правой... ... При этом исходно-захваченный объект вернется на свое место, а у вас "в руках" окажется его копия, которую вы можете тащить дальше... ... левый клик приводит к выделению объекта... ... При этому вокруг объекта появляются контрольные квадратики, тягая которые можно передвигать и масштабировать объект... ... Повторный левый клик по уже выделенному объекту меняет контрольные квадраты на контрольные стрелки, с помощью которых можно поворачивать и наклонять объект... ... Правда одновременно с масштабированием можно еще и поворачивать объект... ... Но зато для переключения в другие режимы (например для наклона объекта) приходится делать правый клик по объекту и выбирать нужный режим из выпадающего меню... ... Не забывайте, что даже с таким "скромным" набором элементов управления можно выстраивать очень хитрые комбинации типа: схватить объект левой кнопкой мыши, тащить объект с нажатой Ctrl + клики правой кнопкой... ... Для вышеописанного выше "китайского кода" может быть такое, например, объяснение: левой кнопкой хватаем и тащим объекты по экрану... ... клик правой кнопкой вызывает создание копии объекта в текущей позиции... ... Часто даже матерые пользователи забывают (а многие об этом и не догадываются), что объекты можно таскать не только левой кнопкой , но и правой и даже средней... ... Везде где можно используйте возможности технологии "Drag-and-Drop" Пользователю гораздо удобнее схватить объект и перетащить его в корзину или в другое окно, чем отметить объект и потом лазить по пунктам меню (или по многочисленным тулбарам) в поисках команды удаления/переноса... Подробнее: http://fit-media.com/post_1199978157.htmlТормозить тоже нужно уметь.
Степень соответствия запросу: 7,86%
Фрагменты текста поста : ... Выглядит это красиво и делается просто, но есть одна проблема - Adobe Premier Pro 2... ... 0 не умеет качественно замедлять видео... ... Честно-говоря, качественно разгонять видео он тоже не умеет, просто при разгоне искажения не так сильно бросаются в глаза... ... Собственно, именно эта проблема (качественное изменение скорости видео) и подвигла меня на поиски... ... Изрядно порывшись в форумах видео-монтажников, заметил одну вещь: подавляющее большинство склоняется к мысли, что лучшим изменяющим скорость плагином (plug-in - модуль расширения для программ) для Adobe Premiere PRO (далее - APP) является поделка по имени Twixtor Pro , хотя и он не безгрешен - работает очень медленно и в финальном видео часто присутствуют артефакты... ... Сразу скажу, что люди в форумах не врали :( Короче, вкинул я на тайм-лайн Премьера кусочек видео, применил к нему фильтр Twixtor , установил в его настройках в параметре Output Control/Speed % значение 20% (а чего уж... ... И лучше всего на кластер из 8-ми двуядерных серверных машин, ибо такие тормоза я видел только однажды, при рендере сцены в 3DMax, когда напихал туда пару десятков прозрачных блестящих объектов и включил полную трассировку лучей... ... Обработанное видео действительно выглядит так, словно его снимали на спец-аппаратуре с частотой кадров не меньше сотни FPS... ... в 30% случаев искажения настолько сильны, что не заметить их просто невозможно :( Значит надо как-то с ними бороться... ... Артефакты возникали из-за неверной интерпретации Twixtor 'ом черезстрочного видео... ... Поэтому, если вы работаете с черезстрочным видео-материалом (например, видео с камер в формате DV), то вам необходимо выставить значение параметра Source Control / Input: Fields в "... ... , то скорость расчета станет максимальной, но, правда, будет использован упрощенный алгоритм генерации промежуточных кадров - он дает сильное замыливание при замедлении видео более чем в два раза... ... Удачи вам в торможении видео... ... :) %%%Adobe Premiere, редактор видео, нелинейный монтаж, плагин Twixtor, замедление видео, изменение скорости%%%... Подробнее: http://fit-media.com/post_1213776731.html14 принципов создания вежливых программ
Степень соответствия запросу: 5,9%
Фрагменты текста поста : ... Результаты их работы, опубликованные в книге "The Media Equation", показывают, что человек реагирует на компьютер так же как на других людей... ... Другими словами, человек обладает определенными инстинктами, которые говорят ему, как вести себя в обществе других чувствительных созданий, поэтому как только некий объект проявляет определенные познавательные способности, эти инстинкты начинают действовать и мы начинаем реагировать на этот объект так же, как на других людей... ... Человек обладает множеством других качеств делающих его хорошо подходящим для роли служащего – роли, которую выполняют большинство программ... ... Вот мой список того, что улучшает качество взаимодействия как с другими людьми, так и с программами... ... Вежливая программа относится ко мне иначе, чем к другим... ... Если я попрошу свой текстовый процессор распечатать документ, он никогда не сообщит мне, что бумаги осталось мало, или что в очереди уже находятся 40 других документов... ... Когда я веду оживленную беседу с соседями за столом, я ожидаю что официант в это время будет выполнять другие дела... ... Другие пользователи работают с программами в маленьком окне, чтобы видеть Рабочий Стол... ... Adobe Photoshop например осыпает пользователя множеством ненужных маленьких вопросов, каждый в отдельном окне... ... Ни одна из этих характеристик не отличается от других, более очевидных целей информационного бизнеса... Подробнее: http://fit-media.com/post_1203349390.htmlКручу, верчу, обмануть хочу!
Степень соответствия запросу: 4,86%
Фрагменты текста поста : ... Поворот объекта в фотошопе"... ... Основная идея была как раз напрямую связана с медиа-продукцией (отсюда и название) и использованием таких программ как Adobe PhotoShop , Adobe Premiere и им подобных... ... И еще один момент - я использую только НЕРУСИФИЦИРОВАННЫЕ программы... ... :) Итак, давайте научимся поворачивать объекты в Photoshop... ... Ну или другим способом (например, через пункты меню Select)... ... Тут есть один момент - с помощью этого вида трансформации вы можете не только изменить размеры картинки, но и отразить ее горизонтально или вертикально... ... Немного путанно объяснил, но просто попробуйте один раз и сразу все поймете... ... Если при повороте держать нажатой клавишу Shift , то объект будет поворачиваться на угол, кратный 15 градусам... ... Таким способом можно легко и точно повернуть объект на 15, 30, 45, 60, 75 и более градусов... ... Как видно из названия, эта трансформация позволяет наклонять объекты... ... Но я не могу упустить в этой статье еще один вид трансформации - свободную трансформацию (Free Transform)... ... Это значит, что нажав левую кнопку мыши и потянув в сторону вы повернете объект... ... :) %%%Adobe Photoshop, поворот картинки, трансформация изображения, transform, графический редактор%%%... Подробнее: http://fit-media.com/post_1212106379.htmlМаксимум производительности
Степень соответствия запросу: 3,21%
Фрагменты текста поста : ... Один из методов решения этой проблемы - предварительная загрузка данных... ... выбор объекта, который нужно сфотографировать... ... Другое кольцо устанавливает выдержку &ndash... ... Затем одним кольцом они устанавливают диафрагму, другим &ndash... ... Этот сложный механический интерфейс можно заменить одним кольцом &ndash... ... Можно ли выполнить это задание за один шаг, а не за два... ... Исследуйте другие способы получения информации... ... Третий подход - получение информации другими способами - требует значительных усилий... ... Большинство операций такого рода можно заменить машинами, полностью удалив оператора из процесса... ... Теперь люди были заняты рассматриванием себя и других в множестве отражений... ... Когда оставшееся время предугадать невозможно, покажите анимированный объект, который даст пользователям понять, что система не зависла... ... Индикатор, который трудно заметить, может и не существовать... Подробнее: http://fit-media.com/post_1207048697.htmlWindows с маленькой буквы w
Степень соответствия запросу: 2,57%
Фрагменты текста поста : ... Выбор типа окон – начальный шаг в создании внешнего вида программы... ... Лишние комнаты Если изобразить программу в виде дома, то можно представить каждое окно в виде отдельной комнаты... ... В реальной жизни мы не можем добавить комнаты к дому, если только она не будет служить специальной цели, которой нельзя получить в других комнатах... ... Не имеет значения, в какой комнате мы сейчас, так как мы оба понимаем суть рукопожатия, и переходить для этого в другое место – просто глупо... ... Например, в большинстве программ для рисования, для установки глубины тени объекта часто используется текстовое поле или ползунок в отдельном диалоговом окне... ... Если бы художник рисовал один и тот же рисунок карандашом на бумаге, он мог бы использовать другой инструмент – ластик – и для этого ему не нужно было бы переходить к другому столу... ... Эти инструменты должны быть встроены в рабочую область программы, точно так как художник разложил бы все свои карандаши, ручки, ножи, резинки и другие инструменты под рукой, на своем столе... ... Если же пользователь решил вставить в свой рисунок другую готовую картинку, эта задача все еще достаточно связана с целью художника – создать красивый рисунок, но для этого нужны другие функции, не относящиеся к рисованию... ... В этом месте у него появляются другие цели... ... Вместо того, чтобы просто помещать каждую новую функцию в новое окно, мы видим, что некоторые функции вообще не нужно помещать в диалоговые окна, другие должны быть вынесены в отдельное окно, интегрированное в общий интерфейс, а некоторые функции вообще нужно убрать из программы... ... В Visual Basic, Delphi, C# и других языках легко создавать формы, которые представляют собой независимые окна верхнего уровня... ... Стратегия создания приложения в виде набора форм была довольно спорной, и не применялась широко до тех пор, пока среды разработки не дали возможность создавать окна легко и просто... ... Один программист на Visual Basic однажды с гордостью заявил мне, что его программу было особенно тяжело разрабатывать, потому что в ней содержится 57 форм... Подробнее: http://fit-media.com/post_1204300625.html300-летие битвы при Лесной
Степень соответствия запросу: 2,11%
Фрагменты текста поста : ... Среди участников и зрителей упорно ходил слух, что на этом празднике должен появиться и наш президент, однако видимо у него нашлись другие (более важные) дела, поскольку он так и не появился... ... Секьюрити, как в штатском, так и в форме (и тех и других, кстати сказать, на этом празднике было очень-очень много), стали отодвигать толпу от сцены, но никто из них не знал, какую именно дорожку нужно освободить для Крестного Хода, поэтому усердствовали во всех направлениях сразу... ... Еще один ляп вышел, когда какой-то особо шустрый товарищ (скорее всего один из членов орг-комитета) решил, что для улучшения обзора (а заодно и отделения от простых смертных) все высочайшее начальство нужно передвинуть поближе к сцене... ... Отсюда гораздо лучше видно... ... Но их почему-то поставили на правом фланге сцены и народу были видны только первые ряды пришедших... ... Когда я их фотографировал, рядом проходили какие-то мужики и один другому, показывая на пушку, в шутку задал риторический вопрос: "... ... когда на груди у графа из свиты Петра золотой крест сделан из картона и фольги и один из его лучей помят, торчит в сторону и обмотан скотчем (видимо оторвали в толпе)... ... А как здорово выглядели крестьяне, истово кланявшиеся и падавшие на колени при виде Петра I... ... с таким же желанием и ответственностью отнеслись к поставленной перед ними задаче, то праздник получился бы другим... ... Совсем другим... Подробнее: http://fit-media.com/post_1223377088.htmlПользовательский интерфейс
Степень соответствия запросу: 2,01%
Фрагменты текста поста : ... Пока в уголовном кодексе не предусмотрено наказание типа "заключения в пользовательский интерфейс", он имеет право выбора (не между одной программой и другой, а между компьютером и телевизором или даже книгой)... ... Не случайно ни в одной из известных мне локализаций надпись на этой кнопке не переводится на другой язык... ... Если среда по виду и некоторым опорным элементам будет напоминать пользователю что-то уже знакомое, он сможет быстрее приспособиться к ней... ... А вот другие игры, скажем Тетрис и столь же популярные Color Lines (шарики), имеют очень простую и условную среду, обеспечивающую психологический комфорт пользователя... ... Это может получиться случайно, когда пользователь по привычке попробует прием, освоенный в общении с другой программой, и с радостным удивлением обнаружит, что ваша программа правильно разобралась в том, чего он хотел... ... На самом деле, с этой позиции хорошо видна основная проблема оконного интерфейса... ... С другой стороны, система должна уметь привлечь внимание пользователя к месту наиболее актуальных изменений... ... На самом деле, и тот, и другой способ используют тот очевидный факт, что движущийся предмет легче привлекает внимание... ... Сегодня же не видно никакой причины не привлекать внимание пользователя движением в нужной точке экрана... ... Сами файлы из каталога отображаются в виде 3-мерной карусели под своим каталогом... ... Для Карда анимация - принципиальный момент, так как " анимация сохраняет в восприятии пользователя идентичность объекта ", то есть пользователь легко соотносит объекты в конечной точке движения с объектами в начальной... ... Однако психологи, занимающиеся интерфейсом, говорят о совсем другом времени, - времени, когда пользователь может начать взаимодействие с новой картинкой на экране... ... Анимация за счет увеличения времени перехода от одной картинки к другой (а именно времени анимированного преобразования картинок) существенно сокращает время осознания новой картинки... ... С другой стороны, и такой простой сигнал, как мигание, имеет действительно миллионы хорошо осознаваемых оттенков, связанных с изменением яркости объекта во времени... ... Все компьютерные программы в корне меняют дизайн при переходе от одного окна к другому... ... Зато плохой интерфейс у всех на виду и на устах... ... Здесь уже требуется талант Дарвина, чтобы понять происхождение такого вида естественности... Подробнее: http://fit-media.com/post_1204019048.html
