RSS
Pages: 1 ... 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 ... 210
[>] Вашим пользователям не нужны пароли
habra.16
habrabot(difrex,1) — All
2017-10-29 06:00:04


![Rusty lock][1]



Зачастую, одно из первых архитектурных решений, принятых в начале разработки вашего сайта — будет использование email + password для авторизации пользователя. Эта связка прочно засела в наши головы, и мы уже на задумываемся, зачем мы заставляем людей придумывать пароль. Мы привыкли так делать.



Но давайте подумаем, возможно, вашим пользователям не нужны пароли.



Одно из возможных решений, это использовать [OAuth 2.0][2], но не у всех пользователей может быть аккаунт в социальной сети и желание его использовать на вашем ресурсе.



Но как-же тогда избавиться от пароля? На этот вопрос, я и попробую ответить в статье.

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

[1]: https://habrastorage.org/webt/dv/gh/pq/dvghpqb5hbz6esrjkx0ieztzqhi.jpeg
[2]: https://en.wikipedia.org/wiki/OAuth
[3]: https://habrahabr.ru/post/341164/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Создаём собственный физический 2D-движок. Часть 1: основы и разрешение импульсов силы
habra.16
habrabot(difrex,1) — All
2017-10-29 12:30:18


![image][1]



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

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

[1]: https://habrastorage.org/getpro/habr/post_images/28b/dbb/38f/28bdbb38f7d0e27d0941cab84655da0b.png
[2]: https://habrahabr.ru/post/336908/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Локализация комментариев в коде. Лекция Яндекса
habra.16
habrabot(difrex,1) — All
2017-10-29 15:30:12


В процессе выхода на международный рынок с API Карт мы решили отказаться от комментирования кода на русском языке. При этом на основе комментариев формируются справочники сервиса, которые затем публикуются у нас на портале, и отказываться от поддержки справочников на русском языке мы не хотели. Из доклада Олеси Горбачевой и Максима Горкунова вы узнаете, как технические писатели Яндекса совместно с разработчиками API Карт поменяли язык комментариев и организовали синхронную поддержку справочников и примеров сразу на двух языках.


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

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

[>] «Чтение на выходных»: 22 независимых блога о разработке, ИБ, тестировании и геймдеве
habra.16
habrabot(difrex,1) — All
2017-10-29 18:00:04


В прошлом месяце в нашей [подборке][1] полезных источников оказались блоги о математике и алгоритмах. Сегодня мы решили продолжить изучение тематической [ветки][2] Hacker News на предмет интересных источников материалов о разработке.

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

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

[1]: https://habrahabr.ru/company/it-grad/blog/338624/
[2]: https://news.ycombinator.com/item?id=14842276
[3]: https://habrastorage.org/webt/59/e4/71/59e4715dd8116388955216.jpeg
[4]: https://habrahabr.ru/company/it-grad/blog/340136/
[5]: https://habrahabr.ru/post/340136/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Broo — алгоритм сжатия без потерь. Улучшения
habra.16
habrabot(difrex,1) — All
2017-10-30 04:30:04


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



#### **Почему название "Broo"?** {#pochemu-nazvanie-broo}



![image][1]


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

[1]: https://habrastorage.org/getpro/habr/post_images/334/ef6/5df/334ef65dfd03605be5932dd05e8698c2.jpg
[2]: https://habrahabr.ru/post/341226/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что каждый программист на C должен знать об Undefined Behavior. Часть 1/3
habra.16
habrabot(difrex,1) — All
2017-10-30 10:00:04


Люди иногда спрашивают, почему код, скомпиливанный в LLVM иногда генерирует сигналы SIGTRAP, когда оптимизация была включена. Покопавшись, они обнаруживают, что Clang сгенерировал инструкцию «ud2» (подразумевается код X86) — то же, что генерируется \_\_builtin\_trap(). В этой статье рассматривается несколько вопросов, касающихся неопределённого поведения кода на C и того, как LLVM его обрабатывает.

![image][1]

В этой статье (первой из трёх) мы попытаемся объяснить некоторые из этих вопросов, чтобы вы могли лучше понять связанные с ними компромиссы и сложности, и возможно, изучить немного больше тёмные стороны С. Мы выясним, что C не является «высокоуровневым ассемблером», как многие опытные программисты на C (особенно те, кто сфокусирован на низком уровне) предпочитают думать, и что C++ и Objective-C напрямую унаследовали множество таких проблем.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/si/fm/kb/sifmkb_11ismyizm4kt5oe-vix4.jpeg
[2]: https://habrahabr.ru/post/341048/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Нечёткое сравнение строк: пойми меня, если сможешь
habra.16
habrabot(difrex,1) — All
2017-10-30 11:00:17


![image][1]
Привет!
На естественном языке сказать об одном и том же факте можно бесконечным числом способов. Можно переставлять слова местами, заменять их на синонимы, склонять по падежам (если говорим о языке с падежами) и тд.

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

Результатом работы, описанием процесса, кодом на git'е готов поделиться с вами.

Итак, кратко задачу можно озвучить так: _«С определенной периодичностью из различных источников приходят актуальные новости. Необходимо фильтровать их таким образом, чтобы на выходе не было двух новостей об одном и том же факте.»_
> **Предупреждение:** в статье присутствуют заголовки реальных новостей. Я отношусь к ним исключительно как к рабочему материалу, не представляю какую-либо точку зрения на политическую или экономическую ситуацию в какой бы то ни было стране.[Читать дальше →][2]

