Monthly Archives: June 2013

You are browsing the site archives by month.

Саммит лидеров 2009

Более 200 человек собрались на McEnery Конвенции Сан-Хосе Центра 18 июля и 19 для первого Лидерский Саммит сообщества (CLS). Мероприятие в первую очередь неконференция, с программами оба дня ‘собран на лету сами участники. Большинство из тех, участники идентифицировали себя в качестве участников или бесплатное программное обеспечение с открытым кодом, но значительное меньшинство пришли из других сфер – закрытая компания источником заинтересованных в решении их клиентов общин, веб-сервисов и онлайн-сообществ аффилированным с программного обеспечения в целом. Независимо от пола, конечно, многие вопросы все те же – с преодоления напряженности в интернет-сообществах, чтобы Борется с техническим проблем коммуникации перегрузке, чтобы избежать выгорания.

1

CLS была организована в значительной степени за счет Jono Bacon компании Canonical, который объяснил в субботу утром пленарном заседании, что он хотел, чтобы события, которые касаются сообщества вопросов управления над “продукт” уровня – даст участие люди из всех дистрибутивов, окружение рабочего стола, языков и пользователей или групп развития. Неконференция формате способствовало, что “открыта для всех” принцип, только открытие и закрытие слотов каждого дня были заранее спланированной, участники заполнили остальную часть графика сессий, объявив, что они сами были заинтересованы в облегчении, а затем выбрав Время открытия слот и конференц-зал на большой доске программы в коридоре. Сессии были круглые столы, презентации не. В ряде случаев, человек, который предложил сессии объявил в начале, что он или она не было ответов и в первую очередь интересно услышать мысли других в комнате.

Общие вопросы

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

Роль женщин в интернет-сообществах был центральным в несколько сессий, в том числе различные стили общения выставлены на мужчин и женщин и как адаптироваться к как в обществе, и как реагировать на конфликты и дискриминации по признаку пола (как явных, так и предполагаемых). Открытым исходным кодом занималось включение женщин все чаще и чаще в последние годы, как в привлечении большего числа участников и в корректировке мужских культуры “Инженер” и которые многие считают барьером для входа в открытых исходных кодов. Обсуждается в настоящее время, естественно, но одно ключевое преимущество в решении темы на CLS была возможность ознакомиться с опытом других интернет-сообществ, в том числе те, которые не большинство-мужчины.

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

Усовершенствованная проблемы

Danese Купер из открытого исходного кода (OSI) привел интересную дискуссию на сложные задачи по обновлению существующего сообщества. Она обратила из недавнего опыта OSI, как это пытается представить дело и связанные с сообществом, но указал на ряд других примеров, а также, в том числе, когда сообщество вырастает естественно прилегают к поставщику продукта, а затем должна меняться при смене продукта руками или сам пересмотрена, как это произошло с Java. В некоторых случаях, пересмотр сообщества это не выбор – такие, как изменение, которое, естественно, происходит, когда продукт изменения или переопределения после разветвления большого проекта – но она также может быть сознательное решение, принятое в целях предотвращения устаревания или выгорания.

OSI узнала некоторые ценные уроки через свои ранние попытки и неудачных попыток, говорит Купер, в том числе тот факт, что это не достаточно просто собрать заинтересованные стороны вместе и ожидать сообщество объединиться в силу общих ценностей и интересов. Попытка ИОО для загрузки сообщества “, начиная с членством” не удалось, она сказала, из-за распрей и аргументы. Организация имела больше успеха растущего сообщества естественно, начиная реальных проектов, затем позволяя заинтересованным участникам принять участие в добровольном усилий.

Участники дискуссии с соответствующим опытом пересмотра сообщества, такие как Java, Живой журнал, и Open Web Foundation (ОРТ). Успех OSI с проектами в качестве движущей силы было показателем того, что проекты являются «валютой» общины OSI, в соответствии с обсуждения, но, что различные группы могли бы найти другую валюту, чтобы быть решением их собственные проблемы. Большинство согласились, что основная проблема не была одной из привлечения народа, но и переосмысление видения для сообщества, которая будет привлекать нужных людей. Специально для общин, которые включают в себя как компании, так и вне добровольцев, согласовав это видение может быть сложным процессом.

2

Этот момент привел в дискуссию по вопросу о порождения сообщества, когда участники расходятся в видении или основные ценности. Хотя, на первый взгляд, порождение существующего сообщества звучало как отрицательный, группа решила, что где было достаточно много примеров позитивного вилки сообщество заключить, что иногда бывает очень хорошая идея. Одним из примеров является распределение Ubuntu Linux. Debian является (и всегда была) стремится к созданию полностью свободной Linux распределения. Среди прочего, Марк Шаттлворт считает, что проект Debian был ограничивая себя (занимает слишком много времени между релизами, и т.д.), а не пытаться изменить то, как проект работает, он создал Ubuntu как производное с различными целями и другое сообщение. Результатом стало успехом для обоих распределений, а пытаясь заставить проекта Debian переменам, скорее всего закончились неудачей.

Open Source общин в развивающихся странах

Пожалуй, самая сложная сессия была Nnenna Nwakanma взгляд автора на развитие с открытым исходным кодом в развивающемся мире. Nwakanma является членом свободного ПО и открытых фонда источника для Африки (FOSSFA), что способствует с открытым исходным кодом на всем африканском континенте. Оба Nwakanma и Бруно Соуза из Бразилии рассказал о препятствиях перед открытым кодом в развивающихся странах и, в частности, каким образом традиционные подходы, которые оказались успешными в Северной Америке и Европе разрушаться под радикально различных обстоятельствах и в других странах.

Некоторые различия хорошо известны, например, тот факт, что правительства являются на сегодняшний день крупнейшим поставщиком ИТ-транжиры в развивающихся странах. Другие различия принял участников врасплох, такие, как проблемы в разработке устойчивого открытым кодом. Многие из стратегий, широко распространенную на Западе не работают, а также – или вообще – в Африке, Nwakanma сказал. Например, большинство проектов с открытым кодом и сообществ используют Интернет в качестве значения по умолчанию (если не единственная) средства общения, организации и работают. В отличие от подавляющего большинства людей в Африке не имеют доступа в Интернет на всех, а тем более в вечернее время дома, поэтому локальных групп пользователей, которые встречаются в человека являются самыми яркими способ распространения и просвещения об открытых источников. Африканские Сторонники свободного ПО также имеют значительные проблемы с поддержанием активных разработчиков после их ухода колледж, так как очень многие люди просто трудно найти высокооплачиваемую работу. FOSSFA имеет дополнительные трудности, которые возникают таргетинге на весь африканский континент, его инициативы должны быть одинаково доступным во всех 53 африканских стран, иначе риск разрыва сообщества по региональному признаку.

Несмотря на проблемы, Nwakanma сделал есть идеи для создания открытого исходного кода в Африке, в том числе ориентированных на детей школьного возраста с открытого образования источника и клубов, отметив, что поставщики несвободного безжалостно преследовать выгодных контрактов правительства, но никогда не заинтересованы в инвестировании в школьного возраста детей как потенциальных разработчиков. Другие участники поделились своими идеями, а также, таких, как вывод местные открытые группы источников в Африке с установленными группами пользователей Linux (LUG,) на Западе в “город-побратим” в стиле программы, и обнародование возможностей для посетителей в Африку, чтобы помочь местным группам , добровольно говорить о открытым исходным кодом.

Более руководству общиной

На заключительном заседании в воскресенье, подавляющее большинство присутствующих сказал, что CLS был ценным и были полны энтузиазма, чтобы увидеть его вернуться в следующем году. Мнение было разделено о времени и месте, в этом году мероприятие были выходные, непосредственно предшествующих массивные O’Reilly Open Source Конвенции (OSCON), который был плюс для тех, кто уже планирует посетить OSCON но минус для тех, кто нашел OSCON слишком дорого . Бэкон пообещал, что CLS вновь появится в той или иной форме в следующем году, для дальнейшего обсуждения, что очень много полезного. Управление интернет-сообществах это тема, которая приобретает все большее значение, которое должно гарантировать дальнейший успех этого мероприятия. Но это также очень важно для движения открытых источников в целом, поскольку она зависит от здоровой и полноценной жизнедеятельности для его выживания.

Ресурс: Community Leadership Summit 2009

Орган Дон и Джилл Кнута

organ

Это шестнадцать ранга орган был спроектирован и построен для нашего дома и Abbott Sieker Лос-Анджелеса, штат Калифорния, так как их “ Opus 67” Он имеет 812 трубы, разделенные на три дивизиона:

Руководство I

(Контакт, высокой за консолью;
механический ключ действии водителя 380 труб)

Holzgedackt 8
49 деревянных труб в том числе 4 на фасаде, а также 7 небольших металлических труб
Gemshorn 8
44 металлических труб (12 нот низкого общего с Holzgedackt)
Prästant 4
56 металлических труб, включая медь фасад
Blockflöte 2
56 металлических труб
Quinte 1 1/3
56 металлических труб
Mixtur III
112 металлических труб в дополнение к квинту

Смесь смол: CC – BB, 1 1/3 + 1 + 2/3, С – В, 2 + 1 1/3 + 1, Т ‘- г”’, 2 2/3 + 2 + 1 1/3
Муфта с ручного II в руководстве I

Руководство II
(Прилагается, чуть выше консоли;
механический ключ действии водителя 312 труб)

Spitzflöte 8
44 металлических труб (12 нот низкого общего с Quintadena)
Quintadena 8
49 деревянных труб плюс 7 небольших металлических труб
Rohrflöte 4
56 металлических труб
Prinzipal 2
56 металлических труб
Нашат 2 2/3
56 металлических труб
Terz 1 3/5
44 металлических труб от тенора С до г” ‘

Педаль

(Контакт, справа от консоли;
электропневматическими действии водителя 120 труб)

Subbass 16
32 деревянных труб
Kupferprinzipal 8
32 металлических труб, включая медь фасад
Flöte 8
12 деревянных труб расширения Subbass
Oktave 4
12 металлических труб расширения Kupferprinzipal
Contrafagott 16
32 камыши с половиной длины резонатора металла труб

Муфта с ручного я крутить педали
Муфта с ручного II крутить педали

Консоль

Деревянные клавиши (grenadill)
Орех пюпитр
6 Общие поршни комбинации
18 дивизий поршни комбинации, 6 на деление
Setterboard под музыку стойку для настройки комбинаций
Набухают и Crescendo педали
Кабинет музыки с 78 отдельными выдвижные полки

Выражают следующим “ Северной немецкого барокко” традиции, похож на прекрасный день органах Баха. Руководство подразделений использовать 2.5” давления ветра, и разделение педаль используется 3.5”, это может быть по сравнению с 15” давления в органе Вурлитцер в соседней пиццерии. Тихий вентилятор Meidinger приходит из Швейцарии. Некоторые из трубы выступили Gebrüder Käs в Германии, и педалью тростники от Trivo Инк в Hagerstown, Мэриленд, но большая часть трубопроводов является Эббот и Sieker, он сделал все звучанием.

Органа может быть определен как музыкальный инструмент получения звука из трубы, те трубы, которые настраиваются в сундуках ветра подается воздух под постоянным давлением. Поток воздуха к трубам контролируется посредник механизмов от одного или более клавиатур. Название подразумевает труб, поэтому обозначение “” органной является излишним, как бы термин “ скрипичной струне” тростниковый орган будет более правильно называть фисгармонии.. Электронные устройства лишенный труб и тростника не могут претендовать на название. — E. Мощность Биггс

Орган был посвящен 6 июня 1975 года в концерт Рут Schepman, играя произведения Фрескобальди, Букстехуде, Баха, Fullenwieder, Алена, и Мендельсона. Дон и Джилл начала программы с “ Fancy в течение двух-Play” Томас Томкинс (1572 – 1656).

Отец Дон был учителем лютеранской школе и церковный органист. Дон учился игре на фортепиано, и в течение короткого времени орган, в средней школе. Позже в качестве преподавателя из Калифорнийского технологического института, он был призван стать долгосрочной заменой органистом в лютеранскую веру церкви в Пасадене, штат Калифорния. Он стал членом Американской гильдии органистов в 1965 году, и увидел его первый орган Эббот и Sieker в то время. После изучения более десятка орган строителей в Дании, Германии, Англии и США, он выбрал Эббот и Sieker, чтобы построить этот инструмент из-за энтузиазм, самоотверженность и мастерство проявляется в их работе.

Учителей Кнута органа были Матильда Schoessow в Милуоки, Мэри Krimmel в Принстоне, и Скотт Turkington в Бостоне. Он редко выступает публично (и он говорит, что общественность может вообще быть благодарны за это). Но как член игроков-любителей камерной музыки он любит играть в неформальной обстановке с другими музыкантами, особенно с использованием фортепиано Bösendorfer Гранд, которая обращена к органу. Музыкальная комната также содержит монарха пианино унаследовал от своего отца. Более половины музыки полки хранения в органе заполнены обширной коллекцией в четыре руки и восемью руками фортепианную музыку.

Ресурс: The Organ of Don and Jill Knuth

Астрономические расходы: Альтернативная стоимость замедленного научно-технического прогресса

Резюме. С очень передовые технологии, очень большое число людей живущих счастливой жизнью может быть сохранен в доступной области Вселенной. За каждый год, что развитие таких технологий и колонизации Вселенной задерживается, поэтому существует возможность стоимость: потенциальный хорошо, живет стоит жить, не реализуется. Учитывая некоторые правдоподобные предположения, эта стоимость очень велика. Тем не менее, урок для утилитаристы не то, что мы должны максимизировать темпы технологического развития, а то, что мы должны максимально его безопасность, то есть вероятность того, что колонизация со временем произойдет.

I. УРОВЕНЬ УТРАЧЕНОГО ПОТЕНЦИАЛА ЖИЗНИ

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

Скорость этой потерей уму непостижимо. Одним из последних спекулирует бумаги с сыпучим теоретических соображений, основанных на скорость возрастания энтропии, что потеря потенциальной человеческой жизни в нашей собственной галактической сверхскоплением по крайней мере ~ 10 ^ 46 в столетие отсроченных колонизации. [1] Эта оценка предполагает, что все потерянные энтропии можно было бы использовать в производственных целях, хотя никаких известных в настоящее время технологические механизмы не являются даже отдаленно способна на это. Так как оценка предназначена для нижней границы, это радикально unconservative предположение является нежелательным.

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

В грубом приближении, скажем Дева Сверхскопления содержит 10 ^ 13 звезд. Согласно одной из оценок вычислительной мощности извлекаемые от звезды, с соответствующим размером с планету вычислительные структуры, с использованием современной молекулярной нанотехнологии [2], 10 ^ 42 операций в секунду. [3] типичная оценка вычислительной мощности человеческого мозга составляет примерно 10 ^ 17 операций в секунду или меньше. [4] Не намного больше, кажется, необходимые для моделирования соответствующих частях окружающей среды достаточно подробно, чтобы включить моделируемых умов есть опыт неотличимы от типичного текущей человеческие переживания. [5] С учетом этих оценкам, следует, что потенциал для примерно 10 ^ 38 человеческих жизней потеряно каждое столетие, что колонизация нашей местной сверхскоплением задерживается; или, что эквивалентно, примерно в 10 ^ 29 потенциальных человеческих жизней в секунду.

Хотя эта оценка является консервативной, что он принимает только вычислительные механизмы реализации которых было по крайней мере, изложенных в литературе, полезно иметь еще более консервативную оценку, что не берет на себя небиологических экземпляра потенциал человека. Предположим, что около 10 ^ 10 биологических люди могли быть устойчивыми вокруг средней звезды. Тогда Сверхскопления Дева может содержать 10 ^ 23 биологических людей. Это соответствует потере потенциальных равна примерно 10 ^ 14 потенциальных человеческих жизней в секунду отсроченных колонизации.

Что имеет значение для наших целей это не точные цифры, а то, что они огромны. Даже по самым скромным подсчетам, при условии реализации биологических всех лиц, потенциал для сто трлн потенциального человеческого существа теряется за каждую секунду отсрочка колонизации нашей сверхскоплением. [6]

II.АЛЬТЕРНАТИВНЫЕ ИЗДЕРЖКИ ЗАМЕДЛЕНОЙ КОЛОНИЗАЦИИ

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

Влияние на общую стоимость, то, кажется, больше для тех действий, ускорения технического развития, чем практически для любых других возможных действий. Продвижение технологии (или его содействующих факторов, таких, как экономическая продуктивность) даже такая крошечная сумма, которую он ведет к колонизации М. с всего за одну секунду раньше, чем в противном случае произошло составляет достижение более чем на 10 ^ 29 человеческих жизней (или 10 ^ 14 человеческих жизней, если мы используем самые консервативные нижняя граница), которые иначе не могли бы существовать. Немногие другие благотворительные причины могли надеяться, что Мах уровень утилитарной выигрыша.

Прагматики не только те, кто должен категорически против астрономических отходов. Есть много мнений о том, что имеет значение, что бы согласиться с оценкой, что нынешние темпы потери представляет собой огромную потерю потенциальной ценностью. Например, можно взять более толстый концепции человеческого благосостояния, чем принято считать, по утилитаристы (будь гедонистического, experientialist или желания satisfactionist изогнутые), такие как концепция находит, что значение также и человеческого процветания, значимые отношения, благородный характер, индивидуального выражения, эстетическое восприятие, и так далее. Пока функция оценки является агрегатным (не в счет благосостояния одного человека за меньше только потому, что есть много других лиц в существовании которые также пользуются счастливой жизни) и не релятивизирован к конкретному моменту времени (тайм-дисконтирование), вывод справедлив.

Эти условия могут быть смягчены дальше. Даже если функция благосостояния не является идеально агрегатного (возможно потому, что одним из компонентов является хорошим разнообразием, предельной нормы производства, которые могут уменьшаться с ростом численности населения), он все еще может получить аналогичную линию нижнего предоставляются только что по крайней мере некоторые существенные компонентом хорошего достаточно агрегатное. Кроме того, некоторая степень временных скидок товары будущем могут быть размещены без изменения вывода. [7]

III. ГЛАВНАЯ ЦЕЛЬ УТИЛИТАРИСТОВ ДОЛЖНА ЗАКЛЮЧАТЬСЯ В СНИЖЕНИИ ГЛОБАЛЬНЫХ РИСКОВ

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

Тем не менее, истинный урок заключается в другом. Если то, что мы имеем дело с является (что-то вроде) максимально ожидаемое число стоит жизней, которые мы создадим, то в дополнение к альтернативной стоимости отложено колонизацию, мы должны учитывать риск неудачи, чтобы колонизировать вообще. Мы могли бы пасть жертвой глобальных рисков, тот, где неблагоприятный исход будет либо уничтожить на Земле разумной жизни или постоянно и резко сократило свой потенциал. [8], потому что продолжительность жизни галактик измеряется в миллиардах лет, в то время как шкала времени любых задержек, что мы могли бы реально повлиять бы измеряться годами или десятилетиями, анализ риска, козыри рассмотрение альтернативных издержек. Например, одного процента снижения глобальных рисков будет стоить (с утилитарной точки ожидаемой полезности-обзора) задержка более чем в 10 миллионов лет.

Поэтому, если наши действия имеют даже малейшего влияния на вероятность возможной колонизации, это перевесит их влияние на колонизацию, когда имеет место. Для стандартных утилитаристы, приоритетом номер один, два, три и четыре, следовательно, должно быть снижение глобальных рисков. Утилитарные императив “максимизировать ожидаемую полезность совокупного!” Может быть упрощено до максима “Минимизировать риск существованию”.

IV. ПОСЛЕДСТВИЯ ДЛЯ ВОЗДЕЙСТВУЮЩЕГО МНЕНИЯ ЛЮДЕЙ

Выше рассуждение предполагает, что наша забота состоит в максимизации общей суммы благополучия. Предположим, что вместо этого мы принять “человека, влияющих на” версии утилитаризма, согласно которой наши обязательства в первую очередь на существующих в настоящее время лицам, и лицам, которые придут на существование. [9] На такого человека, влияющие на вид, человеческого вымирания бы быть плохо только потому, что он делает прошлом или текущей жизни хуже, а не потому, что он представляет собой потеря потенциального стоило жизни. Что должно кого-то, кто пойдет по этому учению делать? Должен ли он подчеркнуть скорость или безопасность, или что-то еще?

Чтобы ответить на этот, мы должны рассмотреть еще несколько вопросов. Предположим, кто-то думает, что вероятность ничтожно мала, что все существующие человек будет выжить достаточно долго, чтобы использовать значительную часть доступной астрономических ресурсов, которые, как описано в начале этой бумаге, постепенно пропадает. Тогда свои причины для минимизации глобальных рисков является то, что внезапное исчезновение бы прочь сократить в среднем, скажем, 40 лет от каждого из текущей (шесть миллиардов или около того) человеческих жизней. [10] Хотя это, конечно, будет большой катастрофы, В том же большой стадион, как другие текущие человеческих трагедий, таких, как мир нищеты, голода и болезней. Исходя из этого, то, человек, влияющих на утилитарные должны рассматривать снижение глобальных рисков как очень важный, но не полностью доминирующей озабоченности. Там не будет в этом случае быть не простой ответ на то, что он должен делать. Где он должен сосредоточить свои усилия будет зависеть от детальных расчетов, о которых площадь благотворительную деятельность он, случайно, не в наилучшем положении, чтобы внести свой вклад в.

Возможно, однако, то необходимо назначить не ничтожно малый вероятность некоторых современных людей, выживших достаточно долго, чтобы воспользоваться преимуществами космических диаспоры. Так называемые технологические “особенности” могут возникнуть в нашей природной жизни [11], или не может быть прорыв в продления жизни, вызванное, возможно, в результате машина фазы нанотехнологий, которые дали бы нам беспрецедентный контроль над биохимическими процессы в нашем организме и дает нам возможность остановить и обратить вспять процесс старения. [12] Многие ведущие технологи и футурист мыслителей дают достаточно высокую вероятность этих событий происходит в течение следующих нескольких десятилетий. [13] Даже если вы скептически относятся к их прогнозам , вы должны рассмотреть неудачных результатов технологического прогнозирования. В связи с устоявшейся ненадежность многих таких прогнозов, казалось бы необоснованные быть настолько уверены в своих предсказаниях, что необходимые прорывов не будет происходить в наше время, чтобы дать гипотезу, что они будут вероятность меньше, чем, скажем, 1%.

Ожидаемую полезность 1% вероятность реализации астрономически большим хорошим все равно может быть астрономической. Но, насколько хорошо было бы для (некоторые существенные подмножества), живущие в людей, чтобы получить доступ к астрономическим количеством ресурсов? Ответ не очевиден. С одной стороны, можно было бы отразить это в современном мире, предельная полезность для отдельных материальных ресурсов снижается довольно быстро, как только его основные потребности были удовлетворены. Уровня Билла Гейтса благополучия, кажется, не значительно превышать многие лица гораздо более скромными средствами. С другой стороны, современные технологии те растения, которые, скорее всего, быть развернуто к тому времени, мы могли колонизировать местных сверхскоплением вполне может обеспечить новые способы преобразования ресурсов в благополучии. В частности, материальные ресурсы могут быть использованы значительно расширить наши умственные способности и бесконечно продлить наше субъективное продолжительность жизни. И это отнюдь не очевидно, что предельная полезность расширенного сохранении здоровья и повышения умственных способностей должно быть резкое снижение выше некоторого уровня. Если нет такого снижения предельной полезности, мы должны сделать вывод, что ожидаемая полезность от текущей особи успешной колонизации нашей сверхскоплением астрономически велико, и это заключение справедливо, даже если один дает довольно низкую вероятность такого исхода. Длинный выстрел может быть, но для максимизации ожидаемой полезности, благо живу, возможно, миллиарды лет с субъективных значительно расширены возможности по фантастически благоприятных условиях может более чем компенсировать удаленное шансы на успех.

