Yet another indexer перевод: Yet Another Indexer ( …

Содержание

Что такое Яндекс — почему он называется именно Яндексом

Обновлено 28 декабря 2020
  1. Почему Yandex называется Яндексом?
  2. Что такое Яндекс и что он представляет из себя сегодня?

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

Давайте вопрос «что такое Яндекс сегодня» чуток отложим, а поговорим о том, откуда появилось такое странное название. Почему именно Яндекс? По этому поводу существует несколько трактовок и все они отвечают на поставленный вопрос.

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


Почему Yandex называется Яндексом?

На приведенном фото он крайний слева. Рядом с ним стоит его соратник и второй основательно Яндекса — Аркадий Волож. Ну, а справа стоят Сергей Брин и Ларри Пейдж — основатели поисковой системы Гугл. Это фото сделано в начале нашего века, когда компания Google планировала купить наш отечественный поисковик и ее руководители приезжали в Россию для переговоров, но сделка так и не состоялась.

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

Было принято решение, что словообразующей фразой станет «yet another indexer», что в переводе означает «еще один индексатор». В общем, довольно-таки скромно и без всяких заявок на будущий ошеломляющий успех. Английский язык тогда в России был «фетишем» и, естественно, что поисковая система первоначально получила название именно на латинице: YANDEX (Yet Another iNDEXer).

Однако, основной фишкой Яндекса в то время (да и сейчас тоже) являлось то, что он ищет ответы в интернете с учетом русской морфологии. Кроме него в то время это делал только Рамблер, который сейчас уже не является полноценным поисковиков. В общем, отцы-основатели решили, что нужно добавить в начале русскую букву Я вместо английской Y и получилось ЯNDEX. Это уже можно было интерпретировать, как Языковой INDEX.

В то время его главная страница выглядела так (дизайн Темы Лебедева):

В 2008 году мода на написание названий компаний латинскими буквами сошла на нет и ЯNDEX стал называться просто Яндексом.

Есть еще несколько трактовок, почему Яндекс называется именно Яндексом, и несмотря на то, что они вполне логичны и лаконичны, появились они уже после утверждения официального названия. Одну из них я уже упоминал — Языковый iNDEX.

Ну, а вторая гласит, что если взять в слове index первую букву «I» и перевести состоящее из нее слово с английского на русский, то как раз и получится местоимение «Я» — отсюда и ЯNDEX. Версия красивая, но несколько отличная от произошедшего в реальности.

Что такое Яндекс и что он представляет из себя сегодня?

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

Но время текло и все менялось. С каждым новым годом существования Яндекс обрастал все новыми и новыми сервисами и возможностями. Некоторые из них дошли до нашего времени неизменными, некоторые изменились, объединились или даже закрылись, как, например, Народ.

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

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

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

  1. Как получить паспорт Яндекса — в отличии от Гугла, зеркало рунета изначально приняло решение об использовании своей главной (стартовой) страницы для удобства пользователей.

    Ну, и по аналогии с Гугл аккаунтом был введен Паспорт, который действителен на всей территории всех владений этой поисковой системы.
  2. Яндекс Вебмастер — то место, куда все владельцы сайтов добавляют свои ресурсы, чтобы следить за их индексацией и видимостью в этой поисковой системе.
  3. Яндекс Деньги — наверное, вторая по популярности после Вебмани платежная система в рунете. Хотя, если брать в расчет QIWI Wallet, то получается, что третья.
  4. Директ — здесь можно заказать рекламу ваших товаров или услуг на страницах поиска (реклама отображается сверху или снизу поисковой выдачи).
  5. Яндекс Карты — очень популярный среди Россиян сервис, ибо он предоставляет информацию о дорожных пробках, позволяет прокладывать маршруты и создавать свои собственные (народные) карты.
  6. Рекламная сеть Яндекса — это оборотная сторона Директа. Дело в том, что Yandex обладает отлаженной системой работы с контекстной рекламой, так почему же ему ограничиваться лишь своей собственной поисковой выдачей (страницей с результатами поиска)?

    В общем, если у вас есть свой сайт с ежесуточной посещаемостью большей или равной 300 уникальных посетителей в сутки, то регистрируйтесь в Профит Партнере(официальном центре обслуживания партнеров РСЯ) и зарабатывайте, получайте призы и партнерские вознаграждения. Без балды — это реальный способ заработать.
  7. Яндекс Метрика — система статистики посещаемости сайтов, которая отличается от аналогичного инструмента Гугла (Аналистикса) тем, что имеет интуитивно понятный и нарядный интерфейс, а также проста в освоении.
  8. Яндекс почта — на рынке рунета успешно конкурирует с почтой на Майле, ну и оттягивает на себя часть пользователей от Джимейла.

    По функционалу новая инкарнация Yandex Mail не сильно уступает последнему, а в некоторых аспектах даже превосходит. Например, имеется бесплатная возможность получения почты для домена, что в Гугле сейчас стало стоить малую копеечку (почта для домена в Гугл Аппс).
  9. Диск — файловое хранилище, которое призвано стать реальной альтернативой Дропбоксу (читайте про то, как пользоваться Dropbox) или хранилище OneDrive.
  10. Яндекс Дзен — новый сервис предлагающий пользователям свежую подборку материалов по интересующим их тема. Подборка формируется автоматически на основе предпочтений каждого конкретного пользотеля. Подробнее о сервисе читайте по приведенной ссылке.

  11. Поиск по вашему сайту от Яндекса — поисковый движок любой СМС, на которой будет работать ваш сайт, всегда будет хуже, чем данный инструмент. Поэтому не примените его установить, ну или его аналог от Гугла.
  12. Тиц и Виц Яндекса — это не сервисы, но важные инструменты, с помощью которых компания оценивает статический вес всех проиндексированных документов, а обычные пользователи могут оценить, за какую цену стоит продавать или покупать ссылки с определенных сайтов (читайте про биржи статей Миралинкс, вечных ссылок ГГЛ или Ротапост)
  13. Народ — почивший в бозе (а точнее в Юкозе) бесплатный конструктор народных сайтов. Раньше не нем можно было создавать бесплатные сайты или хранить и передавать файлы (последнюю функцию на себя взял описанный чуть выше Диск)
  14. Яндекс бар (Элементы) — довольно популярная надстройка над браузерами, которая, правда, самой поисковой системе гораздо нужнее, чем пользователям (установка поиска по умолчанию, домашней страницы, сбор пользовательских предпочтений и т. п.).

    Да, все это не так агрессивно реализовано, как у поисковой системы Вебальта, но что-то общее имеется.
  15. Визуальные закладки — раньше подобная штука была в Опере (экспресс-панель), но благодаря нашему герою, теперь эти закладки можно использовать в любом браузере (устанавливаются как плагин).
  16. Яндекс Браузер — сделан на том же движке, что и Гугл Хром, но обладает рядом индивидуальных особенностей, которых нет у конкурентов.
  17. Блок Поделиться — набор кнопок для добавления анонсов статей на сайте в популярные социальные сети. Статистику этого блока можно отслеживать в Метрике.
  18. Апдейты Яндекса — это не сервис и не инструмент, а просто констатация того, что эта поисковая система пока еще не способна осуществлять ранжирование в реальном времени и обновляет поисковую выдачу дискретно через определенные неравнозначные временные интервалы, которые и принято называть апом.
  19. Яндекс картинки — может искать не только по введенным в поисковую строку словам или фразам, но и осуществлять поиск по картинке, которую вы загрузите со своего компьютера или укажите ее местоположение в интернет.
  20. Видео — онлайн сервис подобный Ю-тубу от Google.
  21. Yandex Translate — ну, конечно же, это далеко еще не Google translate, но тоже дает очень неплохой перевод, правда на гораздо меньшее число языков.
  22. Онлайн-проверка правописания — сервис очень удобный и вполне претендует на звание лучшего в рунете.
  23. Каталог — самый популярный каталог сайтов всего рунета, но, к сожалению, попасть туда даже на платной основе удается далеко не всем.
  24. Вордстат — первый помощник тем, кто уже усвоил что такое Seo, ибо позволяет собрать статистику поисковых запросов, чтобы потом писать под них статьи.
  25. Лимиты в Яндекс.XML — очень специфическая вещь, которую в двух словах не объяснишь, но вы можете прочитать статью приведенную по ссылке.

Думаю, что теперь, хотя бы в общих чертах, вам стало ясно, что такое Yandex и насколько он велик и могуч. Спасибо.

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

«Яндекс» и «Касперский» вошли в Топ-50 самых инновационных компаний мира

| Поделиться Российские компании «Яндекс» и «Лаборатория Касперского» признаны одними из самых инновационных в мире. По мнению американских аналитиков, они более инновационны, чем Microsoft и Cisco Systems.

Американский журнал Fast Company впервые включил в список 50 самых инновационных компаний мира сразу две российские фирмы — «Яндекс» и «Лабораторию Касперского». Первая заняла 26 строчку, вторая — 32. Обе российские компании обошли Microsoft, Samsung и Cisco Systems, а «Яндекс» — еще и IBM с Amazon.

«Название поисковика происходит от фразы «yet another indexer» («еще один индексатор»), однако компания «Яндекс» — это нечто большее, — говорит представитель «Яндекса»

Александр Амзин. — Это один из немногих поисковиков, который дал отпор Google, занимая 65% российского рынка поисковых технологий. «Яндекс» стал основным поисковым движком в Firefox в России и запустил сервис на английском языке в мае 2010 г., запустил портретный поиск для того, чтобы находить лица на фотографиях, картографический сервис с пробками для российских городов и предиктивный поиск, который «читает мысли» пользователей».

«Основанная в Москве «Лаборатория Касперского» давно является магнитом для молодых компьютерных гениев, заставляя их перейти от их любимого занятия — хакерства — к анализу угроз, — заявил основатель и глава компании

Евгений Касперский. — Эти таланты помогли превратить нашу компанию в четвертого по величине и самого интересного в мире разработчика антивирусного ПО».

«Когда в 1997 г. мы начинали с пустыми карманами и сторонней финансовой поддержкой, мы знали, что достичь международного успеха нам помогут лишь две вещи — инновации и качество, — продолжает Касперский. — Сегодня нашими решениями пользуются Microsoft, IBM и Cisco, и наш портфель охватывает мобильный сегмент. В 2010 г. мы выпустили технологию, которая защищает мобильные устройства без расхода дополнительного заряда батареи».

Топ-50 самых инновационных компаний мира

Место Компания Место в прошлом рейтинге
1 Apple 3
2 Twitter 50
3 Facebook 1
4 Nissan
5 Groupon
6 Google 4
7 Dawning Information Industry
8 Netflix 12
9 Zynga  
10 Epocrates
11 Trader Joe’s
12
ARM
13 Burberry
14 Kosaka Smelting And Refining
15 Foursquare
16 ESPN
17 Turner Sports
18 Huawei 5
19 Intel
14
20 Syncardia
21 Donorschoose. org
22 Ebay
23
Nike 13
24 Linkedin
25 Wieden + Kennedy
26 Yandex
27 Amazon 2
28 Opening Ceremony
29 IBM 18
30 Amyris
31 Double Negative
32 Kaspersky Lab
33 Pepsico
34 Univision
35 Snohetta
36 Marks & Spencer
37 Microsoft 48
38 Solarcity
39 Shaadi. com
40 Voxiva
41 Cisco 17
42 Enerkem
43 Samsung 36
44 Pandora
45 GE 19
46 Changchun Dacheng Industrial Group
47 Azul
48 Stamen Design
49 FX
50 Madecasse

Источник: Fast Company

Как выгодно покупать лицензии во времена «арендной модели»

Бизнес

Рейтинг 50 ведущих мировых инновационных компаний публикуется редакцией Fast Company ежегодно. По информации издания, он составляется на основе мнений экспертов, анализа продуктов и количественных результатов. Помимо «Яндекса» и «Лаборатории Касперского в него попали такие компании, как Apple (1), Twitter (2), Facebook (3), Groupon (5), Intel (19), Amazon (27), IBM (29), Microsoft (37), Cisco Systems (41), Samsung (43) и другие.

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

Сергей Попсулин



Frankfurter Allgemeine Zeitung (Германия): надежда Москвы в сфере информационных технологий | Экономика | ИноСМИ

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

На дверях этих машин написано: «Беспилотный автомобиль». И название концерна, которому они принадлежат: Яндекс.

Яндекс — крупнейший IT-концерн России. Изначально это был поисковик, успешно конкурирующий на местном рынке с Google. Но теперь Яндекс — это нечто большее: он стал частью повседневной жизни россиян. У него есть собственный навигатор и приложение, информирующее пользователей обо всем, что связано с транспортом, а также службы такси, каршеринга и доставки еды — на улицах буквально на каждом углу можно увидеть курьеров в фирменных желтых куртках и с желтыми термосумками. А теперь Яндекс предлагает и беспилотные автомобили. Сейчас их тестируют в Москве, Тель-Авиве и американском штате Мичиган.

С их помощью глава Яндекса Аркадий Волож намерен пробиться на международный рынок. 56-летний предприниматель возглавляет концерн с 1990-х годов. Первую версию поисковика, название которого по-английски — Yandex — расшифровывается как yet another indexer («еще один индексатор»), он придумал вместе со школьным товарищем Ильей Сегаловичем, который в 2013 году умер от рака.

Волож и Сегалович выросли в Казахстане, который тогда еще был частью Советского Союза. Оба успешно участвовали в математических олимпиадах, а в начале 1980-х годов переехали в Москву на учебу. В 1997 году появился Яндекс, в том же году начал свой победоносный марш по виртуальному миру и Google. Сегалович как-то рассказал, что в 2003 году основатели Google Сергей Брин и Ларри Пейдж приезжали в Москву с целью покупки Яндекса, но они с Воложем отказались его продавать.

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

В отличие от Сегаловича, который активно участвовал во всевозможных публичных дебатах и в общественной жизни, Волож предпочитает оставаться в тени. О его личной жизни известно не слишком много: он женат, у него трое детей. Он имеет гражданство Мальты, которое приобрел за инвестиции в экономику этой страны. В настоящий момент Волож занимает 76-е место в российском «списке Форбс» с личным состоянием в размере 1,2 миллиарда долларов. По этому показателю он немного отстает от олигархов, связанных с нефтяной и газовой отраслью.

Bloomberg
Der Spiegel
Neue Zürcher Zeitung

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

Насколько долго продержится эта модель, пока не понятно. Но для Воложа эту договоренность можно назвать успехом — ведь все могло закончиться намного хуже, и при определенных условиях Яндексу грозила бы потеря сотрудников, многие из которых критически настроены по отношению к Кремлю. IT-специалисты очень важны для России, ведь многие из них стремятся перебраться в Европу или в Кремниевую долину.

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

Несмотря на не слишком хорошие показатели этой весны, связанные с продлившимся несколько недель локдауном (особенно пострадали такие направления Яндекса, как реклама и такси), Волож намерен уже в скором времени серьезно расширить концерн. Недавно было объявлено о переговорах Яндекса с руководством успешного российского онлайн-банка «Тинькофф» о покупке последнего за 5,5 миллиарда долларов. Если эта сделка действительно состоится, Яндекс, помимо прочего, превратится еще и в банк. Тогда он сможет обеспечивать все финансовые операции своих клиентов и даже давать им по мере необходимости кредиты на онлайн-покупки.

До весны этого года у Яндекса был другой финансовый партнер — Сбербанк, крупнейший российский банк с государственным участием. Как говорил глава Сбербанка Герман Греф, совместное предприятие должно было превратиться в «российский Amazon». Однако когда стало понятно, что в других отраслях две компании все больше и больше конкурируют, было принято решение о разделении активов. Сбербанк недавно помпезно представил результаты собственного ребрендинга, превратившись в Сбер. Это должно подчеркивать, что теперь Сбер — «больше, чем просто банк». Он тоже целая цифровая экосистема: на сайте клиенты могут не только получить информацию о финансовых услугах, но и купить бургер с картошкой фри.

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

Материалы ИноСМИ содержат оценки исключительно зарубежных СМИ и не отражают позицию редакции ИноСМИ.

Подписывайтесь на нас в Twitter и каждый час получайте переводы материалов зарубежных СМИ.

В честь чего дают имена поисковым машинам?

http://news.pravda.ru/export.html?/science/2003/10/23/56326.html

Их звучные имена у всех на слуху, но не многие пользователи догадываются об истинном значении этих слов. Что значит Google? Нужно ли бояться Inktomi? Кто и при каких обстоятельствах придумал назвать Яндекс — Яндексом, а Рамблер — Рамблером? Журнал «Инфобизнес» подготовил небольшой экскурс в историю появления и значение названий основных поисковиков.

Google – производное от «гугол», математического термина, обозначающего единицу со ста нулями. Как отмечает сам Google, во всей вселенной нет гугла чего-либо. К счастью для команды Google по связям с общественностью, это название заместило ранее использовавшийся вариант «Backrub» (что-то вроде «притирка»).

Lycos назван в честь Ликозиды, латинского названия для волчьих пауков. В отличие от большинства пауков, которые пассивно ждут добычу в паутине, волчьи пауки активно охотятся за своей жертвой. (Адаптированная для России версия: поисковик назван в честь собаки-космонавта Лайки — прим. Вокруг Новостей).

Yahoo! был запущен как «ключ к Всемирной паутине от Джерри» по имени соучредителя сервиса Джерри Янга (Jerry Yang). Само слово Yahoo! – это акроним, означающий «Yet Another Hierarchical Officious Oracle» («Еще один неофициальный прорицатель»), но Янг и второй соучредитель Давид Фило (David Filo), видимо, посмотрев слово в словаре, настаивают на следующей расшифровке Yahoo! – «грубый, безыскусный, неотесанный». Сегодня Янг и Фило называют себя «Chief Yahoo» («Главный Yahoo»).

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

Rambler – пример заимствования слов чужого языка. Англо-русский словарь Лингво дает перевод «праздношатающийся; бродяга». Есть и другое значение – «вьющаяся роза; ползучее растение».

Яндекс представляет оригинальный гибрид, ни в русском ни в английском языке ничего не обозначающий. Елена Колмановская, главный редактор Яндекс, поясняет, что «придумал слово „Яндекс“ отец-основоположник нашего поиска, ныне технический директор компании „Яндекс“, Илья Сегалович. „Яndex“ означает „Языковой index“, или, если по-английски, „Yandex“ — „Yet Another indexer“. За годы публичного существования Яndex возникли и другие толкования. Например, если в слове „Index“ перевести с английского первую букву („I“ — „Я“), получится „Яndex“.

Другое толкование предлагает Аркадий Волож, генеральный директор компании:

„Это название (“Яндекс» – «Yet Another Indexer») придумал Илья Сегалович (главный разработчик «Яндекса») по аналогии с продуктами Unix (например, YACC – Yet Another C Compiler). А мне понравилась русская транскрипция. «Яндекс» означает «языковый индекс»: буква «я» – очень русская буква. Это индексирование с русской спецификой. А потом придумалось много других объяснений, например: I – это «я» по-русски. Есть еще вариант: ЯНЬдекс и ИНЬдекс (INdex / YANdex) – инь-янь. Исследования на эту тему продолжаются.«

Интересное о Yandex — Symeon Metafrast (Logofet) — ЖЖ

Яndex
Слово «Яndex» придумал за несколько лет до этого один из основных и старейших разработчиков поискового механизма. «Яndex» означает «Языковой index», или, если по-английски, «Yandex» — «Yet Another indexer». За 4 года публичного существования Яndex возникли и другие толкования. Например, если в слове «Index» перевести с английского первую букву («I» — «Я»), получится «Яndex».

Следует уточнить, что обычно стартовая страница сайта называется INDEX (index.html, index.php … в зависимости от языка на котором выполнен сайт).

Продам вантуз и пассатижи и срочно куплю горные лыжи рвану с вершины, что к богу ближе!

Яндекс появился до yandex.ru. Слово Яндекс придумали в 1993 году, а публично оно было произнесено в 1996 году и означало тогда не компанию и не поисковую машину, а ряд программных продуктов — например, морфологическую приставку к поисковой системе Altavista. com.

23 сентября 1997 года о www.yandex.ru знал десяток человек. В 2007 году Яндексом стали регулярно пользоваться больше 10 миллионов .

Яндекс стал отдельной компанией в 2000 году, а до этого был подразделением компании CompTek.

Все 10 человек, которые работали в Яндексе в 1997 году, работают в нем и сегодня.

Первые два сервера Яндекса стояли под ногами у первого сисадмина. Третий сервер под ноги не поместился, пришлось переехать на хостинг в МТУ. В 2000 году Яндекс построил первую собственную серверную, и с тех пор все сервера находятся в собственных дата-центрах.

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

При разработке первого дизайна главной страницы Яндекса было непонятно, чем ее украсить, кроме поисковой строки. Придумали Сказки и Числа. Логотип Яндекса был нарисован под углом, и мы получали письма: «Неужели не могли бумажку в сканер ровно положить?».

Только 10% пользователей из числа вводящих в поисковую строку «Яндекс» запросы со словом «любовь» интересуются отношениями между людьми. Об этом говорится в пресс-релизе «Яндекса», приуроченном ко Дню святого Валентина.

Когда я ищу что-то в Яндексе и не нахожу, Яндекс меняет свой слоган «Найдется всё» на «Найдется все со временем»)))

