...

суббота, 13 апреля 2019 г.

Что такое гейзенбаг: история термина и примеры

Это — справочный материал о гейзенбагах. Говорим о том, как они выглядят и какое отношение имеют к мейнфреймам — прародителям облака.


/ фото Lars Zimmermann CC BY

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

История


Автором термина «гейзенбаг» считается сотрудник исследовательского центра IBM Брюс Линдсей (Bruce Lindsay). Он внес вклад в развитие реляционных баз данных и занимался разработкой корпоративной СУБД IBM System R.

В 1985 году во время учебы в университете Беркли Брюс и Джим Грей (James Nicholas Gray), американский ученый в области теории вычислительных систем, трудились над ОС CAL-TSS. Она писалась специально для двухпроцессорного мейнфрейма Control Data 6400 [PDF, стр.3], на котором военные обрабатывали большие объемы данных.

Само собой, в процессе разработки возникали баги. Но несколько из них были особенными — как только инженеры пытались их исправить, они исчезали. В то время Линдсей как раз изучал физику и принцип Гейзенберга в частности. Внезапно Линдсея осенило — они с Греем стали свидетелями аналогичного явления: ошибки исчезали, потому что наблюдение влияло на свойства объекта. Отсюда и пошло название «гейзенбаг».

Эту истории Линдсей рассказал в интервью с представителями Ассоциации вычислительной техники (ACM) в 2003 году.

Примеры гейзенбагов


Пользователи в сети и на тематических платформах вроде Stack Overflow поделились несколькими примерами гейзенбагов, с которыми они встречались в своих проектах. Один из резидентов SO пытался вычислить площадь фигуры между двумя кривыми с точностью до трех знаков после запятой. Для отладки алгоритма на C++ он добавил строку:
cout << current << endl;

Но как только он её закомментировал, код перестал работать и зациклился. Программа выглядела следующим образом:
#include <iostream>
#include <cmath>

using namespace std;

double up = 19.0 + (61.0/125.0);
double down = -32.0 - (2.0/3.0);
double rectangle = (up - down) * 8.0;

double f(double x) {
return (pow(x, 4.0)/500.0) - (pow(x, 2.0)/200.0) - 0.012;
}

double g(double x) {
return -(pow(x, 3.0)/30.0) + (x/20.0) + (1.0/6.0);
}

double area_upper(double x, double step) {
return (((up - f(x)) + (up - f(x + step))) * step) / 2.0;
}

double area_lower(double x, double step) {
return (((g(x) - down) + (g(x + step) - down)) * step) / 2.0;
}

double area(double x, double step) {
return area_upper(x, step) + area_lower(x, step);
}

int main() {
double current = 0, last = 0, step = 1.0;

do {
last = current;
step /= 10.0;
current = 0;

for(double x = 2.0; x < 10.0; x += step) current += area(x, step);

current = rectangle - current;
current = round(current * 1000.0) / 1000.0;
//cout << current << endl; //<-- COMMENT BACK IN TO "FIX" BUG
 } while(current != last);

cout << current << endl;
return 0;
}


Суть гейзенбага: когда нет printout, программа выполняет сравнение с высокой точностью в регистрах процессора. При этом точность результата превышает возможности double. Для вывода значения компилятор возвращает результат вычислений в основную память — при этом дробная часть отбрасывается. И последующее сравнение в while приводит к верному результату. Когда строчка закомментирована, неявного усечения дробной части не происходит. По этой причине два значения в while всегда оказываются неравными друг другу. В качестве решения проблемы один из участников обсуждения предложил использовать приближенное сравнение чисел с плавающей запятой.

Еще одной историей про гейзенбаг поделились инженеры, работавшие со средой языка Smalltalk-80 на Unix. Они заметили, что система зависала, если оставить её на какое-то время без дела. Но после перемещения курсора мыши, все вновь работало как обычно.

Проблема была связана с планировщиком Unix, который снижал приоритет задач, которые простаивают. В какой-то момент приоритет понижался настолько, что процессы в Smalltalk не успевали завершаться. Стек задач разрастался и «вешал» программу. Когда пользователь двигал курсор, ОС восстанавливала приоритет и все возвращалось на круги своя.

Другие *баги


Есть еще ряд терминов, которые описывают разного рода ошибки: Борбаг, Мандельбаг, Шрёдинбаг.

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


/ фото OLCF at ORNL CC BY

Шрёдинбаг — ошибка, которая существует и не существует одновременно, пока на нее не посмотрит разработчик. Название ошибка получила в честь известного мысленного эксперимента.

Что касается мандельбага, то это ошибка, из-за которой система ведет себя хаотично и непредсказуемо. Феномен назван в честь физика, математика и создателя фрактальной геометрии Бенуа Мандельброта.

Что в итоге


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

Из блога о корпоративном IaaS:

Let's block ads! (Why?)

3 недели с Galaxy S10: плюсы и минусы

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

Начнем с главного


Первое, что все говорят, когда берут мой телефон в руки: «О, а камера совсем не мешает!». Вырез я не вижу почти никогда, только на главном экране или несольких приложениях типа Chrome и Instagram, в остальном черная камера на черном фоне не видна от слова совсем.

