RSS
Pages: 1 ... 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ... 133
[>] «C чем это едят»: что такое блокчейн
habra.16
habrabot(difrex,1) — All
2017-04-12 22:30:04


Блокчейн — это многогранная, молодая и набирающая популярность технология. Её многогранность в первую очередь обуславливается тем, что она стоит на пересечении сразу нескольких научных дисциплин и сфер деятельности.

Например, распределенных вычислений, макроэкономики и даже теории игр — методы теории игр находят широкое [применение][1] в математическом аппарате криптовалют, стимулируя различные действия участников.

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

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

[1]: https://freedom-to-tinker.com/2014/12/26/consensus-in-bitcoin-one-system-many-models/
[2]: https://habrastorage.org/files/953/384/e15/953384e159c24cc9b54d7dc0a27fbcd3.jpg
[3]: https://habrahabr.ru/company/bitfury/blog/326340/
[4]: https://habrahabr.ru/post/326340/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Lazarus вездесущий
habra.16
habrabot(difrex,1) — All
2017-04-12 23:30:05


Взлом Sony Entertainment, ограбление центробанка Бангладеш и дерзкие атаки на систему SWIFT по всему миру, уничтожение данных южнокорейских медиа- и финансовых компаний. Казалось бы, между этим акциями нет ничего общего. И каждый раз это были одни и те же ребята из [группы Lazarus][1].

Впечатляют и масштаб кампаний, и разнообразие, и объем затрат – только наши исследователи смогли увязать с Lazarus более 150 вредоносных инструментов! Фактически для каждой атаки хакеры писали новые инструменты – от эксплойтов до стирателей. Код был новый, но не полностью, что в конечном итоге их и выдало. Подробный отчет об известной деятельности Lazarus содержит 58 страниц, здесь же я приведу наиболее любопытные моменты.
[Читать дальше →][2]

[1]: https://securelist.com/blog/sas/77908/lazarus-under-the-hood/
[2]: https://habrahabr.ru/post/326366/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Векторные модели и русская литература
habra.16
habrabot(difrex,1) — All
2017-04-13 08:00:03


![image][1]



Вы никогда не задумывались, почему тексты классических русских писателей так ценятся, а сами писатели считаются мастерами слова? Дело явно не только в сюжетах произведений, не только в том, _о чём_ написано, но и в том, _как_ написано. Но при быстром чтении по диагонали осознать это трудно. Кроме того, текст какого-нибудь значимого романа нам просто не с чем сравнить: почему, собственно, так прекрасно, что в этом месте появилось именно это слово, и чем это лучше какого-то другого? В какой-то мере реальное словоупотребление могло бы контрастно оттенить потенциальное, которое можно найти в черновиках писателя. Писатель не сразу вдохновенно пишет свой текст от начала до конца, он мучается, выбирает между вариантами, те, что кажутся ему недостаточно выразительными, он вычеркивает и ищет новые. Но черновики есть не для всех текстов, они отрывочны и читать их сложно. Однако можно провести такой эксперимент: заменить все поддающиеся замене слова на похожие, и читать классический текст параллельно с тем, которого никогда не было, но который мог бы возникнуть в какой-то параллельной вселенной. Попутно мы можем попытаться ответить на вопрос, почему это слово в этом контексте лучше, чем другое, похожее на него, но всё-таки другое.



А сейчас всё это (кроме собственно чтения) можно сделать автоматически.

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

[1]: https://img-fotki.yandex.ru/get/151273/26204090.b/0_91eb2_abccf5e3_orig.png
[2]: https://habrahabr.ru/post/326380/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как написать чат-бота для vk.com за 3 минуты
habra.16
habrabot(difrex,1) — All
2017-04-13 11:30:04


К сожалению, на данный момент нет хороших библиотек на Python2, для того, чтобы быстро создать чат-бота. Ниже я покажу, как легко можно написать примитивного чат бота для VK, используя API VK.



Статья написана для новичков, чтобы показать, что ничего сложного в написании ботов на Python нет.

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

[1]: https://habrahabr.ru/post/326312/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Модель колебательного звена в режиме резонансных колебаний на Python
habra.16
habrabot(difrex,1) — All
2017-04-13 11:30:04


### Введение


В статье [1] я в строгом соответствии с общеизвестной теорией колебательных процессов рассмотрел колебательное звено, построив переходные процессы с применением библиотек SymPy и NumPy.

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

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

[1]: https://habrahabr.ru/post/326296/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Безопасность OAuth в эпоху мобильных приложений, или о чем молчит интернет
habra.16
habrabot(difrex,1) — All
2017-04-13 11:30:04


![image][1]

_«В API ВКонтакте для получения ключа доступа используется открытый протокол OAuth 2.0. При этом пользователь не передает логин и пароль приложению, поэтому его аккаунт не может быть скомпрометирован»_ — [документация VK API][2].

_«ОАuth — это открытый протокол, предоставляющий простой и безопасный способ авторизации для мобильных, десктопных и веб приложений»_ — вольный перевод слогана [oauth.net][3].

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

Материал насыщен специфической терминологией и рассчитан на подготовленного читателя.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/c8b/2e9/d3d/c8b2e9d3d633433e94e67534b05604cd.png
[2]: https://vk.com/dev/access_token
[3]: https://oauth.net/
[4]: https://habrahabr.ru/post/320744/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Методы обхода защитных средств веб-приложений при эксплуатации SQL-инъекций
habra.16
habrabot(difrex,1) — All
2017-04-13 15:00:05


![image][1]


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

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

[1]: https://habrastorage.org/getpro/habr/post_images/932/702/983/9327029838f49839472ca640e7925bae.jpg
[2]: https://habrahabr.ru/post/326362/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Операторы для Kubernetes: как запускать stateful-приложения в кластере
habra.16
habrabot(difrex,1) — All
2017-04-13 15:30:05


## Проблема stateful-приложений в кластере


Конфигурация, запуск и дальнейшее масштабирование приложений и служб осуществляются просто, если речь идёт о случаях, классифицируемых как stateless, т.е. без сохранения данных. Такие сервисы удобно запускать в Kubernetes, пользуясь его стандартными API, потому что всё происходит «из коробки»: по стандартным конфигурациям, без привлечения какой-либо специфики и магии.

