Глупая уязвимость в приложении «Мой билайн»

Эта короткая история состоит из двух частей:

  1. Обнаружение уязвимости, появившейся, скорее всего, из-за невнимательности разработчиков;
  2. Сообщение о находке в Билайн.

Но этого поста не появилось бы, если бы все было так просто.

Часть 1. Что произошло?

Вчера, отлаживая свое приложение в Android Studio, я открыл Logcat, и увидел что там промелькнул "Мой билайн". Ну и что? У меня действительно установлено это приложение. Многие приложения что-то пишут в лог.

Но. Это оказался лог HTTP запроса и ответа. Опять же, это не так страшно. Ссылка запроса к API, сообщение об успешном ответе.

Но. В логе помимо ссылки оказались также хедеры и тело запроса, в т.ч. json содержимое (заботливо отформатированное) и token сессии.

Дальше можно просто сделать себе попкорн, отфильтроваться по ключевому слову "beeline" и наблюдать за сетевой жизнью приложения.

Часть 2. Бьём тревогу.

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

Далее последовал следующий диалог:

Диалог с ботом

Бот: Благодарим за обращение в наш чат. Задайте вопрос и наши специалисты помогут найти решение.

Я: Добрый день, случайно обнаружил в вашем android-приложении уязвимость, куда я могу о ней сообщить?

Бот: iMessage и FaceTime — технологии, разработанные компанией Apple, предоставляемые за отдельную плату. Для использования необходимо интернет-соединение. iMessage – позволяет отправить текстовое сообщение другому пользователю iMessage. Отключение сервиса возможно в настройках Вашего устройства: "Настройки"- "Сообщения" — "iMessage" — отключить. FaceTime — программа, с помощью которой Вы можете совершать видео- и аудиозвонки между устройствами Apple. Отключить эту опцию также можно в настройках Вашего аппарата: "Настройки"- "FaceTime" — отключить. Если у Вас по-прежнему остались вопросы о возможностях в рамках данного сервиса, то Вы можете обратиться в тех. поддержку Apple IPhone: 8-800-555-67-34 (звонок бесплатный).

Я: Что?

Бот: Уточните, пожалуйста, что именно Вас интересует.

Я: Случайно обнаружил в вашем android-приложении уязвимость, куда я могу о ней сообщить?

Бот: iMessage и FaceTime — технологии, разработанные компанией Apple, предоставляемые за отдельную плату. Для использования необходимо интернет-соединение. iMessage – позволяет отправить текстовое сообщение другому пользователю iMessage. Отключение сервиса возможно в настройках Вашего устройства: "Настройки"- "Сообщения" — "iMessage" — отключить. FaceTime — программа, с помощью которой Вы можете совершать видео- и аудиозвонки между устройствами Apple. Отключить эту опцию также можно в настройках Вашего аппарата: "Настройки"- "FaceTime" — отключить. Если у Вас по-прежнему остались вопросы о возможностях в рамках данного сервиса, то Вы можете обратиться в тех. поддержку Apple IPhone: 8-800-555-67-34 (звонок бесплатный).

Я: что происходит?

Бот: Переформулируйте, пожалуйста, Ваш вопрос.

Я: Случайно обнаружил в вашем android-приложении уязвимость, куда я могу о ней сообщить?

Бот: iMessage и FaceTime — технологии, разработанные компанией Apple, предоставляемые за отдельную плату. Для использования необходимо интернет-соединение. iMessage – позволяет отправить текстовое сообщение другому пользователю iMessage. Отключение сервиса возможно в настройках Вашего устройства: "Настройки"- "Сообщения" — "iMessage" — отключить. FaceTime — программа, с помощью которой Вы можете совершать видео- и аудиозвонки между устройствами Apple. Отключить эту опцию также можно в настройках Вашего аппарата: "Настройки"- "FaceTime" — отключить. Если у Вас по-прежнему остались вопросы о возможностях в рамках данного сервиса, то Вы можете обратиться в тех. поддержку Apple IPhone: 8-800-555-67-34 (звонок бесплатный).