Слоган «Найдётся всё» придумали в 2000 году. В этом же году Яндекс запустил первую рекламу интернет-сайта на российском телевидении.

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

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

Мужчины делают ошибки чаще женщин.

Запросы мужчин короче женских ) Ну это и в жизни проявляется)

За последний год в Интеренет стало выходить на 10 процентов больше людей! Процент немаленький!

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

Использование IndexedDB — Интерфейсы веб API

IndexedDB — это способ постоянного хранения данных внутри клиентского браузера, другими словами это NOSQL хранилище на стороне клиента. Что позволяет создавать веб-приложения с богатыми возможностями обращения к данным независимо от доступности сети, ваши приложения могут работать как онлайн, так и офлайн.

Это руководство по использованию асинхронного API для IndexedDB. Если вы не знакомы с IndexedDB, то обратитесь для начала к документу Basic Concepts About IndexedDB. .

Некоторые части документа не переведены, в основном это повсеместно принятые в программировании рекомендации, такие как обработка ошибок или что-то очевидное. Тем не менее вы можете/должны продолжить перевод. Главная цель перевода — понять основные концепции IndexedDB, обратить внимание на важные нюансы, прокомментировать исходный код и может быть добавить примеры.

Справочную документацию по IndexedDB API вы найдёте в документе IndexedDB. В нем описаны типы объектов, используемых в IndexedDB, а также синхронный и асинхронный API.

Обычная последовательность шагов при работе с IndexedDB :

  1. Открыть базу данных.
  2. Создать хранилище объектов в базе данных, над которой будут выполняться наши операции. 
  3. Запустить транзакцию и выдать запрос на выполнение какой-либо операции с базой данных, например, добавление или извлечение данных.
  4. Ждать завершения операции, обрабатывая событие DOM, на которое должен быть установлен наш обработчик.

  5. Сделать что-то с результатами (которые могут быть найдены в возвращаемом по нашему запросу объекте ).

Теперь, получив общее представление, переходим к более конкретным деталям.

Так как спецификация пока ещё находится в процессе разработки, то текущие реализации IndexedDB отличаются у различных браузеров и могут содержать имена объектов, включающие в себя префиксы браузеров. Однако, как только стандарт будет принят,  префиксы будут удалены. К настоящему моменту префиксы уже удалены в реализациях IndexedDB в Internet Explorer 10, Firefox 16 и Chrome 24. Браузеры, построенные на базе Gecko пока ещё используют префикс moz, а браузеры на базе движка webkit используют префикс webkit.

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

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


window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;


window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction || window.msIDBTransaction;
window. IDBKeyRange = window.IDBKeyRange || window.webkitIDBKeyRange || window.msIDBKeyRange;

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

if (!window.indexedDB) {
    window.alert("Ваш браузер не поддерживает стабильную версию IndexedDB. Такие-то функции будут недоступны");
}

Открытие базы данных

Как-то так:


var request = window.indexedDB.open("MyTestDatabase", 3);

Видите? Открытие базы данных, подобно любым другим операциям, запускается запросом.

На  самом деле запрос открытия базы данных не приводит к немедленному открытию базы или запуску транзакции. Вызов функции open() вернёт объект IDBOpenDBRequest , содержащий результат (если успешно) или ошибку, которую вы можете обработать как событие. Большинство других асинхронных функций IndexedDB делает то же самое — возвращает объект IDBRequest  с результатом или ошибкой. Результат функции open всегда возвращает экземпляр объекта IDBDatabase.

Второй параметр метода open — это версия базы данных. Версия определяет схему базы данных — хранилище объектов  и их структуру . Если база данных ещё не существует, то она создаётся операцией open, затем срабатывает триггер события onupgradeneeded и после этого  ваш обработчик этого события создаёт схему базы данных. Если же база данных уже существует, а вы указываете новый номер версии, то сразу же срабатывает триггер события onupgradeneeded, позволяя вам обновить схему базы данных в обработчике. Подробнее об этом см. в Обновление версии базы данных ниже и на странице IDBFactory.open (en-US) справочника

Версия базы данных имеет внутреннее представление unsigned long long number (длинное длинное целое без знака), то есть может принимать очень большие целые значения. Имейте в виду также, что нет смысла использовать в качестве версии базы данных значение с плавающей точкой (float), потому что оно будет сконвертировано в ближайшее меньшее целое. В результате неожиданно может не запуститься транзакция или сработать триггер события upgradeneeded. Например, не используйте значение  2.4 как версию базы данных:

var request = indexedDB.open("MyTestDatabase", 2.4); 
Установка обработчиков

Первое, что понадобится сделать практически со всеми запросами, которые вы создаёте — это добавить обработчики событий успеха и ошибки:

request.onerror = function(event) {
  
};
request.onsuccess = function(event) {
  
};

Какая из двух функций - onsuccess() или onerror() — должна быть вызвана?  Если всё в порядке — то инициируется событие успеха (это событие DOM,  свойство type которого выставлено в "success")  с request в качестве target. Это вызывает запуск  функции onsuccess() объекта request  с событием успеха в качестве аргумента. В противном случае, если возникают какие-то проблемы, то происходит событие ошибки (то есть событие DOM, свойство type которого установлено в  "error") . Это приводит к запуску  функции onerror() с событием ошибки в качестве аргумента.

IndexedDB API разработан так, чтобы минимизировать необходимость обработки ошибок, поэтому скорее всего вы не встретите много событий ошибки запроса (по крайней мере если вы будете использовать этот API!). Однако при открытии базы данных есть несколько общих условий, которые генерируют события ошибок. Наиболее вероятной проблемой является запрет вашему веб-приложению на создание базы данных, установленный пользователем в браузере. Одной из основных целей разработки IndexedDB — это обеспечение возможности сохранения больших объёмов данных для использования офлайн. (Чтобы узнать,  сколько памяти вы можете использовать в разных браузерах, обратитесь к Ограничениям памяти).

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

А теперь предположим, что пользователь разрешил вашему запросу создать базу данных и состоялось событие успеха, запустившее обработчик события успеха. Что дальше? Так как ваш запрос был сгенерирован с вызовом метода indexedDB.open(), то request.result   является экземпляром объекта IDBDatabase и вы определённо захотите сохранить его для будущего использования. Ваш код может выглядеть примерно так:

var db;
var request = indexedDB. open("MyTestDatabase");
request.onerror = function(event) {
  alert("Почему вы не позволяете моему веб-приложению использовать IndexedDB?!");
};
request.onsuccess = function(event) {
  db = event.target.result;
};
Обработка ошибок

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

db.onerror = function(event) {
  
  alert("Database error: " + event.target.errorCode);
};

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

Создание или обновление версии базы данных

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


request.onupgradeneeded = function(event) {
  var db = event.target.result;

  
  var objectStore = db.createObjectStore("name", { keyPath: "myKey" });
};

Версия числа без знака с длиной long long, может быть очень большим.

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

var request = indexedDB.open("MyTestDatabase", 2.4); 

Когда вы увеличиваете номер версии, будет инициировано событие onupgradeneeded. В этот момент БД будет хранить старые объекты. Но для всякого объекта прошлой версии стоит создать новый объект, совместимый с новой версией. Если вам необходимо исправить существующий объект в БД (например, для изменения keyPath), то вы можете удалить объект и создать его вновь с новыми параметрами (помните, что удаление стирает информацию, так что не забывайте сохранять то, что вам нужно).

WebKit поддерживает текущую версию спецификации в Google Chrome 23 и старше. Так что там нет события indexedDB.open(name, version).onupgradeneeded. Однако, вы можете ознакомиться с инструкцией о том, что делать со старым Webkit.

Структура базы данных

Now to structure the database. IndexedDB uses object stores rather than tables, and a single database can contain any number of object stores. Whenever a value is stored in an object store, it is associated with a key. There are several different ways that a key can be supplied depending on whether the object store uses a key path or a key generator.

The following table shows the different ways the keys are supplied. 

Key PathKey GeneratorDescription
NoNoThis object store can hold any kind of value, even primitive values like numbers and strings. You must supply a separate key argument whenever you want to add a new value.
YesNoThis object store can only hold JavaScript objects. The objects must have a property with the same name as the key path.
NoYesThis object store can hold any kind of value. The key is generated for you automatically, or you can supply a separate key argument if you want to use a specific key.
YesYesThis object store can only hold JavaScript objects. Usually a key is generated and the value of the generated key is stored in the object in a property with the same name as the key path. However, if such a property already exists, the value of that property is used as key rather than generating a new key.

You can also create indices on any object store, provided the object store holds objects, not primitives. An index lets you look up the values stored in an object store using the value of a property of the stored object, rather than the object’s key.

Additionally, indexes have the ability to enforce simple constraints on the stored data. By setting the unique flag when creating the index, the index ensures that no two objects are stored with both having the same value for the index’s key path. So, for example, if you have an object store which holds a set of people, and you want to ensure that no two people have the same email address, you can use an index with the unique flag set to enforce this.

That may sound confusing, but this simple example should illustrate the concepts:


const customerData = [
  { ssn: "444-44-4444", name: "Bill", age: 35, email: "bill@company. com" },
  { ssn: "555-55-5555", name: "Donna", age: 32, email: "[email protected]" }
];
const dbName = "the_name";

var request = indexedDB.open(dbName, 2);

request.onerror = function(event) {
  
};
request.onupgradeneeded = function(event) {
  var db = event.target.result;

  
  
  
  var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });

  
  
  objectStore.createIndex("name", "name", { unique: false });

  
  
  objectStore.createIndex("email", "email", { unique: true });

  
  for (var i in customerData) {
    objectStore.add(customerData[i]);
  }
};

As mentioned previously, onupgradeneeded is the only place where you can alter the structure of the database. In it, you can create and delete object stores and build and remove indices.

Object stores are created with a single call to createObjectStore(). The method takes a name of the store, and a parameter object. Even though the parameter object is optional, it is very important, because it lets you define important optional properties and refine the type of object store you want to create. In our case, we’ve asked for an object store named «customers» and  defined a keyPath that is the property that makes an individual object in the store unique. That property in this example is «ssn» since a social security number is guaranteed to be unique. «ssn» must be present on every object that is stored in the objectStore. 

We’ve also asked for an index named «name» that looks at the name property of the stored objects. As with createObjectStore(), createIndex() takes an optional options object that refines the type of  index that you want to create. Adding objects that don’t have a name property still succeeds, but the object won’t appear in the «name» index.

We can now retrieve the stored customer objects using their ssn from the object store directly, or using their name by using the index. To learn how this is done, see the section on using an index.

Before you can do anything with your new database, you need to start a transaction. Transactions come from the database object, and you have to specify which object stores you want the transaction to span. Also, you need to decide if you’re going to make changes to the database or if you just need to read from it.  Although transactions have three modes (read-only, read/write, and versionchange), you’re better off using a read-only transaction when you can, because they can run concurrently

Adding data to the database

If you’ve just created a database, then you probably want to write to it. Here’s what that looks like:

var transaction = db.transaction(["customers"], "readwrite");


The transaction() function takes two arguments (though one is optional) and returns a transaction object. The first argument is a list of object stores that the transaction will span. You can pass an empty array if you want the transaction to span all object stores, but don’t do it because the spec says an empty array should generate an InvalidAccessError. If you don’t specify anything for the second argument, you get a read-only transaction. Since you want to write to it here you need to pass the "readwrite" flag.

Now that you have a transaction you need to understand its lifetime. Transactions are tied very closely to the event loop. If you make a transaction and return to the event loop without using it then the transaction will become inactive. The only way to keep the transaction active is to make a request on it. When the request is finished you’ll get a DOM event and, assuming that the request succeeded, you’ll have another opportunity to extend the transaction during that callback. If you return to the event loop without extending the transaction then it will become inactive, and so on. As long as there are pending requests the transaction remains active. Transaction lifetimes are really very simple but it might take a little time to get used to. A few more examples will help, too. If you start seeing TRANSACTION_INACTIVE_ERR error codes then you’ve messed something up.

