RSS
Pages: 1 ... 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 ... 210
[>] Решение проблемы ограничения PTRACE_ATTACH в контейнерах Docker
habra.16
habrabot(difrex,1) — All
2017-07-25 08:00:07


![][1]



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

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

[1]: https://habrastorage.org/web/fbb/ca3/954/fbbca395443740c4b76335a6b258bf84.png
[2]: https://habrahabr.ru/post/334016/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как научить свою нейросеть генерировать стихи
habra.16
habrabot(difrex,1) — All
2017-07-25 10:00:32


_Умоляю перестань мне сниться_
_Я люблю тебя моя невеста_
_Белый иней на твоих ресницах_
_Поцелуй на теле бессловесном_

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

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

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

[>] Атакуем DHCP
habra.16
habrabot(difrex,1) — All
2017-07-25 10:30:04


![LOGO][1]



В данной статье мы расскажем, как эксплуатировать ShellShock на клиенте DHCP и получить на нем полноценный reverse или bind shell. Интернет пестрит [статьями][2], повествующими о возможностях эксплуатации shellshock на DHCP-клиентах. Есть даже [статьи][3] о том, как получить reverse shell на DHCP-клиенте. Однако, стабильно и повсеместно работающего инструмента для получения shell мы еще не встречали. Те, кто в теме, возможно, нового здесь не увидят, но не исключено, что вам будет интересно узнать, как нам удалось автоматизировать получение reverse и bind shell в условиях фильтрации и экранирования символов на стороне DHCP-клиента. Кроме того, мы расскажем и о том, чем вообще может быть интересен протокол DHCP.

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

[1]: https://habrastorage.org/web/3cf/b27/403/3cfb2740364e40eb9d61c1c99f5ccf7c.png
[2]: http://blog.trendmicro.com/trendlabs-security-intelligence/bash-bug-saga-continues-shellshock-exploit-via-dhcp/
[3]: http://www.fantaghost.com/exploiting-shellshock-getting-reverse-shell
[4]: https://habrahabr.ru/post/333978/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] MMO с нуля. С помощью Netty и Unreal Engine. Часть 1
habra.16
habrabot(difrex,1) — All
2017-07-25 13:30:04


Всем привет! В нескольких статьях я хотел бы поделиться опытом создания подобия ММО игры используя Unreal Engine и Netty. Возможно архитектура и мой опыт кому-то пригодится и поможет начать создавать свой игровой сервер в противовес unreal dedicated server, который слегка прожорлив или заменить собой фреймворки для разработки многопользовательских игр такие как Photon.

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

