RSS
Pages: 1 ... 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ... 133
[>] [recovery mode] Обзор 5 самых популярных JavaScript фреймворков и библиотек 2017
habra.16
habrabot(difrex,1) — All
2017-02-14 23:30:04


Популярность [JavaScript][1] продолжает расти. В 2016 году мы стали свидетелями больших изменений с выходом полного апгрейда AngularJS и анонсом Angular 2, окончательного первенства jQuery, который применяют в 96,5% всех JC сайтов, эволюции ECMAScript, двух обновлений Node.js в апреле и октябре соответственно, и даже более того. Чего ожидать от 2017 года? Вот то, что мы знаем к этому времени: Angular 4 ожидается в марте 2017, выпуск ES2017 планируется в середине 2017, релиз Bootstrap v4 также ожидается в этом году.

[![][2]
][3]
Недавно JavaScript занят место среди лучших языков для изучения по версии IBM в 2017 году. На данном этапе он используется, как для клиентской, так и для серверной части и помогает проектировать привлекательные интерфейсы, обогащать веб-приложения многочисленными функциями и фичами, изменять веб-страницы в реальном времени и много другое.
[Читать дальше →][4]

[1]: https://www.liveedu.tv/learn/javascript/
[2]: https://habrastorage.org/files/95e/867/8eb/95e8678eb62141eea58b28efbe25d5d9.jpg
[3]: https://habrahabr.ru/post/321844/
[4]: https://habrahabr.ru/post/321844/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Простая технология классификации распознанных страниц деловых документов на основе метода Template Matching
habra.16
habrabot(difrex,1) — All
2017-02-14 23:30:04


![image][1]



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

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

[1]: https://habrastorage.org/files/f24/642/434/f246424346dc476ca3ac0e12a32c9ab4.jpg
[2]: https://habrahabr.ru/post/321782/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Python: Работа с базой данных, часть 1/2: Используем DB-API
habra.16
habrabot(difrex,1) — All
2017-02-15 11:00:03


**Python DB-API** – это не конкретная библиотека, а набор правил, которым подчиняются отдельные модули, реализующие работу с конкретными базами данных. Отдельные нюансы реализации для разных баз могут отличаться, но общие принципы позволяют использовать один и тот же подход при работе с разными базами данных.
![][1]
**В статье рассмотрены** основные методы DB-API, позволяющие полноценно работать с базой данных. Полный список можете найти по ссылкам в конец статьи.

**Требуемый уровень подготовки**: базовое понимание синтаксиса SQL и Python.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/38a/503/ff2/38a503ff27b846e4aac2411fb0fdf614.png
[2]: https://habrahabr.ru/post/321510/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Распределённый xargs, или Исполнение гетерогенных приложений на Hadoop-кластере
habra.16
habrabot(difrex,1) — All
2017-02-15 14:00:04


![enter image description here][1]



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



Меня зовут Александр Крашенинников, я руковожу DataTeam в Badoo. Сегодня я поделюсь с вами простой и элегантной утилитой для распределённого выполнения команд в стиле xargs, а заодно расскажу историю её возникновения.



Наш отдел BI работает с объёмами данных, для обработки которых требуются ресурсы более чем одной машины. В наших процессах ETL в ход идут привычные миру Big Data распределённые системы Hadoop и Spark в связке с OLAP-базой [Exasol][2]. Использование этих инструментов позволяет нам горизонтально масштабироваться как по дисковому пространству, так и по CPU/ RAM.



Безусловно, в наших процессах ETL существуют не только тяжеловесные задачи на кластере, но и машинерия попроще. Широкий пласт задач решается одиночными PHP/ Python-скриптами без привлечения гигабайтов оперативной памяти и дюжины жёстких дисков. Но в один прекрасный день нам потребовалось адаптировать одну CPU-bound задачу для выполнения в 250 параллельных инстансов. Настала пора маленькому Python-скрипту покинуть пределы родного хоста и устремиться в большой кластер!

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

[1]: https://habrastorage.org/files/791/0ea/93c/7910ea93c4fb4d87a15b277b98ad0464.png
[2]: https://habrahabr.ru/company/badoo/blog/271753/
[3]: https://habrahabr.ru/post/321692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Исключения в Windows x64. Как это работает. Часть 1
habra.16
habrabot(difrex,1) — All
2017-02-15 14:30:04


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

[1]: https://habrahabr.ru/company/aladdinrd/blog/320948/
[2]: https://habrahabr.ru/post/321868/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Установка Zabbix Agent на VCSA 6.5
habra.16
habrabot(difrex,1) — All
2017-02-15 17:30:03


Не так давно VMware выпустила VCSA 6.5, которую рекомендовала к использованию, вместо традиционной инсталляции vCenter на платформу Windows. Соответственно у некоторых мог появиться вопрос, а как мониторить VCSA?

Инфа под катом: Как собрать и установить Zabbix Agent на VCSA + Немного информации об устройстве VCSA.
[Читать дальше →][1]

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

[>] Vim и переключение раскладок: о наболевшем
habra.16
habrabot(difrex,1) — All
2017-02-15 19:30:04


Всем привет. Я достаточно давно пользуюсь редактором Vim для редактирования очень разных текстов: правки конфигов, написания кода, в качестве внешнего редактора в браузере и почтовом клиенте…

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

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

[1]: https://habrastorage.org/files/c58/e5e/4db/c58e5e4dbd9e4b2ab6e640c6ae540df4.jpg
[2]: https://habrahabr.ru/post/321902/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Неизвестная кибергруппировка атаковала 140 компаний в 40 странах с помощью легитимного софта
habra.16
habrabot(difrex,1) — All
2017-02-15 21:30:04


