Pwn2Own 2017: итоги десятого по счету соревнования хакеров

Автор: admin от 21-03-2017, 21:35, посмотрело: 339

Pwn2Own 2017: итоги десятого по счету соревнования хакеров

В этом году прошло уже десятое по счету соревнование хакеров Pwn2Own, которое проводится организацией Zero Day Initiative. Каждый год о ходе соревнований рассказывают и авторы Хабра, но в этом году почему-то этого не случилось. Поэтому мы, компания Kingservers, исправляем это упущение. Так вот, в этом году призовой фонд соревнования составил рекордные 1 миллион долларов. Участникам предлагалось показать свои навыки в пяти основных категориях.

Это взлом виртуальных машин (VMware Workstation и Microsoft Hyper-V), взлом браузеров и плагинов к ним (Microsoft Edge, Google Chrome, Mozilla Firefox, Apple Safari и Flash Player для Edge), повышение привилегий (Microsoft Windows, macOS и десктопная версия Ubuntu), взлом разного типа корпоративных приложений (Adobe Reader, Word, Excel и PowerPoint) и взлом серверов (Apache Web Server под Ubuntu). Надо сказать, что участникам удалось многое, соревнование было очень интересным.

Категория: Microsoft, Сетевые технологии

 

Угадай фильтр по импульсной характеристике

Автор: admin от 21-03-2017, 21:05, посмотрело: 255

Угадай фильтр по импульсной характеристике

На некотором сайте, в некотором форуме, добрый молодец по прозвищу SciFi озадачил коллектив свой историей.
Нашел он в руководящих технических материалах иноземной фирмы Texis Instrument [FSK Modulation and Demodulation With the MSP430 Microcontroller] требуемый ему цифровой фильтр. Но иноземцы шибко хитры оказались, и в исходном коде привели следующее:

Категория: Программирование, Веб-разработка

 

Программист без диплома: что может и чего не может дать «домашнее обучение» в IT

Автор: admin от 21-03-2017, 18:15, посмотрело: 307

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

Кто-то разбирается во всем самостоятельно, благо в интернете встречается множество полезной литературы и бесплатных курсов (такие курсы ведут и преподаватели ИТМО — часть из них мы публиковали в наших предыдущих материалах: здесь и тут). Другой вариант — пойти в университет и получить диплом в области информационных технологий.

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

Программист без диплома: что может и чего не может дать «домашнее обучение» в IT

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

 

Что приняли в C++17, фотография Бьярне Строустропа и опрос для C++20

Автор: admin от 21-03-2017, 17:30, посмотрело: 446

Что приняли в C++17, фотография Бьярне Строустропа и опрос для C++20

В начале марта в американском городе Кона завершилась встреча международной рабочей группы WG21 по стандартизации C++ в которой участвовали сотрудники Яндекса.

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

Основное время было посвящено полировке черновика C++17, но несколько небольших и интересных нововведений все же успели проскочить в C++17.
Подробности

Категория: Компании » Яндекс

 

Немного о функторах и функциях высшего порядка в Swift

Автор: admin от 21-03-2017, 16:35, посмотрело: 345

Коллекции


Разработчики, перешедшие на Swift с Objective-C, не могли не заметить удобнейший функционал, который предоставляет Swift для работы с коллекциями. Использование диапазонов в индексах
let slice = array[1..<10]
удобный синтаксис инициализации и добавления элемента в коллекцию, расширяемость, и, конечно функции высшего порядка

Filter


Самой часто используемой функцией для коллекций, пожалуй, является filter
let alex = Person(name: "Alex", age: 23)
let jenny = Person(name: "Jenny", age: 20)
let jason = Person(name: "Jason", age: 35)
let persons = [alex, jenny, jason]
let jNamedPersons = persons.filter { $0.name.hasPrefix("J") } // [jenny, jason]


Reduce


Реже используемой, но при этом крайне выразительной и удобной является функция reduce

let ages = persons.map{ Float($0.age) }
let average = ages.reduce(0, +) / Float(persons.count)