Transactions can receive DOM events of three different types: error, abort, and complete. We’ve talked about the way that error events bubble, so a transaction  receives error events from any requests that are generated from it. A more subtle point here is that the default behavior of an error is to abort the transaction in which it occurred. Unless you handle the error by calling preventDefault() on the error event, the entire transaction is rolled back. This design forces you to  think about and handle errors, but you can always add a catchall error handler to the database if fine grained error handling is too cumbersome. If you don’t handle an error event or if you call abort() on the transaction, then the transaction is rolled back and an abort event is fired on the transaction. Otherwise, after all pending requests have completed, you’ll get a complete event. If you’re doing lots of database operations, then tracking the transaction rather than individual requests can certainly aide your sanity.

Now that you have a transaction, you’ll need to get the object store from it. Transactions only let you have an object store that you specified when creating the transaction. Then you can add all the data you need.


transaction.oncomplete = function(event) {
  alert("All done!");
};

transaction.onerror = function(event) {
  
};

var objectStore = transaction.objectStore("customers");
for (var i in customerData) {
  var request = objectStore.add(customerData[i]);
  request.onsuccess = function(event) {
    
  };
}

The result of a request generated from a call to add() is the key of the value that was added. So in this case, it should equal the ssn property of the object that was added, since the object store uses the ssn property for the key path. Note that the add() function requires that no object already be in the database with the same key. If you’re trying to modify an existing entry, or you don’t care if one exists already, use the put() function.

Removing data is very similar:

var request = db.transaction(["customers"], "readwrite")
                .objectStore("customers")
                .delete("444-44-4444");
request.onsuccess = function(event) {
  
};

Now that the database has some info in it, you can retrieve it in several ways. First, the simple get(). You need to provide the key to retrieve the value, like so:

var transaction = db.transaction(["customers"]);
var objectStore = transaction.objectStore("customers");
var request = objectStore.get("444-44-4444");
request.onerror = function(event) {
  
};
request.onsuccess = function(event) {
  
  alert("Name for SSN 444-44-4444 is " + request.result.name);
};

That’s a lot of code for a «simple» retrieval. Here’s how you can shorten it up a bit, assuming that you handle errors at the database level:

db.transaction("customers").objectStore("customers").get("444-44-4444").onsuccess = function(event) {
  alert("Name for SSN 444-44-4444 is " + event.target.result.name);
};

See how this works? Since there’s only one object store, you can avoid passing a list of object stores you need in your transaction and just pass the name as a string. Also, you’re only reading from the database, so you don’t need a "readwrite" transaction. Calling transaction() with no mode specified gives you a "readonly" transaction. Another subtlety here is that you don’t actually save the request object to a variable. Since the DOM event has the request as its target you can use the event to get to the result property. Easy, right?!

Using get() requires that you know which key you want to retrieve. If you want to step through all the values in your object store, then you can use a cursor. Here’s what it looks like:

var objectStore = db.transaction("customers").objectStore("customers");

objectStore.openCursor().onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    alert("Name for SSN " + cursor.key + " is " + cursor.value.name);
    cursor.continue();
  }
  else {
    alert("No more entries!");
  }
};

The openCursor() function takes several arguments. First, you can limit the range of items that are retrieved by using a key range object that we’ll get to in a minute. Second, you can specify the direction that you want to iterate. In the above example, we’re iterating over all objects in ascending order. The success callback for cursors is a little special. The cursor object itself is the result of the request (above we’re using the shorthand, so it’s event.target.result). Then the actual key and value can be found on the key and value properties of the cursor object. If you want to keep going, then you have to call continue() on the cursor. When you’ve reached the end of the data (or if there were no entries that matched your openCursor() request) you still get a success callback, but the result property is undefined.

One common pattern with cursors is to retrieve all objects in an object store and add them to an array, like this:

var customers = [];

objectStore.openCursor().onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    customers.push(cursor.value);
    cursor.continue();
  }
  else {
    alert("Got all customers: " + customers);
  }
};

Warning: The following function is not part of the IndexedDB standard!

Mozilla has also implemented getAll() to handle this case. It isn’t part of the IndexedDB standard, so it may disappear in the future. We’ve included it because we think it’s useful. The following code does precisely the same thing as above:

objectStore.getAll().onsuccess = function(event) {
  alert("Got all customers: " + event.target.result);
};

There is a performance cost associated with looking at the value property of a cursor, because the object is created lazily. When you use getAll(), Gecko must create all the objects at once. If you’re just interested in looking at each of the keys, for instance, it is much more efficient to use a cursor than to use getAll(). If you’re trying to get an array of all the objects in an object store, though, use getAll().

Using an index

Storing customer data using the SSN as a key is logical since the SSN uniquely identifies an individual. (Whether this is a good idea for privacy is a different question, outside the scope of this article.) If you need to look up a customer by name, however, you’ll need to iterate over every SSN in the database until you find the right one. Searching in this fashion would be very slow, so instead you can use an index.

var index = objectStore.index("name");
index.get("Donna").onsuccess = function(event) {
  alert("Donna's SSN is " + event.target.result.ssn);
};

The «name» cursor isn’t unique, so there could be more than one entry with the name set to "Donna". In that case you always get the one with the lowest key value.

If you need to access all the entries with a given name you can use a cursor. You can open two different types of cursors on indexes. A normal cursor maps the index property to the object in the object store. A key cursor maps the index property to the key used to store the object in the object store. The differences are illustrated here:

index.openCursor().onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    
    alert("Name: " + cursor.key + ", SSN: " + cursor.value.ssn + ", email: " + cursor.value.email);
    cursor.continue();
  }
};

index.openKeyCursor().onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    
    
    alert("Name: " + cursor.key + ", SSN: " + cursor.value);
    cursor.continue();
  }
};

Specifying the range and direction of cursors

If you would like to limit the range of values you see in a cursor, you can use a key range object and pass it as the first argument to openCursor() or openKeyCursor(). You can make a key range that only allows a single key, or one the has a lower or upper bound, or one that has both a lower and upper bound. The bound may be «closed» (i.e., the key range includes the given value) or «open» (i.e., the key range does not include the given value). Here’s how it works:


var singleKeyRange = IDBKeyRange.only("Donna");


var lowerBoundKeyRange = IDBKeyRange.lowerBound("Bill");


var lowerBoundOpenKeyRange = IDBKeyRange.lowerBound("Bill", true);


var upperBoundOpenKeyRange = IDBKeyRange.upperBound("Donna", true);


var boundKeyRange = IDBKeyRange.bound("Bill", "Donna", false, true);

index.openCursor(boundKeyRange).onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    
    cursor.continue();
  }
};

Sometimes you may want to iterate in descending order rather than in ascending order (the default direction for all cursors). Switching direction is accomplished by passing prev to the openCursor() function:

objectStore.openCursor(null, IDBCursor.prev).onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    
    cursor.continue();
  }
};

Since the «name» index isn’t unique, there might be multiple entries where name is the same. Note that such a situation cannot occur with object stores since the key must always be unique. If you wish to filter out duplicates during cursor iteration over indexes, you can pass nextunique (or prevunique if you’re going backwards) as the direction parameter. When nextunique or prevunique is used, the entry with the lowest key is always the one returned.

index.openKeyCursor(null, IDBCursor.nextunique).onsuccess = function(event) {
  var cursor = event.target.result;
  if (cursor) {
    
    cursor.continue();
  }
};

When your web app changes in such a way that a version change is required for your database, you need to consider what happens if the user has the old version of your app open in one tab and then loads the new version of your app in another. When you call open() with a greater version than the actual version of the database, all other open databases must explicitly acknowledge the request before you can start making changes to the database. Here’s how it works:

var openReq = mozIndexedDB.open("MyTestDatabase", 2);

openReq.onblocked = function(event) {
  
  
  alert("Please close all other tabs with this site open!");
};

openReq.onupgradeneeded = function(event) {
  
  db.createObjectStore();
  useDatabase(db);
}

openReq.onsuccess = function(event) {
  var db = event.target.result;
  useDatabase(db);
  return;
}

function useDatabase(db) {
  
  
  
  db.onversionchange = function(event) {
    db.close();
    alert("A new version of this page is ready. Please reload!");
  };

  
}

IndexedDB uses the same-origin principle, which means that it ties the store to the origin of the site that creates it (typically, this is the site domain or subdomain), so it cannot be accessed by any other origin.

It’s important to note that IndexedDB doesn’t work for content loaded into a frame from another site (either <frame> (en-US) or <iframe> (en-US). This is a security and privacy measure and can be considered analogous the blocking of 3rd-party cookies.  For more details, see баг 595307.

When the browser shuts down (e.g., when the user selects Exit or clicks the Close button),  any pending IndexedDB transactions are (silently) aborted — they will not complete, and they will not trigger the error handler.  Since the user can exit the browser at any time, this means that you cannot rely upon any particular transaction to complete or to know that it did not complete.  There are several implications of this behavior.

First, you should take care to always leave your database in a consistent state at the end of every transaction.  For example, suppose that you are using IndexedDB to store a list of items that you allow the user to edit.  You save the list after the edit by clearing the object store and then writing out the new list.  If you clear the object store in one transaction and write the new list in another transaction, there is a danger that the browser will close after the clear but before the write, leaving you with an empty database.  To avoid this, you should combine the clear and the write into a single transaction. 

Second, you should never tie database transactions to unload events.  If the unload event is triggered by the browser closing, any transactions created in the unload event handler will never complete.  An intuitive approach to maintaining some information across browser sessions is to read it from the database when the browser (or a particular page) is opened, update it as the user interacts with the browser, and then save it to the database when the browser (or page) closes.  However, this will not work.  The database transactions will be created in the unload event handler, but because they are asynchronous they will be aborted before they can execute.

In fact, there is no way to guarantee that IndexedDB transactions will complete, even with normal browser shutdown.  See баг 870645.

HTML Content

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

    <h2>IndexedDB Demo: storing blobs, e-publication example</h2>
    <div>
      <p>
        Works and tested with:
      </p>
      <div>
      </div>
    </div>

    <div>
    </div>

    <form>
      <table>
        <tbody>
          <tr>
            <td>
              <label for="pub-title">
                Title:
              </label>
            </td>
            <td>
              <input type="text" name="pub-title" />
            </td>
          </tr>
          <tr>
            <td>
              <label for="pub-biblioid">
                Bibliographic ID:<br/>
                <span>(ISBN, ISSN, etc.)</span>
              </label>
            </td>
            <td>
              <input type="text" name="pub-biblioid"/>
            </td>
          </tr>
          <tr>
            <td>
              <label for="pub-year">
                Year:
              </label>
            </td>
            <td>
              <input type="number" name="pub-year" />
            </td>
          </tr>
        </tbody>
        <tbody>
          <tr>
            <td>
              <label for="pub-file">
                File image:
              </label>
            </td>
            <td>
              <input type="file"/>
            </td>
          </tr>
          <tr>
            <td>
              <label for="pub-file-url">
                Online-file image URL:<br/>
                <span>(same origin URL)</span>
              </label>
            </td>
            <td>
              <input type="text" name="pub-file-url"/>
            </td>
          </tr>
        </tbody>
      </table>

      <div>
        <input type="button" value="Add Publication" />
        <input type="reset"/>
      </div>
    </form>

    <form>
      <table>
        <tbody>
          <tr>
            <td>
              <label for="pub-biblioid-to-delete">
                Bibliographic ID:<br/>
                <span>(ISBN, ISSN, etc.)</span>
              </label>
            </td>
            <td>
              <input type="text"
                     name="pub-biblioid-to-delete" />
            </td>
          </tr>
          <tr>
            <td>
              <label for="key-to-delete">
                Key:<br/>
                <span>(for example 1, 2, 3, etc.)</span>
              </label>
            </td>
            <td>
              <input type="text"
                     name="key-to-delete" />
            </td>
          </tr>
        </tbody>
      </table>
      <div>
        <input type="button" value="Delete Publication" />
        <input type="button"
               value="Clear the whole store" />
      </div>
    </form>

    <form>
      <div>
        <input type="button"
               value="List database content" />
      </div>
    </form>

    <div>
      <div>
      </div>
      <div>
      </div>
      <ul>
      </ul>
    </div>

CSS Content

body {
  font-size: 0.8em;
  font-family: Sans-Serif;
}

form {
  background-color: #cccccc;
  border-radius: 0.3em;
  display: inline-block;
  margin-bottom: 0.5em;
  padding: 1em;
}

table {
  border-collapse: collapse;
}

input {
  padding: 0.3em;
  border-color: #cccccc;
  border-radius: 0.3em;
}

.required:after {
  content: "*";
  color: red;
}

.button-pane {
  margin-top: 1em;
}

#pub-viewer {
  float: right;
  width: 48%;
  height: 20em;
  border: solid #d092ff 0.1em;
}
#pub-viewer iframe {
  width: 100%;
  height: 100%;
}

#pub-list {
  width: 46%;
  background-color: #eeeeee;
  border-radius: 0.3em;
}
#pub-list li {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  padding-right: 0.5em;
}

#msg {
  margin-bottom: 1em;
}

.action-success {
  padding: 0.5em;
  color: #00d21e;
  background-color: #eeeeee;
  border-radius: 0.2em;
}

.action-failure {
  padding: 0.5em;
  color: #ff1408;
  background-color: #eeeeee;
  border-radius: 0.2em;
}

.note {
  font-size: smaller;
}

.destructive {
  background-color: orange;
}
.destructive:hover {
  background-color: #ff8000;
}
.destructive:active {
  background-color: red;
}

 

JavaScript Content

