RSS
Pages: 1 ... 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 ... 210
[>] [Из песочницы] Уязвимость ВКонтакте: отправляем сообщение с кодом восстановления страницы на чужой номер
habra.16
habrabot(difrex,1) — All
2017-07-09 14:00:06


![][1]

Обычным весенним днем, занимаясь «подготовкой» к ЕГЭ по информатике, наткнулся на [статью об уязвимости Facebook][2], позволявшей взломать все аккаунты в социальной сети, за которую выплатили 15000$. Суть уязвимости заключалась в переборе кодов восстановления на тестовом домене компании. Я подумал, а чем собственно ВКонтакте хуже? И решил попробовать провернуть подобный трюк у них. Зная, что веб-версия уже достаточно хорошо исследована, жертвой должен был стать Android клиент, а что из этого вышло можно прочитать под катом. [Читать дальше →][3]

[1]: https://habrastorage.org/web/ce1/f8f/c02/ce1f8fc0222f4b3db640ccbb3838d858.png
[2]: http://www.anandpraka.sh/2016/03/how-i-could-have-hacked-your-facebook.html
[3]: https://habrahabr.ru/post/332684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Бинарная сегментация изображений методом фиксации уровня (Level set metod)
habra.16
habrabot(difrex,1) — All
2017-07-09 15:30:04


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

В этой статье я кратко рассмотрю понятие метода фиксации уровня и неявно заданных динамических поверхностей (level set method). Также рассмотрю роль этого метода в бинарной сегментации с введением и определением математических конструкций, таких как SDT (Signed Distance Transforms), маркированной карты расстояний.

![][1]_ Слева — исходное изображение, справа — сегментированное_
[Читать далее...][2]

[1]: https://habrastorage.org/web/e97/366/93a/e9736693a7a84c24b425c8d76d6d98c7.jpg
[2]: https://habrahabr.ru/post/332692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Бинарная сегментация изображений методом фиксации уровня (Level set method)
habra.16
habrabot(difrex,1) — All
2017-07-09 17:30:04


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

В этой статье я кратко рассмотрю понятие метода фиксации уровня и неявно заданных динамических поверхностей (level set method). Также рассмотрю роль этого метода в бинарной сегментации с введением и определением математических конструкций, таких как SDT (Signed Distance Transforms), маркированной карты расстояний.

![][1]_ Слева — исходное изображение, справа — сегментированное_
[Читать далее...][2]

[1]: https://habrastorage.org/web/e97/366/93a/e9736693a7a84c24b425c8d76d6d98c7.jpg
[2]: https://habrahabr.ru/post/332692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Алгоритм поиска наилучшего маршрута в linux
habra.16
habrabot(difrex,1) — All
2017-07-09 18:00:05


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

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

[>] [Перевод] Быстрое удаление пробелов из строк на процессорах ARM
habra.16
habrabot(difrex,1) — All
2017-07-09 20:00:06


![][1]Предположим, что я дал вам относительно длинную строку, а вы хотите удалить из неё все пробелы. В ASCII мы можем определить пробелы как знак пробела (‘ ’) и знаки окончания строки (‘\\r’ и ‘\\n’). Меня больше всего интересуют вопросы алгоритма и производительности, так что мы можем упростить задачу и удалить все байты со значениями меньшими либо равными 32.

В [предыдущией статье][2], где я задавал вопрос об удалении пробелов на скорость, лучшим ответом было использование векторизации с помощью 128-битных регистров (SSE4). Оно оказалось в 5-10 раз быстрее подхода в лоб.

Очень удобно, что во всех процессорах имеются 128-битные векторные регистры, также как в процессорах x64. Неужели процессоры ARM могут работать настолько же быстро, как процессоры x64?
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/ad3/88a/854/ad388a854496683ed3c076b107ecf56d.jpg
[2]: http://lemire.me/blog/2017/01/20/how-quickly-can-you-remove-spaces-from-a-string/
[3]: https://habrahabr.ru/post/332710/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Шифр Хила. Подробнй разбор
habra.16
habrabot(difrex,1) — All
2017-07-09 21:00:04


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

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

[>] [Из песочницы] Шифр Хила. Подробный разбор
habra.16
habrabot(difrex,1) — All
2017-07-10 00:30:06


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

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

[>] [Перевод] Отзыв сертификатов не работает
habra.16
habrabot(difrex,1) — All
2017-07-10 04:00:06


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


## Сертификаты


Мы сейчас видим настоящую золотую лихорадку вокруг сертификатов, поскольку всё больше сайтов внедряют HTTPS. Кроме очевидных преимуществ безопасности и приватности, есть и другие выгоды от внедрения защищённых соединений, которые я перечислил в статье «[Вы всё ещё думаете, что вам не нужен HTTPS?][1]». Обычно именуемые «SSL-сертификаты» или «HTTPS-сертификаты» разлетаются со скоростью, которой мы никогда не видели в истории интернета. Каждый день я исследую сайты из первого миллиона по посещаемости и анализирую различные аспекты их безопасности, а каждые 6 месяцев публикую отчёт. Вы можете изучить эти отчёты [здесь][2], но сейчас посмотрим на темпы внедрения HTTPS.

![][3]
Процент сайтов из первого миллиона самых популярных сайтов по статистике Alexa, где стоит редирект на версию HTTPS
[Читать дальше →][4]

[1]: https://scotthelme.co.uk/still-think-you-dont-need-https/
[2]: https://scotthelme.co.uk/tag/crawl/
[3]: https://habrastorage.org/getpro/habr/post_images/f0f/fdb/0e1/f0ffdb0e1e2decdd9231f25891747a27.png
[4]: https://habrahabr.ru/post/332730/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Тандем офисной и мобильной телефонии. Как мы разрабатывали FMC
habra.16
habrabot(difrex,1) — All
2017-07-10 09:30:13


FMC (fixed mobile convergence) — это новое технологическое решение на стыке разных типов сетей связи: фиксированной и мобильной. С его помощью любая организация может создать единую сеть офисных и мобильных телефонов с общим планом короткой нумерации. Технология дает возможность созваниваться напрямую по коротким внутренним номерам сотрудникам вне офисов в разных регионах страны или мира без использования реальной офисной АТС.
[Читать дальше →][1]

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