Теперь, если эти допущения, что следует о том, как человек, влияющих на утилитарные должны действовать? Очевидно, избегая экзистенциальной бедствий важна не только потому, что это было бы обрезать естественной продолжительности жизни в шесть миллиардов или около того людей, но также – и с учетом этого предположения даже весомее внимание – потому что это будет погасить вероятность того, что текущая люди жатвы огромную пользу возможной колонизации. Тем не менее, в отличие от общей утилитарной, человек, влияющих на утилитарные бы иметь, чтобы сбалансировать эту цель с другой, не менее важной дезидерат, а именно максимизации шансов на текущий людей, выживших воспользоваться колонизации. Для человека, влияющих на утилитарные, это мало того, что человечество выживает колонизировать, крайне важно, чтобы сохранилось людей спастись. Это должно привести ее, чтобы подчеркнуть скорость технологического развития, поскольку быстрое прибытие передовые технологии, несомненно, будет необходимо, чтобы помочь людям текущего остаться в живых, пока плоды колонизация не может быть собран. Если цель скорость конфликтов с целью глобальной безопасности, общее утилитарные должны всегда выбирать Для обеспечения максимальной безопасности, но человек, влияющих на утилитарные придется уравновесить риска людей, умерших от старости с риском их уступить в виду разрушающих катастрофы. [14]

[1] M. Cirkovic, ‘Cosmological Forecast and its Practical Significance’, Journal of Evolution and Technology, xii (2002), http://www.jetpress.org/volume12/CosmologicalForecast.pdf.
[2] K. E. Drexler, Nanosystems: Molecular Machinery, Manufacturing, and Computation, New York, John Wiley & Sons, Inc., 1992.
[3] R. J. Bradbury, ‘Matrioshka Brains’, Manuscript, 2002, http://www.aeiveos.com/~bradbury/MatrioshkaBrains/MatrioshkaBrains.html
[4] N. Bostrom, ‘How Long Before Superintelligence?’, International Journal of Futures Studies ii (1998); R. Kurzweil, The Age of Spiritual Machines: When Computers Exceed Human Intelligence, New York, Viking, 1999. The lower estimate is in H. Moravec, Robot: Mere Machine to Transcendent Mind, Oxford, 1999.
[5] N. Bostrom, ‘Are You Living in a Simulation?’, Philosophical Quarterly, liii (211). See also http://www.simulation-argument.com.
[6] The Virgo Supercluster contains only a small part of the colonizable resources in the universe, but it is sufficiently big to make the point. The bigger the region we consider, the less certain we can be that significant parts of it will not have been colonized by a civilization of non-terrestrial origin by the time we could get there.
[7] Utilitarians commonly regard time-discounting as inappropriate in evaluating moral goods (see e.g. R. B. Brandt, Morality, Utilitarianism, and Rights, Cambridge, 1992, pp. 23f.). However, it is not clear that utilitarians can avoid compromising on this principle in view of the possibility that our actions could conceivably have consequences for an infinite number of persons (a possibility that we set aside for the purposes of this paper).
[8] N. Bostrom, ‘Existential Risks: Analyzing Human Extinction Scenarios and Related Hazards’, Journal of Evolution and Technology, ix (2002), http://www.jetpress.org/volume9/risks.html.
[9] This formulation of the position is not necessarily the best possible one, but it is simple and will serve for the purposes of this paper.
[10] Or whatever the population is likely to be at the time when doomsday would occur.
[11] See e.g. V. Vinge, ‘The Coming Technological Singularity’, Whole Earth Review, Winter issue (1993).
[12] R. A. Freitas Jr., Nanomedicine, Vol. 1, Georgetown, Landes Bioscience, 1999.
[13] E.g. Moravec, Kurzweil, and Vinge op. cit.; E. Drexler, Engines of Creation, New York, Anchor Books, 1986.
[14] I’m grateful for the financial support of a British Academy Postdoctoral Award.

Ресурс: Nick Bostrom

Анатомия действительно отвратительной подачи (бейсбол)

13 июня, 2012, РА Дики станом в одного нападающего против Tampa Bay Rays на поле Tropicana. В нижней части третьего, Дики вычеркнул воли Rhymes с шагом брошен в приведенном выше высокоскоростного видеоклипа. Внимательно посмотрите на поле. Осторожно, чтобы не вводить в заблуждение восходящее движение камеры или движение зрелище, видеть, если вы можете заметить, что претерпевает два шага отчетливые изменения направления. Вскоре после освобождения, он, как двигаться резко вправо, а позже она движется так же внезапно влево. Плохо Никогда не было шансов. В самом деле, даже зрелище имеет много проблем с шагом, как мы можем видеть из движения его головы и перчатки. Там, кажется, нет никаких сомнений, что этот шаг получает очень высокие оценки по шкале противно.

1

Современная технология дала нам два инструмента для анализа этого шага. Во-первых, высокоскоростной видео позволяет видеть движение шарика, в том числе его вращения, в деталях. Во-вторых, нам очень повезло, что радар TrackMan доплеровской системы созданы в поле Tropicana, что позволяет достаточно точное измерение траектории поля. В этой статье, я буду как эти инструменты в моей попытке разгадать, что происходит с этим шагом.

Прежде всего, давайте более внимательно посмотрим на видеоклип. Первым шагом в этом процессе является разгадать 110 отдельных кадров из анимированную последовательность рисунок, что позволяет нам проверять каждое изображение в более неторопливом темпе. Мяч покидает руку первоначально Дики в кадре 12 и попадает рукавицу ловца в кадре 99. Зная скорость от выпуска TrackMan (см. ниже), поэтому мы можем оценить, что камера работает со скоростью около 166 кадров / сек. Далее, мы можем отследить полет логотипом MLB, которая хорошо видна на мяч, чтобы определить, что мяч делает один полный оборот в 63 кадра, так что скорость вращения около 150 оборотов в минуту. Это очень низкий скорость вращения по сравнению с 1000-2000 оборотов в минуту, что является типичной для нормальной площадки. Но кроме низкой скорости, оси вращения также необычна тем, что является, как представляется, спирали, так же, как пуля или пройти вперед в футболе. Другими словами, этот шаг выглядит как низкоспиновых Gyroball, что в общей сложности около 1,5 оборотов.

2

Теперь давайте взглянем на траекторию TrackMan. Участок горизонтальном положении (х) как функции времени показано с правой стороны. Система координат, такое, что х <0 соответствует правой стороне пластины дома, как видно из кувшина. Синие точки являются фактические данные слежения, измеряется в 0,004 секунды. Шевелит в данных почти наверное не реально, но артефакт системы измерения радара. В самом деле, другие «обычные» смол брошены в этой игре показывают, что аналогичные шевелит. Итак, давайте игнорировать их в анализ путем усреднения по шевелит, чтобы получить красную кривую, которая является лучшим представление фактического траекторию мяча. Так что мы можем узнать, глядя на красную кривую? Два, казалось бы быстрой смене направления движения, которые видны на видео показать, как изменения в наклоне красная кривая порой указывает две стрелы. Мяч изначально начинается при х <0, которое, как ожидается для правой кувшин, и движется справа налево около 4,7 фут / с. Первое изменение наклона происходит примерно 0.1 сек. Мяч на самом деле не двигаться вправо, а, скорее она продолжает двигаться влево, но с пониженной скоростью около 1,2 м / с. Второе изменение наклона происходит при примерно 0,3 сек, увеличивая приблизительно до 3,6 фут / с.

3

Следующий шаг в анализе, чтобы попытаться соответствовать то, что мы видим на видео с тем, что мы измеряем с радаром. На самом деле, я собираюсь сделать еще больше, чем это. То, что я хочу сделать, это показать, как это поле точно следует структуре движения, которое, как ожидается, на основе экспериментов аэродинамической трубе. Первым делом взгляните на снимки экрана мячом в указанное время. Отметим, в частности ориентации шов, который виден кувшин. Если вы хотите найти ориентацию мяч глазами зрелище, просто переверните слева и справа. Так, в картине на 0,106 сек, шов на вертикальной и правой питчера. К улавливатель, шов, что он видит на противоположной стороне также вертикальные и слева от него. И это направление, что мяч как ожидается, перерыв по данным аэродинамической трубе – налево ловца или вправо питчера, так же, как мы видим, как в видео и отслеживания данных. Теперь, так как мяч брошен с гироскопом-спин, шов отвечает за движение просто вращается вокруг направления движения. Таким образом, на 0,204 сек, в горизонтальное положение и на нижней половине шар, в результате чего вниз перерыва. На 0,319 сек это опять приводит к вертикальной перерыв, чтобы левая питчера. И так далее. Направление силы ответственны за движения просто вращается по часовой стрелке, если смотреть на кувшин, и, указанном стрелкой на фигуре.

Теперь взглянем на следующие две цифры, которая показывает, как в горизонтальной, и вертикальной отслеживания данных на графике как функцию времени. Красными точками являются фактическими данными и черные кривые ожидаемое поведение данных, если силы следует круговой конфигурации, как ожидалось из данных аэродинамической трубе. Снова не взирая на нефизических шевелит, кривые удивительно хорошую работу учета данных. Размер сила сравнима с таковой найден для типичного Curveball, то есть он не является ни большим, ни необычно необычно маленький. “Двойной брейк” является следствием двух вещей: круговая диаграмма силы и тот факт, что мяч поворачивается 1,5 оборота. Если бы мяч был брошен, скажем, только 1 оборот, связанный с движением второго перерыва (налево Дики) произошло бы слишком поздно в траекторию, чтобы иметь большой эффект. Обратите внимание, что также влияет на силу вертикальных движений, хотя это гораздо труднее различить, так что движение во многом определяется силой тяжести.

4

5

Итак, позвольте мне обобщить то, что нам удалось достичь. У нас есть высокоскоростное видео, мы отслеживания данных, и у нас есть измерения аэродинамической трубе. И все эти отдельные части, кажется, согласуются друг с другом. Несмотря на изменения направления силы, траектория-прежнему очень гладко, не производя никаких резких изменений, которые было бы весьма нефизических. Такая траектория, несмотря на свою гладкость, не было бы хорошо подходят обычные модель постоянного ускорения, используемые в PITCHf / х системы. В качестве дополнительного бонуса, может быть, мы наткнулись на что-то очень практическое значение, а именно, эффективность вращения гироскопа в производстве нескольких перерывов в траектории. Дики ли сделать это нарочно? Он знает то, что мы только начинаем открывать? Я хотел бы знать ответ на этот вопрос. Возможно, есть ли будущее у меня, как научный сотрудник в Академии Knuckelball! Или нет.

Почему Knuckleball настолько хаотичным движением?

К настоящему времени это хорошо известно, что Knuckleball движение неустойчиво. Что именно я имею в виду под этим? Я имею в виду, что движение, определяется как отклонение от прямолинейной траектории, случайно от тона к тону. Иногда это движение влево, то вправо, и т.д. Это совсем не похоже на поведение «нормального» смол, которые являются вполне предсказуемыми в том, как они двигаются. Действительно, именно эта предсказуемость, наряду с выпуском скорость, которая лежит в основе схемы классификации шага. Непредсказуемый характер Knuckleball движения изучалась с начала дней PITCHf / х. Один из самых ранних статей была превосходная часть написана Джон Уолш, Бабочки не пули, и опубликованы в Крутого раз в ноябре 2007 года. Итак, вот большой вопрос: почему движение Knuckleball настолько непредсказуем? Теперь, когда у нас есть довольно хорошая модель для сил, которые приводят к траектории этого конкретного шага РА Дики, мы находимся в положении, чтобы начать отвечать на этот вопрос.

6

На изображении выше, я перестроенные траектории поля в горизонтальной плоскости (то есть вид сверху), с той же левой-правой точки зрения, как в видео. Черное пятно представляет ширину пластины дома. Синяя кривая нужным отслеживания данных, описанных выше, и представляет наши лучшие оценки фактической траектории. Напомним, что делает шаг 1,5 вращений между релиза и домашней пластины. А теперь давайте почти все то же самое об этом поле. То есть, точки выброса, начальные скорости и направления исходной ориентации шва, ось вращения, а также взаимосвязь между силами и шов ориентации все же. Однако, предположим, что РА спины мяч немного более медленно, так, что он делает, а не 1,0 1,5 оборота. Что бы траектория выглядит? Учитывая нашу математическую модель для траектории, мы можем легко ответить на этот вопрос: Это будет выглядеть так же, как красная кривая. Две кривые падают прямо на верхней части друг друга от релиза к около 40 футов от дома тарелку, но после этого они отклоняются сильнее. Действительно, красная кривая заканчивается на внешнем краю пластины дома в то время как фактическое поле приземлился прямо в середине. Это различие более 8 дюймов. То, что эти две веревки, отличающиеся только скорость вращения ведут себя так по-разному друг от друга дает нам значительное понимание относительно того, почему движение настолько хаотичным, то есть, таким образом, отличается от одного шага к другому.

Knuckleball вполне может быть manisfestion что физики назвали бы хаотическая динамика, в результате чего небольшие изменения в начальных условиях системы (в нашем случае, скорость вращения) приводит к большим изменениям в результатах (в нашем случае, расположение дома пластины). Это в настоящее время предметом исследования, которое я проведения в сотрудничестве с моим давним другом и частым Креста Rod сотрудником. Осмотрев десятков высокоскоростной видео смол Дики с 2012 года, мы обнаружили значительный шаг к шаг изменения скорости вращения, и до некоторой степени в оси вращения. Можно ли соотнести вариации во вращении с изменениями в движении? Это один из вопросов, которые мы надеемся ответить наши исследования, что очень много работы в прогресс. Первые результаты, конечно, смотреть обнадеживающими. Оставайтесь с нами для будущих обновлений.

В заключение, позвольте мне поблагодарить хорошими людьми в Sportvision и TrackMan за предоставление мне отслеживания данных для моих исследовательских проектов.

Ресурс: Dickey Pitch

McIDAS-V

McIDAS-V является новой версией McIDAS основе VisAD и IDV Unidata автора. McIDAS-V включает HYDRA, гиперспектральное-просмотрщик для развития прикладных исследований, также основанный на VisAD, чтобы позволить ученым исследовать гиперспектральное данных.

Вот история о том, почему новая версия McIDAS основе VisAD делает меня таким счастливым.

Содержание

1. Введение
2. Регистрация VisAD рассылку
3. Как получить VisAD
4. Документация
5. Предпосылки
6. VisAD лист распространение
7. Написание совместных VisAD Приложения
8. Бег VisAD в браузере
9. VisAD языка сценариев Python
10. Поддержка форматов файлов
11. Запуск VisAD Использование NexusRMI
12. Запуск VisAD на Ipaq
13. Integrated Data Unidata программу просмотра использованием VisAD
14. VisBio биологической визуализации и анализа использования VisAD
15. VisAD-в-коробке для легкой установки кластера
16. Роман Дисплеи для данных эхолота Aeri
17. Совместные Млечного Пути Галактики конструктор
18. Сотрудничество между ImmersaDesk и рабочая станция
19. Прототип экологической гидрологии Workbench
20. Метеорология JMET интерактивная система
21. Совместные вычислительной руководящий Плоская модель Fluid
22. Другие примеры применения
23. VisAD Библиография
24. VisAD Логотипы

Введение

VisAD представляет собой библиотеку Java компонент для интерактивных и совместных визуализации и анализа числовых данных. VisAD имя является аббревиатурой от “Визуализация для разработки алгоритмов”. Система сочетает в себе:

  • Использование чистой Java за независимость платформы и поддерживают обмен данными в режиме реального времени сотрудничество между географически распределенными пользователями. Поддержка распределенных вычислительных интегрирована на самом низком уровне системой с использованием Java RMI распределенных объектов.
  • Общей математической модели данных, которые могут быть адаптированы к практически любым цифровых данных, который поддерживает обмен данными между различными пользователями, различные источники данных и различных научных дисциплин, и который обеспечивает прозрачный доступ к данным независимо от формата хранения и местоположение (например, памяти, диска или удаленного). Модель данных была адаптирована к NetCDF, HDF-5, подходит, HDF-EOS, McIDAS, Vis5D, GIF, JPEG, TIFF, QuickTime, ASCII и многие другие форматы файлов.
  • Общей модели дисплей, который поддерживает интерактивное 3-D, синтез данных, несколько видов данных, прямая манипуляция, сотрудничество и виртуальной реальности. Дисплей модели была адаптирована к Java3D и Java2D и используются в ImmersaDesk виртуальный дисплей реальности.
  • Анализ данных и вычислений интегрирована с визуализацией для поддержки вычислительных рулевого управления и других сложных режимах взаимодействия.
  • Поддержка двух различных сообществ: разработчиков, которые создают предметно-ориентированные системы, основанные на VisAD и пользователей этих предметно-ориентированных систем. VisAD предназначена для поддержки широкого спектра пользовательских интерфейсов, начиная от простых данных браузера апплеты для сложных приложений, которые позволяют группам ученых для совместной разработки алгоритмов анализа данных.
  • Разработчик расширяемость как много способов, как это возможно.

VisAD Учебник Уго Таддеи является отличным способом для начала изучения VisAD.

VisAD была написана программистами SSEC визуализации проекта в Университете Висконсин-Мэдисон космической науки и инженерного центра, программистами в Центре Программы Unidata, программистов в Национальном центре суперкомпьютерных приложений, программисты в Австралийское бюро метеорологии, программистов в Национальном центре атмосферных исследований, и программисты в канадском Национального исследовательского совета.

Регистрация VisAD рассылку

Существует VisAD рассылки в visad@unidata.ucar.edu (visad-list@unidata.ucar.edu тоже работает). Чтобы подписаться на него отправить сообщение по электронной почте visad-join@unidata.ucar.edu. Вы также можете подписаться или отказаться от подписки в http://www.unidata.ucar.edu/support/mailinglist/mailing-list-form.html веб-страницы.

Visad списку Поиск Unidata Архив.

Вы не можете добавлять в этот список, если вы не подписались, и ваше сообщение должно исходить с того же адреса, на которые подписались как. Если у вас возникли проблемы размещения, затем подписаться, используя адрес, который появляется в поле “От” отправленных сообщений. Если вы хотите отказаться от подписки на старый адрес и не помню его, а затем подписаться как ваш новый адрес и отправить “кто visad ‘(или’ кто visaddigest ‘), чтобы majordomo@unidata.ucar.edu. Он пошлет вам список подписанных адресов, которые вы можете искать свой старый адрес (а затем отправить “отменить подписку visad старому адресу @ ‘, чтобы majordomo@unidata.ucar.edu).

Как получить VisAD

Обновления
VisAD находится в свободном доступе, включая полный исходный код, документацию и примеры применения от:

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

См. Установка и README_native файлы с инструкциями по установке.

Если вы не хотите компилировать VisAD исходного кода, скомпилированные классы, также доступны в visad.jar (возможно, вам нужно нажать на банку файл с зажатой клавишей вниз, чтобы получить ваш браузер, чтобы загрузить его). Если вы хотите запустить пример приложения с использованием visad.jar см. “Строительство VisAD” секция установки файла.

Вот ссылка на супер-легкий установщик Windows для VisAD, Jython, JRE и Java3D.

Документация

Первым документом, смотреть на это VisAD Учебник Уго Таддеи автора. Благодаря Уго и Том Уиттакер за этот великий новый учебник.
Другие учебники включают в себя:

  • VisAD модели данных Учебник, что полезно для людей, только начинается
  • VisAD Учебник Python, который объясняет простой способ использовать VisAD из сценариев Python
  • VisAD Учебник сотрудничество, которое шаг за шагом инструкции для создания приложений для совместной работы, а также для преобразования существующих приложений для поддержки совместной работы (ее все действительно очень просто)
  • Учебник VisAD DataRenderer, которая объясняет, как писать собственные расширения класса DataRenderer (это на самом деле построить изображениями объектов данных в дисплеями и изменения объектов данных в ответ на прямые манипуляции)
  • VisAD Учебник событий, что полезно для написания приложений со сложными пользовательскими интерфейсами, несколько потоков и распределенных вычислений

VisAD Java Component Library Руководство разработчика позволяет получить достаточно полное описание VisAD (во многом благодаря Мариус Шмидта для преобразования в PDF и другими улучшениями). Вот старые версии HTML.

Лучший способ научиться любой библиотеки является изучение примера приложений, использующих библиотеку, а затем создавать свои собственные приложения путем модификации одной или нескольких из этих существующих приложений. Руководство разработчика, описывает многочисленные примеры приложений, которые распространяются с VisAD исходным кодом. Если у вас есть вопросы или проблемы, напишите в VisAD списка рассылки.

Другие doumentation включает в себя:

  • VisAD FAQ
  • Jar файла из VisAD документацию
  • Онлайн просмотр из VisAD документацию
  • Список изменений Список VisAD
  • Visad списку Поиск Unidata Архив
  • VisAD Установить файл инструкции по установке
  • VisAD README_native файл для установки машинного кода
  • Список единиц полных и сокращенных наименований для использования в VisAD
  • Процедура тестирования и выпуска VisAD на сервер FTP
  • Кертис Rueden в примерах программирования

Вы также можете быть заинтересованы в библиографию статей о VisAD, VisAD истории дизайна, или это он-лайн разговор о VisAD.

Предпосылки

VisAD требуется Java 2, которая находится в свободном доступе Java Солнца 2 веб-страницы. Дисплеи могут быть созданы либо Java2D (входит в Java 2) или Java3D, которая находится в свободном доступе Java3D веб-страницы Sun. Обратите внимание, что версии Java3D 1.1.3 и 1.2 есть ошибки, которые делают их непригодными для использования, по крайней мере, некоторые VisAD приложений. Но эти ошибки были исправлены в версии 1.2.1 Java3D, которая отлично работает с VisAD.

Java3D требует OpenGL или DirectX. Вы можете бесплатно загрузить OpenGL для Sparc Solaris и Windows 95. OpenGL является стандартным с Windows NT. Вы можете скачать здесь DirectX.

Если вы хотите использовать VisAD язык сценариев Python, то вам необходимо установить Jython.

Если вы хотите использовать VisAD матричных операций в visad.matrix пакета, то вам необходимо установить Джама.

VisAD системы визуализации используют зрелые функциональности Java из JDK 1.2 платформы, в том числе Java3D, Java2D и Java RMI. Мы в SSEC Визуализация проекта из Университета Висконсина считают, что JDK 1.2 определяет развитие Интернета как новой коммуникационной среды. Java3D и Java2D определить внедренный для компьютерного поколения изображений и Java RMI это качественный скачок для совместных пользовательских интерфейсов и распределенных вычислений.

Разработчики VisAD в Мельбурне
(Билл Hibbard, Эндрю Дональдсон, Люк Мэтьюз, Джефф Фриман, Роб Hackett, Джим Koutsovasilis, Джеймс Келли)

VisAD лист распространение

VisAD электронная таблица представляет собой удобный способ визуализации и вычисления с NetCDF, HDF-5, подходит, GIF, JPEG, Vis5D, McIDAS и HDF-EOS файлы, которые не требует программирования. Конечно, целый ряд функциональных возможностей VisAD доступна только для программистов, использующих библиотеку классов, но электронная таблица является полезным инструментом и хорошей иллюстрацией того, что вы можете сделать программирование с VisAD библиотеки классов.


Написание совместных VisAD Приложения

