RSS
Pages: 1 ... 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 ... 210
[>] Хакеры и биржи: как атакуют сферу финансов
habra.16
habrabot(difrex,1) — All
2017-07-01 19:00:04


[![][1]][2]

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

Сегодня мы рассмотрим несколько примеров реальных атак на банки и биржи и поговорим о последствиях этих киберинцидентов. [Читать дальше →][4]

[1]: https://habrastorage.org/web/ac2/650/dca/ac2650dca3ef478d9e6a962951e5a0b1.png
[2]: https://habrahabr.ru/company/itinvest/blog/332080/
[3]: https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/fireeye-emea-advanced-threat-report-1h2014.pdf
[4]: https://habrahabr.ru/post/332080/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] «Ты, гроза, грозись, а мы друг за друга держись!» — сказ о том, как я ADSL-модем спасал
habra.16
habrabot(difrex,1) — All
2017-07-01 22:00:03


_«Модем горит,
Провайдер плачет.
Но он не смог поступить иначе.
Гремит гроза...»_

Гроза! Стихия! Караул! Иной раз тяжело предугадать, какой ущерб она может учинить домашней электронике… Благо, её можно предупредить, тем самым исключив возможность выхода из строя, скажем, хотя бы домашних маршрутизаторов и модемов – обычно они в первую очередь и подвергаются воздействию буйных действ природы.

![][1] [Этакая оказия! Что же делать?][2]

[1]: https://habrastorage.org/web/25f/0df/cfc/25f0dfcfc1f944c4b84c7226ca94d249.jpg
[2]: https://habrahabr.ru/post/332072/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Работа с гетерогенными контейнерами с C++17
habra.16
habrabot(difrex,1) — All
2017-07-01 23:00:03


Привет, Хабр! В последнее время много говорят о C++17, особенно с появлением в России национальной рабочей группы по стандартизации. На просторах сети без особых проблем можно найти короткие примеры использования последнего стандарта C++. Всё бы хорошо, но по настоящему обширного перехода на новые стандарты не наблюдается. Поэтому можем наблюдать картину, в которогй любая библиотека, требующая минимум 14 стандарта уже считается modern постфактум.

В данной публикации разработаем небольшую библиотеку (3 функции (**apply**, **filter**, **reduce**) и одна как «домашнее задание» (**map**) :)) по удобной работе с гетерогенными контейнерами в рантайме (гетерогенность за счёт std::variant из 17 стандарта).

Из нового, помимо новых библиотечных типов, попробуем на вкус _fold expressions_ и совсем немного _structured binding_
[Читать дальше →][1]

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

[>] Автоэнкодеры в Keras, Часть 6: VAE + GAN
habra.16
habrabot(difrex,1) — All
2017-07-02 00:30:03


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


* Часть 1: [ Введение ][1]
* Часть 2: [ _Manifold learning_ и скрытые (_latent_) переменные ][2]
* Часть 3: [Вариационные автоэнкодеры (_VAE_) ][3]
* Часть 4: [_Conditional VAE_][4]
* Часть 5: [_GAN_ (Generative Adversarial Networks) и tensorflow][5]
* **Часть 6: VAE + GAN**

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

В этой части попробуем взять лучшее от обоих подходов путем совмещения _вариационных автоэнкодеров_ (**_VAE_**) и _генеративных состязающихся сетей_ (**_GAN_**).

Подход, который будет описан далее, основан на статье **[Autoencoding beyond pixels using a learned similarity metric, Larsen et al, 2016]**.

![][6]

Иллюстрация из **_[1]_**
[Читать дальше →][7]

[1]: https://habrahabr.ru/post/331382/
[2]: https://habrahabr.ru/post/331500/
[3]: https://habrahabr.ru/post/331552/
[4]: https://habrahabr.ru/post/331664/
[5]: https://habrahabr.ru/post/332000/
[6]: https://habrastorage.org/web/7a1/8db/d39/7a18dbd3969048c2b085cc707e539f0c.png
[7]: https://habrahabr.ru/post/332074/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Никогда не пишите длинных if-ов
habra.16
habrabot(difrex,1) — All
2017-07-02 01:30:04


Ошибок в условиях допускается великое множество. Можно взять для примера любой пост из блога [PVS-studio][1], в каждом есть ошибки, связанные с невнимательным обращением с условиями. И правда, нелегко разглядеть ошибку в условии, если код выглядит так (пример из [этого поста][2]):

static int ParseNumber(const char* tx)
{
....
else if (strlen(tx) >= 4 && (strncmp(tx, "%eps", 4) == 0
|| strncmp(tx, "+%pi", 4) == 0 || strncmp(tx, "-%pi", 4) == 0
|| strncmp(tx, "+Inf", 4) == 0 || strncmp(tx, "-Inf", 4) == 0
|| strncmp(tx, "+Nan", 4) == 0 || strncmp(tx, "-Nan", 4) == 0
|| strncmp(tx, "%nan", 4) == 0 || strncmp(tx, "%inf", 4) == 0
))
{
return 4;
}
else if (strlen(tx) >= 3
&& (strncmp(tx, "+%e", 3) == 0
|| strncmp(tx, "-%e", 3) == 0
|| strncmp(tx, "%pi", 3) == 0 // <=
|| strncmp(tx, "Nan", 3) == 0
|| strncmp(tx, "Inf", 3) == 0
|| strncmp(tx, "%pi", 3) == 0)) // <=
{
return 3;
}
....
}
[Читать дальше →][3]

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

[>] [Из песочницы] Интеграция 1С с DLL с помощью Python
habra.16
habrabot(difrex,1) — All
2017-07-02 04:30:08