[>] Автоматизация IP-сети. Часть2 – Мониторинг скорости открытия Веб страниц
habra.16
habrabot(difrex,1) — All
2017-07-10 09:30:13


![image alt][1] Продолжаем серию статей по доступной автоматизации в IP-сети. У каждого из инженеров, работающих с сетью Интернет, так или иначе периодически возникает потребность измерения скорости загрузки Веб странницы. Для этого существует множество инструментов, один из них это утилита wget. Например, для измерения скорости загрузки можно из консоли (Unix/Linux) воспользоваться такой командой:

[root@localhost ~]# wget -E -H -p -Q300K --user-agent=Mozilla --no-cache --no-cookies --delete-after --timeout=15 --tries=2 habrahabr.ru 2>&1 | grep Downloaded
Downloaded: 7 files, 411K in 0.3s (1.22 MB/s)
Следует отметить, что ограничение Q300K достаточное чтобы понять скорость загрузки, особенно если сетевая задержка до сайта более 10мс. При этом результаты скорости будут не очевидны если количество скаченной информации меньше 100K.

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

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

[>] GitLab CI для непрерывной интеграции в production. Часть 1: наш пайплайн
habra.16
habrabot(difrex,1) — All
2017-07-10 10:00:04


![][1]

Итак, [GitLab CI][2]: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD). [Читать дальше →][3]

[1]: https://habrastorage.org/web/ca1/fce/04e/ca1fce04e3314111ac634a3b5d8b8dec.png
[2]: https://docs.gitlab.com/ce/ci/
[3]: https://habrahabr.ru/post/332712/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] GitLab CI для непрерывной интеграции и доставки в production. Часть 1: наш пайплайн
habra.16
habrabot(difrex,1) — All
2017-07-10 11:30:04


![][1]

Итак, [GitLab CI][2]: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD). [Читать дальше →][3]

[1]: https://habrastorage.org/web/ca1/fce/04e/ca1fce04e3314111ac634a3b5d8b8dec.png
[2]: https://docs.gitlab.com/ce/ci/
[3]: https://habrahabr.ru/post/332712/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Инструменты для разработчика Go: знакомимся с лейблами профайлера
habra.16
habrabot(difrex,1) — All
2017-07-10 12:00:22


![Drawing][1]_Привет. Меня зовут Марко. Я системный программист в Badoo. Представляю вашему вниманию перевод поста замечательной [rakyll][2] о новой фиче в Go 1.9. Мне кажется, что лейблы будут очень полезны для профилирования ваших Go-программ. Мы в Badoo, например, используем аналогичную штуку для того, чтобы тегировать куски кода в наших программах на С. И если срабатывает таймер и в лог выводится стек-трейс, то в дополнение к нему мы выводим такой вот тег. В нем, например, может быть сказано, что мы обрабатывали фотографии пользователя с определенным UID. Это невероятно полезно, и я очень рад, что похожая возможность появилась и в Go._

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

[1]: https://habrastorage.org/web/211/aa0/bcd/211aa0bcd2fc46118c72082c5b604f58.png
[2]: https://rakyll.org/
[3]: https://habrahabr.ru/post/332636/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Запуск AMP приложений на Cyclone V SoC
habra.16
habrabot(difrex,1) — All
2017-07-10 17:30:05