Проще говоря, для запуска в кластере из контейнеров ещё пяти копий бэкенда на PHP/Ruby/Python требуется лишь 5 раз поднять новый сервер и скопировать исходники. Поскольку и исходники, и init-скрипт лежат в образе, масштабирование stateless-приложения становится совсем элементарным. Как хорошо известно любителям контейнеров и микросервисной архитектуры, сложности начинаются для **приложений категории stateful**, т.е. с сохранением данных, таких как базы данных и кэши (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra…). Это касается как софта, самостоятельно реализующего кворумный кластер (например, Percona XtraDB и Cassandra), так и софта, требующего отдельных управляющих утилит (такого, как Redis, MySQL, PostgreSQL…).

Сложности возникают по той причине, что исходников и запуска сервиса становится не достаточно — нужно выполнить еще некоторые действия. Как минимум — скопировать данные и/или присоединиться к кластеру. А если точнее, то эти сервисы требуют понимания, как их правильно масштабировать, обновлять и переконфигурировать без потери данных и их временной недоступности. Учёт этих потребностей и называется «эксплуатационными знаниями» (operational knowledge).
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/326414/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Библиотека глубокого обучения Tensorflow
habra.16
habrabot(difrex,1) — All
2017-04-13 16:00:04


Здравствуй, Хабр!


![][1]

Цикл статей по инструментам для обучения нейронных сетей продолжается обзором популярного фреймворка Tensorflow.


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

[1]: https://habrastorage.org/files/063/6d1/1af/0636d11afa654531b08986cc3ff1b4ca.png
[2]: https://habrahabr.ru/post/324898/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Операторы для Kubernetes: как запускать stateful-приложения
habra.16
habrabot(difrex,1) — All
2017-04-13 16:00:04


## Проблема stateful-приложений в Kubernetes


Конфигурация, запуск и дальнейшее масштабирование приложений и служб осуществляются просто, если речь идёт о случаях, классифицируемых как stateless, т.е. без сохранения данных. Такие сервисы удобно запускать в Kubernetes, пользуясь его стандартными API, потому что всё происходит «из коробки»: по стандартным конфигурациям, без привлечения какой-либо специфики и магии.

Проще говоря, для запуска в кластере из контейнеров ещё пяти копий бэкенда на PHP/Ruby/Python требуется лишь 5 раз поднять новый сервер и скопировать исходники. Поскольку и исходники, и init-скрипт лежат в образе, масштабирование stateless-приложения становится совсем элементарным. Как хорошо известно любителям контейнеров и микросервисной архитектуры, сложности начинаются для **приложений категории stateful**, т.е. с сохранением данных, таких как базы данных и кэши (MySQL, PostgreSQL, Redis, ElasticSearch, Cassandra…). Это касается как софта, самостоятельно реализующего кворумный кластер (например, Percona XtraDB и Cassandra), так и софта, требующего отдельных управляющих утилит (такого, как Redis, MySQL, PostgreSQL…).

Сложности возникают по той причине, что исходников и запуска сервиса становится не достаточно — нужно выполнить еще некоторые действия. Как минимум — скопировать данные и/или присоединиться к кластеру. А если точнее, то эти сервисы требуют понимания, как их правильно масштабировать, обновлять и переконфигурировать без потери данных и их временной недоступности. Учёт этих потребностей и называется «эксплуатационными знаниями» (operational knowledge).
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/326414/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Подделываем письма от крупнейших российских банков
habra.16
habrabot(difrex,1) — All
2017-04-13 16:30:05


Однажды я просматривал электронную почту и наткнулся на спам от БинБанка. Это было особенно странно, так как мне предлагали не банковские услуги, а что-то на уровне «Доход 70000 рублей за день». Похоже, спамеры начали отправлять письма от имени разных компаний (вероятно, чтобы обходить какие-то фильтры). Если вам интересно почитать о подделке писем от крупнейших российских банков и полном игнорировании проблем со стороны службы безопасности, то добро пожаловать под кат.

![][1]
_Достаточно простой пример поддельного письма_
[Читать дальше →][2]

[1]: https://habrastorage.org/files/b7a/425/46e/b7a42546e427443ca28dc6cf73f21682.png
[2]: https://habrahabr.ru/post/326382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Windows 10 Creators Update: что нового в Bash/WSL и Windows Console
habra.16
habrabot(difrex,1) — All
2017-04-13 16:30:05


Когда вышел Windows 10 Anniversary Update (AU), подсистема Windows Subsystem for Linux (WSL) была ещё далека от завершения и страдала от многих несовместимостей, особенно с популярными средствами разработки вроде node.js, Java и др.

Однако было важно передать эту восхитительную новую функцию в руки реальных пользователей, чтобы мы могли узнать у них — у ВАС — что именно необходимо WSL, что работает, что не работает и т.д.

И сообщество ответило! :)

Таким образом, этот новый релиз подсистемы Windows для Linux и консоли Bash создан вами и для вас!
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/326432/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Отказоустойчивый кластер для балансировки нагрузки
habra.16
habrabot(difrex,1) — All
2017-04-13 17:30:03


Поговорим о горизонтальном масштабировании. Допустим, ваш проект вырос до размеров, когда один сервер не справляется с нагрузкой, а возможностей для вертикального роста ресурсов уже нет.

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

[1]: https://habrahabr.ru/post/326400/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Итоги первого раунда Russian Code Cup 2017
habra.16
habrabot(difrex,1) — All
2017-04-13 18:00:05


![image][1]
[The Sword of Midnight][2] by Mischeviouslittleelf



Второго апреля прошёл первый квалификационный раунд [Russian Code Cup 2017][3], на котором были побиты рекорды посещаемости за последние три года. Предлагаем вам немного цифр и разбор задач раунда:



A. [Марсианский волейбол][4]
B. [Раскраска стены][5]
C. [Магический артефакт][6]
D. [Менеджер памяти][7]
E. [ЛИСА][8]



На раунд зарегистрировалось 4552 участника, из них 1001 — новички, открывшие для себя RCC лишь в этом году. Активных участников в этот раз оказалось в два раза больше, чем в 2015 и 2016 годах! Всего нам прислали 6586 решений. Как обычно, популярнее всего — C++ в разных вариациях (2346 решений — C++ 14, 1425 на плюсах 11-й версии и примерно по 500 решений у GNU C++ 6.2 и Visual C++ 2013). Второе место по популярности у Java 8.0 (649), а третье — у Python (402 на Python 3.5 + 60 решений на PyPy 2.4.0). Самыми непопулярными для спортивного программирования оказались Perl, D и Haskell (на последнем написали ровно одно решение за весь раунд). Список всех поддерживаемых нами языков можно найти [здесь][9].

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

