RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 37
[>] [Из песочницы] Способ написания синтаксических анализаторов на c++
habra.15
habrabot(difrex,1) — All
2015-09-10 16:00:03


В этой статье рассказывается, как писать синтаксические анализаторы с помощью [этой][1] небольшой библиотеки на с++. Обычно, текст на машинном языке состоит из предложений, те — из подпредложений, а те, в свою очередь, из подподпредложений, и так вплоть до символов. Например, элемент xml состоит из открывающего тега, содержимого и закрывающего тега. —> Открывающий тег состоит из '<', имени тега, возможно пустого списка атрибутов и '>'. —> Закрывающий тег состоит из '</', имени тега и '>'. —> Атрибут состоит из имени, знаков '=', '"', строки символов и снова '"'. —> Содержимое в свою очередь тоже может содержать элементы. —> И т.д. Таким образом, после разбора получается синтаксическое дерево. Такие языки удобно описывать формой Бэкуса-Наура (БНФ), где каждый нетерминал соответствует некоторому предложению языка. Когда мы пишем программы, мы обычно разбиваем их на функции и подфункции, и раз мы собрались писать синтаксический анализатор, **пусть** каждому нетерминалу БНФ соответствует одна функция нашего анализатора, и пусть каждая такая функция:

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

Например для БНФ вида `expr ::= expr1 expr2 expr3` будем писать такую функцию: [Читать дальше →][2]

[1]: https://github.com/FeelUsM/common-parse-lib/
[2]: http://habrahabr.ru/post/266589/#habracut

[>] Старый новый pywinauto: автоматизация Windows GUI на Python на примере install/uninstall
habra.15
habrabot(difrex,1) — All
2015-09-10 16:30:03


![image][1] Однажды, в процессе поиска инструмента для автоматизации GUI тестирования, мне попался интересный питоновский пакет [pywinauto][2]. И хотя он поддерживает только нативные контролы и частично Windows Forms, для наших задач он вполне подошёл. История pywinauto берёт своё начало где-то в районе 1998 года, когда Mark McMahon написал для своих нужд GUI Automation утилиту на языке C (на это потребовалось года два), а затем, уже в 2005-м, переписал её на Python за три месяца. Мощь питона проявила себя во всей красе: интерфейс pywinauto получился простым и выразительным. Инструмент активно развивался с 2006 по 2010. В годы затишья, в 2011-2012 добрый человек [moden-py][3] написал GUI helper для просмотра иерархии окон и генерации pywinauto кода под названием [SWAPY][4]. Тем временем мир менялся. Наша команда перешла на 64-битные бинарники, и клон pywinauto заработал на 64-битном Python. В основной ветке проект не развивался четыре года и порядком устарел. В 2015 году с согласия Марка удалось вдохнуть в проект новую жизнь. Теперь pywinauto официально [живёт на гитхабе][5], а во многом благодаря камраду [airelil][6] модульные тесты [бегают на CI сервере AppVeyor][7]. [Читать дальше →][8]

[1]: https://habrastorage.org/getpro/habr/post_images/941/0dd/4ec/9410dd4ec53040079acd57990baaabfd.jpg
[2]: http://pywinauto.github.io/
[3]: https://github.com/moden-py
[4]: https://code.google.com/p/swapy/
[5]: https://github.com/pywinauto/pywinauto
[6]: https://github.com/airelil
[7]: https://ci.appveyor.com/project/vasily-v-ryabov/pywinauto
[8]: http://habrahabr.ru/post/266459/#habracut

[>] Оценка уязвимостей CVSS 3.0
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03






Мы используем систему оценок CVSS с момента возникновения нашей базы уязвимостей и первого нашего продукта — XSpider (надеюсь, кто-то его еще помнит). Для нас очень важно поддерживать базу знаний, которую мы используем в своих продуктах и услугах, в актуальном состоянии. Поскольку рекомендации по работе с CVSS-метриками не покрывают все возможные варианты уязвимостей, иногда приходится задаваться вопросом: «Как лучше проставить метрики, чтобы итоговая оценка отражала реальную опасность уязвимости?». Мы постоянно следим за развитием стандарта, поэтому давно ждали окончательной версии CVSSv3. Открывая спецификацию, я прежде всего хотел ответить на вопросы: «Что стало лучше?», «Что именно изменилось?», «Сможем ли мы использовать новый стандарт в наших продуктах?» и — поскольку к ведению базы часто подключаются молодые специалисты — «Как быстро можно овладеть методикой оценки?», «Насколько четкими являются критерии?». В ходе изучения стандарта родилась эта статья, надеюсь, она поможет вам в освоении новой методики оценки уязвимостей. [Читать дальше →][1]

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

[>] [Перевод] Обзор альтернатив Proof of Work. Часть 2. Proof of Activity, Proof of Burn, Proof of Capacity и генералы
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03


_Продолжаем переводить крутые статьи с сайта [Bytecoin.org][1]. Сегодня — «[Alternatives for Proof of Work, Part 2: Proof of Activity, Proof of Burn, Proof of Capacity, and Byzantine Generals][2]» Рэя Паттерсона (Ray Patterson). Часть 1 можно найти [тут][3]._ ![][4]

## PoW vs PoS: что еще?

Итак, энергоэффективность Proof of Stake – это палка о двух концах. С одной стороны, энергия-то не тратится, с другой – без этих трат модель распределенного консенсуса выглядит несколько неустойчиво. Какие еще аргументы можно привести? Против PoS не раз высказывается мнение, что эта схема «делает богатых богаче». И в самом деле: тот, у кого больше всех монет, будет находить больше всех блоков и получать больше всех прибыли, увеличивая число этих монет. На самом деле, в таком виде это обвинение можно высказать и в лицо PoW: тот, кто вложил больше всех денег в железо, будет получать и больший доход, это естественно. Но картина начинает выглядеть по-другому, если мы говорим о криптовалюте [Читать дальше →][5]

[1]: https://bytecoin.org
[2]: https://bytecoin.org/blog/proof-of-activity-proof-of-burn-proof-of-capacity/
[3]: http://habrahabr.ru/post/265561/
[4]: https://habrastorage.org/files/cc0/0da/ed7/cc00daed77f24019b85deb58ccc70574.jpg
[5]: http://habrahabr.ru/post/266619/#habracut

[>] Настройка CDMA модема Intertelecom в Linux
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03


Рассмотрим настройку вот такого вот модема. ![][1] Провайдер Intertelecom в свое время закупил видимо целый камаз таких списанных модемов. Похожие CDMA модемы используют и другие провайдеры, например PeopleNet. Да собственно для многих устройств на базе чипсета Qualcomm gobi это руководство должно сработать. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/35a/ebd/20a/35aebd20acfcc03f532bb38ec7a962be.jpg
[2]: http://habrahabr.ru/post/266569/#habracut