* Часть 1. Общая картина, сборка библиотек, подготовка клиента и сервера к обмену сообщениями
* Часть 2. Наращивание игрового функционала
* Часть 3. Бонус материал. HLSL шейдеры в Unreal Engine, генерация ландшафтной сетки с помощью алгоритма Diamond Square, динамическая подгрузка моделей из сети
![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/web/cc1/58c/fc4/cc158cfc465448579a104982551b6cd2.jpg
[2]: https://habrahabr.ru/post/333788/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Опыт использования бизнес-ноутбука FUJITSU LIFEBOOK E746: дом вместо офиса, Linux вместо Windows
habra.16
habrabot(difrex,1) — All
2017-07-25 13:30:04


Некоторое время назад я приобрёл для домашнего использования ноутбук FUJITSU LIFEBOOK E746, который позиционируется как рабочая лошадка для бизнеса. В основном, они продаются с предустановленным Windows 10; с трудом, но возможно найти экземпляры без предустановленной системы. Производитель поддерживает официально только Windows, в сети я находил информацию, что на нём заводится Ubuntu, но с оговорками. Так как переплачивать за операционную систему, которую я давно не использую и не планирую использовать (Windows 10), не особо хотелось, то я заказал его без системы и установил на нём Linux (Fedora 25). В этом небольшом обзоре я хочу поделиться с общественностью этим опытом. Целевая аудитория этой статьи — люди, которые интересуются недорогими, средними по производительность ноутбуками под Linux. Для остальных, скорее всего, особого интереса эта заметка предоставлять не будет.

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

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

[>] [Перевод] Выпуск Rust 1.19
habra.16
habrabot(difrex,1) — All
2017-07-25 14:30:05


Команда Rust рада представить выпуск Rust 1.19. Rust — это системный язык программирования, нацеленный на скорость, безопасность и параллельное выполнение кода.



Если у вас установлена предыдущая версия Rust, для обновления достаточно выполнить:


$ rustup update stable

Если же Rust еще не установлен, вы можете [`установить rustup`][1] с соответствующей страницы нашего веб-сайта и ознакомится с [подробными примечаниями к выпуску Rust 1.19][2] на GitHub.

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

[1]: https://www.rust-lang.org/install.html
[2]: https://github.com/rust-lang/rust/blob/rust-1.19.0-relnotes/RELEASES.md#version-1190-2017-07-20
[3]: https://habrahabr.ru/post/334068/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Эволюция атак на веб-приложения
habra.16
habrabot(difrex,1) — All
2017-07-25 15:00:04


![image][1]



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

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

[1]: http://ic.pics.livejournal.com/victorinoxru/24256881/86389/86389_900.jpg
[2]: https://habrahabr.ru/post/334054/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Секция безопасной разработки на PHDays VII: итоги встречи сообщества PDUG
habra.16
habrabot(difrex,1) — All
2017-07-25 16:30:04


![][1]

24 мая на площадке форума PHDays VII прошло очередное мероприятие сообщества [Positive Development User Group][2]. Пока за стеной хакеры увлеченно (и весьма успешно) атаковали инфраструктуру вымышленного города, мы разговаривали о том, как разработчики могут сделать свои приложения неуязвимыми для взлома.

Что из этого вышло, смотрите под катом — там собраны презентации и видеозаписи докладов. [Читать дальше →][3]

[1]: https://habrastorage.org/web/065/301/7fd/0653017fd24a4f929c40d7db2e7a688a.png
[2]: https://www.facebook.com/groups/positivedevelopmentusergroup/
[3]: https://habrahabr.ru/post/334086/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как я варил CLion
habra.16
habrabot(difrex,1) — All
2017-07-25 16:30:04


История про CLion, docker, conan, cmake, ninja, cotire и gdb.


## Небольшое предисловие


Разработкой на C++ я занимаюсь уже лет 15 и когда-то начинал с «Watcom С». О нем у меня остались самые теплые воспоминания. Но, так как мне больше приходилось писать для консоли UNIX, я перешел на vim в качестве IDE. В целом, он достаточно удобен. Его плагины творят чудеса, можно настроить autocomplete, просмотр иерархии классов, быстрый переход к определению или поиск, в общем всё, что должны уметь IDE, там можно поднять. Боль приходит в тот момент, когда ты пытаешься установить и освоить новый плагин. Это всё заводится не везде и не всегда, и, зачастую, жрет проц и память похлеще любой java.

Периодически я поглядывал на Qt Creator. Но так и не решился на него перейти.


## Первое знакомство


![image][1]И вот, в один из таких моментов мне на глаза попался CLion. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/955/502/34d/95550234df58ca77219c759974171a4f.png
[2]: https://habrahabr.ru/post/334080/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Кейсы JSOC
habra.16
habrabot(difrex,1) — All
2017-07-25 17:30:04


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

[1]: https://habrastorage.org/web/29a/838/31a/29a83831aeba4748b5eb8fa993f9f6cd.jpg
[2]: https://habrahabr.ru/post/333816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Тестирование в Badoo «с высоты птичьего полёта»
habra.16
habrabot(difrex,1) — All
2017-07-25 20:00:04


![][1]



Мы много раз рассказывали о том, как мы пишем автотесты, какие технологии используем, как помогаем разработчикам с производительностью юнит-тестов и так далее. А вот про стратегию всего процесса тестирования, включая ручное, ещё ни разу не писали. Пришло время восполнить этот пробел.

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

[1]: https://habrastorage.org/web/427/f14/12a/427f1412a3944bad817df2cc3d89550e.jpg
[2]: https://habrahabr.ru/post/334034/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] JetBrains MPS — IDE для разработки проблемно-ориентированных языков программирования
habra.16
habrabot(difrex,1) — All
2017-07-25 23:00:05


### Введение


MPS — это среда разработки языков программирования на платформе Intellij Idea. Она предоставляет возможность моделировать языки программирования, описывать структуры, сосредотачиваясь конкретно на дизайне и бизнес-логике, не отвлекаясь на парсеры, лексеры и различные сторонние фичи языка. Что нужно сразу обозначить: язык, который разрабатывается с помощью MPS, не компилируется в рабочую программу. Чаще всего он генерируется в модели других языков либо в текстовую форму.

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

Документация очень подробная, описывает все возможности, но если нет осознания «что я делаю и зачем мне это делать», то она вряд ли будет полезна. Также есть серия уроков от [JetBrains на YouTube][1], но опять же, я более-менее начал понимать, что происходит, только после двух просмотров всей серии и досканального изучения предлагаемых sample проектов.

Я планирую написать серию постов об этой замечательной среде, чтобы по окончанию прочтения у энтузиастов оставалось как можно меньше вопросов «как сделать эту штуку», и как можно больше понимания структуры, чтобы можно было эффективно пользоваться [документацией][2]. Познавать MPS мы будем во время создания языка для описания закономерностей погоды. Почему, собственно говоря, и нет?
[Читать дальше →][3]

[1]: https://www.youtube.com/watch?v=5dldSNaibrA&list=PLQ176FUIyIUY9rAcAH6MNOxJqGfau0Jb1
[2]: https://www.jetbrains.com/mps/documentation/
[3]: https://habrahabr.ru/post/334108/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Один квартал из жизни SOC. Три инцидента без купюр
habra.16
habrabot(difrex,1) — All
2017-07-25 23:30:03


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

[1]: https://habrastorage.org/web/29a/838/31a/29a83831aeba4748b5eb8fa993f9f6cd.jpg
[2]: https://habrahabr.ru/post/333816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Простейший кейлоггер и безопасность в KeePass
habra.16
habrabot(difrex,1) — All
2017-07-26 04:30:04


![][1]

Для проверки безопасности вводимых паролей через KeePass я решил написать простейший кейлоггер с дополнительным захватом данных из буфера обмена. Весь код занял несколько строчек на FreePascal.

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

[1]: https://habrastorage.org/web/50a/a9a/4aa/50aa9a4aa18347de8a73ea57dca66233.jpg
[2]: https://habrahabr.ru/post/334060/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Автоматизация IP-сети. Часть3 – Мониторинг TCP аномалий
habra.16
habrabot(difrex,1) — All
2017-07-26 11:00:05


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

[1]: https://habrastorage.org/web/ee5/03b/70c/ee503b70c56b4b24afbafd2928fcefa8.jpg
[2]: https://habrahabr.ru/post/332690/
[3]: https://www.wireshark.org
[4]: https://habrahabr.ru/post/333768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Быстрое удаление пробелов из строк на процессорах ARM — альтернативный анализ
habra.16
habrabot(difrex,1) — All
2017-07-26 12:30:04


Оригинал статьи: [https://github.com/blu/ascii\_pruner][1]
Автор: Мартин Кръстев



Один мой друг обратил мое внимание на интересную статью на habrahabr.ru — [русский перевод статьи][2] Дэниела Лемира [Быстрое удаление пробелов из строк на процессорах ARM][3]. Эта статья заинтриговала меня по двум причинам: во-первых, кто-то на самом деле потратил время и усилия по поиску оптимального решения общей проблемы на не-x86 архитектуре (ура!), а во-вторых, результаты автор дал в конце статьи немного озадачили меня: порядка 6-ти кратное преимущество для Intel? Автор сделал однозначный вывод, что ARM-у ну очень далеко по соотношению «эффективность на такт» до «большого железа» от Интела в этой простой задаче.



Вызов принят!

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

[1]: https://github.com/blu/ascii_pruner
[2]: https://habrahabr.ru/post/332710/
[3]: http://lemire.me/blog/2017/07/03/pruning-spaces-from-strings-quickly-on-arm-processors/
[4]: https://habrahabr.ru/post/334142/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Простой трекер семейного бюджета с помощью AWS SES, Lambda и DynamoDB (и Route53)
habra.16
habrabot(difrex,1) — All
2017-07-26 12:30:04


# Как контролировать семейный бюджет? {#kak-kontrolirovat-semeynyy-byudzhet}



![image][1]



У меня всегда были сложности точно следовать бюджету, особенно сейчас, когда все покупки проходят по кредитной карте. Причина проста — перед глазами нет пачки денег, которая постепенно сокращается, и в какой-то момент ты понимаешь, что тратить больше нечего. Если большая часть покупок оплачивается кредитной картой, то единственный способ узнать, сколько cредств осталось или сколько потрачено, это зайти в Интернет-банк или мобильный банк, или же использовать финансовые агрегаторы, например Mint, в которые тоже надо заходить и проверять баланс. Это возможно, но на это требуется дисциплина, а когда с той же карточки платишь не только ты, то установить её сложно.



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

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

[1]: https://habrastorage.org/web/bf2/aae/864/bf2aae864802463c950195fb97214785.jpg
[2]: https://habrahabr.ru/post/334146/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Tizen: подводим итоги
habra.16
habrabot(difrex,1) — All
2017-07-26 14:30:04


![PVS-Studio, Tizen, Итоги][1]Наша команда написала три заметки, связанные с анализом кода операционной системы Tizen. Операционная система содержит много кода и поэтому является благодатной почвой для написания различных статей. Думаю, что к Tizen мы ещё вернёмся в будущем, но сейчас нас ждут другие интересные проекты. Поэтому я подведу некоторые итоги проделанной работы и отвечу на ряд вопросов, возникших после опубликованных ранее статей.


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

[1]: https://habrastorage.org/getpro/habr/post_images/97d/563/7dc/97d5637dcd372d4f24a6801776cb3aca.png
[2]: https://habrahabr.ru/post/334172/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Dotty –  будущее языка Scala
habra.16
habrabot(difrex,1) — All
2017-07-26 15:00:04


В конце мая я оказался среди слушателей конференции Scala Days в Копенгагене. Одним из ключевых спикеров был создатель языка Scala Мартин Одерский. Он рассказал о развитии языка и, в частности, о разработке компилятора, названного Dotty. Планируется, что на основе Dotty будет разработан новый компилятор для версии 3.0.

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

[![][1]][2]
_Мартин Одерский. План развития Scala на ближайшие несколько лет_

Этот пост будет полезен и знатокам, и совсем новичкам, для которых разговор о Dotty я предваряю рассказом об особенностях Scala, а также о том, что лежит в его математической основе.
[Читать дальше →][3]

[1]: https://habrastorage.org/web/ade/537/cb1/ade537cb168a4e3f92959d8479417caa.jpg
[2]: https://habrahabr.ru/company/lanit/blog/334018/
[3]: https://habrahabr.ru/post/334018/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Dotty – будущее языка Scala
habra.16
habrabot(difrex,1) — All
2017-07-26 16:00:05


В конце мая я оказался среди слушателей конференции Scala Days в Копенгагене. Одним из ключевых спикеров был создатель языка Scala Мартин Одерский. Он рассказал о развитии языка и, в частности, о разработке компилятора, названного Dotty. Планируется, что на основе Dotty будет разработан новый компилятор для версии 3.0.

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

[![][1]][2]
_Мартин Одерский. План развития Scala на ближайшие несколько лет_

Этот пост будет полезен и знатокам, и совсем новичкам, для которых разговор о Dotty я предваряю рассказом об особенностях Scala, а также о том, что лежит в его математической основе.
[Читать дальше →][3]

[1]: https://habrastorage.org/web/ade/537/cb1/ade537cb168a4e3f92959d8479417caa.jpg
[2]: https://habrahabr.ru/company/lanit/blog/334018/
[3]: https://habrahabr.ru/post/334018/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Приглашаем на Tarantool Meetup 10 августа
habra.16
habrabot(difrex,1) — All
2017-07-26 17:30:04


![][1]

Всем привет! 10 августа 2017 мы приглашаем архитекторов и разработчиков в московский офис Mail.Ru Group, где состоится Tarantool Meetup, посвященный архитектуре и реализации корпоративных микросервисов с использованием Tarantool. Мы поделимся с вами своими подходами к проектированию решений и покажем на примере двух простых сервисов как можно за два часа решить две типовые задачи. И традиционно будет много интересных технических дискуссий на самые разные темы! А если вы возьмете с собой ноутбук с установленным Docker, то сможете сами пощупать все своими руками. Программу читайте под катом.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/1f9/b13/dbd/1f9b13dbd45f4fa2ac48c0d94405d39d.jpg
[2]: https://habrahabr.ru/post/334150/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Конкурс по программированию: JSDash (промежуточные результаты 2)
habra.16
habrabot(difrex,1) — All
2017-07-26 19:00:04


**Объявление:** срок приёма решений продлевается до 17 августа.

Спасибо всем, кто уже принял участие в нашем [конкурсе по программированию][1]! Мы получили 39 решений от 26 уникальных участников. Публикуем новые промежуточные результаты.
[Читать дальше →][2]

[1]: https://habrahabr.ru/company/hola/blog/332176/
[2]: https://habrahabr.ru/post/334186/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Случайный лес vs нейросети: кто лучше справится с задачей распознавания пола из аудио (ч.1)
habra.16
habrabot(difrex,1) — All
2017-07-26 19:00:04


Исторически сложилось так, что наибольшего успеха глубокое обучение достигло в задачах image processing – распознавания, сегментации и обработки изображений. Однако не сверточными сетями едиными, как говорится, живет наука о данных.

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

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

[1]: https://habrastorage.org/web/b40/ee7/898/b40ee789846a4756b3ff6a761d32db95.png
[2]: https://habrahabr.ru/company/neurodatalab/blog/334136/
[3]: https://habrahabr.ru/post/334136/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Selenium: для любителей яблок
habra.16
habrabot(difrex,1) — All
2017-07-26 23:00:05


Привет! Это моя новая статья, посвященная Selenium. Ранее я уже подробно рассказал об организации масштабируемого кластера Selenium ([часть I][1], [часть II][2]). Затем мы рассмотрели вопрос использования Selenium в качестве инструмента отладки автотестов ([раз][3], [два][4]), Наконец, нам удалось создать порядок из хаоса на Windows ([ссылка][5]). Сегодня мы будем иметь дело с яблоками, точнее с одним большим Яблоком (т.е. с Apple).


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

[1]: https://hackernoon.com/selenium-testing-a-new-hope-7fa87a501ee9
[2]: https://hackernoon.com/selenium-testing-a-new-hope-a00649cdb100
[3]: https://habrahabr.ru/post/327184/
[4]: https://habrahabr.ru/post/333568/
[5]: https://habrahabr.ru/post/329256/
[6]: https://habrastorage.org/web/b4b/4f1/717/b4b4f17174b84b4fbaf4d7e2b3fbed5d.jpg
[7]: https://habrahabr.ru/post/334048/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Есть ли альтернатива MS Windows, IE и CSP при доступе в личные кабинеты порталов Госзакупок, ФНС России и Госуслуг
habra.16
habrabot(difrex,1) — All
2017-07-26 23:00:05


![image][1]

И сразу дадим ответ – да, можно и нужно, только не отказаться, а дать гражданам и организациям возможность использовать и другие операционные системы, браузеры и средства криптографической защиты информации (СКЗИ). Ответим на вопрос и как – соблюдать стандарты и технологии. Почему бы для доступа в личные кабинеты не использовать авторизованный доступ по протоколу https? И тогда нет необходимости в использования только CSP а ля Микрософт с поддержкой российской криптографии. Тогда автоматом станут востребованы и токены PKCS#11 и как международный стандарт, так и стандарт, поддерживаемый [ТК-26][2], стандарты PKCS#12 (тем же ТК-26), может что-то другое, но стандартное. В этом случае речь уже будет идти не об MS Windows, Interner Explorer и CSP, а о браузерах или других программ с поддержкой https с российскими шифрсьютами. Это может быть и Internet Explorer, и модификации того же Mozilla Firefox, наконец [Google Chrome][3] или прокси типа stunnel.
[Читать дальше →][4]

[1]: https://habrastorage.org/web/041/650/c9f/041650c9f89340519b10ef115de0fd45.png
[2]: https://www.tc26.ru/
[3]: http://www.pvsm.ru/google/186496
[4]: https://habrahabr.ru/post/334162/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Случайный лес vs нейросети: кто лучше справится с задачей распознавания пола в речи (ч.1)
habra.16
habrabot(difrex,1) — All
2017-07-27 13:30:05


Исторически сложилось так, что наибольшего успеха глубокое обучение достигло в задачах image processing – распознавания, сегментации и обработки изображений. Однако не сверточными сетями едиными, как говорится, живет наука о данных.

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

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

[1]: https://habrastorage.org/web/b40/ee7/898/b40ee789846a4756b3ff6a761d32db95.png
[2]: https://habrahabr.ru/company/neurodatalab/blog/334136/
[3]: https://habrahabr.ru/post/334136/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Добавляем GPRS в домашнюю GSM сеть
habra.16
habrabot(difrex,1) — All
2017-07-27 15:00:04


Третья статья из цикла покажет как исследовать работу пакетных данных в сетях GSM при помощи Osmocom. Другими словами мы будем раздавать интернет с ноутбука абонентам нашей домашней сети на основе двух osmocombb-совместимых телефонов и анализировать TCP/IP трафик.

![][1]

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

[1]: https://habrastorage.org/web/d52/6ce/22e/d526ce22e5c2435bbfd0ae5ba1f91c9f.jpg
[2]: https://habrahabr.ru/post/334100/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как ускорить сайт или факторы, влияющие на загрузку сайта
habra.16
habrabot(difrex,1) — All
2017-07-27 15:30:04


**Цель**: Дать базовые понятия о факторах, влияющих на скорость загрузки сайта. Разобрать каждый этап загрузки. Дать понятие о способах ускорения за счёт оптимизации каждого фактора загрузки, на который можно повлиять.

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

**Целевая аудитория**: владельцы сайтов, web-студии, специалисты и любители. Постараюсь написать статью таким образом, чтобы она была доступна в понимании всем.

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

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

[>] Разбор задач финала Яндекс.Алгоритма 2017
habra.16
habrabot(difrex,1) — All
2017-07-27 16:00:04


На днях завершился [Яндекс.Алгоритм 2017][1] — наш чемпионат по спортивному программированию. В финальном раунде 25 финалистам нужно было за два с половиной часа решить шесть задач. Первое место вновь завоевал Геннадий Короткевич из питерского ИТМО — это уже четвёртая его победа после состязаний 2013, 2014 и 2015 года. Никола Йокич из Швейцарской высшей технической школы Цюриха и выпускник Университета Токио Макото Соэдзима стали вторым и третьим, повторив свои [прошлогодние][2] результаты. Вот как распределились денежные призы: победа — 300 тысяч рублей, второе место — 150 тысяч, третье — 90 тысяч.



![][3]



Заявки на участие в Алгоритме 2017 подали 4840 человек. Более 60% из них — россияне. На втором месте по количеству заявок — Беларусь, далее следуют Украина, Индия и Китай. В общей сложности на чемпионат зарегистрировались жители нескольких десятков стран, включая Сингапур, Камерун, Венесуэлу и Перу.



Мы по традиции публикуем формулировки и разобранные решения задач финала.

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

[1]: https://contest.yandex.ru/algorithm2017/
[2]: https://habrahabr.ru/company/yandex/blog/306872/
[3]: https://habrastorage.org/getpro/habr/post_images/975/4e1/13d/9754e113d888ccd7967b82cccd0663d1.jpg
[4]: https://habrahabr.ru/post/334250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Релиз Linux-дистрибутива openSUSE 42.3
habra.16
habrabot(difrex,1) — All
2017-07-27 17:00:04


Друзья, коллеги, единомышленники!

После приблизительно 9 месяцев от даты выхода предыдущей версии, состоялся выпуск третьей редакции выпуска популярного Linux-дистрибутива [openSUSE][1] Leap 42-й серии. Итак, встречаем — **openSUSE Leap 42.3**.

![][2]

Дистрибутив openSUSE **Leap**, в отличии от openSUSE **Tumbleweed** (rolling-release, постоянно обновляемый дистрибутив в стиле Arch Linux), периодически выпускается и является регулярным, рекомендуется для начинающих и опытных пользователей Linux, разработчиков, администраторов и поставщиков программного обеспечения, так как в итоге получается удобный и пригодный к использованию дистрибутив и стабильная операционная система.
[Читать дальше →][3]

[1]: https://www.opensuse.org/
[2]: https://habrastorage.org/web/b0d/a59/cbb/b0da59cbbcee438cb7a09e69aa9892a8.png
[3]: https://habrahabr.ru/post/334258/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Метаклассы в C++
habra.16
habrabot(difrex,1) — All
2017-07-27 20:30:04


В этой статье мы поговорим о новом предложенном расширении языка С++ — метаклассах. Герб Саттер с коллегами работал над этим предложением около 2 лет и, наконец, этим летом [представил][1] его общественности.

Итак, что же такое «метакласс» с точки зрения Герба Саттера? Давайте вспомним наш С++ — самый прекрасный в мире язык программирования, в котором, однако, веками десятилетиями существуют примерно одни и те же сущности: переменные, функции, классы. Добавление чего-то фундаментально нового (вроде enum classes) занимает очень много времени и рассчитывать дождаться включения чего-то нужного вам здесь и сейчас в стандарт — не приходится. А ведь кое-чего и правда не хватает. Например, у нас всё ещё нет (да, наверное, и не будет) интерфейсов как таковых (приходится эмулировать их абстрактными классами с чисто виртуальными методами). Нет properties в полном их понимании, нет даже value-типов (чего-то такого, что можно было бы определить как набор переменных простых типов и сразу использовать во всяких там контейнерах/сортировках/словарях без определения для них разных там операций сравнения, копирования и хеширования). Да и вообще постоянно чего-то кому-то не хватает. Разработчикам Qt вот не хватает метаданных и кодогенерации, что заставляет их использовать moc. Разработчикам C++/CLI и C++/CX не хватило способов взаимодействия со сборщиком мусора и своими системами типов. Ну и т.д.

А давайте на секунду представим, что мы сами можем вводить в язык новые сущности. Ну или пусть не прямо «сущности», а правила проверки и модификации классов.
[Читать дальше →][2]

[1]: https://herbsutter.files.wordpress.com/2017/07/p0707r1.pdf
[2]: https://habrahabr.ru/post/334284/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] SOAP и REST сервисы с помощью Python-библиотеки Spyne
habra.16
habrabot(difrex,1) — All
2017-07-27 23:30:04


## Знакомство с библиотекой Spyne


В данной статье я хочу рассказать о замечательной Python-библиотеке Spyne.
Мое знакомство с Spyne началось в тот момент, когда передо мной поставили задачу написать Веб-сервис, который будет принимать и отдавать запросы через SOAP-протокол. Немного погуглив я наткнулся на [Spyne][1], которая является форком библиотеки [soaplib][2]. А еще я был удивлен, насколько мало русскоязычной информации встречается о данной библиотеке.

С помощью Spyne можно писать веб-сервисы, которые умеют работать с SOAP, JSON, YAML, а написанный скрипт можно запустить через mod\_wsgi Apache. Итак, давайте рассмотрим несколько примеров, напишем работающие скрипты и настроим так, чтобы скрипты работали через apache. [Читать дальше →][3]

[1]: http://spyne.io/
[2]: https://github.com/soaplib/soaplib
[3]: https://habrahabr.ru/post/334290/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как уязвимость платежной системы раскрывала данные кредитных карт
habra.16
habrabot(difrex,1) — All
2017-07-27 23:30:04


Недавно решил проверить на уязвимости сайты платежных систем (ua,ru). Нашёл топ такого рода сервисов, на множестве из которых были обнаружены xss, csrf и другие популярные уязвимости. Были компании, которые оперативно устраняли уязвимости, благодарили и договаривались о сотрудничестве, были, которые молча фиксили, и самый неприятный момент — компании, которые не верили в опасность проблемы, я пытался доказать им обратное, что дело обстоит серьезно, предлагал показать уязвимость на их тестовом аккаунте, говорили, что исправят, но до сих пор и не исправили ([maxkassa.ru][1]).

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

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

[>] JetBrains MPS для интересующихся #1
habra.16
habrabot(difrex,1) — All
2017-07-28 06:30:04


## Введение {#vvedenie}



Спасибо всем за критику в комменте под [первым постом][1], где я хотел попробовать написать про MPS, не затрагивая важные темы, чтобы можно было потом более качественно начать писать по порядку.



## Зачем нам нужен язык Weather? {#zachem-nam-nuzhen-yazyk-weather}



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


> С этой точки зрения, DSL — это как фреймворк, только с более удобным интерфейсом. Ясное дело, под один проект фреймворк делать никто не будет, за исключением совсем уж монструозных случаев. А сделать его под конкретную предметную область — почему бы и нет?..

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



## Синтаксис {#sintaksis}



Язык Weather, который мы хотим реализовать, должен выполнять следующую задачу: мы должны уметь лаконично выражать условия (погода сегодня, например) и следствия (погода завтра, послезавтра...).
В языке Weather мы будем делать наши прогнозы отталкиваясь от 1 фактора: от температуры на сегодняшний день(массив объектов время + погодные условия).

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

[1]: https://habrahabr.ru/post/334108/
[2]: https://habrahabr.ru/post/334108/#comment_10328140
[3]: https://habrahabr.ru/post/334308/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Призрак локомотива или биржевой рынок через призму корреляций
habra.16
habrabot(difrex,1) — All
2017-07-28 12:30:03


В этой статье будет продемонстрирована техника обработки информации по биржевым котировкам с помощью пакета [pandas][1] (python), а также изучены некоторые «мифы и легенды» биржевой торговли посредством применения методов математической статистики. Попутно кратко рассмотрим особенности использования библиотеки [plotly][2].
Одной из легенд трейдеров является понятие «локомотива». Описать ее можно следующим образом: есть бумаги «ведущие» и есть бумаги «ведомые». Если поверить в существование подобной закономерности, то можно «предсказывать» будущие движения финансового инструмента по движению «локомотивов» («ведущих» бумаг). Так ли это? Есть ли под этим основания?
![image][3]
[Читать дальше →][4]

[1]: http://pandas.pydata.org/
[2]: https://plot.ly/
[3]: https://habrastorage.org/getpro/habr/post_images/6f3/be9/3e6/6f3be93e64dbeb2736153a1e12c382a4.jpg
[4]: https://habrahabr.ru/post/334288/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Red Architecture — красная кнопка помощи для сложных и запутанных систем — часть 2 (пример с миллиардом ячеек)
habra.16
habrabot(difrex,1) — All
2017-07-28 14:00:05


В [первой части][1] представлена концепция **Red Architecture** — подход, упрощающий взаимодействие между компонентами в сложных системах, и предназначенная в первую очередь для клиентских приложений. Для полного понимания текущей статьи необходимо познакомиться с данной концепцией [здесь][2].

![][3]

По следам свежих комментариев к [первой части][4] рассмотрим законченный пример, демонстрирующий применение Red Architecture для решения нетривиальной задачи.

_У нас есть клиетское приложение — редактор таблиц, в нём отображается лист таблицы. Экран у пользователя настолько большой, что на нём помещается 1 000 000 000 (один миллиард) табличных ячеек. Всё усложняется тем, что наш табличный редактор подключен к облаку для возможности совместного редактирования таблицы, поэтому изменения в любой из одного миллиарда ячеек “где-то в облаке” должны быть сразу же отображены нашему пользователю._

Паттерн Red Architecture позволяет реализовать данную функцию просто и с высокой производительностью.
[Читать дальше →][5]

[1]: https://habrahabr.ru/post/333870/
[2]: https://habrahabr.ru/post/333870/
[3]: https://habrastorage.org/web/e20/b7a/567/e20b7a5674cc4abfad5f507f51733956.png
[4]: https://habrahabr.ru/post/333870/
[5]: https://habrahabr.ru/post/334204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Настройка аутентификации в Citrix XenDesktop 7.x c использованием смарт-карт JaCarta PKI
habra.16
habrabot(difrex,1) — All
2017-07-28 14:30:04


Настоящая статья описывает процесс настройки двухфакторной аутентификации с использованием смарт-карт JaCarta PKI разработки компании [«Аладдин Р.Д.»][1] в виртуальной среде Citrix XenDesktop версии 7.x.
[Читать дальше →][2]

[1]: https://www.aladdin-rd.ru/company/
[2]: https://habrahabr.ru/post/334322/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Методология и руководство по стилю кода компании Ronimo
habra.16
habrabot(difrex,1) — All
2017-07-28 14:30:04


Я большой сторонний структурного подхода к работе. Программистам игр приходится создавать сложные системы и поэтому недостаточно просто плыть по течению. Я написал два документа о том, как мы в [Ronimo][1] пишем код, которые должен изучить в первый день работы каждый программист и стажёр. Наш документ по _методологии_ объясняет рабочий процесс, а _руководство по стилю_ рассказывает о системе нашего кода. Для начала я хочу раскрыть методологию и рассказать о причинах, стоящих за представленными в документе правилами.
[Читать дальше →][2]

[1]: http://www.ronimo-games.com
[2]: https://habrahabr.ru/post/334106/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как крупная курьерская компания персональные данные своих клиентов раздавала
habra.16
habrabot(difrex,1) — All
2017-07-28 15:00:04


![image][1]

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

[1]: https://s3.postimg.org/bwc0gsm4z/0e35049f32d7b56a8ecf01bec5d219a62721edab.jpg
[2]: https://habrahabr.ru/post/334330/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как работает нейронный машинный перевод?
habra.16
habrabot(difrex,1) — All
2017-07-28 16:00:04


#### Описание процессов машинного перевода основанного на базе правил (Rule-Based), машинного перевода на базе фраз (Phrase-Based) и нейронного перевода


![image][1]

В этой публикации нашего цикла step-by-step статей мы объясним, как работает нейронный машинный перевод и сравним его с другими методами: технологией перевода на базе правил и технологией фреймового перевода (PBMT, наиболее популярным подмножеством которого является статистический машинный перевод — SMT).

Результаты исследования, полученные Neural Machine Translation, удивительны в части того, что касается расшифровки нейросети. Создается впечатление, что сеть на самом деле «понимает» предложение, когда переводит его. В этой статье мы разберем вопрос семантического подхода, который используют нейронные сети для перевода.

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

[1]: https://habrastorage.org/getpro/habr/post_images/9f7/e5d/c0d/9f7e5dc0dd7eba0274a6ee8ca85d5274.jpg
[2]: https://habrahabr.ru/post/334342/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как «Актив» организовал «электронную переговорку»
habra.16
habrabot(difrex,1) — All
2017-07-28 16:30:05


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



Но это только половина проблемы. Как всем известно, ресурсами еще нужно уметь грамотно управлять, чтобы не случалось коллизий. Ситуации, когда во время встречи с партнерами, в переговорную врывается руководитель соседнего подразделения со словами “И эта занята!?”, недопустимы.




Второй момент – когда под рукой нет инструмента (к примеру, Outlook или его web-интерфейса), чтобы забронировать переговорную комнату, но очень нужно «успеть» захватить ценный ресурс. Для осуществления задуманного, необходимо идти на свое рабочее место и с него осуществлять бронирование. Теперь представим, что у вас нет на это времени, выходя из переговорной комнаты с очередной встречи.



Можно конечно придумать еще различные варианты «почему». Для нас уже этих двух моментов было достаточно, чтобы начать исследования в направлении поиска решения проблемы.


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

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

[>] ICFP Contest 2017 — проверка на прочность для настоящих разработчиков
habra.16
habrabot(difrex,1) — All
2017-07-29 00:30:04


[ICFPC][1] — ежегодное соревнование для программистов. Оно проходит в онлайне и длится 72 часа. ICFPC 2017 начнётся в пятницу 4 августа в 12:00 (UTC) и закончится в понедельник.

Я расскажу, почему нельзя пропускать ICFPC и дам серию советов. Освободи следующие выходные, собери команду и участвуй!

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

[1]: http://events.inf.ed.ac.uk/icfpcontest2017/
[2]: https://habrastorage.org/web/297/c2d/d4b/297c2dd4b7a049608416edc42d5eb194.jpg
[3]: https://habrahabr.ru/post/334324/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 30: Adups снова за свое, как закэшировать некэшируемое, в контейнерах Docker – опасный груз
habra.16
habrabot(difrex,1) — All
2017-07-29 03:00:03


Эта история [началась][1] давным-давно, еще в прошлом году, когда исследователи из Kryptowire наткнулись на подозрительный трафик, исходящий из купленного по случаю китайского смартфона. Углубившись в прошивку аппарата, они выяснили, что система OTA-обновлений представляет собой натуральный бэкдор. Ну, и еще немножечко апдейтит прошивку, в свободное от шпионажа за пользователем время.

FOTA (firmware over the air), программный модуль от Shanghai Adups Technology Company отправлял куда-то в Китай буквально все: SMS-сообщения, IMSI и IMEI, журнал звонков, географические координаты устройства. На сайте Adups гордо заявлялось, что их чудненький FOTA используется на 700 млн устройств. В основном это китайские и не очень смартфоны, а также навигаторы, умные автомагнитолы и все прочие гаджеты с подключением к Интернету.

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

[1]: https://threatpost.com/backdoor-found-in-firmware-of-some-android-devices/122075/
[2]: https://mobile.nytimes.com/2016/11/16/us/politics/china-phones-software-security.html
[3]: https://habrahabr.ru/post/334378/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] JetBrains MPS для интересующихся #2
habra.16
habrabot(difrex,1) — All
2017-07-29 11:00:44


# Йо-хо-хо! {#yo-ho-ho}



В прошлом посте мы остановились на том, что мы умеем добавлять массив входных погодных данных, а точнее данные "Время + температура", слегка попробовали использовать **Behavior** и разобрались с концептами.
Пришло время делать что-то полезное, ведь пока все, что мы реализовали, можно было реализовать на любом другом языке, за исключением прикольного синтаксиса.
Первым делом, введем ограничения на время. Сейчас мы ограничим его, чтобы часы были в пределе 0-24, а минуты 0-60, иначе будет выдаваться ошибка компиляции.



## Constraints {#constraints}



**Constraints** это аспект языка, который отвечает за валидность реализации концепта. В нашем случае нам нужно ограничить _property_ hours и minutes, поэтому мы создаем _Constraints_ аспект концепта Time.
![image][1]
Здесь мы видим 3 пункта, которые отвечают за структуру AST.


* can be child: получаем на вход данные об узле, родительском узле, дочернем и все, что только можно и решаем, может ли реализация концепта в данном контексте быть дочерней или нет
* can be parent: то же самое, что и с child, только проверка на возможность быть родительским узлом
* can be ancestor: все то же самое, что с parent, но более вложенно: в данном случае мы можем идти как угодно выше по AST, дословно — может ли узел быть предком[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/3c2/5b9/837/3c25b9837a88652cbd7bd39b6f8ea9f1.png
[2]: https://habrahabr.ru/post/334376/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Взлом казино через умный аквариум и DDoS биржевых брокеров: новые атаки на сферу финансов
habra.16
habrabot(difrex,1) — All
2017-07-29 16:30:17


[![][1]][2]

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

[1]: https://habrastorage.org/web/b1b/719/94d/b1b71994d89946799ac7b9a19b4c4338.png
[2]: https://habrahabr.ru/company/itinvest/blog/334396/
[3]: https://habrahabr.ru/post/334396/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Сравнение* древовидных графов
habra.16
habrabot(difrex,1) — All
2017-07-29 21:00:06


Привет, Хабр!

\* На самом деле не совсем так. При разработке информационной системы, частью которой является различная обработка конструкторско-технологической документации, у меня возникла проблема, которую вкратце можно описать следующим образом. Сегодня мы имеем один состав изделия, за день приходит несколько изменений по различным частям этого изделия и к вечеру уже неясно, что же изменилось? Изделия порой могут иметь более 10 000 элементов в составе, элементы не уникальны, а реальность такова, что изменения по составу могут активно приходить, хотя изделие уже почти готово. Непонимание объема изменений усложняет планирование.

Состав изделия можно представить в виде древовидного графа. Не найдя подходящего способа сравнения двух графов, я решил написать свой велосипед.
[Читать дальше →][1]

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

[>] Play with Docker — онлайн-сервис для практического знакомства с Docker
habra.16
habrabot(difrex,1) — All
2017-07-31 11:00:04


![][1]

В конце прошлого года два [капитана Docker][2] [представили][3] свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков. [Читать дальше →][4]

[1]: https://habrastorage.org/web/39a/078/df8/39a078df8c944dd1bde1dad5b352f462.jpg
[2]: https://www.docker.com/community/docker-captains
[3]: https://blog.docker.com/2016/12/global-mentor-week-thank-docker-community/
[4]: https://habrahabr.ru/post/334470/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Интерфейс vs interface
habra.16
habrabot(difrex,1) — All
2017-07-31 12:00:05


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



Часто сложность в понимании принципа "программируйте на уровне интерфейса" кроется в концентрации на инструменте, а не на смысле. Из-за наличия в Java ключевого слова `interface`, происходит искажение понимания принципа, и он превращается в "программируйте, используя `interface`". Так как в Python инструмент в виде ключевого слова `interface` отсутствует, некоторые питонисты пропускают этот принцип.



В книге Банды Четырех примеры приводятся на Smalltalk и C++. Оба этих языка не имеют ключевого слова `interface`, но это не мешает авторам применять принцип, используя имеющиеся в распоряжении конструкции языка:


> У манипулирования объектами строго через интерфейс абстрактного класса есть два преимущества:
>
> * клиенту не нужно иметь информации о конкретных типах объектов, которыми он пользуется, при условии, что все они имеют ожидаемый клиентом интерфейс;
> * клиенту необязательно "знать" о классах, с помощью которых реализованы объекты. Клиенту известно только об абстрактном классе (или классах), определяющих интерфейс.
>
>
>
> Данные преимущества настолько существенно уменьшают число зависимостей между подсистемами, что можно даже сформулировать принцип объектно-ориентированного проектирования для повторного использования: _программируйте в соостветствии с интерфейсом, а не с реализацией_.

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

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

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

[>] Докеризация высокодоступного Postgres кластера
habra.16
habrabot(difrex,1) — All
2017-07-31 12:00:05


![][1]

Пару месяцев назад мы переехали из Амазон на свои выделенные сервера(Hetzner), одна из причин тому была высокая стоимость RDS. Встала задача настроить и запустить master-slave кластер на выделенных серверах. После гугления и прочтения официальной документации, было принято решение собрать свое собственное решение высокодоступного асинхронного кластера Postgres.

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

[1]: https://habrastorage.org/web/67f/924/b3d/67f924b3d6d54a6b9b46cda3562fb1df.png
[2]: https://habrahabr.ru/post/334484/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] grab'им караваны ЛитРес в ознакомительных целях
habra.16
habrabot(difrex,1) — All
2017-07-31 12:00:05


Некоторые книги, по требованию правообладателя, доступны только для чтения с сайта или в приложениях ЛитРес. Все бы ничего, но бывают такие ситуации:
![][1]



Право читать обошлось в 2/3 от стоимости бумажного носителя, если брать с сайта издательства.


> Справедливости нет. есть только я

[Смерть][2]



И тут я решил написать grabber.

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

[1]: https://habrastorage.org/web/204/671/7b1/2046717b19aa442d83967d3f90fc68dd.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%A1%D0%BC%D0%B5%D1%80%D1%82%D1%8C_(%D0%9F%D0%BB%D0%BE%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%B8%D1%80)
[3]: https://habrahabr.ru/post/334412/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 ... 210