[1]: https://habrastorage.org/files/316/2e3/18e/3162e318e625415e94de7d950bc116b1.jpg
[2]: http://mischeviouslittleelf.deviantart.com/art/The-Sword-of-Midnight-447614715
[3]: http://www.russiancodecup.ru/ru/
[4]: #a-marsianskiy-voleybol
[5]: #b-raskraska-steny
[6]: #c-magicheskiy-artefakt
[7]: #d-menedzher-pamyati
[8]: #e-lisa
[9]: http://www.russiancodecup.ru/ru/rules/
[10]: https://habrahabr.ru/post/326332/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Стэнфордские курсы CS193P Зима 2017: Разработка iOS 10 приложений с помощью Swift
habra.16
habrabot(difrex,1) — All
2017-04-13 19:00:04


![][1]

Стэнфордский университет, США — один из лучших в мире в области информатики (Computer Science). Он щедро делится своими курсами, и одним из самых популярных и успешных курсов является курс CS193P по разработке приложений на iOS, который читает профессор Пол Хэгерти. Это курс читается ежегодно, начиная с 2010 года. На данный момент актуальным является курс CS193P [«Developing iOS 10 Apps with Swift»][2], Зима 2017 года — «Разработка iOS 10 приложений с использованием Swift», и на момент написания статьи уже выложены почти все Лекции (15 из 18) и почти все Задания (5 из 6) на [iTunes U][3] (но можно смотреть и на [Youtube][4]).
В новом курсе отчетливо видно, что профессор сделал небольшой разворот всего курса от ОБЪЕКТНО-ОРИЕНТИРОВАННОГО программирования, к ФУНКЦИОНАЛЬНОМУ программированию с множеством неизменяемых объектов с APIs похожими на математические функции.
Конечно, iOS вовсе не была сконструирована на основе идеи функционального программирования. Но люди, которые изобретали **[Swift,][5]** держали “в голове” идею о функциональном программировании. Так что при разработке вашего iOS приложения (по крайней мере в части Модели) вы можете использовать множество элементов функционального программирования.

Это новый рубеж в iOS программировании, потому что в течение 10 лет люди, в основном, использовали в iOS программировании только **[reference type][6]** объекты, имея в виду концепцию объектно-ориентированного программирования. Но когда вы программируете на Swift с помощью структур `structs` и перечислений ` enums`, и особенно если вы подключаете механизмы протоколов `protocols` и `Generics`, то вы можете реально сделать прекрасную работу, имеющую дело с реальным функциональным программированием.
[Читать дальше →][7]

[1]: https://habrastorage.org/files/38d/c44/73f/38dc4473fbf94b2986b2f7a2866e5199.png
[2]: https://itunes.apple.com/ru/course/developing-ios-10-apps-with-swift/id1198467120?l=en
[3]: https://itunes.apple.com/ru/course/developing-ios-10-apps-with-swift/id1198467120?l=en
[4]: https://www.youtube.com/watch?v=ilQ-tq772VI
[5]: https://www.apple.com/ru/swift/
[6]: https://developer.apple.com/swift/blog/?id=10
[7]: https://habrahabr.ru/post/326342/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Зачем использовать статические типы в JavaScript? (Преимущества и недостатки)
habra.16
habrabot(difrex,1) — All
2017-04-13 19:00:04


![][1]Мы о многом рассказали в [первой части][2]. Теперь с синтаксисом покончено, давайте наконец перейдём к самому интересному: изучению преимуществ и недостатков использования статических типов.


### Преимущество № 1: Вы можете заблаговременно находить баги и ошибки


Статическая проверка типов позволяет проверять, что определённый нами инвариант принимает значение `true`, даже не запуская программу. И если имеется какое-то нарушение этих инвариантов, оно будет обнаружено перед запуском программы, а не во время её работы.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/eb6/2e5/8f9/eb62e58f9a234ca890279a0063ed1423.jpg
[2]: https://habrahabr.ru/post/326304/
[3]: https://habrahabr.ru/post/326394/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Онлайн-конкурсы PHDays: да будет CTF
habra.16
habrabot(difrex,1) — All
2017-04-13 19:00:04


[![image][1]][2]

Отличная возможность настроиться на нужную волну перед [Positive Hack Days][3] и продемонстрировать практические навыки в области безопасности — участвовать в онлайн-конкурсах. В начале мая в рамках подготовки к форуму пройдут CTF, HackQuest от Wallarm и «Конкурентная разведка». На кону памятные призы и бесплатные приглашения на PHDays. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/160/f13/440/160f13440e91710238925bc822468a93.jpg
[2]: https://habrahabr.ru/company/pt/blog/326434/
[3]: https://www.phdays.ru
[4]: https://habrahabr.ru/post/326434/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как быстрее всего сфоткать 35 билбордов в Москве
habra.16
habrabot(difrex,1) — All
2017-04-13 19:00:04


Идеи, чем заняться на выходных, ITшники черпают из сотни разных источников. Я, к примеру, недавно увидел конкурс Открытого чемпионата школ по Экономике, заключающегося в том, чтобы **сфотографировать максимальное число билбордов Чемпионата**. Адреса организаторы любезно предоставили. И несмотря на то, что приз взрослому там не светит (это школьный конкурс), тем не менее крайне интересно было бы узнать, за какое минимальное время можно решить такую задачу.

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

[1]: https://habrastorage.org/files/90f/2aa/e20/90f2aae201004f00a2cff411368b1a88.png
[2]: https://habrahabr.ru/post/324864/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вышел GitLab 9.0: Подгруппы и Deploy Boards
habra.16
habrabot(difrex,1) — All
2017-04-13 20:00:05


Недавно мы выпустили **GitLab 9.0**, через 18 месяцев после [выпуска версии 8.0][1]. За это время мы сделали [множество значительных изменений в GitLab][2], выпуская новую версию 22 числа каждого месяца. Давайте кратко подведем итоги, к которым мы пришли с выпуска 8.0, и посмотрим, как старые фичи соотносятся с новыми из 9 версии. Или вы можете [перейти][3] к фичам, появившимся в 9.0.


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

[1]: https://about.gitlab.com/2015/09/22/gitlab-8-0-released/
[2]: https://about.gitlab.com/release-list/
[3]: #podgruppy-ce-ee
[4]: https://habrahabr.ru/post/326456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Третий сервис лишний: Telegram и сам дружит с телефонией
habra.16
habrabot(difrex,1) — All
2017-04-14 11:00:04


![][1]