Совершенно не представляю из-за какого ключевого слова бота так передергивало. Мне быстро наскучил этот разговор с автоответчиком. Попробовал другую комбинацию и, о чудо, на меня снова вывалили справочную информацию, но в конце все-таки предложили поговорить с реальным человеком. Ура, появился некий Олег, изучил мой диалог с роботом (вероятно вздохнул с облегчением, что роботы его пока не заменят) и посоветовал мне описать мою находку со скриншотами на почту otvet@beeline.ru (ее упоминания на сайте я не нашел, может плохо искал). Затем Олег поблагодарил меня за помощь и ушел выручать других роботов.

Я, обрадованный прогрессу, написал на указанную почту следующее:

Мое письмо

Добрый день

Случайно обнаружил, что android-приложение «Мой билайн» сливает в лог все запросы к API вместе с токенами и json содержимым. По-моему, это уязвимость.

С уважением,
Козлов Михаил

Довольный собой, сделал себе кофе и продолжил работать. Сегодня пришел ответ.

Ответ

Здравствуйте, Михаил!

Не совсем понятно, что именно у Вас не работает. Более подробно опишите Вашу проблему.

Спасибо, что пользуетесь услугами «Билайн».

С наилучшими пожеланиями,
Некрасов Вячеслав,

Служба поддержки Клиентов «Билайн».

После facepalm-ритуала, удержавшить от написания сообщения о том, что не работает не у меня, а у них: чат-бот, служба поддержки и разработчики приложения, я более подробно описал проблему.

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

Вот он

Уважаемый клиент! Мы стремимся идти в ногу со временем и оказывать сервис в актуальных каналах коммуникации. Нам важно, чтобы Вы получали обратную связь от нас как можно скорее. Поддержка через e-mail недоступна. Для того, чтобы получить моментальный ответ на любой вопрос, приглашаем в чат со специалистом на сайте: https://beeline.ru/customers/pomosh/ или в Мобильном приложении: https://beeline.ru/dl! Обращаем внимание, что это письмо сформировано автоматически и ответ на него не требуется. Ждем Вас в чате на сайте или в мобильном приложении. Ваш Билайн!


ссылка на оригинал статьи https://habr.com/post/428251/

Технологии WDM: объединяем дата-центры в катастрофоустойчивые кластеры

Несмотря на надежность современных центров обработки данных, для критически важных объектов необходим еще один уровень резервирования, ведь вся IT-инфраструктура может выйти из строя из-за техногенной или природной катастрофы. Для обеспечения катастрофоустойчивости приходится строить резервные ЦОДы. Под катом наш рассказ о возникающих при их объединении (DCI — Data Center Interconnection) проблемах.


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

Отделяем понятия высокодоступности от аварийного восстановления

Объединяться могут корпоративные дата-центры или установленное на арендуемых площадях оборудование. Отказоустойчивость геораспределенных решений достигается за счет программной архитектуры, и на собственных объектах владельцы могут сэкономить: им необязательно строить ЦОД, например, уровня Tier III или даже Tier II. Можно отказаться от дизель-генераторов, использовать бескорпусные серверы, играть с экстремальными температурными режимами и проделывать другие интересные фокусы. На арендуемых площадях степеней свободы меньше, здесь правила игры определяет провайдер, но принципы объединения те же самые. Прежде чем говорить о катастрофоустойчивых IT-сервисах, стоит вспомнить три волшебных аббревиатуры: RTO, RPO и RCO. Эти ключевые показатели эффективности определяют возможность IT-инфраструктуры противостоять сбоям.

RTO (Recovery time objective) — допустимое время восстановления IT-системы после инцидента;
RPO (Recovery point objective) — допустимая при аварийном восстановлении потеря данных. Обычно измеряется как максимальный период, в течение которого данные могут быть потеряны;
RCO (Recovery capacity objective) — часть IT-нагрузки, которую способна взять на себя резервная система. Последний показатель может измеряться в процентах, транзакциях и прочих «попугаях».