[1]: https://habrastorage.org/webt/tn/3q/pj/tn3qpjtu3a5fcq8grdhzxwxdpma.jpeg
[2]: https://habrahabr.ru/post/341148/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Шаблон проектирования «состояние» двадцать лет спустя
habra.16
habrabot(difrex,1) — All
2017-10-30 11:00:17


![][1] [Состояние][2] — поведенческий шаблон проектирования. Используется в тех случаях, когда во время выполнения программы объект должен менять своё поведение в зависимости от своего состояния. Классическая реализация предполагает создание базового абстрактного класса или интерфейса, содержащего все методы и по одному классу на каждое возможно состояние. Шаблон представляет собой частный случай рекомендации «[заменяйте условные операторы полиморфизмом][3]».

Казалось бы, все по книжке, но есть нюанс. Как правильно реализовать методы не релевантные для данного состояния? Например, как удалить товар из пустой корзины или оплатить пустую корзину? Обычно каждый state-класс реализует только релевантные методы, а в остальных случаях выбрасывает `InvalidOperationException`.

Нарушение принципа подстановки Лисков на лицо. Yaron Minsky [предложил альтернативный подход][4]: _сделайте недопустимые состояния непредставимыми (make illegal states unrepresentable)_. Это дает возможность перенести проверку ошибок со времени исполнения на время компиляции. Однако control flow в этом случае будет организован на основе сопоставления с образцом, а не с помощью полиморфизма. К счастью, [частичная поддержка pattern matching появилась в C#7][5].
[Альтернативная реализация шаблона][6]

[1]: https://habrastorage.org/webt/dv/6v/qm/dv6vqmwengodjuefeodp4nvchrs.jpeg
[2]: https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_(%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)
[3]: https://refactoring.guru/replace-conditional-with-polymorphism
[4]: https://blog.janestreet.com/effective-ml-revisited/
[5]: https://habrahabr.ru/post/257283/
[6]: https://habrahabr.ru/post/341134/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Взлом Bitcoin по телевизору: обфускуй, не обфускуй, все равно получим QR
habra.16
habrabot(difrex,1) — All
2017-10-30 12:00:05


### История про то, как секретный ключ для Bitcoin’a в виде QR-кода восстановили из размазанной картинки



![image][1]

Мы могли бы просто назвать этот пост «Насколько хорош QR-код и как мы его восстановили практически из ничего». Но гораздо интереснее, когда QR-код является ключом к кошельку на сумму $1000 в битках.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/5s/1x/kz/5s1xkzvlk1cic5dmnnwzeu53lbm.jpeg
[2]: https://habrahabr.ru/post/341212/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 43: Грядет великая IoT-жатва, как хакеры киберконфу НАТО пиарили, из Bad Rabbit торчат уши ExPetr
habra.16
habrabot(difrex,1) — All
2017-10-30 12:00:05


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

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

[1]: https://threatpost.com/hackers-prepping-iotroop-botnet-with-exploits/128608/
[2]: https://habrahabr.ru/post/341156/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Внедрение IdM. Часть 2. Как определить, что стоит задуматься о внедрении IdM?
habra.16
habrabot(difrex,1) — All
2017-10-30 15:00:06


В [первой части нашего цикла статей про IdM][1] мы обсудили, что такое IdM. Сегодня будет минимум теории: я расскажу о том, как понять, нужно ли вообще вашей компании IdM-решение — с точки зрения задач бизнеса, ИТ, ИБ, аудита и т.д. Под катом — несколько чек-листов, составленных на основании моего опыта внедрений IdM. Они помогут вам определиться, пора ли выбирать IdM-решение, или ваша компания пока может обойтись существующими процессами.

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

[1]: https://habrahabr.ru/company/solarsecurity/blog/339758/
[2]: https://habrastorage.org/webt/59/dc/96/59dc9682cd187793220508.jpeg
[3]: https://habrahabr.ru/post/340960/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Ключевое слово «mutable» в C++
habra.16
habrabot(difrex,1) — All
2017-10-30 15:00:06


Ключевое слово **mutable** относится к малоизвестным уголкам языка С++. В то же время оно может быть очень полезным, или даже необходимым в случае, если вы хотите строго придерживаться const-корректности вашего кода или писать лямбда-функции, способные изменять своё состояние.

Пару дней назад Eric Smolikowski написал в своём твиттере:
_«Я часто спрашиваю программистов на собеседовании насколько хорошо (по 10-бальной шкале) они знают С++. Обычно они отвечают 8 или 9. И тогда я спрашиваю что такое „mutable“. Они не знают. :)»_

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

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

[>] A minute of Black Magic
habra.16
habrabot(difrex,1) — All
2017-10-31 11:30:05


![Prev][1]


В этой статье расскажем, как научиться отлаживать и полюбить маленькую черную плату Black Magic Probe V2.1. Но для начала немного о том, что это такое и зачем она нужна.

Плата Black Magic Probe Mini V2.1 (BMPM2) разработана 1BitSquared в сотрудничестве с Black Sphere Technologies, является адаптером JTAG и SWD, предназначена для программирования и отладки микроконтроллеров ARM Cortex-M и ARM Cortex-A. Можно добавить поддержку других процессоров. Описание процесса добавления можно найти по [ссылке][2]. Стоит также отметить, что любой процессор с поддержкой ADIv5 (ARM Debug Interface v5) будет определяться платой.

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