Привет Хабр! Недавно я разработал алгоритм для логистики, и нужно было его куда-то пристроить. Помимо веб-сервиса решено было внедрить данный модуль в 1С, и тут появилось довольно много подводных камней.

Начнем с того, что сам алгоритм представлен в виде dll библиотеки, у которой одна точка входа, принимающая JSON строку как параметр, и отдающая 2 колбэка. Первый для отображения статуса выполнения, другой для получения результата. С web-сервисом все довольно просто, у питона есть замечательный пакет ctypes, достаточно подгрузить нужную библиотеку и указать точку входа.

Выглядит это примерно так:

import ctypes
def callback_recv(*args):
print(args)

lib = ctypes.cdll.LoadLibrary('test.dll')
Callback = ctypes.CFUNCTYPE(None, ctypes.c_int, ctypes.c_char_p)
my_func = getattr(lib, '_ZN7GtTools4testEPKcPFviS1_E')
cb_func = Callback(callback_recv)
my_func(ctypes.c_char_p('some data'), cb_func)

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

Данное коверканье метода происходит из-за того, что компилятор манглит («mangle» — калечить) название всех точек входа, причем разные компиляторы «калечат» по разному. В примере указан метод полученный MinGW
[Читать дальше →][1]

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

[>] Автоэнкодеры в Keras, часть 6: VAE + GAN
habra.16
habrabot(difrex,1) — All
2017-07-02 04:30:08


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


* Часть 1: [ Введение ][1]
* Часть 2: [ _Manifold learning_ и скрытые (_latent_) переменные ][2]
* Часть 3: [Вариационные автоэнкодеры (_VAE_) ][3]
* Часть 4: [_Conditional VAE_][4]
* Часть 5: [_GAN_ (Generative Adversarial Networks) и tensorflow][5]
* **Часть 6: VAE + GAN**

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

В прошлой части мы изучили, как работают **_GAN’ы_**, получив довольно четкие изображения цифр, однако пропала возможность кодирования и переноса стиля.

В этой части попробуем взять лучшее от обоих подходов путем совмещения _вариационных автоэнкодеров_ (**_VAE_**) и _генеративных состязающихся сетей_ (**_GAN_**).

Подход, который будет описан далее, основан на статье **[Autoencoding beyond pixels using a learned similarity metric, Larsen et al, 2016]**.

![][6]

Иллюстрация из **_[1]_**
[Читать дальше →][7]

[1]: https://habrahabr.ru/post/331382/
[2]: https://habrahabr.ru/post/331500/
[3]: https://habrahabr.ru/post/331552/
[4]: https://habrahabr.ru/post/331664/
[5]: https://habrahabr.ru/post/332000/
[6]: https://habrastorage.org/web/7a1/8db/d39/7a18dbd3969048c2b085cc707e539f0c.png
[7]: https://habrahabr.ru/post/332074/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Метод оптимизации Нелдера — Мида. Пример реализации на Python
habra.16
habrabot(difrex,1) — All
2017-07-02 23:30:06


![][1]

Метод Нелдера — Мида — метод оптимизации (поиска минимума) функции от нескольких переменных. Простой и в тоже время эффективный метод, позволяющий оптимизировать функции без использования градиентов. Метод надежен и, как правило, показывает замечательные результаты, хотя и отсутствует теория сходимости. Используется по умолчанию в функции optimize из модуля scipy.optimize популярной библиотеки для языка python, которая используется для математических расчетов.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/7c7/7a5/704/7c77a5704e5b4ab7b9cae626b995c152.png
[2]: https://habrahabr.ru/post/332092/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Многопользовательская игра на Go через telnet
habra.16
habrabot(difrex,1) — All
2017-07-03 14:00:05


Всем привет! Меня зовут Олег и я SRE. В какой-то момент мне захотелось улучшить свои навыки программирования на Go и написать маленькую многопользовательскую игру.

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

Вот что получилось:

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

[1]: https://habrastorage.org/getpro/habr/post_images/4e7/1e0/61d/4e71e061de19e5f5fb49a06b6962a610.png
[2]: https://habrahabr.ru/post/330512/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как компьютерные профи раскалывают хакеров
habra.16
habrabot(difrex,1) — All
2017-07-03 15:00:03


![][1]

В последнее время, на фоне всевозможных вирусов Wanna Cry и Petya, тема кибербезопасности не сходит с первых полос СМИ. В этой связи показалась примечательной [заметка найденная на одном из заморских сайтов][2]. Под катом рассказ Роджера Краймса о том, как одни профессионалы доставляют неприятности другим и наоборот. Суть статьи сводится к тому, что если хотите познакомиться с действительно толковым хакером, поговорите со специалистом по защите от кибератак. Эти талантливые люди каждый день работают над тем, чтобы совершать киберпреступления становилось труднее и наименее прибыльно. Кстати, с удивлением узнал, что любимое развлечение специалистов по информационной безопасности, «ломать» компы соседей на профессиональных конференциях. [Читать дальше →][3]

[1]: https://habrastorage.org/web/cdf/aa6/df2/cdfaa6df2cc1471d861342c330c39381.jpg
[2]: http://www.itworld.com/article/3199548/security/how-computer-security-pros-hack-the-hackers.html#tk.rss_opinion
[3]: https://habrahabr.ru/post/332178/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Конкурс по программированию: JSDash
habra.16
habrabot(difrex,1) — All
2017-07-03 15:00:03


Компания [Hola][1] объявляет долгожданный летний конкурс по программированию! Победителей ожидают призы:

