RSS
Pages: 1 ... 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 ... 210
[>] 2+2*2=::::::
habra.16
habrabot(difrex,1) — All
2016-07-25 18:30:03


Осталась неделя до отпуска. Чтоб ничего не сломать занимаюсь всякой фигнёй.
Помните детсадовскую задачку «Сколько будет два плюс два умножить на два?»
Решил это выяснить на sed:
$ sed -f ./1.sed
2+2*2
;2+;2*;2
::+::*::
::+::*:
::+::;::*
::+::::
::::::
6


**Сам исходник**
s/[0-9]/;&/gp
s/0//g; s/1/:/g; s/2/::/g; s/3/:::/g; s/4/::::/g; s/5/:::::/g; s/6/::::::/g; s/7/:::::::/g; s/8/::::::::/g; s/9/:::::::::/g

: ;; s/:;/;::::::::::/gp; t ;

s/;//gp

s/*:/*/gp

: *;
s/\(:*\)\*:/\1;\1*/gp;
t *

s/*//g
s/;//gp

s/+//gp

: -; s/:-:/-/gp; t -

s/-$//gp

: ?
s/::::::::::/;/gp
s/;\([0-9]*\)$/;0\1/p
s/:::::::::/9/; s/::::::::/8/; s/:::::::/7/; s/::::::/6/; s/:::::/5/; s/::::/4/; s/:::/3/; s/::/2/; s/:/1/
s/;/:/gp
t ?

s/^$/0/


Меня хватило на реализацию операций +-\*, до деления ход не дошёл.
Практической пользы не ищите — здесь её нет. [][1]

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

[>] Использование custom functions в парсерах OSSIM
habra.16
habrabot(difrex,1) — All
2016-07-25 20:30:03


Доброго дня, уважаемые!
В продолжение моей [статьи][1] хочу рассмотреть и поделиться опытом работы с функционалом «custom functions», используемом в OSSIM. Это функции, которые предназначены для обработки полученной вследствие разбора (парсинга) журналов событий информации. Обработка может заключаться в разрешении имени по IP адресу, определении геолокации и всего того, на что хватит фантазии. В примере ниже я разберу вариант использования «custom functions» для дополнительного парсинга полученной информации. [Читать дальше →][2]

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

[>] [Перевод] Переход от режима Hand в Intel RealSense SDK R4 (v6.0) к режиму Cursor в Intel RealSense SDK 2016 R1
habra.16
habrabot(difrex,1) — All
2016-07-25 20:30:03


![][1]
После появления камеры Intel RealSense [SR300][2] и пакета [Intel RealSense SDK 2016 R1][3] появился новый режим взаимодействия с помощью жестов — режим указателя ([Cursor][4]), доступный только при использовании камеры SR300. В этом учебном руководстве описываются изменения кода, необходимые для задействования этой новой функциональности.
[Читать дальше →][5]

[1]: https://habrastorage.org/files/639/c23/a4c/639c23a4c6594eefbb539b2c420d1e1e.jpg
[2]: https://software.intel.com/en-us/RealSense/SR300Camera
[3]: https://software.intel.com/en-us/intel-realsense-sdk
[4]: https://software.intel.com/en-us/blogs/2016/02/15/realsense-cursor-mode
[5]: https://habrahabr.ru/post/306010/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что такое творчество
habra.16
habrabot(difrex,1) — All
2016-07-25 20:30:03


Главное в статье для неосиляторов: творчество — это постановка новых проблем, задач, их решение, а так же создание новых способов (алгоритмов) решения уже решённых задач. В посте будет рассматриваться модель творчества, компиляция материалов нескольких авторов. Для умеренных осиляторов [презентация][1]. Остальных приглашаю в статью.



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

[1]: https://docs.google.com/presentation/d/1gp-kwFHVYf0PlG50lEGkFoaj-J8fYYd_giaRGpAfgX8/edit#slide=id.p
[2]: https://habrahabr.ru/post/304456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как на самом деле устроена торговля на бирже: Простой алгоритм (часть 1)
habra.16
habrabot(difrex,1) — All
2016-07-26 11:30:03


[![][1]][2]

_/ фото [yuan2003 CC][3]_

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

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

[1]: https://habrastorage.org/files/f39/73d/839/f3973d839ae148468e947775aa7f32db.jpg
[2]: https://habrahabr.ru/company/itinvest/blog/306392/
[3]: https://www.flickr.com/photos/yuan2003/4690243944/in/album-72157624249839994/
[4]: https://www.chrisstucchio.com/blog/2012/hft_apology.html
[5]: https://habrahabr.ru/post/306392/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Управление Docker проектом со множеством git репозиториев
habra.16
habrabot(difrex,1) — All
2016-07-26 12:00:04


Команда, в которой я работаю, использует микросервисную организацию в проектах.
У каждого микросервиса свой репозиторий. Каждый микросервис это docker контейнер.
Для среды разработки, чтобы запустить все вместе, мы используем docker-compose.



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



Мы столкнулись с двумя проблемами:


1. При первоначальном разворачивании среды разработки, приходится обьяснять программисту, либо писать скрипт инициализации, который склонирует и создаст необходимую иерархию папок из нескольких репозиториев.
2. docker-compose не может собрать приложение, а потом упаковать в идижд. он умеет только запускать `docker build`.

Для решения этих проблем мы сделали управляющий скрипт docker-project, который оказался очень удобным в работе.
Чем мы и хотим поделиться с open-source сообществом.

[Далее][1]

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

[>] Настройка ssh callback на сервере в связке с Ansible
habra.16
habrabot(difrex,1) — All
2016-07-26 12:30:03


![][1]Всем известно, что с помощью ssh можно делать перенаправление портов (создавать туннели). Еще из мануала по ssh вы могли узнать, что OpenSSH умеет динамически открывать порты для удаленного перенаправления и выполнять строго определенные команды. Также всем известно, что для Ansible (не считая Tower) нет такого понятия как сервер и клиент (в смысле ansible-server/ansible-agent) — есть сценарий (playbook) который можно выполнить как локально, так и удаленно через ssh-соединение. Еще есть Ansible-pull, это скрипт который проверяет git-репозиторий с вашими плейбуками и при наличии изменений запускает плейбук для применения обновлений. Там где нельзя пушить в большинстве случаев можно использовать pull, но бывают исключения.

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

[1]: https://habrastorage.org/files/e26/4cf/d00/e264cfd00615446985cb72e1f3db34db.jpg
[2]: http://docs.ansible.com/ansible-tower/2.2.0/html/userguide/job_templates.html#ug-provisioning-callbacks
[3]: https://habrahabr.ru/post/306382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Все под контролем: защищаем корпоративные разговоры. Часть 2: защищенный телефонный аппарат
habra.16
habrabot(difrex,1) — All
2016-07-26 13:30:03


В рамках продолжения описания проекта [Tottoli GSM][1] «[Все под контролем: защищаем корпоративные разговоры][2]», мы решили описать клиентскую часть, так как она вызвала наибольший интерес. По условиям проекта необходимо было обеспечить максимальную безопасность коммуникаций сотрудников даже при их нахождении вне локальной сети.
![][3]
[Читать дальше →][4]

[1]: https://tottoli-gsm.com/ru/
[2]: https://habrahabr.ru/company/tottoli_gsm/blog/305586/
[3]: https://habrastorage.org/files/a7d/b5e/39c/a7db5e39c4bf4d24aedf83bca8bf146f.jpg
[4]: https://habrahabr.ru/post/306370/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Навыки и требования к специалистам по информационной безопасности
habra.16
habrabot(difrex,1) — All
2016-07-26 15:00:03


![][1]

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

В данной статье будет раскрыта тема востребованности специалистов по информационной безопасности, специфика требований и навыков.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/c78/078/1b2/c780781b2d54471fb48cb3a74b89c1e6.jpg
[2]: https://habrahabr.ru/post/306336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Даты среди цифр числа Пи: некоторые мысли с позиции статистики и нумерологии
habra.16
habrabot(difrex,1) — All
2016-07-26 15:30:04


![][1]


_Перевод поста Майкла Тротта (Michael Trott) "[Dates Everywhere in Pi(e)! Some Statistical and Numerological Musings about the Occurrences of Dates in the Digits of Pi][2]".
Код, приведенный в статье, можно скачать [здесь][3].
Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][4] за помощь в переводе и подготовке публикации_
----
Содержание
[Получим все даты за последние 100 лет][5]
[Найдём все даты в цифрах числа пи][6]
[Статистика всех дат][7]
[Первые появления дат][8]
[Даты в других представлениях и других константах][9]
----
В недавнем своём посте (см. перевод поста "[3/14/15 9:26:53 Празднование «Дня числа Пи» века, а также рассказ о том, как получить свою очень личную частичку числа пи][10]" на Хабре) Стивен Вольфрам писал об уникальном положении _векового дня числа пи_ и представил разные примеры содержания дат в цифрах числа пи (здесь и далее — в десятичном представлении). В этом посте я рассмотрю статистику распределений всех возможных дат за последние 100 лет в первых 10 миллионах цифр числа пи. Мы увидим, что 99,998% цифр представляют собой какую-то дату, и что можно обнаружить миллионы дат в первых десяти миллионах цифр числа пи.

Я сосредоточусь на датах, которые могут быть заданы не более чем шестью цифрами. То есть я смогу одназначно задавать даты в промежутке длительностью в 36 525 дней, начиная с 15 марта 1915 года и заканчивая 14 марта 2015 года.
[Читать дальше о датах в цифрах числа Пи...][11]

[1]: https://habrastorage.org/files/cf0/79e/b75/cf079eb75abb4abf84c6c50b92ca66c0.png
[2]: http://blog.wolfram.com/2015/06/23/dates-everywhere-in-pie-some-statistical-and-numerological-musings-about-the-occurrences-of-dates-in-the-digits-of-pi/
[3]: http://blog.wolfram.com/data/uploads/2015/06/Dates-Everywhere-in-Pie-Blog-Post.cdf
[4]: https://habrahabr.ru/users/kirillguzenko/
[5]: https://habrahabr.ru/company/wolfram/blog/306420/#1
[6]: https://habrahabr.ru/company/wolfram/blog/306420/#2
[7]: https://habrahabr.ru/company/wolfram/blog/306420/#3
[8]: https://habrahabr.ru/company/wolfram/blog/306420/#4
[9]: https://habrahabr.ru/company/wolfram/blog/306420/#5
[10]: https://habrahabr.ru/company/wolfram/blog/252947/
[11]: https://habrahabr.ru/post/306420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О том, как мы на PHP запускали настоящий MS Excel и что из этого вышло
habra.16
habrabot(difrex,1) — All
2016-07-26 17:00:04


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

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

**Дано:**
* Многие наши партнёры (скажем прямо — это крупные банки) любят считать что-то в Excel. Причем «любят» — это очень нежно сказано. Сложнейшие скоринговые модели могут быть «запрограммированы» в Excel, в файле из сотни листов с десятками макросов
* Перевести «программы», написанные в Excel на какой-либо язык программирования — практически нереально. Это займет уйму времени, а проблема постоянного обновления и проверки корректности делает такую задачу и вовсе нерешаемой

**Требуется:**
* Основная информационная система нашей компании написана на PHP. Она содержит в себе как веб-интерфейсы, так и множество консольных сервисов и воркеров.
* С этими «программами» в Excel нужно как-то взаимодействовать из консольных приложений на PHP — передавать в них данные, обсчитывать, получать результаты

Некоторое время нам хватало возможностей популярной библиотеки PHPExcel. Но когда от бизнеса поступило очередное требование «нужно, чтобы работали макросы, и еще бы хорошо всё это сохранять в PDF», стало понятно, что выбранный путь — тупиковый. Нужно не парсить файлы xlsx, не имитировать просчёт, и даже не использовать Open Office, а научиться взаимодействовать с «настоящим» Microsoft Excel.

![][1]

[Что из этого вышло - под катом!][2]

[1]: https://habrastorage.org/files/9b9/482/ce7/9b9482ce7166477585b4b147967e7aa8.png
[2]: https://habrahabr.ru/post/306408/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Критические уязвимости в Drupal: Подробности и эксплоиты
habra.16
habrabot(difrex,1) — All
2016-07-26 18:00:04


[![image][1]][2]

Команда безопасности проекта Drupal [опубликовала][3] исправления для целого ряда критических уязвимостей. Ошибки безопасности затрагивают как популярные плагины, так и ядро системы.

Уязвимости обнаружены в модулях [RESTful Web Services][4] (используется для предоставления REST API к функциям Drupal), [Coder][5] (модуль анализа кода и миграции для старых версий) и [Webform Multiple File Upload][6] (добавляет компонент формы для загрузки пользовательских файлов). В ядре исправлена уязвимость [httpoxy][7], о которой мы уже писали в блоге.

Согласно бюллетеню безопасности [PSA-2016-001][8] уязвимости затрагивают до 10000 сайтов, на которых установлены указанные модули. Бюллетень PSA-2016-002 подтверждает наличие уязвимости httpoxy в восьмой ветке Drupal, где используется сторонняя библиотека Guzzle для осуществления HTTP-запросов, при этом более ранние версии Drupal 7.x не подвержены данной уязвимости.

В сети уже опубликованы эксплоиты, использующие данные уязвимости. В нашем сегодняшнем материале — их более подробное описание.
[Читать дальше →][9]

[1]: https://habrastorage.org/getpro/habr/post_images/312/342/139/312342139e6ef6bdbe6e0c62b1249063.png
[2]: https://habrahabr.ru/company/pt/blog/306446/
[3]: https://www.drupal.org/security/contrib
[4]: https://www.drupal.org/node/2765567
[5]: https://www.drupal.org/node/2765575
[6]: https://www.drupal.org/node/2765573
[7]: https://habrahabr.ru/company/pt/blog/306176/
[8]: https://www.drupal.org/psa-2016-001
[9]: https://habrahabr.ru/post/306446/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Мифы и легенды о переполнении целых чисел в Rust
habra.16
habrabot(difrex,1) — All
2016-07-26 18:30:03


Примитивные целочисленные типы, поддерживаемые процессорами, являются ограниченным приближением к бесконечному набору целых чисел, которыми мы привыкли оперировать в реальной жизни. Это ограниченное представление не всегда совпадает с "реальными" числами, например `255_u8 + 1 == 0`. Зачастую программист забывает об этой разнице, что легко может приводить к багам.

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

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

[1]: https://habrahabr.ru/post/281370/
[2]: https://doc.rust-lang.org/std/result/#results-must-be-used
[3]: https://en.wikipedia.org/wiki/Integer_overflow
[4]: https://habrahabr.ru/post/282958/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Критические уязвимости в Drupal: подробности и эксплоиты
habra.16
habrabot(difrex,1) — All
2016-07-26 18:30:03


[![image][1]][2]

Команда безопасности проекта Drupal [опубликовала][3] исправления для целого ряда критических уязвимостей. Ошибки безопасности затрагивают как популярные плагины, так и ядро системы.

Уязвимости обнаружены в модулях [RESTful Web Services][4] (используется для предоставления REST API к функциям Drupal), [Coder][5] (модуль анализа кода и миграции для старых версий) и [Webform Multiple File Upload][6] (добавляет компонент формы для загрузки пользовательских файлов). В ядре исправлена уязвимость [httpoxy][7], о которой мы уже писали в блоге.

Согласно бюллетеню безопасности [PSA-2016-001][8] уязвимости затрагивают до 10000 сайтов, на которых установлены указанные модули. Бюллетень [PSA-2016-002][9] подтверждает наличие уязвимости httpoxy в восьмой ветке Drupal, где используется сторонняя библиотека Guzzle для осуществления HTTP-запросов, при этом более ранние версии Drupal 7.x не подвержены данной уязвимости.

В сети уже опубликованы эксплоиты, использующие данные уязвимости. В нашем сегодняшнем материале — их более подробное описание.
[Читать дальше →][10]

[1]: https://habrastorage.org/getpro/habr/post_images/312/342/139/312342139e6ef6bdbe6e0c62b1249063.png
[2]: https://habrahabr.ru/company/pt/blog/306446/
[3]: https://www.drupal.org/security/contrib
[4]: https://www.drupal.org/node/2765567
[5]: https://www.drupal.org/node/2765575
[6]: https://www.drupal.org/node/2765573
[7]: https://habrahabr.ru/company/pt/blog/306176/
[8]: https://www.drupal.org/psa-2016-001
[9]: https://www.drupal.org/psa-2016-002
[10]: https://habrahabr.ru/post/306446/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Часть 2. СППР Универсальные алгоритмы – Алгоритм для службы поддержки
habra.16
habrabot(difrex,1) — All
2016-07-26 19:00:03


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

Исходное состояние – я руководил службой внедрения и сопровождения в частной медицинской компании. Филиальная сеть отделений в регионах, которая работает под управлением единой системы. Так же используется схожее оборудование на всех объектах. Фактически все оборудование подключено в систему и отдает данные (диализные аппараты, лабораторные анализаторы, аппараты УЗИ и кардиографы, измерители веса и давления, водоподготовка, система вентиляции, датчики температуры и влажности).

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

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

[>] Простые сладкие приложения с Kivy
habra.16
habrabot(difrex,1) — All
2016-07-26 22:00:03


![][1]

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



Возможно, для вас будет новостью, но разрабатывать мобильные приложения с функционалом, который доступен Java разработчикам, под Android с помощью фреймворка Kivy не просто просто, а очень просто! Именно этого правила я придерживаюсь, создавая свои проекты с Python + Kivy — разработка должна быть максимально простой и быстрой. Как щелчок пальцами.



На новичков подаваемая информация не расчитана, я не буду на пальцах объяснять, что, откуда и куда. Думаю, те, кто читает данную статью, обладают достаточными для понимания материала, знаниями. К тому же, Kivy, как я уже только что написал, очень простой фреймворк и вся документация с примерами использования находится в исходниках!

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

[1]: https://habrastorage.org/files/b79/a3c/c29/b79a3cc297aa48dab11048324eacd374.jpg
[2]: https://habrahabr.ru/post/306300/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Новая версия OpenVZ
habra.16
habrabot(difrex,1) — All
2016-07-26 22:30:03




Весной прошлого года мы [рассказали][1] почему Virtuozzo переходит на открытую модель разработки и [какой смысл открывать][2] исходный код коммерческого продукта. Вчера мы [анонсировали][3] выпуск финальной версии OpenVZ 7.0, образованного в результате слияния кодовых баз открытой системы контейнерной виртуализации OpenVZ и коммерческого продукта Virtuozzo (Parallels Cloud Server). Новый выпуск OpenVZ содержит множество изменений и мы по порядку расскажем о каждом из них.
[Читать дальше →][4]

[1]: https://habrahabr.ru/company/parallels/blog/256279/
[2]: https://habrahabr.ru/company/parallels/blog/259385/
[3]: https://lists.openvz.org/pipermail/announce/2016-July/000664.html
[4]: https://habrahabr.ru/post/306466/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Простой, универсальный и надёжный язык управления принтером IDOL
habra.16
habrabot(difrex,1) — All
2016-07-27 12:00:04


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

Язык разметки страницы, он же язык разметки документа, он же PDL, что расшифровывается как Page Description Language и переводится дословно как язык, описывающий страницу. Понятие же «язык управления принтером» пришло из перевода выражения Printer Control Language или сокращенно PCL.
[Читать дальше →][1]

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

[>] «Пока не село Солнце»: Стоит ли заставлять программистов работать 80 часов в неделю
habra.16
habrabot(difrex,1) — All
2016-07-27 12:00:04


[][1]

/ фото [Joshua Blount][2] [CC][3]

В нашем [блоге][4] на Хабре мы пишем о том, как используются облачные сервисы и каким спектром возможностей [обладает][5] [IaaS][6]. Также мы затрагиваем тему эффективной разработки сервисов и приложений, например, на прошлой неделе мы опубликовали [материал][7], в котором дали несколько советов руководителям о том, как эффективно взаимодействовать с командой разработки.

Сегодня нам бы хотелось затронуть тему продолжительности рабочего дня. Один из пользователей социального сервиса Quora задал [вопрос][8], который породил бурное обсуждение среди разработчиков. Он пытался выяснить, как заставить программистов оставаться в офисе 80 и более часов в неделю. Нас заинтересовала эта тема и мы решили посмотреть, что думают на этот счет сами разработчики.
[Читать дальше →][9]

[1]: https://habrahabr.ru/company/it-grad/blog/306216/
[2]: https://www.flickr.com/photos/stickwithjosh/
[3]: https://creativecommons.org/licenses/by/2.0/
[4]: https://habrahabr.ru/company/it-grad/
[5]: https://habrahabr.ru/company/it-grad/blog/304654/
[6]: http://www.it-grad.ru/iaas/iaas-vmware/virtual-infrastructure/
[7]: https://habrahabr.ru/company/it-grad/blog/304652/
[8]: https://www.quora.com/How-do-you-make-programmers-work-60-80-hours-per-week
[9]: https://habrahabr.ru/post/306216/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Деньги не спят: кто побеждает в противостоянии хакеров и финансовых организаций
habra.16
habrabot(difrex,1) — All
2016-07-27 16:30:03


[![][1]][2]

/ фото [The Preiser Project CC][3]

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

[1]: https://habrastorage.org/files/aed/031/114/aed031114b484d62a23b62feb4a9e147.jpg
[2]: https://habrahabr.ru/company/itinvest/blog/306534/
[3]: https://www.flickr.com/photos/thepreiserproject/12102280105/in/photolist-jrrmeP-58caSN-hMoLVq-amAu7-nse15Y-bt5yG3-4FERTh-7Vo9nc-8oDdGs-qet917-nsdY1Z-o5Bd3s-bFZpVK-nse14q-nJHANF-9LecQG-5fE2p9-nses6p-4q9N5q-9Lbq7v-8Z1gcc-av4q76-asfvxN-nJwPnY-5AbUSH-nJqBvn-bWVguK-9fLSnv-aiCUF6-bFZpyg-nserFg-9RaRoA-9ifQo3-nGF5vU-4q9MMh-nsdZh5-6ksg44-6iJqqH-4FAD3X-4q9Mpo-7Ufa6-5prHdk-5prULZ-chCNbL-5prHdz-5phntn-5prHdr-nsdZNA-nGF6eN-asj4ZN
[4]: https://habrahabr.ru/post/306534/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Видео докладов с DevConf 2016
habra.16
habrabot(difrex,1) — All
2016-07-27 17:00:04


17-го июня в инновационном центре “Сколково” прошла очередная ежегодная конференция DevConf, а Badoo в очередной раз снимали видео выступлений. Программа была богата на именитых спикеров и интересные доклады, поэтому сделать подборку из самых «вкусных» выступлений было крайне сложно. Но мы, как минимум, постарались…

Познавательного вам просмотра!


#### «Развитие ветки PHP-7», Дмитрий Стогов, Zend Technologies




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

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

[>] [Из песочницы] Универсальный https c использованием ГОСТ сертификата
habra.16
habrabot(difrex,1) — All
2016-07-27 17:30:03


При попытках организовать https-соединения для различных web-сервисов с использованием ГОСТ-шифрования всегда оставались вопросы с посетителями, браузеры которых не поддерживают ГОСТ-алгоритмы. Логичным казалось решение при установке https-соединения отдавать клиенту сертификат в зависимости от поддерживаемых его системой алгоритмов, но до недавнего времени практические реализации такого подхода мне не встречались.
[Читать дальше →][1]

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

[>] Оверинженеринг при документировании ViewSets Django REST Framework
habra.16
habrabot(difrex,1) — All
2016-07-27 23:00:03


Случается в нашей жизни, уважаемые коллеги, что хочешь сделать как проще, а получается как у новичка. И, что интересно, существует не мало мощных инструментов, которые предлагают простое решение в обмен на душу. Я имею ввиду, что цена абстракции бывает несоразмерна красоте её использования. Для меня примером такого неравноценного обмена стал Django Rest Framework 3.4.0, его механизм ViewSets и необходимость вывести подробную документацию по разрабатываемому API.

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

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

[>] [Из песочницы] Разработка личной системы управления
habra.16
habrabot(difrex,1) — All
2016-07-28 10:00:02


### Мотивация


Современное развитие технологий движется в сторону предсказания поведения человека на основании отслеживания всего массива его активностей в виртуальной и физической реальности (big data). В этом есть позитивный момент, поскольку если вы видите, куда человек идет, то можно ему показать наиболее короткий и эффективный путь. Но, по закону единства и борьбы противоположностей, здесь возникает следующая угроза (для маркетологов наоборот перспектива), как я её вижу — это возможность не предсказывать поведение, а формировать предсказуемое поведение.

Если интересно, что с этим может поделать отдельный человек — добро пожаловать под кат.
[Читать дальше →][1]

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

[>] Информационное сокрытие в PDF документах
habra.16
habrabot(difrex,1) — All
2016-07-28 11:00:03


Существует масса способов _информационного сокрытия_ одних данных внутри других данных. Самое частое, что обычно вспоминают – это стеганографию в изображениях, аудио и видео информации.

Однако контейнеры этим не исчерпываются. Совместно с двумя разгильдяями очень талантливыми студентами (а именно с [lancerx][1] и с [PavelBatusov][2]) мы решили разработать простенький just4fun-проектик информационного сокрытия в электронных документах.

Ссылка на то, что получилось (не судите строго): [pdf.stego.su][3]
(примеры PDF можно [взять здесь][4])

Интерфейс довольного пользователя представлен на кавайной картинке:
![][5]

[Дальше читать][6]

[1]: https://habrahabr.ru/users/lancerx/
[2]: https://habrahabr.ru/users/pavelbatusov/
[3]: http://pdf.stego.su/
[4]: https://yadi.sk/d/hWQQnLCPth92m
[5]: https://habrastorage.org/files/d26/a48/8f9/d26a488f9603446fa145b1c53d525b4f.png
[6]: https://habrahabr.ru/post/301346/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Наши центры разработки по стране с «телепортами» до любого города
habra.16
habrabot(difrex,1) — All
2016-07-28 11:30:04


![][1]
_Типовое рабочее место: два монитора, дорожный ноутбук, лампа, интернет_

У нас очень много работы в разработке, и далеко не вся она требует присутствия в Москве, и далеко не всех разработчиков можно легко найти в столице. **Поэтому принцип довольно простой: находим разработчиков в городе, где им приятно жить, снимаем там хороший и удобно расположенный офис и просто присылаем задачи. **Связь по сети, еда в ближайшем ресторане по абонементу. И все счастливы. Мы — тем, что получаем «головы», которых нет в Москве, по ценам города (разница с Москвой вполне окупает аренду офиса), а разработчики могут работать у себя и путешествовать по стране.

![][2]
_Тестировщик в Иркутске_

«Телепорты» сделаны так: можно поехать в любой другой такой же центр разработки на 4 недели на пробу поработать там. С сохранением зарплаты, и ещё гостиница и питание — за счёт компании. Если «порт приписки» Москва, то, перемещаясь в другой офис, надо ещё обязательно прочитать семинар.

Проекты, над которыми работают распределённо по стране, — от автоматизации АЭС до разного прикладного софта «Ленты», Мосгорсуда, Росстата и так далее.

Всего у нас сейчас 7 таких центров — от маленького офиса на 5 человек в бизнес-центре до большой региональной команды из 30 разработчиков и тестировщиков. Но, конечно, исторически пока больше всего разработчиков и тестировщиков в Москве — около 250 человек (это один из самых больших отделов в КРОК). Однако скоро процент работающих в других городах грозит приблизиться к половине. География довольно обширная: Москва (включая отдельный небольшой офис в Троицке), Петербург, Нижний Новгород, Самара, Иркутск, Пермь, Краснодар. [Читать дальше →][3]

[1]: https://habrastorage.org/files/660/ca4/86d/660ca486d2014827ada4dfdaebdbd099.jpeg
[2]: https://habrastorage.org/files/51b/3ce/718/51b3ce718f254a41b9d03d4fab6bceaa.jpeg
[3]: https://habrahabr.ru/post/306588/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] uDev tech events: Харьков, 9 августа. Better Architecture with UX-Driven Design
habra.16
habrabot(difrex,1) — All
2016-07-28 12:30:03


**Что посетить:** uDev Tech Events
**Когда:** 9 августа, вторник, 18:00
**Где:** г. Харьков, Premier Palace Hotel

**Тема встречи:** Better Architecture with UX-Driven Design

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

[1]: https://habrastorage.org/files/cd8/511/dc1/cd8511dc14984ff2911d8f895143d727.jpg
[2]: https://habrahabr.ru/post/306536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Чем меньше, тем лучше — о возможностях языков программирования
habra.16
habrabot(difrex,1) — All
2016-07-28 13:00:03


Многие языки программирования включают в себя избыточные возможности. Развитие языка включает в себя работу по их исключению.

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

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

> «Совершенство достигается не тогда, когда нечего добавить, а тогда, когда нечего убрать»
_Антуан де Сент-Экзюпери_

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

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

[>] Во 2 квартале 2016 шифровальщики возглавляют список кибер-атак
habra.16
habrabot(difrex,1) — All
2016-07-28 14:00:04


![][1]

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

Такие понятия как «цифровой дом» или «BYOD» (Bring Your Own Device) уже являются частью нашей цифровой Вселенной: все больше Интернет-пользователей работают из дома или используют свои собственные устройства как в личных, так и в профессиональных целях. Это означает, что становится все больше дыр безопасности.


##### **По[ данным антивирусной лаборатории PandaLabs][2] в течение квартала было обнаружено свыше 18 млн. новых образцов вредоносного ПО**



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

[1]: https://habrastorage.org/files/94b/339/be6/94b339be6a8e44f9a58a8a5073bdd5eb.jpg
[2]: https://pandasecurity.bitrix24.ru/~G7ODd
[3]: https://habrahabr.ru/post/306600/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Full Disk Encryption (FDE)
habra.16
habrabot(difrex,1) — All
2016-07-28 14:30:04


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

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

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

[>] [Перевод] Rust: & и ref в паттернах
habra.16
habrabot(difrex,1) — All
2016-07-28 15:00:04


![][1]
Как вам, думаю, известно, Раст входит в число языков реализующих [сопоставление с образцом][2] (pattern matching). В случае если вам незнаком данный термин, вы можете думать о нём как об обобщёном **switch** выражении в котором мы сравниваем объекты не только по значению, но и по _структуре_:

match hashmap.get(&key) {
Some(value) => do_something_with(value),
None => { panic!("Oh noes!"); },
}

Разумеется сравнением дело не ограничивается. Как вы можете видеть в примере выше, объекты так же могут быть _деструктурированы_ во время сопоставления (**Some(value)**) и их части присвоены другим переменным (**value**), которые могут быть далее использованы в соответствующей ветви **match** выражения.

Изящно, не правда ли? В Расте сопоставление с образцом это хлеб и масло не только для **match**, но и для **for**, (**if**) **let** и даже для обыкновенных аргументов функции.

Однако, долгое время я достаточно смутно представлял себе что происходит в случае когда мы добавляем к сопоставлению ссылки и заимствования. **&** и **ref** являются двумя «операторами» часто используемых при этом. Разнице между ними и будет посвящена данная статья.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/afc/ae4/dad/afcae4dad2184b1da76e3b23cf53a9bb.png
[2]: https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BF%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D1%86%D0%BE%D0%BC
[3]: https://habrahabr.ru/post/306582/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Распределенное выполнение Python-задач с использованием Apache Mesos. Опыт Яндекса
habra.16
habrabot(difrex,1) — All
2016-07-28 17:30:04


Подготовка релиза картографических данных включают в себя запуск массовой обработки данных. Некоторые задачи хорошо ложатся на идеологию Map-Reduce. В этом случае задача инфраструктуры традиционно решается использованием Hadoop или [YT][1]



В реальности часть задач таковы, что разбиение их на маленькие подзадачи невозможно, или нецелесообразно (из-за наличия существующего решения и дорогой разработки, например). Для этого мы в Яндекс.Картах разработали и используем свою систему планирования и выполнения взаимосвязанных задач. Одним из элементов такой системы является планировщик, запускающий задачи на кластере с учетом доступных ресурсов.
![Workflow Graph][2]



Эта статья о том как мы решили эту задачу с использованием [Apache Mesos][3].

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

[1]: https://events.yandex.ru/lib/talks/1091/
[2]: https://habrastorage.org/files/1a4/37b/092/1a437b092908486b9edec66bc74d2d55.png
[3]: http://mesos.apache.org/
[4]: https://habrahabr.ru/post/306548/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как поступить с найденной уязвимостью и что делать если нет Bug Bounty программы?
habra.16
habrabot(difrex,1) — All
2016-07-28 23:30:04


Если у вас есть информация об уязвимости и вы думаете сколько благодарности за нее вы сможете получить, то ни в коем случае не берите пример со случаев с такими компаниями, как [Киевстар][1], [МТС][2], [ПриватБанк][3], да и многие другие. Ведь самое худшее, во что можно оценить стоимость уязвимости, это оплата услугами компании.

![][4]

После моей недавней статьи: “[Почему в Украине нет белых хакеров или история взлома Киевстар][5]”, которая попала в рассылку “Самое интересное на Geektimes”, я внимательно ознакомился с комментариями и пообщавшись с некоторыми моими читателями, я понял, что надавил на больной мозоль.
[Читать дальше →][6]

[1]: https://habrahabr.ru/post/305706/
[2]: https://geektimes.ru/post/278744/#comment_9455492
[3]: https://geektimes.ru/post/278744/#comment_9455650
[4]: https://habrastorage.org/files/8b3/552/e04/8b3552e047dd4ca9a7b855ff6138d6ec.jpg
[5]: https://geektimes.ru/post/278744
[6]: https://habrahabr.ru/post/306634/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] OpenGL-Tutorial. Урок 1. Создание окна
habra.16
habrabot(difrex,1) — All
2016-07-29 11:00:03


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


Если появляется желание начать изучать OpenGL — то чаще всего натыкаешься на уроки NeHe и сразу начинаешь с устаревшего OpenGL. Но в интернете есть хороший набор уроков по новому OpenGL 3.3, поддерживаемый сообществом. Сам набор разделен на 3 группы: Базовые уроки, Продвинутые уроки и Всякое. Я постараюсь выпускать по статье на каждый урок, а в начале каждой статьи буду оставлять небольшое содержание. Спасибо.
[Читать дальше →][1]

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

[>] С днем системного администратора
habra.16
habrabot(difrex,1) — All
2016-07-29 11:30:04


Поздравляю всех с праздником. С днем системного администратора, коллеги!

Желаю долгого аптайма, безглючного железа, стабильного коннекта, адекватных пользователей и пряморуких электриков!

![][1] [][2]

[1]: https://habrastorage.org/files/3aa/27d/ed5/3aa27ded572744cebde0193297e28a2c.jpg
[2]: https://habrahabr.ru/post/306676/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Positive Development User Group Picnic: безопасная разработка для каждого
habra.16
habrabot(difrex,1) — All
2016-07-29 12:30:04


[![][1]][2]

Компания Positive Technologies организует **Positive Development User Group Picnic** — закрытую неформальную встречу для разработчиков и других IТ-специалистов. На ней мы будем рады видеть тех, кто только планирует научиться безопасной разработке или уже имеет опыт создания защищенных приложений. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c84/af5/e61/c84af5e61f8c4863ad5786f4979f2516.JPG
[2]: https://habrahabr.ru/company/pt/blog/306670/
[3]: https://habrahabr.ru/post/306670/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Кодогенерация в языке Go
habra.16
habrabot(difrex,1) — All
2016-07-29 13:00:04


В данной статье хотелось бы рассмотреть некоторые возможности кодогенарации в рамках языка Go, которые могут частично заменить встроенную рефлексию и не потерять типобезопасность на этапе компиляции.
Язык программирования Go предоставляет мощные инструменты для кодогенерации. Очень часто Go ругают за отсутствие обобщений (generics) и это в самом деле может стать проблемой. И вот тут на помощь приходит кодогенерация которая на первый взгляд довольно трудна для небольших рутинных операций, но тем не менее является достаточно гибким инструментом. Уже существует некоторое количество готовых библиотек кодогенерации покрывающих базовые потребности в обобщениях. Это и «эталонный» [stringer][1] и более полезные [jsonenums][2] с [ffjson][3] А мощный [gen][4] и вовсе позволяет добавить в Go немного функциональщины, в том числе добавляет аналог так не хватаемого многим forEach для пользовательских типов. Ко всему прочему gen довольно легко расширяется собственными генераторами. К сожалению gen ограничен кодогенерацией методов для конкретных типов.
Собственно тему кодогенерации я решил затронуть не от хорошей жизни, а из за того, что столкнулся с небольшой задачей для которой не смог найти другого подходящего решения.
[Читать дальше →][5]

[1]: https://godoc.org/golang.org/x/tools/cmd/stringer
[2]: https://github.com/campoy/jsonenums
[3]: https://github.com/pquerna/ffjson
[4]: https://clipperhouse.github.io/gen/
[5]: https://habrahabr.ru/post/306672/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Уязвимости веб-приложений: под ударом пользователи
habra.16
habrabot(difrex,1) — All
2016-07-29 13:30:04


[![][1]][2]

В 70% веб-сайтов есть критически опасные уязвимости, позволяющие злоумышленникам получать доступ к сайту и причинять серьёзные неприятности не только его владельцу, но и многочисленным пользователям. По средствам разработки самыми дырявыми оказались в 2015 году приложения на Java, значительно возросла доля ресурсов с уязвимостями высокой степени риска на базе серверов Microsoft IIS. При этом использование автоматизированного анализатора исходного кода позволяет выявить в 3 раза больше опасных уязвимостей, чем ручные методы анализа.

Такие выводы содержатся в исследовании компании Positive Technologies на основе статистики, собранной в ходе работ по анализу защищенности веб-приложений в 2015 году. Сравнение с данными аналогичных исследований 2014 и 2013 годов дает возможность оценить динамику развития современных веб-приложений с точки зрения ИБ. В данной статье представлены основные результаты исследования. [Читать дальше →][3]

[1]: https://habrastorage.org/files/3a1/0f9/361/3a10f9361dcc48b78e3cbe452120a2c3.png
[2]: https://habrahabr.ru/company/pt/blog/306622/
[3]: https://habrahabr.ru/post/306622/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] OpenGL-Tutorial. Урок 2. Первый треугольник
habra.16
habrabot(difrex,1) — All
2016-07-29 13:30:04


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


В [прошлом][1] уроке Вы научились создавать окно и собирать примеры. В этом уроке Вы научитесь рисовать объекты! Что же, прошу под кат.
[Читать дальше →][2]

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

[>] Облачное хранилище: новые функции API
habra.16
habrabot(difrex,1) — All
2016-07-29 13:30:04


![][1]
Недавно мы рассказали о [переходе на новую платформу][2], благодаря которой нам удалось улучшить работу облачного хранилища. Мы подробно описали, как мы доработали логику и архитектуру хранилища и переписали некоторые компоненты на Go, благодаря чему всё стало работать гораздо быстрее и стабильнее, чем раньше.

При этом мы рассказали далеко не обо всём: за время работы над API мы запустили несколько новых функций, которые, как мы надеемся, окажутся полезными для вас.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/0a8/a0b/be6/0a8a0bbe6b664ee1929229d5625fdcab.png
[2]: https://habrahabr.ru/company/selectel/blog/304032/
[3]: https://habrahabr.ru/post/306560/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Графический пароль не дает смотрящему украсть себя
habra.16
habrabot(difrex,1) — All
2016-07-29 17:00:04


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

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

[>] Запуск сценариев автоматизации sparrow на удаленных серверах с помощью инструменатрия SparrowDO/SparrowUP
habra.16
habrabot(difrex,1) — All
2016-07-29 17:00:04


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



До недавнего времени запуск подобных сценариев был ограничен консольным клиентом ( [sparrow][2] или [sparrowdo][3] ), сегодня я бы хотел презентовать пилотный проект по автоматической установке и запуску sparrow сценариев на удаленных серверах посредством централизованного web сервиса — [SparrowUP][4].


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

[1]: https://sparrowhub.org
[2]: https://github.com/melezhik/sparrow
[3]: https://github.com/melezhik/sparrowdo
[4]: https://github.com/melezhik/sparrowup
[5]: https://habrahabr.ru/post/306684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему в Украине всё таки есть белые хакеры
habra.16
habrabot(difrex,1) — All
2016-07-29 17:00:04


Эта статья будет ответом на недавнюю [публикацию][1] Владимира Таратушка. Причин написания статьи у меня было несколько. Первая — это показать, что белые хакеры в Украине есть. Существуют они благодаря одной из программ поощрения поиска уязвимостей, которую [проводит][2] Приватбанк. Следующая причина — это рассказать свою success story работы с одним из крупнейшим банком Украины в рамках данной программы. Так же я хочу показать эффективность работы такой программы на реальном примере и сподвигнуть к организации таких программ те компании, которые по каким то причинам сомневаются или не видят в них реальных плюсов. Ну и последняя причина — показать будущим и настоящим ресёчерам, что участие в баг-баунти программах интересно, этично и материально выгодно.
[Читать дальше →][3]

[1]: https://geektimes.ru/post/278744/
[2]: https://privatbank.ua/ru/safeness/
[3]: https://habrahabr.ru/post/306694/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Rust: for и итераторы
habra.16
habrabot(difrex,1) — All
2016-07-29 18:30:04


([предыдущая статья][1])
![][2]
В данной статье мы обсудим **for** циклы, а так же родственные понятия итераторов и «итерируемых объектов».

В зависимости от вашего предыдущего опыта с другими языками программирования данные концепции могут показаться очень знакомыми в плане синтаксиса и семантики, или же совершенно новыми и непонятными. Наиболее близкие их аналоги можно найти в Питоне, но, думаю, программисты на Java, C# или же (современном) C++ так же увидят много пересечений с тем что есть в их языках.
[Подробности][3]

[1]: https://habrahabr.ru/post/306582/
[2]: https://habrastorage.org/files/afc/ae4/dad/afcae4dad2184b1da76e3b23cf53a9bb.png
[3]: https://habrahabr.ru/post/306702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Персональный рейтинг депутатов каждому при помощи JavaScript и браузера Chrome
habra.16
habrabot(difrex,1) — All
2016-07-29 19:30:04


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



Голоса депутатов находятся на [vote.duma.gov.ru][1]. Нам остаётся проголосовать за важные для нас законопроекты в соответствии со своим видением и получить рейтинг на основе которого и делать выбор на выборах.



Я выбрал наименее затратный путь и написал JavaScript расширение для Chrome. Работа с ним организованна через консоль браузера (Ctrl + Shift + J). Бонусом я протестировал поддержку русского языка в JavaScript без препроцессоров.



[Под катом][2] вас ждёт код с комментариями и комментарии к статье.
[![][3]][4]

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

[1]: http://vote.duma.gov.ru/
[2]: https://habrahabr.ru/post/306744/
[3]: https://habrastorage.org/files/18c/d8a/9ff/18cd8a9ffa734647841323063442e33e.jpg
[4]: https://habrahabr.ru/post/306744/
[5]: https://habrahabr.ru/post/306744/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему в Украине всё-таки есть белые хакеры
habra.16
habrabot(difrex,1) — All
2016-07-29 20:00:03


Эта статья будет ответом на недавнюю [публикацию][1] Владимира Таратушка.
Причин написания статьи у меня было несколько.
Первая — это показать, что белые хакеры в Украине есть. Существуют они благодаря одной из программ поощрения поиска уязвимостей, которую [проводит][2] Приватбанк.
Следующая причина — это рассказать свою success story работы с одним из крупнейшим банком Украины в рамках данной программы.
Так же я хочу показать эффективность работы такой программы на реальном примере и сподвигнуть к организации таких программ те компании, которые по каким то причинам сомневаются или не видят в них реальных плюсов.
Ну и последняя причина — показать будущим и настоящим ресёчерам, что участие в баг-баунти программах интересно, этично и материально выгодно.
[Читать дальше →][3]

[1]: https://geektimes.ru/post/278744/
[2]: https://privatbank.ua/ru/safeness/
[3]: https://habrahabr.ru/post/306694/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Эффективное кеширование. От теории к практике
habra.16
habrabot(difrex,1) — All
2016-07-29 20:30:04


![image][1]

Как правило, статьи о кешировании начинаются за здравие, а заканчиваются [LRU][2] кешем. Попробуем переломить эту тенденцию? Начнем с того, чем LRU плох, а закончим за здравие. Я надеюсь.

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

Спрашивая на собеседованиях какие алгоритмы кеширования вы знаете — как правило слышишь в ответ, ммм… LRU Cache… Зато если спросить про алгоритмы сортировки, вероятность услышать что-то помимо «Пузырек» — значительно выше. Человек готов потратить несколько дней на поиск оптимальной библиотеки ресайза изображений или веб фреймворка, не понимая, что реализовав эффективный кеш, он может взять в принципе любую библиотеку со схожими характеристиками, так как кеш — минимизирует обращения к ней, сгладив разницу в быстродействии.

Для [Relap.io][4], как для хайлоад сервиса, кеширование особенно важно. Например, вчера мы показали рекомендации на различных сайтах 789301033 раз. Поэтому у нас густо обмазано кешем все: рекомендации, картинки, реклама и так далее.


#### **Не все кеши одинаково полезны**



Хороший пример LRU Cache.

На конкурсы алгоритмов его обычно не берут. Никто не хочет иметь ничего общего с неудачником. Сложно придумать более неэффективный алгоритм. Единственный алгоритм, у которого LRU Cache выигрывает по эффективности — это, наверно, просто очередь, например, FIFO. Тем не менее, LRU встроен везде и всюду как дефолтный и, к сожалению, часто единственный алгоритм, так как он прост в реализации.

Вам хотелось бы пользоваться сайтом, приложением или операционной системой, которая тормозит, неэффективна и жрет ресурсы как не в себя, но зато она написана на простом в реализации языке, например, условном бейсике? Если нет — добро пожаловать под кат.
[Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/7e7/6f9/fa1/7e76f9fa16c5fb09cf27fccd98e62ef5.jpg
[2]: https://habrahabr.ru/post/136758/
[3]: https://relap.io/
[4]: https://relap.io/
[5]: https://habrahabr.ru/post/306252/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Обзор физики в играх Sonic. Части 7 и 8: пружины и штуковины, суперскорости
habra.16
habrabot(difrex,1) — All
2016-07-30 11:30:04




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

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

[>] Security Week 30: PHP-порноуязвимость, подслушивание клавиатур, обход UAC в Windows 10
habra.16
habrabot(difrex,1) — All
2016-07-30 11:30:04


![][1]В среду эксперты «Лаборатории» из команды GReAT (Global Research and Analysis Team) [отвечали][2] на вопросы пользователей сайта Reddit. Одной из ключевых тем обсуждения стала аттрибуция сложных кибератак. Тема изначально непростая. По понятным причинам инициаторы таких атак никак не анонсируют свои действия, а скорее максимально затрудняют расследование, используя массу способов сохранить анонимность. Остаются только косвенные доказательства. Какие именно, можно посмотреть в [этом][3] комментарии: язык (человеческий) в коде, время компиляции вредоносных файлов (может указывать на определенный часовой пояс), типичные цели, IP-адреса, куда в итоге уводятся данные и так далее. Проблема в том, что все эти данные легко подделать, направив расследование в ложном направлении. Именно поэтому наши эксперты в своих отчетах скорее приводят факты, чем делают обобщения.

Не добавляет ясности и постоянно растущая «политическая» составляющая кибератак. Технологии проникли в нашу обычную жизнь так, что неизбежно обсуждаются не только технарями. И решения принимаются, увы, не только на основе сухих фактов. В том же треде [приводятся][4] два примера позитивного взаимодействия между экспертами и обществом: (1) совместная работа вендоров и полиции по блокированию активности троянов-вымогателей и (2) любые инициативы по обмену информацией об угрозах между исследователями и потенциальными жертвами, _безопасным_ способом. Кстати, один проект из первой категории мы недавно [анонсировали][5]: Европол, полиция Нидерландов совместно с «Лабораторией» и Intel Security запустили новый [сайт][6], на котором жертвы криптолокеров могут получить информацию для расшифровки данных без выплаты выкупа.

Впрочем, [вот этот][7] ответ из треда на Reddit мне показался лучшим:

**Вопрос**: Так как мы должны произносить Kaspersky? Каспер скай, Каспер скии или КаспЕрскии? Или как?
**Ответ**: Да.

Там же есть интересное [обсуждение][8] личной безопасности в сети, с применением Windows, Маков и Linux. Перейдем к новостям. Все выпуски дайджеста — [тут][9].
[Читать дальше →][10]

[1]: https://habrastorage.org/files/193/4c9/520/1934c952090e48639fe0a93c3facb876.jpg
[2]: https://www.reddit.com/r/IAmA/comments/4uueqa/we_are_kaspersky_labs_global_research_analysis/
[3]: https://www.reddit.com/r/IAmA/comments/4uueqa/we_are_kaspersky_labs_global_research_analysis/d5svv96
[4]: https://www.reddit.com/r/IAmA/comments/4uueqa/we_are_kaspersky_labs_global_research_analysis/d5sy1a7
[5]: http://www.kaspersky.ru/about/news/virus/2016/No-More-Ransom
[6]: https://www.nomoreransom.org/crypto-sheriff.php
[7]: https://www.reddit.com/r/IAmA/comments/4uueqa/we_are_kaspersky_labs_global_research_analysis/d5t4dbo
[8]: https://www.reddit.com/r/IAmA/comments/4uueqa/we_are_kaspersky_labs_global_research_analysis/d5szptj
[9]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[10]: https://habrahabr.ru/post/306754/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] OpenGL-Tutorial. Урок 3. Матрицы
habra.16
habrabot(difrex,1) — All
2016-07-30 19:00:03


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


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

![][2]
_КДПВ_

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

[1]: https://habrahabr.ru/post/306678/
[2]: https://habrastorage.org/files/edf/c77/8ca/edfc778ca8e7457bae298bfded12976f.png
[3]: https://habrahabr.ru/post/306722/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 ... 210