![image][1]
Если вы читали мою предыдущую [статью][2], вероятно вам интересна эта тема и вы хотите узнать больше. В этой статье рассмотрим очень частную, не простую, но от этого не менее необходимую задачу запуска двух разных Baremetal приложений на разных ядрах SoC Cyclone V. По сути такие системы называются AMP — asyncronus multi-processing. Чуть не забыл сказать, что на русском языке вы не найдете другого более правильного и подробного руководства к созданию таких систем, так что читаем! [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/b16/26b/e30/b1626be30781282607cfeae2e21d121d.jpg
[2]: https://habrahabr.ru/post/330974/
[3]: https://habrahabr.ru/post/332456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Linux все еще не торт
habra.16
habrabot(difrex,1) — All
2017-07-11 09:00:04


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

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

[1]: https://habrastorage.org/getpro/habr/post_images/0a3/2d1/e64/0a32d1e646a6424c17be75ca5c3e7b48.png
[2]: https://habrahabr.ru/post/332740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 24-ядерный CPU, а я не могу сдвинуть курсор
habra.16
habrabot(difrex,1) — All
2017-07-11 10:30:04


Всё началось, [как это часто бывает][1], когда моя машина начала подтормаживать. На рабочем компьютере Windows 10 c 24-ядерным процессором (48 потоков) — и они на 50% простаивали. Из 64 ГБ памяти использовалось меньше половины. Быстрый SSD тоже не особо использовался. И всё же, когда я двигал мышкой, курсор реагировал не сразу — иногда с задержкой в несколько секунд.

Так что я сделал то, что всегда делаю — записал трассировку событий с помощью ETW и проанализировал её. В результате я обнаружил баг Windows 10, серьёзно влияющий на производительность завершения процессов.

Трассировка ETW показала, что UI зависает во многих программах. Я решил исследовать 1,125-секундное зависание в Диспетчере задач:

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

[1]: https://randomascii.wordpress.com/category/investigative-reporting/
[2]: https://habrastorage.org/getpro/habr/post_images/7ed/f32/72b/7edf3272b0f13132566a477835388778.png
[3]: https://habrahabr.ru/post/332816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проблема непрерывной защиты веб-приложений. Взгляд со стороны исследователей и эксплуатантов. Часть 2
habra.16
habrabot(difrex,1) — All
2017-07-11 13:30:04


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

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

[1]: https://habrastorage.org/web/f39/f99/9b2/f39f999b2d804111be1f266dd6e033ad.jpg
[2]: https://habrahabr.ru/post/332846/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] GitLab CI: ветки больше не нужны
habra.16
habrabot(difrex,1) — All
2017-07-11 13:30:04


![][1]
Неделя [GitLab CI][2] на Хабре! В 2015 году мы [уже писали][3] о встроенной в GitLab системе Continuous Integration. GitLab часто ругают за предательство идеалов UNIX way и интеграцию слишком большого количества функций в одно приложение. Зато насколько удобно пользоваться этими функциями! За те полтора года, что прошли с момента нашей публикации, ребята сделали «Environments», добавили возможность сделать кнопку «раскатать на прод» и множество других улучшений. Под катом я расскажу о накопленном опыте, как небольшим командам автоматически собирать и выкладывать на прод/стейдж не только скрипты Voximplant для телефонии, но и другие проекты — сайты и сервисы.
[Читать дальше →][4]

[1]: https://habrastorage.org/web/d8f/ee1/916/d8fee1916fd248d28a5f726902b00b2f.jpeg
[2]: https://habrahabr.ru/company/flant/blog/332712
[3]: https://habrahabr.ru/company/Voximplant/blog/269473/
[4]: https://habrahabr.ru/post/332792/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Автоматическое распознавание текста в видео
habra.16
habrabot(difrex,1) — All
2017-07-11 14:00:05


_Данная статья является переводом статьи «Automatic text recognition in digital videos» за авторством Райнера Линхарта и Франка Штубера, Университет Маннхайма, Германия._


## Краткий обзор


Мы занимаемся разработкой алгоритмов для автоматической сегментации символов в фильмах, которые извлекают текст из предисловия, титров и заключения. Наши алгоритмы используют стандартные символы текста в видео, чтобы повысить качество сегментации и, как следствие, эффективность распознавания. Как результат мы имеем отдельные символы из кадров. Их можно проанализировать с помощью любого ПО OCR. Результаты распознавания нескольких экземпляров одного и того же символа во всех последующих кадрах объединяются для повышения качества распознавания и для вычисления конечного результата. Мы протестировали наши алгоритмы в серии экспериментов с видеоклипами, записанными с телевизора, и достигли хороших результатов сегментации.
[Читать дальше →][1]

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

[>] Исследование устойчивости национальных сегментов сети
habra.16
habrabot(difrex,1) — All
2017-07-11 14:00:05


![][1]
_Топ-20 устойчивых регионов за 2017 год на карте мира_

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

На глобальную доступность любого оператора связи влияют его пути до Tier-1 операторов. Tier-1 — транснациональные/трансконтинентальные операторы, обеспечивающие глобальную связность между континентами и странами.

Если отсутствуют пути до Tier-1 операторов — оператор не будет иметь глобальную доступность.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/4b1/ad0/c6c/4b1ad0c6cc9b47458324d63be058fa95.png
[2]: https://habrahabr.ru/post/332844/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


![][1]

Рынок безопасности интернета вещей к 2021 году достигнет $37 млрд, согласно аналитическому отчёту [Marketsandmarkets.com][2]. Где разрастается хаос в сфере кибербезопасности, там и тратятся большие деньги на обеспечение этой безопасности.

В начале 2017 года эксперты предсказывали, что зияющие в IoT бреши приведут [к разрушению критически важной инфраструктуры][3], росту конкурентной разведки и краж интеллектуальной собственности. Также прогнозировалось, что многократное увеличение DDoS-атак [парализует][4] Dyn DNS-систему, а с ней и многие важные веб-домены.

Давайте рассмотрим пять основных аспектов плачевного состояния IoT-безопасности, вытекающего из взрывного роста, масштабов, уязвимости, ёмкости и доступности устройств. [Читать дальше →][5]

[1]: https://habrastorage.org/web/db6/b8d/999/db6b8d9991c545e1918f0dbb8af928cf.jpg
[2]: http://www.marketsandmarkets.com/Market-Reports/iot-security-market-67064836.html
[3]: http://www.techrepublic.com/article/experts-predict-2017s-biggest-cybersecurity-threats/
[4]: http://securityaffairs.co/wordpress/54895/breaking-news/2017-previsions.html
[5]: https://habrahabr.ru/post/332852/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Анализ трафика GSM сетей в Wireshark
habra.16
habrabot(difrex,1) — All
2017-07-11 15:00:05


![][1]

Вторая статья будет посвящена работе с GSM трафиком в Wireshark. Рекомендую ознакомиться с [первой][2], если Вы хотите получить больше возможностей для практики.
Для работы нам osmocom-bb совместимый телефон, способный принимать сигнал на частотах GSM, для России это 900 МГц и 1800 МГц и компьютер с установленным сниффером [Wireshark][3].
[Читать дальше →][4]

[1]: https://habrastorage.org/web/c77/ebf/472/c77ebf4720d445c99d1cb2e5602dd48c.jpg
[2]: https://habrahabr.ru/post/331406/
[3]: https://www.wireshark.org/
[4]: https://habrahabr.ru/post/332778/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Использование BSP-деревьев для создания игровых карт
habra.16
habrabot(difrex,1) — All
2017-07-11 17:30:05


![image][1]

При заполнении области объектами (например, комнатами в подземелье) в случайном порядке вы рискуете тем, что всё будет _слишком_ случайным. Результат может оказаться абсолютно бесполезным хаосом. В этом туториале я покажу, как использовать для решения этой проблемы _двоичное разбиение пространства (Binary Space Partitioning, BSP)_.

Я подробно и по этапам расскажу об использовании BSP для создания простой двухмерной карты, к примеру, схемы подземелья. Я покажу, как создать простой объект `Leaf`, который мы используем для разделения области на маленькие сегменты. Затем мы займёмся генерированием в каждом `Leaf` случайной комнаты. И, наконец, узнаем, как соединить все комнаты коридорами.

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

[1]: https://habrastorage.org/getpro/habr/post_images/663/1d9/446/6631d9446ce8a0ea6fc83a8fbd34c3b3.jpg
[2]: https://habrahabr.ru/post/332832/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Линейное программирование в python силами библиотеки scipy
habra.16
habrabot(difrex,1) — All
2017-07-11 18:00:04


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

Зачем может понадобиться линейное программирование на практике? Как правило, с его помощью решают задачу минимизации функции f(x) (или обратную задачу максимизации для — f(x) ).

Здесь я не буду приводить теоретические выкладки (можно посмотреть [тут][1]), а рассмотрю конкретный пример.

Итак, задача.

_У нас есть 8 фабрик, которые каждую неделю производят некоторое количество продукции. Нам нужно распределить продукцию по 13 магазинам так, чтобы максимизировать суммарную прибыль, при этом разрешается закрывать нерентабельные магазины._
[Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[2]: https://habrahabr.ru/post/332866/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Критическая уязвимость механизма аутентификации BIND позволяет похищать и изменять DNS-записи серверов
habra.16
habrabot(difrex,1) — All
2017-07-11 19:00:06


[![][1]][2]

В популярном DNS-сервере BIND [обнаружена][3] критическая уязвимость. Ее эксплуатация позволяет злоумышленнику получить корректную подпись для произвольных данных и с помощью этой подписи вносить в него изменения или получать список всех DNS-записей сервера (dns zone transfer attack). [Читать дальше →][4]

[1]: https://habrastorage.org/web/fe0/4c5/dcf/fe04c5dcf8e84a6b8d94271e3b3097b6.png
[2]: https://habrahabr.ru/company/pt/blog/332880/
[3]: http://www.synacktiv.ninja/ressources/CVE-2017-3143_BIND9_TSIG_dynamic_updates_vulnerability_Synacktiv.pdf
[4]: https://habrahabr.ru/post/332880/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Темные моменты SELinux
habra.16
habrabot(difrex,1) — All
2017-07-11 22:00:05


![][1]В процессе эксплуатации систем с SELinux я выделил несколько интересных кейсов, решения которых вряд-ли описаны в Интернете. Сегодня я решил поделиться с вами своими наблюдениями в надежде, что число сторонников SELinux еще немного возрастет :)

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

[1]: https://habrastorage.org/getpro/habr/post_images/36a/f5f/be8/36af5fbe85a5884be84a5e13b7aa8a4a.png
[2]: https://habrahabr.ru/post/332886/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Привилегированные порты — причина глобального потепления
habra.16
habrabot(difrex,1) — All
2017-07-12 03:30:04


![][1]Мне 37 лет, что по программистским меркам равняется 99 годам. Я достаточно стар, чтобы помнить первые дни публичного Интернета и первых интернет-провайдеров. Впервые я вышел в онлайн через провайдера, который назывался Internet Access Cincinnati (IAC). Он предоставлял доступ по диалапу к серверу Sun SparcStation 10, где пользователи могли запускать почтенные в своей древности терминальные приложения вроде elm (почтовый клиент), emacs, lynx (текстовый веб-браузер), и конечно IRC.

Позже добавили возможность звонить на терминальный сервер CSLIP (предшественник PPP) и подключаться напрямую к Интернету с собственного компьютера под Linux или Windows (при наличии [Trumpet WinSock][2]) с настоящим IP-адресом.

Но вернёмся к той SparcStation. Машина была оборудована [двумя CPU, которые работали на чудовищной частоте 33 Мгц][3], и она могла вместить аж 512 МБ памяти, хотя я сомневаюсь, что слоты там были забиты по максимуму. Оперативная память очень дорого стоила в те времена. Сервер с такими скромными ресурсами обслуживал 50-100 активных пользователей одновременно, обрабатывал почту для десятков тысяч, держал IRC-чат, поддерживал ранний HTTP 1.0 через NCSA HTTPd и добровольно выполнял роль FTP-зеркала для Slackware Linux. В целом он неплохо справлялся с нагрузкой и часто показывал аптайм 1-2 месяца.
[Читать дальше →][4]

[1]: https://habrastorage.org/web/000/f01/037/000f010372b14c1abb56351efc4697a8.png
[2]: http://thanksfortrumpetwinsock.com/
[3]: https://en.wikipedia.org/wiki/SPARCstation_10
[4]: https://habrahabr.ru/post/332896/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] GitLab CI для непрерывной интеграции и доставки в production. Часть 2: преодолевая трудности
habra.16
habrabot(difrex,1) — All
2017-07-12 11:00:04


![][1]
Эта статья продолжает [**первую часть**][2], содержащую подробное описание нашего пайплайна:

![image][3]
… и рассказывает о проблемах, с которыми мы столкнулись для его реализации, и их решении.

Итак, я остановился на том, что созданный [.gitlab-ci.yml][4] не позволяет реализовать пайплайн в полной мере, поскольку GitLab CI не предоставляет директив для разделения задач по пользователям и для описания зависимостей выполнения задач от статуса выполнения других задач, а также не позволяет разрешить модификацию `.gitlab-ci.yml` только для отдельных пользователей. [Читать дальше →][5]

[1]: https://habrastorage.org/web/168/262/b4e/168262b4e3af4467978ffc20dd8bba99.png
[2]: https://habrahabr.ru/company/flant/blog/332712/
[3]: https://habrastorage.org/web/410/cb1/bbc/410cb1bbce304920b37c1d932d69f829.png
[4]: https://github.com/flant/gitlab-ci-examples/blob/001_use_only/.gitlab-ci.yml
[5]: https://habrahabr.ru/post/332842/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Реализуем тач логгер под Android с помощью CVE-2016–5195
habra.16
habrabot(difrex,1) — All
2017-07-12 13:30:05


#### > История о том, как уязвимость в ядре linux помогает мне собирать данные для диссертации


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

Я расскажу о своём пути решения этой задачи. Он был долгим, тернистым, но чертовски увлекательным! Надеюсь, вам будет интересно проследить за ним и узнать для себя что-то новое о linux, android, их безопасности и их внутренностях. Я не гуру в устройстве linux, поэтому кому-то некоторые объяснения покажутся очевидными и излишне подробными, но повторюсь, это мой путь и я подробно описываю всё, что изучил в процессе. Надеюсь, это не оттолкнёт опытных линуксоидов и немного снизит порог вхождения для всех остальных. Итак. Как же реализовать тач логгер под android?
[Читать дальше →][1]

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

[>] Интервью с программистом из Тинькофф Банка Андреем Степановым о языке Python и ML
habra.16
habrabot(difrex,1) — All
2017-07-12 18:00:07


Серию интервью с докладчиками [PyCon Russia][1] продолжает разговор с разработчиком-аналитиком из Тинькофф Банка Андреем Степановым. Мы поговорили с Андреем о месте Python в инфраструктуре банка, о машинном обучении и о технологии распознавания речи.

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

[1]: http://pycon.ru/2017/program/schedule/?utm_source=habr&utm_medium=post&utm_campaign=12.06
[2]: https://habrastorage.org/web/084/2b9/8cf/0842b98cf11042f3968fa372d1eb57bd.png
[3]: https://habrahabr.ru/post/332870/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Решение promo task от BI.ZONE CTF
habra.16
habrabot(difrex,1) — All
2017-07-12 18:00:07


![][1]

31 мая компания [BI.ZONE][2] анонсировала новость о [«CTFzone presidential election»][3]. И уже 1-го июня на Хабрахабр появилась публикация [BI.ZONE объявляет выборы президента CTFzone][4], в которой, как и в [прошлом году][5], спрятана «пасхалка». Если присмотреться к тексту публикации, можно заметить, что в предложении «Всем [**удачи**][6] на выборах!» есть ссылка ведущая на [веб-страницу][7] содержащую QR-код:





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

[1]: https://habrastorage.org/web/14f/700/efe/14f700efe07e4fc582608b83e1b8e833.jpg
[2]: https://bi.zone/
[3]: https://bi.zone/news_31052017.html?lang=en
[4]: https://m.habrahabr.ru/company/bizone/blog/329994/
[5]: https://habrahabr.ru/company/bizone/blog/315338/
[6]: https://ctf.bi.zone/promo_task.png
[7]: https://ctf.bi.zone/promo_task.png
[8]: https://habrahabr.ru/post/332930/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Стек, который позволил Medium обеспечить чтение на 2.6 тысячелетия
habra.16
habrabot(difrex,1) — All
2017-07-12 18:00:07


_Предлагаю общественности мой перевод статьи Dan Pupius'а об архитектура сервиса Medium и используемых технологиях. Хочу особо отметить, что статья является переводом, поэтому местоимение "я", используемое в тексте далее относится к автору оригинального текста, а не к переводчику._



# Фон {#fon}



Medium это сеть. Это место, где обмениваются историями и идеями, которые важны — место, где вы развиваетесь, и где люди провели 1.4 миллиарда минут — 2.6 тысячелетия.
У нас более 25 миллионов уникальных читателей в месяц, и каждую неделю публикуются десятки тысяч постов. Но мы хотим, чтобы на Medium мерилом успеха было не количество просмотров, а точки зрения. Чтобы значение имело качество идеи, а не квалификация автора. Чтобы Medium был местом, где обсуждения развивают идеи, а слова по-прежнему важны.
Я руковожу инженерной командой. Раньше я работал в качестве инженером в Google, где я работал над Google+ и Gmail, а также был одним из со-основателей проекта Closure. В прошлой жизни я гонял на сноуборде, прыгал из самолёта и жил в джунглях.

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

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

[>] Пентест-лаборатория «Pentestit Test.Lab 11» — полное прохождение
habra.16
habrabot(difrex,1) — All
2017-07-12 20:00:04




30-го июня вновь запустилась [пентест лаборатория][1] компании Pentestit. Уже много лет эти лаборатории дают возможность проверить себя в роли пентестера в виртуальной компании со своими бизнес-процессами, серверами, сотрудниками и проблемами, узнать и опробовать современные уязвимости и отточить свои навыки в аудитах приложений и пентесте, максимально приближенном к реальному.

Эта лаборатория уже 11-я по счету. Описания [десятой][2], [девятой][3], [восьмой][4], [седьмой][5] и [шестой][6] лабораторий тоже доступны, и могут пригодиться в подготовке к участию, если вы этого еще не сделали.

Как и в прошлый раз, спустя 11 суток лаборатория была пройдена первыми участниками, собравшими 12 токенов, которые подтверждают полное решение очередной задачи, будь то получение доступа в БД, проникновение и повышение привилегий на Linux-сервере или успешное выполнение MiTM-атаки на ноутбук директора виртуальной компании Test.Lab.

Эта статья описывает все этапы прохождения пентест-лаборатории Test.Lab 11 для всех, кому интересно погрузиться в область пентеста или узнать, как решалась конкретная задача.
[Читать дальше →][7]

[1]: https://lab.pentestit.ru/pentestlabs/7
[2]: https://habrahabr.ru/company/pentestit/blog/317322/
[3]: https://habrahabr.ru/company/pentestit/blog/303700/
[4]: https://lab.pentestit.ru/docs/TL8_WU_ru.pdf
[5]: https://habrahabr.ru/company/pentestit/blog/257675/
[6]: http://nightsite.biz/blog/13883-testlab-v6-laboratoriya-na-shag-vperedi-na-positive-hack-days-2014.html
[7]: https://habrahabr.ru/post/332902/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пентест-лаборатория «Pentestit Test lab v.11» — полное прохождение
habra.16
habrabot(difrex,1) — All
2017-07-12 21:00:04




30-го июня вновь запустилась [пентест лаборатория][1] компании Pentestit. Уже много лет эти лаборатории дают возможность проверить себя в роли пентестера в виртуальной компании со своими бизнес-процессами, серверами, сотрудниками и проблемами, узнать и опробовать современные уязвимости и отточить свои навыки в аудитах приложений и пентесте, максимально приближенном к реальному.

Эта лаборатория уже 11-я по счету. Описания [десятой][2], [девятой][3], [восьмой][4], [седьмой][5] и [шестой][6] лабораторий тоже доступны, и могут пригодиться в подготовке к участию, если вы этого еще не сделали.

Как и в прошлый раз, спустя 11 суток лаборатория была пройдена первыми участниками, собравшими 12 токенов, которые подтверждают полное решение очередной задачи, будь то получение доступа в БД, проникновение и повышение привилегий на Linux-сервере или успешное выполнение MiTM-атаки на ноутбук директора виртуальной компании Test.Lab.

Эта статья описывает все этапы прохождения пентест-лаборатории Test.Lab 11 для всех, кому интересно погрузиться в область пентеста или узнать, как решалась конкретная задача.
[Читать дальше →][7]

[1]: https://lab.pentestit.ru/pentestlabs/7
[2]: https://habrahabr.ru/company/pentestit/blog/317322/
[3]: https://habrahabr.ru/company/pentestit/blog/303700/
[4]: https://lab.pentestit.ru/docs/TL8_WU_ru.pdf
[5]: https://habrahabr.ru/company/pentestit/blog/257675/
[6]: http://nightsite.biz/blog/13883-testlab-v6-laboratoriya-na-shag-vperedi-na-positive-hack-days-2014.html
[7]: https://habrahabr.ru/post/332902/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вы используете интерфейсы в Go неправильно!.
habra.16
habrabot(difrex,1) — All
2017-07-12 23:00:09


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

![][1]

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

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

[1]: https://habrastorage.org/web/445/ca5/be2/445ca5be2bdb44078ea6672369596db0.png
[2]: https://habrahabr.ru/post/332948/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Tcl/Tk. Разработка графического пользовательского интерфейса для утилит командной строки
habra.16
habrabot(difrex,1) — All
2017-07-13 04:00:05


Тестируя [облачный токен][1] на различных платформах, меня не покидала мысль о некой несправедливости: почему утилиты конфигурирования токенов PKCS#11 на платформе MS Windows имеют графический интерфейс, а для других платформ его нет. И в первую очередь это касается базовой [утилиты p11conf][2], которая доступна для свободного использования, и является утилитой командной строки, взаимодействие с которой осуществляется через стандартный ввод/вывод.
[Читать дальше →][3]

[1]: https://geektimes.ru/post/288674/
[2]: http://soft.lissi.ru/ls_product/utils/p11utils/
[3]: https://habrahabr.ru/post/332924/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что нового в CUBA Platform 6.5
habra.16
habrabot(difrex,1) — All
2017-07-13 10:00:04


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

Под катом:

* Uber JAR
* UI-компонент для предиктивного поиска
* Версионирование REST API
* Балансировка нагрузки в кластере
* Компонент приложения ZooKeeper
* Улучшения в Polymer UI
* Поддержка Bean Validation в CUBA Studio
* Поддержка Groovy в слушателях сущностей[Читать дальше →][2]

[1]: https://www.cuba-platform.ru/
[2]: https://habrahabr.ru/post/332906/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Константин Будник, EPAM: “Apache Hadoop перешел в фазу commodity — там почти не появляется ничего нового.”
habra.16
habrabot(difrex,1) — All
2017-07-13 10:00:04


В начале ноября в Киеве уже в шестой раз пройдёт одна из ключевых в Восточной Европе Java-конференций [JavaDay 2017][1]. Хотя до события еще достаточно времени, мы предметно пообщались с одним из спикером конференции — Константином Будником, Chief BigData Technologist и Open Source Fellow EPAM Systems — о силе open-source, Big Data и будущем Hadoop.

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

[1]: http://javaday.org.ua/
[2]: https://habrastorage.org/web/3a8/6f5/939/3a86f593942f49929c7e144aee57e34a.png
[3]: https://habrahabr.ru/post/332856/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Реализация Elliptic curve Menezes-Vanstone cryptosystem на базе OpenSSL API
habra.16
habrabot(difrex,1) — All
2017-07-13 10:00:04


Здравствуйте, уважаемые хабровчане! По мере моего посильного занятия криптографией для своих скромных нужд, в попытках поддержать достойный уровень безопасности данных (я ориентируюсь на уровни, указанные в разделе ecrypt [тут][1]) меня начало беспокоить падение производительности при использовании криптоалгоритма RSA.

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

Прогулявшись по просторам интернета, удалось выяснить, что:

1. El-Gamal может успешно шифровать/расшифровывать, но эти операции не реализованы в openssl (есть реализация в libgcrypt). В плане быстродействия El-Gamal раза в 3 быстрее RSA
при той-же длине ключа и той-же криптостойкости на 1 бит ключа.

2. Elliptic Curve cryptosystem (ECC) приятно удивили скоростью и криптостойкостью на 1 бит ключа, но операции шифрования/дешифрования на основе ECC не реализованы в openssl.
Реализация ECC шифрования в libgcrypt есть, но очень специфична. Если коротко, то шифруемое сообщение m отображается на точку эллиптической кривой mG, из которой исходное сообщение m не может быть получено иначе, как взломом ECC или перебором всех возможных значений m.

3. В литературе [1] описана Menezes-Vanstone ECC, но есть уведомления о ее «уязвимости» [2]
Разберем этот вопрос подробнее.
[Читать дальше →][2]

[1]: https://www.keylength.com/
[2]: https://habrahabr.ru/post/332928/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как мы ловим Deadlock`и на PostgreSQL и чиним их
habra.16
habrabot(difrex,1) — All
2017-07-13 12:00:05


### Предисловие


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

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

[1]: http://worldoftanks.ru/ru/clanwars/globalmap/
[2]: https://habrastorage.org/files/d34/9ba/a65/d349baa650d841d48395451e55fc32f2.png
[3]: https://habrahabr.ru/post/323354/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 35 советов для тех, кто собирается на техническую конференцию
habra.16
habrabot(difrex,1) — All
2017-07-13 13:30:13


[![][1]][2]
**Эти советы будут полезны по большей части для тех, кто впервые посещает IT-конференции — но и остальные могут найти здесь ценные подсказки. Как получить максимальную пользу от ивента — читайте в переводе от [Alconost][3].**
[Читать дальше →][4]

[1]: https://habrastorage.org/web/207/32d/dba/20732ddbaaf14011910621f125ebbe4b.jpg
[2]: https://habrahabr.ru/company/alconost/blog/332958/
[3]: https://alconost.com?utm_source=habrahabr&utm_medium=article&utm_campaign=translation&utm_content=35-conf-advices
[4]: https://habrahabr.ru/post/332958/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Блокчейн-платформа для сделок торгового финансирования на базе смарт-контрактов
habra.16
habrabot(difrex,1) — All
2017-07-13 13:30:13


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

* [Кратко о целях и результатах][1]
* [Задачи исследовательского проекта][2]
* [Общая схема платформы и взаимодействие её элементов][3]
1. [Архитектура и взаимодействие компонентов платформы][4]
2. [Практическая реализация][5]
* [Реализация смарт-контрактов для аккредитива][6]
* [Выбор компонентов платформы][7]
* [Инфраструктура][8]
* [Интеграция компонентов][9]
1. [Ethereum ][10]
2. [Swarm ][11]
3. [Storj.io][12]
4. [КриптоАРМ ][13]
5. [Провайдер внешних запросов][14]
* [Подробное описание реализации Провайдера запросов][15]
1. [Описание методов контракта Requests Queue ][16]
2. [Описание необходимых интерфейсных методов Контрактов][17]
3. [Пример реализации][18]
* [На пользу сообщества ][19]
1. [Календарный оракул][20]
2. [Портал внешних запросов][21]
* [Некоторые замечания по опыту интеграции сторонних компонентов][22]
1. [Ethereum][23]
2. [Ethereum Solidity][24]
3. [Ethereum Swarm ][25]
4. [Storj.io][26]
* [Выводы исследования ][27]




22 июня 2017 года на [Blockchain & Bitcoin Conference в Санкт-Петербурге][28] наш аналитик направления блокчейн, Марина Сманцер, сделала доклад о результатах исследовательского проекта по созданию комплексной платформы для сделок торгового финансирования на основе смарт-контрактов.

20-минутный формат доклада не позволял подробно осветить технические аспекты. Поэтому выход Райффайзенбанка на habrahabr – прекрасная возможность рассказать о наших результатах во всех подробностях.

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

[1]: #Example
[2]: #Example1
[3]: #Example2
[4]: #Example3
[5]: #Example4
[6]: #Example5
[7]: #Example6
[8]: #Example7
[9]: #Example8
[10]: #Example9
[11]: #Example10
[12]: #Example11
[13]: #Example12
[14]: #Example13
[15]: #Example40
[16]: #Example41
[17]: #Example42
[18]: #Example15
[19]: #Example24
[20]: #Example25
[21]: #Example26
[22]: #Example18
[23]: #Example19
[24]: #Example20
[25]: #Example21
[26]: #Example22
[27]: #Example23
[28]: https://spb.blockchainconf.world/ru
[29]: https://habrahabr.ru/post/332756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Автоматизируем десктопный GUI на Python + pywinauto: как подружиться c MS UI Automation
habra.16
habrabot(difrex,1) — All
2017-07-13 13:30:13


Python библиотека [pywinauto][1] — это open source проект по автоматизации десктопных GUI приложений на Windows. За последние два года в ней появились новые крупные фичи:


* Поддержка технологии MS UI Automation. Интерфейс прежний, и теперь поддерживаются: WinForms, WPF, Qt5, Windows Store (UWP) и так далее — почти все, что есть на Windows.
* Система бэкендов/плагинов (сейчас их двое под капотом: дефолтный `"win32"` и новый `"uia"`). Дальше плавно двигаемся в сторону кросс-платформенности.
* Win32 хуки для мыши и клавиатуры (hot keys в духе pyHook).

Также сделаем небольшой обзор того, что есть в open source для десктопной автоматизации (без претензий на серьезное сравнение).



Эта статья — частично расшифровка доклада с конференции SQA Days 20 в Минске ([видеозапись][2] и [слайды][3]), частично русская версия [Getting Started Guide][4] для pywinauto.


* Основные подходы
* [Координатный метод][5]
* [Распознавание эталонных изображений][6]
* [Accessibility технологии][7]
* Основные десктопные accessibility технологии
* [Старый добрый Win32 API][8]
* [Microsoft UI Automation][9]
* [AT-SPI (Linux)][10]
* [Apple Accessibility API][11]
* [Как начать работать с pywinauto][12]
* [Входные точки для автоматизации][13]
* [Спецификации окон/элементов][14]
* [Магия доступа по атрибуту и по ключу][15]
* [Пять правил для магических имен][16]
[Читать дальше →][17]

[1]: http://pywinauto.github.io/
[2]: https://www.youtube.com/watch?v=S__GZvPuyNw
[3]: https://www.slideshare.net/VLDCORP/gui-69866193
[4]: https://pywinauto.readthedocs.io/en/latest/getting_started.html
[5]: /post/323962#koordinatnyy-metod
[6]: /post/323962#raspoznavanie-etalonnyh-izobrazheniy
[7]: /post/323962#accessibility-tehnologii
[8]: /post/323962#staryy-dobryy-win32-api
[9]: /post/323962#microsoft-ui-automation
[10]: /post/323962#at-spi
[11]: /post/323962#apple-accessibility-api
[12]: /post/323962#kak-nachat-rabotat-s-pywinauto
[13]: /post/323962#vhodnye-tochki-dlya-avtomatizacii
[14]: /post/323962#specifikacii-okonelementov
[15]: /post/323962#magiya-dostupa-po-atributu-i-po-klyuchu
[16]: /post/323962/#pyat-pravil-dlya-magicheskih-imen
[17]: https://habrahabr.ru/post/323962/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Проброс портов или как попасть в сеть за NAT используя Node.JS
habra.16
habrabot(difrex,1) — All
2017-07-13 14:00:14


Привет! Хочу поделиться очередным способом проброса портов, теперь и на Node.JS!

Для чего это нужно? Представим, есть удалённый компьютер, к которому нужно подключиться, например, по ssh, rdp, http(s), proxy, vnc, и т.д. Но, увы, у него нет общедоступного IP по той или иной причине.
![image][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/d2c/9d0/18f/d2c9d018fa6aabbb929d7a433bbccd13.png
[2]: https://habrahabr.ru/post/332876/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Google Developer Days приходит в Европу
habra.16
habrabot(difrex,1) — All
2017-07-13 17:00:04


![image][1]



Нам в Google очень нравится встречаться и общаться с разработчиками. Это помогает нам лучше понимать ваши потребности и улучшать наши продукты, чтобы они подходили для самых разных регионов, где вы работаете. Мероприятия для разработчиков — отличный способ сделать это. Именно поэтому мы проводим различные мероприятия, где мы можем общаться напрямую с разработчиками. Сегодня мы запустили специальный [сайт][2] и открываем регистрацию для европейской части нашей глобальной серии мероприятий для разработчиков – Google Developers Days (GDD).

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

[1]: https://habrastorage.org/web/9bf/cef/deb/9bfcefdebb9f4dae8fc89e134401afef.png
[2]: https://goo.gl/J8x6Uh
[3]: https://habrahabr.ru/post/332968/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] IceCash 2.0 Web АРМ Кассира и АИС по обмену данными с кассами под Linux на Python
habra.16
habrabot(difrex,1) — All
2017-07-13 21:00:05


![][1]


Как-то меня спросили:_ «Зачем писать то, что уже написано многократно и на более профессиональном уровне? То что ты сделаешь будет заведомо хуже и лишено грамотной поддержки». Я тогда ответил просто: «Мне хочется, чтоб под линух и чтоб код свободный. Чтоб драйвера не покупать для кассы»_.

Да, **Линуксовая касса под GPL**. В этих словах, собственно и заключается точное описание этой поделки. Это абсолютно свободный код, части которого можно легко отделить и использовать в своих разработках. Вторая версия была ответом на все нововведения в рознице. Сейчас, можно сказать, что всем этим новым требованиям касса отвечает и продолжает существовать в альтернативном пространстве самописного кодинга.

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

[1]: https://habrastorage.org/web/372/17b/415/37217b4151bb4a3ba49c2fba7d1a9331.png
[2]: https://habrahabr.ru/post/323100/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вы используете интерфейсы в Go неправильно!
habra.16
habrabot(difrex,1) — All
2017-07-13 21:30:05


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

![][1]

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

[1]: https://habrastorage.org/web/445/ca5/be2/445ca5be2bdb44078ea6672369596db0.png
[2]: https://habrahabr.ru/post/332948/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ссылочная TCP/IP стеганография
habra.16
habrabot(difrex,1) — All
2017-07-13 22:00:04


TCP-[стеганография][1] не является чем-то принципиально новым, например [Джон Торакис][2] в 2016 году реализовывал на Питоне [довольно][3] [интересные][4] [вещи][5], жаль не все они есть в открытом доступе. Не была она принципиально новой и на момент написания статей Торакисом. Вот [пост на Хабре][6] 2009 года, описывающий идею и, например, программа [Covert\_TCP][7] далекого (а может и не очень) 1996 года, написанная на чистом Си и реализующая довольно тонкие настройки.



Если Covert TCP предлагает передавать по одному байту полезной нагрузки в TCP пакете, Торакис использовал от 2 до 6 байт на пакет и предложил идею создания протокола в протоколе. Но даже таким образом затруднительно передать большие массивы данных.



Тут на помощь может прийти [система одноразовых сообщений][8]. Действительно, почему бы не объединить 2 подхода, раз они изобретены до нас?



![picture][9]

[Посмотреть, что из этого получилось][10]

[1]: https://habrahabr.ru/post/253045/
[2]: https://github.com/operatorequals
[3]: https://securosophy.com/2016/09/14/teaching-an-old-dog-not-that-new-tricks-stego-in-tcpip-made-easy-part-1/
[4]: https://securosophy.com/2016/09/19/pozzo-lucky-stego-in-tcpip-part-2/
[5]: https://securosophy.com/2016/09/28/pozzo-lucky-busted-the-tales-of-a-mathematician-soc-analyst/
[6]: https://habrahabr.ru/post/60726/
[7]: http://www-scf.usc.edu/~csci530l/downloads/covert_tcp.c
[8]: https://habrahabr.ru/post/132153/
[9]: https://habrastorage.org/web/90c/082/99d/90c08299d77844c68c52f8ea0aeec9a2.gif
[10]: https://habrahabr.ru/post/332962/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как мы упоролись и откалибровали кофе-машину на спектрофотометре
habra.16
habrabot(difrex,1) — All
2017-07-14 10:30:04


![][1]
Однажды, посреди рабочего дня мы внезапно осознали, что мы больше не можем так жить. Душа требовала совершить что-то бессмысленное и беспощадное во имя науки. И мы решили откалибровать кофе-машину. Нормальные люди тыкают в дефолтную кнопку и пьют все, что вытечет из кофеварки. Чуть более продвинутые для этого открывают инструкцию и тщательно ей следуют. Может быть еще читают рекомендации обжарщика, если конечно это не прогорклые noname зерна, которые пару лет лежали на безымянном складе. Нас к нормальным можно отнести с большой натяжкой, поэтому мы решили идти своим путем. Короче говоря, под легкой кофеиновой интоксикацией от седьмой чашки эспрессо мы решили задействовать весь возможный арсенал лаборатории, чтобы получить эталонный напиток.
Добро пожаловать в мир безумия, ультрацентрифуг, спектрофотометрии кофе в специальных планшетах и небольшого количества python, pandas и seaborn, чтобы визуализировать все это безобразие.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/356/250/b38/356250b384864105b86271f0720bdc24.jpg
[2]: https://habrahabr.ru/post/331754/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Семантика exactly-once в Apache Kafka
habra.16
habrabot(difrex,1) — All
2017-07-14 15:00:05


![][1]



_Всем привет! Меня зовут Юрий Лилеков, я работаю в Server Team Badoo. На днях мне попалась довольно интересная статья о новой семантике exactly-once в Apache Kafka, которую я с радостью для вас перевёл._

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

[1]: https://habrastorage.org/web/76b/b51/792/76bb517921f24801ab9e58fe0a12ffec.png
[2]: https://habrahabr.ru/post/333046/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 ... 210