(function () {
  var COMPAT_ENVS = [
    ['Firefox', ">= 16.0"],
    ['Google Chrome',
     ">= 24.0 (you may need to get Google Chrome Canary), NO Blob storage support"]
  ];
  var compat = $('#compat');
  compat.empty();
  compat.append('<ul></ul>');
  COMPAT_ENVS.forEach(function(val, idx, array) {
    $('#compat-list').append('<li>' + val[0] + ': ' + val[1] + '</li>');
  });

  const DB_NAME = 'mdn-demo-indexeddb-epublications';
  const DB_VERSION = 1; 
  const DB_STORE_NAME = 'publications';

  var db;

  
  var current_view_pub_key;

  function openDb() {
    console.log("openDb ...");
    var req = indexedDB.open(DB_NAME, DB_VERSION);
    req.onsuccess = function (evt) {
      
      
      
      db = this.result;
      console.log("openDb DONE");
    };
    req.onerror = function (evt) {
      console.error("openDb:", evt.target.errorCode);
    };

    req.onupgradeneeded = function (evt) {
     console.log("openDb.onupgradeneeded");
     var thisDB = evt.target.result;
     if (!thisDB.objectStoreNames.contains(DB_STORE_NAME)) {
      var store = thisDB.createObjectStore(
          DB_STORE_NAME, { keyPath: 'id', autoIncrement: true });

        store.createIndex('biblioid', 'biblioid', { unique: true });
        store.createIndex('title', 'title', { unique: false });
        store.createIndex('year', 'year', { unique: false });
      }
    };
  }

  
  function getObjectStore(store_name, mode) {
    var tx = db.transaction(store_name, mode);
    return tx.objectStore(store_name);
  }

  function clearObjectStore(store_name) {
    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
    var req = store.clear();
    req.onsuccess = function(evt) {
      displayActionSuccess("Store cleared");
      displayPubList(store);
    };
    req.onerror = function (evt) {
      console.error("clearObjectStore:", evt.target.errorCode);
      displayActionFailure(this.error);
    };
  }

  function getBlob(key, store, success_callback) {
    var req = store.get(key);
    req.onsuccess = function(evt) {
      var value = evt.target.result;
      if (value)
        success_callback(value.blob);
    };
  }

  
  function displayPubList(store) {
    console.log("displayPubList");

    if (typeof store == 'undefined')
      store = getObjectStore(DB_STORE_NAME, 'readonly');

    var pub_msg = $('#pub-msg');
    pub_msg.empty();
    var pub_list = $('#pub-list');
    pub_list.empty();
    
    newViewerFrame();

    var req;
    req = store.count();
    
    
    
    
    req.onsuccess = function(evt) {
      pub_msg.append('<p>There are <strong>' + evt.target.result +
                     '</strong> record(s) in the object store.</p>');
    };
    req.onerror = function(evt) {
      console.error("add error", this.error);
      displayActionFailure(this.error);
    };

    var i = 0;
    req = store.openCursor();
    req.onsuccess = function(evt) {
      var cursor = evt.target.result;

      
      if (cursor) {
        console.log("displayPubList cursor:", cursor);
        req = store.get(cursor.key);
        req.onsuccess = function (evt) {
          var value = evt.target.result;
          var list_item = $('<li>' +
                            '[' + cursor.key + '] ' +
                            '(biblioid: ' + value.biblioid + ') ' +
                            value.title +
                            '</li>');
          if (value.year != null)
            list_item.append(' - ' + value.year);

          if (value.hasOwnProperty('blob') &&
              typeof value.blob != 'undefined') {
            var link = $('<a href="' + cursor.key + '">File</a>');
            link.on('click', function() { return false; });
            link.on('mouseenter', function(evt) {
                      setInViewer(evt.target.getAttribute('href')); });
            list_item.append(' / ');
            list_item.append(link);
          } else {
            list_item.append(" / No attached file");
          }
          pub_list.append(list_item);
        };

        
        cursor.continue();

        
        i++;
      } else {
        console.log("No more entries");
      }
    };
  }

  function newViewerFrame() {
    var viewer = $('#pub-viewer');
    viewer.empty();
    var iframe = $('<iframe />');
    viewer.append(iframe);
    return iframe;
  }

  function setInViewer(key) {
    console.log("setInViewer:", arguments);
    key = Number(key);
    if (key == current_view_pub_key)
      return;

    current_view_pub_key = key;

    var store = getObjectStore(DB_STORE_NAME, 'readonly');
    getBlob(key, store, function(blob) {
      console.log("setInViewer blob:", blob);
      var iframe = newViewerFrame();

      
      
      if (blob.type == 'text/html') {
        var reader = new FileReader();
        reader.onload = (function(evt) {
          var html = evt.target.result;
          iframe.load(function() {
            $(this).contents().find('html').html(html);
          });
        });
        reader.readAsText(blob);
      } else if (blob.type.indexOf('image/') == 0) {
        iframe.load(function() {
          var img_id = 'image-' + key;
          var img = $('<img/>');
          $(this).contents().find('body').html(img);
          var obj_url = window.URL.createObjectURL(blob);
          $(this).contents().find('#' + img_id).attr('src', obj_url);
          window.URL.revokeObjectURL(obj_url);
        });
      } else if (blob.type == 'application/pdf') {
        $('*').css('cursor', 'wait');
        var obj_url = window.URL.createObjectURL(blob);
        iframe.load(function() {
          $('*').css('cursor', 'auto');
        });
        iframe.attr('src', obj_url);
        window.URL.revokeObjectURL(obj_url);
      } else {
        iframe.load(function() {
          $(this).contents().find('body').html("No view available");
        });
      }

    });
  }

  
  function addPublicationFromUrl(biblioid, title, year, url) {
    console.log("addPublicationFromUrl:", arguments);

    var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    
    
    xhr.responseType = 'blob';
    xhr.onload = function (evt) {
                           if (xhr.status == 200) {
                             console.log("Blob retrieved");
                             var blob = xhr.response;
                             console.log("Blob:", blob);
                             addPublication(biblioid, title, year, blob);
                           } else {
                             console.error("addPublicationFromUrl error:",
                                           xhr.responseText, xhr.status);
                           }
                         };
    xhr.send();

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  }

  
  function addPublication(biblioid, title, year, blob) {
    console.log("addPublication arguments:", arguments);
    var obj = { biblioid: biblioid, title: title, year: year };
    if (typeof blob != 'undefined')
      obj.blob = blob;

    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
    var req;
    try {
      req = store.add(obj);
    } catch (e) {
      if (e.name == 'DataCloneError')
        displayActionFailure("This engine doesn't know how to clone a Blob, " +
                             "use Firefox");
      throw e;
    }
    req.onsuccess = function (evt) {
      console.log("Insertion in DB successful");
      displayActionSuccess();
      displayPubList(store);
    };
    req.onerror = function() {
      console.error("addPublication error", this.error);
      displayActionFailure(this.error);
    };
  }

  
  function deletePublicationFromBib(biblioid) {
    console.log("deletePublication:", arguments);
    var store = getObjectStore(DB_STORE_NAME, 'readwrite');
    var req = store.index('biblioid');
    req.get(biblioid).onsuccess = function(evt) {
      if (typeof evt.target.result == 'undefined') {
        displayActionFailure("No matching record found");
        return;
      }
      deletePublication(evt.target.result.id, store);
    };
    req.onerror = function (evt) {
      console.error("deletePublicationFromBib:", evt.target.errorCode);
    };
  }

  
  function deletePublication(key, store) {
    console.log("deletePublication:", arguments);

    if (typeof store == 'undefined')
      store = getObjectStore(DB_STORE_NAME, 'readwrite');

    
    
    
    
    var req = store.get(key);
    req.onsuccess = function(evt) {
      var record = evt.target.result;
      console.log("record:", record);
      if (typeof record == 'undefined') {
        displayActionFailure("No matching record found");
        return;
      }
      
      
      
      req = store.delete(key);
      req.onsuccess = function(evt) {
        console.log("evt:", evt);
        console.log("evt.target:", evt.target);
        console.log("evt.target.result:", evt.target.result);
        console.log("delete successful");
        displayActionSuccess("Deletion successful");
        displayPubList(store);
      };
      req.onerror = function (evt) {
        console.error("deletePublication:", evt.target.errorCode);
      };
    };
    req.onerror = function (evt) {
      console.error("deletePublication:", evt.target.errorCode);
      };
  }

  function displayActionSuccess(msg) {
    msg = typeof msg != 'undefined' ? "Success: " + msg : "Success";
    $('#msg').html('<span>' + msg + '</span>');
  }
  function displayActionFailure(msg) {
    msg = typeof msg != 'undefined' ? "Failure: " + msg : "Failure";
    $('#msg').html('<span>' + msg + '</span>');
  }
  function resetActionStatus() {
    console.log("resetActionStatus ...");
    $('#msg').empty();
    console.log("resetActionStatus DONE");
  }

  function addEventListeners() {
    console.log("addEventListeners");

    $('#register-form-reset').click(function(evt) {
      resetActionStatus();
    });

    $('#add-button').click(function(evt) {
      console.log("add ...");
      var title = $('#pub-title').val();
      var biblioid = $('#pub-biblioid').val();
      if (!title || !biblioid) {
        displayActionFailure("Required field(s) missing");
        return;
      }
      var year = $('#pub-year').val();
      if (year != '') {
        
        if (isNaN(year))  {
          displayActionFailure("Invalid year");
          return;
        }
        year = Number(year);
      } else {
        year = null;
      }

      var file_input = $('#pub-file');
      var selected_file = file_input.get(0).files[0];
      console.log("selected_file:", selected_file);
      
      
      
      
      var file_url = $('#pub-file-url').val();
      if (selected_file) {
        addPublication(biblioid, title, year, selected_file);
      } else if (file_url) {
        addPublicationFromUrl(biblioid, title, year, file_url);
      } else {
        addPublication(biblioid, title, year);
      }

    });

    $('#delete-button').click(function(evt) {
      console.log("delete ...");
      var biblioid = $('#pub-biblioid-to-delete').val();
      var key = $('#key-to-delete').val();

      if (biblioid != '') {
        deletePublicationFromBib(biblioid);
      } else if (key != '') {
        
        if (key == '' || isNaN(key))  {
          displayActionFailure("Invalid key");
          return;
        }
        key = Number(key);
        deletePublication(key);
      }
    });

    $('#clear-store-button').click(function(evt) {
      clearObjectStore();
    });

    var search_button = $('#search-list-button');
    search_button.click(function(evt) {
      displayPubList();
    });

  }

  openDb();
  addEventListeners();

})(); 

Test the online live demo

If you want to start tinkering with the API, jump in to the reference documentation and checking out the different methods.

Reference

Tutorials

Related articles

Firefox

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

Is it just me or are you talking in another dimension? Это мне кажется, или ты сейчас разговариваешь в другом измерении?
So the kitchen table exists in another dimension Where that already happened? Но, кухонный стол находится в другом направлении, где это уже случилось.
It was written by a mad prince, who knew of the nightmare city of R’Lyeh, which fell from the stars and exists beneath the sea, and in another dimension. Его написал безумный принц, познавший ужасы города Р’льех, упавшего в море с небес и существующего в другом измерении
In another dimension With voyeuristic intention В другом измерении с вуайеристским намерением
The dead live in another space, in another dimension. Мертвые живут в другом пространстве, в ином измерении.
A wizard who was pledged to the Red Wizards of Thay from boyhood makes plans in another dimension, and is willing to do anything for anyone who can give him more power. Волшебник, который с детства был связан клятвой с красными волшебниками Тэя, строит планы в другом измерении и готов сделать все для любого, кто может дать ему больше власти.
Shredder is hijacked mid-teleport, winds up in another dimension, and meets the alien warlord Krang, who reveals his plans to invade Earth. Шреддер захвачен в середине телепорта, оказывается в другом измерении и встречается с инопланетным военачальником Крэнгом, который раскрывает свои планы вторжения на Землю.
Другие результаты
There can’t be another dimension with the same organism Не может быть другого измерения с таким же существом
What is common in one dimension is frequently rare in another. Что обычно в одном измерении, часто является редкостью в другом.
Climate change is another issue of global dimension that requires global action and institution-building. Изменение климата является еще одной проблемой глобального значения, требующей принятия мер и укрепления институтов на международном уровне.
Another global dimension of policy in the major developed economies stands in clear relief with respect to the present crisis. В контексте нынешнего кризиса четко прослеживается еще один глобальный аспект политики ведущих развитых стран.
It works by bending one dimension over another, and opening a doorway through. Это получится, если свернуть одно измерение в другое, откроется проход. Портал.
But the disease has another punishing dimension. Однако у этой болезни есть еще одно тяжкое последствие.
The more I have thought about the lesson she taught me 45 years ago, the clearer I have seen another, less obvious dimension in what she said: It is “we” who lost the war. Чем больше я думаю об уроке, который она мне преподала 45 лет назад, тем яснее я вижу второй, менее очевидный смысл ее слов. Войну проиграли «мы».
Our three-dimensional world lives in a surface embedded in a space with an extra spatial dimension that separates it from another such surface. Наш трехмерный мир существует на поверхности пространства с дополнительным измерением, которое в свою очередь отделяет его от еще одной подобной поверхности.
You can pretend like you’re leaping into another dimension. Вы можете воображать, будто прыгаете в другое измерение.
You know, guy tried to become a God, so we opened up a portal beneath his quantum-power cube, then Ghost Rider dragged him to another dimension with his hellfire chain. Ну знаешь, парень пытался стать Богом, поэтому мы открыли портал под его квантовой мощью, потом Призрачный гонщик затащил его в другое измерение с помощью своих адских цепей.
There can’t be another dimension with the same organism Не может быть другого измерения с таким же существом
Surely you appreciate the dangers of moving material from one dimension to another. Конечно, вы осознаете опасность перемещения вещества из одного измерения в другое.
The oil company stated they knew another dimension was there but didn’t think drilling into it would be problematic. Компания заявила, что они знали о существовании другого измерения в этом месте Но они не думали что бурение будет столь опасным.
Walter was able to open a wormhole into another dimension that essentially shredded all the laws of science. Уолтер умудрился открыть проход в другую вселенную, что, фактически, сотрясло все известные науке законы.
To them, time might be another physical dimension. Для них время может быть другим физическим параметром.
The fraternity, who silently control the empire, share the belief with the kings, pharaohs and emperors of old that the sphinx was a door to another dimension a gateway to immeasurable power. Братство, тайно контролирующее империю разделяет веру древних королей, фараонов и императоров что сфинкс был дверью в другое измерение вратами к невероятному могуществу.
Uh, when I was 13 years old I first had foie gras and it absolutely transported me to another dimension Когда мне было 13, я впервые попробовала фуа-гра, и это буквально перенесло меня в другое измерение.
But they drilled again, and tore open a portal into another dimension. Но они снова бурили и открыли портал в другое измерение.
Tearing a hole into another dimension is a tragedy that should have never happened. Открытие дыры в другое измерение — ужасная катастрофа которая не должна была произойти.
The rise of Cthulu from another dimension brings about 3,000 years of darkness, Tom. Пробуждение Ктулху из другого измерения сулит нам 3000 годами тьмы, Том.
You slipped into another dimension thing, right? Ты проскользнул в другое измерение?
Now hundreds of creatures from another dimension are spilling out into our reality and wreaking havoc. теперь тысячи тварей из другого измерения расползаются по миру и сеют хаос.
It all began when the BP oil company drilled into the ocean floor and ripped open a hole to another dimension. Все началось с того, как компания ВР пробурила скважину на дне океана, открыв окно в другое измерение
You’re traveling through another dimension, not only of sight and sound, but of mind. Вы движетесь в другом измерении. Не в смысле изображения и звука, а сознания.
and also it has a descending stroke, which is another vertical dimension that I would be interested in establishing. и у нее есть подстрочный элемент, он является другим вертикальным измерением, которое я хотел бы рассмотреть.
The short answer is they were murdered by a vanishing banshee made of matter from another dimension. Вкратце, их убила исчезающая банши, созданная из материи другого измерения.
In an initial experiment, participants rated another person on the introversion–extroversion personality dimension on the basis of an interview. В первоначальном эксперименте участники оценивали другого человека по личностному измерению интроверсии–экстраверсии на основе интервью.
If the size of a document is also considered as another dimension of this space then an extremely efficient indexing system can be created. Если размер документа также рассматривается как другое измерение этого пространства, то может быть создана чрезвычайно эффективная система индексирования.
This case illustrates the difficulty in separating procedural from declarative tasks; this adds another dimension to the complexity of anterograde amnesia. Этот случай иллюстрирует трудность отделения процедурных задач от декларативных; это добавляет еще одно измерение к сложности антероградной амнезии.
A similar story of Scare Glow coming from another dimension summoned by Skeletor is told in an issue of Marvel’s Star Comics, Masters of the Universe series. Похожая история страшного свечения, исходящего из другого измерения, вызванного Скелетором, рассказана в выпуске комиксов Marvel Star, серии Masters of the Universe.
The story features Scare Glow as a character from another dimension who is summoned by Skeletor to use his powers against the Masters. История показывает пугающее свечение как персонаж из другого измерения, который вызван Скелетором, чтобы использовать свои силы против мастеров.
After Disney Castle was built in their world, with Mickey its new king, Pete began causing all sorts of mischief until he was banished to another dimension. После того, как в их мире был построен замок Диснея, а Микки стал его новым королем, Пит начал причинять всевозможные неприятности, пока его не изгнали в другое измерение.
Riemann speculated that the absorbed aether is transferred into another world or dimension. Риман предположил, что поглощенный эфир переносится в другой мир или измерение.
The video is about two gray-skinned people, presumably aliens from another dimension. В ролике речь идет о двух серокожих людях, предположительно пришельцах из другого измерения.
They are also present as allies in the Drifters manga, where they were teleported to another dimension to wage war together. Они также присутствуют в качестве союзников в манге бродяг, где они были телепортированы в другое измерение, чтобы вести войну вместе.
It just opens up your mind to another dimension…Paranoid is the whole Sabbath experience; very indicative of what Sabbath meant at the time. Это просто открывает ваш ум в другое измерение…Паранойя — это весь опыт субботы; очень показательно, что означала суббота в то время.
In some classification schemes, these organisms are larger than 1 mm; in another, the smallest dimension must be at least 0.5 mm. В некоторых классификационных схемах эти организмы имеют размеры более 1 мм; в другой-наименьший размер должен быть не менее 0,5 мм.
The Dark Judges are four undead judges from another dimension, known as Deadworld. Темные судьи-это четыре немертвых судьи из другого измерения, известного как мертвый мир.
Another less important dimension of spread concerns the length of the in-flight shot string from the leading pellet to the trailing one. Еще одно менее важное измерение разброса касается длины стреляной струны в полете от ведущей пули до хвостовой.
Since there is no discussion of hierarchical organization in this article, it would add another dimension to it. Comments? Поскольку в этой статье не обсуждается иерархическая организация, она добавит к ней еще одно измерение. Комментарии?
Another dimension of the theoretical debate in contract is its place within, and relationship to a wider law of obligations. Еще одним аспектом теоретической дискуссии о договоре является его место в более широком обязательственном праве и связь с ним.
But before they can even get close enough, Hydron activates another dimension controller, causing the Bakugan to turn back into ball form. Но прежде чем они успевают подойти достаточно близко, Гидрон активирует другой регулятор измерения, заставляя Бакуган снова превратиться в шар.
As the player investigates this device, he is accidentally transported to another dimension and is trapped in a vast, maze-like cave. Когда игрок исследует это устройство, он случайно переносится в другое измерение и оказывается в ловушке в огромной, похожей на лабиринт пещере.
In fact, a particle is just another name for an excitation in a three-dimensional field, a localized wobbling in space. По сути, частица — это лишь синоним возбуждения в трёхмерном пространстве, локализованное колебание в пространстве.
Parallel universe, coexisting with ours on another dimensional plane. Параллельная вселенная в другом измерении.
Dimensional engineering — one space folded inside another. Пространственная технология — одно место, вложенное в другое.
Then, the cut-up geometrical shapes are slotted one into another and the resultant three-dimensional construct is attached to the initial print. Затем вырезанные геометрические фигуры прорезаются одна в другую, и полученная трехмерная конструкция прикрепляется к исходному отпечатку.
Another good property would be that the projections of xn on a lower-dimensional face of Is leave very few holes as well. Еще одним хорошим свойством было бы то, что проекции xn на более низкоразмерную грань Is оставляют очень мало отверстий.
Drawing is a form of visual art in which a person uses various drawing instruments to mark paper or another two-dimensional medium. Рисование — это вид изобразительного искусства, в котором человек использует различные чертежные инструменты для маркировки бумаги или другой двумерной среды.
Another example is NM data, where an NM image, by definition, is a multi-dimensional multi-frame image. Другой пример-это NM-данные, где NM-изображение, по определению, является многомерным многокадровым изображением.
The most common definition is given above, but another common alternative is to divide by the constant mk to obtain a dimensionless conserved eccentricity vector. Наиболее общее определение дано выше, но другой распространенной альтернативой является деление на константу mk для получения безразмерного вектора сохраненного эксцентриситета.
But if from the comparative dimensions of the whale’s proper brain, you deem it incapable of being adequately charted, then I have another idea for you. Но если вы думаете, что раз у кита такой маленький мозг, то у него извилин тоже мало, я должен уверить вас в противном.
A pair of Lego based Daleks were included in the Lego Ideas Doctor Who set, and another appeared in the Lego Dimensions Cyberman Fun-Pack. Пара Далеков на основе Lego были включены в набор Lego Ideas Doctor Who, а еще один появился в пакете Lego Dimensions Cyberman Fun-Pack.