Я всегда восхищался силой коллективного разума. И укреплению моей убежденности в ней послужила недавняя история: я [рассказал][2], как можно интегрировать телефонию с Telegram с помощью сервиса IFTTT, на что коллеги из Voximplant [ответили][3], как это можно сделать проще, а потом господин [recompileme][4] в своем комментарии обратил внимание на то, что удобный API телеграма решает задачу без участия каких-либо третьих сервисов.


![][5]


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


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

[1]: https://habrastorage.org/files/9fe/36b/52a/9fe36b52a02d46139d7abd0353a10cac.png
[2]: https://habrahabr.ru/company/uis/blog/325648/
[3]: https://habrahabr.ru/company/Voximplant/blog/326060/
[4]: https://habrahabr.ru/users/recompileme/
[5]: https://habrastorage.org/files/213/b4b/ab4/213b4bab4d984939b87aa15f7b1b28d0.png
[6]: https://habrahabr.ru/post/326490/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Суперсилы WinDbg для .NET-разработчиков
habra.16
habrabot(difrex,1) — All
2017-04-14 12:00:05


Продолжая серию публикаций по докладам на конференциях, мы остановились на лучшем докладе DotNext 2016 Moscow, в которой Саша [goldshtn][1] Гольдштейн рассказывает о возможностях WinDbg для отладки .NET приложений. Этот действительно мощный инструмент позволяет решать задачи, с которыми не справляется встроенный отладчик Visual Studio.

Особенно этот материал будет полезен тем, кому сложно смотреть доклады на английском языке, так как расшифровка переведена на великий и могучий!



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

[1]: https://habrahabr.ru/users/goldshtn/
[2]: https://habrahabr.ru/post/326454/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Статический анализ → уязвимость → профит
habra.16
habrabot(difrex,1) — All
2017-04-14 15:00:06


В статьях про [PVS-Studio][1] всё чаще говорят об уязвимостях и дефектах безопасности, которые можно найти с помощью статического анализа. Авторов этих статей критикуют (и я [в том числе][2]), что не каждая ошибка является дефектом безопасности. Возникает однако интересный вопрос, можно ли пройти весь путь от сообщения статического анализатора до эксплуатации найденной проблемы и получения какой-то выгоды. В моём случае выгода всё же осталась теоретической, но эксплуатировать ошибку удалось, не особо вникая в код проекта.

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

[1]: https://habrahabr.ru/company/PVS-studio/
[2]: https://habrahabr.ru/company/pvs-studio/blog/324114/#comment_10124664
[3]: https://habrahabr.ru/post/326384/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Отчет и материалы SPA meetup'а 8 апреля 2017
habra.16
habrabot(difrex,1) — All
2017-04-14 16:00:06


![image][1]

В прошедшую субботу в офисе Avito прошел SPA Meetup. Это митап-сателит [Moscow.js][2], ориентированный на фронтенд-разработчиков, которым интересна тема веб-приложений (Single Page Application), и сочувствующих им. Это уже третья встреча, которая получилась весьма насыщенной: 3 доклада, 2 блица, свободный микрофон, панельная дискуссия и, конечно же, живое общение. В этом посте мы немного расскажем о том, как это было, и поделимся видеозаписями докладов.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/498/9e7/d16/4989e7d16eb14246a0a7de8e32c88e3a.jpg
[2]: http://moscowjs.ru/
[3]: https://habrahabr.ru/post/326524/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Шаг за шагом: собираем и тестируем Интернет вещей на базе платформы SAP Cloud Platform
habra.16
habrabot(difrex,1) — All
2017-04-14 18:30:04


----

Эта статья может помочь участникам [**конкурса SAP Кодер 2017**][1] решить одну из задач
----

Интернет вещей – захватывающая тема, которая уже завтра изменит мир. Существующие IoT-платформы позволяют протестировать технологию, чем мы и займемся.

Перед вами пошаговый пример создания и настройки системы сбора данных с устройств на базе Arduino и ее подключение к SAP Cloud Platform.

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

[1]: http://sapcoder.ru
[2]: https://habrastorage.org/getpro/habr/post_images/5c5/0a1/8fc/5c50a18fc748bce569a8e41a2a4b1182.png
[3]: https://habrahabr.ru/company/sap/blog/326526/
[4]: https://habrahabr.ru/post/326526/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] N причин, чтобы использовать Create React App
habra.16
habrabot(difrex,1) — All
2017-04-14 20:00:04


![][1]

Create React App — отличный инструмент для быстрого старта React-приложений. Вы не тратите время на настройку Webpack, Babel и других привычных инструментов. Они заранее настроены и спрятаны, так что разработчики могут сфокусироваться на коде и бизнес-логике приложения.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/6e5/120/ce3/6e5120ce36be4f4b8103ad47b8df703d.jpg
[2]: https://habrahabr.ru/post/326520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Похоже, я не предприниматель
habra.16
habrabot(difrex,1) — All
2017-04-15 00:30:04


Для того, чтобы это понять, мне потребовалось четыре миллиона рублей (половина из которых — мои) и четыре года.

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

В этой статье я хотел бы
— поделиться сделанными выводами
— порекомендовать проект, если вы хотите присоединиться к нему в качестве разработчика/инвестора
— выложить техническую документацию, если вы захотите сделать форк

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

[1]: https://habrastorage.org/files/ca3/872/2fc/ca38722fce9749f18f477c3e0e2a4d9b.jpg
[2]: https://habrahabr.ru/post/326014/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Генератор проектов
habra.16
habrabot(difrex,1) — All
2017-04-15 02:30:04


В данной статье речь пойдет о специфическом программном продукте, предназначенном для разработки больших программно-информационных комплексов. Этот продукт называется «Генератор проектов», и в его основе лежит инструментальный подход к программированию, когда сам процесс разработки программных систем рассматривается как объект автоматизации. Эта тема была довольно модной где-то в 70-80-х годах прошлого века, но на наш взгляд, такой подход не устарел и сегодня. По крайней мере, нашему творческому коллективу долгие годы удавалось разрабатывать промышленные автоматизированные системы различного назначения с помощью [собственного инструментария][1].

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

[1]: https://www.ustech.ru/ostcgi/ostagn?section=projects&project=all&comp=all
[2]: https://habrahabr.ru/post/326564/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 15: Дырявый модем в Huawei, VirusTotal как канал утечки данных, Microsoft патчится от Dridex
habra.16
habrabot(difrex,1) — All
2017-04-15 11:00:04