1. Первое место: 3000 USD.
2. Второе место: 2000 USD.
3. Третье место: 1000 USD.
4. Если Вы отправите кому-то ссылку на этот конкурс, поставив [наш адрес][2] в CC, и этот человек займёт призовое место, Вы получите половину суммы приза (разумеется, не в ущерб награде победителя). За одного победителя такую награду может получить только один человек — тот, кто отправил ссылку первым.
Авторы интересных решений будут приглашены на собеседования.

![][3]


## Правила



Условия конкурса на английском языке размещены [на GitHub][4]. Ниже — перевод на русский язык.

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

[1]: https://hola.org
[2]: mailto:challengejs+habrahabr@hola.org
[3]: https://habrastorage.org/web/f4c/0f0/b43/f4c0f0b43837421cac8abf6938507061.png
[4]: https://github.com/hola/challenge_jsdash
[5]: https://habrahabr.ru/post/332176/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Pygest #12. Релизы, статьи, интересные проекты из мира Python [20 июня 2017 — 03 июля 2017]
habra.16
habrabot(difrex,1) — All
2017-07-03 17:00:05


![image][1] Всем привет! Это уже двенадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.

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

А теперь к делу!
[Перейти к дайджесту][2]

[1]: https://habrastorage.org/files/aa2/815/f22/aa2815f2207940fab9ac72e85219fe3c.png
[2]: https://habrahabr.ru/post/332114/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как обеспечить безопасность в эпоху AI и облачных платформ. Интервью с профессором Малковым
habra.16
habrabot(difrex,1) — All
2017-07-03 18:00:04


В начале XX века аптеки мира были завалены «чудодейственными» препаратами. Женщины с удовольствие посещали спа-радио-центры, дети пили радиоактивную воду. И лишь когда через несколько лет у многих выпали волосы, зубы или появились еще более серьезные «побочки», пришло понимание, что новинка не такая уж и безопасная. Сегодня риски, связанные с облачными технологиями и искусственным интеллектом, еще даже не осознаются. Но их уже должны учитывать разработчики, создавая программные продукты для облачных платформ и интернета вещей. О том, как сделать виртуальные среды безопасными, чего ожидать от искусственного интеллекта, и как при этом остаться программистом, рассказал Константин Малков, технический директор 5nine Software. Этим интервью мы продолжаем серию публикаций об облачных технологиях Microsoft. В первой мы сравнили «облака» с «новым электричеством» и пришли к оптимистичным выводам. [Читать далее][1]

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

[>] [Из песочницы] Решение задачи коммивояжера алгоритмом Литтла с визуализацией на плоскости
habra.16
habrabot(difrex,1) — All
2017-07-03 21:00:05


Известная как минимум с 19 века задача коммивояжера имеет множество способов решения и неоднократно описана. Ее оптимизационная версия является NP-трудной, поэтому оптимальное решение можно получить либо полным перебором, либо оптимизированным полным перебором — методом ветвей и границ.



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



![animation][1]

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

[1]: https://habrastorage.org/getpro/habr/post_images/d38/d7d/262/d38d7d262f71d6d2775d0bd7d61b3b0a.gif
[2]: https://habrahabr.ru/post/332208/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Вышел GitLab 9.3: Code Quality и межпроектные графики конвейеров
habra.16
habrabot(difrex,1) — All
2017-07-04 09:30:04


# Вышел GitLab 9.3: Code Quality и межпроектные графики конвейеров {#vyshel-gitlab-93-code-quality-i-mezhproektnye-grafiki-konveyerov}



![image][1]



В GitLab 9.3 мы представляем Code Quality, межпроектные графики конвейеров, индекс совместной разработки, улучшения локализации, описания сниппетов и многое другое!



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


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

[1]: https://habrastorage.org/getpro/habr/post_images/7ce/646/63e/7ce64663e3ff84c50b743fd917a4253a.jpg
[2]: https://habrahabr.ru/post/332204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] The incredible machine или мой самый лучший тест
habra.16
habrabot(difrex,1) — All
2017-07-04 10:30:06


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

![image][1]
Тем не менее, есть хорошая новость: incredible machine все-таки может быть полезна. Например, для тестирования программных систем.
[Читать дальше →][2]

[1]: http://uhtt.ru/dispatcher/dc/download?key=incredible-machine-03
[2]: https://habrahabr.ru/post/331230/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] IBM Watson и кибербезопасность: как когнитивная система защищает ценные данные
habra.16
habrabot(difrex,1) — All
2017-07-04 10:30:06


![][1]

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

Интересно, что в большинстве случаев проблема даже не сам взлом, а ликвидация его последствий – это долго, дорого, плюс негативно отражается на репутации компании. Примером можно считать проникновение ransomware в сеть компании — не так давно хостинг-провайдеру из Южной Кореи пришлось заплатить около 1 млн долларов США злоумышленникам за расшифровку своих данных и данных клиентов. Но в наше время $1 млн — это вовсе не предел. Избежать подобных проблем помогает когнитивная система IBM Watson, которую не первый год обучают премудростям информационной безопасности.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/751/ec1/0c4/751ec10c442245bb94ea7d716e414a77.jpg
[2]: https://habrahabr.ru/post/332214/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


Сегодня у нас не совсем обычная статья. Как следует из заголовка, она посвящена проблемам непрерывной защиты веб-приложений и разбита на две части, отражающие два взгляда на проблему: с позиции разработчиков WAF (Андрей Петухов, SolidLab) и с точки зрения центра мониторинга и противодействия кибератакам, который использует WAF для оказания сервиса клиентам (@avpavlov, Solar JSOC).

Начнем мы с разработчиков, а через неделю дадим слово эксплуатантам WAF.

![][1]

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

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

[>] Как накрутить рейтинг на хабре и уйти незамеченным
habra.16
habrabot(difrex,1) — All
2017-07-04 12:00:05


![][1]



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


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