Второе замечание, которое люди делают, взяв в руки данный аппарат, что клавиша разблокировки находится слишком высоко. В реальности мне она почти не нужна, кроме как заблокировать телефон. Клавиша находится высоко, и лишний раз я на нее не нажму, как по мне это плюс. Еще кнопка блокировки по двойному нажатию используется для запуска камеры из любого места (в том числе даже если телефон заблокирован), чем я пользуюсь довольно редко, ведь есть кнопочка для ассистента Bixby, которая у меня запускает камеру. В дополнение почему я не пользуюсь кнопкой блокировки так активно, это grip sensor — телефон понимает, когда я его беру в руки, и сам переходит с Always On Display на экран блокировки, считаю это крайне user friendly.

Дальше всё по темам.

Дисплей


Дисплей хорош, многие его крайне нахваливают, и говорят, что он самый лучший на рынке. После S7 для меня, картинка как картинка, претензий к ней у меня нет, но и восторга тоже. По умолчанию дисплей стоит на FHD+, и вам больше и не нужно. Если выкрутить на самое большое разрешение, то вы будете за зря разряжать батарею ради призрачно большей четкости. Единственное оправдание такому разрешению, это делать скриншоты с суперкачеством. Замечу, что на прошлом телефоне я жаловался на то, что у него недостаточная плотность пикселей (576 PPI), и при просмотре VR контента я вижу пиксели. Но теперь про VR на S10 мне придётся забыть, об этом чуть по позже.

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

Обои из маркета


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

Самое важное в этом дисплее, это то, что он длинный. Реально длинный! На нем бы многое поместилось, но приходится делать отступы с боков для просмотра контента, пространство съедается ни на что. Смотреть Instagram на нем не сильно приятно, фотки заворачивает по краям, особенно неприятно на историях.

Куча пустого пространства сверху, что бы далеко не тянутся
image

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

Корпус


Скользкий как лед. Уронить телефон держа его в руке очень легко. Впрочем, это проблема была и на S7, выручают чехлы и виниловые пленки на задник. Чехлы я не люблю: покупаешь красивый тонкий телефон, и прячешь в ужасный огромный чехол — просто плевок дизайнерам в лицо. А вот винилы от Dbrand исправляют ситуацию очень сильно, пользуюсь ими со времен S7, из-за тех же проблем со скользким задним стеклом.

В любом случае к корпусу больше никаких претензий нет, после поклейки пленки, телефон в руке лежит очень хорошо.

Динамики


В телефоне очень громкие динамики. У кого были кнопочные Nokia типа 6230i или Sony Ericsson серии Walkman не разочаруются в громкости. Звук очень хорошо, ничего не выбивает, не шипит и не хрипит. Единственное что: в стереорежиме динамик, который интегрирован с разговорным, несколько громче слышно, чем динамик на нижней грани, потому что он направлен непосредственно на вас, так что ощущение стерео немного хромает.

Сканер отпечатков


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

Батарея


Батарея тут на 3400 mAh, но хватает ее на дольше, чем батареи S7 в лучшие дни. Не могу ничего сказать, как она держится на двух сим-картах, потому что пользуюсь только одной, но мне ее хватает на день вполне. Перед сном обычно есть 27-37% заряда, при моем среднем сценарии пользования: посидеть в интернете с Wi-Fi или 4G, которые я никогда не выключаю; поговорить по телефону по 30 минут в день; почитать книжку; и бесконечный месседжинг и социалки.

Камера


Камера является основном причиной, почему я не купил S10e – на последнем нет телекамеры. На деле оказалось, что широкоугольным объективом я пользуюсь в разы чаще, чем телеобъективом, но тихие летние вечера впереди, потому судить пока рано. В любом случае: широкоугольный объектив — это сказка, если вы хотите сфотографировать толпу людей с короткого расстояния. В остальном: камера лучшая на рынке и это мое личное мнение. Интерфейс камеры продуман и удобен, все лежит на своих местах.

Из недостатков: голосовое управление все так же хромает, как и на S7, хотя на фразу «Снять» мой S7 реагирует лучше. Еще немного непонятна логика Samsung: больше всего мегапикселей вы получаете, на фотографиях 4х3, при этом, у фотографий 16х9 больше угол захвата, хотя длина в пикселях у них одинаковая (4032 px), а вот ширина у 16х9 меньше (2268 против 3024px). Логики я так и не уловил.

Сравнение 4х3 и 16х9
4x3
16x9

Режим Photosphere для панорам у Google Camera работает по лучше, чем встроенный в родное приложение камеры, так что пришлось доставить себе apk из интернета, так как из Google Play поставить на S10 приложение Google Camera нельзя. А еще нужно ждать, нормального порта под процессоры Exynos, так что пока сижу на приложении для версии Android 4.4, работает без нареканий, но нет ночного режима.

Отдельно хочу отметить, как телефон снимает 4K 60 fps видео: очень плавно и без рывков при резких движениях. Режим замедленной съемки тоже хорош: FHD 240 fps. Сверх замедленной съемкой не пользуюсь, потому что негде снимать как вылетают пули при выстреле.

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

Наушники


Родные AKG очень хороши, но я пользуюсь беспроводными JBL, так что на разъем 3.5 мм мне все равно. Хотя, признаю, полезный бонус для тех случаев, когда в машине есть только AUX или в случае не Bluetooth колонок.

Память


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

Производительность


Производительности всех смартфонов-флагманов 2019-го года хватает с головой, никаких нареканий.