![][1]

На прошлой неделе в СМИ была опубликована [информация][2] о деятельности группировки киберпреступников, жертвами которой стали банки, телекоммуникационные компании и правительственные учреждения в 40 странах мира, в том числе в России — всего около 140 организаций. Для проникновения в корпоративные сети использовалось только легитимное ПО, а любые вредоносные файлы сохранялись в памяти, не оставляя следов на жестких дисках. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c9b/369/9e8/c9b3699e805f4002b56eb587be430c35.jpg
[2]: https://www.theregister.co.uk/2017/02/08/hidden_malware_menaces_enterprises/
[3]: https://habrahabr.ru/post/321896/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PyNSK #12 — февральская встреча питонистов Новосибирска
habra.16
habrabot(difrex,1) — All
2017-02-15 22:00:04


Любите ли вы Python так, как мы любим его? Приглашаем всех любителей и «любителей» Python на встречу сообщества PyNSK.

26-го февраля (воскресенье) состоится очередная, 12-ая, встреча. Она пройдет в новом для нас месте — в офисе компании AgoraDoxa ([карта][1]) и начнется в 13-00.

→ [Регистрация][2] (там пропускной режим)
![image][3]
В прошлый раз на встречу пришло около 30 человек, что для нас рекорд.
Говорили про пакеты в Python и почему TOML вполне годный формат. Затронули тему управления кодом проекта и долго обсуждали управление релизами. Была интересная дискуссия.
Не обошли сторой тему «Python на Android». Было необычно, появляются все новые и новые способы поместить интерпретируемый язык в мир Java.

В этот раз мы выбрали два интересных доклада:
[Читать дальше →][4]

[1]: http://go.2gis.com/2gpgz
[2]: https://bit.ly/pynsk12_reg
[3]: https://habrastorage.org/files/156/6f2/5fe/1566f25fecd84ad6a53eeafff55b8535.png
[4]: https://habrahabr.ru/post/321884/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Портирование — дело тонкое: проверка Far Manager под Linux
habra.16
habrabot(difrex,1) — All
2017-02-16 12:30:05


Одним из популярных файловых менеджеров в среде Microsoft Windows является Far Manager, принявший эстафету у Norton Commander, созданной еще для DOS. Far Manager позволяет облегчить работу с файловой системой (создание, редактирование, просмотр, копирование, перемещение, поиск, удаление файлов), а также расширяет стандартный функционал (работа с сетью, архивами, резервными копиями и т.д.). Недавно была произведена работа по портированию Far Manager на Linux, и на текущий момент была выпущена альфа-версия. Команда PVS-Studio не могла обойти стороной данное событие и решила проверить качество адаптированного кода.

![Picture 24][1]


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

[1]: https://habrastorage.org/getpro/habr/post_images/653/5ce/b44/6535ceb440001a72c4d871694d28f6c9.png
[2]: https://habrahabr.ru/post/321948/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Отвлеченно о входных/выходных аргументах
habra.16
habrabot(difrex,1) — All
2017-02-16 13:30:04


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


![][1][и немного рефлексии][2]

[1]: https://habrastorage.org/files/74e/895/034/74e895034462474da13376cd57738986.jpg
[2]: https://habrahabr.ru/post/321862/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] nodejs: SSO-авторизация через Kerberos
habra.16
habrabot(difrex,1) — All
2017-02-16 13:30:04


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

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

[1]: https://habrastorage.org/files/463/b3d/26a/463b3d26a5c2427583221ea28b0b77f8.png
[2]: https://habrahabr.ru/post/321962/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Змея и кокос
habra.16
habrabot(difrex,1) — All
2017-02-16 19:30:04


Я люблю Python. Нет, правда, это отличный язык, подходящий для широкого круга задач: тут вам и работа с операционной системой, и веб-фреймворки на любой вкус, и библиотеки для научных вычислений и анализа данных. Но, помимо Python, мне нравится функциональное программирование. И питон в этом плане неплох: есть замыкания, анонимные функции и вообще, функции здесь — объекты первого класса. Казалось бы, чего ещё можно желать? И тут я случайно наткнулся на **Coconut** — функциональный язык, компилируемый в Python. Всех любителей Python и ФП прошу под кат.

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

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

[>] Дерандомизация ASLR на любых современных процессорах средствами JavaScript
habra.16
habrabot(difrex,1) — All
2017-02-16 23:00:05


![][1]
_Запись обращений к кэшу устройством управления памятью (MMU) в процессоре по мере вызова страниц по особому паттерну, разработанному для выявления различий между разными уровнями иерархии таблиц. Например, паттерн «лесенки» (слева) указывает на первый уровень иерархии, то есть PTL1, при вызове страниц по 32K. Для других уровней иерархии тоже есть методы выявления_

Пятеро исследователей из Амстердамского свободного университета (Нидерланды) доказали фундаментальную уязвимость техники защиты памяти ASLR на современных процессорах. Они выложили [исходники скриптов JavaScript][2] и подробное описание [атаки AnC][3] (ASLR⊕Cache), которой подвержены практически все процессоры.

Исследователи проверили AnC на 22 процессорах разных архитектур — и не нашли ни одного, который был бы защищён от такого рода атаки по стороннему каналу. Это и понятно, ведь во всех процессорах используется буфер динамической трансляции для кэширования адресов памяти, которые транслируются в виртуальные адреса. Защититься от этой атаки можно только отключив кэш процессора.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/31b/585/95d/31b58595d257452e96cc243f05124855.png
[2]: https://github.com/vusec/revanc
[3]: https://www.vusec.net/projects/anc/
[4]: https://habrahabr.ru/post/322020/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Знакомство с командой курсов стека Java на Hexlet
habra.16
habrabot(difrex,1) — All
2017-02-17 10:00:04