Легко писать приложения для совместной работы визуализации с помощью VisAD. Сотрудничество Учебник содержит шаг за шагом инструкции по созданию приложений для совместной работы, а также для преобразования существующих приложений для поддержки совместной работы. Его все действительно очень просто.

Бег VisAD в браузере

Visad.browser пакет запускается в веб-апплеты (например, JDK 1.1) и поддерживает полное взаимодействие с VisAD экранов запущенных на серверах. Run ‘Java Test68′ в visad / примеры и ‘Appletviewer viewer_applet.html’ в visad / браузере для примера. Для этого в веб-браузерах, см. README.browser файла.


VisAD языка сценариев Python

VisAD поддерживает простой Python баз язык сценариев для оценки ее анализа и визуализации данных возможностей. См. VisAD Учебник Python получить дополнительные сведения.


Поддержка форматов файлов

VisAD включает поддержку для доступа к данным в различных форматах, в том числе:

  • ASCII – см. README.text файл для получения дополнительной информации
  • Bio-Rad ПИК
  • BMP
  • DICOM
  • DODS
  • F2000
  • FITS
  • GIF
  • HDF-5 – см. README_native файл инструкции по установке HDF-5 родной библиотеки – также см. описание NCSA о VisAD HDF-5 адаптера данных
  • HDF-EOS – см. README.hdfeos файл инструкции по установке HDF-EOS собственных библиотек
  • JPEG
  • LUT
  • McIDAS
  • McIDAS ADDE
  • NetCDF
  • PGM
  • PNG
  • Quicktime – через QuickTime для пакета Java
  • ROI
  • Shape – распространяемые Unidata с их системой MetApps
  • TIFF – в том числе архив сжатый TIFF
  • Vis5D
  • VisAD – двоичный формат данных, а также сериализованную visad.Data объектов

Hershey шрифты

VisAD распространяется с количество шрифтов Hershey, но более доступны в виде архива. Чтобы использовать любой из этих дополнительных шрифтов, вы должны поставить отдельный файл шрифта (ы) в visad / Util каталог и убедитесь, что используете. JHF расширения имени файла.

Запуск VisAD Использование NexusRMI

Вы можете скомпилировать и запустить VisAD использованием NexusRMI, альтернативной реализации RMI (технологии распределенных объектов в Java) на основе Nexus высокопроизводительные системы связи. См. README.nexusrmi файл для компиляции и запуска инструкции.

Запуск VisAD на Ipaq

Ян Джонсон CLRC из лаборатории Резерфорда сообщает о своем опыте VisAD работает на КПК IPAQ использованием SavaJe.

Integrated Data Unidata программу просмотра использованием VisAD

Центр Unidata программа (часть ЮКАР и авторинга институт VisAD) выпустила свою программу для просмотра данных (IDV). Индинавир предохранители данные из различных источников экологического вместе в 2-х и 3-D земле видов. Она также включает в VisAD адаптер для ArcInfo файлы Shape.


VisBio биологической визуализации и анализа

VisBio является биологическим инструмент визуализации построена на VisAD и разработана, чтобы позволить удобную визуализацию и анализ 4-D мультиспектральных данных – то есть, стеки ломтиками биологических данных с несколькими значениями цветов, анимированные во времени.


VisAD-в-Box для Linux кластеров

VisAD-в-Box поможет установить VisAD на Linux кластеров.

Роман Дисплеи для данных эхолота Aeri

Программа Aeri.java в visad / Aeri каталога является началом заявку на новый способ визуализации данных Aeri эхолот. Чтобы попробовать его, создайте данный подкаталог в visad / Aeri каталога, и скачать эти десять. CDF файлы в visad / Aeri / данных (возможно, вам нужно нажать на эти файлы с зажатой клавишей вниз, чтобы получить ваш браузер сохранять их на диск). Это файлы для пяти инструментов Aeri и пять связанных профилирования ветра, на 12 января 2000. Затем запустите:

Не обращайте внимания на предупреждающие сообщения из файла читателя. А вот снимок экрана приложения Aeri, показывая адвекции часе отношения компонентов из пяти местах звучащие в Оклахоме и Канзасе.

Совместные Млечного Пути Галактики конструктор

Вот снимок экрана совместные Млечным Путем галактике дизайн приложения с использованием VisAD:

Цель состоит в том, чтобы настроить параметры галактики Млечный Путь, чтобы получить H-альфа карта звездного неба (показан на плоскую проекцию карты и на сфере), чтобы соответствовать наблюдениям с Земли. Пользователи могут перетаскивать красной точки в 3-D дисплей плотности галактики и увидеть график плотности в зависимости от расстояния вдоль линии между красной точкой и ВС Это приложение служит хорошим примером того, как строить приложения для совместной работы и использования VisAD находится в свободном доступе в том числе полный исходный код в рамках распределения VisADF.

См. README.benjamin файл для получения дальнейших инструкций.

Сотрудничество между ImmersaDesk и рабочая станция

Мы произвели демонстрацию сотрудничества между ImmersaDesk и рабочая станция для конференц NCSA Альянс ’98. Этот комбинированный VisAD, NCSA Habanero, и адаптация к Java3D ImmersaDesk Стив и Крис Pietrowicz Heistad группы NCSA Java3D.

Эта демонстрация базируется на GoesCollaboration приложения, написанные с использованием VisAD. GoesCollaboration служит хорошим примером того, как построить совместную приложений с использованием VisAD. Он включен в VisAD распределения источник в visad / paoloa каталог. См. файл README.paoloa получить дополнительные сведения.

Нажмите здесь для получения скриншота из этого приложения.

Прототип экологической гидрологии Workbench

Вот снимок экрана и описание прототипа экологического Workbench гидрологии продемонстрировала на суперкомпьютерных 98 и разработан в рамках экологической NCSA усилия команды гидрологии. Он использует VisAD и Globus.

JMET Интерактивная система метеорологии использованием VisAD
Выезд первого выпуска JMET Интерактивная система метеорологии в visad / jmet каталог VisAD распределения. Она обеспечивает интерактивное исследование модели выхода в файлах NetCDF. В будущем это будет полноценная интерактивная система метеорологии. JMET источник включен в VisAD распределения источника.

Совместные пример расчета руководящего

2-D модели мелкой жидкости позволяет экспериментировать с физическими и числовых параметров моделирования и визуализации последствий. Это позволяет группам сотрудничать в этих экспериментах. Он включен в VisAD распределения источник в visad / Aune каталог. См. README.aune файл для получения дополнительной информации.
Австралийское бюро метеорологии апплета Демонстрация VisAD картографических проекций
Выезд апплета Джефф Фриман который демонстрирует, как для поддержки динамических картографических проекций использованием VisAD.

VMET: Visual Инструмент метеорологии

Новые VMET НЦАИ Визуальный метеорологии инструмент делает отличную работу демонстрируя возможности VisAD. Она сочетает в себе разнообразные данные в 3-D и 2-D дисплеев, поддерживающий различные типы взаимодействий и анализа данных.

Плот для визуализации статистики с использованием VisAD

Адель Катлер и Лео Бреймана разработали RAFT (случайный инструмент Forest) для визуализации анализа случайных лесов, используя VisAD.


HidroSIG для ГИС использованием VisAD

HidroSIG является ГИС, которая поддерживает растровые и векторные карты с модулями ориентирована на гидрологический анализ, временные ряды, дистанционного зондирования и многое другое. Это было сделано 100% в Java с помощью VisAD как и его графическая библиотека и использования MySQL как и его СУБД.

Совместные Географические Визуализация из Penn State GeoVISTA центр

Центр GeoVISTA из Университета штата Пенсильвания является создание совместного использования визуализаций VisAD и университета в Йене DEMViewer. Работа GeoVISTA Центр включает в себя новые и полезные интерфейсы для изучения циклических временных явлений и локально развитой сетевой инструмент называется TalkServer управлять сотрудничества.

Доступ к геопривязанные спутниковым данным GVAR, GOES, GMS и МЕТЕОСАТ

VisAD теперь обеспечивает доступ к данным из GVAR и GOES (США), GMS (японский) и МЕТЕОСАТ (европейский) метеорологических спутников. Этот механизм CoordinateSystem ссылки VisAD с McIDAS спутниковой навигации Для привязки изображений, так что они могут быть наложены с данными численных моделей и других источников. Вот снимок из анимированных глобальной мозаики создаются из этих спутников. См. visad / примеры / SatDisplay.java программы для примера того, как использовать эту возможность.

Дожди Оценка Пользовательские SpreadSheet

Программа Rain.java в visad / Рабина каталога является началом приложение для оценки осадков по спутниковым изображениям. К услугам связи между клетками для панорамирования и масштабирования, для таблицы цветов, а для собственного курсора для считывания значений пикселов. Чтобы запустить программу дождь, скачайте набор данных в dallas_2.5km_v5d.nc файла (возможно, потребуется нажать на этот файл с зажатой клавишей вниз, чтобы получить ваш браузер, чтобы сохранить его на жестком диске), а затем запустить:

Java visad.rabin.Rain dallas_2.5km_v5d.nc

Hyper-спектральные данные из гнезда-Я

Программа Nasti.java в visad / paoloa каталога является началом приложение для анализа Hyper-спектральные данные из гнезда-я датчика. Попробовать, скачать NEST-I набор данных в smc3ars1.nc файла (возможно, потребуется нажать на этот файл с зажатой клавишей вниз, чтобы получить ваш браузер, чтобы сохранить его на жестком диске), а затем запустить:

Java visad.paoloa.Nasti smc3ars1.nc

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

Интерактивный глобус Земли Пример

Стив Эмерсон создал интерактивный дисплей глобус Земли и топографии батиметрию использованием VisAD. Он включен в VisAD распределения источника, что и visad / примеры / Earth.java класса. Вам нужно скачать файл NetCDF топографии в ваш visad / каталог примеров (возможно, потребуется нажать на этот файл с зажатой клавишей вниз, чтобы получить ваш браузер, чтобы сохранить его на жестком диске), а затем запустить:

Java-Xmx64m Земли lowresTerrain.nc

Растяжение изображения Пример апплета
Кертис Rueden написал растяжение изображения апплет использованием VisAD.


Интерактивные кривых и поверхностей Место

Сплайна и Spline2D приложений, распространяемых с VisAD в visad / paoloa / сплайна каталога позволяют экспериментировать с различными статистическими кривых и поверхностей Место алгоритмов. Красные точки перетаскивать, чтобы экспериментировать с влияние шума на Место алгоритмов.

VisAD Библиография

  1. Java распределенных компонентов для численного визуализации в VisAD
    Уильям Hibbard, Кертис Rueden, Стив Эмерсон, Том Ринк, Дэвид Glowacki, Том Уиттакер, Дон Мюррей, Дэвид Fulker, Джон Андерсон, коммуникаций ACM 48, № 3, 2005, 98-104.
  2. Здание 3-D компоненты пользовательского интерфейса, используя библиотеку Визуализации
    W. Hibbard, компьютерная графика 36, № 1, 2002, 4-7.
  3. Новые пути, на Яве, визуализации данных Same Old
    Д. Мюррей и D. Fulker, AGU 2000
  4. Примером будущем Unidata в новое программное обеспечение: VisAD компонентную архитектуру для совместного анализа и визуализации данных
    W. Hibbard, препринтов Conf. Интерактивные и обработки информации для метеорологии, океанографии и гидрологии, 2000, 162.
  5. Совместные визуализации и вычислений в области наук о Земле использованием VisAD.

  6. W. Hibbard, С. Emmerson, С. Rueden, Т. Ринк, Д. Glowacki, Н. Расмуссен, Д. Fulker и Дж. Андерсон, препринтов, конф. Интерактивные и обработки информации для метеорологии, океанографии и гидрологии, 1999, 478-480.
  7. VisAD: Подключение людей на вычисления и людьми
    W. Hibbard, компьютерная графика 32, № 3, 1998, 10-12.
  8. Java и World Wide Web: правильный выбор для интерактивных систем
    W. Hibbard, Дж. Андерсон, Б. Павлу, препринтов, конф. Интерактивные и обработки информации для метеорологии, океанографии и гидрологии, 1997, 172-173.
  9. Java и World Wide Web Реализация из VisAD
    W. Hibbard, Дж. Андерсон, Б. Павлу, препринтов, конф. Интерактивные и обработки информации для метеорологии, океанографии и гидрологии, 1997, 174-177.
  10. Визуализация научных расчетов: система, основанная на решетке-структурированных данных и отображения моделей
    W. Hibbard, диссертация, Univ. из Висконсин. Комп. Научно. Отдел Tech. Сообщить, # 1226, 1995 года.
  11. Интерактивная визуализация Земли и космических наук Вычисления
    W. Hibbard, Б. Поль, Д. Сантек, С. Дайер, А. Battaiola и MF. Voidrot-Мартинес, компьютер 27, № 7, июль 1994 года, 65-72.
  12. Решеточной модели для отображения данных
    W. Hibbard, С. Дайер, и В. Поля, Proc. IEEE Визуализация ’94, 1994, 310-317.
  13. Показать научных структур данных алгоритма визуализации
    W. Hibbard, С. Дайер, и В. Поля, Proc. IEEE визуализации 92, 1992, 139-146.

Документальный очерк о VisAD на странице Java Солнца
Посмотри, что очерк о VisAD на сайте Java Sun.

Год 2000 Заявление о соответствии для VisAD

VisAD является 2000 годом. Она включает в себя один класс, DateTime, для этого дату и время вычислений, который использует 32-разрядное целое число лет. В частности, VisAD не включает в себя никакой логики с двумя цифрами.


VisAD Логотипы

Проверьте эти VisAD логотипы, представленные пользователями с художественным талантом.


VisAD Версия 1.1 (написанный на C)

Чем раньше VisAD версии, написанные в C, была в свободном доступе в течение многих лет, а также имеет веб-страницу.

Если вы создаете пакеты для расширения VisAD мы будем рады добавить ссылки на ваш веб-страницу с описанием и обслуживания вашего расширения.

Отказ от ответственности

VisAD является свободным программным обеспечением и как таковой мы не предоставляем реальную поддержку. Тем не менее, мы будем рады ответить на короткие вопросы и / или помочь с незначительными проблемами (желательно по электронной почте).

Java, JDK и Java Перейти к: JDK 1.2 Запуск являются торговыми марками или зарегистрированными торговыми марками Sun Microsystems, Inc в США и других странах.

Ресурс: Visad

Bjarne Stroustrup’s FAQ

Это вопросы, которые люди спрашивают меня часто. Если у вас есть лучшие вопросы или комментарии на ответы, не стесняйтесь, напишите мне bs@research.att.com. Пожалуйста, помните, что я не могу тратить все свое время улучшить свои домашние страницы.

Эта страница концентрируется на личное мнение и общие вопросы, связанные с философией. По вопросам, которые более непосредственно связанные с C + +, языковые особенности и использование C + + см. в моей C + + стиль и технику FAQ. Для C + + терминологии и понятий, см. мой C + + глоссарий. Для ссылки на полезные источники C + + сведения см. в моей C + +, старонкаи моей C + +0 х FAQ. Для получения информации о моих книг (в том числе обзоры и информационной поддержки), см. мою книгу список. Для документов и номера ISBN для переводов из моих книг, см. мою публикацию списка.

Содержание

1. Общий
2. Изучение C + +
3. Стандартизация
4. Книги
5. Другие языки
6. С и С + +
7. История C + +
8. И т.д. С + + вопросы
9. Личные

Общее

1. Что хорошего о классах?
2. Что такое “ООП” и что это так здорово по этому поводу?
3. Что такое “родовое программирование”, а что хорошего в этом?
4. Что такое C + +?
5. Почему C + + позволяет опасного кода?
6. Что такое “Мультипарадигмальное программирования”?
7. Является ли C + + в упадке?
8. Что делается для улучшения C + +?
9. Правда ли, что …?

Изучение C + +:

1. Что такое лучшая книга учиться C + + с?
2. Сколько времени нужно для того, чтобы узнать C + +?
3. Зная С является необходимым условием для обучения C + +, не так ли?
4. Если я узнаю, чистый язык ОО к C + +, чтобы стать настоящим программистом OO?
5. Как мне начать изучать C + +?
6. Будете ли вы помочь мне с моей домашней работы?
7. Где я могу получить бесплатный компилятор С + +?
8. Какой самый лучший способ улучшить свой C + + программы?
9. Имеет ли значение, какой язык программирования я могу использовать?
10. Где я могу узнать историю C + +?

Стандартизация:

1. Разве ANSI / ISO стандарты комитета испортить C + +?
2. Если у нас будет стандарте С + +?
3. Где я могу получить машиночитаемую версию стандарта?
4. Есть ли какие-либо функции вы хотите удалить из C + +?
5. Почему нет C + + есть сборка мусора?
6. Почему нет C + + есть GUI?
7. Почему нет C + + темы поддержки?
8. В чем разница между C + 98 и 03 C +?
9. Что будет C + +0 х выглядеть?

Книги:

1. Если у нас будет новый ARM?
2. Если вы будете публиковать 4-е издание “C + + Язык программирования”?
3. Стоит ли покупать “Special Edition” с “C + + Язык программирования”?
4. Где я могу найти свободный машиночитаемый копии ваших книг?
5. В чем разница между “TC + + PL” и “Программирование” книги?

Другие языки:

1. Является Java язык, который разработали, если Вы не должны быть совместимы с C?
2. Что вы думаете о C #?
3. Что вы думаете о C + + / CLI?
4. Что вы думаете о EC + +?
5. C + + получил свое объектно-ориентированной концепции с Smalltalk?
6. Вы действительно рекомендую Ада над C + + для больших проектов?
7. Вы бы сравнить C + + для “какого-либо языка”?
8. Другие делают сравнить их языков C + +, разве это не раздражают?
9. Вы не будете сравнивать C + + для других языков, но вы пишете обличительный речи о C + +?
10. Как наследие язык, как C + + конкурировать с современным, современные языки?
11. Почему вы так заинтересованы в мобильности?

С и С + +:

1. C лучше, чем С + + для небольших проектов, не так?
2. Является ли C подмножество C + +?
3. В чем разница между С и C + +?
4. Вы действительно думаете, что С и С + +, могут быть объединены в единый язык?
5. Что вы думаете о C / C + +?
6. Почему код, сгенерированный для “Привет мир” программы в десять раз больше для C + +, чем для C?
7. Почему вы сделали C + + (почти), совместимые с C?

История C + +:

1. Если C + + придумал?
2. Почему вы изобретать C + +?
3. Почему AT & T поддержки развития C + +?
4. У вас есть C + +?
5. Откуда название “C + +” берутся?
6. На каком языке вы использовали для написания C + +?

И т.д. С + + вопросы:

1. Почему C + + такой большой?
2. Является ли C + + объектно-ориентированного языка?
3. Что такое “унаследованный код”?
4. Является ли количество C + + пользователи по-прежнему удваивается каждый год?
5. Кто-нибудь использовать C + +, в эти дни?
6. Почему нет C + + для операционных систем?
7. Что вы думаете о Boost?
8. Что вы думаете о шаблонного метапрограммирование?
9. Вы ожидали, C + +, чтобы стать такой успех?
10. Что такое хорошая сертификации для программистов С + +?
11. Какой компилятор С + + вы рекомендуете? Какие библиотеки?

Личные:

1. Как вы произносите “Бьерн Страуструп”?
2. Могу я задать вам вопрос?
3. Почему бы вам не ответит на ваши электронной почте?
4. Почему бы вам не сделать свой сайт выглядят современно?
5. Является ли “Бьерн” самозванцем?
6. Вы шведской?
7. Неужели вы так говорите?
8. Действительно ли вы дать интервью IEEE?
9. Что вы сейчас работаете?

Как вы произносите “Бьерн Страуструп”?

Это может быть трудным для не-скандинавов. Лучшее предложение я слышал, еще не было “начать с того, он несколько раз на норвежском языке, то материал картофеля в горло и сделать это еще раз :-) ” Вот файл WAV.
Для людей, которые не могут получить звук, вот предложение: Оба моих имена произносятся с двух складов: Bjar-пе-Strou strup. Ни, ни BJ в моих первых имен и подчеркнул М. довольно слабая так что, возможно Бе-ар-NEH или По-ар-пе даст идею. У первого в моей фамилии на самом деле должно было быть V делающий первый состав конца далеко вниз по горло: Strov-strup. У второго чем-то напоминает OO в ООП, но все же коротко, может быть, Strov-струпа даст идею.

Да, это, вероятно, наиболее часто задаваемый вопрос :-)

PS Мой первый зовут Бьорн – нет Бьорн (не имя), Бьерн (связанных, но другое имя), ни Барни (не связанные имя). Мое второе имя Страуструп – нет Stroustroup, Stroustrop, Strustrup, Strustrop, Strustroup, Straustrup, ни Straustroup (документы, используя каждый из этих опечатками можно найти с помощью Google).

Могу я задать вам вопрос?

Конечно. Я постараюсь ответить на мою электронную почту. Однако, пожалуйста, постарайтесь не задавать вопрос, на который ответил на мой домашних страниц. Также, пожалуйста, не полагайтесь на оперативный ответ. Я получаю шмат листов.

Ниже приведены ссылки на

биографические данные
C + + информация и ссылки
работ (в том числе немногих, который может быть загружен)
книг (в том числе обзоры, список известных ошибок, и несколько глав, которые можно загрузить)
Интервью

Почему бы вам не ответит на ваши электронной почте?

Я делаю, но я получаю много электронной почты. Я считаю, что я отвечаю на более чем 95% (не спам) сообщений я получаю. Тем не менее, иногда я получаю переполнены. Некоторые сообщения были утеряны в мой почтовый ящик, некоторые из них задерживается пока я не могу найти время, некоторые из них задерживается, пока я не находил время для ответа набор сообщений, связанных с (это часто бывает на комментарии о потенциальных ошибках в моих книгах) . К сожалению, более длинные и вдумчивые сообщения больше шансов получить задержкой, чем просто те, которые имеют простых ответов.

Также, если вы напишите мне, пожалуйста, постарайтесь убедиться, что я могу ответить вам. Я действительно ненавижу, когда я написал и отправил ответ, только чтобы обнаружить, что обратный адрес является недействительным или недоступны.

Два вида сообщения имеют значительно больше шансов заблудиться: домашнее задание вопросов и вопросов в форме “как я могу использовать эту собственность библиотеку?”. Я немного скучно не отвечает последним вопросам, потому что часто человек просит не понимает, что DOS, Windows, или любой другой интерфейс C + + не входит в стандарт С + + (и я не в состоянии угнаться за большим количеством C + + библиотеки). Если вы не получили ответа, пожалуйста, рассмотреть, если ваш вопрос был одной из этих видов.

Кроме того, если Вы даете свою фамилию, и я теперь, вероятно, чтобы удалить сообщение прочитано. Это новая политика. Я никогда не был большим поклонником псевдонимами, но я считаю, что шанс на вежливое технических разговор с человеком, который думает, что это прохладно, чтобы спрятаться за имя, как suuupergeeek или coolGuy3 становится слишком низкой для меня беспокоят попытки.

Почему бы вам не сделать свой сайт выглядят современно?

Я “содержимое провайдер« не веб-сайт дизайнера. Я могу использовать свое время, чтобы улучшить содержание и внешний вид, но не одновременно.

То, что выглядит “круто и современной” кому-то часто считается дурным вкусом кем-то другим, а мода быстро меняться. Кроме того, очень простой HTML загружает и отображает быстрее, чем все остальное, и многие люди все еще страдают от медленных соединениях Интернета.

Является ли “Бьерн” самозванцем?