Здесь важно отличать решения высокой доступности (HA — High Availability) от решений для аварийного восстановления (DR — Disaster Recovery). Наглядно разницу между ними можно представить в виде диаграммы с RPO и RTO в качестве координатных осей:

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

Технические нюансы

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

В противном случае не будут работать, например, протоколы семейства Fibre Channel, обойтись без которых в современных системах хранения данных практически невозможно. Там чем выше скорость, тем меньше должна быть задержка. Есть, конечно, протоколы, позволяющие работать с сетями хранения данных через Ethernet, но тут уже многое зависит от используемых в дата-центре приложений и установленного оборудования.  Ниже в качестве примера представлены требования к задержкам для широко распространённых приложений Oracle и VMware:

Требования к задержкам Oracle Extended Distance Cluster:


From Oracle official data: How to Tell if the IO of the Database is Slow [ID 1275596.1]

Требования к задержкам VMware:


VMware vSphere Metro Storage Cluster Case Study VMware vSphere 5.0)
 

При передаче данных задержку сигнала можно представить в виде двух составляющих: Тобщая= Тоборуд. + Тов, где Тоборуд. – задержка, вызванная прохождением сигнала через оборудование, а Тов — задержка, вызванная прохождением сигнала через оптическое волокно. Задержка, вызванная прохождением сигнала через оборудование (Тоборуд ), зависит от архитектуры оборудования и способа инкапсуляции данных при оптико-электрическом преобразовании сигнала. В оборудовании DWDM этот функционал возложен на модули транспондера или мукспондера. Поэтому при организации связи между двумя дата-центрами особенно тщательно подходят к выбору типа транспондера(мукспондера), чтобы величина задержки на транспондере (мукспондере) была наименьшей.

При синхронном режиме важную роль играет скорость распространения сигнала в оптическом волокне (Тов). Известно, что скорость распространения света в стандартном (например, G.652) оптическом волокне зависит от коэффициента преломления его сердцевины и примерно равна 70% скорости света в вакууме (~300 000 км/с). Глубоко лезть в физические основы не станем, но легко посчитать что задержка  в этом случае составляет где-то 5 микросекунд на километр. Поэтому два датацентра могут работать синхронно на расстоянии лишь около 100 километров.

При асинхронном режиме требования к задержкам не такие жесткие, но если сильно увеличить расстояние между объектами, начинает сказываться затухание оптического сигнала в волокне. Сигнал приходится усиливать и регенерировать, т.е приходится создавать собственные системы передачи или арендовать магистральные каналы связи.  Объемы проходящего между двумя дата-центрами трафика достаточно велики и имеют свойство постоянно расти. Основные драйверы роста трафика между ЦОДами: виртуализация, облачные сервисы, миграция и подключение новых серверов и СХД. Здесь можно столкнуться и с проблемой недостаточной пропускной способности каналов передачи данных. Увеличивать ее до бесконечности не получится из-за отсутствия собственных свободных волокон или высокой стоимости аренды. Последний важный момент связан с информационной безопасностью: бегающие между ЦОДами данные нужно шифровать, что также увеличивает задержки. Есть и другие моменты, вроде сложности администрирования распределенной системы, но их влияние не столь велико, а все технические препятствия связаны в основном с особенностями каналов связи и оконечного оборудования.

Два или три — экономические трудности

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

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

DWDM — оптимальное решение для DCI

Если заказчику необходимо объединить два центра обработки данных, он неизбежно столкнется с указанными выше проблемами. Для их решения мы используем технологию спектрального уплотнения DWDM, позволяющую мультиплексировать ряд несущих сигналов в одно оптическое волокно с использованием разных длин волн (λ, т.е.«лямбд»). При этом в одной оптической паре может быть до 80(96) длин волн согласно сетке частот ITU-T G.694.1. Скорость передачи данных каждой длины волны составляет 100 Гбит/с, 200 Гбит/с  или 400 Гбит/с, а емкость одной оптической пары может достигать 80 λ * 400Гбит/с = 32Tбит/с. Уже есть готовые разработки, обеспечивающие 1 Тбит/с на одну длину волны: они дадут еще большую пропускную способность в ближайшем будущем. Проблему пропускной способности каналов на сегодняшний день это решает полностью: вместо дополнительных волокон заказчик будет более эффективно использовать имеющиеся — утилизация трафика достигнет фантастических величин.

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

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