ЕЩЕ ЕЩЕ ДРУГОЙ в английском переводе

ЕЩЕ ЕЩЕ ЕЩЕ в английском переводе — Примеры использования Еще один в предложении на голландском языке Это сокращение от « Another Compiler Compiler». Название является аббревиатурой от « Еще один компилятор ».Deerkomst van de naam «Yandex» zou initieel staan ​​voor « Еще один индексатор .Yabasic ( Yet Another Basic) — это просто BASIC-интерпретатор для Windows и Unix. Yabasic ( Yet Another BASIC) — это бесплатный интерпретатор BASIC с открытым исходным кодом для платформ Windows и Unix.Яд (korte van Yet Another Dialog) — это форк с открытым исходным кодом, созданный Zenity с большим количеством ошибок. Yad (сокращенно от Yet Another Dialog) — это форк Zenity с открытым исходным кодом со множеством улучшений.Op track vijf genaamd ‘ Yet Another Armageddon’ текст, который мы получаем на трип-хопе На пятом треке под названием « Еще один Армагеддон» нас угощают поездкой. Yaourt staat voor Another User Repository Tool dat kan worden gebruikt voor het Yaourt означает . Другой инструмент репозитория пользователей , который можно использовать для поиска, Еще одна программа, разработанная для Unix, yacc, hetgeen, Еще один компилятор компилятора »betekent. Название — дань уважения yacc, « Another Compiler Compiler».Эта программа работает с более подробной информацией о продуктах Another Cleaner и поддерживает угонщик браузера V9. эта программа известна разработкой таких подозрительных продуктов, как Yet Another Cleaner и даже угонщика браузера V9.neem een ​​kijkje в Don Box Еще одна библиотека COM YACL. возможно, взгляните на библиотеку YACL Another COM от Дона Бокса.YAC- (ook gewoon bekend als Another Cleaner / YAC PC Cleaner) YAC (также известный как Yet Another Cleaner / YAC PC Cleaner) ru мы deden, направляясь на север, прежде чем мы были поражены еще одним проколом от Ангуса. и мы сделали, направляясь на север, прежде чем нас поразило , еще одно проколотое от Ангуса.Эта программа работает с более подробной информацией о продуктах Another Cleaner и поддерживает угонщик браузера V9. и эта программа известна разработкой таких подозрительных продуктов, как Yet Another Cleaner и даже угонщика браузера V9. Уведомление
Этот веб-сайт или его сторонние инструменты используют файлы cookie, которые необходимы для его работы

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

Более ОК

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

ЕЩЕ ЕЩЕ ЕЩЕ в голландском переводе

ЕЩЕ ЕЩЕ ЕЩЕ в голландском переводе — примеры использования еще одного в предложении на английском языке Название является аббревиатурой от « Еще один компилятор ». Это сокращение от « Another Compiler Compiler». Op nóg een flashforward… die nooit gaat komen. Deerkomst van de naam «Yandex» zou initieel staan ​​voor « Еще один индексатор . Мы превзошли и до выигрыша.». Крис Дебакер добавил к своим и без того впечатляющим пальмам еще одного провинциального первого приза . Chris Debacker zet nog maar eens een provinciale overwinning bij op zijn indrukwekkende erelijst.Почему бы тебе не выпить еще раз выпить и не оставить нас поговорить о делах, Schenk je zoveelste in en laat ons verder onze zaken bespreken. Leather ‘tot het zoveelste гимн над deze muzieksoort.Почему загадочный и почему « еще один »? Nog weer een voorbeeld, также we er nog een nodig hadden. Эдвин — nog een van Hals vrienden.Shadow’s Mignon — — это еще один -й коллектив немецкого музыканта и композитора. Еще один четыре, потому что это так близко к Альгамбре.Является ли Paul Waaktaaar-Savoy еще одной «неуместной» зависимостью для ремесла Хобо? Является ли Paul Waaktaar-Savoy een zoveelste «misplaatste» afhankelijkheid voor Hobo’s werk? Еще одна группа , ищущая защиты у России, — это японцы. Dit is nog weer een teken van de positieve voortgang.Это — это еще одна грубейшая ошибка восприятия со стороны мужчин! Dit is nog nog een grove inzicht fout vanwege man! Daar hebben мы nog maar een pizza gegeten en zijn we gaan slapen.

Результатов: 1546, Время: 0.1316

Уведомление
Этот веб-сайт или его сторонние инструменты используют файлы cookie, которые необходимы для его работы

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

Более ОК

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

Часто задаваемые вопросы по индексированию и информационной архитектуре

Обновлено в феврале 2006 г.

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

Если у вас есть вопрос, которого нет здесь, напишите мне по адресу [email protected], и я отвечу вам напрямую. Я, наверное, обновлю это страницу тоже. 🙂

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

ПРИМЕЧАНИЕ. Если вам нужна помощь в отношении возможностей индексирования в Microsoft Word — в некоторые дни мне очень хочется заключить это слово «возможности» в кавычки! — вы можете посетить мой Word Indexing FAQ.


верх

Денежные индексаторы зарабатывают
Сколько денег индексатор действительно может заработать?
На самом деле ваш доход как индексатора зависит от двух деталей.Во-первых, вы просто индексируете или занимаетесь другими делами, например, обучением и консультированием? Как тренер и консультант вы часто берете больше денег за час; вместо того, чтобы выполнять работу, вы помогаете или учит людей делать работу самостоятельно. Но если вы занимаетесь индексированием, то вторая деталь — это сколько часов у вас есть в вашем рабочем дне. Если вы можете много-много часов работать с приличной почасовой оплатой, вы сможете заработать больше денег. Это так просто.
Итак, индексатор, который работает 30 часов в неделю (в среднем) и может индексировать 10 страниц в час, скажем, по 3 доллара за страницу. должен зарабатывать 30 * 10 * 3 = 900 долларов в неделю или около 45 тысяч долларов в год без учета налогов и расходов.Это имеет смысл; этот номер был средний годовой доход респондентов в опросе 2000 г., проведенном Американское общество индексаторов. Однако для многих проектов 3 доллара за страницу — это мало. А для некоторых стилей жизни 30 часов в неделю — это слишком много.
Вопрос в том, можете ли вы сделать больше? Возможно ты сможешь зарабатывайте больше за каждую страницу, работая в более сложных отраслях (сложный контент, тяжелые сроки) или о продуктах с повышенным спросом. Возможно ты может работать более 30 часов в неделю. Если вы новичок в этом вопросе, у вас нет другого выбора, кроме как поэкспериментировать.Я гарантирую, что есть другие продукты, требующие индексации, чем есть хорошие индексаторы, которые могут сделать эту работу. Это, спрос на индексацию высок. Однако найти работу может быть непросто, потому что люди, которым нужны индексаторы, не всегда ищут нужные места. У меня нет удовлетворительного объяснения этому ….
Вакансии с наибольшей оплатой имеют следующие характеристики: сложные темы и аудитории, востребованные отрасли и продукты, необычные или сложные инструменты и требования к носителям, а также сжатые сроки.Таким образом, система пользовательских индексов для персонализированных высокотехнологичная техническая компьютерная документация в формате XML и доставляется онлайн и локализуется для международной аудитории одновременно с запуском продуктов, пользующихся большой популярностью … ну, наверное, заработать много денег. (Мы предполагаем, что люди, управляющие этим проектом конечно, цените индексирование за то, что оно есть на самом деле.) Если вы хотите зарабатывать гораздо меньше денег, посмотрите написать указатели для голодающих докторов наук. студенты пишут свои эзотерические научные тезисы, где в единственном экземпляре навсегда останется в пыли на полке академической библиотеки.:-)

верх

Индексирование глоссариев
Следует ли индексировать глоссарии?
Когда дело доходит до индексации статей глоссария, у меня смешанные чувства.
Иногда я думаю, что глоссарий следует оставить в покое, без индексации. Я не верю, что люди, ищущие термины в указателе, ищут определения; они ищут совета, помощи, процедур, контекста и так далее. Очевидно, что многие статьи глоссария не включите такую ​​информацию или даже сделайте перекрестную ссылку в текст, где рассматривается тема подробнее.Кроме того, глоссарии — это отдельные элементы в книгах, такие как оглавление и сами указатели, и, таким образом, они служат функциональной цели совершенно отдельно от индексированного текста. В онлайн-среде также могут быть доступны заметные ссылки на глоссарий и отдельные статьи глоссария.
В другие дни я понимаю, что не могу точно предсказать все потребности моих читателей. Им могут понадобиться определения. Кроме того, большинство статей глоссария содержат (по крайней мере) достаточно контекстных терминов, чтобы пользователи обращались за советом. может использовать определение глоссария в качестве первого шага к поиску лучшей записи в указателе.Кроме того, не всегда можно найти глоссарии, особенно потому, что они есть в нескольких книгах. Что касается печатных материалов, мы привыкли, что ТОС находится в самом начале (кроме популярных журналов, которые сводят меня с ума), и индекс в конце (за исключением некоторых популярные книги, заваленные рекламой). Но вряд ли мы случайно пролистаем печатный глоссарий. Создание индексных записей в глоссарии информирует пользователя о том, что глоссарий существует, если они захотят использовать его позже. Это не цель индекса, но это неплохой побочный эффект.
Наконец, мне не нравится, как в тексте появляются глоссарии, если вы их идентифицируете. Если вы используете «определенный» или «определение» в качестве подстатьи для каждого определения, хорошо заполненный глоссарий создает избыток повторяющихся строк по всему индексу:
    entry1
        определено, 301
    entry2
        определено, 301
    entry3
        определено, 302
    entry4
        определено, 302 
Если вместо этого вы используете полужирный шрифт для номеров страниц (практика, которую я очень не люблю), вы создаете визуальный путь из затемненных, упорядоченных чисел, от которых глаз не может ускользнуть.Посмотри на выше пример и посмотрите, как быстро ваш глаз находит либо (а) номера страниц, либо (б) числа в моем вводном тексте. Наши глаза хорошо видят закономерности. Глоссарии и указатели расположены в алфавитном порядке; вот в чём проблема.
Решение (и в целом), если вы собираетесь включить глоссарий, не указывайте страницу числа как принадлежащие ему — без подстатьей, без жирного шрифта. (При необходимости сделайте несколько особых исключений.) Такой подход «мягкой продажи» позволяет людям сканировать и используйте записи в порядке номеров страниц, получая глоссарий, содержащий только определения, последним.
Одно примечание: иногда глоссарии содержат много информации, выходящей за рамки ваших стандартных определений, как когда определения занимают несколько абзацев. В этом случае вам следует проиндексировать глоссарий, как если бы он были любой другой главой в книге, и напишите записи для понятий внутри абзаца / внутри определения.

верх

Программное обеспечение для индексирования
Какое программное обеспечение для индексирования мне следует использовать?
Это очень частый вопрос, на который можно ответить только высказав свое мнение.Однако я не в бизнесе по предоставлению мнений о сторонних продуктах. Так что мне придется немного ответить на этот вопрос наискось. Чтобы получить максимальную отдачу от моего ответа, я рекомендую вам посетить веб-страницу об индексировании программного обеспечения по адресу Американским обществом индексаторов. Перейдите на сайт www.asindexing.org и вы найдете страницу в разделе «Ресурсы».
Прежде всего, если вы ищете специализированное программное обеспечение для индексирования, у вас есть только несколько вариантов. На момент написания этой статьи было мало различий, когда дело доходит до функциональности, и много различий в пользовательском интерфейсе.Различные программы по-разному воспринимаются разными людьми. Может существовать корреляция между программным обеспечением и индексированная тематика, но это будет основано на стереотипе. Например, те, кто индексирует технические документы, могут предпочитают интерфейс, похожий на базу данных, тогда как те, кто индексирует научные работы, могут предпочесть более свободный интерфейс. Таким образом, ваш выбор должен основываться на ваших личных вкусах. Большинство программных приложений доступны в виде бесплатных демонстрационных копий. или по более низким ставкам для студентов.
Если вы пишете встроенные индексы (определения этих терминов вы можете прочитать в моей статье Что такое онлайн-индексирование? «В дополнение к тому, что вы читаете на сайте ASI), тогда вы обязаны использовать то программное обеспечение, которое используется для создания самой документации. Например, если документы написаны в Microsoft Word, если вы собираетесь вставлять данные индекса в документы, вы нужна копия Microsoft Word. Это так просто. Однако производители специального программного обеспечения для индексирования работают над обеспечение совместимости их программного обеспечения со встроенными мирами.Это отличная вещь, на которую стоит обратить внимание.
Наконец, моя единственная реальная рекомендация — покупать программное обеспечение только тогда, когда оно вам нужно, а не раньше. Преимущество ранней покупки — возможность попрактиковаться! — но прыжок с пистолетом на это с большей вероятностью оставить вас с программным обеспечением, которое вам не нужно или которым вы не пользуетесь. Программа окупается после первой работы, так что вы можете подожди эту работу. Конечно, оставьте время и на изучение программного обеспечения: основные функции можно изучить примерно за 2 часа.

верх

Перекрестные ссылки в Интернете
Как лучше всего обрабатывать перекрестные ссылки в онлайн-индексах?
На мой взгляд, ссылки на ссылки можно полностью исключить из Интернета. индексы и заменены несколькими сообщениями. То есть вместо того, чтобы поставить все записи в разделе «высшее образование» и создание перекрестной ссылки «университеты. Смотрите высшее образование», я говорю, вы должны поставить все под всем. Однако, чтобы это работало, вам часто нужно перепишите свои ярлыки.Где «университеты» подходили кресту ссылка, новая запись должна быть «университеты и колледжи» или «университеты и другое высшее образование». И так далее. Мои рассуждения что онлайн-текст дешев (хотя на экране часто бывает дешевле), и что нет смысла перебрасывать человека с одного места на другое. Другой. Ссылки в печатном виде полезны только по двум причинам: экономить место (не актуально в Интернете) и контролировать словарный запас (что может быть выполнено с более длинными этикетками). Следовательно, см. Ссылки не нужны.
См. Также ссылки, на мой взгляд, тоже не нужны. По крайней мере, не в индексе. В печатной книге люди могут держать палец внутри индекс после того, как они найдут номер страницы. После того, как они прочитали контент на указанной странице, они используют палец, чтобы вернуться к индекс для получения номера следующей страницы. См. Также справочные работы аналогично этим номерам страниц, давая читателю еще одно место смотреть. (Он также может служить альтернативой номерам страниц, которые есть, таким образом убеждая читателя , а не использовать любую страницу числа и вместо этого найдите другой термин.Я доберусь до этого через второй.)
В онлайн-среде нет эквивалента «пальца». Читатели можно использовать кнопку «Назад», но это часто неэффективно и неточно. Кроме того, похоже, что для отката потребуется гораздо больше работы (потому что поиск нескольких номеров страниц — это , а не об обратном отслеживании). Вместо этого я настоятельно рекомендую вам указать дополнительные номера страниц и см. также ссылки на самой странице, на которую ссылаются, в зависимости от того, темы. Вот пример. Вместо создания печатной записи колледжи, 35, 45, 55.См. Также университеты «, замените страницу номера с заголовками разделов (или другим [дешевым!] текстом) и теряют перекрестная ссылка целиком. Предположим, что это названия A, B и C. в указателе эти буквы отображаются в виде ссылок. Теперь, если читатель нажимает на A, они должны перейти в раздел под названием A, но где-то в этом раздел (на боковой панели или внизу) должен быть связан с темами список. Это выглядело бы примерно так:
      Связанные темы :  B ,  C ,  университеты  
