EduTranslator

Научные работы со всего мира

EduTranslator

Рубрика: IT технологии (Page 1 of 3)

Знакомство с доступностью сети

Оригинал доступен по ссылке webaim.org/intro

Введение

Большинство из нас вряд ли могут представить себе жизнь без интернета. Кое-кто утверждает, что ни одно другое изобретение не было более революционным со времен печатного станка Гуттенберга в 1400-х годах. Мир может находиться «у вас под рукой» при помощи одного щелчка мыши — если вы можете использовать мышь… и видеть экран… и слышать звук.

Сеть предлагает небывалые возможности

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

person using a screen reader with a mobile phone

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

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

person using a mouth wand to operate a computer keyboard

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

Нехватка потенциала сети

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

person watching a closed-captioned video

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

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

Люди с ограниченными возможностями в сети

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

Категории инвалидности

Зрительная

Слепота, слабое зрение, дальтонизм

Слуховая

Глухота и слабый слух

Нарушения опорно-двигательного аппарата

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

Когнитивная

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

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

Реализация веб-доступности

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

Обязательства и ответственность

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

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

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

Обучение и техническая поддержка

Совладельцы сайта часто спрашивают, что нужно «добавить» на сайт, чтобы сделать его доступным. В действительности, структура кода, делающая сайт более доступным, обычно более легка и эффективна.

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

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

Законы и стандарты

Если вы проживаете в Соединенных Штатах, то применимые в данном случае законы включают Закон о правах американцев с инвалидностью (ADA) и Закон о реабилитации инвалидов 1973 года (разделы 504 и 508). Множество международных законов также имеют отношение к проблеме доступности.

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

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

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

Понятность: контент понятен и сокращает возможность путаницы и двусмысленности.

Надежность: доступ к контенту есть у широкого спектра технологий (как старые, так и новые пользовательские программные агенты и вспомогательные технологии).

Первые буквы этих четырех принципов — ВРПН: это поможет вам их запомнить.

Принципы доступного дизайна

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

Предоставьте эквивалентный альтернативный текст

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

Создать логическую структуру документа

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

Сделать заголовки для таблиц данных

Таблицы данных нуждаются в ячейках заголовков строк и столбцов (<th scope=»row»> и <th scope=»col»>)для того, чтобы программно связать их с соответствующими ячейками данных (<td>), что упрощает перемещение и понимание таблицы для тех, кто использует программы чтения с экрана.

Убедитесь, что пользователи могут заполнить и отправить все формы

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

Напишите ссылки, которые имеют смысл вне контекста

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

Титры и/или предоставление стенограммы для медиа

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

Обеспечьте доступность PDF, Word, PowerPoint и прочего контента, который не в HTML формате.

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

Разрешить пользователям пропускать повторяющиеся элементы на странице

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

Не полагайтесь исключительно на цвет для передачи смысла

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

Убедитесь, что содержание написано ясно и легко читается

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

Сделайте доступным JavaScript

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

Дизайн согласно стандартам

Действительный HTML и CSS способствуют доступности, делая код более гибким и надежным.

Это всего лишь введение. Чтобы узнать больше, изучите наши статьи и ресурсы.

Вывод

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

 

Статическое и динамическое распределение многомерных массивов в C

Оригинал доступен по ссылке hermetic.ch

Массив в C – это область памяти, где доступ к элементам (char, int и пр.) может быть осуществлен с помощью индекса (в одномерном массиве, к примеру, name[0]) или нескольких индексов (в многомерном массиве, например, names[3][0][2]). Первый элемент в одномерном массиве x[] – это x[0], в двухмерном массиве x[][] – это x[0][0] и т. д.

В C вы можете распределить память для массива, используя такие выражения, как:

char name[32];

int nums[100];

double coords[60][60]

char names[10][20][64];

double space[32][32][32][32];

Индекс последнего элемента в одномерном массиве будет на единицу меньше размера массива (к примеру, name[31], если объявленное имя массива – char name[32]). В многомерном массиве индексы последнего элемента на единицу меньше размера каждого измерения (например, names[9][19][63], если объявлено, что массив использует char name[10][20][64]).

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

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

Динамическое распределение одномерного массива легко выполнить с помощью функции malloc(). К примеру, если вы хотите выделить массив на 1000 элементов типа itn, то можно использовать следующий код:

#include <malloc.h>

#include <stdio.h>

#include <stdlib.h>

void main(void)

{

int *a;

int i=1000;

if ( ( a = (int *)malloc(i*sizeof(int)) ) == NULL )

{

printf(«\nError, memory not allocated.\n»);

exit(1);

}

for ( i=0; i<1000; i++ )

a[i] = i;

//  …

free(a);

}

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

Как конвертировать JPEG в BMP

Оригинал на английском coolutils.com

Если формат TIFF для вас не настолько удобен, как BMP, то вы можете convert tiffэкспортировать свою коллекцию изображений TIFF в формат BMP. Большинство программ для преобразования графических изображений предлагают конвертировать изображения по одному, а это занимает слишком много времени в том случае, если вам необходимо обработать сто или даже несколько десятков изображений. Гораздо удобнее конвертировать TIFF в BMP в пакетном режиме с помощью Total Image Converter.

Эта удобная программа для преобразования графики предназначена для переведения изображений из одного формата в другой, расширяя возможности их использования для различных приложений и целей. Файлы легко перевести в любой нужный вам формат, так как программа поддерживает все основные графические форматы, включая: BMP, ICO, GIF, PDF, RAW, PNG.

Чтобы перевести ваши файлы из TIFF в BMP, вам необходимо выбрать нужные для конвертации изображения TIFF. Если они находятся в папке с файлами в других форматах, можно отобрать файлы TIFF фильтром  *.tiff. После этого можете нажать кнопку «Выбрать все» для того, чтобы сформировать пакет исходных файлов. В данном случае программа преобразует все файлы TIFF, находящиеся в текущей папке. Вы можете выбрать один или несколько файлов — в зависимости от необходимости.

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

image converter

Данным пакетным конвертером из TIFF в BMP можно управлять из командной строки. Эта альтернатива GUI подойдет для пользователей, которые хотели бы выполнять преобразования в фоновом режиме. Все необходимые параметры командной строки перечислены в меню «Справка».

Начните работать с Total Image Covnerter прямо сейчас — для этого можно просто загрузить пробную бесплатную или лицензионную версию.

 

FIELD: сприятливе інтегроване середовище для навчання і розвитку

Оригінал доступний на сайті cs.brown.edu

Огляд

FIELD — це комплексне середовище програмування, яке складається з певної кількості наших власних інструментів, призначених головним чином для візуалізації програмного забезпечення, а також оболонок для більшості інструментів програмування UNIX, що існували під час його розробки. Воно забезпечує інтегроване середовище шляхом використання центрального сервера повідомлень, який дозволяє різноманітним обгорткам (й інструментам) надсилати один одному повідомлення. Інтеграція інструментів з вихідними файлами здійснювалась за допомогою редактора анотацій, що підтримував довільні анотації в вихідних рядках і прив’язував ці анотації до повідомлень. FIELD включав численні візуалізації, зокрема структурні візуалізації, візуалізації структурних даних і динамічні візуалізації купи та файлів.