Технология WDM способна решить и проблемы информационной безопасности. Конечно, шифрование не обязательно должно выполняться на оптическом уровне, но у такого подхода есть ряд неоспоримых преимуществ. Шифрование на более высоких уровнях часто требует автономных устройств для разных потоков трафика и способствует значительным задержкам. С увеличением количества таких устройств растут и задержки, сложность управления сетью также увеличивается. Шифрование на оптическом уровне OTN (G.709 — рекомендация ITU-T, описывающая формат кадра в DWDM-системах) не зависит от типа сервиса, не требует отдельных устройств и выполняется очень быстро — разница между зашифрованным и не зашифрованным потоком данных обычно не превышает 10 миллисекунд.

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


ссылка на оригинал статьи https://habr.com/company/huawei/blog/428249/

Парсинг сайтов при помощи Python

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

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

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

Как видно — все события выводятся в слое —

<div class="events-box">

отдельное событие выводится в слое —

<div class="unit span4 event " itemscope="" itemtype="http://schema.org/Event">

и каждое событие имеет определенные атрибуты, которые мы и будем собирать

  • Тип

    <p class="type">

  • Заголовок

    <h3 class="title">

  • Содержание

    <p itemprop="description">

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

1. Получение данных с помощью применения библиотек Requests и Beautiful Soup.

Для начала установим библиотеки

$ pip install requests

$ pip install bs4

После установки приступим непосредственно к парсингу

Начнем с подключения библиотеки Requests и проверки правильно ли отрабатывается запрос

import requests url = 'https://runet-id.com/events/' requests.get(url)

Получим вывод в консоли:
<Response [200]>

Значит все верно сделано и страница получена.

Теперь посмотрим в каком виде она нам передается, добавим к нашему коду:

req = requests.get(url).text print(req[:100]) #отображение 100 символов

Результат:

<html> <head>     <link rel="stylesheet" type="text/css" href="/javascripts/jquery.u

Как видно мы получили html код страницы. Но данный формат не удобен для анализа — поэтому мы будем использовать библиотеку Beautiful Soup, чтобы данные получить в нужном формате.

Для этого мы импортируем библиотеку

from bs4 import BeautifulSoup

создадим объект и передадим ему содержимое

soup = BeautifulSoup(req.text, 'lxml')

Обозначим Beautiful Soup, что является контейнером данных и что затем в нем искать

events = soup.find('div', {'class': 'events-box'}).findAll('div', {'class', 'unit span4 event '})

И создадим словарь, в который разместим все события с атрибутами

i = 0 events = [] for event in events:     event_type = event.find('small').text     event_title = event.find('h3', {'class', 'title'}).text     event_desc = event.find('p', {'itemprop': 'description'}).text     event_details[i] = [event_type, event_title, event_desc]     i += 1

Можно все оформить как функцию

import requests from bs4 import BeautifulSoup  def get_upcoming_events(url):     req = requests.get(url)     events_dict = {}     i = 0     soup = BeautifulSoup(req.text, 'lxml')     events = soup.find('div', {'class': 'events-box'}).findAll('div', {'class', 'unit span4 event '})      for event in events:         event_type = event.find('small').text         event_title = event.find('h3', {'class', 'title'}).text         event_desc = event.find('p', {'itemprop': 'description'}).text         events_dict[i] = [event_type, event_title, event_desc]         i += 1

Вызов функции:

get_upcoming_events('https://runet-id.com/events/')

2. Получение данных с помощью Scrapy