[1]: https://habrastorage.org/web/44c/19b/14f/44c19b14ffdb4e4d89ab781c7f6fd386.png
[2]: https://habrahabr.ru/post/332296/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Имитируем управление устройствами с помощью акторов
habra.16
habrabot(difrex,1) — All
2017-07-04 14:00:04


Корни [SObjectizer][1] берут свое начало в теме автоматизированных систем управления технологическими процессами (АСУТП). Но использовали мы SObjectizer в далеких от АСУТП областях. Поэтому иногда возникает ностальгия из категории «эх, давно не брал в руки шашек...» Однажды из-за этого в составе SObjectizer появился один из самых объемных примеров — [machine\_control][2]. Уж очень тогда захотелось «тряхнуть стариной», смоделировать задачку управления оборудованием на современном SObjectizer-е. Ну и под шумок запихнуть в пример разные вкусные фичи SObjectizer-а вроде фильтров доставки, шаблонных агентов и диспетчера с поддержкой приоритетов. Сегодня попробуем рассказать и показать, как это все работает.



![The Engine Room - Steel Stacks, Bethlehem, PA][3]
Photo [by Mike Boening][4]


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

[1]: https://habrahabr.ru/post/304386/
[2]: https://sourceforge.net/p/sobjectizer/repo/HEAD/tree/tags/so_5/5.5.19.2/dev/sample/so_5/machine_control/main.cpp
[3]: https://habrastorage.org/getpro/habr/post_images/3fb/ccd/378/3fbccd3782d46b6c8cfac121fd515ac1.jpg
[4]: https://www.flickr.com/photos/memoriesbymike/30346870663/
[5]: https://habrahabr.ru/post/332166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] UltaVNC как замена TeamViewer
habra.16
habrabot(difrex,1) — All
2017-07-04 15:30:04


![][1]

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

[1]: https://habrastorage.org/web/f40/359/e3a/f40359e3afdf4dc5a89f39952d3dda73.jpg
[2]: https://habrahabr.ru/post/330450/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как повторить сервис anyroom.io в несколько строк JS и без бэкенда
habra.16
habrabot(difrex,1) — All
2017-07-04 16:30:05


![][1]
Месяц назад на Hacker News в топ вышел пост про сервис AnyRoom: простенький бэкенд на Go, который позволяет создавать телефонные конференции. Рейтинг больше ста, обсуждения в комментах, Исходный код на github, подписки по 50 долларов в месяц — в общем, всё как у взрослых. После первого удивления «неужели это кому-то нужно?!?» я немного погуглил «голосовая конференция без регистраций и sms недорого», подивился дороговизне приложений и понял что таки да, нужно. А на Voximplant такую штуку можно собрать за полчаса и десяток строк JavaScript-кода. Кто хочет создать стартап и попиариться на Hacker News? Под катом рассказываю, как.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/faa/9ec/d05/faa9ecd0596f4c5185d41a57ec6044ed.jpg
[2]: https://habrahabr.ru/post/332206/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] UltraVNC как замена TeamViewer
habra.16
habrabot(difrex,1) — All
2017-07-04 22:00:05


![][1]

Предупреждение: все прилетевшие тапочки будут проданы, помидоры – съедены, яйца – пожарены, испорченные – выброшены. Те, кто думают, что мы маемся фигней – вы угадали, возьмите с полки пирожок. Автор не призывает бросать мешки грудью на амбразуры. Он вообще ни к чему не призывает – он же не политик и не гражданин с активной гражданской позицией. А вот желающих подискутировать – милости просим. Сегодня я буду рассказывать вам занимательную историю о замене Teamviewer на UltraVNC. [Читать дальше →][2]

[1]: https://habrastorage.org/web/f40/359/e3a/f40359e3afdf4dc5a89f39952d3dda73.jpg
[2]: https://habrahabr.ru/post/330450/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как пройти собеседование в компанию мечты? Советы от тимлидов IT-компаний
habra.16
habrabot(difrex,1) — All
2017-07-05 15:00:05


16-17 июля в 95 км от Москвы пройдёт конференция для python-разработчиков [PYCON RUSSIA][1]. Традиционно мы делаем серию интервью с докладчиками и организаторами.

В первом посте мы спросили тимлидов четырёх разных компаний, на что они обращают внимание во время собеседований, какие ошибки допускают кандидаты, как понять, что человек подходит в команду, и чего никогда нельзя делать во время интервью. На вопросы ответили: CTO в компании «Точка» **Данила Штань**, руководитель разработки в ЦИАН **Михаил Юматов**, руководитель группы Python-проектов в Rambler&amp;Co **Олег Чуркин** и руководитель PyCharm Community в JetBrains **Андрей Власовских**.

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

[1]: http://pycon.ru/2017/program/schedule/?utm_source=habr&utm_medium=post&utm_campaign=5.06
[2]: https://habrastorage.org/web/464/341/5e1/4643415e1fdf46ada3ae296f62db57e0.png
[3]: https://habrahabr.ru/post/332468/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что, если выкинуть все лишнее из базы в распределенный кэш – наш опыт использования Hazelcast
habra.16
habrabot(difrex,1) — All
2017-07-05 15:00:05


![][1]



Так как базы данных Яндекс.Денег вынуждены хранить массу второстепенной и временной информации, однажды такое решение перестало быть оптимальным. Поэтому в инфраструктуре появился распределенный Data Grid с функциями in-memory базы данных на базе Hazelcast.



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

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

[1]: https://habrastorage.org/web/a25/4c8/cc3/a254c8cc304241dea0e74ebd2fd3be8c.png
[2]: https://habrahabr.ru/post/332462/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Bitfury Group провела первую успешную multi-hop-транзакцию в сети Lightning Network
habra.16
habrabot(difrex,1) — All
2017-07-05 15:00:05


