Заборы из стеклянных кирпичей, заговор онлайн-переводчиков, удаленный взлом «Боинга»

Автор: admin от Вчера, 16:45, посмотрело: 26

Уязвимость в API угрожает сливом конфиденциальных данных Twilio и Amazon S3



Новость на русском, Отчет appthority



Заборы из стеклянных кирпичей, заговор онлайн-переводчиков, удаленный взлом «Боинга»Сложно объяснить, почему разработчики Twilio решили сделать так, чтобы в код приложений, использующих их Rest API и SDK, было необходимо жестко «зашить» учетные данные для доступа к БД. Но сделали они именно так. И это несмотря на то, что собственные политики безопасности Twilio такие фортели запрещают.



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

Категория: Компании » Apple

 

Дайджест интересных материалов для мобильного разработчика #230 (13 ноября — 19 ноября)

Автор: admin от Вчера, 16:45, посмотрело: 23

Microsoft выпустила несколько интересных инструментов для мобильных и ML разработчиков, Apple написала как определяет лица, Google как работает смешанная стабилизация в новых Pixel, а разработчики Shadow Fight 3 о том, как они делали новую версию игры. Все это и многое-многое другое в нашей еженедельной подборке.



Дайджест интересных материалов для мобильного разработчика #230 (13 ноября — 19 ноября)

Категория: Компании » Apple

 

Синтаксический анализ в NLTK. Продолжение

Автор: admin от 18-11-2017, 23:55, посмотрело: 33

Здравствуйте. Это небольшое продолжение предыдущей статьи, где рассматривались основы синтаксического анализа с помощью пакета Natural Language Toolkit (сокращенно, NLTK). Как и в прошлой статье, в этой я буду сопровождать примеры кодом на языке Python (версии 2.7).



Вступление



В предыдущей статье мы рассматривали синтаксические анализаторы и виды грамматик. Настоятельно рекомендую её прочитать, если Вы этого не сделали. Также можно почитать первую статью, где мы устанавливаем и настраиваем пакет NLTK.



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

Категория: Программирование » Game Development

 

UniRx — Rx для Unity3d

Автор: admin от 18-11-2017, 23:55, посмотрело: 29

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

Реактивное программирование — это всё то же самое, только на стероидах, то есть мы можем создавать потоки данных всего. И также наблюдать за ними и реагировать. Update, OnCollisionEnter, Coroutine, Event, Mouse input, Keyboard input, Joystick input — все это потоки.
Все что нас окружает это потоки.

UniRx — Rx для Unity3d

Категория: Программирование » Game Development

 

Подробный разбор решения crackme01_x64

Автор: admin от 18-11-2017, 22:00, посмотрело: 32

Данная статья рассчитана на начинающих, интересующихся обратной разработкой, и имеющих базовые представления о работе ЦП, языке ассемблера. Этот crackme относительно старый и простой, но при его решении применяются в основном те же приемы, что и при решении более сложных. На просторах Сети можно найти несколько статей с его разбором такие как эта, а еще он здесь упоминается(crackme то с историей), однако те решения не такие подробные как это. В свое время мне сильно не хватало такого построчного разбора, куда можно было бы заглянуть, когда запутался и не понимаешь что делает тот или иной участок кода. Если этот пост окажется полезным хотя бы для одного человека, значит я не зря старался. Все скрины(кроме первого) кликабельны. Приятного прочтения.

Итак, перед нами простой crackme, запустим его и посмотрим как он работает.

Подробный разбор решения crackme01_x64

Ага, все довольно просто, мы должны ввести правильный серийник. Теперь откроем программу в дизассемблере. Как правило дизассемблерные листинги, даже относительно простых программ, довольно объемны. Для определения той части кода, которая проверяет ввод серийника, найдем где в памяти программы хранится строка с сообщением об ошибке «Fail, Serial is invalid !!!» и какой код к этой строке обращается.

Категория: Программирование

 

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

Автор: admin от 18-11-2017, 22:00, посмотрело: 23