А теперь поговорим о боли ПО


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


Порадовал Edge Apps, реально удобно открывать из любого места Shazam. Кто не успел зашазамить, тот поймет. Правда нет ни оной причины, кроме маркетинга, почему эту штуку не поставить на «плоские» телефоны.

А вот дальше все плохо.

По умолчанию вам пытаются впарить Flipboard, 99% моих знакомых с телефонами Samsung не пользовались им ни разу, и при этом не знают, что его вполне себе отлично отключить в настройках главного экрана галочкой сверху.

Родное приложение sms на S7 умело фильтровать сообщения по спам фразам, на S10 только черный список по номерам. При этом номера вида “US Polo” или “Cacharel” туда добавить нельзя. Рай для спамеров с такси и скидками. Пришлось ставить Pulse SMS.

Bixby – сказать что он не нужен, это сказать ничего. Он вреден, если вы не владеете корейским. А в наших краях “Ok Google” и вперед. Под него выделили отдельную кнопку, но я переназначил Bixby на двойное нажатие, что уменьшает вероятность моего общение с этим голосовым ассистентом.

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

Где спрятали режим всплывающих окон и зачем нужен этот режим



На S7 было замечательное неофициальное приложение Samsung ClockFace, сделанное самим Samsung. Его можно и сейчас поставить на S10, но в меню выбора стиля часов часики из ClockFace не отображаются. Это сильно уменьшает количество часов для Always On Display: встроенные лишены эстетической составляющей, а те, которые можно купить в магазине хлам.
Немного ностальгии по AOD из ClockFace,



На S10 нет светодиода уведомлений, выручает Always On Display и сторонние приложения, которые эмулируют поведение этого самого светодиода (Always On Edge — Edge Lighting).

Приложение Cardboard вылетает, а когда не вылетает, не реагирует на магнитную кнопку моих Google Cardboard. Короче VR-ом толком не по пользуешь, что очень жаль, ведь я его люблю. А первое поколение моих GearVR не подходит потому, что у S10 разъем USB Type C.

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

Синхронизация с компьютером: 2019 год, а лучше ActiveSynс для Windows Mobile устройств никто ничего не придумал. Подключаться проводом к компу и пользоваться MTP – боль: надо перетыкивать кабель и ждать, пока подтянутся все файлы и папки с фотографиями. Кидать по Wi-Fi — тоже боль: если у вас много фотографий как у меня, то сортировка по дате, в порядке возрастания вызывает дикое недоумение, а пока долистаешь до конца можно 300 раз умереть со скуки. С облаками принципиально не синхронизируюсь – видео с телефона весят действительно много (1 минута – 500 мб), а покупать облако на терабайты дороговато (хотя у меня есть 1TB на One Drive, но пока им не пользуюсь, скинуть с провода в разы быстрее, чем залить данные на облако, а потом скачать его на компьютер). Тем не менее ActiveSync еще в 2007-ом умел нормально каталогизировать мои фото и видео как по проводу, так и по Bluetooth, раскидывая все по папочкам соответственно дню синхронизации, что было очень удобно, в отличие от сливания всего контента в одну папку как любят делать это облака. Например, на S7 я все это делал вручную и за 3 года создал чуть больше сотни папок соответственно дате «синхронизации». Найти нужную фотографию среди больше, чем 5000 файлов, не представляется сложным, если приблизительно помнишь место или время, в которое ты ее сделал.

На телефоне идут из коробки всякие Facebook, Linkedin и прочий bloatware. Окей признаюсь, частью этих программ я пользуюсь, но то факт, что я не могу это все снести с телефона, меня лично печалит. При всем при этом, приложение Music (от с Samsung) мне нужно ставить отдельно из Google Play. Где логика я не уловил, хотя вру, я знаю конкретные причины этих действий. Но на телефоне больше чем за 1000$ это выглядит как-то по-жлобски. Опять же если вы так заботитесь о пользователях, то все мои старые приложения автоматически подхватились после активации устройства.

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

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

Антивирус тоже идет из коробки, и после отдельной активации очень сложно выключается, но вполне реально сделать. Зачем выключать? Потому что жрет процессор и батарею, а если ты не ставишь левых программ из непонятных мест, то тебе он не нужен. Лучше, чем Google Play он все равно не проверит.

Еще отдельная боль с контролами сверху у разных приложений, к которым нужно тянуться большим пальцем, что крайне неудобно. Instagram, Twitter, Facebook, Opera и им подобные – надеюсь одумаются, они позволят их размещать снизу для длинных дисплеев.

Вместо заключения


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

Let's block ads! (Why?)

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

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

Даже школьник, написав свою первую программу

<?php 
echo "Hello, Хабр! На пхп"
?>


или
fprintf( 'Привет Хабр на Матлабе!\n');


понимает технологический процесс.
  1. Думает над задачей — этап появления идеи
  2. Думает над задачей и каким способом её нужно реализовать — Анализ и проработка требований,
    построение программной модели и плана на реализацию. Короче, архитектурный этап.
  3. Программирование.
  4. Тестирование. «А что там получилось»
  5. Эксплуатация.

Между 1-5 этапами нитиобразно мы имеем непрерывно взаимодействующие процессы.

Для этого существуют всякие Водопады, Скрамы итд.

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

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

  1. Сайт
  2. Мобильное приложение на Андроиде
  3. Мобильное приложение на iOS