Если читатель затем щелкнул по B, или если читатель щелкнул по B в первую очередь список связанных тем на следующей странице будет
      Связанные темы :  A ,  C ,  университеты  
И, конечно, если читатель когда-нибудь нажмет на «университеты», ссылки содержание «колледжей» должно быть доступно.
Единственный вопрос: в список связанных тем вы включаете только название темы (университеты) или все темы, перечисленные в этот титул (D, E, F)? Это вам решать. Если у вас есть время, я часто рекомендую функциональность под-домашней страницы для более крупных тем. В этом случае вы можете подумать о разработке оглавления для весь относящийся к университету контент. Это зависит от количества и общая функциональность сайта.
Теперь ссылки «смотрите также» предназначены для того, чтобы направлять пользователей к дополнительным и связанный контент, но иногда читатели следят за ними, потому что они помогая им открыть для себя тему, которую они действительно хотят, но не смогли придумать самостоятельно.Например, я могу не вспомнить название для замкнутые геометрические фигуры с прямыми сторонами, но если я посмотрю слово «восьмиугольник» и найдите перекрестную ссылку «См. также многоугольники», затем указатель помог мне составить словарный запас. По этой причине может оказаться целесообразным включить в указатель ссылки на просмотр и использование дополнительных материалов. Этот процесс известен как итеративный поиск — где вы ищете что-то, узнайте из результатов и выполните второй поиск — и было бы действительно полезно при поиске с помощью поисковой системы.Итак, вот еще одно место, где могут быть полезны see-alsos: в результатах поиска. Конечно, в некоторых поисковых системах это уже есть, и они называется «родственными терминами». Совпадение? 🙂

верх

Не использовать диапазоны страниц
Мы, вероятно, сможем сэкономить время, если не будем создавать диапазоны страниц. Они действительно нужны?
Некоторые люди думают, что диапазоны страниц помогают определить, где наиболее важны информация есть, но диапазоны страниц не для этого.Они должны определить, где находится наиболее поддающейся количественной оценке информации о . Контрольный список на одну страницу может быть гораздо более ценным, чем анекдот на десяти страницах, для пример. Это важное различие.
Итак, стоит ли тратить время на создание диапазонов страниц? Ответ — да, пока ты думаешь стоит сообщить читателям, где указаны количества. Это единственное реальное преимущество, помогающее читателю различать между меньшим и большим количеством связанной информации.
Очевидно, что если вы дадите читателю только номер первой страницы, чтобы указать, что контент переносится на более поздние страницы, читатель все еще вероятно, что прочитаете более одной страницы.Они будут читать до тех пор, пока чтение будет интересно. Не думайте, что читатели будут «слушаться» вас, когда вы укажете только один номер страницы, и автоматически остановятся когда они попадают в физическую нижнюю часть страницы. Точно так же только потому, что вы предоставляете диапазон не означает, что они не будут читать каждую включенную вами страницу. Если они хотят читать, они это сделают.
Итак, если по какой-то причине вы решите отбросить диапазоны из своего индекса, сэкономить время или ресурсы (или потому, что ваши инструменты встраивания делают диапазоны настоящие трудности, или потому что вы работаете с HTML-документами и страницей диапазонов даже не существует!), вы не нарушаете удобство использования обнаруживает или читает процессов.Вместо этого вы наносите ущерб дифференциации процесс. Вот пример, который я приводил на семинарах. В такой записи
    электротехника, 15, 45-61, 422
 
две трети всех участников семинара заявили, что сначала пойдут на 45-61 ряд; одна треть говорит, что они начнут со страницы 15; никто никогда выбирает страницу 422 в качестве отправной точки. Однако, когда я опускаю диапазон из индекса и создайте эту запись:
    электротехника, 15, 45, 422
 
результаты впечатляют: 100% участников обращаются первыми к странице 15.Таким образом, вы можете видеть, как диапазон позволяет читателям выбирать более разумно. (Есть способы компенсировать недостающие номера страниц. См. Оба раздела «Обмен локаторами на подстатьи» в этом FAQ, и мою статью Indexing Online.)
Возможно, если вас интересует замена диапазонов с отдельными номерами страниц для экономии времени, что было бы лучше чтобы отбросить диапазоны длиной всего 2 или 3 страницы. (Фактически, я всегда рекомендуется, чтобы все диапазоны страниц составляли 3 страницы или больше.) Если вы действительно скупы на ресурсы, дропустите диапазон, когда знаете, что у вас будет только один локатор для этой записи (и не требует различения).С другой стороны, если бы я был рассматривал покупку книги по электротехнике и пил только запись «электротехника, 45» я бы не стал покупать. А диапазон «45-61» может передумать. Видеть? Дело в количестве.

верх

Об индексаторах и библиотекарях
Что вы можете рассказать мне об отношениях между индексаторами и библиотекарями, и как они могут работать вместе?
Я считаю, что индексаторы — специалисты, и у многих из них нет библиотеки. научные фоны.Я один из них. Я думаю, эта специальность имеет тенденцию быть преимущество в том, что индексаторы редко заботятся о том, чтобы совершенно правильно «с точки зрения таксономии, а скорее они обеспокоены в «выполнении работы». Работают в срок в реальном мире среды, и они, как правило, ориентированы на бизнес. Также работа по индексации часто краткосрочные, так как проекты могут быть завершены в кратчайшие сроки одна неделя (а иногда и меньше). Индексаторы также взимают необычную инкременты, как страницы, и поэтому хорошо понимать информацию количества.
Возможно, самая большая разница между индексаторами и библиотекарями (в мое мнение) заключается в том, что индексаторы лучше устраняют разрыв между необразованные пользователи и информация. Я считаю, что идеальный интерфейс между пользователями и информацией находится библиотекарь; Нет вопросов. Идеальная система представляет собой всеобъемлющую, гибкую и точную систематизацию информации, Библиотечный интерфейс между пользователем и информацией. Например, я может зайти в публичную библиотеку и сказать: «Я хочу книгу о гражданской войне», а библиотекарь поможет мне сузить выбор.К сожалению, Система таксономии, стоящая за библиотекарем, для меня совершенно недоступна. Никто не входит в публичную библиотеку с мыслью: «Мне нужна книга, поданная как HK523.4. «Что означает HK? Сколько людей знают?» (На самом деле я узнал, что некоторые библиотекари считают, что десятичная система Дьюи не даже лучший выбор для стеллажей книг, но мало кто знает, что есть альтернативы, или они действуют сегодня.) Таким образом, доступ к информации и Навигационные процессы на 100% принадлежат библиотекарям.К счастью, эти библиотекари обучены.
Однако в большинстве сред интерфейсы, подобные библиотечному, недостижимы. Вы не можете связать библиотекаря в учебник, вы не можете искусственно превратить библиотекаря в алгоритм поисковой машины, и у вас не может быть танцующих библиотекарей со скрепками всплывают во второстепенных окнах каждый раз, когда кто-то хочет перейти Веб-сайт. Следовательно, у вас нет другого выбора, кроме как отказаться от обоих информационная таксономия и библиотечный интерфейс. Так что же тогда? … Спросить индексаторы.
Индексирование книг и написание информационной архитектуры для веб-сайтов (два вещи, которые я делаю весь день!) требуют доступности и навигации структуры, которые работают для более невежественных пользователей. Это тяжелая работа. я сочли оскорбительной мысль о том, что я «прикидываю веб-сайт»; ты знать, как сложно имитировать и библиотекаря, и таксономию, используя только статический текст? Но индексаторы делают это постоянно; они обязаны не информация, но пользователь. (Библиотечные ученые признательны обоим, с [я думаю] по крайней мере очень незначительным предубеждением в отношении информации.)
Американское общество индексаторов это профессиональная ассоциация, которая удовлетворяет потребности индексаторов, предоставляя сетевые, образовательные, деловые и пропагандистские возможности и поддержка. Есть и другие ассоциации индексации по всему миру, от Австралии до От Британии до Китая (хорошо, я специально отсортировал их по алфавиту :-), и ASI склоняется ко мне как наиболее капиталистичному, сосредоточиваясь на бизнесе. (Австралия похоже, сосредоточен на технологиях, а Великобритания, похоже, сосредоточена на науке. я думаю Британское общество SI [Society of Indexers] наиболее похоже на то, как LibSci ученые думают.)
Основная проблема, с которой сталкиваются индексаторы? Экономика; что еще? Многие индексаторы также боятся технологий, хотя это ложное беспокойство. Это жизнь. Кроме того, индексы во всем мире написаны плохо, а современные технологии делает это тоже легко. На самом деле — и это уже другая идея — технология усложняет написание хороших индексов; это законная проблема. Однако, поскольку Интернет проникает в нашу жизнь с каждым днем ​​все глубже, осознание добра индексация (или что-то подобное) увеличивается — поэтому я думаю, что все выровняется в долгосрочной перспективе.Это все равно что жаловаться, что англичане язык развивается: больше слов против худшей грамматики.
Библиотечное дело влияет на индексацию, потому что у сотрудников LibSci есть свои пальцы на том, что * действительно * происходит в информационных мирах. Хотя большая часть мира сосредоточена на сроках и достаточно хорошем, чтобы действительно понимать, как делать вещи правильно (или, по крайней мере, лучше), что вам нужно понимать принципы хорошего библиотечного дела. Я думаю это важно для библиотечным ученым, чтобы соединить насущные потребности одержимый деньгами мир с проверенными практиками предоставления хорошей информации управление.Жалобы ни к чему не приведут; образование является ключевым.

верх