Наверное, нет. Большинство групп новостей, интервью и т.д., которые приходят от меня приходят от меня. Очевидным исключением является печально известный IEEE «интервью», который я нахожу довольно несмешной. Я, как известно, для отправки сообщений в группы новостей от моего аккаунта Gmail, где мой пользовательский идентификатор “Бьерн”, как-то, который, кажется, смущает некоторых людей. Если вы сомневаетесь, подумайте стиль и содержание подозреваемого сообщение, проверьте другие сообщения в форуме, или спросить.

Что же такого хорошего в классы?

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

Класс представления идеи, концепции, в коде. Объект класса представляет конкретный пример идеи в коде. Без классов, читатель кода бы догадаться об отношениях между элементами данных и функции – классы делают таких отношений явных и “понял” компилятора. С классов, более высокого уровня, структуры вашей программы, представленные в коде, а не только в комментариях.

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

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

При проектировании класса, часто бывает полезно рассмотреть, что это верно для каждого объекта класса и во все времена. Такое свойство называется инвариантной. Например, инвариантов вектора может быть, что его представление состоит из указателя на число элементов и, что количество элементов хранится в целое число. Это работа каждого конструктора для создания класса инвариант, таким образом, чтобы каждый член функция может полагаться на него. Каждый член функция должна оставлять инвариантной силу с момента выхода. Такое мышление особенно полезно для классов, которые управляют ресурсами, таких как замки, розетки и другие файлы. Например, класс дескриптор файла будет инвариантной, что он содержит указатель на открытый файл. Конструктор дескриптор файла открывает файл. Деструктор свободных ресурсов, приобретенных конструкторов. Например, деструктор дескриптор файла закрывает файл, открытый в конструкторе:

Если вы еще не запрограммированы с классами, Вы найдете части этого объяснения непонятных и вы будете недооценивать полезность классов. Посмотрите на примеры. Как и все хорошие учебники, TC + + PLмае множество примеров, см., например, Тур стандартной библиотеки. Большинство современных C + + библиотеки состоят (кроме всего прочего) классов и библиотек учебник является одним из лучших мест, чтобы найти примеры полезных классов.

Что такое “ООП” и что это так здорово по этому поводу?

Есть много определений “объектно-ориентированным”, “объектно-ориентированное программирование” и “объектно-ориентированных языков программирования”. Для долгие объяснения того, что я называю “объектно-ориентированным”, читайте Почему C + + не только объектно-ориентированный язык программирования. Тем не менее, объектно-ориентированного программирования является стиль программирования, происходящих из Simula (около 40 лет назад!), Опираясь инкапсуляции, наследования и полиморфизма. В контексте C + + (и многих других языках с их корнями в Simula), это означает, программирование с использованием иерархии классов и виртуальных функций, которые позволяют манипуляции объектами различных типов через четко определенные интерфейсы и позволяют программе быть продлен постепенно через вывод.

Смотрите Что хорошего о классах? за идею о том, что большое о “простых классов”. Дело об организации классов в иерархии классов заключается в выражении иерархические отношения между классами и использовать эти отношения для упрощения кода.

Чтобы действительно понять ООП, искать какие-то примеры. Например, у вас может быть две (или более) драйверов устройств с общим интерфейсом:
Этот драйвер просто интерфейс. Она определяется без вести членов и множество чистых виртуальных функций. Драйвер может быть использована через этот интерфейс и много разных видов водители могут реализовывать этот интерфейс:

Обратите внимание, что эти драйверы хранения данных (государственной) и объектов, из них не может быть создан. Они реализуют функции, определенные в драйвер. Мы можем представить себе используемого драйвера вроде этого:

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

Заметим, что при F () использует драйвер правильный вид операции неявно выбран во время выполнения. Например, если F () передается d1, d.read () использует Driver1: читать (), в то время, когда F () передается d2, d.read () использует Driver2: читать (). Это иногда называют время отправки или динамической диспетчеризации. В этом случае нет никакой возможности, что F () мог знать тип устройства она называется, потому что мы выбирают ее, основываясь на входе.

Пожалуйста, обратите внимание, что объектно-ориентированное программирование не является панацеей. “ООП” означает не просто “хорошо” – если Есть нет свойственного иерархические связи между основными понятиями в вашей проблемы, то никакое количество иерархии и виртуальных функций улучшить ваш код. Сила ООП, что Есть много проблем, которые могут быть с пользой выражается с помощью иерархии классов – главная слабость ООП является то, что слишком много людей пытаются заставить слишком много проблем в иерархической форме. Не каждая программа должна быть объектно-ориентированным. В качестве альтернативы, рассмотрим простой классов, обобщенного программирования, и свободно стоящие функции (как в математике, С и Fortran).

Что такое “родовое программирование”, а что хорошего в этом?

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

Эти примеры взяты из STL (контейнеры и алгоритмы часть ISO C + + стандартная библиотека), для краткого введения, см. Тур стандартной библиятэкиад TC + + PL.

Обобщенное программирование является в определенном смысле более гибкие, чем объектно-ориентированного программирования. В частности, он не зависит от иерархии. Например, нет иерархических отношений между Int и строки. Обобщенное программирование как правило, более структурированы, чем ООП, на самом деле, общий термин, используемый для описания обобщенного программирования является “параметрический полиморфизм”, с “Специальная полиморфизм” быть соответствующий срок для объектно-ориентированного программирования. В контексте C + +, обобщенное программирование решает все имена на этапе компиляции, оно не связано с динамической (во время выполнения) отправки. Это привело обобщенного программирования, чтобы стать доминирующим в районах, где во время выполнения имеет важное значение.

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

Почему C + + позволяет опасного кода?

То есть, почему C + +, поддержка операций, которые могут быть использованы для нарушают правила статической (во время компиляции) типа безопасности?

для доступа к аппаратным непосредственно (например, для лечения целого как указатель на (адрес) устройства регистре)
для достижения оптимального выполнения времени и пространстве показателей (например, бесконтрольный доступ к элементам массива и доступ неотмеченным, чтобы объект через указатель)
для обеспечения совместимости с C

Тем не менее, это хорошая идея, чтобы избежать опасного кода, как от чумы, если вы на самом деле не нужна одна из этих трех функций:

не использовать приведения
хранить массивы из интерфейсов (скрыть их в внутренностей высокопроизводительных функций и классов, где они необходимы и писать остальной части программы с помощью надлежащей строки, векторы и т.д.)
избежать недействительным * (держать их внутри функции низкого уровня и структуры данных, если они вам действительно нужны и этого типизированных интерфейсами, как правило, шаблоны, для пользователей)
избегать союзов
если у вас есть какие-либо сомнения по поводу правильности указателей, использование смарт-указатель, вместо этого,
не использовать “голый” новости и удаляет (использование контейнеров, ресурс ручки и т.д., вместо этого)
не используйте … – стиль переменным числом функций (“Printf стиля”)
Избегайте макрасавexcpt для охранников включают

Почти все C + + кода могут следовать этим простым правилам. Пожалуйста, не смущает тот факт, что вы не можете следовать этим правилам, если вы пишете код C или C-код в стиле C + +.

Что такое лучшая книга учиться C + + с?

Существует не одна книга, которая лучше всего подходит для каждого человека. Там не могло быть. Люди слишком разные, в том, как они учатся, в том, что они уже знают, в чем они нуждаются, в том, что они хотят, и в которой усилия, которые они готовы сделать. Есть немало замечательных книг по С + +. Посмотрите Акку (Ассоциации C и C + + пользователей) сайта. Это одно из лучших мест для книжных рекомендаций опытных программистов, которые не боятся выражать свои мысли (книготорговцев, как правило, дают розовые обзоры и отзывы в форме “Эта книга является совершенным, я люблю его, я прочитал почти трех главах и не могу ждать, чтобы узнать больше “хуже, чем бесполезно – почему кто-то за советом о том, как научиться C + + от того, кто совершенно не хватает C + +, опыт бьет меня). ACCU ставки книг для уровня опыта требуется, и общее качество.

Для людей, которые не запрограммирован до или приходят из другого языка и хотят относительно пологий введение в современном C + +, рассмотрим Программирование: принципы и практика использования C + +. Это книга, которую я написал для начинающих (первый год студенты) программирования класса и он выиграл от трех лет использования в классе.

Для людей, которые программисты и желает, чтобы узнать новые концепции и приемы из классического учебника, я рекомендую, C + + Programming Language (3-е издание). Гл. заметку о структуре, содержанию и целям “C + + Programming Language (3-е издание)” Книга предназначена для программистов с некоторым опытом и хотите освоить C + +. Она не направлена на не-программистов, пытаясь узнать их первый язык программирования или случайного программисты пытаются получить поверхностное представление о C + + как можно быстрее. Таким образом, эта книга посвящена концепции и методы, и выходить на который боли быть полными и точными. В нем описывается “чистый С + +”, то есть язык, независимо от какой-либо среде разработки программного обеспечения или фонд библиотеки (кроме стандартной библиотеки, конечно).

Если вы хотите знать, почему C + +, так оно и есть, посмотрите на Дизайн и эволюция C + + (D & E). Понимание проектных критериев и ограничений помогает лучше письменно программ.

Сколько времени нужно для того, чтобы узнать C + +?

Это зависит от того, что вы подразумеваете под “обучения”. Если вы программист C вы можете узнать достаточно, C + +, чтобы сделать вас более эффективными в C-стиле программирования в день.

На TAMU, мы используем Программирование: принципы и практика использования C + +, чтобы получить первокурсников (1-й курс) по основам C + + и методы программирования он поддерживает (в частности, объектно-ориентированное праграмаваннеи обобщенное программирование) в семестр.

С другой стороны, если вы хотите быть полностью удовлетворяет все основные C + + языковые конструкции, из абстракции данных, объектно-ориентированное программирование, обобщенное программирование, объектно-ориентированного дизайна и т.д., вы можете легко потратить год или два – если Вы еще не знакомы с теми методами (скажем, от Java или C #).

Это то время, которое требуется, чтобы узнать C + +? Может быть, но опять же, то есть сроки, мы должны рассмотреть, чтобы стать лучше дизайнерами и программистами. Если драматические изменения, как мы работаем и думаем о построении систем не является нашей целью, то зачем изучать новый язык? По сравнению с Время, необходимое, чтобы научиться играть на фортепиано или стать свободно говорит на иностранных (естественного) языка, обучение новых и различных языков программирования и программирования стиль легко.

Для большего количества наблюдений об изучении C + + см. D & Eабо записку от comp.lang.c + +, который я написал некоторое время назад.

Зная С является необходимым условием для обучения C + +, не так ли?

Неправильно. Общий набор С и С + + легче учиться, чем С. Там будет меньше ошибок типов поймать вручную (C + + тип системы является более жестким и более четким), меньшее количество трюков, чтобы узнать (C + + позволяет вам проявлять больше вещей, без обиняков ), а лучше библиотек. Лучшее начальное подмножество C + +, чтобы узнать, не “все С”.

Смотрите обучения Standard C + + как нового языка для обсуждения выбор C + + конструкций, методов и библиотек для обучения в раннем возрасте. Для примера книг, которые принимает этот подход систематически гл. Страуструпа: Программирование: принципы и практика использования C + + и Koenig & Му: “Ускоренное C + +” от Addison Wesley в C + + In Depthсерыи.

Если я узнаю, чистый язык ОО к C + +, чтобы стать настоящим программистом OO?

Число обучения что-то новое почти всегда хорошая идея. Тем не менее, каждый язык отличается и имеет свой? Собственный стиль и особенности. Код, написанный в некоторых якобы “чистой” ОО стиле по образцу некоторых других языков (и все причуды) часто неоптимальной и разочарование, когда слишком буквально транскрибируется в C + +. Кроме того, “письменная форма толькичыстыя объектно-ориентированный код” не является одним из моих идеалов, см. мою OOPSLA основном Почему C + + не только объектно-ориентированного языка программирования. Если вы хотите стать хорошим C + + программист И не несколько месяцев, чтобы сэкономить, сосредоточиться на C + + и концепций она воплощает.

Как мне начать изучать C + +?

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

Вам понадобится учебник для обучения C + +. Это тот случай, даже если ваша реализация идет с достаточным он-лайн документации. Причина в том, что язык и библиотеку документации вместе с примерами кода не являющихся хорошими учителями понятий. Как правило, такие источники молчат о том, почему все так, как они есть, и какие преимущества вы можете ожидать (и вы не должны ожидать) с техникой. Сосредоточьтесь на концепции и методы, не языка технические детали.

Выбирая книгу, посмотрите на один, который представляет Standard C + + и использовать стандартные средства библиотеки на основе комплексного подхода с самого начала. Например, читая строки из входного должен выглядеть примерно так
Ищите книги рекомендации от программистов с твердыми C + + опыт.

Я рекомендую Программирование: принципы и практика использования C + +, но помните, что никто не книга лучше для всех. Обратите внимание на рецензии на Акку (Ассоциации C и C + + пользователей) сайта.

Цель писать идиоматических C + +: избегайте просто писать код в стиле вашего предыдущего язык с помощью C + + синтаксис, мало что можно получить от простого изменения синтаксиса.

Будете ли вы помочь мне с моей домашней работы?

Нет. Извините. Я не делаю (чужих) домашнее задание. Я получаю слишком много запросов о помощи в выполнении домашних заданий и помощь в поиске ошибок в студенческих программ, которые будут в состоянии найти время. Во всяком случае, имея дальний эксперт исправить ваши программы не самый лучший способ учиться. Попробуйте найти местный житель с C + +, опыт, который вы можете обратиться за советом. Хороший учитель лучше всего помочь студенту может быть, может быть, именно поэтому они не так легко найти.

Кроме того, нет, я не предлагаю “хороший проект для студентов для работы на”. Мой опыт показывает, что учиться достаточно об студент и его / ее курс, чтобы знать, что уровень сложности требуется и какой проект представляет интерес занимает много времени. Думать о хорошем проекте, то нетривиальное, и объяснить, что именно проект и как подойти к нему может занять несколько сообщений и несколько часов. Я просто не имеют, что такое время. Помните, что эти запросы приходят по крайней мере раз в неделю. Наконец, некоторые студенты, похоже, идея, что если я предлагаю проект, я морально обязан предоставить достаточно подробную справку по его завершении.

Идеи: Посмотрите на учениях в МС + + PL3 или другие хорошие учебники. Многие из тех, упражнения предназначены для держать студент занят в течение нескольких дней, и читать эти упражнения могут вдохновить предприимчивый студент к так-то подобное. Или посмотрите на не-компьютерных наук частью вашего мира: Может быть, биологии проект мог бы использовать для поддержки нового устройства измерения или другом изучения истории могли бы использовать улучшенный интерфейс базы данных. Многие из лучших проектов и лучшее использование компьютеров находятся за пределами традиционных компьютерных наук.

См. также мою C + + стиль и методы FAQ. Реальная начинающих, стоящих перед их первым “читаем немного данных, сделать что-то к нему, и производить какие-либо данные” упражнения могут быть заинтересованы в очень простая программа или программа чтения строки из входной.

Где я могу получить бесплатный компилятор С + +?

Из многих местах, см. мой C + + компиляторов список.

Вы швед?

Нет, я датчанин. Посмотрите мою биографию.

Какой самый лучший способ улучшить свой C + + программы?

Я не могу сказать. Это зависит от того, как вы его используете. Большинство людей недооценивают абстрактных классов и шаблонов. И наоборот, большинство людей, серьезно ставит под чрезмерным и макросов. Обратите внимание на одну из моих работабо книгидля идей. Один из способов мышления абстрактных классов и шаблонов в качестве интерфейсов, которые позволяют более чистым и логического представления услуг, чем это легко обеспечить с помощью функций или отдельные укоренившиеся иерархии классов. Гл. мой стиль и методы FAQдля некоторых конкретных примеров и идей.

Имеет ли значение, какой язык программирования я могу использовать?

Да, но не ждите чудес. Некоторые люди полагают, что язык программирования может или, по крайней мере, должны решить большинство своих проблем с системой здания. Они обречены на поиск вечно совершенным языком программирования и стать неоднократно оказывались обманутыми. Другие уволить языков программирования как несущественные “детали реализации” и вкладывать деньги в развитие процессов и методов проектирования. Они обречены на программу в COBOL, C, и собственные языки дизайн навсегда. Хороший язык – таких, как C + + – может сделать многое для дизайнера и программиста, до тех пор, как ее сильные стороны и ограничения четко понимать и уважать.

Разве ANSI / ISO стандарты комитета испортить C + +?

Нет, они / мы сделали хорошую работу. Вы можете спорить с деталями (и я, иногда громко), но я счастлив с языком и новой стандартной библиотеки. ISO C + + является лучшим и более последовательный язык, чем более ранние версии C + +. Вы можете написать гораздо более изысканным и удобным C + + программ сегодня, чем это было возможно, если стандарты запуска процесса. Новый стандарт библиотека также настоящей находкой. Предоставление строки, списки, векторы, карты и базовые алгоритмы для таких основных типов делает основное различие с тем, как можно подойти C + +. Смотрите библиотеке главы C + + Programming Language (3-е издание) (Часть 3: Тур стандартной библиотеки доступны в электронном виде) или один из моих последних работ.

C + +0 хбуде еще лучше.

Если у нас будет стандарте С + +?

У нас одна! Окончательное техническое состоялось голосование 14 ноября 1997 года около 10:30 утра. См. пресс-релиз от ISO C + + стандарты комитета. После технической голоса, стандартные была ратифицирована в 1998 году 22-0 всенародным голосованием. Стандарт ISO / IEC 14882. Незначительных пересмотр был издан в 2004 году, гл. мой C + + страницы.

Это язык и стандартные библиотеки описаны в C + + Programming Language (3-е издание). C + + компилятор и библиотеки поставщики уже поставляет реализации, которые очень близки к проекту стандарта.

Первый проект следующий стандарт C + +0 х, находится в публичного рассмотрения и окончательного голосования, как ожидается, в 2010 году.

Где я могу получить машиночитаемую версию стандарта?

C + + стандарт (ISO / IEC 14882) доступен для скачивания на ANSI электронный магазин. Поиск по “14882″, найти “INCITS / ISO / IEC 14882-2003 Языки программирования – C + +” стоимость (если я пишу это) US $ 30,00 задолженности он-лайн с помощью кредитной карты. Скачать документ в формате PDF формы, около 3Mb общий размер.

Проект стандарта, как это было в более поздних стадиях процесса стандартавможна скачать бесплатно.

Заметим, что стандарт не учебник, и даже эксперт программисты сделают лучше узнать C + + и нового C + + функции из учебника.

Смотрите мой C + +0 х FAQдля ссылки на C + +0 х материал.

Есть ли какие-либо функции вы хотите удалить из C + +?

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

Большинство возможностей я не люблю с языка зрения проектирования (например, синтаксис и описатель массива распад) являются частью подмножество С С + + и не могут быть удалены без нанесения вреда программистов, работающих в реальных условиях. C + + из C совместимость ключевых дизайнерское решение языке, а не маркетинговый трюк. Совместимость было трудно достичь и поддерживать, но реальную пользу реальным программистом привел, и до сих пор результат сегодня. К настоящему времени, C + + имеет особенности, которые позволяют программистам воздержаться от использования наиболее проблемных С особенностями. Например, стандартные контейнеры библиотеки, такие как вектор, список, карта, и строка может быть использована, чтобы избежать наиболее сложных низкоуровневых указатель манипуляции.

В чем разница между C + 98 и 03 C +?

С зрения программиста нет ни одного. C + 03 пересмотр стандарта релизе исправлена ошибка для исполнителей для обеспечения большей последовательности и портативность. В частности, учебник и справочные материалы, описывающие C + 98 и 03 C + может использоваться как взаимозаменяемые всеми, кроме компиляторов и стандартов гуру.

Лично я стараюсь не использовать термин “C + 03″, потому что это легко спутать с “C + +0 х” и может сложиться впечатление, что C + 98 устарела.
Что будет C + +0 х выглядеть?
Гл. мой C + +0 х FAQ. Цель состоит в “х” в C + +0 х, чтобы стать ’9 ‘: C + 09, не (скажем) C + +0 ха (шестнадцатеричный :-) .

Обратите внимание, что язык С + + будет оставаться стабильной, поскольку совместимость всегда вызывает серьезную обеспокоенность. Комитет старается не нарушать ваши (стандартный соответствующий код).

Я кратко представил некоторые из моих идей на панели в SD2001w и в немного более подробно в докладе на конференции весной 2002 ACCU. Смотрите также правила для дизайна С + +0 х и других недавних работ на моей странице публикаций. Для более полного списка предложений гл. WG21 сайта.

Если у нас будет новый ARM?

Эллис и Страуструпа: Аннотированный C + + Reference Manualгутарковай известной как “Взвод” был написан в 1989 году и послужил базой для C + + усилий стандартам. Это уже довольно старые и не описывает Standard C + +.

По целому ряду причин, плановой замены (“ARM + +”), который описывает стандарт ISO C + + и не была написана. Как работать на C + +0 х сейчас идет, это слишком поздно для ARM + + на основе ISO C + + 1998. Мне кажется, что я не найду время, чтобы написать новый ARM. 4-е издание TC + + PL и 2-е издание Программирование: принципы и практика использования C + +, чтобы соответствовать C + +0 х (если C + +0 х стала доминирующей C + +), вероятно, будут более важными.

Если вы будете публиковать 4-е издание “C + + Язык программирования”?

Не скоро. Определение C + + и фундаментальные методы, которые он поддерживает, вряд ли существенно изменится к C + +0 х становится доминирующей. Когда я пишу, я ставлю целью для длинных “срок годности” и ISO C + + стандартная обеспечивает основную стабильность. В этом контексте важно, что C + + Programming Language (3-е издание) описывает стандарт C + +, стандартной библиотеке, и методы, которые они поддерживают, а не конкретной реализации и некоторые собственные библиотеки. Что находится в Текущий ISO C + + стандартная и описано в моей третьей Издание, остаются в силе C + + для долгие годы – даже после пересмотренного стандарта является.

Удивительно, немецкий перевод “Special Edition” называется 4-е издание.

Стоит ли покупать “Special Edition” с “C + + Язык программирования”?

Конечно! Купить рано и часто :-)

Если серьезно, разница между текущим тиражи специальные издания и 3-е издание просто твердом переплете (и разница в цене имеется в виду, что более сильные обложки).

Если бы я был? C + + программист, который не читал C + + Programming Language (3-е издание), я бы покупать и читать или 3-е издание или специальное издание. Если бы я использовал мои учебники и ссылки трудно, я бы выбрал твердом переплете. Крышка на третий лучший мягкой обложке доступна, но она не равна твердой обложке специального издания.

Когда у меня уже было 3-е издание, я бы купил SE, если мой действующий экземпляр был изнашивание или если копия была ранней печати (третий в настоящее время около 30 печатных изданий и ГП около 20).

По сравнению с первым печати, специальные издания и последние тиражи имеют 3-е издание 1000 + исправления и уточнения. В тяжелых C + + пользователю, я считаю, что значительным. Есть также два новых приложения (чуть более 100 страниц и доступен для скачивания: Языки и стандартной библиотеки Надежное исключение).

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

SE также улучшение индекса.

В чем разница между “TC + + PL” и “Программирование” книги?

C + + Язык программирования в первую очередь написана для опытных программистов, кто хочет изучить C + +. Это стиль, который профессионального книги. программирование – принципы и практика использования C + +, в первую очередь написана для тех, кто хочет научиться программированию с использованием C + +. Он может быть использован / читают люди, которые не имеют или только слабый фон программирования, а также люди, которые хотят узнать современные методы программирования, таких, как объектно-ориентированное программирование и обобщенное программирование, так как поддерживается C + +. Это стиль, что в тексте книги.