[>] Опубликован код эксплойта для критических Android-уязвимостей Stagefright
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03


Весной 2015 года исследователи [обнаружили][1] ряд критических уязвимостей в компоненте ядра мобильной ОС Android под названием Stagefright (библиотека для работы с файлами мультимедиа, например PDF). Ошибки безопасности позволяли злоумышленникамии удаленно получать доступ к смартфону, например, с помощью отправки зловредного MMS-сообщения — для проведения подобной атаки нужно знать лишь номер телефона жертвы. [![][2]][3] На этой неделе был [опубликован][4] код эксплойта, использующий ошибки безопасности в компоненте Stagefright. Эти уязвимости были обнаружены исследователями компании Zimperium, которая в своем блоге [описала][5] атаку с помощью специально созданного эксплойта. [Читать дальше →][6]

[1]: http://habrahabr.ru/company/pt/blog/263903/
[2]: https://habrastorage.org/files/dd0/317/7b5/dd03177b5139419d9635864e35a7d77a.png
[3]: http://habrahabr.ru/company/pt/blog/266581/
[4]: https://blog.zimperium.com/the-latest-on-stagefright-cve-2015-1538-exploit-is-now-available-for-testing-purposes/
[5]: http://blog.zimperium.com/experts-found-a-unicorn-in-the-heart-of-android/
[6]: http://habrahabr.ru/post/266581/#habracut

[>] Корпоративные лаборатории: проблемы информационной безопасности. Часть 1
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03


![][1] Корпоративные лаборатории — программа профессиональной подготовки в области информационной безопасности. По многим современным статистическим данным, собранным во время тестирования на проникновение, одной из важных проблем безопасности являются [слабые][2] и [повторяющиеся][3] пароли. В нашей корпоративной лаборатории это отражено — на многих системах используются одинаковые пароли, также при получении новых пар логин/пароль иногда приходится возвращаться к другим хостам для проверки их валидности. Информация, собранная на одном из этапов может помочь на другом, ничем нельзя пренебрегать и упускать любую мелочь. [Читать дальше →][4]

[1]: https://habrastorage.org/files/514/7e1/084/5147e1084f0840758f842ca35f7a5c33.jpg
[2]: http://habrahabr.ru/company/pt/blog/255681/
[3]: http://www.acunetix.com/blog/articles/statistics-leaked-gmail-yandex-mail-ru-passwords/
[4]: http://habrahabr.ru/post/266349/#habracut

[>] PYCON RUSSIA 2015: финальная программа
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03


Привет! 18-19 сентября в Екатеринбурге пройдет одно из самых ярких событий python-сообщества — конференция [PYCON RUSSIA][1]. 21 доклад от ведущих python-разработчиков из США, Франции, Германии, Чехии, Украины и России, два мастер-класса, Lightning Talks — и это только в официальной части. У вас есть еще неделя, чтобы посмотреть на программу этого года, купить билет и приехать в Екатеринбург. Все подробности ниже. [][2] [Читать дальше →][3]

[1]: http://pycon.ru/2015/program/content/
[2]: https://fotki.yandex.ru/next/users/it-people-ekb/album/439648/view/872556?page=2
[3]: http://habrahabr.ru/post/266603/#habracut

[>] [Перевод] Событийно-ориентированный бэктестинг на Python шаг за шагом. Часть 3
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03


[![][1]][2] В предыдущих статьях мы говорили о том, что такое событийно-ориентированная система бэктестинга, разобрали [иерархию классов][3], которую необходимо для нее разработать, и обсудили то, как подобные системы [используют рыночные данные][4] в контексте исторического тестирования и для «живой» работы на бирже. Сегодня мы опишем объект NaivePortfolio, который отвечает за отслеживание позиций в портфолио и на основе поступающих сигналов генерирует приказы с ограниченным количеством акций. [Читать дальше →][5]

[1]: https://habrastorage.org/files/ecc/936/679/ecc9366797aa47e2a868041d4cd98c7b.png
[2]: http://habrahabr.ru/company/itinvest/blog/266623/
[3]: http://habrahabr.ru/company/itinvest/blog/263097/
[4]: http://habrahabr.ru/company/itinvest/blog/264141/
[5]: http://habrahabr.ru/post/266623/#habracut

[>] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 2. «Deadly Weapons»
habra.15
habrabot(difrex,1) — All
2015-09-10 17:30:03


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Начало и план перевода тут: «[Шкворень: школьники переводят книгу про хакеров][3]». Логика выбора книги для работы со школьниками у меня следующая:

* книг про хакеров на русском языке мало (полторы)
* книг про кардинг на русском нет вообще (**UPD** нашлась [одна][4])
* Кевин Поулсен — редактор WIRED, не глупый товарищ, авторитетный
* приобщить молодежь к переводу и творчеству на Хабре и получить обратную связь от старших
* работать в спайке школьники-студенты-специалисты очень эффективно для обучения и показывает значимость работы
* текст не сильно хардкорный и доступен широкому кругу, но затрагивает вопросы информационной безопасности, уязвимости платежных систем, структуру кардингового подполья, базовые понятия инфраструктуры интернет
* книга иллюстрирует, что «кормиться» на подпольных форумах — плохо заканчивается

Кто хочет помочь с переводом других глав пишите в личку [magisterludi][5]. _(По поводу очередности мне задают много вопросов и советуют публиковать главы по очереди. Я бы тоже так хотел, но увы, так как работаю с с множеством людей, которые, например, уже перевели 80% главы, а потом у них случается форсмажор на 2 недели. С одной стороны на них давить не хочется, с другой стороны откладывать публикацию тех людей, которые перевели уже следующую главу — не совсем честно по отношению к ним. Поэтому, то что есть, публикую.)_

#### Глава 2. «Смертельное оружие»

_(За перевод спасибо ребятам из проекта «Юные программисты ФСБ РФ» из Кадетской школы 1770 г. Москвы и спасибо руководителю Сергею Епифанцеву за координационную работу)_ _«Это комната развлечений!!! Комната развлечений представляет из себя большое затемнённое помещение без четкого выхода. Публика может расслабляться на подушках перед гигантским экраном телевизора. В наличии имеется также набитый доверху холодильник и бар.» _ Эта надпись приветствует посетителей [TinyMud][6], игрового виртуального мира, который был внутри компьютера размером с мини-холодильник на полу в офисе Питтсбургской аспирантуры. В 1990 года сотни студентов по всему земному шару «выходили в люди» или социализировались через Интернет. Макс, первокурсник университета штата Айдахо в Бойсе был одним из них. [Читать дальше →][7]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/company/piter/blog/204042/
[5]: http://habrahabr.ru/users/magisterludi/
[6]: https://en.wikipedia.org/wiki/TinyMUD
[7]: http://habrahabr.ru/post/266577/#habracut

[>] Практическая подготовка в пентест-лабораториях. Часть 1
habra.15
habrabot(difrex,1) — All
2015-09-10 21:30:03