Сразу оговорю, что ничего инновационного в статье не предлагается. Я просто описываю один небольшой случай работы с чужим кодом. Опытные разработчики, пожалуй, улыбнутся, ибо наверняка с подобным сталкивались и сами, а может и еще хуже. Тех же, для кого это всё в новинку, просьба взять на заметку, как не надо оформлять свой код, уж особенно если речь идет о публичном плагине. В статье далее описывается работа с посторонним плагином для wordpress. После моих “приключений” мне очень не хочется никаким образом упоминать название плагина, поэтому в кусках исходного кода я подменил название переменных, функций, чтобы максимально исключить возможность отсылки к плагину.

Категория: Программирование

 

Как написать свой первый Linux device driver. Часть 3

Автор: admin от 18-11-2017, 19:35, посмотрело: 34

Добрый вечер, хаброчитатели!



В предыдущих статьях (один, два) мы определили понятие символьного устройства и написали простейший пример символьного драйвера. Последняя часть посвещена проверки его работоспособности. На Хабре уже есть примеры как можно протестировать драйвер, например: тык.



Я попытаюсь рассмотреть данный вопрос чуть подробнее, надеюсь, вам понравится.



Как написать свой первый Linux device driver. Часть 3

Категория: Операционные системы » Linux

 

Частное облако: «синяя изолента» для сурового энтерпрайза

Автор: admin от 18-11-2017, 18:25, посмотрело: 36

Вот вроде бы облака — это здорово. Арендуешь себе виртуальные ресурсы на виртуальном сервере, размазанном по дата-центрам всей планеты. И ни о чем не беспокоишься, кроме пополнения счета — вся поддержка и т.п. automagically выполняется сама собой. Но в один «прекрасный день» Hetzner или даже Amazon вдруг извинится за совершенно форс-мажорно упавший сервер и безвозвратно потерянные данные. В качестве компенсации за простой вам обязательно перечислят $10, согласно пункту соглашения 122.3(d). Слабая поддержка против контрагентов и клиентов, собравшихся вокруг центрального офиса с факелами, канистрами и странным блеском в глазах.

 

В такие моменты хочется купить билет куда-нибудь в Эквадор или Пуэрто-Рико. А взгляд падает на уютный запылившийся сервер в глубине офиса. Что делать?

 

Частное облако: «синяя изолента» для сурового энтерпрайза

Категория: Компании » Facebook

 

Facebook или Google? Где выгоднее давать рекламу в 2017 году

Автор: admin от 18-11-2017, 18:25, посмотрело: 31

Задача простая. Доступно 2 канала привлечения посетителей: Facebook и AdWords. Туроператор с годовым бюджетом примерно $60.000 долл на оба канала.



Владелец бизнеса спрашивает: Где выгоднее давать рекламу? Другими словами куда лучше инвестировать доллар чтобы заработать больше прибыли и заказов?



Facebook или Google? Где выгоднее давать рекламу в 2017 году


Итак по порядку.



Часть 1. Анализируем посещаемость.

Категория: Компании » Facebook

 

Паттерн Model-Update-View и зависимые типы

Автор: admin от 18-11-2017, 12:20, посмотрело: 28

Паттерн Model-Update-View и зависимые типы


Model-Updater-View — функциональный паттерн, успешно применяемый в языке Elm в основном для разработки пользовательских интерфейсов. Что бы им воспользоваться надо создать тип Model, представляющий полное состояние программы, тип Message, описывающий события внешней среды, на которые программа должна реагировать, меняя свое состояние, функцию updater, которая из старого состояния и сообщения создает новое состояние прораммы и функции view, которая вычисляет по состоянию программы требуемые воздействия на внешнюю среду, которые порождают события типа Message. Паттерн очень удобный, но у него есть маленький недостаток — он не позволяет описать какие события имеют смысл для конкретных состояний программы.



Схожая проблема возникает (и решается) и при использовании ОО-паттерна State.



Язык Elm простой, но очень строгий — он проверяет, что функция updater хоть как-то обрабатывает все возможные сочетания модели-состояние и сообщения-события. По этому приходится писать лишний, пусть и тривиальный — как правило оставляющий модель без изменений, код. Я хочу продемонстрировать, как этого можно избежать в более сложных языках — Idris, Scala, C++ и Haskell.

Категория: Программирование