Публікації

FIELD: сприятливе інтегроване середовище для навчання і розвитку, Kluwer Press, 1994.

Бесіда щодо FIELD.

Довідкові сторінки man для інструментів FIELD.

Інструкція до FIELD.

Посібник по використанню FIELD. (старіша версія)

SDT: мова програмування для налагодження програми, не опубліковано, 1989.

Візуалізація для програмної інженерії — середовища програмування, в Software Visualization, Programming as a Multimedia Experience, MIT Press, 1997.

Візуальний моніторинг виконання програми, не опубліковано, 1991.

Взаємодія з середовищем FIELD, Software Practice and Experience, червень  1990.

Інструменти для з’єднання сполучних вузлів шляхом обміну повідомленнями, IEEE Software, липень1990.

FIELD Підтримка C++, Проц. Конференція USENIX C++, квітень 1990.

CCEL: метамова для C++, Друга Проц. Конференція USENIX C++, серпень 1992.

Підтримка супроводу об’єктно-орієнтованих програм, IEEE Trans. on Software Engineering, грудень 1992.

Емпіричне дослідження розробки багатоаспектного програмного забезпечення, Software Eng. Notes, грудень 1992.

Відображення програм і структур з даними, 20-я HICSS, січень 1987.

Використання GELO для візуалізації програмних систем, Проц. UIST’89.

З приводу використання анотацій для інтеграції джерела в середовище розробки програм, в Людський фактор при розробці та аналізі інформаційних систем, North-Holland, 1990.

Види різноманітних інструментів

Огляд єдиного середовища

Редактор анотацій

Інтерфейс дебагера

Вікно для перегляду подій

Вікно для перегляду стека

Вікно для перегляду змінних, що відстежуються

Стандартне вікно для перегляду вводу/виводу

Вікно для перегляду перехресних посилань

Вікно для перегляду граф викликів (показує FIELD повністю)

Вікно для перегляду граф викликів, що показує програму в дії

Браузер ієрархії класів

Браузер робочих характеристик (prof/gprof)

Вікно для перегляду управління конфігурацією

Вікно для перегляду структури даних

Редактор для налаштування структури даних під користувача

Відображення структури даних, налаштованої під користувача

Візуалізатор купи

Візуалізатор вводу/виводу

Візуалізатор продуктивності

Демонстраційне відео

Отримайте програмне забезпечення

FIELD було в певній мірі перенесене на Linux і більш пізні версії Solaris. Зверніть увагу, що значна частина системи не обслуговується і більше не працює — зокрема не працюють численні функції дебагера і деякі інструменти профілювання. Проте якщо ви бажаєте подивитися на код чи випробувати свої сили, ви можете це зробити.

Завантажити джерело.

Ограничения архитектуры IBM PC или проклятие сегментов

Оригинал доступе на сайте world.std.com

Дела давно минувших дней

Altair выпустил первый «персональный компьютер» в 1975 году. Это был настоящий компьютер, и его можно было купить в виде набора за 400 долларов. Ввод совершался через тумблеры передней панели; вывод через светодиоды передней панели (вкл/выкл, не 7-сегментные). Рынком его сбыта были прежде всего любители и фанатики.

К концу 70-х стали доступными персональные компьютеры от многих поставщиков, таких как Tandy, Commodore, TI и Apple. Компьютеры разных производителей не были совместимы. У каждого производителя была своя собственная архитектура, своя операционная система, собственная шина интерфейса и собственное программное обеспечение. Если вы приобрели компьютер, то вы явно заявили о своей приверженности стандартам этого поставщика.

6502