Scrapy — очень популярный фреймворк для извлечения данных.В предыдущем пункте мы использовали библиотеки requests для получения и Beautiful Soup для извлечения данных. Scrapy предлагает все эти функции со многими другими встроенными модулями и расширениями.
Scrapy предлагает ряд мощных функций, которые стоит упомянуть:

  • Встроенные расширения для создания HTTP-запросов и обработки сжатия, проверки подлинности, кэширования, управления user-agent и HTTP заголовками
  • Встроенная поддержка выбора и извлечения данных с использованием выбора языков, таких как CSS и XPath, а также поддержка использования регулярных выражений для выбора контента и ссылок
  • Поддержка кодирования для работы с языками и нестандартными объявлениями кодирования
  • Гибкие API для повторного использования и написания собственных промежуточных программ и конвейеров, которые обеспечивают простой способ реализации таких задач, как автоматическая загрузка изображений или файлов и хранение данных в хранилищах, таких как файловые системы, S3, базы данных и другие

Его принцип действия схож с обходчиками поисковых систем.

Начнем с установки фреймворка

$ pip install scrapy

Все в Scrapy вращается вокруг создания «паука». «Пауки» сканируют страницы в Интернете на основе правил, которые мы предоставляем. «Паук» создается с определением класса, от которого он происходит. Наш происходит от scrapy.Spider класса.

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

class PythonEventsSpider(scrapy.Spider):     name = 'pythoneventsspider'     start_urls = ['https://runet-id.com/events/', ]

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

for events in response.xpath('//div[contains(@class, "unit span4 event ")]'):        event_type = events.xpath('.//small/text()').extract_first()        event_title = events.xpath('.//h3[@class="title"]/a/text()').extract_first()        event_desc = events.xpath('.//p[@itemprop="description"]/text()').extract_first()        events_dict[i] = [event_type, event_title, event_desc]        i += 1

Реализация этого метода использует XPath для получения данных со страницы (XPath — встроенное средство навигации по HTML в Scrapy).

Оставшийся код выполняет программный запуск «паука».

process = CrawlerProcess({ 'LOG_LEVEL': 'ERROR'}) process.crawl(PythonEventsSpider) spider = next(iter(process.crawlers)).spider process.start()

Он начинается с создания CrawlerProcess, который выполняет фактическое сканирование и множество других задач. Мы передаем ему LOG_LEVEL OF ERROR, чтобы предотвратить объемный вывод Scrapy. Измените это на DEBUG и запустите его, чтобы увидеть разницу.
Затем мы сообщаем процессу, что нужно использовать нашу реализацию «паука».
И запускаем все это — вызывая process.start ().

Полный код:

import scrapy from scrapy.crawler import CrawlerProcess  class PythonEventsSpider(scrapy.Spider):     name = 'pythoneventsspider'     start_urls = ['https://runet-id.com/events/', ]     events_dict = {}     def parse(self, response):         i = 0         for events in response.xpath('//div[contains(@class, "unit span4 event ")]'):             event_type = events.xpath('.//small/text()').extract_first()             event_title = events.xpath('.//h3[@class="title"]/a/text()').extract_first()             event_desc = events.xpath('.//p[@itemprop="description"]/text()').extract_first()             events_dict[i] = [event_type, event_title, event_desc]             i += 1  if __name__ == "__main__":     process = CrawlerProcess({'LOG_LEVEL': 'ERROR'})     process.crawl(PythonEventsSpider)     spider = next(iter(process.crawlers)).spider     process.start() 


ссылка на оригинал статьи https://habr.com/post/427903/

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

В данном мануале мы подробно рассмотрим настройку системы электрических ограничений (Constraint Editor System) в САПР Xpedition/PADS Professional, при работе с высокоскоростными интерфейсами на примере DDR памяти.