Привет, Хабраюзер. Мы давно хотели стать немного ближе к тебе. И сегодня столь длительно зреющая идея рассказать тебе более подробно о том: «кто и какие курсы Java стека на Хекслет делает» — воплотилась! Как думаю — стало понятно: мы расскажем Вам о курсах над которыми мы трудились последние пол года, включая самый последний курс который вот-вот начали записывать: [Java для Web сервисов][1].

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

[1]: https://ru.hexlet.io/courses/java-webservices
[2]: https://habrastorage.org/files/0f9/bd7/43c/0f9bd743cdb64062a53bcb802d89d85e.png
[3]: https://habrahabr.ru/post/321826/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Поиск уязвимости методом фаззинга и разработка шеллкода для её эксплуатации
habra.16
habrabot(difrex,1) — All
2017-02-17 11:30:04


![][1] Для поиска уязвимостей все средства хороши, а чем хорош [фаззинг][2]? Ответ прост: тем, что он дает возможность проверить, как себя поведёт программа, получившая на вход заведомо некорректные (а зачастую и вообще случайные) данные, которые не всегда входят во множество тестов разработчика.

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

В этой статье мы:
* **продемонстрируем, как фаззить обработчик [JSON][3]-запросов;**
* **используя фаззинг, найдём уязвимость переполнения буфера;**
* **напишем шеллкод на Ассемблере для эксплуатации найденной уязвимости.**
Разбирать будем на примере исходных данных задания прошлого [NeoQUEST][4]. Известно, что 64-хбитный Linux-сервер обрабатывает запросы в формате JSON, которые заканчиваются [нуль-терминатором][5] (символом с кодом 0). Для получения ключа требуется отправить запрос с верным паролем, при этом доступа к исходным кодам и к бинарнику серверного процесса нет, даны только IP-адрес и порт. В легенде к заданию также было указано, что MD5-хеш правильного пароля содержится где-то в памяти процесса после следующих 5 символов: «hash:». А для того, чтобы вытащить пароль из памяти процесса, необходима возможность удалённого исполнения кода.
[Читать дальше →][6]

[1]: https://habrastorage.org/files/e9d/d68/60d/e9dd6860d8e04b8db5b89b2dacd07ef6.jpg
[2]: http://www.vr-online.ru/?q=content/fuzzing-tehnologija-ohoty-za-bagami-752
[3]: http://www.json.org/json-ru.html
[4]: http://neoquest.ru/timeline.php?year=2017&part=1
[5]: https://ru.wikipedia.org/wiki/%D0%9D%D1%83%D0%BB%D1%8C-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0
[6]: https://habrahabr.ru/post/321912/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Функции шума и генерирование карт
habra.16
habrabot(difrex,1) — All
2017-02-17 11:30:04


![][1]

Когда я изучал обработку аудиосигналов, мой мозг проводить аналогии с процедурным генерированием карт. В статье излагаются принципы, связывающие обработку сигналов с генерированием карт. Не думаю, что открыл что-то новое, но некоторые выводы были для меня в новинку, поэтому я решил записать их и поделиться с читателями. Я рассматриваю только простые темы (частоту, амплитуду, цвета шума, использование шума) и не затрагиваю другие темы (дискретные и непрерывные функции, фильтры FIR/IIR, быстрое преобразование Фурье, комплексные числа). Математика статьи в основном связана с синусоидами.

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

[1]: https://habrastorage.org/files/f62/1e8/f1c/f621e8f1c34144c4b0d94d93d5c1a3ab.png
[2]: http://www.redblobgames.com/maps/terrain-from-noise/
[3]: https://habrahabr.ru/post/321874/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Контейнеры и безопасность: seccomp
habra.16
habrabot(difrex,1) — All
2017-02-17 12:00:04




Для работы с потенциально опасными, непроверенными или просто «сырыми» программами часто используются так называемые песочницы (sandboxes) — специально выделенные среды с жёсткими ограничениями. Для запускаемых в песочницах программ обычно сильно лимитированы доступ к сети, возможность взаимодействия с операционной системой на хост-машине и считывать информацию с устройств ввода-вывода.

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

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

[>] [Из песочницы] Телеграм бот на Python с использованием только requests
habra.16
habrabot(difrex,1) — All
2017-02-17 13:30:05


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



На Хабре уже полно статей-туториалов с заголовками «Создание бота на Python», но многие из них используют готовые обертки над HTTP-интерфейсом Bot API Телеграма. Я же использую стандартную библиотеку для отправки и получения **GET-** и **POST**-запросов — requests. И так, рассмотрим создание примитивного Телеграм бота, который будет отвечать на все наши текстовые сообщения. Это будет заготовка для дальнейшего расширения.



![image][1]

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

[1]: https://habrastorage.org/files/2f3/8e1/eae/2f38e1eaefac4e868c1130ed17d7700c.jpg
[2]: https://habrahabr.ru/post/322050/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как я СКАДу писал. Часть восьмая…
habra.16
habrabot(difrex,1) — All
2017-02-17 14:30:03


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

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

[>] OpenResty: превращаем NGINX в полноценный сервер приложений
habra.16
habrabot(difrex,1) — All
2017-02-17 18:30:05


_Мы вновь публикуем расшифровку доклада с конференции [HighLoad++][1] 2016, которая проходила в подмосковном Сколково 7—8 ноября прошлого года. [Владимир Протасов][2] рассказывает, как расширить функциональность NGINX с помощью OpenResty и Lua._