Бывают же люди, до чужих багов жадные. Ральф-Филипп Вайнман из Comsecuris явно слегка повернут на уязвимостях беспроводных модемов – он копает эту тему как минимум с 2011 года, безжалостно бичуя поставщиков дырявых чипсетов. Почти каждый год выступает с новым докладом. В этот раз [досталось][1] Huawei, точнее, ее дочке HiSilicon Technologies. И достанется еще не раз: компания по доброте душевной [опубликовал][2]а исходники ядра Huawei H60 Linux, что крутится у них под чипами серии Kirin, а вместе с ними слила и прошивку для HiSilicon Balong – сотового модема, который стоит в смартфонах Huawei.
[Читать дальше →][3]

[1]: https://threatpost.com/baseband-zero-day-exposes-millions-of-mobile-phones-to-attack/124833/
[2]: https://github.com/honor6-dev
[3]: https://habrahabr.ru/post/326554/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Переход с bash на zsh
habra.16
habrabot(difrex,1) — All
2017-04-15 20:00:04


Чтобы перейти с bash на zsh необходимо знать базовые отличия между ними — без этого будет сложно провести первоначальную настройку zsh в `~/.zshrc`.



Я не нашёл краткого описания этих отличий когда переходил сам, и мне пришлось потратить немало времени на вычитывание документации zsh. Надеюсь, эта статья упростит вам переход на zsh.



## Зачем переходить {#zachem-perehodit}



Для начала — а стоит ли вообще тратить своё время и внимание на переход? Учить ещё один диалект sh, менее распространённый чем POSIX sh или bash, заново заниматься настройкой рабочего окружения…



На мой взгляд, если вы проводите много времени в консоли, вам нравятся Vim или Emacs и вы уже потратили немало времени на их настройку "под себя" — однозначно стоит! Zsh по духу очень на них похожа: это очень сложная и гибкая программа, чьи возможности _полностью_ мало кто знает, но потратив некоторое время на настройку можно получить **очень удобную лично вам рабочую среду**.

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

[1]: https://habrahabr.ru/post/326580/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Свои потоки ввода-вывода в C++ с помощью std::streambuf
habra.16
habrabot(difrex,1) — All
2017-04-15 22:00:04


_В статье на примерах объясняется, как реализовать поддержку потокового ввода-вывода из стандартной библиотеки (<iostream>) для своих классов.
В тексте статьи будет часто встречаться слово «поток», что означает именно поток ввода-вывода ((i/o)stream), но не поток выполнения (thread). Потоки выполнения в статье не рассматриваются._


# Введение


Потоки из стандартной библиотеки — мощный инструмент. Аргументом функции можно указать поток, и это обеспечивает ее универсальность: она может работать как со стандартными файлами (fstream) и консолью (cin/cout), так и с сокетами и COM-портами, если найти соответствующую библиотеку.

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

[1]: https://habrahabr.ru/post/326578/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как сделать свою IDE уровня IDEA
habra.16
habrabot(difrex,1) — All
2017-04-16 00:00:04


Некоторое время назад я опубликовал [пост][1], в котором поднял тему низкого уровня качества моего любимого инструмента — PyCharm, и спросил: что делать? Данная проблема видится мне совершенно обескураживающей: 21-й век на дворе, а единственная доступная мне профессиональная IDE развивается по принципу «лучше — больше, но хуже». Имеется около десятка багов, исправление которых я лично жду годами, не говоря уже о тех проблемах, которые мне стало лень зарепортить. Количество багов растёт каждый год с постоянной скоростью, а в качестве оправдания я слышу рассказ о зависимости количества багов от количества пользователей. Альтернатив нет, а пилить свою IDE — почти нереально. Так что же делать?

Среди потока эмоциональных комментариев меня особо заинтересовал один — никем не замеченный, в котором пользователь [VISTALL][2] скромно [сообщил][3], как он решил эту проблему для себя. Он сделал свой форк IDEA для .NET и C# — **[Consulo IDE][4]**. Для меня лично такое заявление стало полной неожиданностью. Извините, если кто-то не разделяет моего удивления, но для меня это совершенно непостижимо так же, как вездесущие вечные баги в PyCharm. Ведь IDE разрабатывают большие команды разработчков, а он решил сделать свой форк, пусть даже и форк, но свой, который нужно поддерживать и развивать самому… **Как???** Этот вопрос я решил задать лично автору форка — [Валерию Семенчуку][5], а заодно и много других вопросов. Слово за слово, получилось небольшое интервью, надеюсь, интересное не только мне… [Читать дальше →][6]

[1]: https://habrahabr.ru/post/319774/
[2]: https://habrahabr.ru/users/vistall/
[3]: https://habrahabr.ru/post/319774/#comment_10021290
[4]: https://github.com/consulo
[5]: https://habrahabr.ru/users/VISTALL/
[6]: https://habrahabr.ru/post/326588/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VulnHub: Новая серия — hackfest2016 Quaoar
habra.16
habrabot(difrex,1) — All
2017-04-16 23:00:03


![][1]

Всем доброго времени суток. Давно я не выкладывал райтапы лаб с [VulnHub][2]. За это время там появилась небольшая подборка образов виртуальных машин, готовых для взлома. В этой статье начнём разбор образов подготовленных к недавно прошедшему [Hackfest 2016 CTF][3], а именно рассмотрим _Quaoar_, скачать которую вы можете [тут][4] [Читать дальше →][5]

[1]: https://habrastorage.org/files/305/c11/696/305c11696e0a48f9be2b40176fdb3131.jpg
[2]: https://www.vulnhub.com
[3]: http://hackfest.ca/
[4]: https://www.vulnhub.com/entry/hackfest2016-quaoar,180/
[5]: https://habrahabr.ru/post/326622/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Своя криптовалюта на ethereum
habra.16
habrabot(difrex,1) — All
2017-04-17 04:30:03


![][1]


Общая рыночная капитализация глобального рынка криптовалют за последний год выросла с $6 млрд (в январе 2016 года) до $28 млрд (на текущий момент). С начала 2017 года рынок криптовалют вырос примерно в полтора раза. На биржах торгуются уже больше сотни разных криптовалют. Крупные организации объединяются в консорциумы, чтобы выпускать свою валюту. Даже государства делают свои национальные криптовалюты. Технологии блокчейна дошли до такого уровня, что уже почти любой может запустить свою криптовалюту, чем мы в этой статье и займемся. Легче всего создать свои монеты на смарт контрактах на базе ethereum.

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

