RSS
Pages: 1 ... 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 41
[>] DDoS как актуальная проблема безопасности для бизнеса
habra.14
habrabot(difrex,1) — All
2015-03-11 00:30:02


![][1] Жертвами DDoS-атак за последние время месяцев становятся множество Российских компаний, онлайн-сервисы которых критичны для бизнеса — среди них интернет-магазины, СМИ и финансовые учреждения. Атаки типа DDoS набирают популярность и уже стали привычным явлением для интернет-бизнеса. [Читать дальше →][2]

[1]: //habrastorage.org/files/d90/a49/b81/d90a49b81d91427f886b7e84b28f5407.png
[2]: http://habrahabr.ru/post/252233/#habracut

[>] Вышел Open-source мессенджер для детей-аутистов
habra.14
habrabot(difrex,1) — All
2015-03-11 02:00:04


![скриншот диалога][1] Сразу [исходники на GitHub][2]. Эмоджи — это очень круто, но иногда недостаточно. Существуют [группы][3] пользователей с ограниченными коммуникативными возможностями, которым нужно что-то еще более простое. В идеале — что бы «оно само говорило и показывало». Пока приходится изобретать какие-то промежуточные варианты. [узнать подробности про один из них][4]

[1]: http://habrastorage.org/files/c3b/e6f/22d/c3be6f22d91b4a60a9cdd6a3416c8dd0.png
[2]: https://github.com/Teplitsa/Sezam
[3]: https://ru.wikipedia.org/wiki/%D0%90%D1%83%D1%82%D0%B8%D0%B7%D0%BC
[4]: http://habrahabr.ru/post/252673/#habracut

[>] OData + Angular.js + Bootstrap + JavaScript Grid = приложение за 5 минут
habra.14
habrabot(difrex,1) — All
2015-03-11 02:00:04


Предположим в некотором проекте появилась необходимость добавить некоторую форму опроса пользователей на веб сайте (детальная форма) и форму для просмотра и редактирования списка пользователей для администратора системы (списковая форма). Рассмотрим процесс создания этих форм с использованием OData, Angular.js, Bootstrap и JavaScript Grid. Все требования к такому приложению уже реализованы в этих инструментах, и нам практически не требуется ничего писать. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252657/#habracut

[>] Microsoft неправильно исправила уязвимость, которую использовал червь Stuxnet
habra.14
habrabot(difrex,1) — All
2015-03-11 11:00:03


Специалисты security-сообщества Zero Day Initiative (ZDI) опубликовали [информацию][1] о новой критической Remote Code Execution уязвимости в Windows (CVE-2015-0096), которую Microsoft закрыла обновлением [MS15-020][2]. Особенность этой уязвимости заключается в том, что она появилась еще в 2010 г., когда Microsoft выпустила обновление для исправления печально известной уязвимости CVE-2010-2568, позволявшей исполнять произвольный код в системе с помощью специальным образом сформированного .LNK файла (файл ярлыка). ![][3] Эта уязвимость использовалась червем Stuxnet для своего распространения и, как теперь стало известно, на протяжении последних пяти лет после выпуска исправления, пользователи по-прежнему находились под угрозой возможной эксплуатации. Файлы типа .LNK позволяют указывать в своем теле ссылку на исполняемый PE-файл, из которого Windows может взять значок для отображения его в оболочке (Explorer). [Читать дальше →][4]

[1]: http://h30499.www3.hp.com/t5/HP-Security-Research-Blog/Full-details-on-CVE-2015-0096-and-the-failed-MS10-046-Stuxnet/ba-p/6718459#.VP-eSFWsVgM
[2]: https://technet.microsoft.com/library/security/MS15-020
[3]: //habrastorage.org/files/259/4ed/a1e/2594eda1eb2b48b3bd4da6403ad38751.png
[4]: http://habrahabr.ru/post/252711/#habracut

[>] NoScript теперь и для Android
habra.14
habrabot(difrex,1) — All
2015-03-11 12:00:03


![][1] [Читать дальше][2]

[1]: //habrastorage.org/files/9c7/fa3/db1/9c7fa3db1bd54325bacc271a2598d909.png
[2]: http://habrahabr.ru/post/252705/#habracut

[>] Обмен данными с использованием MPI. Работа с библиотекой MPI на примере Intel® MPI Library
habra.14
habrabot(difrex,1) — All
2015-03-11 14:00:03


![][1] В этом посте мы расскажем об организации обмена данными с помощью MPI на примере библиотеки Intel® MPI Library. Думаем, что эта информация будет интересна любому, кто хочет познакомиться с областью параллельных высокопроизводительных вычислений на практике. Мы приведем краткое описание того, как организован обмен данными в параллельных приложениях на основе MPI, а также ссылки на внешние источники с более подробным описанием. В практической части вы найдете описание всех этапов разработки демонстрационного MPI-приложения «Hello World», начиная с настройки необходимого окружения и заканчивая запуском самой программы. [Читать дальше →][2]

[1]: //habrastorage.org/files/079/279/18c/07927918c7974ead9b28d869081bd3c7.png
[2]: http://habrahabr.ru/post/251357/#habracut

[>] [recovery mode] Персональные данные пользователей Rozetka.ua в публичном доступе
habra.14
habrabot(difrex,1) — All
2015-03-11 18:00:02


На этот источник данных я наткнулся случайно. По моему, самое время проверить, какие данные отдают пользователям наши с вами проекты. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/5ff/668/7df/5ff6687df23d4561bb7079634e259d0d.png
[2]: http://habrahabr.ru/post/252475/#habracut

[>] [Перевод] Лучшая практика развертывания SSL/TLS, часть 2. Конфигурация
habra.14
habrabot(difrex,1) — All
2015-03-11 18:30:02


Представляем вашему вниманию вторую часть перевода статьи о развертывании SSL/TLS, первую часть можете почитать [тут.][1] 2. Конфигурация Если вы правильно настроили на сервере TLS, то можете быть уверены, что данные вашего сайта корректно отображаются для посетителей сайта, используются только безопасные алгоритмы и все известные уязвимости устранены. 2.2. Используйте безопасные протоколы Существует пять версий протоколов в SSL/TLS семейства: SSL v2, SSL v3, TLS v1.0, TLS v1.1 и TLS v1.2. Из них: • SSL v2 является небезопасным и не должен быть использован. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/usedesk/blog/249575/
[2]: http://habrahabr.ru/post/252747/#habracut