Всем привет, меня зовут Владимир Протасов, я работаю в Parallels. Расскажу чуть-чуть о себе. Три четверти своей жизни я занимаюсь тем, что пишу код. Стал программистом до мозга костей в прямом смысле: я иногда во сне вижу код. Четверть жизни — промышленная разработка, написание кода, который идёт прямо в продакшн. Код, которым некоторые из вас пользуются, но не догадываются об этом.

Чтобы вы понимали насколько всё было плохо. Когда я был маленьким джуниором, я пришёл, и мне выдали такие двухтерабайтные базы. Это сейчас тут у всех highload. Я ходил на конференции, спрашивал: «Ребят, расскажите, у вас big data, всё круто? Сколько у вас там базы?» Мне отвечали: «У нас 100 гигабайт!» Я говорил: «Круто, 100 гигабайт!» А про себя думал, как бы аккуратненько сохранить покерфейс. Думаешь, да, ребята крутые, а потом возвращаешься и ковыряешься с этими многотерабайтными базами. И это — будучи джуниором. Представляете себе, какой это удар?

Я знаю больше 20 языков программирования. Это то, в чём мне пришлось разобраться в процессе работы. Тебе выдают код на Erlang, на C, на С++, на Lua, на Python, на Ruby, на чем-то еще, и тебе надо это всё пилить. В общем пришлось. Точное количество посчитать так и не удалось, но где-то на 20 число потерялось.
[Читать дальше →][3]

[1]: http://www.highload.ru/
[2]: https://habrahabr.ru/post/315726/
[3]: https://habrahabr.ru/post/321864/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 07: RSA и искуcственный интеллект, безопасность Android, госрегулирование IoT
habra.16
habrabot(difrex,1) — All
2017-02-17 20:00:03


![][1]На этой неделе расцвела пышным цветом, растеклась по лугам и долинам, распустилась и опала главная конференция по информационной безопасности — RSA Conference 2017. Конференция, в отличие от мероприятий типа Blackhat или нашего собственного [Security Analyst Summit][2], немножко маркетинговая. Исследований по безопасности там почти нет (у нас [есть][3], а так не очень), зато красивых слов об инновационных технологиях — много. Слова тоже нужны: хочется того или нет, инфобезопасность давно перестала быть чисто техническим феноменом, превратившись в социальный. Возможно из-за того, что в прошлом году я был на мероприятии, а в этом — нет, в этот раз слова с RSA я воспринимаю с несколько большей долей скепсиса.

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

[1]: https://habrastorage.org/files/189/f8f/d26/189f8fd269a44d30bd6ef6ba8fea44ce.jpg
[2]: https://sas.kaspersky.com/
[3]: https://securelist.com/analysis/publications/77544/a-look-into-the-russian-speaking-ransomware-ecosystem/
[4]: https://threatpost.com/cryptographers-dismiss-ai-quantum-computing-threats/123723/
[5]: https://habrahabr.ru/post/321926/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Игра Bushed Bricks: второе дыхание
habra.16
habrabot(difrex,1) — All
2017-02-18 00:00:04


![image][1]

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

[1]: https://habrastorage.org/files/f64/3b9/a78/f643b9a789bb40caa1aeae5634895416.jpg
[2]: https://habrahabr.ru/post/314402/
[3]: https://habrahabr.ru/post/320560/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Telegram-бот, webhook и 50 строк кода
habra.16
habrabot(difrex,1) — All
2017-02-18 09:00:05


Как, опять? Ещё один туториал, пережёвывающий официальную документацию от Telegram, подумали вы?
Да, но нет! Это скорее рассуждения на тему того, как построить функциональный бот-сервис используя _Python3.5+_, _asyncio_ и _aiohttp_. Тем интереснее, что заголовок на самом деле лукавит…
[Читать дальше →][1]

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

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


![image][1]



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



Сейчас ситуация начинает стремительно меняться.


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

[1]: https://habrastorage.org/files/d23/193/9a9/d231939a913e41618aa9188746161072.jpg
[2]: https://habrahabr.ru/post/322098/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Графическое описание владения и заимствования в Rust
habra.16
habrabot(difrex,1) — All
2017-02-19 11:30:03


Ниже представлено графическое описание перемещения, копирования и заимствования в [языке программирования Rust][1]. В основном, эти понятия специфичны только для Rust, являясь общим камнем преткновения для многих новичков.



![][2]



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


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

[1]: https://www.rust-lang.org/
[2]: https://habrastorage.org/files/cba/22d/ca5/cba22dca5a5d4723b3fce8a255dbf114.png
[3]: https://habrahabr.ru/post/322140/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проблемы, возникающие при разработке android-приложений
habra.16
habrabot(difrex,1) — All
2017-02-19 15:00:03


## Введение


Доброго времени суток. В этой статье вы узнаете о том, какие проблемы могут возникнуть при разработке android-приложений. На написание этой статьи меня побудили комментарии из прошлой статьи, кстати вот она: [моя первая статья][1]. Спасибо за советы! Ну, пора начинать…
[Читать дальше →][2]

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

[>] Не доверяйте SUDO, она может вас подвести
habra.16
habrabot(difrex,1) — All
2017-02-20 00:30:04


![][1]

Всем доброго времени суток, в этой статье постараюсь описать некоторые способы обхода ограничений на исполнение команд в ОС Linux, советы по использованию которых можно часто встретить на различных форумах. Демонстрация будет проведена на примере задания [Restricted shells][2] с сайта [Root-Me][3]. И так, начнём. [Читать дальше →][4]