[1]: https://habrastorage.org/files/93e/8dd/767/93e8dd767e0c469483bf5d8aa5277bfd.png
[2]: https://habrahabr.ru/post/326626/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Bash on Windows: практические опыты по скрещиванию ежей и ужей
habra.16
habrabot(difrex,1) — All
2017-04-17 07:30:04


В прилетевшем обновлении Windows 10 Creators Update появилась интереснейшая возможность — запускать виндовые программы в этом их линуксе. Официальные примеры меня категорически не устроили — евангелисты Microsoft предложили мне [рисовать корову в PowerShell и запускать Notepad из bash][1]. Чё, правда? Это всё до чего вы додумались?

![image][2]

Как человек страстно ждавший возможность запуска exe-файлов внутри WSL, я хочу поделиться опытом правильного использования новой фичи.
[Читать дальше →][3]

[1]: https://blogs.msdn.microsoft.com/commandline/2017/04/11/windows-10-creators-update-whats-new-in-bashwsl-windows-console/
[2]: https://habrastorage.org/getpro/habr/post_images/64d/43a/e06/64d43ae06ae86f4b416effd34a30d1a9.png
[3]: https://habrahabr.ru/post/326634/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Генератор тестовых данных для C++
habra.16
habrabot(difrex,1) — All
2017-04-17 10:30:04


![image][1]



При unit-тестированиии кода рано или поздно встает вопрос тестовых данных. И если в одном случае достаточно просто несколько жестко зашитых переменных, то в других случаях необходимы сколько-нибудь большие и случайные данные. В управляемом мире нет проблем с генерацией пользовательских типов (взять тот же Autofixture), но мир C++ зачастую вызывает боль и страдание (поправьте меня, если это не так). Не так давно я познакомился с замечательной библиотекой boost::di и под ее влиянием у меня начала созревать идея библиотеки, которая позволила бы C++ программистам генерировать пользовательские типы данных, забитых случайными значаниями, и это не потребовало бы предварительного их описания. Получилось что-то вроде:


struct dummy_member{
float a;
int b;
};
struct dummy{
explicit dummy(dummy_member val, std::string c) : val_(val), c_(c) {}
private:
dummy_member val_;
std::string c_;
};
int main(int argc, char* argv){
auto d = datagen::random();
return 0;
}

→ [Ссылка на код][2]. Библиотека header-only,C++14. Всех интересующихся прошу под кат.

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

[1]: https://habrastorage.org/files/761/14f/453/76114f45323147bc9cec24372b1ddd55.jpeg
[2]: https://github.com/ukhegg/datagen
[3]: https://habrahabr.ru/post/326576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] M* — алгоритм поиска кратчайшего пути, через весь мир, на смартфоне
habra.16
habrabot(difrex,1) — All
2017-04-17 11:00:03


![][1]

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

Под катом представлена обобщенная эвристика к алгоритму A\*, полезная именно в свете практической пригодности на больших графах при ограниченных ресурсах, например, на мобилке.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/774/fa4/ae7/774fa4ae79404ae3990cfa3312b1c621.png
[2]: https://habrahabr.ru/post/326638/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Добавили возможность встраивать JS-скрипты в доски. Как мы делаем свою систему управления проектами
habra.16
habrabot(difrex,1) — All
2017-04-17 11:00:03


Первого апреля системе YouGile исполнился год. Нешуточный срок для проекта, который начался с мысли — «А давайте на выходных сделаем себе удобную систему управления проектами». Сейчас несколько тысяч пользователей, в основном переходят с BaseCamp и Trello, все открыто для [тестирований и присылания][1] нам обратной связи.

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

**В общем, свежая функция в том, что теперь, немного зная JavaScript, можно полностью модифицировать под себя базовую версию системы.**

Работает просто — по комбинации клавиш Ctrl+~ вызывается встроенный редактор JavaScript.

![][2]

Можно на JS писать или заливать любые скрипты и они будут менять работу отдельных досок или проектов в компании. Выделена библиотека — примерно 200 объектов и методов, которые позволяют менять параметры системы, выполнять свой код на различные события в системе и удобно создавать свои элементы интерфейса или изменять существующие.
**В статье рассматриваются примеры и задается вопрос о необходимости такой функции в системах управления проектами.**
[Читать дальше →][3]

[1]: https://ru.yougile.com/
[2]: https://habrastorage.org/files/d83/c85/9d4/d83c859d4ba1492094a2e6ae1b795076.jpg
[3]: https://habrahabr.ru/post/325608/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Введение в машинное обучение с tensorflow
habra.16
habrabot(difrex,1) — All
2017-04-17 14:30:04


> _Если мы в ближайшие пять лет построим машину с интеллектуальными возможностями одного человека, то ее преемник уже будет разумнее всего человечества вместе взятого. Через одно-два поколения они попросту перестанут обращать на нас внимание. Точно так же, как вы не обращаете внимания на муравьев у себя во дворе. Вы не уничтожаете их, но и не приручаете, они практически никак не влияют на вашу повседневную жизнь, но они там есть._
> **Сет Шостак**



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


Серия моих статей является расширенной версией того, что я хотел увидеть когда только решил познакомиться с нейронными сетями. Он рассчитан в первую очередь на программистов, желающих познакомится с tensorflow и нейронными сетями. Уж не знаю к счастью или к сожалению, но эта тема настолько обширна, что даже мало-мальски информативное описание требует большого объёма текста. Поэтому, я решил разделить повествование на 4 части:

1. Введение, знакомство с tensorflow и базовыми алгоритмами (эта статья)
2. Первые нейронные сети
3. Свёрточные нейронные сети
4. Рекуррентные нейронные сети
Изложенная ниже первая часть нацелена на то, чтобы объяснить азы работы с tensorflow и попутно рассказать, как машинное обучение работает впринципе, на примере tensorfolw. Во второй части мы наконец начнём проектировать и обучать нейронные сети, в т.ч. многослойные и обратим внимание на некоторые нюансы подготовки обучающих данных и выбора гиперпараметров. Поскольку свёрточные сети сейчас пользуются очень большой популярность, то третья часть выделена для подробного объяснения их работы. Ну, и в заключительной части планируется рассказ о рекуррентных моделях, на мой взгляд, — это самая сложная и интересная тема.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/326650/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Bash-скрипты, часть 4: ввод и вывод
habra.16
habrabot(difrex,1) — All
2017-04-17 15:00:05