Где я могу найти свободный машиночитаемый копии ваших книг?

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

Addison-Wesley предлагает электронную версию через Safari онлайн богослужебных книгах

Какой компилятор С + + вы рекомендуете? Какие библиотеки?

Я не рекомендую. Было бы не справедливо. Однако, не получить последние версии. Естественно, что новые версии компиляторов примерный стандарт ИСО гораздо ближе, чем компиляторы от несколько лет назад.

За неполный перечень C + + реализации, гл. мой C + + компиляторов список.

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

Является Java язык, который разработали, если Вы не должны быть совместимы с C?

Количество Java не является даже близко. Когда люди настаивают на сравнении C + + и Java – как они, кажется, делают – я предлагаю им читать Дизайн и эволюция C + + (D & E), чтобы понять, почему C + +, так оно и есть, и рассмотреть оба языка в свете критериев проектирования я набор для C + +. Эти критерии, очевидно, будет отличаться от критериев Java команда Sun. Несмотря на сходство синтаксических, C + + и Java очень разных языках. Во многих отношениях, Java кажется ближе к Smalltalk, чем C + +.

Большая часть относительная простота Java – как и для большинства новых языков – отчасти иллюзия, а частично в зависимости от его неполноту. Чем больше проходит времени, Java будет расти значительно в размерах и сложности. Это будет двойной или тройной размер и рост зависит от реализации расширений и библиотек. Вот так каждый коммерчески успешных языка разработал. Достаточно взглянуть на любой язык вы считаете успешными на больших масштабах. Я не знаю ни одного исключения, и Есть веские причины для этого явления. [Я написал эту до 2000 года, теперь видеть предварительный просмотр Java 01/05.]

Я прокомментировал (отрицательно) о шумиха Java и приписывается большая часть успеха Java на маркетинг. Например, см. мою HOPL-3 бумаги. Сегодня (2010), утверждений о Java больше реальности основаны и меньше безвозмездно уничижительный об альтернативах. Это не всегда так. Например, сравнить оригинальную 1995 Java-белая бумага с версии вы найдете на веб-сайте (иногда с надписью “оригинальные официальный документ Java”); стр. 69 будет хорошим местом для начала.

Java не зависит от платформы, это платформа. Как и в Windows, это собственные коммерческие платформы. То есть, вы можете писать программы для Windows / Intel или Java / JVM, и в каждом случае вы пишете код для платформы принадлежат одной корпорации и оптимальной для коммерческой выгоды от этой корпорации. Было отмечено, что вы можете писать программы на любом языке, для виртуальной машины Java и связанные с операционными системами объектов. Тем не менее, виртуальная машина Java, и т.д., которые сильно смещены в пользу Java. Это далеко не будучи общим разумно языка В. М. / OS.

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

Что вы думаете о C #?

У меня нет комментариев по C # в качестве языка. Это займет много, чтобы убедить меня, что мир нуждается в еще один собственный язык. Это будет особенно трудно убедить меня, что он нуждается язык, который тесно интегрирован с конкретными собственная операционная система.

. Если вы хотите написать исключительно для Чистая платформы, C # это не самый худший альтернатива, но помните, что С + + является полностью поддерживает – хотя и менее сильно раздутыми – альтернатива для этой платформы.

Что вы думаете о C + + / CLI?

C + + / CLI представляет собой набор расширений к ISO C + +, которая обеспечивает чрезвычайно полный “привязка” С + + CLI Microsoft (общеязыковая инфраструктура). Он был стандартизированные ECMA (ECMA-372). Я рад, что он делает все возможности CLI легко добраться из С + + и рады, что С + + / CLI это гораздо лучше, языка, чем его предшественник “Managed C + +”. Тем не менее, я менее счастлив, что C + + / CLI достигает своих целей, существенно увеличивая C + + с отдельной функции языка для каждой функции интерфейса командной строки (интерфейсы, свойства, шаблоны, указатели, наследование, перечисленными, и многое, многое другое) . Это будет основным источником путаницы (что бы кто-нибудь делает или говорит). Множество новых объектов языка C + + / CLI по сравнению с стандартом ISO C + + программистов попытки писать невыносимыми код, который (часто незримо) стали тесно связаны с Microsoft Windows.

CLI предоставляет набор интерфейсов (в системе объектов), которые сильно отличаются от традиционных интерфейсов операционной системы средств и приложений. В частности, эти интерфейсы имеют семантику, которая не может быть полностью или удобно выразить в обычных языках программирования. Один из способов описания CLI так же (частично) “платформы” или “виртуальной машины”. Она состоит из большого набора функций языка (наследование, методы, петля конструкций, механизмов обратного вызова и т.д.), поддержка большого набора библиотек основания (BCL), а также продуманная система метаданных. CLI иногда описывается как “язык нейтральный”. Тем не менее, язык, не принимающего большое подмножество из этих объектов не может использовать даже Basic. NET объектов (или будущей ОС Microsoft Windows средств, полагая, что планы Microsoft не меняются) и язык, который не может выразить Всеэти функции не могут быть используется для реализации ресурсов означает, которыми могут пользоваться другие языки. Таким образом, CLI является “нейтральным языком” только в том смысле, что каждый язык должен поддерживать все CLI функций, которые будут “первоклассных” на. Net.

Я предпочитаю обязательное для выполнения нескольких примитивов, представить в виде простых вызовов функций и простые структуры данных на любом языке, возможно, инкапсулированные в определенном языке библиотек. Для CLI, это может в лучшем случае будет сделано для потребителей объектов CLI только. Язык, используемый для производства CLI модули должны быть в состоянии выразить все объекты CLI, включая метаданные. Только язык, который может сделать это можно считать языковых систем программирования на. Net. Таким образом, Microsoft C + + Группа пришла к выводу, что только встроенный язык объектов, приемлемых для своих клиентов. Их дизайн отражает мнение, что принимает абсолютно никаких ограничений на то, что часть CLI может быть выражено в C + + с C + + / CLI расширений, абсолютно никакого многословие сравнению с другими языками при использовании CLI объектов, а также абсолютно никаких накладных расходов по сравнению с другими языками. Они направлены на сохранение C + + в качестве доминирующего языка системы программирования для Windows.

Как всегда, я ставлю акцент на партатывнасцьи рекомендовать людям для разработки приложений, так что доступ к системе конкретных объектов через четко определенные интерфейсы, указанные в ISO C + + (например, не использовать C + + / CLI напрямую). В Windows, это иногда может быть неудобно по сравнению с использованием C + + / CLI объекты напрямую, но это единственный способ получить мобильность и степень независимости от производителя. Очевидно, что оружие длиной подход к CLI не может быть обеспечена, если цель кусок кода является предоставление CLI интерфейс для потребления другим кодом. Обратите внимание, что я признаю необходимость системно-ориентированных расширений и, что Microsoft не только C + + поставщика с такими расширениями, я просто сильно предпочитают иметь дело с такими расширениями через “тонкие интерфейс”, указанный в стандарте ИСО C + +.

Как работать с системой специфических расширений по своей сути сложный вопрос. Microsoft C + + команды, особенно Херб Саттер, сохранила активный диалог с (другими) членов ISO C + + стандарты комитета таким образом, чтобы отношения между ISO C + + и расширенный C + + / CLI в конечном счете будет разработана. У нас есть длинный послужной конструктивной совместной работы в ISO C + + комитета. Кроме того, для минимизации путаницы между ISO C + + и C + + / CLI расширений, Microsoft в настоящее время пересматривают свои Visual C + + документации, чтобы попытаться четко различать C + + / CLI с ISO C + + (простой неквалифицированный C + + означает, ISO C + +). Я надеюсь, что другие будут следовать, что свинец.

На сложным и противоречивым вопросом о том, что CLI обязательными / расширений для C + + будет называться, я предпочитаю C + + / CLI, как сокращение для “расширения интерфейса командной строки ISO C + +”. Хранение C + + как часть названия напоминает людям, что является базовым языком и поможет сохранить C + + собственное подмножество C + + с C + + / CLI расширений. C / C + + проблемы совместимости показать, как важно сохранить это подмножество собственности.

Вот некоторые документы, связанные с C + + / CLI:

ECMA C + + / CLI стандартные.
Великобритания ISO C + + возражение панели (в том числе несколько примеров кода).
ECMA в ответ на Великобританию (и других) возражения
Дизайн Херб Саттер обоснование C + + / CLI

Почему вы так заинтересованы в мобильности?

Успешная программа долгоживущих; жизни охватывает десятилетия не редкость. Хорошее приложение / программа часто переживает аппаратное он был разработан для операционной системы она была написана для, система базы данных она изначально использовалась, и т.д. Часто, хороший кусок программного обеспечения переживет компаний, которые поставляли основные технологии, используемые для создания его.

Часто успешная программа приложения / у клиентов / пользователей, которые предпочитают разнообразие платформ. Набор желательно платформ изменения как изменения количества пользователей. Будучи привязаны к одной платформе или одного поставщика, ограничивает применение / программа “Потенциал использования.

Очевидно, что полная независимость от платформы несовместима с возможностью использовать все платформы конкретных объектов. Тем не менее, часто можно приблизительный независимость платформы для приложений путем доступа платформы средства через “тонкие интерфейс”, представляющая зрения приложения его окружающей среды, как библиотека.

Вы действительно рекомендую Ада над C + + для больших проектов?

Нет, я понятия не имею, кто начал этот слух, но оно должно быть чрезмерно увлечен или вредоносные Ада преданным.

Вы бы сравнить C + + для “какого-либо языка”?

Нет, извините, я не буду. Вы можете найти причину в вводный ноты Дизайн и эволюция C + +:

“Некоторые рецензенты попросил меня сравнить C + + с другими языками Это я решил не делать Итак, я вновь подтвердил давнее и твердое убеждение: … Язык сравнения редко значимых и еще реже справедливой хорошее сравнение основных программирования языков требует больше усилий, чем большинство людей готовы потратить, опыт работы в широком диапазоне областей применения, жесткая поддержание отдельных и беспристрастный взгляд, и чувство справедливости. У меня нет времени, и как дизайнер С + +, моя беспристрастность никогда не будет в полной мере заслуживает доверия.

Я также беспокоиться о явлении я неоднократно наблюдал в честной попытки языком сравнений. Авторы стремятся быть беспристрастным, но безнадежно предвзятым, сосредоточив внимание на одно приложение, единый стиль программирования, или одной культуры среди программистов. Хуже, когда на одном языке, гораздо более известный, чем другие, тонкое изменение в перспективе происходит: Недоработки известного языка считаются незначительными и простые решения представлены, тогда как аналогичные дефекты на других языках, которые считаются основополагающими. Часто, обходные пути, обычно используются в менее известных языков просто неизвестных людей, которые делают сравнения или считается неудовлетворительным, поскольку они будут неработоспособным в более знакомом языке.

Кроме того, информацию о хорошо известном языке, как правило, полностью соответствующий современным требованиям, а для менее известных языков, авторы опираются на несколько лет информацию. Для языков, которые следует сравнение, сравнение языка X, как это определено три года назад по сравнению с языка Y, как он появляется в последней экспериментальная реализация не является ни справедливым, ни информативным. Таким образом, я установить ограничения на комментарии о других языках, кроме C + + для обобщений и очень конкретных замечаний “.

Тем не менее, я считаю, C + + лучший выбор языка программирования для широкого круга людей и приложений.

Другие делают сравнить их языков C + +, разве это не раздражают?

Он делает, когда это делается некомпетентно или для получения коммерческой выгоды. Наиболее широко распространены сравнения, как правило, написаны сторонниками какого-либо языка, Z, чтобы доказать, что Z лучше, что и другие языки. Учитывая его широкое применение, C + + часто первое место в списке языков, на которых сторонники Z хочет доказать, уступает. Часто такие документы “, опубликованной” или распространяться компания, которая продает Z как часть маркетинговой кампании. Удивительно, но многие, кажется, принимаете бумаги нерассмотренных написано людей, которые работают на компанию, продающую Z “доказать”, что Z лучше серьезно. Одной из проблем является то, что всегда Есть доля правды в таких сравнений. В конце концов, ни один язык лучше, чем любой другой всеми возможными способами. C + +, конечно, не идеальная, но селективного истина может быть наиболее привлекательным, а иногда и полностью ввести в заблуждение.

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

Вы не будете сравнивать C + + для других языков, но вы пишете обличительный речи о C + +?

Я не пишу обличительный речи (это враждебная характеристика какой-либо текст), но я считаю это разумным – возможно, даже обязанность – для тех, кто назначен языком объяснить свои достоинства и защищать ее от вражеских характеристики. Смотрите список моих публикаций. В paticular гл. в моей обширной и рецензирование документов для истории ACM по программированию конференции:

Б. Страуструп: История C + +: 1979-1991. ACM HOPL-II. 1993 год.
Б. Страуструп: Эволюция языка в себе и для реального мира: C + + 1991-2006 гг. ACM HOPL-III. 2007 год.

Часто я также отметить ограниченность C + + и основных положений дизайн C + + (см., например, D & E).

C лучше, чем С + + для небольших проектов, не так?

Не по моему мнению. Я никогда не видел проект, для которого C была лучше, чем C + + по любой причине, но отсутствие хорошего компилятора Си + +.

Является ли C подмножество C + +?

В строгом математическом смысле, то С не является подмножеством C + +. Есть программы, которые действительны С, но не действует C + + и даже несколько способов написания кода, который имеет другое значение в С и С + +. Тем не менее, C + + поддерживает каждый технология программирования поддерживается C. Каждая программа C может быть записано в основном таким же образом в C + + с тем же во время выполнения и экономии пространства. Это не редкость, чтобы иметь возможность конвертировать десятки тысяч строк ANSI C до C-стиле C + + в течение нескольких часов. Таким образом, C + + в такой же степени расширением ANSI C, как ANSI C является подмножеством K & RC и сколько ISO C + + является расширением C + +, как она существовала в 1985 году.

Хорошо написанные C, как правило, С + + и. Например, каждый пример в Кернигана и Ричи: “Язык программирования C (второе издание)” также C + + программы.

Вызов необъявленная функция бедных стиль в С и незаконным в C + +. Так передачи аргументов в функцию, используя заявление, что не список аргументов типа:

В C, пустота * можно неявно преобразовать в любой тип указателя, и свободно-магазине распределения, как правило, делается с помощью Танос (), которая не имеет возможности проверить, если “достаточно” памяти предлагается:

Обратите внимание на возможную ошибку выравнивание вызванных неявное преобразование пустота * для Int *. Смотрите C + + альтернатива пустота * и Танос ().

При преобразовании из С в С + +, нужно учитывать, что C + + имеет несколько ключевых слов, чем C:

Int класса 2 = / * OK в С. Синтаксическая ошибка в C + + * / INT виртуальных = 3 ;/ * OK в С. Синтаксическая ошибка в C + + * /

За исключением нескольких примеров, таких, как те, показано выше (и подробно перечислены в стандарте С + + и в Приложении В C + + Programming Language (3rd Edition)), C + + является расширением С (Приложение B доступна для скачивания).

Обратите внимание, что “C” в пунктах выше относится к классическому C и C89. C + + НЕ потомкам C99, C + + и C99 являются братьями и сестрами. C99 представляет несколько возможностей роман для C / C + + несовместимости.

В чем разница между С и C + +?

С + + является прямым потомком C, что сохраняет почти все С как подмножество. C + + обеспечивает более надежную проверку типов, чем С и непосредственно поддерживает широкий диапазон стилей программирования, чем С. С + + является “лучшей С” в том смысле, что он поддерживает стили программирования осуществляется с помощью C с лучшей проверкой типов и более обозначений поддержки (без потери эффективности). В том же смысле, ANSI C является лучшей С, чем в K & R С. Кроме того, C + + поддерживает абстракцию данных, объектно-ориентированное программирование и обобщенное программирование (см. C + + Programming Language (3-е издание) ” ; Приложение В обсуждении проблемы совместимости доступен для скачивания).

Я никогда не видел программу, которая может быть выражена лучше в С, чем в C + + (и я не думаю, что такая программа могла бы существовать – каждый построить в С имеет явные C + + эквивалент). Тем не менее, существуют еще несколько сред, в которых поддержка C + + настолько слаба, что есть преимущество использования C вместо этого. Есть не все, что многие из тех, кто остался, хотя, гл. имею (неполный) список компиляторов.

Для обсуждения дизайна C + +, включая обсуждение его отношения с C видеть Дизайн и эволюция C + +.

Обратите внимание, что “C” в пунктах выше относится к классическому C и C89. C + + НЕ потомкам C99, C + + и C99 являются братьями и сестрами. C99 представляет несколько возможностей роман для C / C + + несовместимости. Вот описание различий между C + 98 и C99.

Вы действительно думаете, что С и С + +, могут быть объединены в единый язык?

Я думаю, что это было бы очень хорошо для C / C + + сообщество, если они были. То есть, если на C / C + + несовместимости систематически и полностью устранены, и что будущее развитие было организовано таким образом, чтобы предотвратить новые несовместимости с развивающихся. Независимо от того, что возможно, это другой вопрос.

Мой основной точкой является то, что текущий C / C + + несовместимость “несчастные случаи истории”, которые не имеют фундаментальных причин их (хотя все они “выглядели как хорошая идея, в то время” некоторым компетентным и благонамеренных человек). C / C + + несовместимости предоставлять никаких преимуществ в обществе в целом, вызывают серьезные проблемы для значительной части C / C + + сообщество, и мог, – с большим трудом – быть устранены.

Для гораздо более подробное изложение моих взглядов на C / C + + совместимость см. серию статей я писал об этом:

Б. Страуструп: C и C + +: анализ совместимости. C / C + + Журнал пользователя. Сентябрь 2002 года.
Б. Страуструп: C и C + +: чехол для совместимости. C / C + + Журнал пользователя. Августе 2002 года.
Б. Страуструп: C и C + +: Братья и сестры. C / C + + Журнал пользователя. Июля 2002 года.
Б. Страуструп: соперничество между детьми: C и C + +. AT & T Labs – Научно-исследовательский технический отчет. TD-54MQZY. Январь 2002 года.

Я полагаю, что если несовместимости были исключены (путем внесения изменений в С и С + +), все еще будет объекты, называемые C и C + +, но потом C действительно было бы определить как подмножество C + +.

Пожалуйста, обратите внимание, что эти работы были написаны в конце 2001 и начале 2002 года, когда еще можно было себе представить скоординированные действия C и C + + комитетов по стандартам ведущих к практическим результатам к концу десятилетия. Этого не произошло.

Почему вы сделали C + + (почти), совместимые с C?

Я хотела C + +, чтобы быть совместимым с полного языка с достаточной производительности и гибкости для даже самых требовательных систем программирования. Я совершенный ужас производства еще не еще один красивый язык с непреднамеренных ограничений. Гл. глава 02/07 Дизайн и эволюция C + + для исторических деталей и читать статьи в Неужели вы думаете …? для (ретроспективное) технические обсуждения C / C + + проблемы с совместимостью.

В то время я считал C лучших систем язык программирования доступны. Это было не так очевидно, то (1979) как впоследствии, но я должен был эксперты, такие как Деннис Ритчи, Стив Джонсон, Сэнди Фрэзер, Грэг Чессон, Дуг Макилрой, а Брайан Керниган по коридору, у которого я мог бы учиться и получить обратную связь. Без их помощи и совета, и без C, C + + была бы обречена на провал.

Вопреки слухам повторяться, я никогда не говорил, что я должен был использовать C, и я не был никогда не говорил, чтобы не использовать С. В самом деле, первый C + + руководство выросла с TROFF источник руководства С, что Деннис дал мне. Многие новые языки были разработаны в Bell Labs, в “Исследовании” по крайней мере, не было никаких правил сохранения язык фанатизма.

Что вы думаете о C / C + +?

Нет, это не совсем вопрос, который я часто получаю. В этом смысле, это только “поддельные FAQ” в этом FAQ. Тем не менее, она должна быть FAQ, потому что люди используют “C / C + +”, как если бы это означало что-то конкретное и как если бы они знали, что это значит, что приводит к много путаницы и страдания. Люди должны спросить: “Что такое C / C + +?” , А затем на отражение прекратить использование термина. Это вредит.

Существует не язык, называемый “C / C + +”. Фраза, как правило, используется людьми, которые не имеют понятия о программировании (например, сотрудников HR-менеджеров и бедными). Кроме того, он используется людьми, которые просто не знают, C + + (и зачастую не C либо). Если используется программистами, это обычно означает “С + + С с несколькими полезными и множество бесполезных функций, добавленных сложные” отношения. Часто, это точка зрения людей, которые любят писать свои собственные строки и хэш-таблиц с небольшим знанием стандартной библиотеки за Printf и тетсру. Есть люди, которые придерживаются ограниченного подмножества C + + для вполне веские причины, но они (насколько я заметил), а не люди, которые говорят “C / C + +”.

Я использую C / C + + только в такие фразы, как “C / C + + совместимость” и “C / C + + сообщество”.

Если C + + придумал?

Я начал работать на то, что стала C + + в 1979 году. Первоначальная версия была названа “C с классами”. Первая версия C + + использовался для внутренних нужд в AT & T в августе 1983 года. Название “C + +” был использован конце того же года. Первая коммерческая реализация была выпущена октября 1985, в то же время, как публикация первого издания C + + язык программирования. Шаблоны и обработка исключительных ситуаций были включены в конце 1980-х и задокументированы в Аннотированный C + + Reference Manual и C + + Programming Language (2-я редакция).

Нынешнее определение C + + является ISO C + + Standardаписана в C + + Programming Language (3-е издание).

Вы можете найти более полную шкалу и более подробные объяснения в Дизайн и эволюция C + + и истории C + +: 1979-1991.

Почему вы изобретать C + +?

Я хотел написать эффективных программ систем в стилях вдохновленные Simula67. Чтобы сделать это, я добавил условия для лучшей проверки типов, абстракции данных и объектно-ориентированное программирование на С более общей целью было создание языка, на котором я мог бы написать программы, которые были как эффективными, так и элегантно. Многие языки заставит вас выбирать между этими двумя альтернативами.

Конкретных задач, которые заставили меня начать разработку и осуществление C + + (изначально назывался “C с классами”) были связаны с торговой сети операционной системы по сети.

Вы можете найти более подробные объяснения в Дизайн и эволюция C + +. См. также История C + +: 1979 1991 Развитие языка в себе и для реального мира: C + + 1991-2006 гг.

Почему AT & T поддержки развития C + +?

Когда я впервые разработана C + +, AT & T построен систем большей сложности и с большей надежностью, чем требования большинства организаций. Таким образом, мы должны были повлиять на рынок и помочь установить стандарты, которые отвечают нашим потребностям – иначе мы бы не инструменты для построения нашей системы. Предоставлен самому себе “промышленность” создаст языка и инструменты для работы с “средний” проблем. Точно так же учителя имеют тенденцию сосредотачиваться на языки и инструменты, которые служат студентам и исследователям хорошо – даже если они не масштабируется для самых требовательных задач.

В то время, когда я разрабатывал C + + – а до этого, когда Кен Томпсон и Деннис Ритчи разработал Unix и C – AT & T, вероятно, самый большой в мире гражданский пользователь (и потребитель) программных средств. Затем, мы, вероятно, использовались более широкий диапазон систем – от мельчайших встраиваемых процессоров для крупнейших суперкомпьютеров и систем обработки данных. , Которые ставят во главу угла системы, которые были применимы во многих технических культур и на многих платформах. С и С + + были разработаны с такими требованиями в виду.

Итак общества имеет важное значение, и собственные функции рассматриваются как ограничивает выбор платформ и поставщиков. Как следствие AT & T был и остается основным сторонником формальных стандартов (например, ISO C и ISO C + +).