При едином разработанном API для обмена данными через REST.

Хорошим примером, на который я буду опираться являются социальные медиа (см. мою предыдущую статью про собственный плеер на основе видосов из YouTube)

У большого проекта есть три варианта получения прибыли или любого критерия, которые
условно Веб, яблоко и андроид.

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

И вот здесь появляется изюминка статьи.

Дело в том, что на верхнем уровне принятия решений среди начальства
формируется новая фича, которая идет в бэк. Но так как «начальник» — человек несовершенный,
то ему приходится вниз спускать полномочия на нижние уровни.

Поэтому, в нашем случае, как правило, над каждым фронтом тоже появляются свои «низкоуровневые» начальники по иерархическим, или формальным признакам. Что-то
типа тимлидов для простоты.

И задача разработки большого проекта в виде некоего «жизненного цикла» разработки
и эксплуатации ПО делится на свои жизненные циклы.

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

Иначе теряется смысл новой фичи как таковой по приоритету, потому что мы все сейчас и в вебе и в мобильных приложениях со смартфонов.

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

Здесь я озвучу тезисы:

  1. При реализации некоторой фичи в одном из фронтов нам необходимо учитывать циклы других фронтов, либо программировать стандартные заглушки, чтобы потом «догнать» по фичам другие фронты и выровняться.
  2. Можно построить схему цикла разработки ПО в целом так, что все будут условно успевать, тогда фича будет внедрена вовремя, но, как минимум, теряется независимость фронтэндных команд между собой — тогда скарм и аджайл для всей системы теряют свою актуальность, либо увеличивают время итерации на разработку. Короче будет происходить больше болтовни и код пишется медленнее.
  3. Изолированные фронты в принципе работают быстрее, но тогда нужно более человекозатратное интеграционное тестирование.
  4. Реализуемые сейчас схемы — каждый фронт разрабатывается отдельно и независимо друг от друга с минимумом взаимодействий, но тут теряется некоторые основы IT — мы так или иначе поолучаем ненулевую группу пользователей, которая будет иногда видеть баги.

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

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

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

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

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

Let's block ads! (Why?)

Самый большой в мире самолёт Stratolaunch впервые взлетел 13 апреля 2019 года

226,8-тонный самолёт с размахом крыльев в 117 метров впервые полетел. Самолёт по размаху крыла побил рекорд Hercules H-4 и Ан-225 «Мрия».

Самолёт-носитель предназначен для ускорения первых ступеней ракет — планировалось, что с него ракеты будут отправляться на орбиту. Stratolaunch разрабатывает основанная Полом Алленом компания Stratolaunch Systems.


Гигантский двухфюзеляжный самолёт Stratolaunch впервые был представлен в 2017 году — тогда его выкатили из ангара, чтобы испытать топливозаправочную систему. В декабре того же года начались рулёжные испытания. Теперь же он показал, что может ещё и летать.

Размах крыла Stratolaunch превышает все построенные и взлетевшие до этого момента самолёты. Для сравнения, Ан-225 «Мрия», впервые взлетевший в 1988 году, имеет размах крыла в 88,4 метра. При этом у сравнимая грузоподъёмность — предполагается 250 тонн у Stratolaunch, а «Мрия» способна нести 253,8 тонны. «Летающая лодка» Говарда Хьюза, пролетевшая 2 километра на высоте 21 метр в ноябре 1947 года, имела размах крыла в 98 метров.

Stratolaunch — площадка воздушного старта для отправки ракет на орбиту. Но, к сожалению, пока неясна судьба этого самолёта. Пол Аллен, основатель и идеолог компании, умер в октябре 2018 года. Сообщают, что компания уволила больше 50 человек. Разработку собственных ракет остановили, а ракеты-носители Pegasus сейчас не очень востребованы на рынке.

image

Let's block ads! (Why?)

Дайджест: 10 материалов об экранах и проекторах для домашнего кинотеатра

В «Мире Hi-Fi» мы рассказываем и про видеотехнику. Представляем вашему вниманию материалы, которые помогут отрегулировать цветопередачу проектора, выбрать подходящий экран для 4K-фильмов и избавиться от «чёрных полос» по краям изображения.


Фото: большой кинозал в шоуруме «Аудиомании»

  • 4K-разрешение в проекторах: мифы и детальность. Гид по 4К-проекторам, построенный по принципу «от общего — к конкретному». В начале материала рассказано об основных особенностях технологии: углах обзора, диагонали картинки и цветопередаче. Далее вы узнаете, как характеристики устройств — качество линз, разрешение оптического тракта и межпиксельное расстояние — влияют на изображение. Завершают статью рекомендации относительно покупки тех или иных моделей и обзор наиболее популярных из них.

  • Выбираем проекционный экран для 4K-видео. 4К-проекторы «привередливы» к проекционным экранам. Рассказываем о том, как подойти к их выбору и избежать искажений. Вместе с этим показываем фотографии полотен офисного и Full HD уровня.

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

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

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

  • Калибровка проектора в домашних условиях: компенсация отклонений. Продолжение предыдущей статьи, в которой автор описывает процесс настройки цветопередачи в ColorHCFR. Главная рекомендация — помнить, что изменения в одном цветовом канале приводят к сдвигу в остальных. Поэтому разные этапы настройки придётся повторить не один раз. Для того чтобы облегчить процесс, приведены контрольные параметры, на которые стоит ориентироваться при настройке, а также шаблоны для регулировки яркости.