> → [Bash-скрипты: начало][1]
> → [Bash-скрипты, часть 2: циклы][2]
> → [Bash-скрипты, часть 3: параметры и ключи командной строки][3]


В прошлый раз, в третьей части этой серии материалов по bash-скриптам, мы говорили о параметрах командной строки и ключах. Наша сегодняшняя тема — ввод, вывод, и всё, что с этим связано.

[![image][4]][5] [Читать дальше →][6]

[1]: https://habrahabr.ru/company/ruvds/blog/325522/
[2]: https://habrahabr.ru/company/ruvds/blog/325928/
[3]: https://habrahabr.ru/company/ruvds/blog/326328/
[4]: https://habrastorage.org/files/803/892/bfe/803892bfe548499aa763df324d40fd01.png
[5]: https://habrahabr.ru/company/ruvds/blog/326594/
[6]: https://habrahabr.ru/post/326594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Открытый курс машинного обучения. Тема 8. Обучение на гигабайтах с Vowpal Wabbit
habra.16
habrabot(difrex,1) — All
2017-04-17 15:30:04


Всем привет!



Вот мы постепенно и дошли до продвинутых методов машинного обучения, сегодня обсудим, как вообще подступиться к обучению модели, если данных гигабайты и десятки гигабайт. Обсудим приемы, позволяющие это делать: стохастический градиентный спуск (SGD) и хэширование признаков, посмотрим на примеры применения библиотеки Vowpal Wabbit. Домашнее задание будет как на реализацию SGD-алгоритмов, так и на обучение классификатора вопросов на StackOverflow по выборке в 10 Гб.



Поехали!


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

[1]: https://habrahabr.ru/post/326418/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Data science и качественный код
habra.16
habrabot(difrex,1) — All
2017-04-17 16:30:04


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



Поэтому сегодня представляем на ваш строгий суд превью python'овской библиотеки по работе с датасетами и data science моделями. С ее помощью ваш код на python'е может выглядеть так:


my_dataset.
load('/some/path').
normalize().
resize(shape=(256, 256, 256)).
random_rotate(angle=(-30, 30)).
random_crop(shape=(64, 64, 64))

for i in range(MAX_ITER):
batch = my_dataset.next_batch(BATCH_SIZE, shuffle=True)
# обучаем модель, подавая ей батчи с данными

В этой статье вы узнаете об основных классах и методах, которые помогут сделать ваш код простым, понятным и удобным.


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

[1]: https://habrahabr.ru/post/326656/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Книга «Экстремальное программирование: разработка через тестирование»
habra.16
habrabot(difrex,1) — All
2017-04-18 00:30:03


![image][1] Возвращение знаменитого бестселлера. Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно? Чтобы достичь цели, попробуйте тестировать программу еще до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-Driven-Development — разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелые выводы. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой методики. В книге приведены два программных проекта, целиком и полностью реализованных с использованием TDD. За рассмотрением примеров следует обширный каталог приемов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/77a/53a/adf/77a53aadf17e4f1aad08251aca9b4bd5.jpg
[2]: https://habrahabr.ru/post/326662/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] В поисках идеальной модели лицензирования
habra.16
habrabot(difrex,1) — All
2017-04-18 10:30:05


Наверняка вы знаете о лицензиях MIT, GPL, BSD, Apache и тому подобных. Предполагаю, что превалирующее большинство читателей этой статьи ярые приверженцы Open Source и ненавидят проприетарщину. Правда, некоторые люди не особо различают понятия “открытый” и “бесплатный” софт, но не суть. Я предлагаю обсудить плюсы и минусы текущих подходов, и поразмыслить об устройстве более эффективной экосистемы разработки сложных программных продуктов сообществом независимых разработчиков.
![][1]

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

[1]: https://habrastorage.org/files/0fa/79e/66a/0fa79e66a7b047b583811e4cc532f70e.jpg
[2]: https://habrahabr.ru/post/326674/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Доверенная загрузка Шрёдингера. Intel Boot Guard
habra.16
habrabot(difrex,1) — All
2017-04-18 11:00:04


![][1]

Предлагаем вновь спуститься на низкий уровень и поговорить о безопасности прошивок x86-совместимых компьютерных платформ. В этот раз главным ингредиентом исследования является Intel Boot Guard (не путать с Intel BIOS Guard!) – аппаратно-поддержанная технология доверенной загрузки BIOS, которую вендор компьютерной системы может перманентно включить или выключить на этапе производства. Ну а рецепт исследования нам уже знаком: тонко нарезать реверс-инжинирингом имплементацию данной технологии, описать её архитектуру, наполнив недокументированными деталями, приправить по вкусу векторами атак и перемешать. Подбавим огня рассказом о том, как годами клонируемая ошибка на производстве нескольких вендоров позволяет потенциальному злоумышленнику использовать эту технологию для создания в системе неудаляемого (даже программатором) скрытого руткита.

Кстати, в основе статьи – доклады «На страже руткитов: Intel BootGuard» с конференции [ZeroNights 2016][2] и 29-й встречи [DefCon Russia][3] (обе презентации [здесь][4]).

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

[1]: https://habrastorage.org/files/427/db4/031/427db403148c43f386cb653731c6438d.jpg
[2]: https://2016.zeronights.ru/
[3]: https://vk.com/defconrussia
[4]: https://github.com/flothrone/bootguard
[5]: https://habrahabr.ru/post/326556/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Заклиная техническое интервью
habra.16
habrabot(difrex,1) — All
2017-04-18 12:00:04


Перевод (возможно лучшей) [статьи Aphyr][1].



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


> Видрун, зачатая от морских ветров в верхушках елей,
> Видрун, зелень моих ветвей, радость и ноша моих дней,
> Видрун, всех вдохновенней и умней, да станет мудрость нашего клана твоей:
>
> Никогда не читай Hacker News[Читать дальше →][2]

[1]: https://aphyr.com/posts/341-hexing-the-technical-interview
[2]: https://habrahabr.ru/post/326726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] iThink — первая iOS-конференция от NIX Solutions в Харькове
habra.16
habrabot(difrex,1) — All
2017-04-18 14:30:04


![][1]

Приглашаем вас в iThink — уже пятое сообщество от NIX Solutions! Впереди первая конференция, и мы приглашаем как начинающих, так и опытных разработчиков присоединиться к нашему iOS-комьюнити. На встрече вы сможете познакомиться и пообщаться с четырьмя экспертами iOS-разработки, прокачаться в трех актуальных темах, узнать много нового и устроить себе насыщенный вечер пятницы.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/79d/5be/9ad/79d5be9adcc242d49199abee95f2fed2.jpg
[2]: https://habrahabr.ru/post/326498/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Заклиная техническое интервью
habra.16
habrabot(difrex,1) — All
2017-04-18 14:30:04