На самом деле, AT & T заработал достаточно денег на Cfront, мой оригинальный C + + компилятор, платить за развитием C + + в несколько раз.

У вас есть C + +?

Нет, если кто-то “владеет C + +”, он должен быть ISO. AT & T дал право на C + + руководство, которое я написал ISO. ISO C + + Standard, защищена авторским правом ISO.

Компилятора поставщики не платят гонораров мне, ни AT & T для C + + и ISO стандарты представляют собой спецификации предназначены для безвозмездное использование всех (как только они заплатили ISO или национального стандарта комитет по своей копии стандарт). Отдельные компиляторы являются собственностью их соответствующих производителей / поставщиков.

“Но кто-то из ШОС заявили, что они обладают C + +”, является то, что не так? Это полная чушь. Я видел, что интервью. ШОС парень явно не знали, что C + + был, называя его “Си + +”. Самое большее, что ШОС может иметь в собственности 15-летняя и серьезно устаревшую версию Cfront – мой оригинальный C + + компилятор. Я был достаточно осторожен, чтобы не патента или торговой марки ничего общего с C + +. Это одна из причин мы пишем простой “C + +”, а не “C + + (TM)”. C + + стандарт Необремененный патентов – комитет тщательно проверяется, что тоже.

Откуда название “C + +” берутся?

Глава 3 D & E: “ Я выбрал C + +, потому что был маленького роста, были хорошие интерпретации, и не в форме “прилагательное C” ‘В C + + может, в зависимости от контекста, следует читать как “дальше” “преемник”, или “приращение”, хотя это всегда произносится как “плюс плюс”. Название C + + и его второе место C + + являются благодатной источников для шуток и каламбуров – почти все из которых были известны и оценены, прежде чем название было выбрано. Название C + + был предложен Риком Mascitti. Впервые он был использован в декабре 1983 года, когда он был отредактирован в окончательной копии [Страуструп, 1984] и [Страуструп, 1984c].

В главе 1 TC + + PL: “ имя C + + (произносится как “видит плюс плюс”) было придумано Риком Mascitti в летом 1983 года. Имя означает эволюционный характер изменений С; “+ +” является оператором С приростом. Немного короче название “C +” является синтаксической ошибки, она также используется в качестве имени несвязанных языке. Знатоки семантики С находят C + + уступает + + C. Язык не называется D, потому что это расширение C, и он не пытается устранить проблемы, удаляя функции. Для еще одну интерпретацию названия C + +, гл. дополнение к [Оруэлла, 1949].”

“С” в С + + имеет долгую историю. Естественно, это название языка Деннис Ритчи разработаны. Немедленное предка C был интерпретировать потомкам BCPL называемые B разработаны Кеном Томпсоном. BCPL была разработана и реализована Мартин Ричардс из Кембриджского университета во время посещения Массачусетском технологическом институте в Кембридже другие. BCPL в свою очередь, основные CPL, CPL, где это имя довольно большой (для своего времени) и элегантный язык программирования, разработанный совместными усилиями университетов Кембриджа и Лондона. До Лондона люди присоединились к проекту “С” выступает за Кембридже. Позже, “С” официально выступает за комбинированный. Неофициально, “С” выступает за Кристофер потому что Кристофер Стрэчи был главным власть за CPL.”

На каком языке вы использовали для написания C + +?

Первый C + + компилятор (Cfront) была написана в C + +. Чтобы построить это, я впервые использовал C писать “C с классами”-к-C препроцессора. “C с классами” был диалекте C, который стал непосредственным предком для C + +. Это препроцессор переводится как “C с классами” конструкции (такие как классы и конструкторы) в С. Это был традиционный препроцессор, который не понимал их язык, оставил большую часть проверки типов для компилятора C, чтобы сделать, и переведены отдельные конструкции без полного знания . Затем я написал первую версию Cfront в “C с классами”.

Cfront был традиционный компилятор, который сделал полный синтаксис и семантические проверки C + + исходный. Для этого он полный синтаксический анализатор, построенный таблицы символов, и построил полное внутреннее представление дерева для каждого класса, функции и т.д. Он также сделал некоторые оптимизации уровне исходного кода на его внутреннее представление дерева C + + конструкций перед выводом С. версию, порожденный С, не полагаться на C для любого типа проверки. Он просто использовал С как ассемблер. Полученный код был бескомпромиссно быстро. Для получения дополнительной информации см. D & E.

Почему нет C + + есть сборка мусора?

Если вы хотите автоматического сбора мусора, Есть хорошие коммерческие и общественные домена сборщики мусора для C + +. Для приложений, где сбор мусора подходит, C + + является отличным сборщиком мусора язык с производительностью, что выгодно отличается от других мусор языках. Смотрите C + + Programming Language (3rd Edition) для обсуждения автоматический сбор мусора в C + +. Смотрите также, Ханс-J. Боем это сайт для C и C + + сборки мусора.

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

C + +0 хпрапанов GC ABI.

Почему нет C + + есть GUI?

C + + имеет множество коммерческих и открытых графических интерфейсов (например, Gtkmm, SmartWin + +, V C + + GUI, FLTKи Qt). В частности, каждый поставщик предоставляет платформу C + + библиотека для доступа к своим графическим интерфейсом. Проблема в том, что он не имеет стандартный графический интерфейс, и это действительно серьезная проблема.

Обратите внимание, что предоставление графического интерфейса и технические и политические проблемы. Есть много графических интерфейсов пользователя с большим количеством пользователей, да и вообще они не хотели бы некоторые другие GUI, который был объявлен стандартом. В любом случае, комитет по стандартам не имеют ресурсов для создания новых и лучших GUI.

Почему нет C + + темы поддержки?

ISO C + + стандарт не упомянуть параллелизм, но все основные C + + темы реализации поддержки; Pthreads работает по сути везде, и многие производители платформы поддержки собственных системных потоков. Для переносимости, использовать некоторые темы библиотеки, такие как усиление потока.

C + +0 хпрапануе темы.

Является ли C + + в упадке?

Нет, я так не думаю. C + + использовать похоже, начинает снижаться в некоторых областях и, чтобы быть на подъеме в других. Если бы мне пришлось угадывать, я подозреваю чистое сокращение то на протяжении 2002-2004 годов и чистое увеличение в 2005-2007 годах, но я сомневаюсь, что кто не знает. Большинство популярных мер в основном меры шума и должна представить свои выводы в децибелах, а не “популярность”. Многие из основных видов применения С + + в инфраструктуру (телекоммуникации, банковское дело, встраиваемые системы и т.д.), где программисты не ходят в конференциях или описать свой код в общественных местах. Многие из наиболее интересных и важных C + + приложений не заметили, они не для продажи населению, как программных продуктов, и их реализация языка никогда не упоминается. Примерами являются Google и “800″ телефонных номеров. Если бы я думал о “C + + внутри” логотип в 1985 году, программирование мир мог бы быть другим сегодня.

Один простой вещи, что смущает многих дискуссий использования языка / популярность различие между относительной и абсолютной мере. Например, я говорю, что C + + использовать растет, когда я вижу пользователь населения вырастет на 200 тысяч программистов от 3,1 M до 3.3M. Тем не менее, кто-то может утверждать, что “C + + умирает”, потому что “популярность” снизилась с 16 процентов до 11 процентов от общего числа программистов. Оба требования могут быть одновременно истинными, как число программистов, продолжает расти и, особенно, как то, что считается программирования продолжает меняться. Я думаю, что С + + является более проводить свою собственную в своей традиционной области ядра, таких как инфраструктура, системы программирования, встроенных систем и приложений с серьезными времени и / или пространственных ограничений. См. также мою DevX интервью.

Что делается для улучшения C + +?

Исполнителей постоянно совершенствуем свои компиляторы, библиотеки и инструменты. Последние пять лет наблюдается очень значительное улучшение качества. Это то, что самым непосредственным и самым немедленно помогает людям, то и множество имущественных и открытым исходным кодом, библиотеки и инструменты, которые непрерывно вырабатывается C сообщество + +. Смотрите мой C + +, старонкадля примеров.

ISO C + + стандартнаябыла ратифицирована в 1998 году. Следующая версия, по прозвищу C + +0 х, является полным и общественного рассмотрения, после чего происходит “proofeading пройти”, и процесс ратификации. Вы можете найти статей, описывающих C + +0 х на мою страницу публикаций и все документы, связанные с новым стандартам по ISO C + + страниц комитета дома. Мой HOPL-III бумажка последние 15 лет C + + эволюция может лучшее объяснение того, что происходит и почему. Недавнем интервью содержит список новых возможностей языка и стандартные библиотеки.

При рассмотрении эволюции C + +, не стоит забывать, что цель состоит в том, чтобы не добавить большое количество новых функций, но и улучшить C + + для своих ключевых областях приложений, включая системы программирования и здание библиотеки, не нарушая старого кода (Есть миллиарды строк C + + ” там “).

Почему код, сгенерированный для “Привет мир” программы в десять раз больше для C + +, чем для C?

Это не на моей машине, и она не должна быть на вашей. Я даже видел C + + версии “привет мир” программы меньше, чем версия C. В 2004 году я протестированы с использованием GCC-O2 на Unix и двух вариантах (iostreams и stdio) дали одинаковые размеры. Существует нет языка причина одна версия должна быть больше, чем другие. Это все вопрос о том, как разработчик организует стандартных библиотек (например, статическое связывание против динамического связывания, поддержка языком локали против поддержки возможной благодаря опции и т.д.). Если одной из версий гораздо больше, чем другие, сообщите о проблеме реализатор из великих.

Как наследие язык, как C + + конкурировать с современным, современные языки?

Естественно, называя C + + наследия язык показывает смещения (см. наследство кода). Именно в сторону, люди, как правило, думает о Javaабо C #, если они задать такой вопрос. Я не буду сравнивать C + + для этих языков, но я могу отметить, что “современные” не обязательно означает “лучше”, и что как Java и C #, уходят корнями в 1980-е годы стиль ООП в еще большей степени, чем ранние С + +.

С 1987 года или около того, Центр развития языка С + + и связанные с ней стиле программирования было использование шаблонов, статический полиморфизм, обобщенное программирование и Мультипарадигмальное программирования. Это способ выходит за рамки столь раздутыми собственные языки. Еще одно важное отличие в том, что C + + поддерживает пользовательские типы в той же степени, как встроенные типы. Это – особенно в сочетании с использованием шаблонов, конструкторы и деструктор – позволяет C + + программистом, чтобы использовать программирование и дизайн методы, которые (ИМО) являются более продвинутыми, чем поддерживается в языках, с которым C + + является наиболее часто сравнивают, например , см. RTTI.

Standard C + + и дизайн и программирование стилей он поддерживает в долгу перед функциональных языков, особенно в ML. Ранние варианты механизмов ML-тип вычета были (вместе с многим другим) часть вдохновения шаблонов. Некоторые из наиболее эффективных методов функционального программирования были частью вдохновения STL и использование функции объектов в C + +. С другой стороны, функциональное сообщество пропустил лодку с объектно-ориентированным программированием, и немногие из языков и инструментов этого общества выгоду от созревания опыт крупномасштабного промышленного использования.

Очевидно, я не думаю, что сбор смеццязъявляецца единственной определяющей характеристикой “продвинутых” в контексте языков программирования. В частности, обратите внимание, что C + + обеспечивает поддержку для эффективного и результативного управления памятью, которые могут устранить утечки ресурсов без использования сборщика мусора. Если вы не согласны, вы можете просто начать использовать сборщик мусора для C + +; Есть хорошие доступны.

Что такое “Мультипарадигмальное программирования”?

Мультипарадигмальное программирование причудливый способ сказать “программирование с использованием более одного стиля программирования, каждый в своей наилучший эффект”. Например, при использовании объектно-ориентированного программирования, когда во время споров между различными типами объектов не требуется, и обобщенное программирование, когда статическая безопасность типа и во время выполнения в большом почете. Естественно, что главная сила Мультипарадигмальное программирования в программах, где более одной парадигмы (стиль программирования) используется, так что было бы трудно добиться такого же эффекта путем составления системы из частей, написанных на языках, поддерживающих различные парадигмы. Я нахожу наиболее убедительным случаях Мультипарадигмальное программирования находились там, где технологии различных парадигм используются в тесном сотрудничестве, чтобы написать код, который является более элегантным и более легким в обслуживании, чем это возможно в рамках одной парадигмы. Простой пример обхода статически типизированных контейнер объектов полиморфного типа:

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

Книга Джима Coplien в “Мультипарадигмальное Дизайн для C + +” (Addison Wesley, 1998) исследует использование нескольких парадигм в контексте разработки и методы проектирования.

Почему C + + такой большой?

C + + не так велика, как некоторые люди себе представить. Это не крошечный язык предназначен для минимальными языка для преподавания, но и не языка людей, которые наиболее часто сравнивают его, например, C, Java, C #. Они также огромная по сравнению, скажем, Паскаль, как доктор Вирт изначально определили его – по вполне понятным причинам, я думаю. Мире программирования является гораздо более сложным, чем это было 30 лет назад, и современных языков программирования отражают это.

C + + стандарт 740 страниц, но, что включает в себя 400 страниц библиотека описаний. Языковые особенности описаны (в мельчайших деталях) в 340 страниц. Кроме того, ТК + + PLскладае 1000 страниц +, но только 350 из тех, посвященный толкованию языковых средств и их использование; остальное обсуждать библиотеки, методы программирования и т.д.

C + + непосредственно поддерживает (то есть в языке), что некоторые другие поддержку языков с помощью библиотек, так что часть языка будет относительно большим. С другой стороны, если вы хотите написать “типичных современных приложений”, которые необходимо учитывать операционной системы интерфейсы, GUI, баз данных, веб-интерфейсов и т.д. Сумма возможности языка, библиотеки и программирования конвенциями и стандартами, что вы должны ознакомиться с карликом языка программирования. Здесь C + + ‘ы размер может быть преимуществом, поскольку она лучше поддерживает хорошие библиотеки.

Наконец, дни, когда начинающий программист может знать всех языков исчезли, по крайней мере на тех языках, на широкое промышленное использование. Мало кто знает “все С” или “все Java”, либо, и никто из них являются новичками. Отсюда следует, что никто не должен извиняться за то, что новички не знаю, все C + +. То, что вы должны сделать – на любом языке – это выбрать подмножество, получить работу написания кода, и постепенно узнать больше о языке, его библиотеки, и его инструментов. За мое предложение о том, как новички могут подходить C + +, см. Программирование: принципы и практика использования C + +.


Что вы думаете о EC + +?

EC + + является (почти) подмножество C + + не хватает исключений, шаблоны, пространства имен, поддержка RTTI, множественное наследование и т. д., который определяется по “промышленного консорциума”. Я не в пользу языка подмножество или диалекты. Я особенно не любят подмножества, которые не поддерживают стандартную библиотеку, так что пользователи этого подмножества должны изобрести свои собственные несовместимые библиотеки фундамент. Я боюсь, что определено подмножество C + + может расколоть сообщество пользователей и вызвать раздражительность (3/31/1999: Я только что видел рекламу, которая использована яркая графика, чтобы показать, как EC + + пониженная “жир” (т.е. памяти) путем отмены – среди других вещи – имен, шаблоны и C + + строки стандартного Вздох).!. Я решительно предпочитаю работать на “стандарты” происходит в открытом форуме (например, ISO или организации национальных стандартов).

Для обсуждения того, как встроенные системы разработчики могут решению проблем производительности с использованием стандартных C + + (лучше, чем с помощью диалекта) см. ISO C + + комитета отчет о деятельности. Насколько мне известно, EC + + мертв (2004), и если это не так должно быть.

Для посмотрим, как ISO C + + могут быть использованы для серьезного программирования встроенных систем, см. автомобиля JSF воздуха C + +, стандарты кодирования.

C + + получил свое объектно-ориентированной концепции с Smalltalk?

Нет. C + + получил ключевые понятия классов, производных классов, виртуальных функций (другими словами, понятия инкапсуляции, наследование и полиморфизм) с Simula так же, как Smalltalk и сделал. С точки зрения семейных отношений, C + + и Smalltalk являются братьями и сестрами.

Является ли C + + объектно-ориентированного языка?

С + + является мульти-парадигмы языка программирования, который поддерживает объектно-ориентированное и другие полезные стиле программирования. Если то, что вы ищете что-то, что заставляет вас делать то, в точности так, C + + не так. Существует не один правильный способ писать каждую программу – и даже если бы не было бы способ заставить программистов использовать его.

Тем не менее, писать в стиле С программами на С + + для большинства приложений, не оптимальное использование C + +. Чтобы быть действительно эффективными C + + программист, вы должны использовать абстракции и механизмы типа системы таким образом, который соответствует разумно с их намерением. Попытки игнорировать или поражение C + + тип системы является наиболее удручает.

Написание Java-кода в стиле С + + может быть разочарование и неоптимальной, как написание C-код в стиле C + +.

Для более детального обсуждения гл. любой из моих обзор или стиль статей с моей библиографии. В частности, см. мою OOPSLA бумаги “Почему C + + не только объектно-ориентированный язык программирования”.

Неужели вы так говорите?

“C позволяет легко выстрелить себе в ногу, C + + делает это тяжелее, но если вы делаете это удары всю свою ногу”. Так, я сказал что-то подобное (в 1986 году или около того). То, что люди, как правило, не пропустите, это то, что то, что я сказал, что C + + является в той или иной степени относится ко всем мощные языки. Как защитить людей от простых опасности, они попадают в новые и менее очевидные проблемы. Кто-то, кто избегает простых задач может быть просто заголовок не очень простая. Одна из проблем, с очень поддерживает и защитных оболочек является то, что сложные проблемы могут быть обнаружены слишком поздно или слишком трудно исправить однажды обнаружили. Кроме того, редкая проблема труднее найти, чем часто, потому что вы не подозреваете этого.

“В C + +, есть намного меньше и чище языка изо всех сил пытается выбраться из”. Да, это цитаты можно найти на странице 207 Дизайн и эволюция C + +. И нет, что более мелкие и более чистого языка не Java или C #. Цитата происходит в разделе “Файлы и Beyond Синтаксис”. Я указывал на то, что C + + семантика намного чище, чем его синтаксис. Я думал о стилях программирования, библиотек и среды программирования, который подчеркнул, более чистых и эффективных методов более архаичные использует сосредоточены на низкоуровневые аспекты C.

“Я всегда хотел мой компьютер, чтобы быть максимально простым в использовании, как мой телефон; мое желание сбылось, потому что я больше не могут понять, как использовать свой? Телефон”. Я сказал, что после разочарований попытки использовать “многофункциональных” телефон-то около 1990 года. Я уверен, что настроения не был оригинален, и, вероятно, даже не общая формулировка, кто-то должно быть, думал о том, что передо мной.

“Есть только два типа языков: те люди жалуются и те, никто не использует”. Так. Опять же, я очень сомневаюсь, что настроения оригинала. Конечно, все “Есть только два” кавычки должны быть приняты с недоверием.

“Доказательство по аналогии мошенничество”. Так, страница 692 ТК + + PL. Хорошей аналогией является отличным способом иллюстрировать идею, но слишком часто подобные аналогии не сопровождаются твердой аргументации, данных и т.д.

“Люди, которые думают, что знают все на самом деле раздражают тех из нас, кто знают, что мы не”. Так.

“C + + это мой любимый мусор язык, потому что он генерирует очень мало мусора”. Так, см. Почему нет C + + есть сборка мусора? И Как справляться с утечками памяти.

“Если вы думаете, это просто, то вы не поняли проблему”. Да, но нет, я не помню, какой вопрос вызвал такой ответ.

“Есть более полезные системы, разработанные на языках считается ужасным, чем в языках хвалили за то, что красиво – много больше”. Так, в Массачусетском технологическом институте интервью Обзор технологий и в других местах. Там я также сказал:

“Я думаю, мы должны смотреть на элегантность в приложениях, созданных, а не сами языки”. Я должен был сказать “больше”, а не “вместо”.
“Чтобы использовать C + + хорошо, вы должны понять, дизайн и технология программирования”.
“C + + предназначен, чтобы позволить вам выразить свои идеи, но если у вас нет идей или не имеют никакого понятия о том, как их выразить, C + + не предложит большую помощь”.

Слишком часто “компьютерные науки” является одной из форм математике зависти. Да, но, пожалуйста, не забывайте, что “слишком часто”. Цитата из контекста, в котором я беспокоиться о недостаточном внимании к данным (эмпиризм) и недостаточное внимание к связи к компьютерам. Это не фронтальное наступление на том, что информатика может быть наукой (см., например, Кнут на алгоритмы и анализ алгоритмов; это наука, и это не любая другая наука). И, нет, я не собираюсь давать конкретные примеры и имена.

Слишком часто “программного обеспечения” не является ни инженерных, ни о программном обеспечении. Да, но, пожалуйста, не забывайте, что “слишком часто”. Цитата из контекста, в котором я беспокоиться о недостаточном внимании к данным (эмпиризм) и недостаточное внимание к связи в коде. Я боюсь, что реалиями того, чтобы доставить полезный и в сопровождении код может быть утоплен в процессах, корпоративных стандартов, и маркетинговые исследования, что разработка программного обеспечения иногда находится под контролем людей, которые не могли распознать хороший код, когда он вскочил и ударил им на носу, и гордимся этим. И, нет, я не собираюсь давать конкретные примеры и имена. Если по хорошему, разработка программного обеспечения является достойным дисциплины инженерной, обеспечивая результаты, которые сравниваются с точкой зрения старше инженерных дисциплин.

Если (не когда) автоматический сбор мусора становится частью C + +, это будет дополнительным. Да в 2000 интервью с / ..

Легко выиграть прощения за то, что неправильно, а когда их права это то, что вы в реальные неприятности. Так.

Любая проблема в области компьютерной науки могут быть решены с другой уровень косвенного, известный как первый закон вычислений. Да, я сказал, что цитировании (моей докторской диссертации advison) Дэвид Дж. Уилер. Пожалуйста, не misattribute его мне.

Действительно ли вы дать интервью IEEE?

, В которой вы признались, что C + + была сознательно создана как ужасный язык для написания неподдерживаемые кода увеличить зарплаты программистов?

Конечно, нет. Прочитайте реальные интервью IEEE.

Что такое “унаследованный код”?

“Наследие код” термин часто используется уничижительно, чтобы охарактеризовать кода, написанного на языке, или стиль, который (1) динамика / писатель считают устаревшей и / или (2) конкурирует с чем-то продали / способствовала динамика / писатель. “Наследие код”, часто отличается от своего предложили альтернативу, на самом деле работает и масштабирование.

Является ли количество C + + пользователи по-прежнему удваивается каждый год?

Количество В 1980-1991, число пользователей удваивается каждые семь с половиной месяцев (см. Дизайн и эволюция C + +). Тем не менее, просто не хватает программистов для поддержания этого. С несколько цифр, я могу получить (компилятор продаж, книга продаж, объема работ консультантов, я знаю, IDC и др.), по моим оценкам, темпы роста несколько процентов. Устойчив и, безусловно, положительный. IDC оценкам, 1200000 C + + Реализации были проданы в 1996 году. Их 2001 оценка числа программистов С + + было “около 3 миллионов”, их количество составило 2004 “более 3 миллионов”. Это кажется правдоподобным и указывает на продолжение роста.

Кто-нибудь использовать C + +, в эти дни?

Так, многияробяць. Есть слишком много C + + пользователям эффективно их сосчитать, но их количество в миллионы. C + + поддерживается всеми основными производителями. Примеры C + + использовать увидеть мои приложения сэмплер.