Компания [Bitfury][1] занимается поддержкой и разработкой реализации сети Lightning уже больше года. Сегодня мы расскажем о проведении первой multi-hop-транзакции.

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

[1]: http://bitfury.com
[2]: https://habrastorage.org/web/bf9/3e7/1e1/bf93e71e1e7c4ce18dc9e75990646be3.jpg
[3]: https://habrahabr.ru/company/bitfury/blog/332436/
[4]: https://habrahabr.ru/post/332436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Про аналитику и серебряные пули или «При чем здесь Рамблер/топ-100?»
habra.16
habrabot(difrex,1) — All
2017-07-05 15:30:04


![][1]

Всем привет! Я тимлид проекта Рамблер/топ-100. Это лонгрид о том, как мы проектировали архитектуру обновлённого сервиса веб-аналитики, с какими сложностями столкнулись по пути и как с ними боролись. Если вам интересны такие базворды как [Clickhouse][2], [Aerospike][3], [Spark][4], добро пожаловать под кат. [Читать дальше →][5]

[1]: https://habrastorage.org/web/a94/cb9/a61/a94cb9a614224462a70c0611de40f775.jpg
[2]: https://clickhouse.yandex/
[3]: http://www.aerospike.com/russian/
[4]: http://spark.apache.org/
[5]: https://habrahabr.ru/post/332202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Рефакторинг кода в обеденный перерыв: знакомство с сodemod-скриптами
habra.16
habrabot(difrex,1) — All
2017-07-05 16:30:05


![][1]



_Думаю, что рефакторинг проекта – тема, близкая каждому разработчику. Зачастую мы сталкиваемся с проблемами, когда нам перестает хватать средств IDE и регулярных выражений, и тогда на помощь приходят средства вроде тех, что описаны в этом посте. Codemod скрипты – это очень мощный инструмент. После его освоения станет ясно, что ваш рефакторинг уже никогда уже не будет прежним. Поэтому я перевел этот пост для нашего хабраблога. Желаю приятного прочтения._



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



За последние годы JavaScript изменился до неузнаваемости. Развитие этого языка привело к тому, что была изменена даже простейшая задача по объявлению переменных. В ES6 появились `let` и `const`, стрелочные функции и множество других новшеств, каждое из которых приносит пользу разработчикам.



При создании и поддержке в рабочем состоянии кода, призванного выдерживать проверку временем, растёт нагрузка на разработчиков. Из этого поста вы узнаете, как можно автоматизировать задачи по широкомасштабному рефакторингу кода с использованием Codemod-скриптов и инструмента `jscodeshift`, что позволит вам, например, легко обновлять свой код для использования новых возможностей языка.

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

[1]: https://habrastorage.org/web/fcd/d6d/150/fcdd6d150b12464badc1343afbd52271.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4%D0%BE%D0%B2%D0%B0%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0
[3]: https://habrahabr.ru/post/332402/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вырастаем над проблемами Python
habra.16
habrabot(difrex,1) — All
2017-07-05 17:30:04


Привет, Хабр! Меня зовут Дмитрий Климинский, я работаю back-end разработчиком в Avito. Сегодня я хочу поделиться с вами впечатлениями от нашей поездки на конференцию [PyCon CZ 2017][1], которая прошла в Праге. Мне давно хотелось узнать, какие темы обсуждают зарубежные коллеги, чем они отличаются от “нашей” повестки. И это стало возможным, когда меня в составе небольшой команды разработчиков отправили в Чехию. Конечно, оказалось, что перед зарубежными коллегами стоят такие же задачи и вопросы. Но вот угол зрения докладчиков и те акценты, которые они расставляют, показались мне интересными. Под катом — короткие заметки по интересным докладам, особенности чешской конференции и несколько фото.

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

[1]: https://cz.pycon.org/2017/
[2]: https://habrastorage.org/web/e25/957/b56/e25957b562ca4bd5ad937ccb1548779a.jpg
[3]: https://habrahabr.ru/post/332484/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Программирование и боевое искусство: что общего?
habra.16
habrabot(difrex,1) — All
2017-07-06 09:30:04


_Написание кода — ремесло, которое требует постоянного развития — считают участники инициативы Coding Dojo в EPAM. Лидер движения Александр из Киева рассказал, как «додзё»-практики повышают настроение у инженеров и почему игра помогает преуспеть в работе._

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

[1]: https://habrastorage.org/getpro/habr/post_images/28b/6b8/6a8/28b6b86a867416ddf7627c3d6b5b7249.jpg
[2]: https://habrahabr.ru/post/332486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PHDays HackBattle: ломаем один на один
habra.16
habrabot(difrex,1) — All
2017-07-06 09:30:04


![][1]

В мае на конференции по практической информационной безопасности Positive Hack Days VII впервые состоялся конкурс HackBattle. В первый день PHDays посетители могли принять участие в отборочных соревнованиях, а двое участников, выполнивших наибольшее количество заданий за наименьшее время, вышли в финал HackBattle, который состоялся на второй день конференции на главной сцене. В этой статье мы расскажем, как проходило соревнование, а также предложим всем желающим попробовать свои силы в тех задачах, которые использовались на конкурсе.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/23d/71c/bee/23d71cbeee5741ec943274f955838946.jpg
[2]: https://habrahabr.ru/post/332492/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Сравнение производительности сетевых решений для Kubernetes
habra.16
habrabot(difrex,1) — All
2017-07-06 12:30:06


![][1]

Kubernetes требует, чтобы каждый контейнер в кластере имел уникальный, маршрутизируемый IP. Kubernetes не назначает IP-адреса сам, оставляя эту задачу сторонним решениям.

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