Перевод (возможно лучшей) [статьи Aphyr][1].



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


> Видрун, зачатая от морских ветров в верхушках елей,
> Видрун, зелень моих ветвей, радость и ноша моих дней,
> Видрун, всех вдохновенней и умней, да станет мудрость нашего клана твоей:
>
> Никогда не читай Hacker News[Читать дальше →][2]

[1]: https://aphyr.com/posts/341-hexing-the-technical-interview
[2]: https://habrahabr.ru/post/326726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Методы обхода защитных средств веб-приложений при эксплуатации XSS-векторов
habra.16
habrabot(difrex,1) — All
2017-04-18 15:00:04


![image][1]


Несмотря на большое количество рекомендаций по защите веб-приложения от клиент-сайд атак, таких как XSS (cross site scripting) многие разработчики ими пренебрегают, либо выполняют эти требования не полностью. В статье будут рассмотрены способы обхода средств фильтрации и при эксплуатации xss-векторов.

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

[1]: https://habrastorage.org/getpro/habr/post_images/060/a40/c2a/060a40c2afe46ffb448e754d465d9381.png
[2]: https://habrahabr.ru/post/326722/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Фильм «Скрытые фигуры»: задачи из фильма и современный подход к расчетам орбиты и возвращения на Землю
habra.16
habrabot(difrex,1) — All
2017-04-18 16:00:04


![][1]


_Перевод поста Джеффри Брайанта (Jeffrey Bryant), Пако Джейна (Paco Jain) и Майкл Тротта (Michael Trott) "[Hidden Figures: Modern Approaches to Orbit and Reentry Calculations][2]".
Код, приведенный в статье, можно скачать [здесь][3].
Выражаю огромную благодарность [Полине Сологуб][4] за помощь в переводе и подготовке публикации_
----


## Содержание


— [Размещение спутника в определенном месте][5]
— [Константы и первичная обработка][6]
— [Вычисления][7]
— [Построение графика][8]
— [Как рассчитываются орбиты сегодня][9]
[Моделирование возвращаемого спутника][10]

----

Вышедший недавно в кинотеатрах фильм [_Скрытые фигуры_][11] получил хорошие отзывы. Действие разворачивается в важный период истории США; в нем затрагивается также ряд тем вроде гражданских прав и космической гонки. В центре повествования — история [Кэтрин Джонсон][12] и ее коллег ([Дороти Воган][13] и [Мэри Джексон][14]) из NASA в период развертывания программы Меркурий и ранних исследований пилотируемых космических полетов. Внимание также акцентируется на драматической борьбе за гражданские права афро-американских женщин в NASA, происходившей в то время. Компьютеры в то время едва появились, так что способность Джонсон и ее коллег решать сложные навигационные задачи орбитальной механики без использования компьютера обеспечили важную проверку ранних компьютерных результатов.

![][15]

Я остановлюсь на двух аспектах ее научной работы, упомянутых в фильме: _вычислениях орбиты_ и _расчетах, связанных с вхождением в атмосферу_. Для орбитальных вычислений я сначала сделал ровно то же, что и Джонсон, а затем применил более современный прямой подход с использованием инструментов [Wolfram Language][16]. В фильме упоминается о решении дифференциальных уравнений [методом Эйлера][17]; я же буду сравнивать этот метод с более современным и вычислю возвратную траекторию с помощью данных модели атмосферы, полученных непосредственно из Wolfram Language).
[Читать дальше →][18]

[1]: https://habrastorage.org/files/a4c/06c/f0d/a4c06cf0dd524789a0131cf391f03be9.png
[2]: http://blog.wolfram.com/2017/02/24/hidden-figures-modern-approaches-to-orbit-and-reentry-calculations/
[3]: http://blog.wolfram.com/data/uploads/2017/02/Hidden-figures-modern-approaches-to-orbit-and-reentry-calculations.cdf
[4]: https://vk.com/id65091763
[5]: https://habrahabr.ru/company/wolfram/blog/NUMBER/#1
[6]: https://habrahabr.ru/company/wolfram/blog/NUMBER/#2
[7]: https://habrahabr.ru/company/wolfram/blog/NUMBER/#3
[8]: https://habrahabr.ru/company/wolfram/blog/NUMBER/#4
[9]: https://habrahabr.ru/company/wolfram/blog/NUMBER/#5
[10]: https://habrahabr.ru/company/wolfram/blog/NUMBER/#6
[11]: http://www.wolframalpha.com/input/?i=Hidden+Figures
[12]: https://ru.wikipedia.org/wiki/%D0%94%D0%B6%D0%BE%D0%BD%D1%81%D0%BE%D0%BD,_%D0%9A%D1%8D%D1%82%D1%80%D0%B8%D0%BD
[13]: https://en.wikipedia.org/wiki/Dorothy_Vaughan
[14]: https://en.wikipedia.org/wiki/Mary_Jackson_(engineer)
[15]: https://habrastorage.org/getpro/habr/post_images/d86/741/6f7/d867416f77b14b01668cbe99343a66b0.jpg
[16]: http://www.wolfram.com/language/
[17]: http://mathworld.wolfram.com/EulerForwardMethod.html
[18]: https://habrahabr.ru/post/326756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] «Теперь обязательно»: Выдача SSL-сертификатов с учетом DNS-записи
habra.16
habrabot(difrex,1) — All
2017-04-18 16:30:04


В этом году публичные организации, отвечающие за распределение сертификатов, в обязательном порядке [начнут][1] учитывать специальные DNS-записи. Эти записи позволяют владельцам доменов определять «круг лиц», которым дозволено выдавать [сертификаты SSL/TLS][2] (о них мы писали в нашем предыдущем [посте][3]) для их домена.

[![][4]][5] [Читать дальше →][6]

[1]: http://www.itworld.com/article/3188822/security/dns-record-will-help-prevent-unauthorized-ssl-certificates.html
[2]: https://1cloud.ru/services/ssl
[3]: https://habrahabr.ru/company/1cloud/blog/326292/
[4]: https://habrastorage.org/files/2f7/599/ae2/2f7599ae2f1640d8abe61b6fd0955b78.jpg
[5]: https://habrahabr.ru/company/1cloud/blog/326734/
[6]: https://habrahabr.ru/post/326734/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ... 133