[1]: https://habrastorage.org/webt/59/e4/a9/59e4a9852e408840259521.png
[2]: https://github.com/blacksphere/blackmagic/wiki/Adding-target-drivers
[3]: https://habrahabr.ru/post/339940/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что не так с уязвимостями в C# проектах?
habra.16
habrabot(difrex,1) — All
2017-10-31 11:30:05


![][1]



Эта небольшая заметка является промежуточным итогом на тему поиска уже известных уязвимостей в open source C# проектах. Я хотел посмотреть на примеры кода, который бы являлся уязвим и был причиной появления очередной CVE, но оказалось, что не всё так просто…
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/9f8/47d/8f4/9f847d8f455770fe4055f7235c6a9b28.png
[2]: https://habrahabr.ru/post/341320/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Математическая модель динамики финансового рынка
habra.16
habrabot(difrex,1) — All
2017-10-31 12:00:05


### Введение


Изменение курса валют на финансовом рынке влияет на цены товаров и услуг. Поэтому важно знать период времени через который цены начнут реагировать на смену курса валют.

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

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


### Постановка задачи


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

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

[>] Bad Rabbit показал: программы-вымогатели шифруют данные резервных копий
habra.16
habrabot(difrex,1) — All
2017-10-31 12:30:04


Во вторник, 24 октября 2017 г., программа-вымогатель Bad Rabbit нанесла удар по России, Украине, Турции, Германии, Болгарии, США и Японии. Сильнее всего при этом пострадали Россия и Украина, поскольку ее распространение началось на взломанных хакерами российских новостных сайтах. Первыми жертвами стали российские агентства «Интерфакс» и «Фонтанка», а также украинские транспортные организации, включая одесский аэропорт, киевский метрополитен и Министерство инфраструктуры и ряд других организаций.


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

[1]: https://habrastorage.org/webt/jq/tp/fd/jqtpfd5p51jdumylrv5kwmewuws.png
[2]: https://habrahabr.ru/post/341318/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] MockK — библиотека для mocking-а в Kotlin
habra.16
habrabot(difrex,1) — All
2017-10-31 12:30:04


![MockK logo][1] Kotlin пока еще очень новая технология и это значит, что существует множество возможностей сделать что-то лучше. Для меня этот путь был таким. Я начал писать простой слой веб-обработки на Netty и coroutine-ах. Всё было в порядке, я даже сделал что-то вроде веб-фреймворка с роутингом, веб-сокетами, DSL и полной асинхронностью. Для первого раза всё показалось лёгким в освоении. Действительно, coroutine-ы делают из лапши коллбэков линейный и читаемый код.



Сюрприз ожидал меня, когда я начал тестировать это всё. Оказывается, Kotlin и mocking сложно совместимые вещи. В первую очередь из-за final полей.

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

[1]: https://habrastorage.org/getpro/habr/post_images/cfb/4a3/fe5/cfb4a3fe5ed9aab9e139b9aba6c747b5.png
[2]: https://habrahabr.ru/post/341202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Большая миграция
habra.16
habrabot(difrex,1) — All
2017-10-31 15:00:05


[![][1]][2]



# Предисловие {#predislovie}



Привет, %username%! Этот год принес много интересных новинок и приятных новостей. Вышел долгожданный релиз Spring 5, с реактивным ядром и [встроенной поддержкой Kotlin][3], для которой еще [появится][4] много всего интересного. Sébastien [представил][5] новый функциональный подход конфигурации Spring на Kotlin. Зарелизился [JUnit 5][6]. Близится релиз Kotlin 1.2 c улучшенной поддержкой мульти-платформенных приложений. И в этом году произошло знаменательное [событие][7]! Теперь Kotlin перешел от сборки на Groovy Dsl в Gradle на сборку с помощью Kotlin Dsl.



Как правило, начать сразу с нового стека проще, но всегда возникают вопросы насчет того, как реализовать старые подходы. Поэтому рассмотрим как на примере приложения написанного на Java, Spring Boot 1.5 (Spring 4+) с использованием Lombok и Groovy Dsl в Gradle, поэтапно перейти на Spring boot 2 (Spring 5), JUnit 5, Kotlin, и попробовать реализовать проект в функциональном стиле на `spring-webflux` без `spring-boot`. А также как перейти с Groovy Dsl на Kotlin Dsl. В посте основное внимание будет уделяться именно переходу, поэтому будет неплохо, если уже знакомы со Spring, Spring Boot и Gradle.



Для тех, кому лень читать, можно посмотреть пример кода на [github][8], для всех остальных — прошу под кат:

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

[1]: https://habrastorage.org/webt/59/f0/86/59f086932211d775363146.png
[2]: https://habrahabr.ru/company/alfa/blog/340942/
[3]: https://spring.io/blog/2017/01/04/introducing-kotlin-support-in-spring-framework-5-0
[4]: https://twitter.com/snicoll/status/924928995375878144
[5]: https://spring.io/blog/2017/08/01/spring-framework-5-kotlin-apis-the-functional-way
[6]: http://junit.org/junit5/
[7]: https://twitter.com/intelliyole/status/910531634843316225
[8]: https://github.com/evgzakharov/big_migration
[9]: https://habrahabr.ru/post/340942/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Искусственный интеллект Nemesida WAF
habra.16
habrabot(difrex,1) — All
2017-10-31 15:00:05