[1]: https://habrastorage.org/web/396/e84/39b/396e8439b2a64ab58f17714b679e1f69.png
[2]: https://ru.wikipedia.org/wiki/%D0%9A%D0%B2%D0%B0%D0%BD%D1%82%D0%B8%D0%BB%D1%8C#.D0.9F.D0.B5.D1.80.D1.86.D0.B5.D0.BD.D1.82.D0.B8.D0.BB.D1.8C
[3]: https://habrahabr.ru/post/332432/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Отжиг и вымораживание: две свежие идеи, как ускорить обучение глубоких сетей
habra.16
habrabot(difrex,1) — All
2017-07-06 15:00:05


![][1]

В этом посте изложены две недавно опубликованные идеи, как ускорить процесс обучения глубоких нейронных сетей при увеличении точности предсказания. Предложенные (разными авторами) способы ортогональны друг другу, и могут использоваться совместно и по отдельности. Предложенные здесь способы просты для понимания и реализации. Собственно, ссылки на оригиналы публикаций:
* [Snapshot ensembles (апрель 2017)][2]
* [FreezeOut (июнь 2017)][3]
[Читать дальше →][4]

[1]: https://habrastorage.org/web/6d8/3d0/c76/6d83d0c76fb34e8ea590ca3a190f61c8.png
[2]: https://arxiv.org/abs/1704.00109
[3]: https://arxiv.org/abs/1706.04983
[4]: https://habrahabr.ru/post/332534/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Использование утилит timeout & strace для мониторинга неактивности пользователя для разрыва соединения Shellinabox
habra.16
habrabot(difrex,1) — All
2017-07-06 16:30:04


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


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

Однако, для открытого пакета shellinabox я обнаружил решение на [блоге][1] на немецком языке, которое я и решил довести до нужного мне уровня. В итоге, получился симпатичный контейнер Docker, который можно найти как на [GitHub][2] так и на [Dockerhub][3], который решает все необходимые задачи.



Но, статья не об этом, а о сопутствующем коде на Python, который мне пришлось написать. Дело в том, что мне не нравилось, что если пользователь открыл web ssh и куда-то ушел, то сессия будет висеть бесконечно, что на мой взгляд неприемлемо.

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

[1]: https://tools.bartlweb.net/webssh/
[2]: https://github.com/bwsw/webshell
[3]: https://hub.docker.com/r/bwsw/webshell/
[4]: https://habrahabr.ru/post/332544/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как Яндекс создавал курс по C++, или Почему нам всё пришлось переписать
habra.16
habrabot(difrex,1) — All
2017-07-06 17:30:06


В Яндексе C++ — один из основных языков, на нём написан наш поиск. Его развитие нам настолько важно, что больше года назад по инициативе Яндекса была создана российская [рабочая группа][1] по стандартизации «плюсов». Через неё [у всех разработчиков][2] русскоязычного пространства есть возможность влиять на развитие языка.

![][3]

Недавно Физтех, Яндекс и ШАД запустили ещё один курс на платформе Coursera — «[Основы разработки на C++: белый пояс][4]». Он посвящён знакомству с С++. Я расскажу, для кого этот курс, как мы его готовили, что получилось в итоге и каковы наши дальнейшие планы.


### Как всё началось, было выброшено и началось снова


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

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

[1]: https://stdcpp.ru
[2]: https://habrahabr.ru/company/yandex/blog/327080/
[3]: https://habrastorage.org/web/86b/774/1cd/86b7741cd7184769906f89ee93a20b87.jpg
[4]: https://www.coursera.org/learn/c-plus-plus-white/
[5]: https://habrahabr.ru/post/332556/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Защищаем сайт с помощью ZIP-бомб
habra.16
habrabot(difrex,1) — All
2017-07-07 01:30:04


## Старые методы по-прежнему работают


![][1][Обновление] Теперь я в каком-то списке спецслужб, потому что написал статью про некий вид «бомбы», так?

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

Когда я в возрасте 13 лет впервые захостил свою маленькую Linux-коробочку с доступом по SSH, я смотрел логи и каждый день видел IP-адреса (в основном, из Китая и России), которые пытались подключиться к моей сладенькой маленькой коробочке (которая на самом деле была старым ноутом ThinkPad T21 со сломанным дисплеем, жужжавшим под кроватью). Я сообщал эти IP их провайдерам.

На самом деле если у вас Linux-сервер с открытым SSH, то можете сами посмотреть, сколько попыток подключений происходит ежедневно:

grep 'authentication failures' /var/log/auth.log [Читать дальше →][2]

[1]: https://habrastorage.org/web/95a/6a8/a77/95a6a8a7704b41538af50d1fc012c545.png
[2]: https://habrahabr.ru/post/332580/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Kubernetes & production — быть или не быть?
habra.16
habrabot(difrex,1) — All
2017-07-07 11:30:04


Сотни контейнеров. Миллионы внешних запросов. Миллиарды внутренних транзакций. Мониторинг и нотификации проблем. Простое масштабирование. 99% up time. Деплои и откатывание релизов.



Kubernetes как решение всех проблем! «Быть или не быть?» — вот в чем вопрос!
[Читать дальше →][1]

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

[>] [Перевод] Исправляем баги в стиле 1988 года
habra.16
habrabot(difrex,1) — All
2017-07-07 11:30:04


![][1]

Я рос в 80-х, в десятилетие, когда домашние компьютеры превратились из диковинки в мейнстрим. В моей младшей школе стояло несколько домашних компьютеров Phillips P2000T и пара Apple Macintosh. У моего друга был Commodore 64, на котором мы играли в игры, а однажды мой отец купил для управления финансами Commodore 128. (Меня особенно умиляет тот факт, что он _и по сей день_ использует для ведения бухгалтерии C128, хоть и в эмуляторе. Ему близок подход «не сломалось — не чини».)