[>] Intel RealSense MeetUp. Все о RealSense для разработчиков — быстро и по делу
habra.14
habrabot(difrex,1) — All
2015-03-11 18:30:02


![][1] Что такое [Intel RealSense][2]? Для технологически подкованных — новый способ взаимодействия человека с компьютером или планшетом, основанный на жестах, анализе видео и речевых командах. Но это еще далеко не все. RealSense может стать хорошей практикой в программировании, ведь там куча нового и интересного. А может — прибыльным бизнесом, поскольку сближение человека и компьютера — общий тренд в развитии цифровой техники. Главное тут — заинтересованность. А чтобы заинтересоваться — нужно увидеть собственными глазами. Вот мы и приглашаем вас на встречу с RealSense. [Читать дальше →][3]

[1]: //habrastorage.org/files/d2a/f5e/1fd/d2af5e1fd5534657bef4db0409d6af09.jpg
[2]: https://software.intel.com/ru-ru/realsense/home
[3]: http://habrahabr.ru/post/252591/#habracut

[>] [Перевод] Оптимизация методов ToArray и ToList путём предоставления количества элементов
habra.14
habrabot(difrex,1) — All
2015-03-11 19:00:03


Методы расширения _ToArray _и _ToList_ — удобный способ быстро преобразовать перечисляемую последовательность (например, Linq-запрос) в массив или в список. Однако, в них есть кое-что беспокоящее меня: оба эти метода очень неэффективны, если они не знают количество элементов в последовательности (что почти всегда происходит, когда вы используете их в Linq-запросе). Давайте сперва рассмотрим метод _ToArray _(_ToList _имеет несколько отличий, но принцип практически такой же). [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252761/#habracut

[>] [Из песочницы] Перспективные матрицы в графическом API или дьявол прячется в деталях
habra.14
habrabot(difrex,1) — All
2015-03-11 19:30:04


В определённый момент у любого разработчика в области компьютерной графики возникает вопрос: как же работают эти перспективные матрицы? Подчас ответ найти очень непросто и, как это обычно бывает, основная масса разработчиков бросает это занятие на полпути. Это не решение проблемы! Давайте разбираться вместе! [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252771/#habracut

[>] [Из песочницы] Зоопарк коммуникационных протоколов для GPS-трекеров (часть 1)
habra.14
habrabot(difrex,1) — All
2015-03-11 20:00:03


Цель данной статьи — познакомить читателя с различными сетевыми протоколами прикладного уровня, которые используются в GPS-трекерах. Практически каждый производитель оборудования для GPS-мониторинга считает своим долгом изобрести новый протокол для взаимодействия между устройством и сервером мониторинга. Часто при разработке оных инженеры прибегают к изощренным решениям для экономии трафика или упрощения жизни разработчикам прошивки устройств. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252715/#habracut

[>] Nginx и https. Получаем класс А+
habra.14
habrabot(difrex,1) — All
2015-03-12 02:30:03


Недавно вспомнилось мне, что есть такой сервис — StartSsl, который совершенно бесплатно раздаёт trusted сертификаты владельцам доменов для личного использования. Да и выходные попались свободные. В общем сейчас напишу, как в nginx настроить HTTPS, чтобы при проверке в SSL Labs получить рейтинг А+ и обезопасить себя от последних багов с помощью выпиливания SSL. Итак приступим. Будем считать, что у вы уже зарегистрировались на StartSsl, прошли персональную проверку и получили вожделенный сертификат. Для начала я опубликую итоговый конфиг, а после этого, разберу его. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252821/#habracut

[>] Оптимизация денежных расходов (пересчет в часы и обратно)
habra.14
habrabot(difrex,1) — All
2015-03-12 02:30:03


Осенью 2014 мне катастрофически не хватало времени и ушёл в глубокие минуса по кредитам. Тогда у меня и появилась задача: как мне научиться экономить время и деньги. Ответ оказался прост: нужно **экономить время и деньги одновременно**. Ведь часто бывает, что экономя деньги — тратишь много времени, или экономя время — тратишь деньги. Тогда и понадобилось переводить время в деньги и обратно, чтобы оптимизировать их потребление. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/95f/0f5/743/95f0f5743b4d45efa2e9e7dadcad6390.jpg
[2]: http://habrahabr.ru/post/252543/#habracut

[>] Можно ли верить коду в редакторе?
habra.14
habrabot(difrex,1) — All
2015-03-12 08:30:03




def maps():
print "maps maps maps"

def spam():
print "Erasing everything..."
print "done."


Вы знаете, что если очень долго смотреть на следующую строку, то там останутся только три слова «spam»?

s = "spam‮" ,spam ,"‬spam"
s[1]()


Действительно, первая строка очень необычная. В целом, в результате этого кода будет выполнена зловредная функция spam. [Посмотреть на ideone][1]. (Для тех кто не знает: там внизу есть вывод выполнившейся программы) [Читать дальше →][2]

[1]: http://ideone.com/GuSU4F
[2]: http://habrahabr.ru/post/252813/#habracut

[>] Книги по Swift
habra.14
habrabot(difrex,1) — All
2015-03-12 14:00:03


Добрый день, Хабровчане! Прошло уже достаточно времени, но книг на русском языке про Свифт так и не появилось. Издательству «Питер» интересно ваше мнение о том какой должна быть эта книга. Примите участие в опросе и помогите нам выбрать идеальную книгу. 1. Книга для начинающих. Например такая Swift for Beginners: Develop and Design [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252193/#habracut

[>] Как завести инстансы в Google Cloud, настроить доступы и подцепить к нему Bucket Google. Howto
habra.14
habrabot(difrex,1) — All
2015-03-12 14:00:03


Добра всем читающим! Этот хау-ту размещаю по горячим следам с целью, во-первых, не забыть как делать, а во-вторых, с целью помочь кому-либо создавать инстансы в облаке Google. Решаемые задачи:

* три инстанса в разных регионах зоны Европа
* общий диск для двух инстансов
* балансировщик нагрузки по http
* облачная база MySQL
* из третьего инстанса выкладывать файлы в Bucket Google

![][1] [Теперь обо всем по порядку][2]

[1]: //habrastorage.org/files/36d/ecf/27e/36decf27ed7c4979b9c77d9e2292cefc.png
[2]: http://habrahabr.ru/post/252799/#habracut

[>] [Из песочницы] Работа с метасетевыми структурами на Python – библиотека MetaNet
habra.14
habrabot(difrex,1) — All
2015-03-12 14:00:03




> Когда видите единственное решение – спросите других





В данной статье я хотел бы рассказать о некоторых предпосылках появления [инструмента][1] для моделирования метасетей.

## Автоматизация обучения

Изначально возникла проблема автоматизации обучения искусственных нейронных сетей с определёнными временными ограничениями. На пути ее решения был предложен подход к использованию оппозитных нейронных сетей [1]. Суть в том, что бы обучать две сети, одну как обычно: [Читать дальше →][2]

[1]: https://sourceforge.net/p/meta-net-project/code/HEAD/tree/
[2]: http://habrahabr.ru/post/252781/#habracut

[>] [Перевод] Отслеживание устройств через пассивное прослушивание WiFi
habra.14
habrabot(difrex,1) — All
2015-03-12 14:00:03


За последний год мне попадалось много историй использования пассивного отслеживания WiFi. В основном все сосредотачиваются на вопросах безопасности и приватности, но мало кто рассказывает, как это работает. Я сделал целый проект Casual Encounters и могу поделиться информацией о работе системы, о том, как избежать слежки, и как её построить (в исследовательских целях, разумеется). Не пробуйте повторить это дома. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252831/#habracut

[>] Если вы решили перейти с PHP на Python, то к чему следует подготовиться
habra.14
habrabot(difrex,1) — All
2015-03-12 16:00:03


Думали ли вы когда-нибудь о том, что однажды слишком быстро втянулись в веб-программирование на PHP? И вот уже прошло много лет, у вас хороший опыт, и вы не думаете ни о каких других способах „делать“ веб, кроме как на PHP. Может быть, у вас возникают сомнения в правильности выбора, однако непонятно, как найти способ быстро его проверить. А хочется примеров, хочется знать, как изменятся конкретные аспекты деятельности. Сегодня я попробую ответить на вопрос: **«А что если вместо PHP писать на Python?»**. Сам я долгое время задавался этим вопросом. Я писал на PHP 11 лет и даже являюсь сертифицированным специалистом. Я научился его «готовить» так, чтобы он работал в точности, как мне надо. И когда я в очередной раз читал на Хабре перевод статьи о том, [как всё в PHP плохо][1], я просто недоумевал. Однако подвернулся случай пересесть на Ruby, а потом и на Python. На последнем я и остановился, и теперь попробую рассказать вам PHP-шникам, как нам питонистам живётся. ![][2] [Python с точки зрения PHP-программиста...][3]

[1]: http://habrahabr.ru/post/142140/
[2]: //habrastorage.org/files/07c/e61/6dc/07ce616dc14c4f49895abe06374ac3f3.png
[3]: http://habrahabr.ru/post/221035/#habracut

[>] Перезапуск демона на PHP без потери соединений к нему
habra.14
habrabot(difrex,1) — All
2015-03-12 18:00:02


![][1] На различных конференциях мы неоднократно рассказывали про наше облако для CLI-скриптов ([видеозапись доклада][2], [слайды][3]). Облако предназначено для того, чтобы запускать различные PHP-скрипты по расписанию или через API. Как правило, эти скрипты обрабатывают очереди, и нагрузка «размазывается» приблизительно по 100 серверам. Ранее мы акцентировали внимание на том, как реализована управляющая логика, которая отвечает за равномерное распределение нагрузки по такому количеству серверов и генерацию заданий по расписанию. Но, помимо этого, нам потребовалось написать демон, который был бы способен запускать наши PHP-скрипты в CLI и следить за статусом их исполнения. Изначально он был написан на Си, как и все остальные демоны в нашей компании. Однако мы столкнулись с тем, что существенная часть процессорного времени (около 10%) тратилась, по сути, впустую: это запуск интерпретатора и загрузка «ядра» нашего фреймворка. Поэтому, чтобы иметь возможность инициализировать интерпретатор и наш фреймворк только один раз, было принято решение переписать демон на PHP. Мы назвали его Php_rock_syd (по аналогии с Phproxyd — PHP Proxy Daemon, демоном на Си, который у нас был до этого). Он принимает запросы на запуск отдельных классов и делает fork() на каждый запрос, а также умеет сообщать о статусе исполнения каждого из запусков. Такая архитектура во многом похожа на модель веб-сервера Apache, когда вся инициализация делается один раз в «мастере» и «дети» занимаются уже именно обработкой запроса. В качестве дополнительной «плюшки» мы получаем возможность включить opcode cache в CLI, который будет правильно работать, поскольку все дети наследуют ту же область общей памяти, что и мастер-процесс. Чтобы уменьшить задержки при обработке запроса на запуск, можно делать fork() заранее (prefork-модель), но в нашем случае задержки на fork() составляют около 1 мс, что нас вполне устраивает. [Читать дальше →][4]

[1]: //habrastorage.org/files/575/7a7/d3e/5757a7d3eabe48deb6dc624cd61470a8.jpg
[2]: http://www.youtube.com/watch?v=OmN3ltIyV8M
[3]: http://www.slideshare.net/BadooDev/badoo-hl
[4]: http://habrahabr.ru/post/252809/#habracut

[>] Атака Telegram за 2^64 операций, и почему суперзлодею она не нужна
habra.14
habrabot(difrex,1) — All
2015-03-12 18:00:02


Прошлой весной мы с Juliano Rizzo ([@julianor][1]) придумали криптографическую атаку на «секретный» чат MTProto из Telegram, которая может быть осуществлена приблизительно за 2^64 операций. Атака осуществляется с позиции [человека посередине][2] на серверах Telegram. Сообщения, отправляемые пользователям вне секретного чата, сохраняются на серверах Telegram таким образом, что позволяют компании просматривать содержимое сообщений и передавать их третьим лицам. Так происходит всегда, если беседы могут перемещаться между устройствами (например между телефоном и компьютером). Эти чаты не являются приватными, то есть пользователи должны быть очень внимательны, чтобы случайно не отправить инкриминирующую информацию или картинки без включения секретного чата. Групповые чаты к тому же вообще не используют ent-to-end шифрование. Более того, когда кто-нибудь входит в такой чат, он сразу получает доступ к ранее отправленным несекретным сообщениям. Мы к этому вернемся чуть позже. [Читать дальше →][3]

[1]: http://twitter.com/julianor
[2]: https://ru.wikipedia.org/wiki/%D0%A7%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA_%D0%BF%D0%BE%D1%81%D0%B5%D1%80%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5
[3]: http://habrahabr.ru/post/252887/#habracut

[>] Можно ли верить коду в редакторе? + и в консоли
habra.14
habrabot(difrex,1) — All
2015-03-12 18:00:02




def maps():
print "maps maps maps"

def spam():
print "Erasing everything..."
print "done."


Вы знаете, что если очень долго смотреть на следующую строку, то там останутся только три слова «spam»?

s = "spam‮" ,spam ,"‬spam"
s[1]()


Действительно, первая строка очень необычная. В целом, в результате этого кода будет выполнена зловредная функция spam. [Посмотреть на ideone][1]. (Для тех кто не знает: там внизу есть вывод выполнившейся программы) [Читать дальше →][2]

[1]: http://ideone.com/GuSU4F
[2]: http://habrahabr.ru/post/252813/#habracut

[>] [Перевод] Атака Telegram за 2^64 операций, и почему суперзлодею она не нужна
habra.14
habrabot(difrex,1) — All
2015-03-12 18:30:02


Прошлой весной мы с Juliano Rizzo ([@julianor][1]) придумали криптографическую атаку на «секретный» чат MTProto из Telegram, которая может быть осуществлена приблизительно за 2^64 операций. Атака осуществляется с позиции [человека посередине][2] на серверах Telegram. Сообщения, отправляемые пользователям вне секретного чата, сохраняются на серверах Telegram таким образом, что позволяют компании просматривать содержимое сообщений и передавать их третьим лицам. Так происходит всегда, если беседы могут перемещаться между устройствами (например между телефоном и компьютером). Эти чаты не являются приватными, то есть пользователи должны быть очень внимательны, чтобы случайно не отправить инкриминирующую информацию или картинки без включения секретного чата. Групповые чаты к тому же вообще не используют ent-to-end шифрование. Более того, когда кто-нибудь входит в такой чат, он сразу получает доступ к ранее отправленным несекретным сообщениям. Мы к этому вернемся чуть позже. [Читать дальше →][3]

[1]: http://twitter.com/julianor
[2]: https://ru.wikipedia.org/wiki/%D0%A7%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA_%D0%BF%D0%BE%D1%81%D0%B5%D1%80%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5
[3]: http://habrahabr.ru/post/252911/#habracut

[>] [Из песочницы] Ошибка в формуле проверки условия Делоне
habra.14
habrabot(difrex,1) — All
2015-03-12 20:30:02




#### Введение

Ранним воскресным утром я уже третий день сидел за отладкой программы для триангуляции результата лазерного сканирования. Лазерный скан представляет из себя набор трехмерных точек. В результате работы программы нужно объединить точки в непересекающиеся полигоны, таким образом создав модель поверхности. Функцию за функцией я пересчитывал на листочке и, наконец, добрался до функции проверки выполнения [условия Делоне][1]. По всей видимости, ошибка затаилась где-то в ней. При детальном разборе оказалось, что формула, указанная в огромном количестве книг про триангуляцию Делоне, не всегда дает верный результат. Подробности под катом. ![image][2] [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B8%D0%B0%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%D0%94%D0%B5%D0%BB%D0%BE%D0%BD%D0%B5
[2]: http://www.pandia.ru/wp-content/uploads/2010/12/wpid-image0183.jpg
[3]: http://habrahabr.ru/post/252925/#habracut

[>] Можно ли верить коду в редакторе? bi-directional текст
habra.14
habrabot(difrex,1) — All
2015-03-12 22:00:02




def maps():
print "maps maps maps"

def spam():
print "Erasing everything..."
print "done."


Вы знаете, что если очень долго смотреть на следующую строку, то там останутся только три слова «spam»?

s = "spam‮" ,spam ,"‬spam"
s[1]()


Действительно, первая строка очень необычная. В целом, в результате этого кода будет выполнена зловредная функция spam. [Посмотреть на ideone][1]. (Для тех кто не знает: там внизу есть вывод выполнившейся программы) [Читать дальше →][2]

[1]: http://ideone.com/GuSU4F
[2]: http://habrahabr.ru/post/252813/#habracut

[>] [Из песочницы] Звуковые отпечатки: распознавание рекламы на радио
habra.14
habrabot(difrex,1) — All
2015-03-13 01:00:03


Из этой статьи вы узнаете, что распознавание даже коротких звуковых фрагментов в зашумленной записи — вполне решаемая задача, а прототип так вообще реализуется за 30 строчек кода на Python. Мы увидим, как тут помогает преобразование Фурье, и наглядно посмотрим, как работает алгоритм поиска и сопоставления отпечатков. Статья будет полезна, если вы сами хотите написать подобную систему, или вам интересно, как она может быть устроена. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252937/#habracut

[>] лжеотождествление электровиолончели
habra.14
habrabot(difrex,1) — All
2015-03-13 09:30:03


Когда Алексей [TheShade][1] Шипилёв [рассказывал][2] про особенности поведения Java-строк с нулевым значением хэшкода, он приводил в качестве примера строку `"лжеотождествление электровиолончели"`. Когда FindBugs [предупреждает][3] вас о проблемах с вычислением абсолютного значения хэшкода, равного Integer.MIN\_VALUE, он приводит примеры строк, имеющих такой хэшкод — `"polygenelubricants"` или `"DESIGNING WORKHOUSES"`. Откуда взялись эти примеры? Как самому составить красивую строку с заданным наперёд хэшкодом? Различных хэшкодов существует 2 — немногим более четырёх миллиардов, а слов в человеческом языке — порядка ста тысяч. Найти одно слово с нужным хэшкодом почти нереально, а вот сочетание из двух слов вполне можно. Если добавить ещё вариации вроде предлогов, то появится выбор. Перебирать все возможные комбинации долго, но можно процесс оптимизировать, выполнив несложные преобразования над формулой хэшкода строки. Давайте напишем генератор словосочетаний с заданным хэшкодом. Писать будем на чистой Java 8, в модном нынче функциональном стиле. [Читать дальше →][4]

[1]: http://habrahabr.ru/users/theshade/
[2]: http://shipilev.net/talks/joker-Oct2014-string-catechism.pdf
[3]: http://findbugs.sourceforge.net/bugDescriptions.html#RV_ABSOLUTE_VALUE_OF_HASHCODE
[4]: http://habrahabr.ru/post/252671/#habracut

[>] Google Code закрывается и предлагает всем перейти на GitHub
habra.14
habrabot(difrex,1) — All
2015-03-13 09:30:03


Всем владельцам проектов на Google Code пришло соответствующее письмо. Сокращенный перевод новости:

> Начиная с сегодняшнего дня, мы прекращаем возможность создания новых проектов на Google Code. Сервис будет закрыт примерно через 10 месяцев к 25 января 2016 года. Ниже перечислены ссылки на инструменты миграции, спроектированные для того, чтобы помочь вам перенести ваши проекты.
>
>
>
>
>
> Сроки:
>
>
>
> 12 Марта, 2015 — Создание новых проектов отключено.
>
>
>
> 24 Августа, 2015 — Переход в режим «только для чтения».
>
>
>
> 25 Января, 2016 — Закрытие сервиса. Будет доступно скачивание архива проекта включая исходный код, багтрекер и вики. Архив будет доступен до конца 2016 года.
>
>
>
>
>
> Гугл будет продолжать предоставлять Git и Gerrit хостинг для таких проектов как Android и Chrome. Мы по-прежнему будем поддерживать зеркала таких проектов, как Eclipse, kernel.org и другие.
>
>

[Читать дальше →][1]

[1]: http://habrahabr.ru/post/252949/#habracut

[>] [Перевод] 3/14/15 9:26:53 Празднование «Дня числа Пи» века, а также рассказ о том, как получить свою очень личную частичку числа пи
habra.14
habrabot(difrex,1) — All
2015-03-13 11:30:02






_Перевод поста Стивена Вольфрама (Stephen Wolfram) "[Pi or Pie?! Celebrating Pi Day of the Century (And How to Get Your Very Own Piece of Pi)][1]" Выражаю огромную благодарность тем, кто помог мне сделать этот перевод: [Курбану Магомедову][2] и [Ольге Лавренюк][3]._ Эта суббота будет «Днем числа Пи» века. Дата [3/14/15][4] в формате месяц/день/год задает первые цифры числа [π=3.1415…][5] А 9:26:53.589… утра будет «супер моментом дня числа Пи».



Благодаря [_Mathematica_][6] и [Wolfram|Alpha][7], я уверен, что [наша компания][8] выдала миру больше раз число π, чем какая-либо другая организация в истории. Поэтому, конечно, мы должны сделать [нечно особенное][9] (мероприятие SXSW) для этого особенного Дня числа Пи. [][10]



[Читать дальше →][11]

[1]: http://blog.wolfram.com/2015/03/12/pi-or-pie-celebrating-pi-day-of-the-centuryand-how-to-get-your-very-own-piece-of-pi/
[2]: http://vk.com/iamkurban
[3]: http://vk.com/lav_olga
[4]: http://www.wolframalpha.com/input/?i=3%2F14%2F15
[5]: http://www.wolframalpha.com/input/?i=pi
[6]: http://www.wolfram.com/mathematica/
[7]: http://www.wolframalpha.com/
[8]: http://www.wolfram.com/
[9]: http://schedule.sxsw.com/2015/events/event_OE03834
[10]: http://schedule.sxsw.com/2015/events/event_OE03834
[11]: http://habrahabr.ru/post/252947/#habracut

[>] [Перевод] Введение в fetch
habra.14
habrabot(difrex,1) — All
2015-03-13 11:30:03




# Прощай, XMLHttpRequest!

`fetch()` позволяет вам делать запросы, схожие с XMLHttpRequest (XHR). Основное отличие заключается в том, что Fetch API использует [Promises (Обещания)][1], которые позволяют использовать более простое и чистое API, избегать катастрофического количества callback'ов и необходимости помнить API для XMLHttpRequest. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/209662/
[2]: http://habrahabr.ru/post/252941/#habracut

[>] Лжеотождествление электровиолончели
habra.14
habrabot(difrex,1) — All
2015-03-13 11:30:03


Когда Алексей [TheShade][1] Шипилёв [рассказывал][2] про особенности поведения Java-строк с нулевым значением хэшкода, он приводил в качестве примера строку `"лжеотождествление электровиолончели"`. Когда FindBugs [предупреждает][3] вас о проблемах с вычислением абсолютного значения хэшкода, равного Integer.MIN\_VALUE, он приводит примеры строк, имеющих такой хэшкод — `"polygenelubricants"` или `"DESIGNING WORKHOUSES"`. Откуда взялись эти примеры? Как самому составить красивую строку с заданным наперёд хэшкодом? Различных хэшкодов существует 2 — немногим более четырёх миллиардов, а слов в человеческом языке — порядка ста тысяч. Найти одно слово с нужным хэшкодом почти нереально, а вот сочетание из двух слов вполне можно. Если добавить ещё вариации вроде предлогов, то появится выбор. Перебирать все возможные комбинации долго, но можно процесс оптимизировать, выполнив несложные преобразования над формулой хэшкода строки. Давайте напишем генератор словосочетаний с заданным хэшкодом. Писать будем на чистой Java 8, в модном нынче функциональном стиле. [Читать дальше →][4]

[1]: http://habrahabr.ru/users/theshade/
[2]: http://shipilev.net/talks/joker-Oct2014-string-catechism.pdf
[3]: http://findbugs.sourceforge.net/bugDescriptions.html#RV_ABSOLUTE_VALUE_OF_HASHCODE
[4]: http://habrahabr.ru/post/252671/#habracut

[>] [Перевод] Создание пакетов APK x86 и ARM APK с помощью компилятора Intel® и GNU gcc
habra.14
habrabot(difrex,1) — All
2015-03-13 13:00:02


Существуют устройства Android на процессорах с архитектурами наборов инструкций (ISA) ARM или x86. Различные архитектуры наборов инструкций не имеют двоичной совместимости, поэтому приложение, содержащее нативный код, должно содержать нативные библиотеки для каждой архитектуры. Одним из механизмов распространения таких приложений являются так называемые «толстые» пакеты приложений Android («толстые» APK). В этой статье содержатся пошаговые инструкции по созданию такого «толстого» пакета APK, включающего независимые от архитектуры файлы для виртуальной машины Dalvik (Dalvik, 2013), а также библиотеки для разных архитектур. В статье описывается сборка нативной библиотеки приложения x86 с помощью Intel® Integrated Native Developer Experience (INDE). [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252883/#habracut

[>] [Из песочницы] Практические аспекты использования DHCP relay+option82
habra.14
habrabot(difrex,1) — All
2015-03-13 13:00:03


В этой статье я хотел бы осветить практические аспекты использования **DHCP relay+option82**_ как возможность авторизации (в дальнейшем именно эта связка будет иметься ввиду)_, а так же привести примеры конфигурации свитча **Dlink DES-3200-10** и **isc-dhcp-server**. Практически во всех статьях dhcp relay трактуют так: «можно вынести dhcp-сервер за пределы широковещательного домена». Однако почему-то не упоминают или почти не упоминают, что это хорошая возможность избавиться от широковешательных запросов в пределах того же самого широковешательного домена. И самое главное, на что акцентирую внимание — мы можем быть уверены, благодаря option82, что запрос пришёл именно со свитча с заданным маком и именно с порта с указанным номером, а следовательно — таким образом можно «авторизовать» пользователя. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252929/#habracut

[>] [Перевод] Как получить статус суперпользователя с помощью уязвимости DRAM: Техника Rowhammer
habra.14
habrabot(difrex,1) — All
2015-03-13 15:00:02


![][1] Исследователи информационной безопасности из Google создали эксплойт, который эксплуатирует физические слабости чипов DDR-памяти определенных типов, для повышения прав не-доверенных пользователей на Intel-совместимых компьютерах, работающих под Linux. В [посте][2] в блоге проекта Project Zero специалисты Google описали технику эксплуатации уязвимости, которая заключается в изменении значений отдельных битов данных (bit flipping), хранящихся в модулях чипов DDR3, которые называют DIMM. В прошлом году исследователи [доказали][3], что подобная подмена битов может быть осуществлена с помощью воздействия на небольшие участки памяти, которое приводит к изменению хранящихся там данных. Представители Google показали, как все это может быть использовано для реальной атаки. [Читать дальше →][4]

[1]: //habrastorage.org/files/bc2/111/6d2/bc21116d2b5a4bbf83adf2e3f6d6594f.jpg
[2]: http://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html
[3]: http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf
[4]: http://habrahabr.ru/post/252991/#habracut

[>] Туториал по Coub API
habra.14
habrabot(difrex,1) — All
2015-03-13 16:30:02


На днях мы выпустили [Coub API][1]. Теперь можно делать приложения, смотреть ленту, лайкать, рекобить, то есть практически все, что можно сделать на сайте, можно делать через API. Но самое главное — теперь можно из сторонних приложений через API создавать кобы. В этом туториале я покажу, как можно сделать простейший клиент коба на Ruby on Rails. Приложение позволяет залогиниться через коб и сгенерить такой коб с любым текстом:




Рабочая версия этого приложения лежит по адресу [fantozzi.dev2.workisfun.ru][2], код приложения из этого туториала можно посмотреть на Гитхабе: [github.com/igorgladkoborodov/memegenerator][3] [Подробности][4]

[1]: http://coub.com/dev/docs/Coub+API/Overview
[2]: http://fantozzi.dev2.workisfun.ru
[3]: https://github.com/igorgladkoborodov/memegenerator
[4]: http://habrahabr.ru/post/252803/#habracut

[>] [Из песочницы] Эксплуатируем root-уязвимость в роутерах Asus
habra.14
habrabot(difrex,1) — All
2015-03-13 19:30:02


В начале 2015 года компания Asus исправила критичнейшую уязвимость в своих роутерах. «Дыра» была в службе по имени _infosvr_, использующейся утилитами Asus для облегчения настройки роутера путём его автоматического обнаружения в локальной сети. Уязвимость позволяла выполнять любые команды с правами root (ведь _infosvr_ тоже _root_), что давало злоумышленнику полный контроль над системой. Но Asus выпустила исправленные прошивки. Теперь это всё в прошлом. Или нет? Хм… А как часто обыватели обновляют прошивки на своих роутерах? ![][1] Прошу под кат за подробностями, историей обнаружения, исследованиями, инструкциями и… эксплоитами. [Читать дальше →][2]

[1]: //habrastorage.org/files/b44/66e/905/b4466e90541a4ab68f04b80e07cf6417.jpg
[2]: http://habrahabr.ru/post/253013/#habracut

[>] Как крадут деньги, которых нет. Или кое-что новенькое о криптовалютах
habra.14
habrabot(difrex,1) — All
2015-03-13 22:00:03


Привет, Хабр! Безусловно, ты знаешь о криптовалютах очень много, но сегодня мы принесли тебе кое-что новенькое: исследование вредоноса, созданного для кражи кошельков 80 криптовалют, включая биткойн вместе со всеми реквизитами доступа к ним. Обнаружили мы его в ходе программы непрерывного мониторинга безопасности сети Интернет и тут же разобрали на запчасти несколько семплов вредоноса. Таких комбайнов по автоматизированному уводу криптокошельков у владельцев пока мало, но будет больше, мы уверены. Ниже мы расскажем о том, как вредонос работает, и как не оказаться в группе риска. И конечно ещё раз просуммируем информацию о самих криптомонетах и их родственниках. Кстати, финансовые регуляторы считают биткойн и всех его друзей валютными суррогатами, и мы ни в коем случае не пропагандируем их использование, а наоборот, призываем пользоваться фиатными деньгами как надёжным и стабильным платёжным инструментом. (Тут мог бы быть смайл) [Читать дальше →][1]

[1]: http://habrahabr.ru/post/252963/#habracut

[>] [Перевод] Последовательности в Perl 6 / Rakudo
habra.14
habrabot(difrex,1) — All
2015-03-14 04:00:03


В Perl 6 введён новый оператор … для задания последовательностей. Вот, как это работает:

my @even-numbers := 0, 2 ... *; # арифметическая последовательность
my @odd-numbers := 1, 3 ... *;
my @powers-of-two := 1, 2, 4 ... *; # геометрическая последовательность


Пример использования:

> my @powers-of-two := 1, 2, 4 ... *; 1;
1
> @powers-of-two[^10]
1 2 4 8 16 32 64 128 256 512


[Читать дальше →][1]

[1]: http://habrahabr.ru/post/253047/#habracut

[>] Метаоператоры X и Z в Perl 6
habra.14
habrabot(difrex,1) — All
2015-03-15 01:00:03


Одна из новых идей Perl 6 – метаоператор. Это оператор, который можно скомбинировать с обычным оператором, изменив его поведение. Таких метаоператоров есть несколько штук, но в этой статье мы рассмотрим только X и Z. Оператор X вы могли видеть в роли инфиксного комбинирования. Он комбинирует списки, по элементу из каждого, во всех возможных комбинациях:

> say ((1, 2) X ('a', 'b')).perl
((1, "a"), (1, "b"), (2, "a"), (2, "b"))


Однако, запись `infix: `. И действительно, можно написать:

> say ((1, 2) X, (10, 11)).perl
((1, 10), (1, 11), (2, 10), (2, 11))


Что произойдёт, если мы применим Х к другому инфиксному оператору? Например, к `infix: ` [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253077/#habracut

[>] [Перевод] Использовать наши программы весело
habra.14
habrabot(difrex,1) — All
2015-03-15 01:30:02


Эти два вымышленных парня сильно повлияли на меня в плане программирования: [![image][1]][2] Вместо предоставления гарантий на совместимость или безошибочную работу, софт от Братьев Бигл обещал кое-что другое: веселье. [![image][3]][4] Игры со странными дискетами от Братьев Бигл на компьютере Apple II в средней школе, и «шведский стол» всяческих программ, которые были написаны для них, стали для меня обрядом посвящения. [Читать дальше →][5]

[1]: http://blog.codinghorror.com/content/images/2015/03/beagle_bros_micro_software_.png
[2]: http://en.wikipedia.org/wiki/Beagle_Bros
[3]: http://blog.codinghorror.com/content/images/2015/03/beagle-bros-statement-of-quality.png
[4]: http://stevenf.com/beagle-collection/
[5]: http://habrahabr.ru/post/253083/#habracut

[>] [Перевод] Создание объектов унаследованных от null на Node.js
habra.14
habrabot(difrex,1) — All
2015-03-15 14:30:02


_От переводчика: поприще переводчика для меня ново, по этому прошу вас не судить строго._ Когда-то, читав [Принципы Объектно-ориентированного _JavaScript_ за авторством _Nicholas Zakas_][1], я наткнулся на совет об использовании **Object.create()**, для создания объектов унаследованных от **null.** Такой объект не унаследует **Object.prototype** и, соответственно, не будет иметь его, **Object.prototype**, методов. _Zakaz_ предположил, что это может быть использовано для создания безопасного объекта «_cache_». Мне очень понравилась эта идея, но в соответствии с _MDN_ (_Mozilla Developer Network_), **Object.create()** не поддерживается до _IE9_, что делает этот метод более требовательным при использовании в браузере. Но в _Node.js_, на сервере, этот метод поддерживается полностью. [Читать дальше →][2]

[1]: http://www.bennadel.com/blog/2599-the-principles-of-object-oriented-javascript-by-nicholas-zakas.htm
[2]: http://habrahabr.ru/post/253051/#habracut

[>] Перевод книги «Выразительный Javascript» в pdf
habra.14
habrabot(difrex,1) — All
2015-03-15 16:30:05


![][1]Хабр, привет. Не так давно [SLY\_G][2] опубликовал цикл переводов книги Eloquent Javascript (за что ему большое спасибо). В комментариях раз за разом поднимались вопросы о сборке переводов книгу, что собственно я и сделал при помощи сервиса Gitbook- [Выразительный Javascript][3], pdf, ePub, mobi и онлайн версия. [Репозитарий книги][4], pull requests принимаются. [Читать дальше →][5]

[1]: //habrastorage.org/files/cee/5d0/2cf/cee5d02cfbcf4348882dcfe77ac619bf.png "Выразительный Javascript"
[2]: http://habrahabr.ru/users/sly_g/
[3]: http://karmazzin.gitbooks.io/eloquentjavascript_ru/
[4]: https://github.com/karmazzin/eloquentjavascript_ru
[5]: http://habrahabr.ru/post/253101/#habracut

[>] Лекции Технопарка. 1 семестр. С/С++
habra.14
habrabot(difrex,1) — All
2015-03-15 17:30:02


Мы продолжаем наши еженедельные публикации учебных материалов Технопарка. Предыдущие лекции были посвящены [web-технологиям][1] в целом, а также [алгоритмам и структурам данных][2]. В третьем блоке лекций рассказывается о языках С и С++.

#### **Лекция 1. Язык С. Основы организации и использования оперативной и сверхоперативной памяти**

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




[Читать дальше →][3]

[1]: http://habrahabr.ru/company/mailru/blog/248745/
[2]: http://habrahabr.ru/company/mailru/blog/251561/
[3]: http://habrahabr.ru/post/253095/#habracut

[>] Age of JIT compiling. Part II. CLR is watching you
habra.14
habrabot(difrex,1) — All
2015-03-15 18:30:03


Продолжая [тему JIT-компиляции][1] .NET'a, сегодня мы рассмотрим диспетчеризацию методов у интерфейсов, generics (как классов, так и отдельных методов вместе с реальными сигнатурами); производить отладку релизных сборок с оптимизациями; разберемся с истинным предназначением типа System.\_\_Canon (это не то, что Вы подумали). [Читать дальше →][2]

[1]: http://habrahabr.ru/post/248775/
[2]: http://habrahabr.ru/post/253105/#habracut

[>] Стеганография в XXI веке. Цели. Практическое применение. Актуальность
habra.14
habrabot(difrex,1) — All
2015-03-15 23:30:03


Я думаю каждый хоть раз слышал о стеганографии. Стеганография (τεγανός — скрытый + γράφω — пишу, дословно ** и я хотел бы обсудить следующие вопросы:

1. **Цели стеганографии** — на самом деле их три, а не одна.
2. **Практическое применение стеганографии** — я насчитал 15.
3. **Место стеганографии в XXI веке** — я считаю, что с технической точки зрения современный мир уже подготовлен, но _«социально»_ стеганография пока «запаздывает».

Я постарался обобщить мои исследования по данному вопросу. (Это значит, что текста много) Надеюсь на разумную критику и советы со стороны хабросообщества. [Осторожно. Много текста.][11]

[1]: http://habrahabr.ru/post/187402/
[2]: http://habrahabr.ru/post/60726/
[3]: http://habrahabr.ru/post/112976/
[4]: http://habrahabr.ru/post/128327/
[5]: http://habrahabr.ru/post/234877/
[6]: http://patents.com/search?top_keyword=steganography&keyword=steganography
[7]: http://www.freepatent.ru/search?searchid=2002563&text=%D1%81%D1%82%D0%B5%D0%B3%D0%B0%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F&web=0#
[8]: http://www.freshpatents.com/-dt20150305ptan20150059438.php
[9]: https://yadi.sk/i/Ge-OfBM-fGW8d
[10]: //habrastorage.org/files/154/871/302/154871302a1347e9b09233b61acb06da.jpeg
[11]: http://habrahabr.ru/post/253045/#habracut

[>] Сделаем код чище: Что можно исправить в ядре Linux
habra.14
habrabot(difrex,1) — All
2015-03-16 00:00:02


Наверняка многие хотели бы попробовать что-то изменить в ядре Linux к лучшему, но не знают с чего начать. Я хочу описать несколько проблем, исправить которые под силу каждому, и на примере показать путь от нахождения проблемы до опубликования её исправления в списке рассылки. По ходу повествования читатель познакомится с некоторыми вспомогательными утилитами. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253123/#habracut

[>] Результаты Radare Summer of Code 2014 и организация нового RSoC/GSoC 2015
habra.14
habrabot(difrex,1) — All
2015-03-16 04:00:02


Во-первых, хочу отчитаться по прошлому [RSoC'14][1], поблагодарить аудиторию хабра за ту помощь, позволившую нам организовать это мероприятие. Благодаря тому, что не было необходимости следовать правилам Google, мы смогли изменить двух «официальных» участников «на лету». В прошлом году мы выбрали [двух официальных участников и 6 «неофициальных» (без денежного вознаграждения)][2]. Однако, в процессе продвижения кодинга осталось лишь трое неофициальных участников. Но, так как им успешно удалось завершить свои задания, мы поделили собранные деньги поровну между ними (порядка $700 на человека). Рассмотрим задания [поподробнее][3]: Два задания не были выполнены/завершены — это полный перевод всего фреймворка на использование [базы данных sdb][4] и доводка до ума [webui][5]. С другой стороны, три задания были завершены успешно, и на данный момент весь код находится в основной ветке. ![][6]Во-первых, это поддержка парсинга сложных структур и отображение их в необходимом формате, с помощью команды pf и парсера описания данных на языке Си (struct/union, etc). Во-вторых, это поддержка загрузки и использования сигнатур формата [FLIRT (из IDA Pro)][7], а также интеграция с [Yara][8]. Благодаря тому, что это задание было успешно выполнено, radare2 может быть использован для анализа malware с использованием существующих баз сигнатур, накопленных за годы работы с IDA Pro и Yara. Код интеграции с Yara вынесен в [отдельный репозиторий][9]. Ну и последнее успешно выполненное задание — это поддержка [PDB][10]. Основное отличие от многих отладчиков и дизассемблеров (кроме IDA Pro) — это парсинг формата самостоятельно, без использования вызовов системных библиотек Windows. Кроме того, с прошлого года значительно улучшилась ситуация с документацией: [radare.today/radare2-is-documented/][11] [Что же ждет нас в этом году?][12]

[1]: http://habrahabr.ru/post/218969/
[2]: http://radare.today/rsoc-selections-results/
[3]: http://radare.today/the-rsoc-is-over/
[4]: http://radare.today/exploring-the-database/
[5]: http://cloud.rada.re/p/
[6]: //habrastorage.org/files/3d5/a53/643/3d5a53643ece49f3b54bd04d39949127.png
[7]: https://www.hex-rays.com/products/ida/tech/flirt/in_depth.shtml
[8]: https://plusvic.github.io/yara/
[9]: https://github.com/radare/radare2-extras/tree/master/yara
[10]: https://support.microsoft.com/en-us/kb/121366
[11]: http://radare.today/radare2-is-documented/
[12]: http://habrahabr.ru/post/252905/#habracut

[>] [Перевод] Как обойти двух факторную аутенфикацию Authy с ../sms
habra.14
habrabot(difrex,1) — All
2015-03-16 08:00:05


![image][1] С помощью простого ввода ../sms можно было обойти второй фактор на сайтах использующих 2FA через authy.com ([а их довольно много][2]) Самое интересное что такая досадная уязвимость появилась не по вине Authy, да и нашел я всю эту цепочку багов с большой удачей. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/6b4/d30/6b6/6b4d306b62deeff761fda8bc6473d3cf.png
[2]: https://www.authy.com/businesses
[3]: http://habrahabr.ru/post/253137/#habracut

[>] [Перевод] Лексические переменные в Perl 6
habra.14
habrabot(difrex,1) — All
2015-03-16 11:30:03


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

{
my $var;
# $var доступна тут
}
# $var а тут недоступна


Что же в этом интересного? [Читать дальше →][1]

[1]: http://habrahabr.ru/post/253133/#habracut

Pages: 1 ... 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 41