Будут разобраны следующие темы: 

  1. Обзор DDR

    • Определения DDR и SDRAM
    • Основные требования к проектам с использованием DDR
    • Нюансы задания ограничений для схем с DDR

  2. Определение импеданса

    • Использование редактора стэкапа (Stackup Editor) в менеджере ограничений для вычисления ширины и контроля импеданса одиночного проводника на заданном слое
    • Использование редактора стэкапа для расчета ширины и зазора между трассами для контроля импеданса в дифференциальной паре
    • Использование редактора стэкапа для расчета ширины и зазора между трассами для контроля импеданса в дифференциальной паре

  3. Выравнивание трасс по длине и времени распространения сигнала

    • Различные методы для назначения ограничений по задержке
    • Создание и использование пар контактов
    • Использование констант и переменных
    • Настройка минимальных и максимальных правил задержки
    • Установка согласованных длин
    • Работа с иерархией при настройке согласованной длины
    • Знакомство с формулами задержки
    • Настройка формул
    • Использования констант и переменных в формулах

  4. Типы и настройка кастомной топологии

    • Назначение типов контактов (источник, нагрузка, терминатор)
    • Изучение типов топологии
    • Создание пользовательской топологии
    • Создание пар контактов

  5. Работа с дифференциальными сигналами

    • Демонстрация влияния ввода ограничений при редактировании дифф. пар
    • Расщепление дифф. пар
    • Использования диалогового окна Diff Pair в Editor Control

  6. Наводки и правила параллельности

    • Обзор параллелизма и перекрестных помех
    • Создание правил параллелизма
    • Создание правил перекрестных помех
    • Назначение правил для Nets/Classes
    • Отображение ошибок правил параллельности
    • Отображение ошибок правил перекрёстных помех
    • Исправление ошибок параллельности

  7. Шаблоны ограничений

    • Создание шаблона ограничения
    • Вкладка «шаблон ограничений»
    • Назначение шаблона группе сигналов
    • Экспорт шаблона в другую базу данных
    • Шаблоны ограничений для трассировки DDR3
    • Создание шаблона ограничений для трассировки DDR3
    • Пример трассировки сегмента DDR3
    • Изменение шаблона, для трассировки последующих сегментов

  8. Инструмент Target Length и Manual Tuning

    • Использование диалогового окна Target Lengths для выравнивания согласованных групп сигналов, используя метод “Tune this cluster using tuning rules in Editor Control” и «Easy Tune»
    • Использование функции ручной настройки (manual tuning) для более точного выравнивания проводников
    • Дополнительные разделы, связанные с определением общей длины проводников

Приятного просмотра

*Рассмотренные на данном вебинаре приемы и техники подходят как для PADS Professional, так и для Xpedition.


ссылка на оригинал статьи https://habr.com/company/nanosoft/blog/426879/

Флешки на пороге 2019 года — пережиток прошлого или всё ещё необходимость?

Для кого-то флешка – важный компаньон в повседневных делах, а кто-то считает эти устройства расходным материалом. Каждый по-своему прав. Хотя, вторая категория пользователей может быть разделена ещё на две – те, кто действительно прав и те, кто, всё-таки, ошибается. Почему? Всё просто – если покупать дешёвые решения на всем известных азиатских площадках, то, действительно, срок их службы может быть весьма короток. А если подойти к выбору флешки с умом, то можно выбрать качественный вариант, который будет служить верой и правдой долгие годы. При этом, ценник может быть вполне адекватным. Справедливости ради, надо сказать, что подавляющее большинство пользователей не готовы платить за флешки много денег, что приводит к двум путям развития событий. Первый – «пальцем в небо». Определяем бюджет и покупаем модель максимально доступной ёмкости, не забывая про дизайн, если это важно. Второй – потратить некоторое время на изучение рынка и найти качественный вариант, пусть и несколько меньшего объёма. Казалось бы, на дворе конец 2018 года и существует достаточно облачных сервисов, а интернет доступен практически везде – неужели флешки всё ещё актуальны? Ещё как! Хотите узнать десяток возможных сценариев использования такого рода накопителей? Тогда усаживаемся поудобнее и читаем!

