21 апр. 2010 г.
Наблюдения
20 апр. 2010 г.
Вакансия для терминатора
18 апр. 2010 г.
17 апр. 2010 г.
Небольшой список вопросов по программированию
C++
- Конструктор копирования, оператор присваивания
- Передача параметров по значению, ссылке, указателю.
- Константные ссылка, указатель
- Константная функция-член класса
- Явные и неявные конструкторы
- Оператор преобразования типа
- Преобразование типов static_cast, constant_cast, dynamic_cast, reinterpret_cast, C-cast
- Перегрузка операторов
- public-, private-, protected-члены класса
- static- члены класса
- Друзья класса
- Указатель на функцию
- Указатель на член класса
- Наследование классов
- Виртуальные функции
- Абстрактный класс
- Множественное наследование
- Виртуальное наследование, виртуальные базовые классы
- Пространство имен
- Шаблонные классы, шаблонные функции
- Перегрузка функций
- Специализация шаблонных классов и функций
- Частичная специализация шаблонных классов
- Члены-шаблоны класса
- Фрагментация памяти. Способы устранения
- Оптимизация возвращаемого значения
- Обработка исключений
- STL-контейнеры, STL-итератор
- STL-Allocator
- Ассоциативный контейнер
- Библиотека boost
- Умные указатели
- Функторы
Алгоритмы и математика
- Вычислительная сложность алгоритма
- Алгоритм нахождения НОД (наибольший общий делитель)
- Алгоритм быстрой сортировки
- Алгоритмы на графах: поиск вглубину, вширину
- Алгоритм Дейкстры (или др.) поиска кратчайшего пути в графе
- Метод Форда-Фалкерсона (ил др.) нахождения максимального потока
- Алгоритмы решения СЛАУ: метод Гауса и др.
- Численное решение нелинейного уравнения: методы Ньютона, золотого сечения и др.
- Быстрое преобразование Фурье
- Алгоритм поиска подстрок
- Алгоритм построения выпуклой оболочки
- Афинное преобразование плоскости
- Биноминальные коэффициенты, числа Стирлинга, перестановки
- Классы P, NP, NP-полные задачи
- Математические ожидания и дисперсия случайной величины
- Условная вероятность, теорема Байеса
- Медиана, alpha-квантили распределения
- Биноминальное и нормальное распределение
- Стеки и очереди
- Связные списки
- Очереди с приоритетами
- Hash-функции
- Бинарные деревья
- Красно-черные деревья
- Коды Хаффмана
- Задача линейного программирования, двойственность
- Симплекс-метод
- Алгоритм банкира
Система
- Критические секции, мьютексы (mutex)
- Deadlock, livelock
- Многопоточность, передача сообщений
- Разделяемая память
- GDI+
- Socket
- Video for Windows
- DirectShow
- Direct 3d
- MFC
Windows 2003 Server, Lotus Notes, ошибка открытия письма.
Access to resource "<URL-адрес htm файла во временной директории пользователя>" has been disallowed
После закрытия окна сообщения отображается только заголовок письма, а тело не отображается.
После недолгих изысканий выяснил, что причиной тому являются включенные ограничения NoRun и NoFileURL. Поводом к изысканиям вне Lotus-а стало то, что установленный Internet Explorer 8 тоже не хотел открывать эти файлы с точно таким же сообщением.
Первое из этих ограничений запрещает выполнение команд через Start/Run (Пуск/Выполнить), посредством Task Manager (Диспетчера задач) и отключает сочетание Win-R. Как оно связано с открытием файлов Internet Explorer-ом - не знаю. Но после отключения этого ограничения IE начал открывать эти файлы нормально. Однако Lotus по прежнему отказывался.
Второе ограничение запрещает обращаться через URL-имена типа
file:///c:/temp/file.htm
к локальным файлам. После отключения оного Lotus согласился работать нормально.
Оба ограничения отключаются либо через ГРупповую политику (gpedit.msc)
Конфигурация пользователя \ Административные шаблоны \ Меню «Пуск» и панель задач
, либо через реестр:
HKLM\SOFTWARE\Microsoft\Windows\Current Version\Policies\Explorer\
NoRun и NoFileURL - 0 - выключено, 1 - включено.
На сайте Microsoft указывается так же наличие этих ключей в ветке HKCU, но там я изменения не вносил.
13 апр. 2010 г.
11 апр. 2010 г.
Windows 2003 Terminal Server, Citrix 4.0
regsvr32 /u explhook.dll
После повторной регистрации библиотеки командой
regsvr32 /i explhook.dll
открытие окна Explorer'а, а не рабочего стола, возобновилось.
Вообще, пара слов по поводу Citrix.
У меня имеется опыт работы с терминальным режимом работы сервера Win2K3 и многопользовательской средой. И сейчас я задаю себе вопрос - почему я раньше не знал про возможности Citrix?!
Какие он дает преимущества по сравнению со стандартным виндовым RDP? Кроме того, что он используется на МКС? Кроме того, что он используется 10-ю крупнейшими банками европы, несколькими министерствами европейских стран?
Ну, во-первых, это безопасность. Это несколько вариантов криптования траффика. В то время, как Microfost только в 2008 сервере решил добраться до защиты трафика RDP-сессий.
Во-вторых, это передача звука в обоих направлениях для клиента. В штатном RDP это, опять-таки, появилось только в 2008 сервере.
В-третьих, это публикация приложений. То есть у нас есть сервер под Windows. Есть клиент с практически любой операционкой, в том числе мобильный. Есть приложение, которое должен пользовать клиент. Ставим это приложение на сервере, публикуем его, настраиваем подключение на клиенте и - вуаля. В линуксе, маке и любой другой операционке, для которой есть Citrix Reciever, мы получаем натуральное виндовое приложение. Скорость работы мобильного клиента, подключенного через GPRS не сильно отличается от пользователя, находящегося в локалке с сервером. И можно особо не беспокоиться при подключении из интернет-клубов, аэропортов и прочих публичных мест, так как при соответствующей настройке трафик надежно защищен.
В-четвертых, это даже возможность подключения через интернет-броузер. С, правда, установленным плагином, но для этого даже Citrix Reciever не нужен.
Ну и в-пятых, это контроль. Контроль загрузки серверов (работа с несколькими серверами для пользователя абсолютно незаметна - он и не подозревает, что каждый раз может подключаться к разным серверам, или запущенные приложения находятся в разных географических точках), контроль прав доступа к приложениям, объему памяти, устройствам и т.д. Печать, мапирование локальных устройств и дисков... В общем, сказка для админа.
Windows Server, Terminal, Virtual CD.
Первое, что было найдено - утилита от Microsoft. Судя по дефолтной пиктограммке от 6-й Visual Studio, программка не предполагалась в широкое использование. Она упоминается в статье "How to customize Windows PE by using the source files that are included with the Microsoft SMS 2003 Operating System Deployment (OSD) Feature Pack". Ставилась и тестировалась в Wiindows 2003 Server и Windows 2008. Обе - x32. На Windows 2008 x64 утилита работать отказалась - возникала ошибка инициализации драйвера.
Второй находкой оказалась утилита MagicDisk от MagicISO. Эта утилита спокойно работает и в x32, и в x64-операционках (разные сборки).
Обе утилиты бесплатны. Видимых ограничений на количество монтируемых дисков не обнаружено. Работают стабильно (пока глюков не замечено). Монтируемые диски остаются в системе и после перезагрузки оной и всеми пользователями.
Неожиданного в этих находках то, что они обе не значатся ни в списках продуктов, ни в центрах скачивания. Первая упоминается в статье, вторая - в разделе помощи.
UPD 2012-11-18: На сайте Майкрософт ссылка на файл не работает, но файл можно скачать на CNet.com - старая уважаемая файлопомойка.
7 апр. 2010 г.
6 апр. 2010 г.
Фрагментация памяти.
Preventing Memory Fragmentation
Applications that are free from memory leaks but perform dynamic memory allocation and deallocation frequently tend to show gradual performance degradation if they are kept running for long periods. Finally, they crash. Why is this? Recurrent allocation and deallocation of dynamic memory causes the heap to become fragmented, especially if the application allocates small memory chunks (int, an 8 byte object etc.). A fragmented heap can have many free blocks, but these blocks are small and non-contiguous. To demonstrate this, look at the following scheme that represents the system's heap. Zeros indicate free memory blocks and ones indicate memory blocks that are in use:
100101010000101010110
The above heap is highly fragmented. Allocating a memory block that contains 5 units (i.e., 5 zeros) will fail, although the systems has 12 free units in total. This is because the free memory isn't contiguous. On the other hand, the following heap has less free memory but it's not fragmented:
1111111111000000
What can you do to avoid heap fragmentation? First of all, use dynamic memory as little as possible. In most cases, you can use static or automatic storage instead of allocating objects dynamically. Secondly, try to allocate large chunks rather than small ones. For example, instead of allocating a single object, allocate an array of objects at once, and use these objects when they are needed. If all these tips don't solve the fragmentation problem, you should consider building a custom memory pool.
В двух словах. При выделении большого числа блоков памяти в куче накапливаются неиспользуемые несмежные области, которые не используются. Со временем эти области заполняют всё выделенную приложению кучу и приложение падает. Основные тезисы:
1. Старайтесь не выделять много маленьких блоков, а выделить один большой.
2. Старайтесь использовать статические или автоматические хранилища.
3. Пишите собственный менеджер памяти.
Можно добавить совет повторно использовать выделенную память.
Пасхальная служба. 3 апреля. Одесса. Иверский монастырь.
Паски ездили святить в Иверский монастырь. Было темно, холодно, много народу... Зато детям праздник :). Купили там 1.5 литра квасу и бутылку (наверное, пол-литровую - они там без опознавательных знаков продаются) кагора. Квас понравился - никаких стабилизаторов и усилителей вкуса не почувствовал. Один недостаток - 15 гивень отдали. 2 литра Ярило - лучшего, имхо, кваса, который продается у нас в магазинах, стоит 8 гривень. Кагор тоже хорош, но о его ингридиентах сложно судить.
Показалось, что проповедь (ее я слушал в пол-уха и на улице) модифицировали в сторону молодежи. Более просто и менее витиевато, чем в прошлые разы.
Несколько фотографий:
![]() |
| Пасха 2010. Иверский монастырь. |
5 апр. 2010 г.
Интересный перекресток
3 апр. 2010 г.
Китайский автопром.
Возникает мысль, что скоро мы будем ездить либо на дорогих китайцах, либо на дешевых европейцах. Что лучше? Не знаю. Пристегивайтесь!
Apple
Дык вот! На чем в 40/50-е годы выехал McDonald's, обставив конкурентов и став в последствии крупнейшей сетью фастфуда? Они урезали своё меню от, imho, 40 до 9 пунктов. Просто выбрать, просто заказать, просто заплатить и удобно съесть. Вариантов приготовления мало, все они стандартизированы и заучены назубок. Всё делается быстро и приемлемо качественно.
При чем тут Apple? А кто-то видел мониторы Apple Cinema 230, Apple Cinema 232i, Apple Cinema 236, Apple Cinema 240e, etc?! Нет. Нету у них такого. У них есть Apple Cinema 18", Apple Cinema 20", Apple Cinema 22". Они отличаются только размером экрана. Долго ли нужно думать, чтобы выбрать размер экрана? Мне хватит 18" для моих задач? Не хватит? Значит всё просто - берем 20". Есть деньги? Берем 22". Выбор ровно из 3 вариантов по одному параметру, который поймет даже секретарша. iPod? Nano - без экрана, Touch - с экраном. iPhone, iPad? Какие варианты выбора у каждого из продуктов? 2-3. И, опять-таки, по параметрам, которые понятны даже бабушке, продающей семечки. Без экрана, с экраном, с большим экраном. Просто выбрать, понятно заплатить, качественно съесть.
Странно? Но так и есть. Чем проще выбор, тем легче выбрать. Я, когда выбирал между Nokia 6300 и 6230, думал, наверное, минут 20. Потом консультант мне рассказал разницу этих двух телефонов (которая, по его словам, заключалась только в толщине корпуса и мощности батареи). 2 года спустя я его вспоминаю с мыслью, что он, эдакий кокашко, не рассказал мне о том, что на моём Nokia 6233 нет разъема под обычные наушники, что клавиша 2 там жестко забронирована под VideoMail, которого у нас в помине нет, что у него джойстик работает чуть по-другому, нежели у 6300...
В общем, больше вариантов выбора - больше проблем. И у покупателя, и у производителя. Меньше вариантов выбора - меньше проблем. И всем проще.
KISS - keep it simple, stupid.
2 апр. 2010 г.
Женщины и морские свинки :)
Последнее время подвисаю на www.9gag.com. Иногда попадаются шедевры. Вот один из них. Где таких админов раздают? :)
1 апр. 2010 г.
Ubuntu. Список любимых приложений
Создать и сохранить список установленных пакетов:
sudo dpkg --get-selections > installed_list.txt
После инсталляции новой системы сделать
sudo dpkg --set-selections < installed_list.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade
31 мар. 2010 г.
Китайцы купили Volvo
Да и, в принципе, бах с ними. Может свои жестянки таки сделают нормальными...
22 мар. 2010 г.
Synergy - прогаммный KV (из разряда KVM)
Поставил сегодня с подачи Кулера утилитку Synergy. И понял, что это то, о чем я так давно мечтал, когда на столе стояло 3 компа с тремя мониторами, тремя клавами и мышами. Идея утилиты проста. На серверном компьютере расшариваются клавиатура и мышь. Монитор у каждой системы свой.
В конфиге клиента указывается имя/IP сервера. У сервера указывается привязка каждого из клиентов к стороне экрана на каждом из участников. То есть: у Васи - Петя слева, Оля сверху; у Оли - Вася снизу; у Пети... и т.д. На каждом участнике запускается Synergy, и всё.
Ставится из репозитория, или из пакета/сорцов/Win-инсталлятора. Сложностей никаких.
У меня в Ubuntu конфиг выглядит так:
section: screens
# названия экранов (хостов-участников)
crew1:
rp-nb:
end
section: links
# У этого экрана участники располагаются так
rp-nb:
left = crew1
# У этого - так
crew1:
right = rp-nb
end
section: aliases
# Алиасы. Тут можно прописать реальные имена хостов, если выше указывались левые
crew1:
shemp
rp-nb:
rettpop-fs
end
В Windows настройка происходити через GUI.
Запуск в Ubuntu:
synergys --config /etc/synergy/synergy.conf
Для теста работоспособности можно ее запустить с ключом "-f" - работа в foreground.
Ну и, вроде бы, всё. На мувике видно, как мышь бегает с одного монитора на другой. Ну, и клавиатура работает. Есть некоторые ограничения на комбинации клавишь (типа Ctrl-Alt-Del). Но это и понятно.
Осталось еще дождаться функции перетаскивания файлов, т.к. буфер обмена между машинами работает. Будет вообще сказка :)
СПО и государство
17 мар. 2010 г.
Прошивка роутера Linksys WRT54GL
С месяц назад прошил в свой Linksys WRT54GL прошвику DD-WRT. Все нормально было поначалу. Но однажды роутер сбросил все настройки. Приехал домой вечером, залез в него, а там всё пусто. Настроил заново. Настройки терять он перестал, но с периодичностью не менее раза в 2 часа он стал перегружаться. Работает-работает, бах - пропал инет. Глядь на роутер, а он моргает лампочкой Power и кнопкой Quick Setup (с логотипом Cisco). Вчера таки решил перепрошить его прошивкой Tomato. Вот:
Uptime 0 days, 23:15:38
То есть работает стабильно.
Зачем начинал перепрошивку отличными от оригинальной прошивками?
Ну, во-первых, оригинальная линксисовская прошивка не позволяет смотреть IP-TV. Правда, DD-WRT заставить пропускать IP-T V в нормальном режиме у меня тоже не получилось. Максимум что получилось, это смотреть тиви с отключенным интернетом. То есть, либо IP-TV, либо интернет. В Tomato это получилось сделать с небольшим костылем (описано тут).
Во-вторых, в альтернативных прошивках есть и WOL, и Cron, скрипты на старт, подключение, etc..., и управление роутером через HTTPS и SSH. А это дает большие (в домашних масштабах :) ) возможности.
В-третьих... Да просто попробовать :) Да и обновления чаще выходят для открытых прошивок.В ходе прошивки узнал одну интересную функцию Linksys WRT54GL (наверняка не только его, но столкнулся с ней я на нем). Первая попытка прошивки роутера бинарником Tomato была неудачной. Роутер впал в ступор - моргает лампочкой Power, все порты закрыты, интернет, ессно, нету. Однако на Ping отзывается. Уж думал, что пора на свалку. Ан нет. Оказывается всё хитро. В случае порчи прошивки роутер отзывается только на пинги и прием файла по протоколу TFTP на порт 69. Таким образом, когда TTL ответных ping-пакетов от роутера становится равен 100, в него можно начинать вливать бинарник, который будет прошит в ППЗУ роутера. Эта утилита из набора DryTek-а делает это через грубый GUI:
- выключил роутер,
- подключил комп к одному из его LAN-портов,
- запустил утилиту, указал адрес роутера и файл прошивки (Tomato)
- пустил на него (всё еще выключенный) ping
- включил роутер
- дождался, когда TTL стал равен 100
- закрыл окно пингования и сказал утилите начинать работу.
Всё заработало.
Фразы
Антиреклама Life:)
Живая лента от Google
Туда же автоматически вносятся ссылки на открытые фотоальбомы из Picasa.Google.com. Можно было бы добавит туда же постинг анонсов из блога на Blogspot-е.
Мне нравится. Правда, пока не хватает внесения записей с мобильного. Но, думаю, это еще впереди. Точнее, в мобильном варианте она есть. Но на Windows Mobile - в очень усеченном вариянте.
Вот тут в красках и с чувством описываются преимущества Buzz-а (англоязычное название Живой Ленты - Google Buzz).
UPD: Таки есть в ЖЛ связка с блоггером. Там же есть и пост сообщений из Twitter-а.
16 мар. 2010 г.
Авария на ул. Ицхака Рабина. Одесса
Work.ua лежит.
10 мар. 2010 г.
Кому кризис, а кому - праздник.
Вот такое объявление о приеме на работу системного администратора:Основные обязанности:
- Обеспечение эффективной работы сотрудников в офисе
- Организация стандартных рабочих мест сотрудников
- Предоставление сотрудникам доступа к стандартным ресурсам сети
- Обеспечение бесперебойного функционирования ИТ оборудования
- Поддержка стандартных ИТ услуг предоставляемых сотрудникам филиала
- Поддержка инсталляционных пакетов SMS
Требования:
- Образование, специальность - высшее техническое
- Опыт работы от 2-х лет
- Сфера деятельности - IT
- Знание офисных продуктов Microsoft;, ОС Microsoft XP, Windows Server2003, AD
- Опыт поддержки ИТ структуры предприятия
- Обучаемость, умение работать в команде
- Английский - уровень чтение технической документации
- Наличие сертификатов специалиста от компании Microsoft приветствуется
За всё это Украинские радиосистемы, ЗАО (ТМ "Билайн") обещает "2850 грн., полный социальный пакет" (на данный момент это $356). Ну, то есть, чтобы ноги не протянул.
ЗЫЖ Грядет время профсоюзов, которые поставят на место этих зажравшихся пользователей искусственного кризиса.
9 мар. 2010 г.
2 мар. 2010 г.
24 февр. 2010 г.
Китайская поделка
Вот и дядюшка Ляо до нетбуков добрался :).