[1]: https://habrastorage.org/files/00a/655/8ed/00a6558edbcf4566b6033f60e21acb3d.png
[2]: https://www.root-me.org/en/Challenges/App-Script/Restricted-shells
[3]: https://www.root-me.org
[4]: https://habrahabr.ru/post/321760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Я должен знать, о чём ты думаешь: прозрачность мышления ИИ как необходимое условие
habra.16
habrabot(difrex,1) — All
2017-02-20 11:00:03


![][1]

Как многие из вас знают, в 2015 году Стивен Хокинг, Элон Маск и сотни учёных, разработчиков искусственного интеллекта и крупных бизнесменов [подписали открытое письмо][2], в котором подчеркнули опасность ИИ для существования человечества и призвали сообщество инженеров и учёных не создавать искусственные интеллекты, которые не могут полностью контролироваться человеком. В 2016-м на конференции Code Conference основателю Space X и Tesla задали вопрос: какие компании, разрабатывающие сегодня ИИ, вызывают у него опасения? На это ответил, что сейчас его [пугает лишь одна из них][3]. Какая — не сказал. И несмотря на все уверения техноадептов в том, что ИИ — исключительно благо, цена пренебрежения механизмами безопасности может оказаться непомерной высока. [Читать дальше →][4]

[1]: https://habrastorage.org/files/464/c09/97a/464c0997a0484f07a0b4d285058e211b.jpg
[2]: https://futureoflife.org/ai-open-letter-signatories/
[3]: https://www.youtube.com/watch?v=tV8EOQNYC-8&feature=youtu.be&t=237
[4]: https://habrahabr.ru/post/322156/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Интересные алгоритмы кластеризации, часть вторая: DBSCAN
habra.16
habrabot(difrex,1) — All
2017-02-20 11:30:04


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

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

[1]: https://habrastorage.org/files/7ed/e61/4d5/7ede614d5f9c4977b69ee22071936dfe.png
[2]: https://habrahabr.ru/post/322034/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Баги из СССР
habra.16
habrabot(difrex,1) — All
2017-02-20 13:30:04


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


![Picture 6][1]


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

[1]: https://habrastorage.org/getpro/habr/post_images/95f/996/8b9/95f9968b97d3ac56102d3cfd791e9911.png
[2]: https://habrahabr.ru/post/322198/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Модификация стоковых прошивок для Android. Часть 5. Революция c Xposed Framework
habra.16
habrabot(difrex,1) — All
2017-02-20 14:00:03


В 2012 году пользователь с ником rovo89 на комьюнити XDA опубликовал [исходные коды][1] и готовый к использованию [фреймворк][2], упрощающий кастомизацию прошивок, с подробной инструкцией и примерами, предложив альтернативу традицоинному, на тот момент, способу (деоксидирование → дизассемблирование → декомпиляция → рекомпиляция → тестирование → загрузка патчей в телефон): [Часть 1][3], [Часть 2][4], [Часть 3][5], [Часть 4][6]

Он предложил использовать отдельные модули, которые можно изменять фактически налету, не вмешиваясь в исходный код прошивки или отдельных ее компонентов. Но авторитетные разработчики хором ответили: "**Неа… никому это не нужно**"

Rovo не забросил свое детище, а продолжил развитие. Когда в 2013-ом году вышла версия KitKat, все то же сообщество именитых девелоперов ответило: "**Неа, это слишком опасно… хотя...**"

Тем временем Google принял решение выпускать новую версию операционной системы ежегодно. Разумеется, стало накладно кастомизировать прошивки: не успеваешь сделать одну, как появляется новая версия ОС. Так в 2014-ом выходит версия Lollipop и разработчики наконец обращают внимание на фреймфорк с мыслями: "**Может все же стоит посмотреть что это такое? Выглядит многообещающим**".

В 2015-ом году вышла очередная версия (Marshmallow) и большая часть сообщества, в итоге, признала разработку весьма стоящей, на порядок сокращающей время разработки кастомизаций стоковых прошивок в виде установки отдельных модулей, расширяющих функционал. "**Ничего себе, это же совсем безопасно и есть библиотека готовых полезных модулей!**" — воскликнули они.

Сейчас конец февраля 2017-го. Xposed под Nougat все еще не доступен, а толпы страждущих разработчиков и пользователей то и дело открывают темы под тип "**Xposed не работает! Он мне нужен! Rovo, пожалуйста!**"

Сегодня я расскажу об Xposed Framework.
[Читать дальше →][7]

[1]: https://github.com/rovo89/Xposed
[2]: http://repo.xposed.info/
[3]: https://habrahabr.ru/post/181826/
[4]: https://habrahabr.ru/post/182640/
[5]: https://habrahabr.ru/post/185940/
[6]: https://habrahabr.ru/post/190428/
[7]: https://habrahabr.ru/post/318202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Иммутабельные данные в C++
habra.16
habrabot(difrex,1) — All
2017-02-20 14:30:05


Привет, Хабр! Об иммутабельных данных немало говориться, но о реализации на С++ найти что-то сложно. И, потому, решил данный восполнить пробел в дебютной статье. Тем более, что в языке D есть, а в С++ – нет. Будет много кода и много букв.



О стиле – служебные классы и метафункции используют имена в стиле STL и boost, пользовательские классы в стиле Qt, с которой я в основном и работаю.



## Введение



Что из себя представляют иммутабельные данные? Иммутабельные данные – это наш старый знакомый **const**, только более строгий. В идеале иммутабельность означает контекстно-независиую неизменяемость ни при каких условиях.