Перенос данных
Как бы это ни банально звучало, но переносить данные при помощи флешек – всё ещё очень востребованный вариант их использования. Да, интернет есть практически везде. Но никто не застрахован от его отсутствия в месте назначения. Загрузили курсовую или диплом в облако, чтобы показать преподавателю в аудитории? А доступа к внешней сети на учебном ПК и нет. Можно, конечно, подключить смартфон в качестве модема, но это всё время и терпение преподавателя. Куда проще и быстрее принести нужные документы на флешке. Флешка, конечно, стоит денег, которых у студентов и без того немного. Но, к примеру, варианты от Kingston в виде DataTraveler DT106 и SWIVL ёмкостью 32 ГБ стоят немногим более 500 рублей. Это бюджетные накопители, которые, несмотря на невысокую стоимость, обладают высоким качеством – производитель даёт на него гарантию целых 5 лет. От потери данных при выходе из строя, конечно, это не спасёт, но вызывает определённую уверенность в том, что эти флешки прослужат долго. В то время как аналогичные по стоимости безымянные «китайские» накопители могут подвести вас в первые же дни использования.

Кроме того, можно брать с собой мультимедиа материалы в отпуск или в длительные поездки, чтобы скрасить свободное время прослушиванием музыки или просмотром сериалов и фильмов. Пусть скорости записи у DT106 и SWIVL невелики, но с чтением никаких проблем – под 100 МБ/с, чего будет достаточно для просмотра практически любого контента.
Ситуаций придумать можно ещё много. К примеру, если вы дизайнер или около того, то можно на собеседования брать примеры своих работ на флешке, чтобы незамедлительно продемонстрировать свои навыки потенциальному работодателю.
Или же переносить самые свежие драйверы на ПК, где только что установили операционную систему.
А ещё можно подключать флешки к смартфонам, поддерживающим OTG, чтобы переносить данные без участия компьютера или попросту просмотреть содержимое прямо на экране смартфона. В общем, вариантов – масса.

Сетевое хранилище
Нет, ни о каком полноценном сетевом хранилище сейчас речь не пойдёт. Многие домашние маршрутизаторы оборудованы USB портами, что позволяет подключить соответствующие устройства. Флешка – одно из таких устройств. Конечно, запустить работу торрент-клиента и указать в качестве папки назначения нашу флешку будет не совсем правильно, но загрузить на неё фото- и видеоальбом после отпуска, чтобы просматривать его всей семьёй на любом из подключённых к сети устройств – без проблем. Достоинством такого способа использования является то, что каждый пользователь может независимо от других увидеть общий контент в любое время, когда ему понадобится, даже если кто-то уже смотрит содержимое на другом устройстве. Иначе бы пришлось передавать флешку в порядке очереди, что могло бы привести к конфликтным ситуациям.

Загрузочный диск
Времена, когда установить операционную систему можно было только с диска, канули в лету. Сейчас даже Windows 10 существует в варианте на USB-носителе. А есть и официальное программное обеспечение для записи образа диска на флешку, чтобы потом произвести установку. Здесь же можно упомянуть ещё и возможность создания диска восстановления – стандартной функции Windows, которая может оказаться полезной. Загружать, к примеру, можно ещё и другие операционные системы, а также UEFI Shell – для обновления BIOS материнских плат и других полезных действий.

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

LiveCDUSB
Ваша операционная система перестала загружаться? На помощь придёт загрузочная флешка с установленной ОС прямо на ней. Там же будет целый набор инструментов, которые могут помочь в восстановлении вашей основной операционной системы. Для последних трёх задач нужны хорошие скорости чтения, которые достигаются при использовании интерфейса USB 3.1 Gen1 (он же USB 3.0). Для накопителей DataTraveler DT106 и SWIVL это совершенно не проблема. Даже с учётом невысокой стоимости, они поддерживают этот стандарт и демонстрируют скорости до 100, а то и 130 МБ/с в зависимости от модели.

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

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

Защищённый WEB-сёрфинг
Тема анонимности и доступа к ресурсам мировой сети весьма щекотлива. Нюансов тут достаточно много, но обезопасить себя от некоторых проблем, а также получить доступ к нужной информации всё-таки можно. К примеру, браузер Tor позволяет полностью анонимно изучать просторы сети, включая те ресурсы, которые были заблокированы законодательством той или иной страны, каким-бы глупым это решением не было (к примеру, массовая блокировка даже ни в чём невиновных IP адресов при атаке на один определённый ресурс). От части, этот пункт можно связать с предыдущим – Tor доступен в portable версии.