Фото: большой кинозал в офисе «Аудиомании»
  • Советы THX: как получить от домашнего кинотеатра всё. Технический директор THX Скотт Фрэнсис (Scott Francis) рассказывает, как расставить мебель и оборудование в домашнем кинотеатре. По его словам, люди часто не учитывают высоту мебели при инсталляции экрана, из-за чего зрители вынуждены задирать голову и напрягать мышцы шеи. Также в статье вы найдете советы по настройке оборудования в домашнем кинотеатре для просмотра разных типов видео — художественных фильмов и спортивных трансляций.

  • Что такое THX для проектора. Компания THX занимается сертификацией аудио и видеооборудования. В 2008 году они разработали стандарт для проекторов, гарантирующий «правдивость» изображения. JVC в течение двух лет дорабатывали проектор DLA-750, чтобы успешно пройти эту сертификацию. Расскажем, как они это сделали. Для каждой из трёх стадий тестирования приведены контрольные параметры и тестовые изображения.

  • Репортаж с фабрики по производству проекционных экранов Kauber. Kauber — небольшая польская компания, которая производит экраны из готового полотна. Бренд производит широкий диапазон моделей, каждую из которых заказчики могут «подогнать» под свои потребности. Например, в портфолио Kauber есть изогнутые экраны сложной формы и широкоформатные модели с соотношением сторон 2,35:1. Материал рассказывает о «бесконвейерной» фабрики Kauber и планах бренда на будущее.



В нашем Telegram-канале:

Разработан метод шумоизоляции, гасящий до 94% шумов — рассказываем, как он работает


Исследование: музыка вредит творческому мышлению — обсуждаем альтернативные мнения
Warner Music подписала контракт с лейблом на музыку компьютерного алгоритма

Let's block ads! (Why?)

Очереди и JMeter: обмен с Publisher и Subscriber

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

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


Введение


Хотя с этой болью приходилось мириться на первых порах. Всё началось с RFHUtil. Мощный, но неудобный и страшный: Ну вы знаете Руса.

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

С JMeter всё стало проще. После первого этапа с освоением и привыканием забрезжила надежда на счастливое тестирование.

Активно использую сэмплеры JMS Publisher и JMS Subscriber. В отличии от JMS Point-to-Point, эта парочка показалась удобнее в работе. Например, у Subscriber в JMS Selector можно указать переменную, у Point-to-Point — нет (либо этот способ не слишком очевиден).

Подготовка сэмплеров


JMS Publisher


  • Setup — Each Sample. Apache рекомендует использовать эту опцию, если очереди/топики заданы через переменные.
  • Expiration (ms) = 120000. В случае сбоя тестовые запросы исчезнут из очереди через 2 минуты.
  • Use non-persistent delivery mode? — true. IBM утверждает, что persistent mode обеспечивает надежное сохранение передаваемых сообщений в случае внезапного сбоя. И более быстрый обмен в non-persistent mode. Для тестовых целей важнее скорость.

В каждом Publisher задаю jms-свойство, которое Subscriber будет использовать в JMS Selector. Для каждой отправки генерируется случайное значение в элементе тест-плана User Parameters:

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

Итоговая «болванка» предварительно настроенного JMS Publisher:

JMS Subscriber


  • Setup — Each Sample. Ну вы поняли.
  • Timeout (ms) = 100000. Если запрос не приходит в очередь после 100 секунд ожидания, значит что-то пошло не так.
  • Stop between sample? — true.

JMS Selector — довольно удобная штука. Итоговый JMS Subscriber:

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

  1. Добавить в «запускатор» JMeter аргумент JVM:
    -Dfile.encoding=UTF-8
    
  2. Добавить JSR223 PostProcessor в Subscriber со строчкой на groovy:
    prev.setDataEncoding("UTF-8")
    

Передача текста


Самый ленивый вариант. Подходит для отладки свеженаписанных тестов. Либо для случаев, когда нужно отправить хоть что-то небольшое. Выбрать опцию Message source — Textarea и разместить тело сообщения в текстовом блоке:

Передача файла


Самый частый вариант. Подходит для большинства сценариев. Выбрать опцию Message source — From file и указать путь к сообщению в поле File — Filename:

Передача файла в поле текста


Самый универсальный вариант. Подходит для большинства сценариев + может использоваться в JMS Point-to-Point, в котором нет второго варианта отправки:

Передача байтового массива


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

Поэтому пришлось скачать исходники и модифицировать код JMS Subscriber.

Заменил в методе extractContent(..) строку:

buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");

на:
byte[] bytes = new byte[(int) bytesMessage.getBodyLength()];
bytesMessage.readBytes(bytes);
try {
        buffer.append(new String(bytes, "UTF-8"));
} catch (UnsupportedEncodingException e) {
        throw new RuntimeException(e);
}

и пересобрал JMeter.

Осталось добавить пару JSR223 Sampler. Первый — перед парой Publisher/Subscriber для создания DAT-файла, содержащего случайные байты:

import org.apache.commons.lang3.RandomUtils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

