Рубрика «open source» - 200

АНБ открыло аккаунт на GitHub - 1Агентство национальной безопасности — американское разведывательное агентство, которое традиционно работает в условиях секретности — наконец-то присоединилось к GitHub и открыло официальную страничку: github.com/nationalsecurityagency. Там АНБ будет публиковать исходный код своих программ. В этом есть своеобразная ирония, поскольку много программного обеспечения АНБ ранее утекло в открытый доступ, то есть стало свободным де-факто, без всякого содействия со стороны АНБ. Как тот же инструмент EternalBlue, который в апреле 2017 года слила хакерская группа Shadow Brokers среди прочих инструментов АНБ, а позже на его базе был разработан червь и криптовымогатель WannaCry.

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

Запускаем GSM-сеть у себя дома - 1

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

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

В результате мы запустим экспериментальную 2G сотовую сеть в пределах комнаты с поддержкой СМС и голосовых вызовов, без GPRS. Ее можно будет использовать для изучения работы и взаимодействия устройств и компонентов GSM сети, не вмешиваясь в коммерческие сотовые сети.
Читать полностью »

Одна модель для обучения всему. Google открыла библиотеку Tensor2Tensor - 1Последние успехи глубинного обучения и нейросетей распространились на широкий спектр приложений и продолжают распространяться дальше: от машинного зрения до распознавания речи и на многие другие задачи. Свёрточные нейросети лучше всех проявляют себя в задачах на зрение, а рекуррентные нейросети показали успех в задачах обработки естественного языка, в том числе в приложениях машинного перевода. Но в каждом случае для каждой конкретной задачи проектируется специфическая нейронная сеть. Такой подход ограничивает применение глубинного обучения, потому что проектирование нужно выполнять снова и снова для каждой новой задачи. Это также отличается от того, как работает человеческий мозг, который умеет обучаться нескольким задачам одновременно, да ещё извлекает выгоду из переноса опыта между задачами. Авторы научной работы «Одна модель для обучения всему» из группы Google Brain Team задались естественным вопросом: «Можем ли мы создать унифицированную модель глубинного обучения, которая будет решать задачи из разных областей?»

Оказалось, что можем. Google сделала это — и открыла Tensor2Tensor для всеобщего пользования, код опубликован на GitHub.
Читать полностью »

GraphicsJS – графическая JavaScript библиотека - 1

Перевод статьи. Англоязычный оригинал опубликован на SitePoint – "Introducing GraphicsJS, a Powerful Lightweight Graphics Library".

HTML5 – основа основ современного веба. И сегодня, когда встает задача создать интерактивную графику, выбор чаще всего падает на такие технологии, как SVG и Canvas. Flash позабыт, Silverlight – редкая птица, обитающая на задворках веба, и почти никто не помнит сторонние ActiveX и Java-плагины.

Плюсы и минусы SVG и Canvas хорошо известны – в целом все сводится к тому, что для создания интерактивных элементов и работы с ними больше подходит SVG. Это векторный формат, основанный на XML, и, когда изображение загружается на страницу с использованием тега <svg>, каждый его внутренний элемент становится доступен в SVG DOM.

В данной статье я хочу рассказать о GraphicsJS. Это мощная графическая JavaScript-библиотека с открытым исходным кодом, основанная на технологии SVG (VML для старых версий IE). Начну с краткого введения в основы GraphicsJS, а затем проиллюстрирую возможности библиотеки двумя небольшими, но наглядными примерами. Первый из них посвящен изобразительному искусству. Второй покажет, как менее чем за 50 строк кода сделать простую арт-игру в жанре таймкиллера.Читать полностью »

Как PVS-Studio может помочь в поиске уязвимостей? - 1

Уязвимость в терминах компьютерной безопасности — недостаток в системе, позволяющий намеренно нарушить её целостность или вызвать неправильную работу. Как показывает практика, даже, казалось бы, незначительный баг может являться серьёзной уязвимостью. Уязвимостей можно избежать, используя различные методики валидации и верификации программного обеспечения, в том числе — статический анализ. О том, как с задачей поиска уязвимостей справляется PVS-Studio, и пойдёт речь.
Читать полностью »

Пока все обсуждают ИИ в мире Pacman, мы начнем делать свой ИИ в Minecraft с фреймворком Malmo от Microsoft Research. Pacman у нас тоже появится. :) Если вы любите кубический мир, или вам хотелось бы начать изучать искусственный интеллект, или у вас есть дети, с которыми вы не можете найти общие увлечения, или же вас просто заинтересовала тема – прошу под кат.

Программируем в мире Minecraft - 1
Читать полностью »

В предыдущей статье про Qt roadmap я обещал рассказать про Qt 3D Studio и текущую ситуацию с лицензиями. Qt 3D Studio уже было выпущено два (пока писал статью, вышел третий) внутренних релиза, но статьи про неё пока не будет, так что сегодня расскажу про лицензии.

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

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

Читать полностью »

Вряд ли пользователь домашнего ПК заинтересуется тем, чтобы блокировать устройства на своем ПК. Но если дело касается корпоративной среды, то все становится иначе. Есть пользователи, которым можно доверять абсолютно во всем, есть такие, которым можно что-то делегировать, и есть те, кому доверять совсем нельзя. Например, вы заблокировали доступ к Интернету одному из пользователей, но не заблокировали устройства этого ПК. В таком случае пользователю достаточно просто принести USB-модем, и Интернет у него будет. Т.е. простым блокированием доступа к Интернету дело не ограничивается.

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

В этой статье я расскажу немного теоретическую часть, на основе которой все строится, и расскажу принцип самого решения.
Читать полностью »

image

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

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

В начале описывается сам процесс автоматизации со схемами и диаграммами. После описания процесса рассмотрены инструменты, которые предназначены для автоматизации тестирования OpenStack.
Читать полностью »

Пишем Guard - 1

Привет!

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

  1. if (!ReferenceEquals(arg, null)) throw…
  2. Code Contracts: Contract.Requires(!ReferenceEquals(arg, null))
  3. Guard.IsNotNull(arg, nameof(arg))

В статье я рассмотрю только третий вариант (все примеры кода — для C#, однако некоторые из них будут полезны и в Java).

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js