Почему нет C + + для операционных систем?

Она есть, и она была на протяжении более десяти лет, см. мой список C + + приложений.

Вы ожидали, C + +, чтобы стать такой успех?

Конечно, нет. Успеха общего назначения языков программирования исчезающе мала. Я знал, что, и я знал, что шанс на успех повлиял маркетинга влияние, которое у меня не было.

C + + был первоначально разработан и реализован в виде набора общих средств решения некоторых конкретных проблем, которые я и мои коллеги столкнулись. Сообщества – и эффективность – из средств, предоставляемых оказалась служить гораздо шире потребностей, чем я ожидал. Акцент на общих объектов – в отличие от предоставления конкретных решений конкретных проблем – осталась с C + + и служил своего общества и конкретных проблем, стоящих перед обществом изменились за эти годы.

Что такое хорошая сертификации для программистов С + +?

Насколько мне известно, нет хорошей программы сертификации для C + + программистов. Вот жаль. Добраяпраграма сертификации будет наиболее полезным. Тем не менее, C + + не хватает центральной организации, которая будет производить жесткие программы сертификации, а также программы сертификации без разрешения или, направленную на синтаксис был бы хуже, чем бесполезно.

Что вы сейчас работаете?

FAQ лучше :-)

Серьезно, я ищу фундаментальные пути совершенствования средств и методов, которые мы используем для построения больших реальных систем. Одна часть моей работы заключается в C + +0 х.

Что такое C + +?

С + + является универсальным языком программирования с уклоном к системам программирования,

это лучше C
поддерживает абстракцию данных
поддерживает объектно-ориентированное программирование
поддерживает обобщенное программирование

Она определяется по стандарту ИСО, обеспечивает стабильность на протяжении десятилетий, и имеет большой и живой сообщества пользователей. Смотрите также C + + Язык праграмаванняи Развитие языка в себе и для реального мира: C + + 1991-2006 гг.

Где я могу узнать историю C + +?
О дизайне C + +? Об истории C + +?

Посмотрите на мои документы для HOPL-2и HOPL-3; HOPL расшифровывается как “История Языки программирования”, премьер-министр конференции по этому вопросу, автором которого ACM. Это сильно рецензируемых работ. Для еще более подробно см. мою книгу Дизайн и эволюция C + + и предисловие до 2006 Японский перевод D & E, который приносит информацию до 2006 года. Кроме того, многие из моих интервью затронуты вопросы фон, дизайн, история C + +.

Правда ли, что …?

Многие вопросы приходят ко мне в форме утверждений

С + + является низкоуровневый (?)
C + + слишком медленный для низкоуровневой работы (?)
C + + имеет смысл только если вы пишете по-настоящему объектно-ориентированного кода (?)
Современное проектирование на С + + является все обобщенное программирование и метапрограммирование шаблонов (?)
C + + разработан Microsoft (?)

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

С + + является низкоуровневой? Нет. C + + предлагает и низкого уровня и высокого уровня возможностей. C + + имеет низкий уровень деталей, таких как указатели, массивы и отливок. Эти средства (почти идентично тому, что предлагает C) необходимые (в той или иной форме) для близких к-аппаратный работы. Таким образом, если вы хотите низкоуровневых средств языка, и C + + предоставляет испытанный набор средств для вас. Однако, если вы не хотите использовать низкоуровневые функции, вы не должны использовать C + + объекты (напрямую). Вместо этого, вы можете рассчитывать на более высоком уровне объектов, в том числе библиотек. Например, если вы не хотите использовать массивы и указатели, строки стандартного библиотеки и контейнеры (лучше) альтернативы во многих случаях. Если вы используете только низкоуровневых средств, вы почти наверняка тратить время и усложняет техническое обслуживание без преимущества производительности (см. Обучение Standard C + + как нового языка). Вы также можете быть настилки системы открыты для атак (например, переполнение буфера).

C + + слишком медленный для низкоуровневой работы? Нет. Если вы можете позволить себе использовать C, вы можете позволить себе использовать C + +, даже более высокого уровня объектов C + +, где нужно их функциональности. Смотрите абстракция и C + + модель машины и ISO C + + стандарты комитета Технический отчет по производительности.

C + + имеет смысл только если вы пишете по-настоящему объектно-ориентированный код? Нет. Это значит, “нет” практически для любого разумного определения “объектно-ориентированной”. C + + обеспечивает поддержку широкого спектра задач, а не только для одного стиля или на один вид приложения. На самом деле, по сравнению с C, C + + предоставляет дополнительную поддержку для очень простых задач программирования. Например, стандартные библиотеки и других библиотек радикально упрощает многие иначе утомительной и подверженной ошибкам задач. C + + широко используется для огромного приложений, но также приносит пользу даже крошечные задач программирования.

Современное проектирование на С + + является все обобщенное программирование и метапрограммирование шаблонов? Нет. C + + поддерживает несколько полезных приемов праграмаванняfont>, в том числе, традиционные процедурного программирования, объектно-ориентированное программирование и обобщенное программирование. Ни один из них лучше, чем все остальные для всех видов и, как правило наиболее эффективное решение реальной проблемы включает в себя комбинацию методов.

C + + разработан Microsoft? Нет. Я изначально разработана и внедрена C + + и вместе с ISO C + + стандарты комитета изысканный его определение. Microsoft принимает активное и в основном позитивную роль в этом стандартизация – как Apple, GNU, IBM, Sun и многие другие. Как и другие – например, Apple – Microsoft пытается помочь / блокировки в их пользователям с проприетарными расширениями (в частности, Microsoft C + + / CLI).

Что вы думаете о Boost?

Павышэннезъявляецца большой и расширяющийся набор библиотек предназначен для совместной работы с ISO C + + стандартная библиотека. Он содержит много очень полезной и хорошо продуманная библиотеки, такие как ASIO, файловой системы, регулярное выражение, и нити (извинения за не пытаясь определить более полезным библиотек; Есть только слишком много). Один библиотека, TR1, содержит хорошим приближением нового C + +0 х стандартных компонентов библиотеки.

Повышение библиотеки тестов люксов, есть документация, были протестированы на нескольких компьютерах, и рецензирование.

У меня две проблемы с Boost, хотя, который, надеюсь, будут рассмотрены в конце концов:

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

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

Что вы думаете о шаблонного метапрограммирование?

Шаблон метапрограммирование набор мощных методов программирования, которые при использовании с заботой и вкусом может помочь решить довольно сложно проблемы, в основном, связанных с архитектурой больших систем, их мобильность, и их содержание (см. Абрахамс и оптовые: C + + метапрограммирование шаблона и некоторые из Повышение библиотек.

Как и все мощные методы они легко злоупотреблять. Лично я предпочитаю использовать шаблоны в первую очередь для обобщенного программирования (например, в определении контейнеров и алгоритмов над контейнерами) и шаблоны, которые генерируют достаточно очевидны код, основанный на шаблоне аргументов (например, создание буферов и зарегистрировать код доступа), что иногда называют генеративной программирования. Будьте осторожны сложности шаблонов вы пишете или использования; легко получить overenthusiastic и писать код шаблона, который является слишком умен, чтобы быть полезным в качестве поддерживаемого кода производства.

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

Ресурс: Bjarne Stroustrup’s FAQ

Введение в WAI ARIA

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

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

Журнал обновлений

Изменение 8 октября 2008 года: Список документов достопримечательностью ролей обновлены, чтобы отразить изменения в спецификации.

Обновление 1 Апрель 2009: Секция по ария-канал, и ария проживанию = “грубый” удалено значение, чтобы отразить изменения в спецификации. Оба были удалены из спецификации.

Введение

Hypertext Markup Language (HTML) изначально не была предназначена для создания веб-приложений. HTML имеет ограниченный набор интерфейсных элементов управления и основана на модели последовательного коммуникационного сервера клиенту. Разработчики веб-приложений получили вокруг этих ограничений, создавая свои собственные компоненты (виджеты), используя JavaScript, чтобы добавить поведение к виджетам.

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

Обновления часто упускается люди, использующие вспомогательные технологии. Вспомогательные технологии обычно ожидают Интернета, чтобы изменяться в ответ на навигацию событие, такое как переход по ссылке или отправки формы. Веб-приложения используют методы, такие как AJAX, для обновления содержания в фоновом режиме, который иногда пропущенные вспомогательных технологий. Даже если вспомогательные технологии осознает обновления, пользователь по-прежнему не могли бы знать, что содержание было обновлено, или как найти обновленный контент.

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

Краткая история HTML

HTML был первоначально разработан, чтобы быть гипертекстовая система для структурирования и обмена связанными документами. Ранние HTML готовит определены тегов, таких как заголовки, абзацы, списки и якоря, чтобы добавить структуру текстовыми документами. Первое предложение о спецификации HTML в IETF также включен элемент IMG, чтобы графики будут отображаться встроенные. Первые официальные спецификации HTML HTML было 2, основанный на ранних черновиков HTML. Эта спецификация введены формы, и определили небольшой набор интерфейсных компонентов для создания поля ввода, кнопки, флажки, переключатели и раскрывающиеся списки. Небольшой набор интерфейсных компонентов, определенных в HTML 2 практически не изменился по сравнению с набором настоящее время мы используем с HTML 4.01.

Коммуникационная модель для HTML основан на модели клиент-сервер. В модели клиент-сервер, клиент посылает запросы и может получать ответы; сервер принимает запросы, обрабатывает запрос на сервере, и отправляет ответ обратно клиенту. Как HTML не было поведение слоя, связь должна была быть последовательной – клиент запрашивает страницу с сервера, сервер обрабатывает запрос и отправляет страницу клиенту.

Веб-приложения

Веб-приложения пытаются подражать обычных приложений рабочего стола, кроме веб-приложения выполняются внутри другого обычное приложение для рабочего стола – браузера. Есть также два фундаментальных различий между HTML и его модель коммуникации, и обычное приложение рабочего стола:

  1. Регулярные настольных приложений есть поведение слой, который не зависит от запросов к серверу.
  2. Регулярные настольных приложений имеют гораздо более богатый набор компонентов интерфейса.

Имитация обычных приложений рабочего стола

Запросы фона сервера

Для того, чтобы эмулировать регулярные настольных приложений, веб-приложений используют JavaScript, чтобы добавить поведение. Например, JavaScript может быть использована, чтобы пункт меню, чтобы развернуть и свернуть, когда пользователь взаимодействует с ним. Иногда данные могут потребовать от сервера. Например, приложение может иметь для извлечения записей из базы данных на сервере, чтобы обновлять информацию о текущей странице. Когда приложение должно взаимодействовать с сервером, веб-приложения используют методы, такие как AJAX или скрытые элементы IFrame для связи с сервером в фоновом режиме.

Имитация доступных компонентов

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

1

Рисунок 1 – Три флажка; остановить, проверить и частично проверена.

2

Рисунок 2 – Слайдер управления с дискретным значениям для обозначения качества.
Проблемы доступности внешнего вида и имитации ощущений

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

  1. Виджеты построена таким образом редко доступным с клавиатуры.
  2. Роль виджета, что он делает, не доступных для специальных возможностей.
  3. Штаты и свойствах виджета и не предназначенные для вспомогательных технологий.
  4. Обновление и открытие обновления не сообщается вспомогательных технологий.

WAI-ARIA-спасатель

К счастью, все проблемы, изложенные выше решаются Доступная Богатые Инициативы веб-доступности в сети Интернет (WAI-ARIA) спецификации (сокращенно ARIA для остальной части этой статьи). ARIA является положительным, включение технологии – вместо того, разработчики говорят, что они не могут сделать, ARIA позволяет разработчикам создавать богатых веб-приложений. ARIA также очень легко осуществить.

Навигация с помощью клавиатуры

Наряду с предоставлением альтернативного текста для не-текстовые объекты, будучи в состоянии взаимодействовать с элементами интерфейса с помощью клавиатуры является одним из самых основных положений доступности. ).”>Разработчики, которые понимают доступности может создавать собственные виджеты использованием компонентов, которые могут получать фокус, такие как входной элемент с типом значения атрибута изображения (<input type=”image” …>). К сожалению, большинство виджетов не построен с использованием компонентов, которые являются доступными клавиатуры, а вместо этого использовать элементы, такие как элемент изображения, или может состоять из составных элементов, которые должны быть в контейнере элемент, такой как дел, которая не в состоянии получать клавиатура сосредоточиться.

HTML 4 представил TabIndex атрибут, площадь, кнопки, ввода объекта, выбрать и текстовой элементов. TabIndex атрибут HTML 4 принимает положительное значение от 0 до 32767. Навигация начинается с элемента с самым низким номером, и переходит к элементу с наибольшим числом. Элементы со значением 0 посещаются в порядке их появления в разметке. Если разметка имеет логическую структуру, TabIndex атрибут не является обязательным для элементов интерфейса, которые уже находятся в порядке вкладку клавиатуры.

ARIA расширяет TabIndex атрибут так, что он может быть использован на всех видимых элементов. ARIA также позволяет отрицательного значения должны быть указаны для элементов, которые не должны появляться в том порядке вкладку клавиатуры, но можно программно сосредоточены (передать фокус элементу со сценариями). Поскольку фактическое значение отрицательного числа не имеет значения (элемент никогда не получает фокус ввода), значение -1 обычно используется для элементов, которые не должны быть включены в последовательности переходов, но, возможно, необходимо иметь возможность получать программной направленности. Например, можно создать виджет меню, где Само меню в последовательности переходов и получает фокус при обходе к нему, но меня не в порядке вкладку клавиатуры. Вместо этого, пункты меню могут быть запрограммированы таким образом, они можно перемещаться с помощью клавиш управления курсором. Таким образом, пользователи не должны вкладку через все пункты в меню, и может лучше ориентироваться в документе. Это верно для всех виджетов, которые имеют ряд компонентов, которые нужны клавиатура доступа, такие как дерево.

Добавление к естественному порядку Tab

В следующем примере используется значение TabIndex 0 атрибута поставить DIV элемента в последовательности перехода, так что клавиатуру пользователь может перемещаться к элементу.
В следующем примере используется отрицательное значение атрибута TabIndex, так что элемент получать программной направленности.
В этом примере элемент DIV не размещен в последовательности переходов, но имеющий значение атрибута TabIndex -1 означает, что он может получить программную направленность. Следующий фрагмент JavaScript выбирает элементы определены выше, и использует метод фокусировки, чтобы сделать акцент на элементе.

Кто я?

ARIA вводит роли атрибута, чтобы помочь определить виджеты, такие как слайдер, и определить структуру страницы, такие как раздел навигации. Одна из основных проблем, с веб-приложений, в том, что любой элемент может быть использован для виджета. HTML элементов, которые уже имеют предопределенные роли. Роль элементом является то, что он делает – ее роль в структуре. Например, роль заголовка хорошо понимают вспомогательных технологий. Когда виджеты строятся с существующими элементами, роль элемента является то, что открыл вспомогательных технологий, а не то, что он визуально представляет в виджете. Например, если большой палец для ползунка создан с использованием элементов изображения с соответствующими альтернативный текст, то программа чтения с экрана, скорее всего, объявит управления, как “Graphic, thumb”, в отличие от более понятное имя, например, “slider, value 16 percent”.

3
Рисунок 3 – Slider большого пальца.

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

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

Роли Документов Landmark

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

4

Рисунок 4 – Структура страницы.

ARIA определяет следующие роли исторического документа:

article
Контент, который имеет смысл в своем собственном праве, например, для отправки в блог, комментарий в блоге, сообщения в форуме, и так далее.
banner
Сайт-ориентированный контент, например, заголовок страницы и логотип.
complementary
Справочные материалы для основного содержания, но смысл в свои права, когда отделен от основного содержания. Например, погоды, перечисленными на портале.
сontentInfo
Ребенка контента, например, сноски, авторские права, ссылки на заявление о конфиденциальности, ссылки на предпочтения, и так далее.
main
Содержание, которое непосредственно связано с или расширяется на центральной содержание документа.
navigation
Содержание, которое содержит ссылку для перехода этого документа и / или связанных с ним документов.
search
Этот раздел содержит форму поиска, чтобы поиск по сайту.

Следующий пример задает ориентир роли баннеров, навигации и основным для создания страницы структуры, показанной на рисунке 4.


ARIA состояний и свойств

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

В слайдер приведенном выше примере, мы включили различные арии-свойств, как показано ниже, которая помогла описать виджет для специальных возможностей.

aria-ValueMin
Магазины наименьшее значение диапазона может иметь.

aria -Valuemax
Сохраняет высокие значения диапазона может иметь.

aria -valuenow
Сохраняет текущие значения в диапазоне.

aria -valuetext
Магазины читаемый текст, чтобы помочь пользователю понять контекст. Например, “30 долларов”.

aria -labelledby
Сохраняет ID атрибут текстовую метку содержащей соответствующий запрос на этот виджет.

Некоторые свойства могут быть обновлены с помощью сценариев. Например, aria -valuenow и aria -valuetext свойства нашего слайдера виджет будет обновляться, когда большой палец перемещается.

Добавление ARIA роли и атрибуты не будет проверять с HTML 4.01 или XHTML 1.0, но это не страшно, а ария добавления важной информации для спецификаций, которые были написаны давно. Работа проводится определение DTD, которые можно использовать с модульными XML, например, XHTML 1.1. Существует полный список состояний и свойств, чтобы помочь определить доступные виджеты в арии спецификации.

Живые Регионы

Текущие регионах позволяют элементов документа будет объявлено в случае изменений, без потери пользователю сосредоточиться на своей текущей деятельности. Это означает, что пользователи могут получить информацию о новинках, не теряя своего места в пределах содержания. Например, приложение чата может объявить ответ от лица пользователя в чате с, не перемещая фокус с поля ввода текста, чтобы добавить строку чата.

aria-live
Понятности обновленного содержания является одним из самых больших препятствий для пользователей чтения с экрана. ARIA предоставляет арию проживанию собственность, которая имеет значение, указывающее уровень детализации для региона. Ниже приведены значения многословие, которые могут быть использованы с арией проживанию собственности.

off
Это значение по умолчанию, и указывает, что регион не живой.

polite
Это нормально и ожидаемое поведение для живых регионах. Значение вежливый означает, что нет необходимости отвечать, пока пользователь не завершит свой текущий активности.

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

Свойства Аria-atomic

Ария-атомные свойства необязательное свойство живых регионов, которые могут иметь значения истинным или ложным (по умолчанию, если это свойство не указано). Когда регион обновляется, арии-атомные свойство используется, чтобы указать, если вспомогательные технологии должны представить полностью или частично изменено региона для пользователя. Если это свойство имеет значение ИСТИНА, вспомогательная технология должна представлять весь регион в целом, в противном случае часть региона, который изменил может быть объявлено на своих собственных.

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

Свойства aria-busy

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

Свойстваaria-relevant

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

additions
    Узлы добавляются в DOM в регионе.
removals
    Узлы удаляются из DOM в регионе.
text
    Текст добавляется или удаляется из DOM.
all
    Все приведенные выше (добавления, удаления текста) относятся к этому региону.

В отсутствие явных арии-соответствующее имущество, то по умолчанию будет предположить, что это текстовые изменения и дополнения (ария-соответствующими = “дополнений текст”). Вот как это будет только объявляют об изменениях, если узлы добавляются в DOM в регионе. Если есть изменения текста или узлы удаляются в регионе, пользователь не будет уведомлен.

Когда можно использовать ARIA?

Там нет отрицательных побочных эффектов от использования ARIA, так что вы можете начать использовать его сразу же. Все четыре основных браузеров внедрили поддержку ARIA, или планируют реализовать поддержку ARIA. Opera 9.5 и Firefox 1.5 + уже включает поддержку ARIA. Internet Explorer 8 Beta имеет поддержку ARIA, и WebKit, открытой платформы приложений источника за Safari, объявили, что они начали добавлять поддержку ARIA.

ARIA также становится широко поддерживается вспомогательными технологиями. JAWS 7.1 +, Window-Eyes 5.5 +, NVDA, ZoomText 9 +, и другие, имеют базовую поддержку ARIA, и ситуация призван улучшить.


Будьте одним из первых пользователей

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

Использование ролей документа

На мой личный сайт, я включил документ ориентиром для основных ролей, навигация, поиск, и вторичный. Рассмотрим следующую структуру документа.
Мы могли бы написать роль атрибута для наших ориентиров документ непосредственно в разметке.
Альтернативно, как большинство страниц структурированы таким образом, они могут быть оформлены с CSS, вполне вероятно, что страница будет структурирован с ID атрибутов, которые могут быть переданы в функцию JavaScript. Ниже приведен пример простой функции JavaScript, которая принимает идентификатор атрибута элемента, а роль значение и устанавливает атрибут роли в соответствующем элементе.

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

Укажите обязательные поля

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

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

Добавить другими соответствующими свойствами

Есть много свойств ARIA, которые можно использовать на простейших веб-сайтов, таких как Ария-labelledby и ария-describedby. Ария-labelledby свойство указывает на один или более элементов, которые считаются метку для элемента, а ария-describedby свойство указывает на один или элементов, которые считаются описание для элемента.


Приоритеты разметки

ARIA разметка имеет приоритет над языком разметки хозяин. Это означает, что если ария-labelledby используется наряду этикетка для = “”, ария-labelledby будет иметь приоритет. Метка элемент по-прежнему рекомендуется для старых браузеров, которые не понимают ARIA. Простой метод, чтобы избежать столкновений является использование ария-labelledby атрибута для ссылки на этикетке – это обеспечивает метка доступно независимо от ARIA поддержки.

Просмотрите полный список состояний и свойств, чтобы увидеть, как ARIA может помочь вам обеспечить ваш контент более доступным.


Теперь все вместе

HTML не было первоначально разработано для создания веб-приложений, но разработчики создали их, рисуя свои собственные виджеты и добавление поведения с JavaScript. Проблема в том, что роль, государственных и свойств виджетов и обновленное содержимое на этих страницах не передал правильно вспомогательных технологий. Спецификации ARIA решает эти проблемы, позволяя разработчикам виджетов описывать в деталях, определять структуру документа, а также определить области страницы, которые изменят.

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

Ресурс: Introduction to WAI ARIA

Alice Pascal

Одним из первых проектов, которые я сделал после формирования Зеркала Software Limited, была редактирование синтаксиса в среде программирования под названием Алиса: Персональные данные Паскаль.

Синтаксис-направленные редакторы несколько спорные, однако, я думаю, они очень хороши для людей, изучающих программирование, и Алиса была написана первая для использования в сфере образования в школьных системах Онтарио. Наши первые продажи, контракт на разработку его для Министерства образования там.

ALICE была портирована для работы на IBM PC, под DOS и Atari ST, а базовая версия была сделана только для школ провинции Онтарио. PC версия была продана компании под названием Software Каналы Inc, подразделение программного обеспечения Грэм. Грэм программного обеспечения, по крайней мере, по мнению обвинения, сделанные в парламенте, оказалась чем-то обман, и он закрыл свои двери 7 месяцев после запуска ALICE.

Вы все еще можете прочитать обзор версии Atari ST в Сети!

ПК и Atari версии ALICE сейчас свободны. Вы можете поднять архив файлов и источники для руководства в alice.zip на этом сайте.

Новинка! Версия Atari ST с ALICE достигает бесплатно. версия Atari ST была гораздо более сложной, с графическим интерфейсом, а также утилиты для записи графики и графического интерфейса программы. Вы можете получить его в любой почтовый формате или в виде двух Atari ST Образы дисков для использования с ST эмуляторы Диск 1-й диск 2