vars.put("PATH_TO_BYTES", "C:\\temp\\randomBytes.dat");
File RESULT_FILE = new File(vars.get("PATH_TO_BYTES"));
byte[] arr = RandomUtils.nextBytes((int)(Math.random()*10000));
        try {
            FileOutputStream fos = new FileOutputStream(RESULT_FILE);
            fos.write(arr);
            fos.close();
        } catch (IOException e) {
            System.out.println("file not found");
        }

Второй — в конце сценария, удаляет файл:
import java.io.File;

File RESULT_FILE = new File(vars.get("PATH_TO_BYTES"));
RESULT_FILE.delete();

И не забыть добавить путь к файлу у Publisher:

А также проверку в JSR223 Assertion для Subscriber — сравнить исходные байты с теми, что приходят в очередь получателя:

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;

Path path = Paths.get(vars.get("PATH_TO_BYTES"), new String[0]);
byte[] originalArray = Files.readAllBytes(path);
byte[] changedArray = ctx.getPreviousResult().getResponseData();
System.out.println(changedArray.length);

if (Arrays.equals(originalArray, changedArray))
        {
        SampleResult.setResponseMessage("OK");

        } else {
           SampleResult.setSuccessful(false);
           SampleResult.setResponseMessage("Comparison failed");
           SampleResult.setResponseData("Bytes have changed","UTF-8");
           IsSuccess=false;
        }

Заключение


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

Берегите своё время. И спасибо за внимание.

image

Let's block ads! (Why?)

[Из песочницы] Why it is imperative to Invest and Develop a branded Taxi app for your venture?

Uber подал документы для проведения IPO

Изображение: Unsplash

Компания Uber опубликовала документы для проведения IPO на Нью-Йоркской бирже. Акции будут торговаться под тикером UBER, сообщает CNBC.

Публикация документов для выхода на биржу произошла две недели спустя выхода на IPO главного конкурента Uber – такси-сервиса Lyft. В заявке Uber не указана стоимость акций на торгах, поэтому вычислить оценку компании невозможно. Однако ранее в прессе фигурировали оценки в размере до $120 млрд.

Немного цифр


По итогам 2018 года Uber отчитался о выручке в размере $11,27 млрд. Это на 48% больше показателей предыдущего года. Деньги компании приносит не только сам сервис по вызову такси – на его долю пришлось $9,2 млрд выручки. Остальное принесли приложение для заказа еды Uber Eats и другие проекты.

Компания также отчиталась о технической прибыли в размере $997 млн – ее источником стала продажа активов в Южной Азии и России. При этом операционный убыток, хоть и сократился за год на $1 млрд, все равно составил $3,03 млрд.

По последнbм данным, сервисами Uber пользуются 91 млн человек по всему миру.

Интересные факты


В случае успешного IPO Uber в плюсе окажется не только сама компания. Так уволенный почти два года назад со-основатель компании Трэвис Каланик, по прежнему владеет долей в 8,6% акций. При проведении IPO с оценкой близкой к $100 млрд, их стоимость может составить около $9 млрд. В таком случае Каланик войдет в число 200 богатейших людей мира.

Кроме того, при успешном развитии событий «сыграет» и ставка Google – шесть лет назад поисковый гигант инвестировал в Uber $258 млн. Теперь вложения могут принести более $5 млрд, что даст 20-кратный рост.