![][1] «Корпоративные лаборатории» — программа профессиональной подготовки в области информационной безопасности, состоящая из теоретической (курсы-вебинары) и практической подготовки (работа в пентест-лабораториях). В данной статье будет рассмотрено содержание именно практической базы, составляющей порядка 80% от общей программы обучения. По многим современным статистическим данным, собранным во время тестирования на проникновение, одной из важных проблем безопасности являются [слабые][2] и [повторяющиеся][3] пароли, что, несомненно, реализовано в заданиях лабораторий. Информация, собранная на одном этапе или хосте, может оказаться полезной на другом. Для успешной атаки решающими могут оказаться любые данные. [Читать дальше →][4]

[1]: https://habrastorage.org/files/514/7e1/084/5147e1084f0840758f842ca35f7a5c33.jpg
[2]: http://habrahabr.ru/company/pt/blog/255681/
[3]: http://www.acunetix.com/blog/articles/statistics-leaked-gmail-yandex-mail-ru-passwords/
[4]: http://habrahabr.ru/post/266349/#habracut

[>] [Перевод] Существует ли простой алгоритм работы интеллекта?
habra.15
habrabot(difrex,1) — All
2015-09-10 22:30:02


**Примечание переводчика:** _В нашем блоге мы рассказываем об [облачных сервисах][1], хостинге и соответствующих [технологиях][2]. Почерпнуть что-то интересное можно не только из опыта работы с инфраструктурными проектами, но и из теоретических работ, направленных далеко в будущее. Сегодня мы представляем вашему вниманию адаптированный перевод [материала][3] ученого Майкла Нилсена о том, существует ли простой алгоритм интеллекта._ [![][4]][5] В [этой][6] книге мы рассматриваем устройство нейронных сетей: как они работают, как можно использовать их для решения задач распознавания образов. У этого материала множество актуальных практических применений. Но, конечно, основная причина исследования нейронных сетей кроется в надежде, что однажды с их помощью мы сможем выйти далеко за рамки таких базовых задач распознавания образов. Возможно, они, или иной подход, основанный на цифровой обработке данных, в конце концов, будут использованы для создания машин с искусственным интеллектом, которые будут соответствовать или даже превосходить человеческий интеллект. Это предположение выходит далеко за пределы содержания этой книги – и всего, что известно кому-либо в мире. Но строить домыслы забавно. Вопрос о возможности компьютеров соответствовать уровню человеческого интеллекта породил множество споров. Я не стану в них ввязываться. Несмотря на идущие споры, я не сомневаюсь, что создание «умного» компьютера реально – хотя и чрезвычайно сложно, и, вероятно, не под силу современным технологиям, а сегодняшние скептики в один прекрасный день будут похожи в своих суждениях на [виталистов][7]. Вопрос, который я ставлю в своем исследовании – существует ли простой набор принципов, с помощью которых можно объяснить, что такое интеллект? В частности, существует ли простой алгоритм работы интеллекта? [Читать дальше →][8]

[1]: https://1cloud.ru/
[2]: http://habrahabr.ru/company/1cloud/blog/266133/
[3]: http://neuralnetworksanddeeplearning.com/sai.html
[4]: https://habrastorage.org/files/1cc/4dc/e8b/1cc4dce8bcaf469cb74954c861a97916.jpg
[5]: http://habrahabr.ru/company/1cloud/blog/266641/
[6]: http://neuralnetworksanddeeplearning.com/sai.html
[7]: https://en.wikipedia.org/wiki/Vitalism
[8]: http://habrahabr.ru/post/266641/#habracut

[>] Настройка CDMA модема ZTE AD3700 для Intertelecom в Linux
habra.15
habrabot(difrex,1) — All
2015-09-11 05:30:02


Рассмотрим настройку вот такого вот модема. По паспорту он зовется ZTE AD3700. ![][1] Провайдер Intertelecom в свое время закупил видимо целый камаз таких списанных модемов. Похожие CDMA модемы используют и другие провайдеры, например PeopleNet. Да собственно для многих устройств на базе чипсета Qualcomm gobi это руководство должно сработать. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/35a/ebd/20a/35aebd20acfcc03f532bb38ec7a962be.jpg
[2]: http://habrahabr.ru/post/266569/#habracut

[>] IBM сделает платформу NodeJS стандартом корпоративной разработки
habra.15
habrabot(difrex,1) — All
2015-09-11 09:00:03


![][1]Вчера IBM официально [объявила][2] о покупке компании [StrongLoop][3], которая с 2013 года осуществляет профессиональную поддержку NodeJS для корпоративных клиентов. StrongLoop — один из лидеров в секторе корпоративного NodeJS. Заказчики оплачивают подписку на продукт StrongLoop Suite и получают набор инструментов для удобной разработки приложений с использованием программных интерфейсов к облачному бэкенду, отладки, мониторинга и др. StrongLoop известна как один из самых активных участниц проекта NodeJS, она постоянно присылает патчи для реализации новых функций и улучшения популярной платформы. [Читать дальше →][4]

[1]: https://habrastorage.org/files/6f0/58b/912/6f058b912cbc47dfaecd19a8aa6612a9.png
[2]: http://www-03.ibm.com/press/us/en/pressrelease/47577.wss
[3]: https://strongloop.com/
[4]: http://habrahabr.ru/post/266647/#habracut

[>] Утиные истории: утка ищет баги
habra.15
habrabot(difrex,1) — All
2015-09-11 12:30:03







Грядет 13 сентября, 256-й день года. Но в этом году он приходится на воскресенье, поэтому мы решили отметить это событие слегка заранее. Иными словами, поздравляем всех с Днём программиста! Желаем вам кода без багов, побольше удобных библиотек, толковых и нетребовательных пользователей, творческого полёта мысли, и чтобы вы всегда успевали к дедлайну. Но, как говорится, раздавать пожелания — не мешки ворочать. Чтобы всё это сбылось, нужно работать до седьмого пота, кодить с умом. Вот только вдохновение — дама ветреная и капризная. Сейчас оно есть у тебя, есть несколько идей, как можно получше реализовать какую-то фичу. Но проходит некоторое время, и всё, не можешь придумать ничего дельного. Или долго и безрезультатно ищешь причину какого-то бага, и никак не можешь понять, почему же не работает так, как задумано. [Читать дальше →][1]

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

[>] Пишем синтезатор для концерта. Полевые испытания PureData
habra.15
habrabot(difrex,1) — All
2015-09-11 13:00:03




### Вводная



#### Предпосылки

Строить синтезаторы на PD занятие крайне интересное, однако, комнатные эксперименты и диванный парсинг миди-сообщений все таки серьезно отличаются от «боевых» условий, в которых приходится выступать. И после провальной демонстрации на LinuxFest я серьезно озаботился решениями для лайв-выступлений. Обычно, какого-то более-менее функционального миди-контроллера (такой, чтобы использовал хотя бы два канала, которые можно прослушивать отдельно) бывает достаточно, однако, это достаточно затратно и приходится все компенсировать GUI самого синтезатора и полагаться на мышь и клавиатуру. [Читать дальше →][1]

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