В 1980 году современная архитектура была продемонстрирована на Commodore 6502. 6502 представляет собой однокристальный микропроцессор с архитектурой 8/16, то есть 8-битной шиной данных и 16-битной адресной шиной. Модель программирования отражает аппаратную архитектуру: регистры, в которых хранятся значения данных, например, аккумулятор, имеют размер 8 бит, а регистры, в которых хранятся адреса, такие как счетчик программы, — 16 бит. 16-битная адресная шина дает адресное пространство размером в 64 Кбайт. К началу 80-х годов стали доступными DRAMs на 64 Кбайт, а компьютеры на базе 6502, такие как Commodore 64 и Apple ][, поставлялись полностью оснащенные с RAM в 64 Кбайт.

В 1980 году IBM решила выйти на рынок ПК. Они поняли — и поняли верно — что бесконечное падение цен на DRAM вскорости сделает архитектуру 8/16 устаревшей. Следующим логическим шагом могла бы стать, скажем, архитектура 16/32 — такая, как Motorola 68000. Архитектура 16/32 позволила бы повысить производительность за счет удвоения полосы пропускания системы памяти и обеспечить адресное пространство на 4 Гбайта — этого достаточно для обозримого будущего.

К сожалению, в 1980 году 68000 фактически не была доступна, как и другие однокристальные микропроцессоры с архитектурой 16/32. Проблема в том, что размер матрицы увеличивается напрямую с шириной регистра. Когда вы переходите с 8/16 на 16/32, все регистры становятся в два раза больше, все пути данных становятся в два раза шире, цепочка переноса сумматора АЛУ получает в два раза больше условий — вся схема удваивается в размере. А в 1980 году технологические процессы просто не достигли того уровня, когда однокристальный микропроцессор 16/32 можно было изготовить по рыночной цене.

8086

Что было доступно, так это Intel 8086. 8086 была непродуманной попыткой предоставить адресное пространство размером более 64 Кбайт без фактического увеличения стоимости более мощной архитектуры. 8086 — это архитектура 16/16. У нее 16-битный программный счетчик, 16-битный АЛУ, четыре 16-битных регистра общего назначения и несколько 16-битных индексных регистров. У нее также есть четыре 16-битных регистра сегмента. 8086 выполняет все вычисления и передачу данных, используя 16-битную арифметику, за одним исключением. Непосредственно перед вводом адреса во внешнюю адресную шину 8086 выбирает один из регистров сегмента, сдвигает его на 4 бита влево и добавляет к нему адрес, используя 20-битную арифметику. Таким образом, внешний адрес составляет 20 бит, а адресное пространство  процессора составляет 1 Мбайт.

Четыре сегментных регистра определяют четыре сегмента:

CS сегмент кода
DS сегмент данных
СС стековый сегмент
ES экстра сегмент

 

Большинство операций неявно используют правильный сегментный регистр: выборки команд используют CS, загрузки и сохранения используют DS, а “push” и “pop» используют SS. Несколько операций, таких как перемещение блоков, используют DS и ES — одну для источника и одну для назначения.

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

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

IBM и ее клоны

При обычных обстоятельствах дизайн, столь извращенный и неэффективный, как 8086, был бы просто проигнорирован рынком и исчез бы. Однако 1980 год был счастливым годом для Intel. IBM выбрала 8086 в качестве процессора для ПК. При маркетинговой поддержке и благодаря узнаваемости марки, IBM PC быстро завоевал большую часть рынка. Другие производители либо ушли с рынка ПК (TI), либо заняли нишевые рынки (Commodore, Apple), либо отказались от собственной архитектуры в пользу IBM (Tandy). С долей рынка, близкой к 90%, ПК де-факто стал стандартом. Разработчики программного обеспечения написали операционные системы (MicroSoft DOS, Digital Research DOS), табличные процессоры (Lotus 123), текстовые процессоры (WordPerfect, WordStar) и компиляторы (MicroSoft C, Borland C), работавшие на ПК. Производители оборудования создали дисководы, принтеры и системы сбора данных, которые подключались к внешней шине ПК.

Хотя IBM первоначально захватила рынок ПК, впоследствии она потеряла его из-за поставщиков клонов. Привыкшая быть монопольным поставщиком компьютеров для мэйнфреймов, IBM не была готова к жесткой конкуренции, возникшей из-за того, что Compaq, Leading Edge, AT&T, Dell, ALR, AST, Ampro, Diversified Technologies и другие боролись за долю на рынке ПК. Помимо низких цен и высокой производительности, поставщики клонов предоставили рынку ПК еще кое-что весьма важное: абсолютный стандарт оборудования. Чтобы продать клон ПК, производитель должен был гарантировать, что на нем будет работать все имеющееся у клиента программное обеспечение для ПК и оно будет работать со всем имеющимся у него периферийным оборудованием. Единственный способ сделать это — создать клон, идентичный оригинальному IBM PC на уровне регистра. Таким образом, стандарт, который определил IBM PC, стал незыблемым, поскольку десятки поставщиков клонов поставляли миллионы машин, соответствовавшие ему во всех деталях. Эта стандартизация стала важным фактором низкой стоимости и широкой доступности систем ПК. Это также было серьезным препятствием в попытке выйти за пределы ограничений архитектуры ПК.

Блюз адресного пространства

8086 дает ПК адресное пространство в 1 Мбайт. Его удобно отображать в виде шестнадцати непересекающихся сегментов по 64 Кбайта, распределенных следующим образом:

Сегмент Использование
0-9 RAM
A-B видео RAM
C-D ROM на картах ввода/вывода
E-F ROM BIOS (код операционной системы)

С 10 сегментами, выделенными для оперативной памяти, ПК может адресовать до 640 Кбайт основной памяти. Пространство от 640 Кбайт до 1 Мбайта зарезервировано для использования его аппаратным обеспечением и операционной системой. К середине 80-х данная архитектура устарела. Были доступны чипы DRAM на 256 Кбайт и 1 Mбайт; пользователи покупали ПК с ОЗУ на 640 Кбайт и хотели большего. К сожалению, как показано в таблице выше, на ПК больше нет места для памяти.

Одним из решений было использование системы коммутации банков памяти. Поставщик разработает карту памяти, добавит несколько выбранных банком регистров и отобразит выбранные блоки памяти в адресном пространстве ПК, обычно на C0000. В системы коммутации банков программист отвечает за управление регистрами выбора банка и отслеживание того, какие данные содержат конкретные банки. Сегодня системы коммутации банков обычно соответствуют спецификации расширенной памяти Lotus/Intel/MicroSoft (LIM-EMS). В данном контексте слово расширенная обозначает именно систему выбора банка.

Расширение памяти, без сомнения, позволило нескольким программам использовать более 640 Кбайт RAM, но этого явно недостаточно для долгосрочного решения проблемы увеличения объема памяти. Единственное фактическое решение — перейти к более мощной архитектуре. Intel сделала к этому первый шаг, представив процессор 80286.

80286

Процессор 80286 похож на 8086. Это архитектура 16/24. Шины данных и регистры — 16 бит. Внешняя адресная шина имеет 24 бита, что обеспечивает адресное пространство в 16 Мбайт. Адреса указываются с помощью 16-битного селектора сегмента и 16-битного смещения. Селектор сегмента определяет резидентный дескриптор сегмента памяти. Дескриптор сегмента имеет 24-битную базу сегментов, 16-битный размер сегмента и несколько битов атрибута. Для генерации адреса 16-битное смещение сегмента добавляется к 24-битному базовому адресу сегмента с использованием 24-битной арифметики, а затем стробируется на внешнюю шину адреса.

80286 обеспечивает программиста адресным пространством в 16 Мбайт. Тем не менее, он все еще беспомощен ввиду необходимости манипулировать регистрами сегментов, а также тем, что каждый сегмент ограничен объемом в 64 Кбайта (как в процессоре 8086). Что еще более важно, 80286 ограничен необходимостью оставаться совместимым с ПК.

Intel были в курсе, что не смогут продать новый процессор, если не смогут запускать существующие программы для ПК. Поэтому они разработали 80286 с двумя различными режимами исполнения: реальный режим и защищенный режим. Защищенный режим — это только что описанная архитектура 16/24. Реальный режим — это точная эмуляция архитектуры 8086 16/16. Реальный режим иногда называют режимом DOS. Когда 80286 включается, он загружается в реальном режиме. Это позволяет ему функционировать как процессор в клоне IBM PC. При таком использовании 80286 обеспечивает повышение производительности благодаря более быстрым тактовым сигналам и 16-битным шинам данных. Тем не менее, программист все еще ограничен архитектурой ПК с его адресным пространством в 1 Мбайт и ограничением ОЗУ в 640 Кбайт. Поскольку программы DOS и ПК не будут работать на процессоре 80286 в защищенном режиме, большинство процессоров 80286 работают в реальном режиме.

Безумство дополнительной памяти

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

Наиболее распространенное использование дополнительной памяти — это предоставление RAM-диска системе DOS. Когда программе требуется доступ к данным, хранящимся на диске RAM, она устанавливает бит режима, который переключает 80286 в защищенный режим. Это дает ей доступ к дополнительной памяти. Затем программа выполняет желаемую передачу данных между собственным пространством памяти и RAM-диском в дополнительной памяти. Случается, что нет никакого способа вернуться из защищенного режима в реальный режим, поэтому программа должна впоследствии сохранить свое состояние и возвратить процессор в точку рестарта. После перезагрузки процессор возобновляет выполнение исходной программы в реальном режиме. На практике все это обрабатывается драйвером устройства для RAM-диска, таким как RAMDRIVE.SYS.

Intel планировали, что 80286 откроет путь для развития компьютерных систем. В частности, они надеялись, что ее режим совместимости с DOS позволит им получить признание и что, как только будет установлена ​​достаточная база из процессоров 80286, разработчики программного обеспечения начнут писать операционные системы и программы, использующие возможности защищенного режима. На деле случилось так, что производители клонов ПК использовали его как высокопроизводительный 8086, пользователи запускали его почти исключительно в реальном режиме, а разработчики программного обеспечения не соглашались с тонкостями и ограничениями сегментированной архитектуры защищенного режима.

80386

Следующим предложением Intel стал процессор 80386. Как и 80286, 80386 обладает сегментированной архитектурой и, как и у 80286, у него были два режима выполнения: реальный и защищенный.

В защищенном режиме 80386 — это архитектура 32/32. Схема сегментации еще сложнее, чем у 80286, и я избавлю вас от подробностей. Однако он допускает смещения 32-битных сегментов, поэтому один сегмент может занимать до 4 Гбайт. Это позволяет программисту определить один сегмент, который покрывает всю доступную память, вместо того, чтобы постоянно манипулировать набором из 64-байтовых сегментов. Это также позволяет индексировать массивы размером более 64 Кбайт.

В реальном режиме 80386 обеспечивает точную эмуляцию архитектуры 8086 16/16.

К сожалению, возможности 80386 используются чуть больше, чем возможности 80286. Программы DOS и ПК не будут работать на процессоре 80386 в защищенном режиме, поэтому большинство процессоров 80386 работают в реальном режиме. Процессор в моем нынешнем компьютере работает в реальном режиме. Он обеспечивает доступ к 640 Кбайтам основной памяти и 3456 Кбайтам RAM-диска, что в общей сложности составляет 4 Мбайта установленной ОЗУ.

Модели памяти

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

Одна из проблем заключается в том, являются ли адреса 16-битными или 32-битными. 16-битный адрес обеспечивает смещение в один сегмент. Сегментный регистр уже должен быть загружен с соответствующим базовым адресом. 32-битный адрес обеспечивает как базовый адрес сегмента, так и смещение в этом сегменте. При доступе к памяти через 32-битный адрес программа сначала загружает регистр сегмента из старших 16 бит адреса, а затем использует младшие 16 бит адреса в качестве смещения в этом сегменте. Для 32-битных адресов требуется больше памяти и больше циклов ЦП, но они обеспечивают доступ ко всему 1 Мбайтовому адресному пространству процессора 8086.

Если у программы менее 64 Кбайт данных, то она может поместить все свои данные в один сегмент данных и использовать 16-битные адреса для доступа к ним. Точно так же, если у программы код составляет менее 64 Кбайт, то она может поместить весь свой код в один сегмент кода и использовать 16-битные адреса для переходов и вызова подпрограмм. И наоборот, если код или данные не вписываются в эти рамки, тогда программа должна использовать 32-битные адреса. MicroSoft C предоставляет все четыре возможности через набор моделей памяти:

Модель памяти Адреса данных Адреса кода
Tiny 16-бит 16-бит
Small 16-бит 16-бит
Compact 32-бит 16-бит
Medium 16-бит 32-бит
Large 32-бит 32-бит
Huge 32-бит 32-бит

Модель памяти Tiny такая же, как и модель Small, за исключением того, что размер кода и сегментов данных вместе не должен превышать 64 Кбайта. Кроме того, модель Tiny создает файл .COM вместо файла .EXE. Файлы .COM немного меньше и загружаются немного быстрее с DOS.

Модель памяти Huge такая же, как и модель памяти Large, за исключением того, что размер отдельных массивов может превышать 64 Кбайт. Тем не менее, адреса по-прежнему сохраняются в виде пар сегментов: смещение, и компилятор отказывается в полной мере выполнять с ними 32-разрядную адресную арифметику. В результате на массивы Huge распространяется ограничение, согласно которому размер элемента массива должен соответствовать числу 2 в степени.

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

Примечания

извращенный и неэффективный

это мое личное мнение

8086

Фактически IBM PC использовал 8088, а не 8086. 8088 аналогичен внутреннему 8086, но обладает 8-битной внешней шиной данных. Это меняет пропускную способность памяти для снижения стоимости системы.

расширенная память

Подумайте об аккордеоне с мехами, расширяющимися вслед за клавиатурой.

80286

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

дополнительная память

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

возвратить процессор в точку рестарта

Я это не выдумал.

Программирование ENIAC

Оригинал доступен по ссылке columbia.edu

ENIAC

Две первых программистки (Глория Рут Гордон [Болотски] и Эстер Герстон) работают над ENIAC. Фотография армии США из архива Ассоциации научных библиотек (Исследовательская лаборатория армии США).

ENIACПостроенный в 1943-45 годах в школе Мура при Пенсильванском университете для военных действий Джона Мочли и Дж. Преспера Эккерта (никак не связанным с Уоллесом Эккертом из Колумбийского университета), но поставленный в армию только после окончания войны, Электронный цифровой интегратор и вычислитель (ENIAC) был первым многоцелевым электронным цифровым компьютером. Он был 150 футов в ширину, с 20 блоками мигающих лампочек и был, к тому же, примерно в 300 раз быстрее, чем Mark 1. Уоллес Эккерт упоминается в некоторых историях в качестве фактора, повлиявшего на разработчиков, как это было в случае с Марк 1.

ENIACENIAC не был компьютером с хранимой программой; его «лучше описать как совокупность электронных сумматоров и других арифметических устройств, которые первоначально контролировались сетью громоздких электрических кабелей» (Дэвид Алан Гриер, IEEE Annals of the History of Computing, июль-сентябрь 2004 г., стр. 2). Он был запрограммирован комбинацией штепсельного коммутатора (показано вверху) и трех «малогабаритных функциональных таблиц», показанных слева (КЛИКНИТЕ ЗДЕСЬ и ЗДЕСЬ, чтобы лучшего их рассмотреть). Каждая функциональная таблица содержит 1200 десятипозиционных переключателей, используемых для ввода таблиц чисел. Обратите внимание: немного сложно разобрать то, как IBM выводит на перфокарты в крайнем правом углу; на этой более четкой, но менее мистической копии той же фотографии это видно лучше. В статье Археология компьютеров — Воспоминания, 1945–1947 гг., в журнале Communications of the ACM за июль 1972 года, Франц Альт пишет:

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

ENIAC programming card

Изображение: [103]: схема программирования ENIAC, представляющая схему для настройки уравнения внешней баллистики; КЛИКНИТЕ, чтобы увеличить.

Позже, панели управления ENIAC постоянно «микропрограммировались» с помощью системы команд из 50-100 часто используемых инструкций, на которые можно было ссылаться из «пользовательской программы», введенной в виде последовательности инструкций в переключатели таблицы функций [40].

Херб Грош говорит об этом эпизоде [личная переписка, 10 мая 2003 года]:

Я бродил по цепочкам и подцепочкам ENIAC и с большим интересом отмечал, что было три или четыре самоорентирующихся панелей с переключателями [малогабаритных таблиц функций A, B и C], хотя я всегда предполагал наличие только одной.

Я отмечаю почти полное отсутствие полковника [тогда майора] Саймона, а также Дика Клиппингера, которые должны разделить с фон Нейманом заслугу перехода от штепселей к переключателям для ввода данных в программы.

Я был рад увидеть краткую ссылку на модули ввода/вывода IBM, которая демонстрирует в вашем материале (и в других также) самую известную фотографию. Интересно, знает ли Джон Макферсон, как их продали/арендовали/передали в Школу Мура — никогда не думал спросить его в то время. Странно.

Баше [4] указывает: «Когда армия запросила специальные устройства для считывания и перфорирования карт для неизвестного проекта, реализуемого в Университете Пенсильвании, [главный инженер IBM Джеймс У.] Брайс и его сотрудники координировали ответ IBM… В 1946 году аппарат, созданный в рамках проекта, был обнародован как ENIAC…».

Не на вашей странице, а в статье Ричи и прочих абердинцев следует [упомянуть] об астрономе, который научил их вручную вычислять траектории – это Форест Рэй Моултон, где-то в 1920 году. [моя страница 89].

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

Теперь о «я, вызывающий вопросы…» выше. Я не считаю, что Уоллес Эккерт имел какое-либо влияние на разработчиков ENIAC или ASCC. Конечно, он и я сотни и сотни часов разговаривали об этих двух машинах, но ни он, ни Фрэнк Гамильтон, никогда не упоминали о том, что ASCC была Номером вторым, и никогда не намекал на это.

Встреча Говарда Эйкена и Уоллеса Эккерта из ASCC, произошедшая в 1938 году, широко известна [9]. Гутцвиллер [90] говорит, что Преспер Эккерт (среди других известных пионеров вычислительной техники, включая Айкена и Ванневара Буша) впервые вдохновился благодаря «оранжевой книге» Уоллеса Эккерта 1940 года. Я не смог найти никаких доказательств непосредственного контакта двух Эккертов. Поскольку ENIAC был военным проектом, неудивительно, что записи являются недоступными.

Из объявления Музея компьютерной истории от 19 сентября 2008 года:

ENIAC

Применяя мышь (шучу). Артур Беркс и Бетти Джин Дженнингс.

Родившись на ферме в Миссури, шестая из семи детей, Джин Дженнингс Бартик всегда отправлялась на поиски приключений. Бартик специализировалась на математике в Северо-западном государственном педагогическом колледже штата Миссури (сейчас Северо-западный государственный университет штата Миссури). Вторая мировая война разразилась, когда она была студенткой и в 1945 году, в возрасте 20 лет, Бартик ответила на призыв правительства к женщинам-математикам присоединиться к проекту в Филадельфии по расчету баллистических таблиц стрельбы для новых пушек, разработанных для военных действий. В качестве нового сотрудника Армейской лаборатории баллистических исследований она присоединилась к более чем 80 женщинам, вычисляющим баллистические траектории (исчисления дифференциальных уравнений) вручную; ее должность — «Вычислитель».

Позже, в 1945 году, армия обратилась с призывом к «вычислителям» по поводу новой работы с секретной машиной. Бартик воспользовалась случаем и была нанята в качестве одной из первых шести программисток ENIAC, первого полностью электронного программируемого компьютера. В этом неизвестном приключении она присоединилась к Фрэнсис «Бетти» Снайдер Холбертон, Кэтлин МакНалти Мочли Антонелли, Марлин Вескофф Мельтцер, Рут Лихтерман Тейтельбаум и Фрэнсис Билас Спенс.

Поскольку 40 панелей ENIAC все еще находились в стадии разработки, а технология 18 000 вакуумных трубок была сомнительной, у инженеров не было времени на создание руководств или на занятия по программированию. Бартик и другие женщины самостоятельно изучили работу ENIAC с помощью его логических и электрических блок-схем, а затем выяснили, как их программировать. Они создали свои собственные блок-схемы, листы программирования, написали программу и поместили ее в ENIAC, используя сложный физический интерфейс, у которого были сотни проводов и 3 000 коммутаторов. Это был незабываемый, замечательный опыт.

15 февраля 1946 года армия рассказала общественности о существовании ENIAC. Армия на специальной церемонии представила ENIAC и изобретателей оборудования — доктора Джона Мочли и Дж. Преспера Эккерта. В презентации была представлена ​​программа баллистической траектории, работающая на скорости в тысячи раз быстрее любых предыдущих расчетов. Женская программа ENIAC сработала отлично и продемонстрировала баснословную вычислительную мощь ENIAC и его способность решать проблемы тысячелетия, на что раньше человеку требовалось 100 лет. Она рассчитала траекторию снаряда, отслеживание которой заняло 30 секунд. Но ENIAC потребовалось всего 20 секунд, чтобы ее рассчитать — быстрее пули! Вот как!

Армия так и не представила женщин из ENIAC.

Никто не воздал им должное и не обсуждал их важную роль в том мероприятии. Их лица, но не имена, стали частью прекрасных фотографий ENIAC для прессы. В течение сорока лет их роль и новаторская работа были забыты, а их приключения утеряны для истории. Женскую тему ENIAC подняла Кэти Клейман в 1985 году. Бартик побеседует о том, что значит остаться без внимания, несмотря на уникальную и новаторскую работу, и что значит быть обнаруженным снова (Джин Дженнингс умерла в 2011 году).

Ссылки (проверено 12 февраля 2019 г.):

 

Как установить SSL-сертификат на сайт на WordPress

Оригинал доступен на сайте zisman.ca

Прежде всего, что же такое SSL-сертификат? SSL — это уровень защищенных сокетов (Secure Sockets Layer), а данный цифровой сертификат подтверждает подлинность вашего веб-сайта и шифрует всю информацию, отправляемую на сервер, с использованием технологии SSL.

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

Каждый сертификат SSL содержит следующую информацию:

  • Имя владельца сертификата.
  • Серийный номер и срок действия сертификата.
  • Копию открытого ключа владельца сертификата.
  • Электронную подпись удостоверяющего центра, выдавшего сертификат.

Наличие этого сертификата подтверждает, что в Интернете существует безопасный канал связи между точкой A и точкой B.

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

Если у вас на сайте есть какие-либо страницы, защищенные паролем, то вам также хотелось бы знать, что они защищены сертификатом SSL.

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

Как еще вы можете защитить свой сайт?

Используйте VPN

VPN — это виртуальная частная сеть (Virtual Private Network). Она не является специфичным средством WordPress; это сервис, который сегодня можно, и, как говорят, стоит использовать в Интернете. Цель этой сети — помочь вам оставаться анонимным, находясь в сети, а также защитить либо зашифровать ваши данные. Пользователи WordPress — особенно те, кто вероятно ведет бизнес, — несомненно могут применять защиту VPN. В зависимости от вашей системы, вам может понадобиться ознакомиться с некоторыми функциями — загляните, например, в этот обзор PureVPN.

Выберите безопасный хост

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

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

Безопасные пароли

Существует множество способов защитить ваш сайт на базе WordPress, но давайте в этой статье разберемся с теми  способами, которые наиболее существенны и просты в реализации.

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

Защитите страницу входа WordPress

Это то, что многие плагины безопасности WordPress предложат сделать для вас, но это также то, что можно сделать относительно легко вручную. Один из способов, как это можно сделать — изменить URL для страницы входа. По умолчанию доступ к странице входа в WordPress осуществляется с помощью wp-login.php или wp-admin.php после URL-адреса сайта. Это означает, что любой, кто знает URL вашего сайта, также знает URL для доступа к учетной записи вашего сайта, если вы его изменили.

Что вы хотите сделать, так это что-то вроде:

  • Изменить wp-login.php на что-то типа cool_new_login
  • Изменить wp-admin.php на что-то типа cool_new_admin

Установите свой SSL-сертификат

Вы думали, что я забыл об этом, не так ли? Нет. Вот шаги, которые надо сделать для получения и установки вашего SSL-сертификата.

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

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

 

Как не стоит запускать A/B-тестирование

Оригинал доступен на сайте evanmiller.org

Автор Эван Миллер

18 апреля 2010 г.

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

Освещение проблемы

Когда график A/B-тестирования сообщает, что есть «95-процентная вероятность обойти оригинал» или «90-процентная вероятность статистической значимости», спрашивается следующее: предполагая то, что между A и B нет серьезной разницы, как часто мы будем видеть разницу подобно тому, как мы замечаем ее по случайному совпадению? Ответ на данный вопрос — это уровень значимости, а «статистически значимые результаты» означают, что уровень значимости низкий, например, 5% или 1%. Графики обычно берут оставшееся от 100% (например, 95% или 99%) и подают это как «вероятность обойти оригинал» или как нечто в этом роде.

Однако расчет значимости делает критически важное предположение, которое вы, вероятно, нарушили, даже не осознавая этого: размер выборки был заранее установлен. Если вместо того, чтобы заранее принять решение «этот эксперимент соберет ровно 1000 просмотров», вы скажете: «мы будем проводить его до тех пор, пока не увидим существенную разницу», то все заявленные уровни значимости станут бессмысленными. Такой результат совершенно алогичен и все пакеты для A/B-тестирования игнорируют его, но я попытаюсь объяснить источник проблемы на простом примере.

Пример

Предположим, вы анализируете эксперимент после 200 и 500 просмотров. Есть четыре варианта возможных результатов:

Сценарий 1 Сценарий 2 Сценарий 3 Сценарий 4
После 200 просмотров Несущественный Несущественный Значимый! Значимый!
После 500 просмотров Несущественный Значимый! Несущественный Значимый!
Завершение эксперимента Несущественный Значимый! Несущественный Значимый!

 

Если предположить, что методы A и B одинаковы, а уровень значимости равен 5%, то в конце эксперимента мы получим значимый результат в 5% случаев.

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

Сценарий 1 Сценарий 2 Сценарий 3 Сценарий 4
После 200 просмотров Несущественный Несущественный Значимый! Значимый!
После 500 просмотров Несущественный Значимый! испытание прекращено испытание прекращено
Завершение эксперимента Несущественный Значимый! Значимый! Значимый!

Первая строка такая же, как и ранее, а заявленные уровни значимости после 200 наблюдений в порядке. Но теперь посмотрим на третью строку. В конце эксперимента, предполагая, что A и B на самом деле совпадают, мы увеличили соотношение значимых и несущественных результатов. Следовательно, заявленный уровень значимости — «процент времени, в течение которого наблюдаемая разница обусловлена ​​случайностью» — будет неверным.

Насколько данная проблема важна?

Предположим, ваш коэффициент конверсии составляет 50%, и вы хотите проверить, дает ли новый логотип коэффициент конверсии больше 50% (или меньше). Вы прекращаете эксперимент, как только значимость превышает 5% или отменяете эксперимент после 150 просмотров. Теперь предположим, что ваш новый логотип на самом деле ничего не меняет. Какой процент случаев ваш эксперимент ошибочно определит как значимый результат? Не более пяти процентов, верно? Возможно, шесть процентов — в свете предыдущего анализа?

Попробуйте 26,1% — более чем в пять раз больше, чем вы, вероятно, оценивали уровень значимости. Это своего рода наихудший сценарий, так как мы проводим проверку значимости после каждого просмотра, но это не случайно. По крайней мере, одна среда A/B-тестирования на самом деле предоставляет код для автоматической остановки экспериментов после достижения значимого результата. Это звучит как ловкий трюк до тех пор, пока вы не поймете, что это — статистическое извращение.

Повторное тестирование значимости всегда увеличивает частоту ложных положительных сигналов, то есть вы будете считать, что многие несущественные результаты являются значимыми (но не наоборот). Проблема будет наличествовать, если вы будете «заглядывать» в данные когда-либо и прекратите эксперимент, который, по-видимому, дает значимый результат. Чем чаще вы заглядываете, тем значительнее будут уменьшаться у вас уровни значимости. Например, если вы посмотрите на текущий эксперимент десять раз, тогда то, что вы определяете как значимость в 1%, на самом деле является значимостью всего лишь в 5%. Вот другие заявленные значения значимости, которые вам необходимо увидеть, чтобы получить фактическое значение значимости в 5%:

Вы заглядывали… Чтобы получить фактическое значение значимости в 5%, вам необходимо…
1 раз 2.9% заявленной значимости
2 раза 2.2% заявленной значимости
3 раза 1.8% заявленной значимости
5 раз 1.4% заявленной значимости
10 раз 1.0% заявленной значимости

Решите для себя, насколько ваша проблема является серьезной, но если вы ведете свой бизнес, постоянно проверяя результаты текущих A/B-тестирований и принимая быстрые решения, то эта таблица должна вызвать у вас мурашки по коже.

Что можно сделать?

Если вы проводите эксперименты: лучший способ избежать ошибок многоразовой проверки значимости — не проверять значимость повторно. Заранее определитесь с размером выборки и подождите, пока эксперимент не закончится, прежде чем вы начнете верить в «вероятность превзойти исходные» цифры, которые дает вам программное обеспечение для A/B-тестирования. «Подглядывать» за данными можно, если вы можете удержать себя от прекращения эксперимента до его завершения. Я знаю, что это противоречит человеческой природе, поэтому, вероятно, лучший совет: не заглядывать!

Поскольку вы собираетесь определить размер выборки заранее, то выборку какого размера следует использовать? Указанная формула — хороший проверенный метод:

n=16×σ22

Где δ — минимальный эффект, который вы хотите обнаружить, а σ2 — ожидаемая дисперсия выборки. Конечно, вам может быть не известна дисперсия, но если это просто биноминальная доля, которую вы подсчитываете (например, процент конверсии), то дисперсия определяется как:

σ2=p×(1−p)

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

ОБНОВЛЕНИЕ, май 2013: Вы можете увидеть эту формулу в действии с помощью моего нового интерактивного Калькулятора для определения размеров выборки. Введите величину эффекта, который вы хотите определить, установите уровни эффективности и значимости, и вы получите удобочитаемое число, сообщающее вам необходимый размер выборки. КОНЕЦ ОБНОВЛЕНИЯ

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

δ=(tα/2+tβ

Где два t — это t-коэффициенты для заданного уровня значимости α/2 и эффективности (1−β).

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

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

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

Узнайте больше: «Простое последовательное A/B-тестирование»

  • Байесовское планирование экспериментов: Байесовское планирование экспериментов позволяет в любой момент остановить эксперимент и сделать совершенно обоснованные выводы. Учитывая природу веб-экспериментов в реальном времени, байесовское планирование выглядит перспективным решением.
  • Узнать больше: «Байесовское A/B-тестирование»

Выводы

Несмотря на то, что они выглядят действенными и удобными, данные графиков касательно текущих экспериментов A/B провоцируют ненадлежащее использование. Каждый раз, когда они используются в сочетании с «правилом останова» (автоматическим или осуществленным вручную) — полученные тесты значимости просто недействительны. До тех пор, пока последовательное или байесовское планирование экспериментов не будет реализовано в программном обеспечении, любой, кто проводит веб-эксперименты, должен проводить эксперименты только в тех случаях, когда размер выборки был определен заранее, и придерживаться данного размера выборки с почти что религиозной точностью.

Рекомендованная литература

Многоразовые тесты значимости

П. Армитидж, К. К. Макферсон и Б.К.Роу. «Тесты значимости накапливающихся данных», журнал Королевского статистического общества. Серия А (общая), Вып. 132, № 2 (1969), стр. 235-244.

Оптимальные размеры выборки

Джон А. Лист, Салли Садофф и Матис Вагнер. «Итак, вы хотите провести эксперимент, что ж теперь? Некоторые простые правила для оптимальной экспериментальной схемы». Рабочий доклад NBER №.15701.

Уилер, Роберт Э. «Переносная сила», Technometrics, Вып. 16, № 2 (май 1974), стр. 193-201.

Последовательная схема эксперимента

Покок, Стюарт Дж. «Групповые последовательные методы в разработке и анализе клинических испытаний», Biometrika, Вып. 64, № 2 (август 1977), стр. 191-199

Покок, Стюарт Дж. «Промежуточные анализы для рандомизированных клинических испытаний: групповой последовательный подход», Biometrics, Vol. 38, № 1 (март, 1982), с. 153-162.

Байесовское планирование экспериментов

Берри, Дональд А. «Байесовская статистика, эффективность и этика клинических испытаний», Statistical Science, Вып. 19, № 1 (февраль, 2004), с. 175-187.

 

Моделирование УФ-В Фотометра

Оригинал доступен по ссылке terpconnect.umd.edu

Версия 1.2 (Червень 2000)

Моделирование УФ-В спектрофотометра с переменной длиной волны с диапазоном длин волн 200–700 нм, переключаемыми источниками света из вольфрама и дейтерия, четырьмя сменными кварцевыми кюветами, считыванием процента пропускания и поглощения, кнопкой автоматического обнуления и реалистичными источниками ошибок и нелинейности. Студенты определяют характеристики образца, выбирают длину волны, длину пути ячейки, выбирают дейтериевую или вольфрамовую лампу и проводят измерения. Реалистичное моделирование спектральных характеристик лампы, вариаций пропускания ячейки, шума фотонов и детекторов, непоглощенного рассеянного света и нелинейности прибора, вызванной конечной полосой пропускания спектра.

Версия 1.2 (июнь 2000 г.) обладает фиксированной спектральной полосой пропускания в 5 нм и моделирует один поглотитель в растворе. Позволяет студенту указать вес растворенного вещества, объем раствора и поглотительную способность, пиковую длину волны и пиковую ширину поглотителя в каждой из четырех ячеек. Полезна для усиления закона Бера-Ламберта и его ограничений, а также для введения эффектов шума и нелинейности из-за оптических отклонений от закона Бера-Ламберта.

Версия 1.3 аналогична версии 1.2, но здесь добавлена кнопка «Статистика», которая автоматически собирает 30 показаний поглощения (без удаления и замены ячейки) и вычисляет среднее, стандартное отклонение и коэффициент относительного стандартного отклонения поглощения.

Инструкция по эксплуатации:

Укажите спектральные характеристики и концентрации поглотителей в четырех ячейках, введя значения в таблицу (ячейки C9 .. F13). Используйте ползунок выше для того, чтобы изменить длину волны прибора. Нажмите на кнопки слева, чтобы изменить длину пути ячейки и тип лампы. Нажмите на одну из четырех кнопок ячейки (№ 1 … № 4), чтобы изменить данные ячейки: это моделирует удаление ячейки, замену ее данных и замену ее в луче света. Нажмите кнопку Auto-zero, чтобы обнулить показания прибора на текущем содержимом ячейки. Нажмите кнопку “Считывать”, чтобы сделать еще одно измерение поглощения, не нарушая работу ячеек.

Ссылки для скачивания: Версия 1.2 (июнь 2000 г.): UVVis12.wkz; Версия 1.3 (июнь 2000 г.): UVVIS13.WKZ;

Приложение Wingz Player и базовый блок модулей для моделирования для  ПК с Windows или Macintosh

Другие похожие варианты моделирования:

Двухпотоковый спектрофотометр

Приборные отклонения от закона Бера

Сравнение методов подгонки калибровочной кривой в абсорбционной спектроскопии

Отношение сигнал/шум в абсорбционной спектрофотометрии

Влияние ширины зазора на отношение сигнал/шум в абсорбционной спектроскопии

Определение ячеек и уравнения

Исправлено 13 августа 2000 г.

Входные параметры:
Очистить и заполнить таблицу
Номера ячеек: 1 2 3 4
Масса, мг C9, D9, Е9, F9
Поглощаемость, л/г-см C10 D10 E10 F10
Объем раствора, мл C11 D11 E11 F11
Пиковая длина волны, нм C12 D12 E12 F12
Пиковая ширина, нм C13 D13 E13 F13

Длина волны (ячейка G4), управляемая ползунком
путь (ячейка М3): длина пути поглощения в см, заданная этими тремя
Кнопки «Кювета, см» (0,1, 1, 10).
фон (ячейка O3, зеркально отраженная в ячейке R6), значение по умолчанию 0,03
LampInt (ячейка M6), устанавливается кнопками лампы (см. Скрипты кнопок лампы ниже)
LampMax (ячейка M7), устанавливается кнопками лампы (см. Скрипты кнопок лампы ниже)
LampWidth (ячейка M8), устанавливается кнопками лампы (см. Скрипты кнопок лампы ниже)
Рассеянный свет = (ячейка S6), значение по умолчанию 0,01%
Коэффициент шума фотонов (ячейка W6) значение по умолчанию 0,0001
Коэффициент шума детектора (ячейка X6), значение по умолчанию 0,0004

Расчетные величины

Таблица теоретического пикового поглощения:
№ ячейки, анализируемое поглощение
1 = 0,001 * C9 * C10 * путь / C11
2 = 0,001 * D9 * D10 * путь / D11
3 = 0,001 * E9 * E10 * путь / E11
4 = 0,001 * F9 * F10 * путь / F11

Таблица спектральных характеристик:

M O R
Фон исследуемого вещества лампы
6 высота **** *** = фон
7 позиция **** *** 150.00
8 ширина **** *** 1000.00

*** устанавливается по кнопкам ячейки
**** устанавливается кнопками лампы

Расчеты массива:

L9..L19: срез = длина волны-5
M9..M19: Лампа = M$6*exp(-((срез-M$7)/M$8)^2)
N9..N19: ширина зазора = функция треугольника, полуширина 5 нм
O9..O19: исследуемое вещество = O$6*exp(-((срез-O$7)/O$8)^2)
P9..P19: интерференция = P$6*exp(-((срез-P$7)/P$8)^2)
Q9..Q19: реагент = Q$6*exp(-((срез-Q$7)/Q$8)^2)
R9..R19: фон = R$6*exp(-((срез-R$7)/R$8)^2)

T9..T19: Общая оптическая плотность = путь * сумму ($O9..$Q9)+$R9
U9..U19: интенсивность инцидента = $M9+$S$6
V9..V19: передаваемая интенсивность = $S$6+$M9*10^(-$T9)
W9..W19: фотонный инцидент = $W$6*sqrt($V9)*rand()
X9..X19: происшествие с детектором = $X$6*rand()
Y9..Y19: транс фотона = $W$6*sqrt($V9)*rand()
Z9..Z19: транс детектора = $X$6*rand()
AA9..AA19: измер. I-ноль = $U9+$W9+$X9
AB9..AB19: измер. Я = $V9+$Y9+$Z9

Выходные параметры:

AA20: общее измер. I-ноль = сумма ($AA9..$AA19)
AB20: общее измер. I = сумма ($AB9..$AB19)
AB21: оптическая плотность = log ($AA$20/$AB$20)
I4: Абсорбция (с поправкой на ноль) = $AB$21-$G$24
J4:%T = $AB$20/$AA$20

Таблица статистики (версия 1.3):
Средняя оптическая плотность = ср(AC23..AC53)
Стандартное отклонение = со(AC23..AC53)
Относительное стандартное отклонение = J17/J16

Кнопочные скрипты:

Кнопки «Очистить и заполнить»:

# 1
введите 0.02+0.01*rand() в фон
введите «Решение №1» в B14
введите С33 в О6
введите С12 в О7
введите С13 в О8
совершить перерасчет

# 2
введите 0.02+0.01*rand() в фон
введите «Решение № 2» в B14
введите D33 в O6
введите D12 в O7
введите D13 в O8
совершить перерасчет

и так далее для ячеек №3 и №4.

Кнопки «Кювета, см»:

«0.1»
введите 0,1 в путь
введите 0.02+0.01*rand() в фон
введите “ячейку 0,1 см” в b15
совершить перерасчет

и так далее для кнопок 1,0 и 10 см.

«отсутствие»
введите 0 в путь
введите 0 в фон
введите «В оптическом тракте отсутствует ячейка» в b15
совершить перерасчет

Кнопки лампы

Вольфрам:
введите 600 в LampMax
введите 2 в LampInt
введите 120 в LampWidth
введите “Вольфрамовая лампа” в b16
совершить перерасчет

Дейтерий:
введите 200 в LampMax
введите .5 в LampInt
введите 120 в LampWidth
введите “Дейтериевая лампа” в B16
Совершить перерасчет

Автоматическое обнуление:
совершить перерасчет
введите $ AB $ 21 в g24

Считывать:
совершить перерасчет

Статистика: (версия 1.3)
определить считывание
для считывания = от 0 до 30
совершить перерасчет
введите I4 в “AC” и считывание+23
завершение

(c) 1991, 2015. Эта страница является частью Руководства по интерактивных компьютерных моделях для обучения аналитической химии, созданных и поддерживаемых профессором Томом О’Хейвером, почетным профессором Университета Мэриленда в Колледж-Парке. Комментарии, предложения и вопросы следует направлять профессору О’Хаверу по адресу [email protected] Количество уникальных посещений с 17 мая 2008 года: 513 700

 

 

Рассуждающие роботы

Автор: Дэвид Л. Андерсон

Оригинал на английском mind.ilstu.edu

Что значит «думать» и «рассуждать»? Рассмотрим, к примеру, математическую задачу, состоящую из нескольких этапов: 7 плюс 23 разделить на 5. Вы следуете дискретным правилам, которые должны сознательно брать во внимание, иначе вы, вероятно, допустите ошибку. Существует также такой вид рассуждения, который можно применять, определяя, в каком колледже учиться. Вы можете составить список всех факторов, которые считаете актуальными (стоимость, национальная оценка репутации, квалификация преподавателей в выбранной вами дисциплине, расстояние от колледжа до друзей и семьи, «дух» колледжа и т.д.), а затем, как говорят, вы «взвешиваете» все факторы и совершаете рациональный выбор. Данный тип аргументации также называется «высшим когнитивным функционированием», потому что он требует сложного анализа имеющихся явных «причин» для того, чтобы делать что-то одно и не делать чего-то другого. И все же такого рода рассуждения не так легко уловить с помощью явного выраженного правила или даже комплекса правил. При принятии решения мы сознательно сосредотачиваем внимание на каждом из факторов, имеющих отношение к делу, а затем мы просто «решаем». Если нас спросить, почему мы сделали тот выбор, который сделали, мы часто можем сказать немногим больше, чем «учитывая все обстоятельства, это просто казалось правильным». Хотя этот вид интеллектуальной работы и включает в себя сознательное размышление о причинах для принятия решения, тем не менее у него имеются бессознательные аспекты. Обычно нам трудно объяснить, почему мы приняли то решение, которое приняли.

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

Почему роботы?

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

Так почему же роботы? Что ж, дело вот в чем. Различные модели роботов могут использоваться для моделирования различных видов обработки информации. Давайте предположим, что вы можете создать двух роботов, которые имитируют некое поведение — поведение, которое будет считаться «разумным», если его будет осуществлять человек. Давайте также предположим, что эти два робота осуществляют поведение, «подобное разумному», совершенно по-разному и используя радикально разные способы обработки информации, получаемой из среды. Тогда мы могли бы поинтересоваться:

Учитывая то, что нам известно о людях, какой робот лучше всего осваивает то, каким образом рассуждаем МЫ?

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

Человеческий мозг столь чертовски сложен, что мы не в состоянии начать создавать детальную модель того, как мозг способен «рассуждать». Мы все еще только начинаем открывать его тайны. Но одна из важнейших задач программ ИИ (искусственного интеллекта) и контролируемых ими роботов — это помочь нам лучше понять кое-что, что выяснили люди о сущности компьютеров разных типов. Анимированные роботы, которых вы увидите, призваны помочь вам лучше понять два разных типа компьютеров. Многие ученые считают, что лучше всего «человеческое мышление» понять на примере одной из двух компьютерных моделей. Но даже если эти люди ошибаются, то у данных двух компьютерных моделей есть, тем не менее, ключ к раскрытию тайны человеческого мышления. Итак, давайте рассмотрим роботов, заслуживающих внимания.

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

Снаружи роботы выглядят одинаково (они оба выглядят как на изображении справа). У каждого из них есть видеокамера, предоставляющая им информацию об окружающей их обстановке. У них обоих имеются роботизированные колеса, которые перемещают их, и роботизированная рука для того, чтобы брать предметы. Они не только выглядят одинаково, но и ведут себя весьма похоже. Однако на этом сходство заканчивается. Внутри они кардинально отличаются. Например, информация, которую они получают при помощи видеокамеры, «представлена» по-разному. Кроме того, процедуры, с помощью которых они «решают», как себя вести, совершенно разные. Лучший способ оценить их различия — это посмотреть, как устроен каждый из роботов.

Познакомьтесь с роботами:

ПК Робот (классический компьютер) — модель обработки символов

ВК Робот (водяной компьютер) — нейросетевая модель

Страница 1 из 3