Почти сразу после C128 мы купили C64. С128 использовали для бизнеса, а C64 — для развлечений. Я чётко помню, как играл в Space Taxi, Super Cycle, Velocipede, Last Ninja II, Electrix и другие игры. К тому же на этом компьютере я начал учиться программированию.

До изобретения World Wide Web оставалась ещё пара лет, поэтому изучение программирования в основном заключалось в чтении книг и журналов. В компьютерных журналах часто публиковались листинги исходного кода, которые читателю нужно было перепечатывать. Результат мог быть любым: игрой, утилитой для копирования диска, программой для рисования под GEOS или — чаще чем хотелось бы — чем-то, работающим кое-как из-за _опечаток_. В какой-то момент журналы начали публиковать листинги, рядом с каждой строкой которых была указана контрольная сумма. У них были специальные программы, проверявшие контрольную сумму каждой вводимой строки. Такие программы сильно помогали. Но всё равно это был один из самых медленных и подверженных ошибкам способов копирования компьютерных программ за всю историю компьютеров. Тем не менее, процесс был довольно интересным (по крайней мере, мне так казалось).
[Читать дальше →][2]

[1]: https://habrastorage.org/web/92a/d27/632/92ad2763262c4a6488418852727015b0.png
[2]: https://habrahabr.ru/post/332586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Рынок систем детекции и распознавания: Эмоции и «эмоциональные вычисления»
habra.16
habrabot(difrex,1) — All
2017-07-07 15:00:05


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

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

[1]: https://habrastorage.org/web/cac/1a6/7e7/cac1a67e711e4fbdbd1e99f69ece0297.jpg
[2]: https://habrahabr.ru/company/neurodatalab/blog/332466/
[3]: https://habrahabr.ru/post/332466/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Лог файлы Linux по порядку
habra.16
habrabot(difrex,1) — All
2017-07-07 15:30:05


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


![][1]





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

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

[1]: https://habrastorage.org/web/06c/d90/a84/06cd90a8459e46ce91111c269428614a.png
[2]: https://habrahabr.ru/post/332502/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Спасёт ли Python от казни?
habra.16
habrabot(difrex,1) — All
2017-07-07 16:00:05


Доброго времени суток! При просмотре экшн-фильмов (фильмов с хорошо продуманными динамичными сценами) иногда закрадывается в голову: а реально ли это в действительности? Например, мог ли автомобиль перевернуться на маленькой скорости, как быстро можно раскачаться на верёвке без начальной скорости над пропастью…

![image][1]

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

[1]: https://img-fotki.yandex.ru/get/6105/13826504.152/0_1532aa_bcfdd49d_XL.jpg
[2]: https://habrahabr.ru/post/332620/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Резервное копирование томов LVM2 с защитой от перегрузок IO с использованием сигналов SIGSTOP, SIGCONT
habra.16
habrabot(difrex,1) — All
2017-07-07 17:30:05


Настройка резервного копирования уверенно занимает одно из важнейших мест в деятельности администратора. В зависимости от задач резервного копирование и типов приложений и вида данных резервное копирование может осуществляться с помощью различных инструментов, таких как rsync, duplicity, rdiff-backup, bacula и других, коих существует огромное множество.



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

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

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

[>] Метод восстановления данных с диска, зашифрованного NotPetya с помощью алгоритма Salsa20
habra.16
habrabot(difrex,1) — All
2017-07-07 17:30:05


![][1]

Атаки с использованием вирусов-шифровальщиков стали настоящим трендом 2017 года. Подобных атак было зафиксировано множество, однако самыми громкими из них оказались WannaCry и NotPetya (также известный под множеством других имен — Petya, Petya.A, ExPetr и другими). Освоив опыт предыдущей эпидемии, специалисты по всему миру оперативно среагировали на новый вызов и в считанные часы после заражения первых компьютеров принялись изучать экземпляры зашифрованных дисков. Уже 27 июня появились [первые описания][2] методов заражения и распространения NotPetya, более того — появилась [вакцина от заражения][3].

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

[1]: https://habrastorage.org/web/d56/d5b/ae4/d56d5bae47a24a86b68249619c44586f.JPG
[2]: https://www.ptsecurity.com/ru-ru/about/news/283092/
[3]: https://twitter.com/PTsecurity_UK/status/879779707075665922
[4]: https://habrahabr.ru/post/332618/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


![][1]



Всем привет!



Меня зовут Александр, я руковожу отделом Data Team в Badoo. Сегодня я расскажу вам о том, как мы выбирали оптимальный алгоритм для вычисления квантилей в нашей распределённой системе обработки событий.

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

[1]: https://habrastorage.org/web/103/7e1/19b/1037e119bb5245e78df583dbf26df87f.png
[2]: https://habrahabr.ru/post/332568/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обработка многократно возникающих SIGSEGV-подобных ошибок
habra.16
habrabot(difrex,1) — All
2017-07-08 01:30:03


Тема изъезжена и уже не мало копий было сломано из-за неё. Так или иначе люди продолжают задаваться вопросом о том может ли приложение написанное на C/C++ не упасть после разыменования нулевого указателя, например. Краткий ответ — да, даже на Хабре есть статьи на сей счёт.