[>] Зaчем мне AshleyMadison, если я не курю?
habra.15
habrabot(difrex,1) — All
2015-09-11 14:30:03


Как вы все уже наверное знаете, недавно были выложены дампы баз AshleyMadison. Я решил не упускать возможность и проанализировать реальные данные дейтинг платформы. Попробуем предсказать платежеспособность клиента по его характиристикам таким как возраст, рост, вес, привычки и т.д. ![][1] Попробуем? [Читать дальше →][2]

[1]: https://habrastorage.org/files/00c/16f/97d/00c16f97d1aa40bebe09b1d6fe7f4d57.png
[2]: http://habrahabr.ru/post/266639/#habracut

[>] [Из песочницы] Настройка Vim-like управления в GTK
habra.15
habrabot(difrex,1) — All
2015-09-11 16:30:02


Текстовый редактор Vim я использую практически для всех задач, связанных с интерактивным редактированием текста: для конфигурационных файлов и исходного кода, как среду верстки LaTeX, для написания писем в связке с mutt и даже как внешний редактор в web-браузере. Хорошо прижившиеся горячие клавиши управления курсором [hjkl] начали перемещаться за пределы редактора, например, в командную оболочку (в связке с модификатором). Однако, хотелось бы иметь привычные хоткеи в графических приложениях. Собственно, далее речь пойдет о настройке GTK-окружения. [Читать дальше →][1]

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

[>] Правильная работа с датой и временем в Ruby on Rails
habra.15
habrabot(difrex,1) — All
2015-09-11 17:00:02


Всем привет! Меня зовут Андрей Новиков и в последнее время я работаю над проектом по разработке приложения, которое используется в разных частях нашей страны и автоматизирует работу людей. В каждом конкретном часовом поясе нашему приложению необходимо правильно получать, сохранять и отображать время, причём как в прошлом, так и в будущем – например, рассчитать начало рабочей смены и так же правильно его отображать: отсчитать время до конца смены, показать, сколько люди ехали до точки назначения и определить, уложились ли они в норматив, в также многое-многое другое. [![][1]][2] За те уже несколько лет, что я пишу на Ruby on Rails, мне не приходилось сталкиваться с подобными проблемами — до этого все мои приложения работали в одном часовом поясе. А тут неожиданно пришлось немало попотеть, отлавливая самые разные ошибки и пытаясь выяснить, как же работать с датой и временем так, чтобы их в дальнейшем избежать. В результате, сегодня мне есть, чем с вами поделиться. Если вы регулярно встречаетесь с тем, что время сохраняется или отображается некорректно с характерным разбросом в несколько часов (3 часа для Москвы), какие-то ночные записи перекочёвывают на соседние дни, а время упорно отображается не так, как хотят пользователи, и вы не знаете, что со всем этим делать — добро пожаловать под кат. [Читать дальше →][3]

[1]: https://habrastorage.org/files/97c/873/5a4/97c8735a400a4e7bab8ca20e2ccb5a62.jpg
[2]: http://habrahabr.ru/company/at_consulting/blog/266681/
[3]: http://habrahabr.ru/post/266681/#habracut

[>] Security Week 37: Bug-bugzilla, Карбанак из бэк, С&C на рыбалке
habra.15
habrabot(difrex,1) — All
2015-09-11 17:00:02