По сути иммутабельные данные должны:


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

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



Как можно реализовать иммутабельные данные в С++?
В С++ у нас есть (сильно упрощенно):


* значения – объекты фундаментальных типов, экземпляры классов (структур, объединений), перечислений;
* указатели;
ссылки;
массивы.

Функции и **void** не имеет смысл делать иммутабельными. Ссылки тоже не будем делать иммутабельными, для этого есть **const reference\_wrapper**.


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

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

[>] Как приручить автотесты
habra.16
habrabot(difrex,1) — All
2017-02-20 15:30:04


_Додо сказал:
— Правильность формы несущественна! А потом расставил всех без всякого порядка по кругу. Никто не подавал команды — все побежали, когда захотели.

Л.Кэрролл, «Приключения Алисы в стране чудес»_

Развивая автоматизацию тестирования, можно найти много мест, куда приложить силы. Распыляя усилия и преследуя ложные цели мы не только потратим время и ресурсы [впустую][1], но и нанесем разработке вред.

![image][2]

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

[1]: https://habrahabr.ru/company/wrike/blog/321290/
[2]: https://habrastorage.org/getpro/habr/post_images/c3c/70f/758/c3c70f758204d80548a9ab4927b1b809.jpg
[3]: https://habrahabr.ru/post/322218/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Базовые принципы машинного обучения на примере линейной регрессии
habra.16
habrabot(difrex,1) — All
2017-02-20 17:30:05


Здравствуйте, коллеги! Это блог открытой русскоговорящей [дата саентологической ложи][1]. Нас уже легион, точнее 2500+ человек в слаке. За полтора года мы нагенерили 800к+ сообщений (ради этого слак выделил нам корпоративный аккаунт). Наши люди есть везде и, может, даже в вашей организации. Если вы интересуетесь машинным обучением, но по каким-то причинам не знаете про [Open Data Science][2], то возможно вы в курсе мероприятий, которые организовывает сообщество. Самым масштабным из них является [DataFest][3], который проходил недавно в офисе [Mail.Ru Group][4], за два дня его посетило 1700 человек. Мы растем, наши ложи открываются в городах России, а также в Нью-Йорке, Дубае и даже во Львове, да, мы не воюем, а иногда даже и употребляем горячительные напитки вместе. И да, мы некоммерческая организация, наша цель — просвещение. Мы делаем все ради искусства. (пс: на фотографии вы можете наблюдать заседание ложи в одном из тайных храмов в Москве).

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

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

[1]: http://ods.ai/
[2]: http://ods.ai/
[3]: http://datafest.ru/
[4]: https://corp.mail.ru/ru/press/events/307/
[5]: https://habrahabr.ru/users/mephistopheies/topics/
[6]: https://habrahabr.ru/post/322076/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Введение в lock-free программирование
habra.16
habrabot(difrex,1) — All
2017-02-20 20:30:07


![image][1]

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

[1]: https://habrastorage.org/getpro/habr/post_images/fdc/f57/43a/fdcf5743a889950c49194daf804cd394.jpg
[2]: https://habrahabr.ru/post/322094/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Книга «Основы Data Science и Big Data. Python и наука о данных»
habra.16
habrabot(difrex,1) — All
2017-02-20 23:30:04


![image][1]Data Science — это совокупность понятий и методов, позволяющих придать смысл и понятный вид огромным объемам данных.

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

Обработка и анализ данных — одна из самых горячих областей IT, где постоянно требуются разработчики, которым по плечу проекты любого уровня, от социальных сетей до обучаемых систем. Надеемся, книга станет отправной точкой для вашего путешествия в увлекательный мир Data Science.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/b8f/3a2/867/b8f3a28675134778b363af74c96d3032.jpg
[2]: https://habrahabr.ru/post/322194/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] 60 криптоалгоритмов. Часть вторая: Одноключевые КА
habra.16
habrabot(difrex,1) — All
2017-02-21 09:30:04


Доброе время суток, Хабражители!

В [первой статье][1] были описаны бесключевые КА. Конечно классификация показалась многим странной, но отступать поздно, за нами Москва.
Напоминаю классификацию:
![image][2]

Теперь пришло время одноключевых КА.
[Читать дальше →][3]

[1]: https://habrahabr.ru/post/318378/
[2]: https://habrastorage.org/files/38b/4d7/710/38b4d7710ddf45c89f78e9df4273db8d.gif
[3]: https://habrahabr.ru/post/322260/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Мифы о CAP теореме
habra.16
habrabot(difrex,1) — All
2017-02-21 12:30:04


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



![cap][1]



Давно хотел написать про мифы о CAP теореме, но как-то все не доходили руки. Однако, почитав [очередной опус][2], схватился за голову и решил разложить все по полочкам, чтобы в мозгах возникла стройная картина.



Событие, когда какая-то статья вызывает бурю эмоций, — крайне редкое. Первый раз такое возникло, когда я прочитал про chained replication. Меня пытались убедить, что это мощный подход и что это лучшее, что могло произойти с консистентной репликацией. Я сейчас не буду приводить доводы, почему это плохо работает, а просто приведу говорящую цитату из статьи [Chain Replication metadata management][3]:


> Split brain management is a thorny problem. The method presented here is one based on pragmatics. If it doesn’t work, there isn’t a serious worry, because Machi’s first serious use case all require only AP Mode. If we end up falling back to “use Riak Ensemble” or “use ZooKeeper”, then perhaps that’s fine enough.

В моем вольном пересказе это означает примерно следующее: "У нас тут есть некий алгоритм. Мы не знаем, будет ли он работать правильно или нет. Да нам это и не важно". Хотя бы честно, сэкономило кучу времени, спасибо авторам.