![][1]

Есть мнение, что искусственный интеллект — это не больше, чем маркетинговый ход. В статье мы покажем, как искусственный интеллект Nemesida WAF позволяет выявлять и блокировать атаки на веб-приложения с поразительной точностью в 99,96%. [Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/e7/75/59e775120eb32190002675.png
[2]: https://habrahabr.ru/post/340704/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Реализация «Тетриса» в игре «Жизнь»
habra.16
habrabot(difrex,1) — All
2017-10-31 15:30:04


_То, что начиналось как приключение, закончилось одиссеей._

![image][1]


## Задача по созданию тетрис-процессора размером 2 940 928 x 10 295 296


Этот проект стал кульминацией труда множества пользователей в течение последних полутора лет. Хотя состав команды со временем менялся, в написании этой статьи принимали участие следующие авторы:

* PhiNotPi
* El'endia Starman
* K Zhang
* Muddyfish
* Kritixi Lithos
* Mego
* Quartata
Также мы хотим поблагодарить 7H3\_H4CK3R, Conor O'Brien и многих других пользователей, вложивших свои труд в решение этой задачи.

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

Стоит также заглянуть в [GitHub нашей организации][2], в котором мы выложили весь код, написанный для решения задачи. Вопросы можно задавать в нашем [чате разработки][3].
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/e8a/7ef/e3d/e8a7efe3dca396738608308aaf278a24.png
[2]: https://github.com/QuestForTetris
[3]: https://chat.stackexchange.com/rooms/35837/the-quest-for-tetris
[4]: https://habrahabr.ru/post/338584/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Препарируем OpenVPN. Часть 1. Статические ключи
habra.16
habrabot(difrex,1) — All
2017-10-31 16:00:06


Однажды столкнулся с непонятной ошибкой в установлении OpenVPN соединения и ощутил нехватку понимания того, как он устроен внутри. Под катом рассказ о том, как устроена криптографическая часть протокола, как это всё выглядит в реальности (т.е. в Wireshark) и как заглянуть внутрь VPN, т.е. расшифровать трафик руками (при наличии ключей, конечно ;-) ). В этой части рассмотрим только режим со статическими ключами.


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

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

[>] Подделка письма электронной почты почти от любого человека менее чем за 5 минут и способы защиты
habra.16
habrabot(difrex,1) — All
2017-10-31 17:00:05


![][1]


### Что такое аутентификация электронной почты?


На протяжении большей части последних 40 лет пользователям приходилось совершать прыжок веры каждый раз, когда они открывали электронную почту. Считаете ли вы, что письмо действительно приходит от того, кто указан в графе отправителя? Большинство легко ответит «да» и на самом деле очень удивится, узнав как легко подделать электронную почту почти от любого отправителя.

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

Результатом является то, что заголовки писем, включая поля «From: » и «Reply-to: », очень легко подделать. В некоторых случаях это так же просто, как набрать «john@company.com» в поле «From: ». Объединив это с неподозрительным содержанием, убедительной графикой и форматированием, вполне возможно обмануть людей, подумавших, что сообщение в их почтовом ящике действительно пришло от банка, ФНС, руководителя или президента США.

[![][2]][3]

Приняв во внимание повсеместное распространение электронной почты, вы осознаете основу нашего нынешнего кризиса информационной безопасности. Слабость в электронной почте привела к массе фишинговых атак, направленных на то, чтобы заставить людей нажимать на вредоносные ссылки, загружать и открывать вредоносные файлы, отправлять форму W-2 (аналог 2-НДФЛ в США) или переводить средства на счета преступников.
[Читать дальше →][4]

[1]: https://habrastorage.org/webt/p-/io/yk/p-ioykuv4smgpumlh89gw-gqumq.png
[2]: https://habrastorage.org/webt/c9/yu/a2/c9yua2m1qoqpnxhnxbnoxzwono4.png
[3]: https://habrahabr.ru/company/cloud4y/blog/341096/
[4]: https://habrahabr.ru/post/341096/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что каждый программист на C должен знать об Undefined Behavior. Часть 2/3
habra.16
habrabot(difrex,1) — All
2017-10-31 19:30:03


[Часть 1][1]
**Часть 2**
Часть 3

В первой части нашего цикла мы обсудили, что такое неопределённое поведение, и как оно позволяет компиляторам C и C++ генерировать более высокопроизводительные приложения, чем «безопасные» языки. В этом посте мы обсудим, чем на самом деле является «небезопасный» C, объяснив некоторые совершенно неожиданные эффекты, вызываемые неопределённым поведением. В третьей части, мы обсудим, как «дружественные» компиляторы могут смягчить некоторые из таких эффектов, даже если они не обязаны это делать.

Мне нравится называть это «Почему неопределённое поведение часто пугает и ужасает программистов на C». :-)

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

[1]: https://habrahabr.ru/post/341048/
[2]: https://habrastorage.org/webt/ye/6c/kq/ye6ckqam7sn2kuhrp9tqg3-knzo.jpeg
[3]: https://habrahabr.ru/post/341144/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О разработке одного desktop-приложения на Python
habra.16
habrabot(difrex,1) — All
2017-11-01 10:00:05