![][1]В новом эпизоде сериала, снятого по мотивам новостей в области информационной безопасности: — Взлом Bugzilla лишний раз напоминает о том, что пароли должны быть не только сложные, но и уникальные. — Кампания Carbanak, ответственная за кражу сотен миллионов долларов у финансовых организаций, замечена в Европе и США. — Исследование «Лаборатории» о том, как перевести командный сервер шпионской кампании с уровня «очень сложно найти» на уровень «ищи ветра в поле» А также незакрытый telnet в WiFi-дисках Seagate, патчи, рыбалка и музыкальные вирусы из прошлого. Напоминаю правила: каждую неделю редакция новостного сайта [Threatpost][2] выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти [тут][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/3ce/fb7/9c4/3cefb79c491b4dfa82414715a9b206f0.jpg
[2]: https://threatpost.ru/
[3]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[4]: http://habrahabr.ru/post/266675/#habracut

[>] [Из песочницы] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 10. «Cris Aragon»
habra.15
habrabot(difrex,1) — All
2015-09-12 01:00:02


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Начало и план перевода тут: «[Шкворень: школьники переводят книгу про хакеров][3]». Логика выбора книги для работы со школьниками у меня следующая:

* книг про хакеров на русском языке мало (полторы)
* книг про кардинг на русском нет вообще (**UPD** нашлась [одна][4])
* Кевин Поулсен — редактор WIRED, не глупый товарищ, авторитетный
* приобщить молодежь к переводу и творчеству на Хабре и получить обратную связь от старших
* работать в спайке школьники-студенты-специалисты очень эффективно для обучения и показывает значимость работы
* текст не сильно хардкорный и доступен широкому кругу, но затрагивает вопросы информационной безопасности, уязвимости платежных систем, структуру кардингового подполья, базовые понятия инфраструктуры интернет
* книга иллюстрирует, что «кормиться» на подпольных форумах — плохо заканчивается

Кто хочет помочь с переводом других глав пишите в личку [magisterludi][5]. _(По поводу очередности мне задают много вопросов и советуют публиковать главы по очереди. Я бы тоже так хотел, но увы, так как работаю с с множеством людей, которые, например, уже перевели 80% главы, а потом у них случается форсмажор на 2 недели. С одной стороны на них давить не хочется, с другой стороны откладывать публикацию тех людей, которые перевели уже следующую главу — не совсем честно по отношению к ним. Поэтому, то что есть, публикую.)_

#### Глава 10. «Cris Aragon»

_(за помощь с переводом спасибо хабраюзеру [Find\_The\_Truth][6])_ **Крис Арагон** ![image][7]Макс встретил своего будущего друга и напарника по криминалу, Криса Арагона, в маленькой Италии Сан-Франциско — Норт Биче, где обшарпанные стрип-бары и гадалки сосуществовали с приятными, безвкусными пекарнями и летниками с горячей пастой. Встреча была назначена в кафе неподалеку от книжного магазина Сити Лайтс, колыбели поколения битников в 50х годах, по направлению к кафе Везувио, стены которого украшали росписи с винными бутылками и символами мира. Ниже по холму, над финансовым районом, упираясь в небо, стояла Пирамида Трансамерика. Норминтон представил Криса Максу под приглушенные стуки кофейных чашек и блюдец. Эти двое поладили сразу. Сорокаоднолетний Крис был студентом восточной духовной школы, вегетарианцем, который занимался йогой для концентрации ума. Макс с его замашками хиппи, казалось, нашел родственную душу. Они даже читали общие книги. И, как и Макс, Крис неоднократно имел проблемы с полицией. [Читать дальше →][8]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/company/piter/blog/204042/
[5]: http://habrahabr.ru/users/magisterludi/
[6]: http://habrahabr.ru/users/find_the_truth/
[7]: https://habrastorage.org/getpro/habr/post_images/3db/062/e78/3db062e78256c506d7684d0133c30c5b.jpg
[8]: http://habrahabr.ru/post/266707/#habracut

[>] [Перевод] Screentendo — генерация уровней для Super Mario Bros на основе содержимого экрана
habra.15
habrabot(difrex,1) — All
2015-09-12 10:00:03


![image][1] Screentendo – это приложение для настольных компьютеров, которое превращает выделенную область экрана в играбельный уровень для игры Super Mario Bros. Я раньше не делал приложений для Cocoa app и не использовал Sprite Kit, и это стало для меня отличным упражнением. Исходный код [доступен по ссылке][2].






#### Как это работает?

При запуске приложения появляется полупрозрачное окно, которое можно двигать и изменять его размер. После размещения окошка над какой-то областью экрана клик внутри него приведёт к тому, что приложение создаст уровень на базе контента, находящегося под ним. У Screentendo есть два основных этапа работы: обработка картинки для определения структуры выбранного района, и создание уровня. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/494/bf1/7f7/494bf17f73ee00ad26213a5d9b8fa226.png
[2]: https://github.com/AaronRandall/Screentendo
[3]: http://habrahabr.ru/post/266719/#habracut

[>] Об одной задаче Data Science
habra.15
habrabot(difrex,1) — All
2015-09-12 15:30:03


Привет, хабр! ![][1] Как и обещал, продолжаю публикацию статей, в которой описываю свой опыт после прохождения обучения по Data Science от ребят из [MLClass.ru][2] (кстати, кто еще не успел — [рекомендую зарегистрироваться][3]). В этот раз мы на примере задачи [Digit Recognizer][4] изучим влияние размера обучающей выборки на качество алгоритма машинного обучения. Это один из самых первых и основных вопросов, которые возникают при построении предиктивной модели [Читать дальше →][5]

[1]: https://habrastorage.org/files/60f/d96/61c/60fd9661cf9944bf890193af5e035a5e.jpg
[2]: http://dscourse.mlclass.ru
[3]: http://dscourse.mlclass.ru
[4]: https://www.kaggle.com/c/digit-recognizer
[5]: http://habrahabr.ru/post/266727/#habracut

[>] Документация всего и вся в одном месте
habra.15
habrabot(difrex,1) — All
2015-09-12 18:00:04


Stackoverflow объявили о запуске нового амбициозного проекта: документационном хабе для всех существующих технологий. Предполагается, что для каждого существующего на Стэке тэга можно будет создать раздел документации, и в этом разделе постить топики, похожие на существующую парадигму вопрос-ответ, но являющиеся разделами документации. [Читать дальше →][1]

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

[>] Логируем контекст исключений
habra.15
habrabot(difrex,1) — All
2015-09-12 20:00:02


В преддверии [Дня программиста][1] и по следам [Дня тестировщика][2] хочу рассказать о том как упростить жизнь и тем и другим в их общем деле — разработке и отладке ПО. А именно — расскажу о том как сделать исключения С++ более информативными, а логирование ошибок — более компактным. [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D1%8C_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%B0
[2]: https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BD%D1%8C_%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D1%89%D0%B8%D0%BA%D0%B0
[3]: http://habrahabr.ru/post/266729/#habracut

[>] Запуск мега-мануала от Stackoverflow
habra.15
habrabot(difrex,1) — All
2015-09-12 23:00:02


Stackoverflow объявили о запуске нового амбициозного проекта: документационном хабе для всех существующих технологий. Предполагается, что для каждого существующего на Стэке тэга можно будет создать раздел документации, и в этом разделе постить топики, похожие на существующую парадигму вопрос-ответ, но являющиеся разделами документации. [Читать дальше →][1]

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

[>] Snaql. Raw SQL в Python-проектах
habra.15
habrabot(difrex,1) — All
2015-09-12 23:30:03


В последний год у меня появилось новое правило — каждые 3 месяца изучать новый язык программирования и его экосистему. На это есть несколько причин: новые парадигмы, концепции, инструменты, да и просто интересно что там, по ту сторону набившего с годами оскомину Python. Это простое правило позволило изучить за текущий год современные хипстерские Go, Clojure и Rust, проникнуться их идеями и best practices, что, кстати, очень положительно влияет на стиль и качество кода, когда я пишу на своём основном языке. Рассматривая стек [Luminus][1], я наткнулся на простую и в то же время шикарную, на мой вкус, библиотеку [Yesql][2] для организации SQL-запросов в проекте на Clojure и я не увидел чего-то похожего для Python (может плохо искал). Идея этой библиотеки простая — не морочьте себе голову, используйте обычные SQL-запросы, у вас есть возможность именования этих запросов и мапинга на соответствующие динамические функции. Всё это выглядит как набор микро-шаблонов с SQL и их рендер по какому-то контексту. Просто, эффективно, хочу такое у себя в проекте на Python. [Читать дальше →][3]

[1]: http://www.luminusweb.net
[2]: https://github.com/krisajenkins/yesql
[3]: http://habrahabr.ru/post/266735/#habracut

[>] Vim-like управление с помощью xmodmap
habra.15
habrabot(difrex,1) — All
2015-09-13 13:00:02


Описанная в [предыдущей статье][1] реализация Vim-like управления имеет пару существенных недостатков: подходит только к GTK-окружению и для перемещения курсора по редактируемым элементам требуется клавиша модификатор. Получается, в общем-то, не совсем и Vim-like, как было верно подмечено в комментариях. Поэтому, было принято решение описать свой опыт построения вимообразной клавиатурной среды с использованием xmodmap и командной оболочки. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/266669/
[2]: http://habrahabr.ru/post/266745/#habracut

[>] С 100000000 днем в году
habra.15
habrabot(difrex,1) — All
2015-09-13 16:30:02


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

[1]: https://habrastorage.org/files/9df/a9c/ba6/9dfa9cba642f4f89b9e1dfd2019871d7.png
[2]: http://habrahabr.ru/post/266757/#habracut

[>] Работа с данными среднего размера в Python. Pandas и Seaborn
habra.15
habrabot(difrex,1) — All
2015-09-14 10:00:03


Когда много работаешь с данными, нужно часто строить графики и делать разными преобразования над таблицами. Важно научиться делать это быстро и минимально напрягая мозг. Дело в том, что анализ данных во многом заключается в придумывании и проверке гипотез. Придумывать, конечно, интереснее, чем проверять. Но делать нужно и то и другое. Хорошие инструменты в тренированных руках помогают тратить на техническую работу минимальное количество времени и интеллектуальной энергии. Я попробовал много инструментов: Excel, Python+Matplotlib, R+ggplot, Python+ggplot, и остановился на связке Python+Pandas+Seaborn. Решил с их использованием уже много задач и хотел бы поделиться наблюдениями. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/323/b4c/29c/323b4c29c7b14b16b85f7b97c7c93067
[2]: http://habrahabr.ru/post/266289/#habracut

[>] Пишем собственный платежный шлюз Bitcoin
habra.15
habrabot(difrex,1) — All
2015-09-14 11:00:03


По разным причинам существующие платежные шлюзы (такие как Bitpay) вас могут не устраивать. В этой статье мы рассмотрим создание собственного Bitcoin шлюза с нуля. Предполагается что читатель знаком с устройством сети биткоин. Если нет, то рекомендую эти статьи: [“Как на самом деле работает протокол Биткоин”][1] и [“Биткойн: введение для разработчиков”][2] [Читать дальше →][3]

[1]: http://geektimes.ru/post/222493/
[2]: http://bitnovosti.com/2014/01/11/bitcoin-vvedenie-dlya-razrabotchikov/
[3]: http://habrahabr.ru/post/266779/#habracut

[>] [Перевод] Самая устаревшая инфраструктура, которую только можно купить за деньги
habra.15
habrabot(difrex,1) — All
2015-09-14 13:00:06


На днях исполняется 10 лет с тех пор, как я получил самую странную свою работу. Шел 2005-ый год. Мой интерес к разработке системы управления контентом на Java для компании, недавно купившей наш стартап, неуклонно улетучивался, в то время как моей настоящей страстью была разработка компиляторов и инструментов языковой инфраструктуры (в основном для [SBCL][1]). Как-то раз я заметил открытую вакансию как-раз по этому направлению, что вообще-то было достаточно редким явлением. Я быстро прошел интервью — настолько быстро, что даже не задал нужных вопросов и проигнорировал несколько тревожных звоночков. Меня ожидало захватывающее путешествие в мир ретрокомпьютинга. [Читать дальше →][2]

[1]: https://uk.wikipedia.org/wiki/Steel_Bank_Common_Lisp
[2]: http://habrahabr.ru/post/266775/#habracut

[>] Анализ одной из модификаций шифровальщика VaultCrypt
habra.15
habrabot(difrex,1) — All
2015-09-14 13:00:06


Привет, хаб! На днях (примерно месяц назад) мне достался образец письма с троянцем, рассылаемого по электронной почте. Вообще я не являюсь профессионалом в анализе вредоносных файлов, но в данном случае оказалось, что простейший анализ можно провести и без глубоких знаний. Раньше я такого не делал, так что мне стало интересно посмотреть, что же можно отсюда вытянуть. Под катом — разбор кода дроппера и исполняемого bat-файла. **TL;DR: под катом — практически построчный разбор довольно большого и муторного BAT-файла. Код, картинки, минимум мыслей. ** **: некоторые антивирусы (в частности, мой Avast!) очень негативно реагируют на приведенные фрагменты JS-кода. При включенном Avast! у меня вместо статьи отображалась пустая страница с сообщением «Соединение было сброшено». Учтите это, если захотите почитать.**

.)



[Отключите Avast!][1]

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

[>] Неразрешимые задачи и нижние оценки. Лекция Александра Шеня в Яндексе
habra.15
habrabot(difrex,1) — All
2015-09-14 14:30:03


Понятно, зачем теоретики находят эффективные алгоритмы решения задач какого-то класса, а потом практики их реализуют. Но теоретики стараются также доказать, что для некоторых задач эффективных алгоритмов (и даже вообще никаких алгоритмов) не существует. Что при этом им удаётся и не удаётся, и зачем это может быть нужно? В лекции речь идет о «проблеме остановки» и задачах, к которым она сводится, о знаменитом классе NP, а также о простых нижних оценках.




Лекция был прочитана в Малой Школе анализа данных, которую Яндекс организует для старшеклассников. Автор — Александр Шень. Окончил мехмат МГУ, под руководством [Владимира Успенского][1], ученика Колмогорова, защитил диссертацию «Алгоритмические варианты понятия энтропии». Сейчас является сотрудником Института проблем передачи информации им. А.А. Харкевича РАН и Лаборатории Национального центра научных исследований Франции. Научные интересы: алгоритмы, колмогоровская сложность, логика, теория информации. Почти все книги, которые Александр Ханиевич написал о математике и программированию, находятся [в свободном доступе][2]. Под катом — расшифровка лекции. [Читать дальше →][3]

[1]: https://en.wikipedia.org/wiki/Vladimir_Andreyevich_Uspensky
[2]: http://www.lirmm.fr/~ashen/
[3]: http://habrahabr.ru/post/266785/#habracut

[>] Унификация дизайна со стороны бэкенда: JavaScript на сервере
habra.15
habrabot(difrex,1) — All
2015-09-14 15:00:07


![image][1] В начале 2014 года к нам в отдел контентных проектов пришла задача унификации дизайна. Дизайнеры хотели единый стиль проектов и принципы работы интерфейсов. Это будет удобно пользователям, облегчит запуск новых проектов и редизайн существующих (более подробно об этом [писал][2] Юра Ветров). Команда фронтенда получит возможность использовать схожие компоненты верстки на разных проектах, что уменьшит время разработки и поддержки существующего функционала. Для команды бэкенда задача оказалась нетривиальной: большинство наших проектов написана на Perl (Template Toolkit), Недвижимость на PHP, Дети и Здоровье используют Django. Но от нас требовалось реализовать не только поддержку единого шаблонизатора, но и согласовать единый формат отдаваемых данных в шаблоны. Обилие подгружаемых AJAX-блочков требовало поддержку еще и клиентской шаблонизации. Таким образом, задача унификации дизайна превратилась в задачу выбора единого шаблонизатора для Perl, Python, PHP и JS. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/e47/520/ca2/e47520ca26d7c942656c8c6b5e48ae62.jpg
[2]: http://habrahabr.ru/company/mailru/blog/263221/
[3]: http://habrahabr.ru/post/266713/#habracut

[>] Протоколирование JDBC запросов и их параметров в существующем приложении
habra.15
habrabot(difrex,1) — All
2015-09-14 16:00:05


![][1] В публикации рассмотрим как можно внедрить логирование jdbc операций в существующее приложение без его пересборки и перекомпиляции. Это даст возможность протоколировать параметры запросов, которые заполняет программа, и многие другие аспекты работы с jdbc. [Описание процесса и скринкаст...][2]

[1]: https://habrastorage.org/files/a29/9f4/f4f/a299f4f4fb244d12a5250481d050723f.png
[2]: http://habrahabr.ru/post/266781/#habracut

[>] [Из песочницы] Почему мы занимаемся переводом книги с английского на площадке GitHub
habra.15
habrabot(difrex,1) — All
2015-09-14 16:00:06


Всем привет! Недавно команда [rust\_book\_ru][1] закончила перевод книги «The Rust Programming Language» на русский язык. Когда я только присоединился к проекту перевода, начатого [kgv][2], нам несколько раз говорили: «Вы делаете перевод на GitHub? Странные вы, для краудсорсинг-перевода есть другой сервис — вот ссылка». Мы не стали переходить на другие сервисы и в итоге это решение полностью оправдалось. Я хочу рассказать о том, почему мы всё же разместили книгу на GitHub и почему даже переводчику полезно быть немного программистом. [Читать дальше →][3]

[1]: https://github.com/kgv/rust_book_ru/blob/master/AUTHORS.md
[2]: https://github.com/kgv
[3]: http://habrahabr.ru/post/266813/#habracut

[>] «Фортран – живее всех живых» или «Что нового у дедушки ifort»
habra.15
habrabot(difrex,1) — All
2015-09-14 16:00:06






Как вы уже знаете, недавно вышла новая Intel Parallel Studio XE 2016, а с ней, как и полагается, новые версии всех тулов, в том числе, и Фортрановского компилятора. Он всё ещё «жив курилка», активно развивается, при это весьма востребован и используется множеством разработчиком, особенно в HPC и академической среде. Новая версия, как всегда, делает жизнь этих разработчиков чуточку легче, поддерживая новые стандарты и давая больше возможностей. Давайте посмотрим, что появилось в версии 16.0. [Читать дальше →][1]

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

[>] [Из песочницы] Kotlin и свои почти языковые конструкции
habra.15
habrabot(difrex,1) — All
2015-09-14 16:30:05


![][1]Скорее всего, из разработчиков, пользующихся Java, и в особенности Android-разработчиков многие уже знают про [Kotlin][2]. Если нет, то никогда не поздно узнать. Особенно если Java не устраивает вас чем-то как язык — что наверняка так — или если вы владеете Scala, но и этот язык вам не подходит, что тоже не исключено. Если кратко, то Kotlin — это статически типизированный язык, ориентирующийся на JVM, Android (компилируется в байт-код Java) и веб (компилируется в JavaScript). JetBrains, разработчик языка, ставили своей целью лаконичный и понятный синтаксис, быструю компиляцию кода и типобезопасность. Язык пока находится в предрелизном состоянии, но всё стремительно движется к релизу. К слову, после Java «переучиться» на Kotlin не составит никакого труда, в этом поможет и понятный (субъективно) синтаксис, и полная совместимость с кодом на Java в обе стороны, что позволяет Java-программисту использовать весь привычный набор библиотек. Ещё одной целью разработчиков языка была возможность его гибкого использования, в том числе для создания библиотек, внешне похожих на [DSL][3], и собственных конструкций (хороший [пример][4] типобезопасного builder'а для HTML; [статья][5] про реализацию yield). У Kotlin есть несколько фич, которые позволят решать эти задачи эффективно и красиво. Давайте с ними познакомимся. [Читать дальше →][6]

[1]: https://habrastorage.org/files/849/8e7/677/8498e76773a841a1b14e97b3b206887c.png
[2]: http://kotlinlang.org/
[3]: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA
[4]: http://kotlinlang.org/docs/reference/type-safe-builders.html
[5]: http://habrahabr.ru/post/168571/
[6]: http://habrahabr.ru/post/266817/#habracut

[>] [Из песочницы] Код 15-летней давности и газета объявлений
habra.15
habrabot(difrex,1) — All
2015-09-14 17:00:04


Увидев переводную [публикацию ][1]о поддержке древнего как кости мамонта legacy-кода, не могу не поделиться историей из своего опыта, а заодно, и призвать написать тех, кто также как и я сталкивался с подобными задачами. Да и за державу обидно — почему подобные публикации – в основном, переводные? У нас есть и было немало программистов-самородков, ваяющих свое, ни с чем не совместимое программное обеспечение – свои собственные СУБД, графические интерфейсы, драйвера для промышленного оборудования собственной разработки. По работе я немало сталкивался с творениями местных кулибиных, и еще расскажу про них, если будет интерес. Случилась эта история в 2001 году и началась с того, что в FIDO-шной конференции $CRACK$.TALKS [Читать дальше →][2]

[1]: http://habrahabr.ru/company/infopulse/blog/266775/
[2]: http://habrahabr.ru/post/266833/#habracut

[>] Шпаргалки Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github
habra.15
habrabot(difrex,1) — All
2015-09-14 17:00:04


[![][1]][2] **Что это и зачем оно надо**: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github'e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android'a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android'a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания. Если вы хотите убедиться что баз данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, просто узнать какие новые возможности можно найти в Java мире open-source это статья вам, думаю, может пригодится. [Читать дальше →][3]

[1]: https://habrastorage.org/files/7c9/4a0/261/7c94a02610ce47d289f778e1c8dd9673.jpg
[2]: http://habrahabr.ru/post/266821/
[3]: http://habrahabr.ru/post/266821/#habracut

[>] Исследование: Почти все популярные межсетевые экраны пропускают XSS-атаки
habra.15
habrabot(difrex,1) — All
2015-09-14 17:30:04


[![][1]][2] Исследователь безопасности Мазин Ахмед (Mazin Ahmed) опубликовал [результаты][3] анализа способов обхода XSS-защиты в популярных межсетевых экранах уровня приложения (Web application firewalls, WAF). Ахмед использовал несколько виртуальных машин, на которых запускались популярные браузеры Google Chrome, Opera, Mozilla Firefox и Internet Explorer. Исследователь изучал коммерческие и открытые продукты: F5 Big IP, Imperva Incapsula, AQTRONIX WebKnight, PHP-IDS, Mod-Security, Sucuri, QuickDefence, Barracuda WAF. В работе для каждого продукта был представлен хотя бы один XSS-вектор, позволявший осуществить обход защиты. [Читать дальше →][4]

[1]: https://habrastorage.org/files/048/fc4/1a0/048fc41a033e4e3897ab8a9e91cda9ea.jpg
[2]: http://habrahabr.ru/company/pt/blog/266717/
[3]: http://mazinahmed.net/uploads/Evading All Web-Application Firewalls XSS Filters.pdf
[4]: http://habrahabr.ru/post/266717/#habracut

[>] [Из песочницы] Парадигма ситуационно-ориентированного программирования
habra.15
habrabot(difrex,1) — All
2015-09-14 20:00:03


Как известно, существует три вида алгоритмов: линейные, разветвленные и циклические: ![image][1] Основой всего, что сделано в методологии программирования, включая и объектное программирование стало структурное программирование, предложенное Эдсгером Дейкстрой в 1970-х годах. Одной из основных идей было введение блочных операторов ветвления (IF, THEN, ELSE) и цикличности (WHILE, FOR, DO, UNTIL и др.) вместо проблемного оператора GOTO, который приводил к получению запутанного, неудобочитаемого «спагетти-кода». Для использования в интеллектуальных системах структурное программирование обладает серьезным недостатком. [Читать дальше →][2]

[1]: https://habrastorage.org/files/091/3ca/9aa/0913ca9aacc441eaaa65eed5f8989394.png
[2]: http://habrahabr.ru/post/266829/#habracut

[>] [Перевод - recovery mode ] Начинаем любить Go
habra.15
habrabot(difrex,1) — All
2015-09-14 20:00:03


Эта статья о том, как некоторое время спустя я распробовал и таки полюбил язык Go (аки golang).

##### Жалобы

Еще год назад у меня было полно жалоб на тот или иной аспект Go. В основном я жаловался на то, что при том, что ты не можешь использовать Go как «настоящий системный язык» (в плане написать-на-нем-операционку), тебе все равно приходится думать о том, о чем обычно приходится думать в системных языках: например, использовать тута указатель или нет. Система типов лежит в непродуктивном ущелье между достаточной строгостью, чтобы стать «автоматичной» (привет адептам Haskell!) и достаточной динамичностью, чтобы не отвлекать (как в Python). Какое-то время я тупил на таких вещах, как проход по юникодовой строке не символами, а байтами и всякое такое. Я обвинял Go в том, что он так-то не всегда следует своему принципу простоты, так как в нем есть много разных узких штук, вроде `make()`. И конечно же я жаловался на то, что при работе с Go постоянно приходится повторять блоки `if err != nil { return err }`. По-началу я точно не мог назвать себя фанатом Go. В техническом плане я согласен с тем, что большинство моих жалоб корректны. Я согласен с тем, что систему типов можно было бы придумать и по-круче, а от указателей не помешало бы немного абстрагироваться. Но как только я начинаю понимать, что (не все, но многие) проблемы, на которые я жаловался, на самом деле вроде как даже и не непрягают. В действительности это напоминало нытье на целый лес, из-за пары некрасивых деревьев. В повседневном использовании языка, большинство вещей, о которых я так волновался, вообще не давали о себе знать. Я ниразу не встречал баг, так или иначе связанный с проходом по строке. В реальном коде ты почти не кастишь `interface{}` так часто, как хотелось бы тем ребятам, которые дрочат на системы типов. Ах да, нет беды в том, чтобы вызывать `make()` в одном месте и `new()` в другом. Больше всего я ругался на те архитектурные решения языка, которые усложняли создание абстракций. Ты не можешь просто так сделать структуру данных, которая станет альтернативой к встроенным структурам данных (привет кодогенерации!). Без обобщений ты не сможешь строить большие обобщенные абстракции. Скорее всего это сделано намеренно. [Читать дальше →][1]

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

[>] Книга про вирусы
habra.15
habrabot(difrex,1) — All
2015-09-14 20:00:03


Достаточно редкий зверь в нашем книгоиздательстве (просьба не счесть проплаченной рекламой) — книга «PRO вирусы» от сотрудника антивирусной компании, описывающая не только историю возникновения вирусов (такой литературы более чем достаточно), но также способы распространения современных вредоносных программ, их принцип действия и т. д. Валентин Холмогоров профессионально занимается описанием вредоносных программ, и поэтому вся информация — действительно из первых уст. [Читать дальше →][1]

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

[>] Группируем одинаковые приложения из разных магазинов по иконке
habra.15
habrabot(difrex,1) — All
2015-09-14 20:00:03


Однажды случилось мне несчастье обратить свой взор на одну заманчивую вакансию. Все бы ничего, но, как обычно, подкинули тестовое задание. Если кратко, то нужно было сгруппировать ссылки на одно и тоже приложение в разных маркетах. По ссылкам были такие приложения как Skype, Skype WiFi, Skype Qik, Viber, и две игры с одинаковым названием Skyward. Среди магазинов были Google Play, App Store и маркет Windows Phone. В задании было так же описание граблей, мол, не надо особо привязываться на названия приложений, название компании разработчика и т.д. «Но ведь одинаковые приложения легко узнаваемы на разных платформах тупо по иконке» — подумал я, и полез выяснять детали. Но не все так просто. [Читать дальше →][1]

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

[>] Hash array mapped trie
habra.15
habrabot(difrex,1) — All
2015-09-15 01:30:01


Hash array mapped trie — это ассоциативный контейнер, который обладает свойствами хэш таблиц и trie. Операции вставки пары ключ-значение и поиск по ключу — О(1) операции. Про trie на хабре уже [писали][1]. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/111874
[2]: http://habrahabr.ru/post/266861/#habracut

[>] Развертывание JetBrains Hub + Youtrack + Upsource + Nginx на своем сервере Debian 8
habra.15
habrabot(difrex,1) — All
2015-09-15 13:30:04


Несколько дней назад столкнулся с задачей развернуть систему управления разработкой, которую предлагает [JetBrains][1], а именно установить [Hub][2], [Youtrack][3] и [Upsource][4] при этом обеспечить доступ к ресурсам по удобным для всех url. Почитав про продукты и их установку на сервере из zip архивов, решил поделиться опытом и готовым решением ([скриптом][5]) для автоматического развертывания с вами. ![hub+youtrack+upsource][6]

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

[Подробности][7]

[1]: https://www.jetbrains.com/
[2]: https://www.jetbrains.com/hub
[3]: https://www.jetbrains.com/youtrack/
[4]: https://www.jetbrains.com/upsource/
[5]: https://gist.github.com/artzub/24c707c5ffe0747b0e90
[6]: https://habrastorage.org/getpro/habr/post_images/999/4d6/6ee/9994d66eea46db6e4cc43dfbecbe4bf5.png
[7]: http://habrahabr.ru/post/266871/#habracut

[>] Functional C#: Immutability
habra.15
habrabot(difrex,1) — All
2015-09-15 14:00:04


Это первая статья из небольшой серии, посвященной программированию на C# в функциональном стиле. Серия не про LINQ, как можно было бы подумать, а про более фундаметальные вещи. Навеяно F#-ом.

* **Functional C#: Immutability**
* Functional C#: Primitive obsession (coming soon)
* Functional C#: Non-nullable reference types (coming soon)
* Functional C#: Handling failures and input errors (coming soon)

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

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

[>] [Перевод] Как работает реляционная БД
habra.15
habrabot(difrex,1) — All
2015-09-15 15:30:07


![][1] Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть, довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг. На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас. [Читать дальше →][2]

[1]: https://habrastorage.org/files/1e7/e05/af0/1e7e05af0dc24cf2977fdd6e2bd69e9a.jpg
[2]: http://habrahabr.ru/post/266811/#habracut

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ... 37