Для DOS, она поставляется в двух версиях. Оригинальная версия может использовать только 128K запасных оперативной памяти. Он был предназначен для 256кб компьютеров DOS распространены в 1985 году. «Большой» версии могут использовать “полную” 640K, и имеет несколько особенностей.

Алиса была очень прогрессивным для своего времени, мне нравится думать. Он имел более 700 экранов помочь тому, когда помощь была необычная особенность в программном обеспечении. Число ее функций были позже повторены в такие продукты, как Microsoft Visual Basic и другие.

Если у вас есть школы, вы можете probaby получить на руки пожертвовал старых ПК бесплатно. Не стесняйтесь учить программированию с использованием ALICE. Она работает в DOS, а также будет работать в окне DOS под Windows, или NT. (На самом деле, если вы поместите его в окне DOS, с более чем 25 линий, вы можете дать ему параметр командной строки или ap.ini вариант “L = 50″, например, чтобы запустить ее в 50 линии окне.)

Однако, к сожалению, в освобождении этого свободен, я должен заявить, что абсолютно никакой поддержки будут доступны. Если я начну принимать звонки в службу поддержки, особенно от людей, которые думают: “Ах, он не возражал бы просто один простой вопрос”, то мне придется reliquish свободной лицензией.

Руководства были преобразованы в HTML, хотя они все еще несколько старых и были написаны для бумаги, а не для веб-страниц.
1. Учебник
2. Руководство пользователя
3. Язык Алиса Паскаль – Руководство
У меня есть около 8 ящиков руководство осталось. Я буду жертвовать их любому, кто может организовать приехать забрать их в г. Саннивейл, штат Калифорния.

Редактор Синтаксиса

Что синтаксис направлен среды программирования? Для начала это то, что можно было бы назвать сегодня визуальной интегрированной средой программирования. Они распространены сегодня, но в 1984 году многие из этих идей были новыми.

В синтаксисе направлен редактор, редактирования программы, а не кусок текста. Редактор работает непосредственно на программу в виде дерева – соответствие синтаксических деревьев, с помощью которых язык структурирован. Единиц вы работаете с не линии и chracters но сроки, выражения, заявления и блоков.

Это делает его буквально невозможно иметь синтаксическую ошибку, и начинающим пользователям получить шаблоны для построения своей программы, которые показывают компоненты каждой структуры так, чтобы они “заполнить пробелы”. Например, когда вы набираете на на “Заявление” заполнитель, вы сразу увидите:

for variable: = start to finish do begin
Statement
end;

И все, что вам сделать, это заполнить пробелы. Но по пустым вы можете получить помощь, получить меню, что вы можете набрать и больше.

Интересные функции

Вот некоторые из функций, доступных в Алисе:
1. Синтаксис направлен редактором с гибким входом – типа почти все, что угодно.
2. Интегрированная, визуальная среда программирования с отладчик
3. 700 экранов помощи
4. Спросите в любой точке, что может быть напечатан, или помочь на любой символ или особенность языка
5. Курсор После” режиме отладки – смотреть программы в действии
6. Скрывать или показывать подразделов программы для удобства чтения и структура
7. Несколько рабочих программ с помощью вырезания и вставки
8. Turbo Pascal совместимостью. (Использование в качестве редактора, затем выводить как текст для компиляции.)
9. Настраиваемые
10. Включает в себя автономные переводчика, текст файлового ввода и вывода для работы с другими инструментами.
11. Быстрый Паскаль переводчик
12. Работы по всего лишь 8088 ПК с 384K оперативной памяти – и в DOS-окне на современных Windows 95 или Windows NT компьютер с молниеносной скоростью.

Исходный код

Кроме того, я терпеть исходный код, готовый к компиляции на Linux. Это может быть найден в alice.tar.gz архива. Будьте осторожны, однако, что этот источник находится в довольно грубой форме. Я положил его в основном в надежде, что кто-то еще может быть интересного в очистке ее немного, что делает RPM и т.д. Существует еще источник для других частей, а также, свяжитесь со мной, если интересно.

Ресурс: Alice Pascal

Ребекка Блад. Блоги: История и перспективы

В 1998 году было всего несколько сайтов типа, которые сейчас определены как блоги (так назван Йорн Баргер в декабре 1997 года). Джесси Джеймс Гарретт, редактор Infosift, начал составлять список “других сайтов, как его”, как он нашел их в свои путешествия по Сети. В ноябре того же года, он послал этот список Кэмерон Барретт. Кэмерон опубликовал список Camworld и других подобных сайтов поддержание начал посылать их URL, к нему для включения в список. Джесси ‘странице только блоги списки 23, как известно, существовали в начале 1999 года.

Вдруг сообщества вскочил. Это было легко прочитать все блоги в списке Камерон, и наиболее заинтересованные люди. Петр Merholz объявлено в начале 1999 года, что он собирается произнести это пи-блог “, и это неизбежно было сокращено до« блог »с редактором блога называют« блоггер ».

На данный момент, прыгучий началось. Все больше и больше людей начали публиковать свои собственные блоги. Я начал шахте в апреле 1999 года. Вдруг стало трудно читать каждый блог каждый день, или даже отслеживать все новые, которые появлялись. Список Кэмерона стал настолько велик, что он начал в том числе только блоги на самом деле он стоит сам. Другие блоггеры сделали то же самое. В начале 1999 года Брижит Eaton составлен список всех блогов, что знала о и создал портал Eatonweb. Бриг оценили все представленные простым критерием: что сайт состоит из от записи. Блогеры обсуждали, что было и чего не было блога, но так как Eatonweb Портал был самый полный список блогов доступны, включая определение Бриг взяла верх.

Такой быстрый рост продолжался непрерывно до июля 1999 года, когда Pitas, первые свободные создания своего собственного блога-инструмент запущен, и вдруг там были сотни. В августе Pyra выпущен Blogger и Groksoup запущен, и с легкостью, что эти веб-инструментов, при условии, победившая с трамплина превратился взрыва. В конце 1999 разработчик Дэйв Винер ввел Редактировать, и Джефф А. Кэмпбелл запустила Velocinews. Все эти услуги предоставляются бесплатно, и все они предназначены, чтобы люди могли публиковать свои собственные блоги быстро и легко.

Оригинальные блоги были ссылку управляемых сайтов. Каждая была уникальной смеси в пропорции ссылки, комментарии и личные мысли и эссе. Блоги могут быть созданы только людьми, которые уже знали, как сделать веб-сайт. Редактор блога либо уже научил себя код HTML для удовольствия, или, после работы в течение всего дня создания коммерческих сайтов, провел несколько вне рабочих часов каждый день в Интернете и размещения на ее сайте. Это были веб-энтузиастов.

Многие современные блоги следовать этому оригинальный стиль. Их редакторы настоящее ссылки как для малоизвестного углах Интернета и текущей статьи по их мнению, достойны внимания. Такие ссылки почти всегда сопровождаются комментариями редактора. Редактор с некоторыми знаниями в поле может продемонстрировать точность или неточность подчеркнул статьи или некоторые факты в нем; предоставить дополнительные факты, которые он испытывает, имеющих отношение к этому вопросу на руку, или просто добавить мнение или различные точки зрения от того, в части он связан. Как правило, этот комментарий характеризуется непочтительный, иногда саркастический тон. Более умелые редакторов удалось передать все эти вещи в одно или два предложения, с которыми они вводят ссылку (что делает их, как Halcyon показал мне, пионерами в искусство и ремесло микроконтент). На самом деле, формат типичный блог, предоставляя только очень короткий промежуток, в который записывается запись, поощряет содержательность со стороны писателя, более комментариях часто дается свое собственное пространство в качестве отдельного эссе.

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

Но этот тип блога важна еще по одной причине, я думаю. В Дуглас Rushkoff в медиа-вирусов, Грег Руджеро с Immediast Подземные цитирует “Медиа корпоративных владение … Вы не можете участвовать в средствах массовой информации. Приведение, что на первый план является первым шагом. Второй шаг состоит в определении. Различие между государственными и аудитории аудитория пассивна; общественность участия Нам нужно определение носителя, общественных по своей ориентации “.

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

Блог редакторов иногда контекст статьи, сопоставляя его с статье о связанных теме; каждой статье, рассматривать в свете других, может взять на себя дополнительный смысл, или даже привлечь читателя к выводам, вопреки неявной целью каждого из них. Было бы слишком много, чтобы назвать этот тип блога “независимые СМИ”, но очевидно их редакторов, которые занимаются поиском и оценкой “факты”, которые представляются нам каждый день, напоминать общественности, что говорит о Руджеро. Написав несколько строк, каждый день, блог редакторов начинают по-новому определить СМИ как общественности, участия усилий.

Теперь, в течение 1999 что-то еще произошло, и я полагаю, это связано с введением Blogger себя.

Хотя блоги всегда включен смесь ссылки, комментарии и личные записи, в пост-Blogger взрыва все большее количество блогов избегали этого сосредоточиться на веб-At-Large в пользу своего рода краткую форму журнала. Эти блоги, часто обновляется несколько раз в день, вместо этого были записи мыслей блогера: что-то заметил на дороге на работу, заметки о выходных, быстрое отображение на некоторые темы или другой. Ссылки взял читателя на сайт другой блогер, с которым был первым, имеющих общественный разговор или встретились накануне вечером или на сайте группы, что видел ночью. Полномасштабный разговоры велись между тремя или пятью блоги, каждая ссылка с другом в их соглашении или опровержения других позиций. Культы личности возникли как новые блоги появились некоторые имена появляются снова и снова в ежедневных записей или перечислены в обязательном боковой панели «других блогов» (пережиток первоначальном списке Кама). Она была и есть, интересно увидеть новые блоггеры позиционировать себя в этом сообществе, ссылок и реагировать на эти блоги читают больше всего, их боковая панель утверждение племени, к которому они хотят принадлежать.

Зачем менять? Почему так много? Я всегда подозревал, что некоторые популярность эта форма может быть простое желание подражать сайтов головы Pyra детей Ev и Мэг. Как создатели Blogger, их очаровательным, остроумным блоги очередь рекламу своей компании для своих самых популярных продуктов.

Более того, Blogger себя не накладывает ограничений на формы содержимого публикацией. Его веб-интерфейс, доступный из любого браузера, состоит из пустой коробки форму, в которую блоггер может ввести что-нибудь …: проходят мысли, расширенные эссе, или детские воспоминания. Одним щелчком мыши, Blogger будет размещать … вообще … на сайте писателя, архив его в нужное место, и этого писателя с другой пустое поле, только и ждут, должны быть заполнены.

Сравните это с веб-интерфейс Metafilter, популярный блог сообщества. Здесь писатель представлен с тремя ящики вида: первый для адрес ссылки сайта, второй за звание вход, и третий по каким-либо комментарием писатель хотел бы добавить. Metafilter интерфейс инструктирует писатель внести свой вклад ссылку и добавить комментарий, Blogger не дает таких требований. Blogger позволяет легко вводить мысли или реакции, что многие люди не склонны к охоте на ссылку и составить текст вокруг него.
Именно это в свободной форме интерфейс в сочетании с абсолютной простотой использования которая, на мой взгляд, сделал больше, чтобы поощрить переход от фильтра стиле блога в журнале стиле блога, чем любой другой фактор. И там был сдвиг. Поиск фильтр стиле блога, щелкнув по тысячам блогов, перечисленных в weblogs.com, Eatonweb портала, или Blogger каталог может быть сизифов труд. Новички, казалось бы, наиболее обращено на блоге, не фильтр стиль Weblogging.

Конечно, оба стиля по-прежнему существуют, конечно, особенно смесь ссылки, комментарии и личные наблюдения уникальными для каждого отдельного сайта всегда давала каждый блог свой особый голос и личность, и, конечно, блог всегда был беспредельно гибким форматом. Но приток блогов изменилось определение блога от “список ссылок с комментариями и личными отступлений” на “сайт, который часто обновляется, новые материалы, расположенные в верхней части страницы.” Мне очень жаль, что не было другого термина для описания фильтра стиля блога, который будет легко отличить от блога. По принципу истины в рекламе, это будет сделать намного легче для читателя дерзкими, чтобы найти тип блога он больше всего любит.

Итак, что же с блога? Есть ли интерес или важность для всех, кто не производит один? Ну, я думаю, что это должно быть.

Фильтр стиле блога дает много преимуществ для своих читателей. Она показывает проблески невообразимой сети, чтобы те, у кого нет времени заниматься серфингом. Будучи интеллигентным человеком фильтры через средства массовой информации ежедневно упакованы для нашего потребления и выбирает интересные, важные, забывают, и неожиданным. Этот человек может дать дополнительную информацию к той, которая предоставляет корпоративные СМИ, разоблачить ошибочность аргументов, возможно, обнаружить нечеткие детали. Потому что редактор блога могут комментировать свободно на то, что она найдет, за неделю чтения открою вам ее личные предубеждения, что делает ее предсказуемый источник. Это еще раз дает нам возможность превратить критически как к информации и комментариев, она обеспечивает. Ее непочтительный отношением проблемы достоверности “фактов”, представлен каждый день со стороны властей.

Вскоре после того как я начал выпускать карманные Ребекки я заметить две побочных эффектов я не ожидал. Во-первых, я обнаружил, свои интересы. Я думал, что я знал, что меня интересовало, но после соединения историй в течение нескольких месяцев я видел, что я был гораздо более заинтересован в науке, археологии, а также вопросы о несправедливости, чем я понял. Что еще более важно, я начал ценить более высоко свою точку зрения. При составлении моего текста ссылки каждый день я тщательно рассмотрел мое собственное мнение и идеи, и я начал чувствовать, что моя точка зрения была уникальна и важна.

Этот глубокий опыт может быть наиболее чисто реализуется в блоге стиле блога. Отсутствие внимания на внешний мир, блогер вынуждены делить его с кем мир читает. Он может заниматься другими блоггерами в разговоре об интересах они разделяют. Он может задуматься о книге, которую он читает, или поведение кого-то на автобусе. Он мог бы описать цветок, который он видел растущую между трещины тротуара по дороге на работу. Или он может просто заметок о своей жизни: то, что работа нравится, то, что он на обед, что он думает о последних фильма. Эти фрагменты, собранная в течение нескольких месяцев, может дать неожиданно интимной зрения того, что это должно быть конкретное лицо в определенном месте в определенное время.

Блогер, в силу просто записывал все, что у него на уме, будет сталкиваться со своими мыслями и соображениями. Блоги каждый день, он станет более уверенным писателя. Сообщество из 100 или 20 или 3 человека могут возникать вокруг общественности отчет о своих мыслях. Будучи встретился с дружественными голоса, он может получить больше уверенности в его взгляд на мир, он может начать эксперимент с более длинными формы письма, играть с хайку, или начать творческий проект – тот, который он бы уволен как несущественным или сомневался, что смог завершить только несколько месяцев назад.

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

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

Обещание паутины, чтобы каждый мог публиковать, что тысячи голосов может процветать, общаться, подключить. Истина, что только те люди, которые знали, как код веб-страницы может сделать их голоса были услышаны. Blogger, Pitas, а все остальные дали людям практически без знания HTML возможность публикации в Интернете: для понтификата, помню, сон, и спорить на публике, так же легко, как они посылают мгновенные сообщения. Мы не можем серьезно сравнивать создания World Wide Web себя наличие свободного технология, которая позволяет любому пользователю с веб-браузером, чтобы выразить свои уникальные, невоспроизводимые видение остального мира … мы можем?

В сентябре 2000 Существуют тысячи блогов: тема-ориентированных блогов, альтернативной точки зрения, проницательный обследования условий жизни человека, как это отражается средствах массовой информации, короткая форма журналах, ссылки на странно, и в свободной форме ноутбуков идей. Традиционные блоги выполняют ценную службу фильтрации и предоставляет инструменты для более критической оценки информации, имеющейся на сайте. Свободная блоги являются не чем иным вспышкой самовыражении. Каждый свидетельствует ошеломляющий переход от возраста тщательно контролировать информацию, предоставленную санкционирована властями (и художников), на беспрецедентную возможность для отдельных выражений в мировом масштабе. Каждый вид блога уполномочивает лиц на многих уровнях.

Так почему же не каждый список закладок содержать пять блогов? В начале 1999 года он действительно казалось, что теперь каждый список закладок будет. Был немного внимания средств информации и новых блогов были созданы с каждым днем. Это была небольшая, быстро растущего сообщества и казалось, что она на краю широкой осведомленности. Возможно, цунами новых блогов созданы в результате Pitas и Blogger измельченных движения, прежде чем можно достичь критической массы, внезапное экспоненциальный рост сообщества вынес это несудоходны. Блоги, когда-то фильтры в интернете, вдруг стало так много, они были столь же запутанным, как сама сеть. Еще несколько статей появились рекламировали блоги как следующая большая вещь. Но средний читатель, надеюсь, будут переходить на Eatonweb портал, оказалась перед алфавитный список тысячи блогов. Не зная, с чего начать, она быстро отступили назад к ABCnews.com.

У меня нет ответа. В наш век одного веб-сайта страницы неясным турок имени Махир может охватить веб в днях. Но неприступной истины в том, что корпоративные СМИ и коммерческие и государственные структуры обладают большей частью недвижимости. Dell управляет более веб-страниц, чем все блоги вместе взятые. PR-машина Sprite может точка больше человеко-часов на продвижение одного сообщения – “повинуйтесь своим Жажда” – чем комбинированный человеко-часов каждый Weblogger жив. Наша сила – что каждый из нас говорит на отдельные голоса индивидуальное видение – это, по высоким ставкам мир тщательно спланированных сообщения предназначен, чтобы отвлечь и манипулировать ими, ответственность. Мы, очень просто, в меньшинстве.

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

Нас побоев от потопа данных и если мы не создадим времени и пространства, в которых, чтобы отразить, мы останемся только с нашей реакции. Я твердо верю в силу блоги превратить оба писатели и читатели из “аудитории”, чтобы “общественность” и от “потребителя” на “создателя”. Блоги не являются панацеей для нанесения вреда эффектов медиа-насыщенных культуры, но я считаю, что они являются одним противоядие.

Ресурс: Ребекка Блад. Блоги: История и перспективы

Тестирование Юзабилити Сайта

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

Джаред Катушка скажет вам бесплатно, что, когда его компания исследовала причины неудачного дизайна, они обнаружили, что недостаток информации был корнем всех плохих дизайнерских решений. Точка исследования нужд потребителя, чтобы сделать хорошие, четкие, уверенные дизайнерские решения. Почему юзабилити-тестирования по сравнению с использованием других методов? Я утверждаю, что 80% от стоимости тестирования происходит от магии наблюдения и наблюдая, как люди используют дизайн. То, что вы видите и то, что вы слышите, часто удивительно, и непредсказуемо.
Остальные 20% от стоимости от предварительного тестирования занимает обсуждение членами команды, как они решают, какие их основные вопросы, и дискуссии после тестирования о том, что делать с тем, что они узнали.

Один тест не подходит для всех

Когда я говорю “юзабилити-тестирование”, вы можете себе представить это, как психологический эксперимент: “Тема” в одной комнате, со стеком задачу карт и могут даже иметь биометрические датчики. «Исследователи» находится в другой комнате, регистрации данных и давая инструкции по Интерком как голос Бога.

То изображение юзабилити тестирования является то, что я бы назвал “формальное тестирование юзабилити”, и, вероятно, будет итоговая проверка. Это способ проверить, является ли дизайн тем, что вы от него хотите, и работает так, как вы хотите.

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

Классический процесс

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

1. Разработка плана тестирования
2. Выбор среды тестирования
3. Поиск и отбор участников
4. Подготовка тестовых материалов
5. Проведение сессий
6. Подведение итогов с участниками и наблюдателями
7. Анализ данных и наблюдений
8. Создать выводы и рекомендации

Давайте рассмотрим каждый из этих шагов.

Разработка плана тестирования

Сядьте вместе с командой и согласуйте цель тестирования (кроме “определить, могут ли пользователи использовать его»), вопросы, которые вы будете использовать, и характеристики людей, которые буду испытывать дизайна. (Мы называем их участниками, не являющиеся субъектами.) План также обычно включает в себя методы и меры, которые вы будете использовать, чтобы узнать ответы на Ваши вопросы исследования. Вполне возможно, чтобы завершить это обсуждение в течение часа. Записывайте все и выберите кого-то из команды, чтобы смягчить тестовые сессии.

Выбор среды тестирования

Будете ли вы использовать лабораторию? Если нет, какие будут установки? Будете ли вы записывать сессии? Опять же, команда должна решить эти вещи вместе. Было бы хорошо включить материально-техническое обеспечение в план тестирования.

Поиск и отбор участников

Сосредоточьте внимание на поведение, в котором вы заинтересованы. В наблюдении это легче, чем пытаться выбрать сегментацию рынка и отбор по демографии. Если вы тестируете службы веб-конференций, вы хотите протестировать людей, которые проводят удаленные встречи. Если вы тестируете процесс бронирования на веб-сайте, вы хотите протестировать людей, которые делают собственные заказы. Смысл? Не делайте этот процесс труднее, чем он должна быть.

Подготовка тестовых материалов

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

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

Проведение сессий

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

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

Подведение итогов с участниками и наблюдателями

В конце каждой сессии, не забудьте сделать шаг назад к участнику и спросить: “Как было?” Кроме того, приглашайте опытных наблюдателей пройти дополнительные вопросы модератора или задавайте вопросы сами. Поблагодарите участников и попрощайтесь.

Теперь, команда наблюдения должна сказать кратко о том, что они видели и что они услышали. (Эта дискуссия идет не о решении проблем проектирования)

Анализ данных и выводы

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

Что вы получаете

Если вы будете следовать этому процессу в линейном случае, вы будете в конечном итоге с тщательным планированием, твердым контролем, кучей данных, тщательным анализом, и наконец–результатами. (А также много документации.)

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

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

Кто-то, что-то, где-то

Действительно, все, что нужно для юзабилити тестирования, это тот, кто является пользователем вашего проекта (или кто действует как пользователь), то для проверки (дизайн в любом состоянии завершения), и там, где пользователь и дизайн встречаются вместе, и вы можете наблюдать за этим. Где-нибудь даже может быть удаленным, в зависимости от состояния конструкции.

Как только вы войдете в ритм проведения исследований пользователей и юзабилити-тестирование, вы узнаете, ярлыки и процесс до нескольких шагов, которые работают на Вас. Когда мы приступим к существенным шагам в процессе юзабилити-тестирования:

Разработка плана тестирования

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

Поиск участников

Опять же, речь идет о поведении. Поведение, в котором вы заинтересованы, исследование родителей, которые переживают за поступление своих детей в колледж. Просто убедитесь, что:
1. Знаете своего пользователей
2. Оставляете достаточно времени
3. Учитесь и гибкие
4. Помните, что они люди
5. Щедро вознаграждаете

Проведение сессий

Если вы модератор, сделайте все возможное, чтобы быть беспристрастными и объективными. Просто представьте дизайн и смотрите, что происходит. Даже дизайнер может быть модератором, чтобы вы могли сделать шаг назад и увидеть тест как объективное упражнения.

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

Как сессия продолжается, задавать открытые вопросы: Почему? Каким образом? Что?

Подведение итогов с наблюдателями и приход к консенсусу о направлении дизайна

Обсуждение. Мозговой штурм. Согласитесь. В случаях, когда проект не был идеальным вдаваясь в юзабилити-тестирования (и это редкость) и даже если команда выполняется только одной или двух сессий, использовать эти наблюдения вы сделали, чтобы придумать теорий о том, почему происходило для участников, как это было. Внести некоторые изменения и начать цикл снова.

Наблюдение пользователей

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

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

Ресурс: Usability Testing Demystified