Карьерный совет по информационной архитектуре
Есть ли у вас какие-либо советы для тех, кто исследует информационную архитектуру в качестве карьеры?
Я не уверен, есть ли простые ответы; информационная архитектура — одна из те профессии, в которых компании, ищущие официальную работу IA, являются ищу людей с большим опытом, но международные рекламодатели будут наиболее ценными. в местах, где никто не слышал (или не понимает) информационной архитектуры.:-(
Есть сайты, которые собирают ссылки IA. Например, перейдите в http://dmoz.org и найдите категорию «Информация Архитектура ». (Я веду этот список как доброволец под псевдонимом« систематик ».) Там есть несколько сайтов, и они были бы хороши Рекомендации. У меня нет конкретных ссылок, которые мне нравятся Другой. Вы также можете поискать сайты, посвященные удобству использования, хотя это значительно менее конкретный источник знаний в стиле IA.
Я называю себя консультантом, объясняю клиентам, как мои возможности и ресурсы расширились, а потом пусть нетворкинг остальным.Другие говорили мне, что IA — это декларативное поле: объявите себя ИА, а вы ИА. 🙂 Честно говоря, я никогда официально не подавал заявку на вакансию независимого директора. Фактически, я работаю на Lycos.com как Менеджер интеграции запустили, потому что им нужен был кто-то, чтобы создать онлайн-иерархия для продукта [который так и не был реализован]. Они наняли меня, потому что они поняли, как можно использовать мои навыки. У них уже был таксономист в штате, но мой подход был более практичным и менее теоретический (по их мнению, и я был склонен согласиться), и как следствие я пошел дальше в компании.(Из Конечно, Lycos.com — это ваш типичный дотком, помешанный на прибылях и убытках. Компания; другие компании не так грубы в своем подходе к хорошей LibSci цели.)
Если вы решили, что хотите продолжить образование (имея в виду что у меня нет реальной подготовки, хотя на самом деле я преподавал IA в Bentley College), я бы предложил человеческий фактор. Похоже, это мост между IA и новейшими модными профессиями, такими как «опыт дизайн «и более широко распространенные профессии, такие как дизайн интерфейсов.я обычно специализируются на содержании / тексте / информации и избегают перспективы программирования и графики; однако, если вы хотите остаться более универсального специалиста вы можете изучить и то, и другое. Опять я знаю людей которые предпочитают специализироваться на том, что им больше всего интересно, и имеют большая часть обучения, будь то дизайн доступности, интернационализация, графика или маркетинг.
Если вы хотите пойти по пути агентства по трудоустройству, я бы не знал с чего начать.Опять же, возможно, ты сможешь поищите на dmoz.org и посмотрите, что вы найдете. (И если кто-нибудь найдет что-то особенно интересное, дайте знать мне, . 🙂

верх

В поисках систематика
Я ищу систематика с предметной специальностью. Вы можете помочь?
Здание таксономии — это то, чем я зарабатываю на жизнь на контрактной основе. Например, когда я пишу это, я создаю таксономию для клиента, ответственного за восстановление веб-сайтов колледжей и учебных заведений.Я также построил таксономии для Lycos.com. продукты, два из которых я представляю в качестве тематических исследований на различных конференциях.
Предметная специальность — вот где все становится интересно, потому что давайте будем честными: Предметная экспертиза действительно важна. Предположим, вы смотрите для фармацевта. (У меня технический опыт, в том числе инженерный и компьютеры, и за исключением периодической потребности в ацетоминофене, мой опыт не перекликается с фармацевтическими препаратами. 🙂 Вы можете поискать медицинский индексатор; есть группа особого интереса Американского общества индексаторов, в которую входят индексаторы, заинтересованные в медицинской индексации, хотя не все участники опытные индексаторы, и я не знаю опытных систематиков.Их веб-сайт находится по адресу http://www.scimedindexers.org. Естественно, есть и другие группы SIG с другими специальностями, от права до экологических наук и кулинарных книг. Более подробную информацию см. На сайте ASI.
Если ваш проект принадлежал, например, Northern Light, Я ожидаю, что вы будете требовать от фармацевта с образованием в области библиотечного дела. Они редкие, но в этом суть: таксономии NL — их хлеб с маслом. Они строят лингвистические анализ веб-сайтов для заработка. Однако почти все другие компании преследуют бизнес-цели, выходящие за рамки таксономии. и вряд ли будут столь же требовательны (или готовы продолжать поиски единственного идеального человека).Вместо этого мы видим тенденции к созданию специализированных многопрофильных команд. Если клиенты хотят рассматривать команды из двух человек, систематики и предметные эксперты вместе должны производить лучшие продукты.
Боюсь, это звучит эгоистично, когда я говорю это, но я думаю, что навыки таксономии важнее важнее, чем опыт в предметной области, при условии, что клиент готов предоставить последний и готов работать с систематиком по мере необходимости. Я жду, что библиотекари со мной согласятся, но профильные эксперты (МСП) не согласны.Таково наше естественное стремление ценить свои навыки. 🙂 В любом случае, экономия на навыках таксономии будет проблемой, как бы сильны ваши МСП.

верх

Курс индексации USDA
Я слышал о курсе индексации, предлагаемом Министерством сельского хозяйства США (США Департамент сельского хозяйства). Можешь сказать мне, что ты об этом думаешь?
Курс USDA — это заочный курс, который, в зависимости от вашей скорости и желания пройти курс, может занять до одного года.(Это не обязательно, но имейте в виду, что время завершения ограничено скоростью, с которой тренеры, которые работают индексаторами на полную ставку, помимо преподавания / выставления оценок, могут ответить на ваше домашнее задание.) Курс хороший, и я слышал только хорошее о тренировках. На самом деле я знаю нескольких инструкторов, и оба они отличные индексаторы. и респектабельные инструкторы.
Вопреки мнению, разве нет необходимости проходить курс, прежде чем рекламировать себя в качестве индексатора.Если курс действительно, на завершение уходит год, вам не нужно так долго ждать, чтобы ваш бизнес заработал. Практика приводит к совершенству; вы не станете отличным индексатором всего за несколько месяцев или один курс. И есть несколько индексаторов, которые никогда не проходил курс (включая меня). Но чтобы быть индексатором, вам действительно нужны две вещи: (а) какое-то формальное обучение индексированию и (б) много практики. Посещая годичный курс, вы даете себе возможность работать над развитием навыков.
, если у вас уже есть навыки и опыт, связанные с индексированием — например, если вы автор или из из издательской индустрии или команды документации — тогда курс USDA не для вас. Это занимает слишком много времени, и ты уже так много знаю. Вместо этого запишитесь на короткий курс, чтобы изучить основы индексирования (см. Мою страницу с расписанием для некоторых из моих предложений, чтобы дать вам представление о том, что доступно) или посетить конференцию с индексированием контента и обучением. У Американского общества индексаторов есть обновленный список различных курсов и мероприятий.

верх

Проблемы индексирования из одного источника
Мы используем единый источник и не хотим использовать условный текст. Нам нужны записи в указателе которые появляются в печатной книге без сокращений продуктов, но появляются в Интернете с включенными акронимами чтобы помочь пользователям определить ассоциации продуктов. Например, в книге может быть одна запись «установка», но в скомпилированном онлайн-индексе может потребоваться различать пять «устанавливающих» записей.Как можно создать индекс, который используется один раз, который работает для обоих?
Есть простые и простые ответы. В Самый простой ответ — номера страниц. Если вы можете изобрести способ определить, какие номера страниц подходят к какому продукту, тогда у вас нет дублирует столько, сколько у вас есть избыточность. Другими словами, вместо что-то похожее на это:
 установка, 50, 50, 50, 50, 50 
у вас примерно так:
    установка
        забронировать: 50
        книга b: 50
        книга c: 50
        книга d: 50
        книга e: 50
 
Это процесс, который Компания O’Reilly & Associates попыталась переупаковать пять печатных книг в CD-ROM.Однако они также потратили время и деньги на редактирование мастера. index, чтобы он выглядел хорошо. К счастью, выявив пять источников с номерами страниц требовалось значительно меньше редактирования.
Самое сложное решение — вернуться и переписать все свои записи чтобы они работали вместе. Мастер индексации — это именно такой процесс. Это трудно писать индексы, которые работают как отдельные индексы и как ингредиент для освоения индексов, но это возможно, особенно с предвидение.Если вы заранее знаете, что вам нужно это сделать, вы можете разработать стандартизированный словарный запас (или, по крайней мере, индексировать рекомендации), которые минимизируют ваши проблемы. Когда ты делаешь это без каких-либо продвинутая подготовка, да, у вас проблемы.
Самая большая проблема в процессе редактирования заключается не в том, чтобы индекс выглядел хорошо, конечно; это в интерпретации. Когда у вас есть две записи идентичны, нет гарантии, что они имеют одинаковую сферу применения. Например, рассмотрим индекс с такой записью:
.
 электротехника, 35 
и второй индекс с этой записью:
    электротехника, 40-60
        возможности трудоустройства, 45-47
        школ для, 59
          См. Также  инженерное дело
 
Объединение их без проверки может создать аномалии контента; страница 35 из первой книги может быть посвящена инженерным школам, поскольку пример.Для этого нет хорошего решения, и оно редко стоит усилия, чтобы сделать это правильно.
Я выполнял такую ​​работу как подрядчик, и хотя это может быть очень утомительно это редко бывает сложно. Если у вас есть кто-то посвященный процесс, вы можете довольно быстро очистить окончательный индекс, хотя вы придется делать это вручную на основе созданного продукта. Это могло быть возможно создать систему для ускорения этого процесса в будущем. Кроме того, если вы знаете вы собираетесь делать это часто, подумайте о том, чтобы нанять кого-то вроде меня, например поможет вам построить оптимизированный процесс.

верх

Использование бумажной копии
Выполняется ли индексация книг с бумажной копии?
По состоянию на конец 2002 года указатели большинства книг в книжных магазинах составлялись на бумажных носителях, хотя современные индексаторы используют программное обеспечение для сопоставления данных индекса в алфавитный список с отступами. Техническая документация, такая как руководства, которые вставляются в пакеты программного обеспечения, обычно индексируется с минимальным количеством бумажных копий. Если вы хотите стать индексатором, но также заинтересованы в минимизации использования компьютера (например, возможно, у вас есть видение или другие проблемы с доступностью), вам больше всего повезет, если вы выберете свою карьеру в индексе по отношению к клиентам, которым не требуется создание компьютерной документации более высокого уровня.Такие клиенты будут включать издатели документальной литературы о журнальных столиках, торговой документальной литературы и университетской прессы. Как только вы начнете заниматься занятым и более прибыльный мир технической документации и онлайн-публикаций, включая учебные компакт-диски и электронные книги, ваша потребность в использовании компьютеров существенно возрастает.
Для получения конкретной информации об индексировании я рекомендую посетить веб-сайт Американское общество индексаторов. Я также рекомендовал бы пройти какой-нибудь курс.Многие курсы перечислены на сайте ASI; мой курс находится на моей странице расписания.

верх

Обмен локаторами с подстатьями
Я слышал, что главные записи должны иметь либо локаторы (номера страниц), либо подстатьи, но не то и другое вместе. Вы согласны?
Я абсолютно согласен с , а не с . Более того, я не верю, что для индексирования существуют «правила», а есть только рекомендации. Поэтому, когда вы слышите подобные утверждения, критически спросите себя, какая логика кроется за этим.
Каждый раз, когда вы решаете предоставить подстатьи вместо простого перечисления локаторы на основном начальном уровне, вы существенно расширяете свои ярлыки. Думайте о ваших локаторах как о чем-то вроде ярлыка; текст другой. В книге на 400 страниц метка номера страницы «5» подразумевает вводный контент, а метка диапазона, например «35-55» сообщает, что имеется многостраничный объем информации. Эти подсказки локатора могут помочь вам выберите, к каким читателям нужно обратиться в первую очередь. Конечно, цифры далеко не так же полезно для различения, как текст, поэтому вы можете добавить текст.Или нет.
Рассмотрим такую ​​запись, как «принтеры, 15, 35, 55, 75», в которой есть четыре частично неразличимых указателя. Вы можете написать четыре подстатьи, по одной для каждого номера страницы, но это потребует от вас больше усилий и времени. Так что спросите себя, будет ли более длинный ярлык достаточно полезным, чтобы оправдать усилия; если да, то продолжайте. Однако, если текст подстатьи вообще не представляет ценности для читателя, вы зря тратите время:
    принтеры
        общая информация, 55
        введение в, 15
        видов, 75
        полезные советы, 35 
Это много текста без большого количества информации.Лучше оставить только подстатью «полезные советы», потому что это потенциально самая ценная часть для пользователей, заслуживающая дополнительных слов — а остальные возвращаются на основной начальный уровень:
    принтеры, 15, 55, 75
        полезные советы, 35 
И вуаля, у нас есть как указатели, так и подстатьи для основной записи. Вы видите, насколько это может быть полезно. Фактически, эта структура нарушает еще одно из этих «правил», которое заключается в том, что основная статья никогда не должна иметь только одну подстатью.Это правило сирот, и я с ним не согласен.
Наконец, я хочу уточнить, что я говорю здесь только о локаторах и подстатьях. См. Также перекрестные ссылки, с другой стороны, по определению всегда должны сопровождаться чем-то, либо локаторы, либо подстатьи. Например, «колледжи, 16-26. См. Также университеты» правильно.

верх

Индексирование сокращений
Как, по вашему мнению, следует индексировать аббревиатуры?
Акронимы следует индексировать так же, как индексировать любые синонимы.Например, если вы хотите проиндексировать «каталоги» и «папки», по сути, имеют три возможности.
(*) Перекрестная ссылка
        каталоги. Посмотреть папки
        папки, 001, 002, 003
 
(*) Двойная проводка
        справочники, 001, 002, 003
        папки, 001, 002, 003
 
(*) Уточнение языка
        справочники (папки), 001, 002, 003
        папки (каталоги), 001, 002, 003
 
Обратите внимание, что перекрестная ссылка может применяться в любом направлении, а также, что иногда используется пояснение языка, чтобы добавить перекрестную ссылку.Эта последняя версия обычно используется для сокращений, но это всего лишь один из нескольких вариантов.
        каталоги. Посмотреть папки
        папки (каталоги), 001, 002, 003
 
        Протокол передачи файлов. См. FTP
        FTP (протокол передачи файлов), 001, 002, 003
 
Если вы дважды публикуете сообщения, может быть полезно выполнить разъяснение языка для обеих записей, но имейте в виду, что некоторые аббревиатуры слишком длинные (и, несмотря на то, что в книге упоминается полная версия, вероятно, нет необходимости указывать в указателе) что это не всегда хорошая идея.
 CORBA (архитектура посредника общих объектных запросов), 001 
Когда вы используете перекрестную ссылку, проблема заключается в том, чтобы узнать направление ссылки. Вам следует указать на более общий термин. Итак, какой термин более понятен в этом примере: «FTP» или «протокол передачи файлов»? («Персональный компьютер» или «ПК»?) Я считаю, что сокращения в компьютерных средах более распространены; например, новички не знают, что означает X в «XML», им все равно, что означают DTD и SNMP, и они не стали бы разбирать CORBA, если бы от этого зависела их жизнь.:-)
Есть одно странное различие между работой с сокращениями и работой с синонимами. При использовании аббревиатур всегда возможно, что аббревиатура и ее варианты написаны буквально рядом друг с другом в алфавитном указателе:
        Всемирная паутина (WWW), 001, 002, 003
        WWW (Всемирная паутина), 001, 002, 003
 
В этом случае можно обойтись только одним, а не другим.

верх

Глоссарий поиска
Можете ли вы объяснить логическую логику, определение границ и другие функции поисковых систем?
Лучшее место для информации о функциях поисковых систем — это Глоссарий поисковых систем. доступно на Search Engine Watch.URL-адрес глоссария находится по адресу http://searchenginewatch.com/searchday/01/sd1120-searchterms.html.

верх

Скорость индексирования
Если бы вам пришлось написать индекс для 60-страничного технического руководства (например), сколько времени это займет и сколько это может стоить?
Стандартные скорости индексирования соответствуют тому, что профессиональный индексатор (с приемлемый уровень знания предмета и некоторая индексация опыта и обучения) требуется один час на каждые пять-десять страниц материала, общ.Таким образом, 60-страничное руководство потребует от 6 до 12 часов. времени индексации; на этот раз включает в себя все, от просмотра материал для определения того, что индексируется для форматирования окончательного индекса страниц. Если вы пишете руководство, время индексации немного короче, потому что вы уже знакомы с материал. … Чем сложнее материал для понимания, или более плотно информативная документация, добавляете лишнее время.
Что касается меня, если бы я знал, что пишу указатель для 60-страничного руководства, я мог пообещать закончить работу за один рабочий день, не дрогнув.
Что касается стоимости, она снова зависит от нескольких факторов, в первую очередь от индексации. опыт. Рассмотрим разумную базовую ставку 4,25 доллара за страницу для опытный индексатор (так что базовая плата за этот проект будет около 250 долларов), а затем регулировать в зависимости от плотности материала. Например, я бы ожидал, что индекс стоить меньше, если есть много иллюстраций или компьютерного кода. Прочие факторы включать требования к специальным инструментам, ограничения сроков, собрания команд, внешние факторы в отрасли или компании и другие необычные требования.Кроме того, я предпочитаю учитывать свою свободу в выполнении работы, как по срокам, так и по месту работы, и, вероятно, будет взимать больше за спешка и работа на дому.
Наконец, самый большой фактор субъективен: долгосрочные отношения индексатора с клиентом.

верх

Перевод и локализация индекса
Есть ли какие-либо особые проблемы с интернационализацией и локализацией при индексировании?
Обычно не рекомендуется переводить индексы между языков.Слишком много различий между языками и культур, чтобы сделать перевод идеальным сценарием. Фактически, как В крайнем случае следует отметить, что в традиционных французских учебниках нет индексы; вместо этого они полагаются на сложные оглавления. (Лучшее объяснение Я слышал, что это решение является ответвлением желания Франции сохранить культурную самобытность. и, следовательно, контролировать доступ.) Когда вы не переводя языки в похожие алфавиты — например, когда английский в переводе на японский — меняется сама структура организации.А также наконец, помимо языковых различий, рассмотрите также что аудитории могут быть достаточно разными, чтобы повлиять на ваши решения над тем, что входит в индекс в первую очередь.
Однако если вы просто пишете ключевые слова, вероятный. Без отношений, алфавита и разделения слов случаях целого указателя слова могут быть более легко переведены и функционально искал против. Конечно, даже тогда дословно у переводов проблемы.
Однако есть интересная черта между написанием индексов через несколько языков и письменные индексы для разных аудиторий. Для Например, можно создать «индексные фильтры», которые будут преобразовывать глобальный индекс на более мелкие, настраиваемые индексы. (Например, рассмотрим, как индекс редакции учебника для учителей может быть отредактирован к приличному указателю студенческого издания. Аналогичным образом рассмотрим, как веб-сайты может включить дополнительные возможности навигации после входа пользователя в систему в.) Если вы работаете с культурными различиями, это может быть строго определено, можно было бы создать единый многоязычный указатель, а затем «отфильтруйте» для конкретных языков. Но это было бы огромный проект, и накладные расходы окупятся, только если вы работают с таким большим и интегрированным набором документации, что вы могли бы подумать о том, чтобы столкнуться с кошмаром управления контентом.
Самое простое и лучшее решение, хотя оно может показаться дорогим, — это индексаторы по контракту, которые работают на каждом языке и с которыми удобно работать с переводами, независимо от того, насколько они автоматизированы.

верх

Рецепт лапши Kugel
Вы сначала перешли к этому вопросу? 🙂 Интересно, что подумала бы моя мама, если бы узнала, что это здесь.
Ингредиенты
1 фунт яичной лапши
3 взбитых яйца
1 гр. сахар
1/2 гр. топленое масло
1 1/4 т. ваниль
1 1/2 т. корица
16 унций. емкость для сметаны
16 унций. емкость творога
по желанию: 1 гр. светлый изюм
Отварить лапшу и хорошо процедить.Скомбинируйте все. Смажьте маслом форму 9 X 13. Выпекайте при температуре 350 градусов по Фаренгейту от 45 до 60 минут, пока края не начнут подрумяниваться.

Память переводов — Код как ремесло

Автор: Диего Алонсо

Как мы упоминали в Teaching Etsy to Speak a Second Language , разработчикам необходимо помечать английский контент, чтобы его можно было извлечь и затем перевести. Поскольку мы являемся компанией с непрерывным процессом разработки, мы делаем это ежедневно и в результате получаем значительное количество новых сообщений, которые необходимо перевести, а также изменения или удаления уже переведенных существующих.Поэтому нам нужна была какая-то система запоминания, чтобы легко повторно использовать или следовать стилю существующих переводов.

Память переводов — это организованный набор текста, извлеченного из исходного языка, с одним или несколькими совпадающими переводами. Система памяти переводов хранит эти данные и делает их легко доступными для переводчиков, которые могут помочь им в выполнении своих задач. В языковой индустрии существует множество систем памяти переводов и связанных стандартов.Тем не менее, характер извлеченных нами сообщений (содержащих соответствующие заполнители PHP, Smarty и JavaScript) и наше желание поддерживать стиль перевода, курируемый менеджером по человеческому языку, заставили нас разработать собственное решение.

Короче говоря, нам нужна была система, которая предлагала перевод извлеченных сообщений. Команда поиска Etsy интегрировала Lucene / Solr в нашу инфраструктуру развертывания, что позволяет конфигурации Solr, индексаторам на основе Java и логике синтаксического анализа запросов перейти к производственному коду за считанные минуты.Мы решили воспользоваться функцией MoreLikeThis от Lucene для индексации «похожих» документов, в данном случае похожих сообщений на английском языке с существующими переводами. Процесс оказался довольно простым: мы запрашиваем запрошенное сообщение на английском языке, используя ContentStream , в MoreLikeThisHandler и получаем в результате похожие сообщения с оценками. Это делается через интерфейс нашего переводчика через Thrift. Мы определили пороговое значение для фильтрации сообщений по баллам, чтобы предоставлять релевантные переводы только после получения похожих сообщений на английском языке из результатов запроса.

Стоит отметить, что нам нужно использовать ContentStream для отправки исходного сообщения, потому что большую часть времени мы будем запрашивать предложения по переводу новых сообщений. Другими словами, сообщения без переводов не присутствуют в нашем индексе для сопоставления как документы. При отправке ContentSream на MoreLikeThisHandler он извлечет «интересные» термины для выполнения поиска по сходству.

Вот простая схема основных частей этого процесса:

Мы могли легко протестировать и оптимизировать наши результаты в поисковой среде с помощью запросов Solr, прежде чем подключать службу в пользовательском интерфейсе переводчика.Как вы можете видеть в следующем запросе, мы отправляем содержимое ( stream.body ) сообщения на английском языке, играем с минимальной частотой документов ( mindf ) и частотой терминов ( mintf ) терминов и даже фильтруем запрос ( fq ) для переводов на определенный язык.

http: // localhost: 8393 / solr / translationmemory / mlt? stream.body = Присоединиться к% 20Now
& mlt.fl = content & mlt.mindf = 1 & mlt.mintf = 1 & mlt.интересноTerms = list
& fl = id, md5, content, type, score & fq = language: de

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

 struct TranslationMemoryResult {
 1: строка md5
 2: двойной счет
}

struct TranslationMemorySearchResults {
 1: количество i32,
 2: список сопоставленных сообщений
}

service TranslationMemorySearch расширяет fb303.FacebookService {
 / **
  * Поиск памяти переводов
  *
  * @param содержание сообщения для соответствия
  * @param код языка существующих переводов
  * @return экземпляр TranslationMemorySearchResults - никогда не "null"
  * /
 TranslationMemorySearchResults search (1: строковое содержимое,
                                       2: тип i32,
                                       3: язык строк)
} 

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

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

  Описание:  Призыв к действию присоединиться к etsy.com
  Содержимое:  Присоединяйтесь 

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

  Соответствие   Источник   Перевод 
100% Присоединяйтесь  Jetzt teilnehmen 
80% Присоединяйтесь сейчас.Это бесплатно!  Jetzt anmelden. Костенлос!  

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

  Описание:  Текст, указывающий на отсутствие требований к экспериментальной функции.
  Содержимое:  К прототипу особых требований не предъявляется. Добро пожаловать!

  Соответствие   Источник / перевод 
86% У этой команды нет особых требований.Добро пожаловать! /
         Dieses Team stellt keine speziellen Bedingungen. Willkommen! 
86% У этого эксперимента нет особых требований. Добро пожаловать! /
         Für dieses Experiment gibt es keine speziellen Bedingungen. Willkommen!  

Вот скриншот интерфейса нашего переводчика в действии:

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

Кроме того, мы создали менеджер глоссария переводов, чтобы поддерживать единый стиль при переводе. При просмотре сообщения на английском языке мы ограничиваем содержание сообщения и сопоставляем термины с нашим глоссарием. Несколько примеров из нашей немецкой версии сайта: «Искать» в «Suche», «Круги» в «Zirkel» и «Shop» в — как ни странно, английское слово — «Shop».

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

Академическое индексирование и переводческие услуги — Фрэнсис Янг

Фрэнсис Янг — член Общества индексаторов и опытный профессиональный индексатор, переводчик и палеограф. Он специализируется на индексировании академических книг в области истории, теологии, классики и философии. В прошлом Фрэнсис активно работал корректором в издательствах STEM, особенно в области сельскохозяйственных наук, и был главным редактором серии отчетов Католического общества записи с 2015 по 2017 год.

Службы индексирования

Фрэнсис Янг регулярно составляет индексы для многих крупных издательств, включая Cambridge University Press, Oxford University Press, Brill, Brepols, Routledge, Boydell & Brewer, Bloomsbury Academic и Penguin.

Книги, недавно проиндексированные Фрэнсисом Янгом:

  • W. François, V. Soen, A. Dupont, A. A. Robiglio (ред.), Возвращение к власти: к Томасу Мору и Эразму в 1516 г. (Brepols, 2020)
  • Кэтлин Б.Нил, Письма Эдварда I: политическая коммуникация в тринадцатом веке (Boydell & Brewer, 2020)
  • Рори Маклеллан, Пожертвования рыцарям-госпитальерам в Великобритании и Ирландии, 1291-1400 (Рутледж, 2020)
  • Себ Фальк, Легкие века: средневековое путешествие открытий (Пингвин, 2020)
  • А. Уолшем, Б. Уоллес, К. Ло и Б. Каммингс (ред.), Память и английская реформация (Cambridge University Press, 2020)

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

Переводческие услуги

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

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

Услуги палеографии

Фрэнсис Янг — специалист по чтению средневековых и ранних латинских рукописей, и может предоставить транскрипции текстов рукописей (обратите внимание, что если вам также потребуется перевод, он будет оплачиваться отдельно). Пожалуйста, свяжитесь с Фрэнсисом для получения более подробной информации.

Нравится:

Нравится Загрузка …

Индексатор цанги

— Польский перевод — Linguee

Компания вошла в станк

[…]

с первым в мире, полностью

[…] автоматический, программный ab l e индексатор цанги a устройство использовалось […]

для позиционирования деталей для обработки с очень высокой точностью.

int.haascnc.com

Firma weszła do branży obrabiarek

[…]

wprowadzając na rynek pierwszy na świecie w pełni automatyczny, programowalny

[…] aparat podział o wy z tulejkami zaci sk owymi–.

int.haascnc.com

Haa s 5 C индексатор цанги w a s огромный успех, […]

, и в течение следующих четырех лет компания расширила свою продуктовую линейку до

[…]

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

int.haascnc.com

Aparat pod zi ało wy z tulejkami zaci skow ym i 5C odniósł […]

ogromny sukces i w ciągu kolejnych kilku lat firma rozszerzyła swoją

[…]

ofertę produktową, włączając do niej szeroką gamę w pełni programowalnych stołów obrotowych, obrotowych aparatów podziałowych i akcesoriów do obrabiarek.

int.haascnc.com

Джин Хаас основал Haas Automation в 1983 году, чтобы произвести первый в мире полностью

[…] programmabl e 5 C индексатор цанги .

haascnc.com

Gene Haas założył firmę Haas

[…]

Automation w 1983 r., I wyprodukował pierwszy na świecie w pełni programowalny aparat

[…] podział ow y z uchwytem tul ei zaciskowych 5C.

int.haascnc.com

Убедитесь, что Sea ga t e Indexer ( S ea gate Backups) выбран в области Indexing Plug-ins.

seagate.com

Sprawdź, czy jest zaznaczone pole wyboru Seaga te Indexer (K opie zapasowe Seagate) w obszarze I ndeksowanie rozszerzeń.

seagate.com

Каждый Makino

[…] установлен с h a n indexer , w hi ch, хотя […]

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

[…]

для каждой грани, позиционируется не так точно, как того требует работа.

renishaw.jp

Każda maszyna Makino

[…] jest wypo sa on и w indekser , kt óry j est wykorzystywany […]

w wielu zadaniach w celu skrócenia czasu ręcznego

[…]

ustawiania każdej płaszczyzny.

renishaw.com

Перейдите в Системные настройки> Внешний вид и поведение рабочего пространства> Поиск на рабочем столе> Основные настройки и поставьте галочку

[…]

отметки в полях для Enable Nepomuk Semantic Desktop и Enable

[…] Strigi Desktop Fi l e Indexer , a и , затем нажмите Apply.

manual.aptosid.com

W zaawansowanych ustawieniach użytkownika wejdź w> Wyszukiwanie na pulpicie> Podstawowe ustawienia

[…]

i zaznacz pole Włącz кафедра semantyczny Nepomuk

[…] i Włą cz modu ł indeksowania pl ików S trigi, a […]

następnie kliknij Zastosuj.

manual.aptosid.com

Вдавить т h e цанга a x ia lly в зажимную гайку до т h e цанга h e ad зажимается в […]

канавка для извлечения (примечание: без эксцентрика).

fahrion.de

Nas pnie wcisnąć osiow o tuleję zaciskową do zgrubienia nakrętki mocującej (nie […]

mimośrodowo!).

fahrion.de

Цанга c h uck s , цанги , s pe cial index plate, […]

, фиксированные и регулируемые задние бабки, лицевые панели и опорные блоки доступны по запросу.

каталог.hhw.de

Z ac iski, tuleje zaciskowe, spec ja lne tarcze […]

podziałowe, imadła, zabieraki, koniki, tarcze tokarskie i wsporniki dostępne na zamówienie.

каталог.hhw.de

Программирование привода: embe dd e d indexer f u nc в […]

Аналоговые / импульсные модели

industrial.omron.eu

Programowanie napędu:

[…] zintegrowana f un kcja indeksera w mo de lach analogowych / impulsowych

industrial.omron.pl

Indexer f u lf выполняет задачу подготовки этих файлов, и этот процесс называется индексацией.

mainseek.net

Indexer ma za zadanie przygotowanie tych plików a process ten nazywamy indeksacją.

mainseek.net

Индексатор P o si Работа

Литература.Rock … lautomation.com

Pozycjonowa nie z funkcją indek so wania

Lithuania.rock …lautomation.com

Запуск любого типа

[…] веб-сайта r o r indexer ( i nc luding Google […]

Cash / AdSpy) на общих серверах.

liveserversolution.com

Biegać każdy

[…] rodzaj pa ka l ub indeksator (G oogle g otówka […]

/ AdSpy) на wspólne serwery.

liveserversolution.com

Простое обращение: снимите т h e цанга , c на соедините руку […]

защиты, установите шайбу на шпиндель и затяните шлифовальный

[…] Колесо

с зажимным винтом (при ширине диска от 6 мм шайба не требуется).

пферд.com

Atwa obsługa: us uną ć tuleję, n ało y ć rękawiczki, […]

na wrzeciono nałożyć podkładkę i tarczę dociagnąć śrubą mocującą (tarcza

[…]

„U“ odpada przy grubości od 6 мм).

pferd.com

Если передняя часть внутреннего кольца полностью сидит на выступе вала без канавок для съемника, то

[…]

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

[…] используя spe ci a l цанга p u ll ers.

zvls Slovakia.sk

oyska kulkowe jednorzędowe, łoyska stożkowe i walcowe można demontować za pomocą

[…]

specjalnych ściągaczy zaciskowych, jeśli ich pierścień wewnętrzny jest osadzony w pełni

[…] na wale b ez rowków dl a ściągacza.

zvls Slovakia.sk

Сняв режущий инструмент с т h e цанга , l при общем давлении т h e цанга w i ll облегчить снятие зажимной гайки.

fahrion.de

Po wyjęciu narzędzia z tulei za ciskowej tuleja pod działaniem bocznego nacisku wyskoczy z nakrętki mocującej.

fahrion.de

Необходимо убедиться в отсутствии стружки или грязи на поверхности t h e цанга , w hi ch может отрицательно повлиять на точность системы и повредить t h e цанга .

fahrion.de

Podczas wymiany na powierzchnie

[…] mocowania tulei zaciskowej nie mog dostać się wióra ani inne zanieczyszczenia, ponieważ mogłyby one spowodować zwiększenie bicia i us zk odzen ie zko zko ie zko zko ie c Tulei zko ie

fahrion.de

При необходимости вставить уплотнение (вулканизированная сторона должна

[…] расположите относительно т h e цанга f a ce ).

fahrion.de

W razie potrzeby włożyć pasujcą podkładkę uszczelniającą do nakrętki mocujcej (gumowa strona podkładki uszczelniającej w

[…] kierunku t ulei zaciskowej) .

fahrion.de

Внутренний

[…] позиционирование wi t h indexer f u NC функциональность

industrial.omron.co.uk

Wewnętrzn e

[…] pozycjonowani e z funkcją ind ekser a

industrial.omron.pl

Ballbar QC20-W, лазер XL-80, XC-80

[…] компенсатор и RX10 ro ta r y indexer ( a nd их ML10 и QC10 […] Эквиваленты

) поставляются с

[…]

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

renishaw.com

QC20-W ballbar, лазерный XL-80,

[…] kompens at или XC-80 o raz indekser obro to wy RX10 (o raz ich […]

odpowiedniki ML10 i QC10) są dostarczane

[…]

z obszernymi certyfikatami kalibracji, zawierającymi szczegóły «zgodności z normami» wyników testu.

renishaw.com

Точное позиционирование с помощью P CA M , Индексатор a n d Зубчатая передача

Lithuania.rock … lautomation.com

Dokład ne pozycjonowanie z zastosowaniem PCAM, funkcji indexowania i przekładni

Lithuania.rock … lautomation.com

Mnogosearch s indexer i s i nvoked from cron и […]

создает собственное соединение с базой данных.

blog.thedigitals.pl

Индексатор w mn ogose arc h wywoływany j est z cr on ‘a i ustanawia […]

własne połączenie z bazą danych.

blog.thedigitals.pl

Элемент ввода f o r indexer i s a специальный файл / файлы, […]

так называемый IDX.

mainseek.net

Elementem w ej ścio wym dl a indeksera j est sp ecjal ny plik / pliki, tzw.

mainseek.net

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

[…] тот же сервис r a s indexer , o r double data […]

передача (от источника к импортеру

[…]

и от импортера в Solr).

solr.pl

Pozwala to na uniknięcie zbędnego przesyłania danych przez sieć, jeśli

[…]

датчанин знайду сьен на засобье локальным

[…] względem se rw era indeksującego , lu b podwójnego […]

przesyłania danych (ze źródła do importera, z importera do Solra).

solr.pl

Обратите внимание на то, что CENTRO P

[…] прецизионная si o n цанга c h uc k system, […]

и сконструирован для зажима номинального диаметра

[…] Только

, чтобы достичь максимально возможной точности системы и оптимальной стабильности!

fahrion.de

Należy zwrócić uwagę, e CENTRO P до

[…] precyzyjny uc hwyt zaciskowy , któ ry jest […]

przeznaczony tylko do mocowania narzędzi o znamionowej

[…]

średnicy w celu zapewnienia maksymalnej dokładności ruchu obrotowego i optymalnej стабильности!

fahrion.de

Расширение просто

[…] установлен в т h e цанга o f t he machine […]

(воздушная или электрическая шлифовальная машина) или вставляется в наконечник с гибким стержнем.

pferd.com

Przedłużkę

[…] mocuje się do tulei ma sz yny lub w […]

uchwyt wałka giętkiego.

pferd.com

Используйте прилагаемый ключ патрона для ослабления t h e цанга , t he n вставьте подходящее сверло, в зависимости от того, в каком материале вы будете просверливать отверстие. как можно глубже.

download.pneumatig.eu

Użyj załączonego klucza do poluzowania uchwy tu wiertarskiego, n astępnie umieść odpowiednie wiertło dostosowane do materiału, w którym będzieszak wiertarskiego.

download.pneumatig.eu

Принадлежности, например

[…] задние бабки wi t h цанга c h uc k устройств, […] Призматические вставки

и призматические блоки с шарикоподшипниками доступны по запросу.

каталог.hhw.de

Akcesoria takie jak

[…] koniki z ins ta lacj ą tulei za cisk ow ej, nakładki […]

pryzmowe, koziołki pryzmowe i koziołki do rozwijania

[…]

przewodów z łożyskami kulkowymi dostępne na zamówienie.

каталог.hhw.de

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

[…] приводы wi t h цанга c h uc ks например электрический […]

прямые шлифовальные машины, привод с гибким валом.

pferd.com

Możliwe użycie szczotek tarczowych z

[…] otworem na na dac h z t ulej ą zaciskową […]

нп. szlifierki elektryczne proste, napędy wałków giętkich.

pferd.com

Российский Яндекс, сокращение от «Все же Ано th e r Indexer , » h и составляет около 66% поисковых запросов в России и получает около 80% своих доходов в Интернете. реклама.

infradata.nl

Rosyjski Yandex, czyli skrót od «Еще один AMS-IX» (jeszcze jeden indeksator AMS-IX) obsługuje około 66% rosyjskich zapytań internetowych и czerpie zyski z około 80% dochodów z reklam online.

infradata.pl

Блог | Страница 38 из 39

Вчера вечером Ассоциация редакторов Канадской Британской Колумбии. На собрании филиала присутствовал спикер Уокер Паутц из Управления малых и средних предприятий Канады (OSME) по общественным работам и правительственным службам, который предоставил нам ресурсы для продажи наших услуг правительству Канады. OSME также ежемесячно проводит эти презентации в Small Business B.C.

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

Фон

PWGSC покупает товары и услуги для всех других государственных ведомств; отдельные отделы могут сами купить до 25 000 долларов, не проходя через PWGSC. (Я не знал об этой последней части; для индивидуальных фрилансеров, которые ищут небольшие контракты, прямой переход в отделы может быть лучшей стратегией, чем торги через MERX.)

В поисках возможностей

Чтобы вести дела с федеральным правительством, зарегистрируйтесь в информационной системе регистрации поставщиков.Этот процесс дает вам номер компании по закупкам (PBN), который позволяет вам регистрироваться в других базах данных, делать ставки по контрактам и получать оплату; PBN является обязательным для ведения бизнеса с PWGSC.

Ищите возможности для ставок — запросы на предложения или запросы на постоянное предложение, как правило, — на MERX или Professional Services Online (для контрактов на сумму до 76 600 долларов США). Каждому товару или услуге присваивается товарный код, также известный как идентификационный номер товара и услуги (GSIN). Вы можете искать в базах данных по ключевым словам или GSIN.

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

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

г. до н. Э. не публикует сообщения на MERX; он использует B.C. Сделайте ставку, так что проверьте и там.

Торги

При составлении предложения следуйте инструкциям в RFP или RFSO, делайте свою презентацию ясной и простой, и пусть ваше предложение будет отредактировано и / или вычитано.Убедитесь, что вы соответствуете минимальным обязательным требованиям, и проверьте даты закрытия, чтобы убедиться, что у вас есть время, чтобы подать заявку. (Вам разрешается вносить изменения в свою заявку до даты закрытия — чего я не знал). Дон Не предполагайте, что оценщики знают, кто вы, даже если вы вели с ними дела в прошлом.

У каждой заявки будет один контакт, которому вы можете задать вопросы. Этот человек объединит все вопросы в поправку к первоначальному RFP / RFSO.

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

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

После закрытия

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

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

Меньшие контракты

Чтобы получить контракты на сумму менее 25 000 долларов, лучше всего продавать напрямую отдельным отделам, точно так же, как вы бы продвигались с частным клиентом. Для поиска контактов,

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

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

Оставьте комментарий