Ключ доступа
Флешки можно также использовать и в качестве аппаратных ключей доступа к компьютерам и ноутбукам. Можно возразить – для безопасной двухфакторной аутентификации существуют специальные средства – те же Рутокен S, eToken и другие. Но их использование обязательно в тех случаях, когда рабочие места должны соответствовать требованиям ФСТЭК или ФСБ. В домашних условиях (кино/фото/интернет/etc.) для аутентификации можно использовать именно флешку – это заметно дешевле, а информации, которую требуется защищать упомянутыми выше средствами, там быть не должно по определению.

Криптоконтейнер
Здесь надо вспомнить о чём шла речь в самом начале – о переносе и хранении данных. Разница только в том, что в этом случае данные на флешке зашифрованы. Вы можете возразить, что существуют специальные для этого накопители даже у Kingston – тот же DataTraveler 2000 с цифровой клавиатурой, Vault Privacy или IronKey. Но это всё решения в совсем другой ценовой категории. Если же рассматривать DT106 и SWIVL, то в ваших руках могут оказаться недорогие устройства с надёжно спрятанными на них данными.

От слов к делу
А что, всё-таки, с ёмкостью и скоростями работы?
Флешки DataTraveler 106 предлагаются в вариантах от 16 до 256 ГБ. У 16-64 ГБ моделей скорость чтения достигает 100 МБ/с, а у старших (128 и 256 ГБ) – до 130 МБ/с.

Устройства DataTraveler SWIVL доступны в вариантах от 16 до 128 ГБ, скорость чтения которых (всех, кроме 16 ГБ модели) достигает 100 МБ/с.

Скорости записи невелики, но тут нужна рассудительность. Во-первых, вспоминаем классификацию и стоимость. У нас в руках бюджетное решение за очень и очень скромные деньги даже по современным меркам. Во-вторых, скорость чтения во всех случаях превышает 100 МБ/с. А это в большинстве описанных в данном материале случаев – главный критерий. Да, придётся некоторое время подождать при записи программного обеспечения или образов операционных систем на данные накопители, но запуск будет происходить быстро и без запинок. Хотите ещё и скорость записи высокую? Тогда надо смотреть другие решения, стоимость которых может быть в два, а то в и три раза выше. Стоит ли оно того? Далеко не всегда.

Вместо заключения
Многие из вас могут сказать, что существует огромное количество подобных накопителей на всем известных азиатских площадках. Низкие скорости и отсутствие их стабильности в процессе эксплуатации, никакой поддержки со стороны производителя, отсутствие гарантии и многое другое – список можно продолжать. Тут можно просто напомнить одну любимую англичанами фразу — «I’m not rich enough to afford cheap things». Суть её заключается в том, что они ищут вещи хорошего качества по разумной цене. С уверенностью можно сказать, что DataTraveler 106 и DataTraveler SWIVL отлично подходят под это описание, если у вас нет особо высоких требований к накопителям такого рода.

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

Флешка за рассказ

Хотите стать обладателем 64 ГБ накопителей DT106 или SWIVL? Расскажите нам свою историю в комментариях – какой самый необычный сценарий использования флешки вам довелось реализовать, причины этого и какие были достигнуты результаты? Мы определим сразу две самых интересных истории и подарим накопитель каждому из их авторов, чтобы они сами могли убедиться во всём вышесказанном в этом материале! Кто-то прочтет для себя новую и полезную информацию из ваших историй, а кто-то станет счастливым обладателем новенькой флешки. Так что уделите несколько минут и поделитесь с нами своим профессиональным и необычным опытом!

Для получения дополнительной информации о продукции Kingston обращайтесь на официальный сайт компании.


ссылка на оригинал статьи https://habr.com/company/kingston_technology/blog/428239/