Всем привет. В этой статье я хочу рассказать о разработке программы с открытым исходным кодом для оффлайнового хранения заметок — OutWiker. Этим проектом я занимаюсь в свободное время, первая версия программы вышла в далеком 2010 году, и OutWiker до сих пор продолжает развиваться. Так уж исторически сложилось, что кодом я занимаюсь практически в одиночку (хотя изредка получаю полезные отдельные патчи), но зато пользователи активно участвуют в переводе программы на свой родной язык и иногда присылают стили оформления для страниц, которые затем я включаю в сборку. А уж о том, сколько интересных идей они присылают, и говорить не стоит.



## Что такое OutWiker



Когда-то я писал об этой программе на Хабре, но это было так давно, что прежде чем говорить об особенностях внутреннего устройства и процесса разработки, нужно сказать, что представляет собой программа с точки зрения пользователя. Все ссылки, связанные с проектом даны в конце статьи. Итак, OutWiker — это программа для хранения заметок в виде дерева, в англоязычном интернете такой софт обычно называют outliner (поэтому у программы такое название). Среди более известных «коллег» OutWiker с подобным функционалом можно назвать Zim, WikidPad, CherryTree, и множество других (ну и, разумеется, org mode для Emacs). Логичный вопрос с точки зрения пользователя — чем OutWiker отличается от других представителей древовидных записных книжек. На данный момент, по прошествии такого количества времени с момента начала разработки, я уже не готов развернуто сравнить весь этот софт. В стародавние времена я перепробовал десятки outliner-ов, штук пять использовал достаточно долгое время, но везде чего-то не хватало, хотелось одну возможность взять из WikidPad, другую — из викидвижка, который может работать оффлайново и т.д. Поэтому в качестве ответа на такой вопрос просто перечислю основные особенности, которыми обладает OutWiker.



![][1]


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

[1]: https://habrastorage.org/webt/ym/im/of/ymimofpxwkjsyoacsh9gf71c2uk.png
[2]: https://habrahabr.ru/post/341404/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как сделать LXC контейнер на роутере под управлением LEDE
habra.16
habrabot(difrex,1) — All
2017-11-01 11:00:04


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



Итак, как запустить LXC-контейнер с Debian не где-нибудь там, а на железке под управлением [LEDE][1] (так же известный как форк OpenWRT)?



(предполагается, что читатель сам придумает, зачем ему LXC на роутере и уже знаком с этой технологией контейнеров)

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

[1]: https://lede-project.org/
[2]: https://habrahabr.ru/post/341370/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Экосистема блокчейн-проектов
habra.16
habrabot(difrex,1) — All
2017-11-01 12:00:05


![][1]



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

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

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

[1]: https://habrastorage.org/webt/iq/ux/8p/iqux8pttjymwuyi9rjiffnoqbyq.jpeg
[2]: https://habrahabr.ru/post/341436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Представляем loghouse — Open Source-систему для работы с логами в Kubernetes
habra.16
habrabot(difrex,1) — All
2017-11-01 12:30:05


![][1]

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

**Так родился проект [loghouse][2]**, и я рад представить его альфа-версию DevOps-инженерам и системным администраторам, которым знакомы обозначенные проблемы. [Читать дальше →][3]

[1]: https://habrastorage.org/webt/cl/id/d0/clidd01--tt-hpmaz-el8hjvcpa.jpeg
[2]: https://github.com/flant/loghouse
[3]: https://habrahabr.ru/post/341386/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Роскомнадзор и все-все-все
habra.16
habrabot(difrex,1) — All
2017-11-01 12:30:05


Ранее мы уже писали о том, что Роскомнадзор [пригрозил заблокировать Facebook и об итогах проверок выполнения требований, связанных с локализацией персональных данных][1]. Прошедший месяц ведомство не бездействовало, поэтому сегодня мы хотели бы акцентировать внимание сообщества на нескольких новостях.


### В России вступил в силу закон об анонимайзерах


С 1 ноября в России вступают в силу поправки в Федеральный закон «Об информации, информационных технологиях и о защите информации», которые определяют обязанности для владельцев VPN-сервисов, «анонимайзеров» и операторов поисковых систем по ограничению доступа к информации, распространение которой в России запрещено.

Исполнение новых норм Федерального закона осуществляются на основании обращения в Роскомнадзор федерального органа исполнительной власти, осуществляющего оперативно-розыскную деятельность или обеспечение безопасности Российской Федерации, т.е. МВД и ФСБ.

К обязанностям владельцев VPN-сервисов и «анонимайзеров» относится ограничение доступа к запрещенным в Российской Федерации интернет-ресурсам. Данная норма так же распространяется на операторов поисковых систем.

![][2]

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

[1]: https://habrahabr.ru/company/cloud4y/blog/338882/
[2]: https://habrastorage.org/webt/er/ny/it/ernyitv7_27fvfpjg3iqyloahva.jpeg
[3]: https://habrahabr.ru/post/341440/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Анонс Moscow Spark #3
habra.16
habrabot(difrex,1) — All
2017-11-01 12:30:05


![image][1]