Одним из наиболее частых ответов на данный вопрос является фраза "А зачем? Такого просто не должно случаться!". Истинные причины того почему люди продолжают интересоваться данной тематикой могут быть разные, одной из них может быть лень. В случая когда лениво или дорого проверять всё и вся, а исключительные ситуации случаются крайне редко можно, не усложняя кода, завернуть потенциально падающие фрагменты кода в некий `try`/`catch` который позволит красиво свернуть приложение или даже восстановится и продолжить работу как ни в чём не бывало. Наиболее ненормальным как раз таки может показаться желание снова и снова ловить ошибки, обычно приводящие к падению приложения, обрабатывать их и продолжать работу.



Итак попробуем создать нечто позволяющее решать проблему обработки SIGSEGV-подобных ошибок. Решение должно быть по максимуму кроссплатформенным, работать на всех наиболее распространённых десктопных и мобильных платформах в однопоточных и многопоточных окружениях. Так же сделаем возможным существование вложенных `try`/`catch` секций. Обрабатывать будем следующие виды исключительных ситуаций: доступ к памяти по неправильным адресам, выполнение невалидных инструкций и деление на ноль. Апофеозом будет то, что произошедшие аппаратные исключения будут превращаться в обычные C++ исключения.

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

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

[>] [Перевод] Что делает язык программирования «модным»?
habra.16
habrabot(difrex,1) — All
2017-07-08 02:30:04


![][1]

Сейчас много языков программирования, соперничающих за ваше внимание, особенно «горячие» (или «модные!») новые языки, такие как Ceylon, Crystal, Dart, Elixir, Elm, Go, Haxe, Julia, Kotlin, Rust, Swift, TypeScript. И новые, кажется, появляются каждый месяц!
[Читать дальше →][2]

[1]: https://habrastorage.org/web/e0a/d76/0a8/e0ad760a80944d4cb893586a985198de.jpeg
[2]: https://habrahabr.ru/post/332650/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 27: ExPetr = BlackEnergy, более 90% сайтов небезопасны, в Linux закрыли RCE-уязвимость
habra.16
habrabot(difrex,1) — All
2017-07-08 10:30:03


Зловещий ExPetr, поставивший на колени несколько весьма солидных учреждений, продолжает преподносить [сюрпризы][1]. Наши аналитики из команды GReAT [обнаружили][2] его родство со стирателем, атаковавшим пару лет назад украинские электростанции в рамках кампании BlackEnergy.

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

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

[1]: https://threatpost.com/researchers-find-blackenergy-apt-links-in-expetr-code/126662/
[2]: https://securelist.com/from-blackenergy-to-expetr/78937/
[3]: https://habrahabr.ru/post/332646/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Libdispatch. Как сделать приложение отзывчивым
habra.16
habrabot(difrex,1) — All
2017-07-08 14:00:05


![image][1]




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


* **Pthreads**, или потоки POSIX. Библиотека для низкоуровневой работы с многопоточностью. Определена как набор типов и функций на языке C. Подробнее можно ознакомиться [тут][2].
* **Background selectors**. Это отправка сообщения объекту, которое будет исполнено на указанном потоке. В коде это селектор с названием `performSelector` и различными параметрами (например, `performSelectorOnMainThread:withObject:waitUntilDone:`). [Документация][3]
* **NSThread**. Представлены как базовые средства для работы с потоками. Ознакомьтесь с концептуальным [документом][4] по работе с потоками и [документацией][5].
* **Grand Central Dispatch**. Библиотека, основанная на блоках — анонимных участках кода, иначе замыканиях. Рабочее название — **libdispatch**.
* **NSOperation**. Построен на основе GCD. Стоит заметить, что сама операция является абстрактной сущностью и на практике стоит использовать `NSInvocationOperation` и `NSBlockOperation`.

В этой статье поговорим о вопросах CGD.

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

[1]: https://habrastorage.org/web/14d/c1b/ee6/14dc1bee6d6b45428dadef9c14b76059.png
[2]: https://habrahabr.ru/post/326138/
[3]: https://developer.apple.com/documentation/objectivec/nsobject/1417922-performselector
[4]: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Multithreading/AboutThreads/AboutThreads.html#//apple_ref/doc/uid/10000057i-CH6-SW2
[5]: https://developer.apple.com/documentation/foundation/thread
[6]: https://habrahabr.ru/post/332026/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Скрипт для экспресс-восстановления Excel-файлов после повреждения
habra.16
habrabot(difrex,1) — All
2017-07-08 16:30:04


Данная заметка предназначен тем, у кого при попытке открыть Excel-файл выдается сообщение об ошибке вида ![][1]

В моем случае с такой ошибкой открывался xlsx-файл (далее 1.xlsx), восстановленный с помощью R-Saver после вирусной атаки, подобной «Petya».
[Читать дальше][2]

[1]: https://habrastorage.org/web/35c/560/15a/35c56015ad3347ae89f3562713098733.png
[2]: https://habrahabr.ru/post/332660/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Интервью в SD podCast с Павлом Одинцовым, автором FastNetMon, инструмента для обнаружения и отражения DDoS атак
habra.16
habrabot(difrex,1) — All
2017-07-08 16:30:04


Всем привет!

Некоторое время назад [ksdaemon][1] пригласил меня в гости к подкасту [SD podCast][2]. Это получилось очень интересное путешествие по дебрям нашего проекта и были открыты уголки, про которые раньше даже никто не спрашивал :) Отличная демонстарция фразы — хочешь понять (свой же продукт!) сам — объясни другим.

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

Для тех, кто не знакомы с продуктом для начала рекомендую изучить наш [сайт][3] и [GitHub проект][4].
[Читать дальше →][5]

[1]: https://habrahabr.ru/users/ksdaemon/
[2]: https://sdcast.ksdaemon.ru/2017/07/sdcast-58/
[3]: https://fastnetmon.org
[4]: https://github.com/pavel-odintsov/fastnetmon
[5]: https://habrahabr.ru/post/332662/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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