Можно писать свои функции высшего порядка и это довольно увлекательно:
func divisible(by numbers: Int...) -> (Int) -> Bool {
    return { input -> Bool in
        return numbers.reduce(true) { divisible, number in
            divisible && input % number == 0
        }
    }
}

let items = [6, 12, 24, 13]
let result = items.filter(divisible(by: 2, 3, 4)) // [12, 24]


Map


Функциональные понятия функторов и монад пришли к нам из языка Haskell. Говорят, невозможно просто взять и понять, что такое монада, а уж тем более невозможно это объяснить. Тем не менее мы можем временно отбросить все сложности и объяснить себе только то, что действительно необходимо, а те, кто захочет закопаться поглубже, могут начать с изучения Haskell.

Итак, для простоты мы можем считать, что функтор это контейнер, к которому применима функция map, а монада это функтор, к которому применима функция flatMap.

Поскольку коллекции это контейнеры, и в Swift для них определена функция map, они могут выступать в роли функторов:
для того, чтобы трансформировать коллекцию одного типа в коллекцию другого типа, возьмем наш массив persons и получим из него массив возрастов типа [Int]
let ages = array.map{ $0.age } // [23, 20, 35]


FlatMap


И в роли монад:
для того, чтобы из массива oprtional типов вернуть массив не опциональных значений
let optionalStrings: [String?] = ["a", nil, "b", "c", nil]
let strings = optionalStrings.flatMap { $0 } // ["a", "b", "c"]

для того, чтобы расширить первоначальную коллекцию
let odds = [1,3,5,7,9]
let evensAndOdds = odds.flatMap { [$0, $0 + 1] } // [1,2,3,4,5,6,7,8,9,10]

Категория: Программирование, Веб-разработка, iOS

 

Видео Google Device Day

Автор: admin от 21-03-2017, 16:25, посмотрело: 249

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

Категория: Веб-разработка, Google, Android

 

Топ-5 альтернатив jQuery UI

Автор: admin от 21-03-2017, 13:50, посмотрело: 500

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

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

Категория: Программирование » Веб-разработка

 

Руководство начинающего программиста графических шейдеров

Автор: admin от 21-03-2017, 13:45, посмотрело: 265

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

Практически каждая современная графическая сцена являет собой результат работы некоторого кода, написанного специально для GPU — от реалистичных эффектов освещения в новейших ААА-играх до 2D-эффектов и симуляции жидкости.
Руководство начинающего программиста графических шейдеров
Сцена в Minecraft до и после применения нескольких шейдеров.

Цель этой инструкции



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

Категория: Программирование » Веб-разработка

 

Различия, достоинства, недостатки: публичные и приватные блокчейны

Автор: admin от 21-03-2017, 13:10, посмотрело: 420

В 2014 году базы данных на основе блокчейнов начали набирать популярность в финансовой сфере. Банки занялись разработкой концептов и прототипов на основе этой технологии. Например, фондовая биржа NASDAQ планировала использовать протокол Open Assets Protocol, основанный на окрашенных монетах (colored coins), для обеспечения полного цикла контроля за ценными бумагами клиентов.

Крупнейший французский банк BNP Paribas исследует возможность внедрения биткойна в валютную систему. Австралийские банки — Commonwealth Bank of Australia (CBA), Westpac Banking Corporation и Australia and New Zealand Banking Group также экспериментируют с платежами на основе протокола Ripple.

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

Категория: Информационная безопасность, Криптография

 

IDE – зло. Давайте использовать Notepad

Автор: admin от 21-03-2017, 12:35, посмотрело: 283

IDE – зло. Давайте использовать Notepad

— Вы что, серьезно так считаете? — так и хочется иногда спросить у разработчиков некоторых весьма популярных интернет-проектов. Закрадывается подозрение, что они действительно пишут код в Блокноте и думают, что все остальные должны поступать также. Шутка, конечно, но почему в большинстве популярных CMS до сих пор отсутствует подсветка синтаксиса, я понять не могу. Как ни стараюсь.

Если вам иногда не хватает подсветки синтаксиса при редактировании кода в браузере — добро пожаловать под кат.

Категория: Программирование » Веб-разработка

 
Назад Вперед