И тут, значит, попадается на глаза статья: [Spanner, TrueTime & The CAP Theorem][4]. Её мы разберем по полочкам ближе к концу, вооружившись понятиями и знаниями. А перед этим разберем самые распространенные мифы, связанные с CAP теоремой.


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

[1]: https://habrastorage.org/files/45b/9a6/7ec/45b9a67ece014586a89eaf5dc3e1b6c5.png
[2]: https://cloud.google.com/spanner/docs/whitepapers/SpannerAndCap.pdf
[3]: https://github.com/basho/machi/blob/master/doc/high-level-chain-mgr.pdf
[4]: https://cloud.google.com/spanner/docs/whitepapers/SpannerAndCap.pdf
[5]: https://habrahabr.ru/post/322276/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Разработка транзакционных микросервисов с помощью Агрегатов, Event Sourcing и CQRS (Часть 2)
habra.16
habrabot(difrex,1) — All
2017-02-21 14:00:03


![][1]

_Это завершение переводной статьи о разработке транзакционных приложений с использованием микросервисной архитектуры. [Начало][2]. _

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

Во второй части статьи мы увидим, что ключевой задачей при использовании событий является атомарное изменение состояния агрегата и одновременная публикация события. Посмотрим, как решить эту проблему с помощью Event Sourcing — используя событийно-ориентированный подход к проектированию бизнес-логики и системы сохранения состояния. После этого опишем, как микросервисная архитектура затрудняет реализацию запросов к базе данных, и как подход, называемый Command Query Responsibility Segregation (CQRS), помогает реализовывать масштабируемые и производительные запросы.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/7a2/e79/788/7a2e797887c746849ef5091e2fd7c15f.jpg
[2]: https://habrahabr.ru/company/nixsolutions/blog/321686/
[3]: https://habrahabr.ru/post/322214/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Модель Акторов и C++: что, зачем и как?
habra.16
habrabot(difrex,1) — All
2017-02-21 15:00:04


Данная статья является доработанной текстовой версией [одноименного доклада с конференции C++ CoreHard Autumn 2016][1], которая проходила в Минске в октябре прошлого года. Желание сделать эту статью возникло под впечатлением о том, что в мире C++ разработчики как бы делятся на два больших и не пересекающихся лагеря. В первом лагере находятся матерые спецы, которые все видели, все знают и все умеют, за плечами у которых десятки собственноручно написанных реализаций Модели Акторов, внутрях у которых хитрые, конечно же самостоятельно сделанные, lock-free очереди и state-of-the-art механизмы обслуживания сообщений. Такие проффи сами часами могут рассказывать про тонкости многопоточного программирования (только почему-то редко это делают). Во втором лагере — зеленые новички, которых волею судьбы занесло в мир C++, которые пока слабо представляют себе различия между unique\_ptr и shared\_ptr, про шаблоны только слышали, а в области многопоточности имеют поверхностное впечатление только о std::thread, std::mutex и, может быть, std::condition\_variable. Для людей из первого лагеря я вряд ли что-нибудь интересное расскажу, а вот разработчикам из второго лагеря попробую вкратце рассказать о том, что Модель Акторов в C++ — это нормально. И что есть ряд готовых инструментов, на примере которых можно увидеть, что же это такое.

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

[1]: https://corehard.by/2016/10/25/actors-model-and-c-what-how-and-why/
[2]: https://habrahabr.ru/post/322250/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Снесите это немедленно
habra.16
habrabot(difrex,1) — All
2017-02-21 15:00:04


![][1]

_Андрей Аксенов делится трудностями в подготовке слайдов для доклада. Это — расшифровка выступления [Highload++][2]._

![][3]

Если видите этот слайд – я не очень успел картинки. Пришел Бунин, убедился, что у него докладчик не пропал и задал подлый вопрос. Мы заранее готовим конференцию, 1 сентября приём докладов. Я тоже хотел заранее подготовиться. Вчера в 6 вечера начал рисовать слайды для другого доклада, а для этого в 11, поэтому вот так.

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

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

Возможно это федерально преступление и меня ФСБ заметёт сразу после того как я со сцены выйду. Рискнем, заодно познакомлюсь, поехали.


## Про что доклад?


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

[1]: https://habrastorage.org/files/186/c6d/13b/186c6d13be28447eaa98083f56b13fbf.jpg
[2]: http://www.highload.ru/
[3]: https://habrastorage.org/files/6a4/104/727/6a41047275884584a25b41995ef42c9b.jpg
[4]: https://habrahabr.ru/post/322326/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Почему не нужно учить python первым языком
habra.16
habrabot(difrex,1) — All
2017-02-21 16:30:06


Если вы будете искать ответ на вопрос: «Какой язык программирования выбрать первым», то где-то в 90% всех случаев вам будет предложен Python — как наиболее простой в изучении язык. И очевидно, что определенное число людей, которые до этого не учили программирование, выберут Python из-за этих рекомендаций. И вот тут у нас начинается проблема, о которой пойдет речь ниже. Конечно, с описанием того, как я дошел до такой жизни.
[Читать дальше →][1]

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

[>] Капитан Слоупок докладывает: состоялся релиз ReactOS 0.4.4
habra.16
habrabot(difrex,1) — All
2017-02-21 17:00:04


Добрый день, хабр!

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

[Скачать][1] | [Прочитать официальную новость][2] | [Посмотреть список изменений][3] | [TL;DR][4] | [Тесты][5]

![image][6]
[а с этого места поподробнее][7]