Всем привет! Мы долго готовились, искали крутых докладчиков и, наконец, анонсируем Moscow Spark #3, который состоится 16 ноября на Мансарде Rambler&Co! Предыдущий митап собрал почти 250 человек, и мы рассчитываем, что сможем собрать не меньше в этот раз. Ключевой темой этого мероприятия станет Spark Streaming, актуальная и очень интересная часть фреймворка Apache Spark.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/vh/to/hf/vhtohffxxxgr74exvx_l3gnmb5e.png
[2]: https://habrahabr.ru/post/341394/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Splunk Discovery Day 2017 в Москве. Как все прошло…
habra.16
habrabot(difrex,1) — All
2017-11-01 13:30:04


![][1]

На прошлой неделе в московской гостинице Украина состоялось самое масштабное мероприятие посвященное Splunk в России, и хотя всего месяц назад в Вашингтоне проходил [Splunk .conf][2], московская конференция испытала большой ажиотаж со стороны участников. Наиболее интересной частью мероприятия стала сессия с выступлениями уже существующих заказчиков со своими историями успеха. Это такие компании как: **Мегафон**, **Yota**, Банк **ДельтаКредит**, служба доставки **SPSR Express**, телеканал **Russia Today**. В этот момент зал был полон и некоторые участники слушали доклады стоя, в целом конференцию посетило порядка трехсот человек.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/we/ua/8j/weua8jacrh1uwu-ulxehdqa0h5g.jpeg
[2]: http://conf.splunk.com
[3]: https://habrahabr.ru/post/341256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Эволюция вредоносных расширений: от любительских поделок до стеганографии. Опыт команды Яндекс.Браузера
habra.16
habrabot(difrex,1) — All
2017-11-01 13:30:04


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

![][1]

Яндекс.Браузер изначально поддерживал установку расширений для Chromium, но в первое время индустрия заработка на дополнениях еще только зарождалась, поэтому особых проблем не было. Вредоносные образцы, конечно же, встречались: мы либо сами находили их вручную, либо узнавали о них из обращений в поддержку. Уникальные идентификаторы (ID) таких разработок вносились в черный список на сервере, к которому через API обращался Яндекс.Браузер и блокировал установку потенциально опасных расширений. Причем сами расширения очень редко маскировались: все их возможности почти всегда были явно описаны на HTML и JS без попыток что-либо скрыть. Но потом все изменилось.

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

[1]: https://habrastorage.org/webt/wq/11/zu/wq11zuu1wygmhtal2cdkcchd5he.png
[2]: https://habrahabr.ru/post/341382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Не путайте разработку ПО и программирование
habra.16
habrabot(difrex,1) — All
2017-11-01 14:00:06


## Каждый разработчик ПО умеет программировать, но не каждый программист может разрабатывать ПО


[![][1]][2]
_Большинство может легко научиться готовить, но когда нужно накормить большое число людей, мы нанимаем повара.
_
Возможно, кому-то больше нравится говорить не «разработчик», а _инженер-программист_, ведь _инженер_ — это звучит гордо! Или нет? К счастью, эта статья не о терминах. Если мой термин вам не нравится — подставьте свой: «автор ПО», «мастер ПО»… и даже «творец приложений»!

Говоря «_разработчик ПО_», я имею в виду человека, для которого написание качественного ПО — _профессия_. Человека, который использует в своей работе научные подходы и статистику и считает свое занятие чем-то большим, чем просто зарабатывание денег.

Чтобы стать разработчиком, уметь программировать недостаточно.

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

Мне нравится такая аналогия: каждый может ради собственного развлечения петь в ду́ше, но вы же не ставите треки с записями этого пения на вечеринке — вы обращаетесь к произведениям профессиональных музыкантов.

Хотите еще аналогий? Пожалуйста:

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

Главная задача этого текста — донести, что создание _простых программ_ серьезно отличается от _разработки ПО_.

**Переведено в [Alconost][3]** [Читать дальше →][4]

[1]: https://habrastorage.org/webt/en/5z/7k/en5z7kbdgn6s1lritvoybwmfbha.jpeg
[2]: https://habrahabr.ru/company/alconost/blog/341304/
[3]: https://alconost.com?utm_source=habrahabr&utm_medium=article&utm_campaign=translation&utm_content=software-engineering-not-prog
[4]: https://habrahabr.ru/post/341304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] unCAPTCHA: использование сервисов Google для обхода Google reCAPTCHA
habra.16
habrabot(difrex,1) — All
2017-11-01 15:00:05


![image][1]
 
unCAPTCHA – автоматизированная система, разработанная экспертами Мэрилендского университета, способная обойти reCAPTCHA от Google с точностью до 85 %. Им это удалось благодаря распознаванию аудио-версии подсказки для людей с ограниченными возможностями.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/0bc/d53/611/0bcd536117da1b2435ccf42bb2bc331d.gif
[2]: https://habrahabr.ru/post/341322/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Бесконечный скроллинг на Firebase
habra.16
habrabot(difrex,1) — All
2017-11-01 16:30:06


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

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

Заметка: если ознакомительная информация вас не интересует, то можете смело переходить к примерам кода, приведенным ниже.

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

[1]: https://habrastorage.org/webt/7z/ja/il/7zjailca5a5ksya71ajsbfbdxvk.png
[2]: https://habrahabr.ru/post/341464/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Этичный хакер Паула Янушкевич о кибербезопасности и гиперугрозах
habra.16
habrabot(difrex,1) — All
2017-11-01 18:30:05