Кроме того, материнский холдинг Google под названием Al[habet инвестировал $500 млн в Lyft. В этой компании ему принадлежит для в 5,3% стоимостью около $783 млн.

Другие материалы по теме финансов и фондового рынка от ITI Capital:


Let's block ads! (Why?)

[Перевод] Хакеры могут удалённо управлять Tesla Model S используя систему автопилота

Исследователям безопасности удалось получить удалённый контроль над системой автопилота автомобиля Tesla Model S и управлять им при помощи игрового джойстика. Таким образом, они обратили внимание на потенциальные проблемы безопасности современных систем содействия водителю (англ. Advanced Driver Assistance Systems, ADAS), задача которых как раз и заключается в повышении безопасности того, кто за рулём.

Исследователи из Tencent Keen Security Lab успешно активировали систему автопилота Tesla Autopilot автомобиля Tesla, получив над ней контроль, о чём было сообщено в новой публикации, которая подробно описывает детали исследования.
Группа, ранее уже демонстрировавшая свои изыскания на конференции по безопасности Black Hat USA 2018, опубликовала видео, демонстрирующее взлом. Новый доклад описывает три способа заполучить контроль над системой автопилота автомобиля путём использования нескольких уязвимостей в электронном блоке управления (англ. — electronic control unit, ECU).

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

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

Риски прогресса


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


Исследователям из Tencent Keen Security Lab удалось скомпрометировать систему автопилота совершенной системы содействия водителю автомобиля Tesla Model S. (Источник: Tesla)

Независимо от этого, исследование демонстрирует неотступную опасность, которая заключается в потенциальном использовании хакерами открытости и интеллектуальности современных автомобилей как почвы для совершения атак; впервые эта возможность была ярко продемонстрирована в 2015 hack of a Jeep Cherokee, опубликованном в Wired.

«Среднестатистический современный автомобиль содержит сотни сенсоров и множество бортовых компьютеров, каждый из которых потенциально уязвим к физической, программной и/или логической атаке» — заявил Джерри Гамблин (Jerry Gamblin), ведущий инженер компании по разведке угроз безопасности Kenna Security, в интервью Security Ledger. «Этот факт создаёт удивительную почву для осуществления атак, предотвращать которые должны производители автомобилей, а также создаёт обширное целевое поле для потенциальных злоумышленников».

С момента взлома Jeep автомобили стали ещё более сложными. Так, в автомобильной индустрии стремительно развиваются технологии ADAS наподобие Tesla Autopilot

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

Привилегии равны контролю


Исследователи из Keen Security Labs заявили, что они использовали ROOT-привилегии при осуществлении самой устрашающей части своего взлома — перехвата контроля над системой управления Tesla «бесконтактным способом», как они сами пишут. Исследователи использовали привилегии для отправки команд управления автопилоту во время движения автомобиля.

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

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

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

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

Ответ Tesla


В своём блоге Tencent Keen опубликовали ответ Tesla на взлом, который, к удивлению, носил ярко выраженный оборонительный характер. Компания отвергла компрометацию стеклоочистителей и системы распознавания дороги в связи с тем, что они «не случатся в реальной жизни» и, таким образом, не должны быть поводом для беспокойства водителей.

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

Говоря об использовании ROOT-привилегий при перехвате управления автомобилем, Tesla напомнила исследователям, что компания исправила основную уязвимость, описанную в докладе, при обновлении системы безопасности в 2017 и последовавшем обширном обновлении системы в прошлом году (уязвимость была исправлена в версии ПО 2018.24 — прим. перев.). Более того, в соответствии с ответом Tesla, оба этих обновления были доступны ещё до того, как Tencent Keen Security Lab рассказала компании о своих исследованиях, заявили в Tesla.

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

Оставляя в стороне протесты компании, эксперты безопасности всё ещё не уверены в том, что системы ADAS, наподобие Tesla Autopilot, не устроят хаос и не причинят разрушений в случае, если попадут под контроль злоумышленников. «Производителям стоит принять это во внимание при разработке новых систем» — заявил Джерри Гамблин.

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

Let's block ads! (Why?)

[Из песочницы] Разработка и сборка фото-светильника

В ходе подготовки к очередному семейному празднику — годовищны родителей решил воплотить в жизнь одну замечательную идею — создание уникального фотосветильника с помощью 3D технологий.

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

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

Как видно на изображении, нам нужно спроектировать основу нашей конструкции для её дальнейшей печати на 3D принтере.

1. Это основание, в котором будет закреплен разъем питания и клавиша включения и выключения. В моем проекте я немного усложнил конструкцию, добавив клавишу на 2 рабочих положения, в которых I — режим полного света, 0 — выключено, II — режим половинчатого света (можно сделать любой другой — мигающий, светомузыкальный, либо вообще вставить только 1 светодиод).

2. Это тело модели, через которую будет проходить свет. Обязательным требованием для неё в дальнейшем — это изготовление её из матового материала, например ABS пластик (PLA, PETG или SBS не подходят для этой задачи — проверено).

Готовить её будем из 4 изображений — фотографий, которые мы подгоним под один формат по размерам и выполним небольшую обработку в программном пакете для работы с растровыми изображениями, к примеру, всеми любимом Adobe Photoshop.

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

Об этом очень подробно рассказываю в следующем видео:


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

После того, как вы изготовили модель, её необходимо отправить на печать — это самый длительный процесс всей нашей затеи и длится он порядка 1,5-2 суток, в зависимости от точности печати и модели вашего принтера.

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

Нам понадобится:

  1. Светодиодная лента. Длина, мощность и кол-во на ваше усмотрение. Но важно помнить, что мощность и длина ленты подбирается соизмеримо с блоком питания. В моем случае общая длина ленты мощность 9,6 Вт/метр не превышает 1 метра для блока питания 12В 1А — 12Вт.
  2. Блок питания.
  3. Клавиша включения\выключения
  4. Разъем питания под разъём вашего БП
  5. Провода и комплект для пайки + само паяльное оборудование
  6. В проекте ещё был использован 1 диод
  7. Немного терпения и энтузиазма

Подробно сборку конструкции я изложил в видео. Это наглядно и подробно.
<iframe width="560" height="315" src="https://www.youtube.com/embed/6PfXwSGHu6Y" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

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

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

Let's block ads! (Why?)

[Из песочницы] Тестирование микрокомпьютеров для IoT

Для начала рассмотрим термин «интернет вещей». В википедии увидим следующее определение:
Интернет вещей (англ. Internet of Things, IoT) — концепция вычислительной сети физических предметов («вещей»), оснащённых встроенными технологиями для взаимодействия друг с другом или с внешней средой, рассматривающая организацию таких сетей как явление, способное перестроить экономические и общественные процессы, исключающее из части действий и операций необходимость участия человека.

Гейты


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

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

Микрокомпьютеры


ASUS Tinker Board


Микрокомпьютер от известной всеми компании ASUS, плата с открытыми спецификациями и с размерами Raspberry Pi (о которой мы поговорим дальше). Поддерживает воспроизведение 4K/30fps.

CPU: Rockchip RK3288 (4x Cortex-A17 @ 1.8GHz)
GPU: Mali-T760
Оперативная память: 2 GB LPDDR3 RAM
Интерфейсы: GbE, WiFi, Bluetooth 4.0, 4xUSB 2.0 плюс microSD, micro-USB, HDMI, MIPI-CSI, MIPI-DSI, 40-pin разъем

Raspberry Pi 3 Model B+


Самый популярный микрокомпьютер, о компании которой не слышал только ленивый. Является наследником Raspberry Pi 3 Model B.

CPU: Broadcom BCM2837B0 (4xCortex-A53, 64-bit @ 1.4GHz)
GPU: Broadcom Videocore-IV
Оперативная память: 1 GB LPDDR2 SDRAM
Интерфейсы: WiFi, Bluetooth 4.2, GbE, 4xUSB 2.0, microSD, micro-USB, HDMI, MIPI-CSI, MIPI-DSI, 40-pin разъем

Orange Pi PC 2



Микрокомпьютер от компании Shenzhen Xunlong, имеет такой же размер, как и Raspberry Pi.
CPU: Allwinner H5 (4xCortex-A53, @ 1 GHz)
GPU: Mali-450 MP2
Оперативная память: 1 GB DDR3 RAM
Интерфейсы: 3xUSB 2.0, micro-USB OTG, HDMI, GbE, microSD, CVBS, аудио, MIPI-CSI, 40-pin разъем

Khadas Vim1



Плата от стартапа Khadas.
CPU: Amlogic S905X (4x Cortex-53 @ 1.5 GHz)
GPU: Mali-450 MP2
Оперативная память: 2GB DDR3 RAM
Память: eMMC на 8 GB
Интерфейсы: Wi-Fi, Bluetooth 4.2, Fast Ethernet, 2xUSB 2.0, Type C, HDMI 2.0a, IR, micro SD, 40-pin разъем (не совместим с Raspberry Pi), ИК-приёмник

PINE64 Rock64


Микрокомпьютер от компании PINE64, имеет такой же форм-фактор как у Raspberry Pi.

CPU: Rockchip RK3328 (4x Cortex A53 @1.3 GHz)
GPU: Mali – 450M2
Оперативная память: 1/2/4 GB LPDDR3 RAM
Интерфейсы: HDMI 2.0a с HDR10, GbE, 2 x USB 2.0, 1 x USB 3.0, 40-pin разъем.

Перейдем к тестам


Тесты на скорость работы CPU


Это встроенный бенчмарк утилиты 7zip, она выдает средние значения в MIPS, соответственно, чем больше, тем лучше.

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

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

Тест занимается перекодированием wav файла в mp3.

Скорость работы оперативной памяти


Бенчмарк заключается в том, что выполняются две операции, это копирование в memcpy и заполнение памяти заданными значениями в memset.

Тест на чтение блоками в один килобайт.

Скорость с базами данных


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

Заключение


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

Let's block ads! (Why?)

Квантовые коммуникации в Университете ИТМО — проект невзламываемых систем передачи данных

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


Rama / Wikimedia / CC BY-SA

Почему квантовыми сетями занимаются


Данные считаются защищёнными, если время их расшифровки значительно превышает «срок годности». Сегодня выполнить это условие становится сложнее — всему виной развитие суперкомпьютеров. Еще несколько лет назад кластер из 80 компьютеров на базе Pentium 4 «осилил» (стр.6 в статье) 1024-битное шифрование RSA всего за 104 часа.

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

Здесь на помощь придут линии связи нового типа — квантовых сети, передающие данные (криптографические ключи) с помощью одиночных фотонов. При попытке перехватить сигнал эти фотоны разрушаются, что служит знаком о вторжении в канал. Такую систему передачи данных создает малое инновационное предприятие Университета ИТМО — «Квантовые Коммуникации». У руля стоят Артур Глейм, руководитель лаборатории квантовой информатики, и Сергей Козлов, директор Международного института фотоники и оптоинформатики.

Как работает технология


В основе лежит метод квантовой коммуникации на боковых частотах. Его особенность в том, что одиночные фотоны не излучаются источником непосредственно. Они выносятся на боковые частоты в результате фазовой модуляции классических импульсов. Интервал между несущей частотой и подчастотами составляет примерно 10–20 пм. Такой подход позволяет транслировать квантовый сигнал на 200 метров при скорости в 400 Мбит/с.

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

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

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


PxHere / PD

Что еще предстоит сделать


Несмотря на теоретическую «невзламываемость» квантовых сетей, пока что они не являются абсолютной криптографической защитой. Сильное влияние на безопасность оказывает оборудование. Несколько лет назад группа инженеров из Университета Ватерлоо обнаружила уязвимость, позволяющую перехватить данные в квантовой сети. Она была связана с возможностью «ослепления» фотодетектора. Если направить на детектор яркий свет, он насыщается и перестает регистрировать фотоны. Затем, меняя интенсивность света, можно управлять датчиком и обманывать систему.

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

«Наша команда тоже работает в этом направлении. Мы сотрудничаем с канадскими специалистами и другими зарубежными и российскими группами. Если получится закрыть уязвимости на уровне железа, то квантовые сети получат широкое распространение и станут полигоном для отработки новых технологий», — говорит Артур Глейм.

Перспективы


Все больше отечественных компаний проявляет интерес к квантовым решениями. Только ООО «Квантовые Коммуникации» поставляет клиентам пять систем передачи данных ежегодно. Один комплект оборудования, в зависимости от дальности действия (от 10 до 200 км), стоит 10–12 миллионов рублей. Цена сопоставима с зарубежными аналогами, обладающими более скромными рабочими параметрами.

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

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

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



В нашем блоге на Хабре:

Let's block ads! (Why?)