[1]: https://www.reactos.org/download
[2]: https://reactos.org/project-news/reactos-044-released
[3]: https://www.reactos.org/wiki/ChangeLog-0.4.4
[4]: https://www.reactos.org/forum/viewtopic.php?f=2&t=15918
[5]: https://reactos.org/wiki/Tests_for_0.4.4
[6]: https://habrastorage.org/getpro/habr/post_images/f16/6bd/c83/f166bdc83bdab1d1f6112453daa90409.jpg
[7]: https://habrahabr.ru/post/322334/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Салют-ЭЛ24Д1: знакомство с модулем на российском процессоре 1892ВМ14Я для жестких условий
habra.16
habrabot(difrex,1) — All
2017-02-21 17:30:04


![][1]
В нашей инженерной лаборатории появилась новая российская плата для экспериментов — отладочный модуль Салют-ЭЛ24Д1 на многоядерном сигнальном микропроцессоре 1892ВМ14Я. Посмотрим, на что он способен.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/5e7/f88/de1/5e7f88de1c5f4308a7233007d12a277b.jpg
[2]: https://habrahabr.ru/post/322344/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как я сделал самый быстрый ресайз изображений. Часть 1, общие оптимизации
habra.16
habrabot(difrex,1) — All
2017-02-21 18:00:03


В [пилотной части][1] я рассказал о задаче как можно подробнее. Рассказ получился долгим и беспредметным — в нем не было ни одной строчки кода. Но без понимания задачи очень сложно заниматься оптимизацией. Конечно, некоторые техники можно применять, имея на руках только код. Например, кешировать вычисления, сокращать ветвления. Но мне кажется, что некоторые вещи без понимания задачи просто никогда не сделать. Это и отличает человека от оптимизирующего компилятора. Поэтому ручная оптимизация все еще играет огромную роль: у компилятора есть только код, а у человека есть понимание задачи. Компилятор не может принять решение, что значение "4" достаточно случайно, а человек может.



![][2]



Напомню, что речь пойдет об оптимизации операции ресайза изображения методом сверток в реально существующей библиотеке [Pillow][3]. Я буду рассказывать о тех изменениях, что я делал несколько лет назад. Но это не будет повторение слово-в-слово: оптимизации будут описаны в порядке, удобном для повествования. Для этих статей я сделал в репозитории [отдельную ветку][4] от версии 2.6.2 — именно с этого момента и будет идти повествование.

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

[1]: https://habrahabr.ru/post/321744/
[2]: https://habrastorage.org/files/025/911/39b/02591139b661489e923dc1dbe2e58179.png
[3]: https://python-pillow.org
[4]: https://github.com/uploadcare/pillow-simd/commits/opt/scalar
[5]: https://habrahabr.ru/post/322352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Escape analysis и скаляризация: Пусть GC отдохнет
habra.16
habrabot(difrex,1) — All
2017-02-21 18:30:04


В этот раз мы решили разнообразить поток технических интервью реальным хардором и подготовили материал на основе доклада Руслана [cheremin][1] Черемина (Deutsche Bank) про анализ работы пары Escape Analysis и Scalar Replacement, сделанный им на JPoint 2016 в апреле минувшего года.

Видеозапись доклада перед вами:



А под катом мы выложили полную текстовую расшифровку с отдельными слайдами.
[Читать дальше →][2]

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

[>] Так ли безопасно использование абсолютного пути в *nix системах, как мы привыкли считать?
habra.16
habrabot(difrex,1) — All
2017-02-21 19:00:05


![image][1]



Идея редактирования переменных окружения пользователя для повышения прав при тестировании на проникновение стара как мир. По этой теме написано множество статей, и даже в книгах начали появляться советы по использованию абсолютного пути вместо относительного. Вот пример такого совета из довольно известной книги **Unix и Linux. Руководство системного администратора (4 издание)**:



Рекомендуем взять за правило при вводе команды указывать полное имя, например /bin/su или /usr/bin/su, а не просто su. Это послужит определенной защитой от тех программ с именем su, которые преднамеренно были прописаны в переменной среды path злоумышленником, намеревавшимся собрать хороший “урожай” паролей.


Но так ли это безопасно? Если вы тоже задавались этим вопросом, то добро пожаловать под кат.


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

[1]: https://hsto.org/files/09a/ac9/248/09aac9248df64701981053cff2ea62cf.png
[2]: https://habrahabr.ru/post/322220/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Салют-ЭЛ24Д1: отладочная плата на российском процессоре 1892ВМ14Я для жестких условий эксплуатации
habra.16
habrabot(difrex,1) — All
2017-02-21 19:00:05


![][1]
В нашей инженерной лаборатории появилась новая российская плата для экспериментов — отладочный модуль Салют-ЭЛ24Д1 на многоядерном сигнальном микропроцессоре 1892ВМ14Я. Посмотрим, на что он способен.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/5e7/f88/de1/5e7f88de1c5f4308a7233007d12a277b.jpg
[2]: https://habrahabr.ru/post/322344/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Интересные особенности Python, о которых вы могли не догадываться
habra.16
habrabot(difrex,1) — All
2017-02-21 21:30:03


Приветствую тебя %username%. Прочитав [статью][1] о способах обхода _sudo_, решил тоже попробовать описать нечто подобное, но для языка _Python_. Спасибо [root-me][2] за такие задачки. Решая их, можно многое узнать о работе того или иного механизма. Прошу строго не судить, это моё первое творение.
Начнём!
[Читать дальше →][3]

[1]: https://habrahabr.ru/post/321760/
[2]: https://www.root-me.org
[3]: https://habrahabr.ru/post/322360/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 ... 133