RSS
Pages: 1 ... 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 ... 133
[>] [Перевод] Ключевое слово «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

[>] Какие языки программирования самые популярные: статистика ИТ-платформ
habra.16
habrabot(difrex,1) — All
2017-11-02 14:00:05


Каждый язык программирования имеет свою сферу применения. Однако некоторые из них [используются][1] чаще других. Мы задались вопросом, какой язык программирования наиболее популярен. Для этого мы проанализировали статистику нескольких IT-платформ: GitHub, Stack Overflow, HN, Хабрахабр и др.

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

[1]: https://www.quora.com/What-is-the-most-popular-programming-language
[2]: https://habrastorage.org/webt/ca/gf/xo/cagfxoafwxdqbfazrnivls5djou.jpeg
[3]: https://habrahabr.ru/company/it-grad/blog/341486/
[4]: https://habrahabr.ru/post/341486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проведение выборов с помощью блокчейна, идентификация пользователя по голосу и приложение для онлайн-собеседований
habra.16
habrabot(difrex,1) — All
2017-11-02 14:30:06


Обучающиеся магистерских программ «Управление разработкой ПО» и «Разработка безопасных систем и сетей» Университета Иннополис помогли решить 16 задач ИТ-компаний. 

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

[1]: https://habrastorage.org/getpro/habr/post_images/1b4/596/8be/1b45968bebe0b82c81245499315bebbe.jpg
[2]: https://habrahabr.ru/post/341520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] SOC for beginners. Задачи SOC: контроль защищенности
habra.16
habrabot(difrex,1) — All
2017-11-02 15:00:04


Продолжаем цикл наших статей о центрах мониторинга кибератак для начинающих. В [прошлой статье][1] мы говорили о Security Monitoring, инструментах SIEM и Use Case.

Термин Security Operations Center у многих ассоциируется исключительно с мониторингом инцидентов. Многим сервис-провайдерам это, в принципе, на руку, поэтому мало кто говорит о том, что мониторинг имеет ряд серьезных ограничения в плане защиты от кибератак.

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

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

[1]: https://habrahabr.ru/company/solarsecurity/blog/340386/
[2]: https://habrastorage.org/webt/59/e7/1d/59e71dfc73a51846323425.jpeg
[3]: https://habrahabr.ru/post/341530/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Tarantool: когда на сервис оповещения миллиона пользователей нужно 500 строк кода
habra.16
habrabot(difrex,1) — All
2017-11-02 17:00:06


![][1]



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



На написание данной статьи меня натолкнула [эта статья][2].



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

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

[1]: https://habrastorage.org/webt/8b/zl/or/8bzlor3qmkzznhpbd8eub9yvvbw.jpeg
[2]: https://habrahabr.ru/company/tensor/blog/341068/
[3]: https://habrahabr.ru/post/341498/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как подружиться с UIKit
habra.16
habrabot(difrex,1) — All
2017-11-02 18:00:05


![][1]



Привет, Хабр! Меня зовут Богдан, в Badoo я работаю в мобильной команде iOS-разработчиком. Мы достаточно редко рассказываем что-либо о нашей мобильной разработке, хотя статьи – один из лучших способов документировать хорошие практики. Эта статья статья расскажет о нескольких полезных подходах которые мы используем в нашей работе.



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

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

[1]: https://habrastorage.org/webt/xx/uw/uc/xxuwuclrzgkk7mvepoanyyou13w.jpeg
[2]: https://habrahabr.ru/post/341542/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест Университета ИТМО: наши разработки в 2017 году. Часть 2
habra.16
habrabot(difrex,1) — All
2017-11-02 18:30:06


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

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

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

[1]: https://habrahabr.ru/company/spbifmo/blog/341356/
[2]: https://habrastorage.org/webt/s-/ll/qo/s-llqo9ohgnowwxzlfi7b4cyd-k.jpeg
[3]: https://habrahabr.ru/company/spbifmo/blog/341536/
[4]: https://habrahabr.ru/post/341536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пишем список дел на Python 3 для Android через QPython3 и SL4A
habra.16
habrabot(difrex,1) — All
2017-11-03 07:30:03


![][1]



Движок QPython (и QPython 3) для Android – вещь по-прежнему плохо изученная, и особенно что касается его встроенной библиотеки Scripting Layer For Android (SL4A), она же androidhelper. Эту библиотеку написали несколько сотрудников Google по принципу 20% свободного времени, снабдили ее спартанской [документацией][2], которую почти невозможно найти, и отправили в свободное плавание. Я искал информацию об SL4A по крупицам, но со временем нашел практически все, что мне нужно.

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

[1]: https://habrastorage.org/webt/ex/ad/ya/exadyaln0roxjvixcvd_hlczvqk.png
[2]: http://kylelk.github.io/html-examples/androidhelper.html
[3]: https://habrahabr.ru/post/341580/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как можно взломать свой же Web проект?
habra.16
habrabot(difrex,1) — All
2017-11-03 07:30:03


![][1]



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



Давайте я расскажу «историю неуспеха», чтобы другие на эти грабли не наступали.

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

[1]: https://habrastorage.org/webt/ys/sc/bj/ysscbjfgwqabbxcj9lrhbo228x4.jpeg
[2]: https://habrahabr.ru/post/341590/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Интуитивная разработка алгоритмов
habra.16
habrabot(difrex,1) — All
2017-11-03 14:00:05


![image][1]

Если вы программист, то, возможно, у вас возникали ситуации, когда в выбранном игровом движке или библиотеке нет нужной функции. За этим следовал ужасающий момент, когда вам приходилось обыскивать весь Интернет в поисках кода, написанного людьми, решавшими эту проблему до вас (я говорю о вас, пользователи StackOverflow). Конечно, в этом нет ничего плохого (я и сам так поступаю), но очень часто вы можете сделать это самостоятельно, даже когда речь идёт о таких теоретических задачах, как геометрия или перетасовка. Я один из тех людей, которые всегда пытаются понять, как всё работает, и разве есть способ понимания лучше, чем прийти к нему самому, заново изобретя решение на лету (если, конечно, оно существует)?


### Ставим перед собой пример задачи


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

[1]: https://habrastorage.org/getpro/habr/post_images/721/2d0/c15/7212d0c1550fcd7b568ccb92fd9a22ba.png
[2]: https://habrahabr.ru/post/341494/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Вопросы безопасности «умной» энергетики
habra.16
habrabot(difrex,1) — All
2017-11-03 16:00:04


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

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

[1]: https://habrahabr.ru/company/gemaltorussia/blog/337498/
[2]: https://habrastorage.org/webt/ak/y2/-i/aky2-iearnxihepxovy9etpk9fq.jpeg
[3]: https://habrahabr.ru/post/341276/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Бестиарий С++. Справочник по загадочным персонажам
habra.16
habrabot(difrex,1) — All
2017-11-03 18:00:05


![][1]



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

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

[1]: https://habrastorage.org/getpro/habr/post_images/03f/ed1/2e8/03fed12e8ef572c7380d72ac5fd7b3d1.jpg
[2]: https://habrahabr.ru/post/341584/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 ... 133