22 февр. 2010 г.
Некоторые полезные команды ATS TDA100-200
Снять >> *30 >> Номер в справочнике (2 цифры) >> Тел. Номер (32 цифры) >> # >> Положить
Звонок из телефонной книги
Снять >> *** >> Номер в справочнике (2 цифры)
Постановка в очередь на занятую линию
Набор номера >> сигнал Занято >> 6 >> подтв. гудок >> положить.
При освобождении линии раздается звонок - снять и говорить.
Отмена постановки в очередь на занятую линию
Снять >> *46 >> подтв. сигнал >> положить.
Перехват входящего звонка на другом номере
Снять >> *41 >> номер, на который идет входящий звонок = говорить.
Установка/отключение режима Не Беспокоить
Снять >> *71 >> 0 (все вызовы) / 1 (внешние вызовы) / 2 (внутренние) >> 0 (снять)/1 (установить)>> подтв. сигнал. >> Положить
Установка/отключение режима переадресации звонков
Снять >> *71 >> 0 (все вызовы) / 1 (внешние вызовы) / 2 (внутренние) >> 0 (снять)/ 2 (все)/ 3 (занято)/ 4 (не ответ)/ 5 (занято или нет ответа)>> Внутренний номер / код выхода на внешнюю линию и внешний номер >> # >> подтв. сигнал. >> Положить
Установка/отключение режима переадресации звонков при перемещении (указываете, на какой номер сейчас принимать звонки вам)
Снять >> *71 >> 0 (все вызовы) / 1 (внешние вызовы) / 2 (внутренние) >> 8 (снять)/ 7 (все) >> Ваш внутренний номер >> подтв. сигнал. >> Положить
Установка таймера переадресации вызова в случае занятости линии или отсутствия ответа
Снять >> *713 >> секунд (2 цифры) >> подтв. сигнал. >> Положить
20 февр. 2010 г.
Я Герой 2012
19 февр. 2010 г.
Ubuntu. Некоторые команды wifi
На ubuntuforums.org наткнулся на топик "HOWTO: Wireless Security - WPA1, WPA2, LEAP, etc.", в котором, в том числе, упоминается команда:
sudo iwlist wlan0которая дает довольно обильную информацию по имеющимся точкам доступа.
А так же
iwconfig- типа ifconfig, только для беспроводных контроллеров.
14 февр. 2010 г.
Geotool
10 февр. 2010 г.
Мысли
9 февр. 2010 г.
Скрещивание Opera и Google Translate
javascript:void window.open('http://translate.google.com/translate?js=y&prev=_t&hl=ru&ie=UTF-8&layout=1&eotf=1&sl=en&tl=ru&u='+encodeURIComponent(location.href)+'&title='+(document.title));
Тут указано его использование
UPD: Еще одна команда. Открывает в новом окне Google Translator с переводом выдленного на текущей странице текста с английского на русский.
javascript:void window.open('http://translate.google.com/#en|ru|'+(window.getSelection()));
8 февр. 2010 г.
Виноват или не виноват. Разбор полетов.
Виноват или не виноват. Разбор полетов.: "Михаил Дайчик, Менеджер Технических Программ Google.
Недавно была обнаружена ошибка в Переводчике Google, из-за которой однотипные фразы " is to blame" переводились одним из трех случайных вариантов: " виноват", " в этом виноват" и, что самое неприятное, " не виноват".
Эту ошибку, в частности, можно было заметить при переводе следующих фраз:
'USA is to blame' - 'США не виновата'
'Russia is to blame' - 'Россия виновата'
'Google is to blame' - 'Google не виноват'
'Italy is to blame' - 'Италия виновата'
Для того чтобы объяснить, откуда могла появиться эта ошибка, следует коротко рассказать о том, как работает Переводчик Google и в чем его принципиальное отличие от других средств.
Обычные переводчики, как правило, преобразуют грамматические конструкции из одного языка в другой исходя из жестко прописанных правил.
Примером такого правила может быть 'если в оригинале использовалась временная форма present perfect, то в русском переводе нужно использовать соответствующую форму для этого глагола'.
Эти правила могут быть сложнее или проще. Могут использоваться правила, распознающие сложные конструкции и меняющие порядок слов в конечном тексте. Но в любом случае в традиционных переводчиках их пишут вручную. У этого подхода есть свои преимущества и недостатки, к которым, в частности, можно отнести нечеловеческую сложность работы, требующейся для того, чтобы покрыть такими правилами все разнообразие языка.
Переводчик Google устроен принципиально иначе. У нас есть набор статистических эвристик, например, 'эта последовательность слов обычно переводится так', который дополнен рядом вспомогательных правил, обобщающих группы слов. Этих правил больше, чем можно найти в традиционных словарях, поэтому они не проходят ручную обработку, а генерируются автоматически.
Изначально для обучения Переводчика Google мы взяли набор текстов, переведенных максимально близко к оригиналу. В дальнейшем для усовершенствования правил мы дали пользователям возможность присылать нам переводы тех фраз, которые Переводчик перевел некорректно.
Откуда появились правила, по которым осуществлялся перевод 'США не виновата', пока еще до конца не ясно, но мы предполагаем, что из предложений пользователей.
В любом случае, ошибка была устранена в кратчайшие сроки и, надеюсь, не повторится.
Хронология событий:
16:28 Я (Михаил Дайчик) получил сообщение о баге.
16:57 Баг передан команде поддержки. Так как команда поддержки находится в другом часовом поясе, у них была глубокая ночь.
17:32 Баг эскалирован, для чего разбудили инженера из команды технической поддержки Переводчика.
19:18 Фикс готов, тестирование началось.
19:39 Патч начали выкатывать на датацентры.
~ 20:10 Изменения вступили в силу во всем мире.
Поправка: Уточнив причину ошибочного перевода с командой Переводчика Google, мы выяснили что предложения пользователей не оказали никакого влияния на данный перевод. На самом деле, эта ошибка была результатом неверных сопоставлений фразы 'виноват', сделанных статистическим алгоритмом при обработке обучающих данных.
Что-то сильно смахивает на "ошибки" типа этой... А в комментариях там и действующие ошибки приводят в пример... "USA wants war" = "США не хотят войны". Аднака!
Идея
Lotus. Ошибка в локальной почтовой базе.
lotus invalid or nonexistent document
Помогла следующая последовательность команд в директории с бинарниками лотуса - предполагаю, что платформонезависимо (в данном случае - под Windows XP):
fixup
compact -D
updall -R















3.jpg)
2.jpg)
.jpg)