Ведущий мировой специалист по тестам на проникновение. Обладатель доступа к исходному коду Windows. Microsoft Most Valuable Professional. Авторитетный спикер крупнейших тематических конференций. «Профессиональный хакер на стороне добра» Паула Янушкевич нашла время и для того, чтобы ответить на наши вопросы — о корпоративной защите и последних тенденциях в сфере кибербезопасности. [Подробности – под катом][1]

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

[>] Приглашаем на конференцию YAPC::Russia 4 ноября
habra.16
habrabot(difrex,1) — All
2017-11-01 19:00:06


![][1]



В эту субботу мы приглашаем всех Perl’оводов и им сочувствующих на ежегодную конференцию YAPC::Russia, посвящённую языку Perl и его сообществу. Она проводится в Москве и Санкт-Петербурге под названием May Perl, а в Киеве — под названием Perl Mova.



«Столичная» часть конференции пройдёт 4 ноября в московском офисе Mail.Ru Group. Здесь соберутся Perl-профессионалы из разных уголков земного шара, чтобы обменяться опытом, завести новые знакомства и пообщаться с единомышленниками в неформальной и приятной обстановке.

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

[1]: https://habrastorage.org/webt/a4/gt/c2/a4gtc2w8j0yn0m98isjfod68an8.jpeg
[2]: https://habrahabr.ru/post/341454/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] TLS 1.2 и новый ГОСТ
habra.16
habrabot(difrex,1) — All
2017-11-01 22:00:05


![][1]



Вниманию читателей предлагается краткий обзор разрабатываемого [проекта рекомендаций по стандартизации][2], определяющего использование российских криптографических алгоритмов в протоколе TLS 1.2 (далее просто проект рекомендаций).

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

[1]: https://habrastorage.org/webt/59/ef/51/59ef512bcfd7a459440408.png
[2]: https://www.tc26.ru/standard/draft/%D0%A2%D0%9A26_TLS_2015.pdf
[3]: https://habrahabr.ru/post/339978/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] RandLib. Библиотека вероятностных распределений на C++17
habra.16
habrabot(difrex,1) — All
2017-11-01 22:30:05


![][1]


Библиотека [RandLib][2] позволяет работать с более чем 50 известными распределениями, непрерывными, дискретными, двумерными, циклическими и даже одним сингулярным. Если нужно какое-нибудь распределение, то вводим его имя и добавляем суффикс Rand. Заинтересовались?
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/ey/ka/5k/eyka5k6gdkicbe79poh1fdtcgvs.png
[2]: https://github.com/Quanteeks/RandLib
[3]: https://habrahabr.ru/post/323158/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Создаём собственный блокчейн на Ethereum
habra.16
habrabot(difrex,1) — All
2017-11-01 22:30:05


![][1]

### Как создать приватный блокчейн Ethereum с нуля?


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

Инструкция включает в себя следующее:

