Один из ведущих специалистов в области информационной безопасности, основатель, руководитель антивирусных исследований и генеральный директор «Лаборатории Касперского» рассказал студентам Университета Иннополис о современном мире компьютерных систем и защите данных во всемирной паутине. Много шуток, историй из реальной практики и, конечно, киберпреступлений.
Мы записали эту лекцию, чтобы поделиться с вами.
Switch Converter заслуживает особенного внимания. Простой и удобный он обладает поразительной универсальностью. На его основе легко построить множество распространённых типов конвертеров без декларирования новых классов и не только… Не верится — добро пожаловать!
Поскольку НЛО позволило мне писать статьи, продолжаем истории о проектировании. С придумыванием заголовков у меня беда. На этот раз речь пойдет о дверях безопасности. Надеюсь читатель простит мне вольный перевод термина Safety (или Protective) Door.
Говоря о безопасности на производстве, я подразумеваю аварийный останов или аварийное отключение для предотвращения аварии. Есть целый ряд технологий и устройств, позволяющих сделать жизнь ответственного за ТБ безоблачной и спокойной, а рабочим завода обеспечить сохранность жизни и конечностей.
Эти устройства применяются для выполнения следующих задач:
— кнопки аварийного останова и отключения, о которых я писал чуть раньше;
— мониторинг дверей безопасности;
— контроль рабочей зоны лазерными сканерами;
— контроль доступа с помощью световых барьеров;
— контроль безопасной скорости вращения и движения;
— контроль выполнения работы двумя руками (да, переводчик из меня абсолютно точно никакой).
Может, список неполный, но достаточный на сегодня. Итак, говорим о дверях.
Наш первый пост в этом году мы решили посвятить очень базовой теме, лекция на которую была прочитана в Малом ШАДе. Занимаются в нём старшеклассники, которым интересны технологии, отсюда специфичность изложения — лекция будет особенно интересна тем, кто только начинает программировать и задумывается о том, в каком направлении развиваться. Для них же у Яндекса есть курс «Введение в программирование (С++)», который можно пройти на платформе Stepic.org.
Лектор Михаил Густокашин — куратор академических программ Яндекса, директор центра студенческих олимпиад факультета компьютерных наук ВШЭ. Михаил подготовил десятки победителей и призёров Всероссийских олимпиад по программированию.
В рамках лекции рассказывается о том, какие бывают языки программирования, чем они отличаются, как они появились и какие из них лучше, а какие — хуже. В начале речь немного пойдет об истории языков — как они появились, как люди начали программировать, как все развивалось, что сейчас происходит. Во второй части будет затронуто то, для каких задач какой язык подходит, как «выбрать себе любимый язык и получать удовольствие от жизни». Лектор также немного расскажет о том, как, по его мнению, всему этому научиться и потом устроиться на работу.
Как всегда, под катом — подробная расшифровка лекции, чтобы вы могли сориентироваться в ее содержании.
Наткнулся на эту статью и коль скоро предмет беседы весьма интересен, позволю себе немного развить эту тему.
Возьмем ту же схему (действительно, довольно корявую надеюсь автор простит мне ее использование) из упомянутого поста:
Первое слабое звено этой схемы, которое бросилось мне в глаза, совсем не реле К1, конечно тоже достойное упоминания, а надпись «Аварийный стоп» на нормально-открытом контакте кнопки SB1.
Легко представить, что оборванный кабель от этой самой кнопки приведет к тому, что оператор может нажимать ее до потери пульса, пока оборудование не встанет от перегрева, или пока циркулярная пила допиливает его коллегу, или дожимает его гидравлическим прессом. Helixa переделал схему в конце поста, но эта ошибка осталась.
В промышленности внедряются автоматизированные системы управления технологическим процессом (АСУ ТП) на промышленных программируемых логических контроллерах (ПЛК) на объектах модернизации. Вновь поставляемое оборудование, уже по умолчанию содержит АСУ на ПЛК. Но качество проектирования АСУ ТП и программирования ПЛК иногда не соответствует логике и требований к надежной защите управляемого объекта. В этой статье я расскажу о типичной ошибке проектирования и программирования обычного промышленного оборудования.
Компрессорные установки в промышленности используются во многих технологических операциях. Сжатый воздух получают разными типами компрессорных установок. От роторного типа, до вихревых турбомашин. Центробежные компрессорные установки типа К-250 имеют широкое распространение в промышленности. Но у всех типов компрессоров есть критический режим работы – помпаж.
Пройдясь поиском по Хабрахабру, удалось обнаружить не так уж и много информации, посвященной, надо сказать, не очень распространённому языку BPEL (Business Process Execution Language). Если говорить в общем, то BPEL – это язык, основанный на формате XML, который позволяет описывать логику бизнес-процессов через использование веб-служб.
Реализаций движков, позволяющих создавать процессы с использованием этого языка, мне известно не так уж и много. В частности, можно упомянуть Oracle BPEL Process Manager и продукт, о котором пойдет речь дальше – Serena Business Manager (SBM). SBM позволяет быстро создавать web-приложения, автоматизирующие какой-нибудь процесс. В модели процесса (workflow) предусмотрена возможность в момент изменения состояния вызвать внешнюю web службу. А если нужно реализовать какую-нибудь логику и одного вызова недостаточно? Вот тут и пригодится процедура, написанная на языке BPEL и исполняемая средствами той же платформы BPM.
Подробнее на самом языке я останавливаться не буду, в сети можно найти достаточно информации на эту тему, например, здесь. Я же опишу реализацию конкретной задачи.
Одна из типовых задач при работе с коллекциями и массивами — выборка n элементов, начиная с i-того индекса, или же, как вариант, выборка элементов с i-того по j-й индекс. На языке C# с использованием методов-расширений библиотеки Linq решается она очень просто:
var selectedItems = items.Skip(i).Take(n).ToArray();
var selectedItems = items.Skip(i).Take(j - i).ToArray();
Для строк предусмотрен специальный метод Substing:
var target = source.Substing(i, n);
var target = source.Substing(i, j - i);
var target = source.Substing(i); // from i to end
Часто начинающие разработчики изобретают свои велосипеды для подобных целей из-за недостающих знаний, поэтому на собеседованиях технические интервьюверы иногда задают вопросы по этой теме. В некоторых языках программирования также существует родственная и весьма интересная концепция срезов (slices), детальное пояснение которой с примерами следует далее.
Однажды мы столкнулись с задачей реализации транзакции в SAP MII для механизма создания корректного IDOC и отправки его в SAP MDG (эта инструкция применима ко всем SAP ERP системам).
Задача была следующей: реализовать регулярную отправку необходимых данных о контрагентах из не-SAP систем в SAP MDG используя SAP MII.
Во-первых, мы начали поиск механизма отправки IDOC'ов из SAP MII в SAP MDG. После недолгих поисков была найдена RFC функция IDOC_INBOUND_ASYNCHRONOUS на стороне SAP MDG.
Cтатью про автомобильную безопасность я решил написать после новости о том, что серия автомобилей Chrysler была отозвана из-за уязвимости в программном обеспечении. По разным причинам она пылилась в полусыром состоянии еще с лета, и вот наконец-то я нашел время между поездками ее дописать и опубликовать. Нет, не угадали, это не будет статья про уязвимости в микроконтроллерах, об этом и так уже написано столько, что хватит на целую книгу. Я же хочу рассмотреть проблему с другой стороны.
Конечно, вы слышали о двух хакерах, которые перехватили управление джипом, ведь об этом писали все. Я хотел копнуть глубже и предположить, что не именно эта, но другие схожие проблемы могут быть не случайными, а запланированным результатом атаки. То есть, теоретически, атакующий может намеренно внедрить уязвимость в продукцию. Хотя пока это больше напоминает сценарий новой серии Мистера Робота, но скандал, связанный с другим крупным автоконцерном, Volkswagen, показывает, что подобную атаку вполне можно провернуть и в реальности (окей, если не сейчас, то уже в ближайшем будущем).
Расширяем функционал EPLAN при помощи Add-Inов на C#
EPLAN – это платформа для сквозного проектирования, охватывающая следующие отрасли: электротехника, КИПиА, гидравлика/пневматика и механика (проектирование шкафов и жгутов). Благодаря открытой архитектуре и стандартным интеграционным модулям EPLAN может быть экономически эффективно интегрирован с большим спектром сторонних решений: системами механического проектирования, ERP и PDM системами, системами проектирования зданий, промышленных производств и кораблей.
Появившийся несколько лет назад Node.js вызвал небывалый ажиотаж в среде разработчиков. Сегодня он продолжает развиваться и оставаться одним из самых востребованных на рынке.
В связи с этим, а также недавним релизом Node.js 5.1.0. предлагаем вам наш перевод статьи о преимуществах Node и причинах его стремительного развития.
Молодой программист, едва закончивший или ещё даже не закончивший ВУЗ, готов свернуть горы, учиться, учиться и ещё раз учиться и ему близлежащее будущее кажется таким:
Но более опытные товарищи знают, что на самом деле на его пути давно уже заботливо разложены грабли и путь от Junior'а к Senior'у выглядит как-то так:
Давайте вспомним некоторые типичные грабли, на которые мы все (ну или большинство) наступали сами того не замечая. Конечно, для опытных разработчиков многое покажется очевидным капитанством, однако молодых специалистов такие ловушки могут легко увести на темную сторону силы.
Постановка задачи:
Создание сложной автоматизированной системы на основе контроллера для управления различной периферией (электронные замки, двигатели, светодиодные ленты и прочая электроника).
Создание данной системы потребовалась для квест комнаты, подобной этой, но в городе Хабаровск.
Наш квест в ином сеттинге, но в целом имеет примерно тот же набор исполнительных механизмов: реле, замки, ленты, герконы и т.д.
Основные требования к системе:
Надежность — при разработке сложных систем высока вероятность допустить трудно уловимые ошибки, чем больше код тем больше шанс пропустить ошибку и тем больше времени нужно на отладку, необходимо свести к минимуму вероятность некорректной работы.
Гибкость — возможность с минимальными временными затратами изменить логику работы
Функциональность — управление любым оборудованием и подключение любых сенсоров
Intel IoT Roadshow продолжает путешествие по разным странам и 14-15 ноября снова остановится в Москве. Заявки для участия в нашем первом московском IoT Roadshow подавали разработчики из самых разных уголков страны. Конечно, приехать в столицу смогли далеко не все. Поэтому в этот раз совместно с Microsoft мы решили расширить географию участников и рады пригласить IoT энтузиастов из Перми, Казани, Томска, Иваново, Ярославля и Петрозаводска присоединиться к мегахакатону!
Компания Volkswagen показала всему миру, что такое настоящий Test Driven Development. Тесты прошли — можно спать спокойно.
Программное обеспечение, разрабатываемое в компании, довольно специфичное и предназначено для промышленных платформ (автомобильных компьютеров). Компания не раскрывает, какими инструментами пользуется при разработке; и тем более не выкладывает эти инструменты в открытый доступ, как это часто бывает среди ведущих IT компаний. Но сам инновационный подход Volkswagen к тестированию поразил всех. Этот передовой опыт несомненно заслуживает того, чтобы перенять его и внедрить также в мейнстриме нашей отрасли. И сообщество Github незамедлительно откликнулось на этот вызов. Итак, встречайте: библиотеки для поддержки TDD в стиле Volkswagen.