* Создание приватного блокчейна Ethereum с помощью _**geth**_.
* Создание кошелька MetaMask для работы с приватным блокчейном.
* Перевод средств между несколькими аккаунтами.
* Создание, развёртывание и вызов смарт-контракта в приватном блокчейне с помощью **_remix_**.
* Создание обозревателя блоков Ethereum поверх приватного блокчейна.[Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/e9/a7/59e9a7983e9d0316754298.png
[2]: https://habrahabr.ru/post/341466/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Вышел GitLab 10.1: комментирование изображений и блокировка неподписанных коммитов
habra.16
habrabot(difrex,1) — All
2017-11-01 23:30:04


![Картинка для привлечения внимания][1]



Καλημέρα! (Доброе утро!) В этот раз мы приветствуем вас из греческого города Гераклиона.



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

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

[1]: https://habrastorage.org/getpro/habr/post_images/feb/5df/b48/feb5dfb484e0db336304929089f99bd9.jpg
[2]: https://about.gitlab.com/direction/#vision
[3]: https://habrahabr.ru/post/341458/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Kotlin DSL: Теория и Практика
habra.16
habrabot(difrex,1) — All
2017-11-02 00:30:03


Sql, RegExp, Gradle — что их объединяет? Всё это примеры использования проблемно-ориентированных языков или DSL (domain-specific language). Каждый такой язык решает свою узконаправленную задачу, например, запрос данных из БД, поиск совпадений в тексте или описание процесса сборки приложения. Язык Kotlin предоставляет большое количество возможностей для создания собственного проблемно-ориентированного языка. В ходе статьи мы разберемся, какие инструменты есть в арсенале программиста, и реализуем DSL для предложенной предметной области.



Весь синтаксис, представленный в статье, я объясню максимально просто, однако, материал рассчитан на практикующих инженеров, которые рассматривают Kotlin, как язык для построения проблемно-ориентированных языков. В конце статьи будут приведены недостатки, к которым нужно быть готовым. Используемый в статье код актуален для Kotlin версии 1.1.4-3 и доступен на GitHub.



![][1]

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

[1]: https://habrastorage.org/webt/lq/hh/et/lqhhetd_sjpnqtbrv5cdvow7pzo.png
[2]: https://habrahabr.ru/post/341402/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пишем свой маппер для .NET Standard 2.0
habra.16
habrabot(difrex,1) — All
2017-11-02 03:30:04


В сегодняшней заметке я хотел бы поведать вам о коротком приключении по написанию своего маппера для .NET Standard 2.0. Ссылка на github и результаты benchmark'ов прилагаются.

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

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

[>] Коды Рида-Соломона. Часть 2 — арифметика полей Галуа
habra.16
habrabot(difrex,1) — All
2017-11-02 09:30:10


Здравствуйте, друзья! В прошлый раз мы с вами начали говорить о том, как коды Рида-Соломона помогают обеспечивать необходимый уровень надежности хранения данных. Сегодня остановимся немного подробнее на арифметике полей Галуа, которая используется в расчётах.
[![][1]
][2]
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/zu/or/5-/zuor5-z0nivpacrkatjpxiqd2lq.jpeg
[2]: https://habrahabr.ru/company/yadro/blog/341506/
[3]: https://habrahabr.ru/post/341506/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Программные кошельки для Bitcoin и безопасность
habra.16
habrabot(difrex,1) — All
2017-11-02 09:30:10


![][1]



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

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

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

[1]: https://habrastorage.org/webt/sd/8l/n8/sd8ln8eleseefa1balothgt4rmm.png
[2]: https://habrahabr.ru/post/341338/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что каждый программист на C должен знать об Undefined Behavior. Часть 3/3
habra.16
habrabot(difrex,1) — All
2017-11-02 09:30:10


[Часть 1][1]
[Часть 2][2]
**Часть 3**

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

[1]: https://habrahabr.ru/post/341048/
[2]: https://habrahabr.ru/post/341144/
[3]: https://habrastorage.org/webt/za/4g/nu/za4gnunircwzjpvmibn-vkoxbh8.jpeg
[4]: https://habrahabr.ru/post/341154/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Видимость сетей и решения Ixia
habra.16
habrabot(difrex,1) — All
2017-11-02 09:30:10


При проектировании архитектуры безопасности IT подразделения многих предприятий в основном опираются на то, что конкретно могут сделать их аппаратные и программные средства обеспечения безопасности и мониторинга. Гораздо меньше думают (или совсем не думают) о том, как обеспечить этим инструментам полное представление о данных, перемещающихся внутри предприятия. В сегменте корпоративных сетей это впервые сделала компания Ixia.

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

[1]: https://habrastorage.org/webt/sz/bq/6w/szbq6wej3ahs4mfvdj0ftdasdyq.png
[2]: https://habrahabr.ru/post/341492/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Perfect shuffle
habra.16
habrabot(difrex,1) — All
2017-11-02 09:30:10


![][1]

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

Дальше много картинок, gif-анимации и немного музыки.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/f0/a5/59f0a58e22ba0685844423.png
[2]: https://habrahabr.ru/post/340964/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Глубокий расчет. Как 3D-технологии помогают считать людей и делают жизнь проще?
habra.16
habrabot(difrex,1) — All
2017-11-02 10:30:05


##### _Давайте знакомиться_


Наша команда занимается разработкой интеллектуального ПО для систем IP-видеонаблюдения. За 9 лет существования мы создали десятки функций и модулей видеоанализа, столкнулись с сотней проблем и одержали неменьше побед. В своем блоге Macroscop мы расскажем о части из них, поделимся своим видением процесса разработки и раскроем некоторые свои технологии.


##### _«Ближе к делу»_


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

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

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

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


![][1]

Всё началось с проблемы с которой мы столкнулись в [BitClave][2]: во время подготовки нашего ICO некоторый объем криптовалюты ETH (эфир) был отправлен на адрес смарт-контракта, который ранее был задеплоен в **тестовую** сеть Ethereum. Деньги были отправлены в **главной** сети на адрес не относящийся ни к одному приватному ключу, ни к одному смарт-контракту в этой сети. Сначала нам показалось, что мы просто выкинули $2000 без единой возможности вернуть наши средства
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/9e/u2/dc/9eu2dcqqjiqeho2a6f1lvdcvl0g.png
[2]: https://bitclave.com
[3]: https://habrahabr.ru/post/341518/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Какие самые нелюбимые языки программирования?
habra.16
habrabot(difrex,1) — All
2017-11-02 14:00:05


На [Stack Overflow Jobs][1] каждый может опубликовать собственную [Developer Story][2], чтобы поделиться достижениями и поспособствовать карьерному росту. При публикации можно добавить к статье теги, соответствующие языкам и технологиям, с которыми вы бы хотели работать и с которыми бы _не_ хотели:

![][3]

Это даёт нам возможность изучить мнения сотен тысяч разработчиков. Есть много способов измерить популярность языка. Например, мы часто использовали для изучения трендов статистику [визитов на Stack Overflow или просмотров вопросов][4]. Но данные о тегах — уникальная возможность посмотреть, что людям _не нравится_, когда у них есть возможность сказать об этом в резюме.

(Некоторый анализ я [публиковал в личном блоге два года назад][5], но эта статья дополнена более свежими данными и бóльшим количеством иллюстраций).
[Читать дальше →][6]

[1]: https://stackoverflow.com/jobs
[2]: https://stackoverflow.blog/2016/10/11/bye-bye-bullets-the-stack-overflow-developer-story-is-the-new-technical-resume/
[3]: https://habrastorage.org/getpro/habr/post_images/bfe/f0f/0b7/bfef0f0b7e36cdec2f5da4d77ec6855e.png
[4]: https://stackoverflow.blog/2017/09/06/incredible-growth-python/
[5]: http://varianceexplained.org/r/polarizing-technologies/
[6]: https://habrahabr.ru/post/341516/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 ... 210