RSS
Pages: 1 ... 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 ... 210
[>] Как выбрать язык программирования?
habra.15
habrabot(difrex,1) — All
2015-12-17 14:30:02


![][1] Именно таким вопросом задалась команда Почты Mail.Ru перед написанием очередного сервиса. Основная цель такого выбора — высокая эффективность процесса разработки в рамках выбранного языка/технологии. Что влияет на этот показатель?

* Производительность;
* Наличие средств отладки и профилирования;
* Большое сообщество, позволяющее быстро найти ответы на вопросы;
* Наличие стабильных библиотек и модулей, необходимых для разработки веб-приложений;
* Количество разработчиков на рынке;
* Возможность разработки в современных IDE;
* Порог вхождения в язык.

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

[1]: https://habrastorage.org/files/cfc/193/a51/cfc193a5171e494a9eb32230201204b2.jpg
[2]: http://habrahabr.ru/post/273341/#habracut

[>] Как я 8 месяцев переписывал свою криптовалюту с PHP на Go. Часть 2
habra.15
habrabot(difrex,1) — All
2015-12-17 17:30:02


![][1] 2-я часть истории, которая началась с смс-ки от Кати «Не звони и не пиши мне больше!!!!» [Читать дальше →][2]

[1]: https://habrastorage.org/files/912/ce1/f48/912ce1f48a75415fb529d933668ed3bd.jpeg
[2]: http://habrahabr.ru/post/273333/#habracut

[>] Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем
habra.15
habrabot(difrex,1) — All
2015-12-17 23:00:02


[![][1]][2] Исследователи безопасности Гектор Марко (Hector Marco) и Исмаэль Риполл (Ismael Ripoll) [опубликовали][3] информацию об обнаруженной ими 0-day уязвимости в популярном загрузчике Grub2, который используется в большинстве Linux-системах. Эксплуатация уязвимости позволяет получить доступ к аварийной консоли Grub2 в обход пароля. Это, в свою очередь, открывает злоумышленнику возможность проведение атаки направленной на повышение привилегий в систем и доступа ко всей информации. [Читать дальше →][4]

[1]: https://habrastorage.org/files/992/deb/30e/992deb30e05c40f599617468132dacf3.png
[2]: http://habrahabr.ru/company/pt/blog/273389/
[3]: http://hmarco.org/bugs/CVE-2015-8370-Grub2-authentication-bypass.html
[4]: http://habrahabr.ru/post/273389/#habracut

[>] Установка VNC сервера, и настройка его работы поверх SSH
habra.15
habrabot(difrex,1) — All
2015-12-18 01:00:02


![][1] Да, отчего-то не все клиенты хотят работать в таком удобном и черном терминале, панель полностью не удовлетворяет их эстетические потребности, и вообще — «где мой такой любимый и удобный VNC?». В данной статье будет рассмотрен пример установки и настройки [VNC server][2] и графической оболочки ([GUI][3]) на примере OC Debian 8 jessie. [читать дальше][4]

[1]: https://habrastorage.org/files/a13/7bf/79c/a137bf79cd924f7d9f5a47eab7faf671.png
[2]: https://ru.wikipedia.org/wiki/Virtual_Network_Computing
[3]: https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F
[4]: http://habrahabr.ru/post/273201/#habracut

[>] Python->Cython->C++, да и COM в придачу: написание фреймворка для автотестов
habra.15
habrabot(difrex,1) — All
2015-12-18 11:00:03


Я думаю все в курсе о пользе автотестов. Они помогают держать код в работоспособном состоянии даже при существенных изменениях. Так же это может избавить тестировщиков от нудной ручной работы и позволяет сосредоточиться на более интересных видах тестирования. Несмотря на то, что отдельным частям нашего проекта более 25 лет, мы только в самом начале пути внедрения автоматического тестирования. Тем не менее, у нас уже есть некоторые успехи, о которых я хочу поведать в этой статье. Как писать хорошие автотесты – тема отдельной статьи. И, вероятно, не одной. Я же расскажу вам как мы внедрили тестирование отдельных компонентов. Компоненты написаны на С++ и имеют интерфейсы очень похожие на СОМ. В качестве языка для тестов мы выбрали python и используем очень мощный тестовый фреймворк PyTest. В статье я расскажу про сложности связки С++/СОМ и питона, подводные камни, на которые мы наткнулись и как решали эти проблемы. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273401/#habracut

[>] Stealer на C#. Мы уложились в 9 Кб исполнимого файла
habra.14
habrabot(difrex,1) — All
2015-04-21 17:30:02


![][1] Есть такой класс программ, призванных получать у пользователя конкретные (или какие угодно) файлы и направлять их специально уполномоченным людям. Конечно, с предварительного письменного согласия упомянутых пользователей! Этот класс программ называют Stealer. Самый яркий их представитель, UFR Stealer имеет симпатичный интерфейс, множество настроек и по какому-то недоразумению детектируется всеми известными антивирусами. А что было бы, если бы хакеры писали подобные программы на С#? Пофантазируем! [Читать дальше →][2]

[1]: //habrastorage.org/files/736/f2b/9bf/736f2b9bf01e40d2b1a19e062afeae0e.jpg
[2]: http://habrahabr.ru/post/244467/#habracut

[>] Шорткаты в JavaScript
habra.15
habrabot(difrex,1) — All
2015-12-18 12:00:02


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

[1]: https://habrastorage.org/files/2d8/17b/92b/2d817b92b57a4d54925e3557ef8d0055.jpg
[2]: http://habrahabr.ru/post/273267/#habracut

[>] Мануал вам в помощь
habra.14
habrabot(difrex,1) — All
2015-04-21 17:30:02


![][1] [MC3 Stealth][2] — это второе поколение российского 3D принтера-конструктора MC3, от компании «Мастер Кит». На сегодняшний день — это один из самых лёгких, компактных наборов для сборки 3D принтера из представленных на рынке. Этот принтер задумывался как доступный DIY конструктор для людей не только увлеченных темой 3D, но и обладающих определенными познаниями в этой области, а также в электронике, программировании и имеющих опыт самостоятельной сборки подобных устройств. Но, как оказалось, этот набор захотели приобрести и те, кто только решил начать изучать основы 3D печати. И нужных навыков у них зачастую нет. [Читать дальше →][3]

[1]: //habrastorage.org/files/6cb/adb/2a4/6cbadb2a4af244aea4e61c67031903f9.jpg
[2]: http://3d.masterkit.ru/shop/3d-printers/1890318
[3]: http://habrahabr.ru/post/256261/#habracut

[>] [Из песочницы] Быстро поднятое не считается упавшим. Повышаем отказоустойчивость встраиваемых систем
habra.15
habrabot(difrex,1) — All
2015-12-18 14:00:03


![image][1] Год назад выполнял довольно интересную работу по разработке встраиваемого компьютера для одного предприятия, занимающегося электроникой. Компьютер ничего принципиально интересного не представлял: процессор Cortex A-8, работающий на субгигагерцовых частотах, 512Mb DDR3, 1Gb NAND, легковесная сборка Linux. Однако устройству, в который компьютер встраивался, а значит и ему самому, предстояло работать в довольно жестких условиях. Широкий температурный диапазон (от -40 до +85 градусов Цельсия), влагостойкость, стойкость к электромагнитным излучениям, киловольтные импульсы по питанию, защита от статики в 4 кВ и много чего интересного, что хорошо описано в различных ГОСТах на спецтехнику, – это все про него. Одно из основных требований заказчика – срок выработки на отказ не менее 10 лет. При этом производитель обеспечивает гарантийный ремонт изделия в течении пяти лет, потому вопрос не риторический, а денежный и серьезный. В изделие была заложена соответствующая элементная база. Прибор с честью прошел испытания и получил требуемые сертификаты, но разговор не про то. Проблемы начались когда была изготовлена установочная партия, и устройства разошлись по отделам и КБ для создания прикладного ПО. Пошли возвраты с формулировкой: «Чего-то не загружается». [Читать дальше →][2]

[1]: https://habrastorage.org/files/054/f4a/a9d/054f4aa9dd7648678e0f2fa37e02c387.png
[2]: http://habrahabr.ru/post/273425/#habracut

[>] [Из песочницы] Парадокс дней рождения для трёх человек
habra.14
habrabot(difrex,1) — All
2015-04-21 20:30:02


Многим известен [парадокс дней рождения][1]: в группе из 23-х случайно отобранных людей вероятность того, что хотя бы двое из них имеют совпадающий день рождения, превышает 1/2. Проблема, которую я буду рассматривать, сформулирована в виде упражнения в книге [Алгоритмы: построение и анализ][2]:

> «Сколько нужно взять человек, чтобы с той же вероятностью 1/2 встретить хотя бы
>
> **_трёх_**
>
> с совпадающим днём рождения.»

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

[1]: https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%BE%D0%BA%D1%81_%D0%B4%D0%BD%D0%B5%D0%B9_%D1%80%D0%BE%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F
[2]: https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC%D1%8B:_%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7
[3]: http://habrahabr.ru/post/256301/#habracut

[>] Advent of Code
habra.15
habrabot(difrex,1) — All
2015-12-18 15:00:04


Удивлен, что ссылки на [Advent of Code][1] до сих пор не видно на Хабре. ![][2] Если вкратце, то это [рождественский календарь][3], где каждый день открывается по небольшой задачке на программирование. Сегодня пятница, и уже открыто 18 штук — отличный повод размять мозги, или потренироваться в написании программ на новом языке, до изучения которого никак не доходили руки. [Читать дальше →][4]

[1]: http://adventofcode.com/
[2]: https://habrastorage.org/getpro/habr/post_images/39a/fe4/15b/39afe415b2976f3ee122adb61d6b5113.png
[3]: https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C
[4]: http://habrahabr.ru/post/273417/#habracut

[>] [Из песочницы] Решение задачи о двух мудрецах и числах от 1 до 100
habra.14
habrabot(difrex,1) — All
2015-04-21 22:00:03


Недавно на Хабре промелькнула интересная задачка про двух мудрецов. Здесь я хочу предложить свой вариант решения и рассказать, как к этому решению можно прийти. Напомню условие:

> _У некоторого султана было два мудреца: Али-ибн-Вали и Вали-ибн-Али. Желая убедиться в их мудрости, султан призвал мудрецов к себе и сказал: «Я задумал два числа. Оба они целые, каждое больше единицы, но меньше ста. Я перемножил эти числа и результат сообщу Али и при этом Вали я скажу сумму этих чисел. Если вы и вправду так мудры, как о вас говорят, то сможете узнать исходные числа». Султан сказал Али произведение, а Вали – сумму. Мудрецы задумались. Первым нарушил молчание Али. — Я не знаю этих чисел, — сказал он, опуская голову. — Я это знал, — подал голос Вали. — Тогда я знаю эти числа, — обрадовался Али. — Тогда и я знаю! — воскликнул Вали. И мудрецы сообщили пораженному султану задуманные им числа. Назовите эти числа._

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

[1]: http://habrahabr.ru/post/256293/#habracut

[>] Опыт разработки приложения на Swift, наблюдения и выводы
habra.14
habrabot(difrex,1) — All
2015-04-21 22:30:03


_Данная статья получилась из отчета программиста после «опыта» разработки небольшого приложения на новом языке Swift. _ Дима занимается программированием почти два года и изучает языки самостоятельно. Документация, чужой код. На звание профессионала не претендует, но его опыт может быть полезен многим, кто подумывает начать кодить на Swift. Опыты, наблюдения и выводы. Приглашаем к дискуссии! Далее текст автора. ![image][1] [Читать дальше →][2]

[1]: http://habrastorage.org/files/334/192/875/3341928752f0426596e8ff8c5af81406.png
[2]: http://habrahabr.ru/post/256307/#habracut

[>] Дети и родители в Сети: история взлома сервисов VTech
habra.15
habrabot(difrex,1) — All
2015-12-18 15:30:03


![][1] Утечка данных пользователей различных сервисов из-за взлома последних — далеко не редкость, к сожалению. Стоит только вспомнить нашумевший взлом сервиса измен Ashley Medison, когда в Сеть утекли данные миллионов пользователей. Огромное количество пользователей оказались просто ботами, но это ничего не меняет — каждый из нас уязвим. В Сеть утекают даже данные пользователей, которые следят за своими учетными записями, придумывают сложные пароли, стараются предусмотреть негативные сценарии. Но утечки все равно происходят. Причем интересный нюанс — если о безопасности данных взрослых людей следят все и всюду, то проблема защиты данных детей в Сети как-то не слишком на слуху. А проблем здесь еще больше, ведь дети не слишком хорошо ознакомлены с основами информационной безопасности. А если и да, то взломщики находят иные пути получения данных детишек. В качестве примера можно привести недавний взлом сервисов VTech (производитель детских электронных игрушек), в результате которого в Сеть утекли данные миллионов учетных записей маленьких пользователей. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/9ad/7d0/a28/9ad7d0a288bbe3feb0024f8709815b5a.jpg
[2]: http://habrahabr.ru/post/273423/#habracut

[>] Разработка плагинов для Atlassian JIRA
habra.15
habrabot(difrex,1) — All
2015-12-18 16:30:04


![][1] Все мы в IT сталкивались с системами отслеживания ошибок — с так называемыми баг-трекерами, с issue-трекерами. Один из популярных продуктов такого рода — Atlassian JIRA. На самом деле, Atlassian JIRA — это больше, чем просто система отслеживания ошибок. JIRA может использоваться довольно широко — в том числе и для управления проектами. Можно сказать, что JIRA — это система для отслеживания статуса задач. Задачи могут быть разными: это сбор требований, тестирование, непосредственно разработка и т. д. Я видел даже попытки подсадить на JIRA бухгалтеров — а что, мол, будет у нас agile-бухгалтерия! На официальном же сайте JIRA описывается следующим образом: _JIRA is the tracker for teams planning and building great products. Thousands of teams choose JIRA to capture and organize issues, assign work, and follow team activity. At your desk or on the go with the new mobile interface, JIRA helps your team get the job done. В общем, основная идея JIRA в том, что она позволяет планировать работу. _ В этой статье я расскажу о том, как разрабатывать дополнения к этой программе. Впрочем, может возникнуть вопрос — а зачем разрабатывать дополнения для JIRA. Поэтому давайте рассмотрим, какие дополнения бывают. [Читать дальше →][2]

[1]: https://habrastorage.org/files/865/7fe/e45/8657fee4526e4623bedaa8553f87f07f.png
[2]: http://habrahabr.ru/post/273429/#habracut

[>] [Из песочницы] Сборка XGBoost для Python под Windows
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04


_Windows is so evil that consumes extra energy to make the things running._ ![][1] Библиотека [XGBoost][2] гремит на всех соревнованиях по машинному обучению и помогает завоёвывать призовые места. Однако, стать обладателем этого пакета для Python под Windows не так просто. Процесс установки скудно описан на [GitHub][3] и немногим шире на[ форуме Kaggle][4]. Поэтому попробую описать пошагово и более подробно. Надеюсь это поможет сохранить много времени неопытным пользователям. [Читать дальше →][5]

[1]: https://habrastorage.org/files/420/763/71c/42076371c9634d68b5a32622c70cb1bf.png
[2]: https://github.com/dmlc/xgboost
[3]: https://github.com/dmlc/xgboost/tree/master/windows
[4]: https://www.kaggle.com/c/otto-group-product-classification-challenge/forums/t/13043/run-xgboost-from-windows-and-python
[5]: http://habrahabr.ru/post/273363/#habracut

[>] Играй, голова
habra.14
habrabot(difrex,1) — All
2015-04-22 02:00:02


_Опыт декларативного программирования на JavaScript на примере аудиопроигрывателя_ Автор — Ростислав Чебыкин. Вёрстка и размещение на Хабр — [den\_lesnov][1].

> I feel something so wrong
>
>
>
> By doing the right thing…
>
>
>
> Ryan Tedder (OneRepublic). Counting Stars
>
>

Мы с Денисом Лесновым разработали аудиопроигрыватель для [моего сайта][2]. На сайте размещаются аудиозаписи песен, и я давно мечтал сделать, чтобы они проигрывались прямо с веб-страниц. Проигрыватель выглядит примерно так: ![][3] Как он работает — можно посмотреть на [демонстрационной странице][4]. Первый вопрос, который нам задают,— почему мы городили собственный плеер с нуля, а не использовали какое-нибудь из сотен готовых решений? Ответ простой: потому что нам было интересно заниматься этой задачей. В этом проекте не было заказчиков, начальников, финансовой мотивации и определённых сроков. Мы собирались примерно раз в неделю у кого-нибудь из нас дома и программировали в своё удовольствие. Первая действующая версия проигрывателя была готова за два вечера и выложена на сайт, а потом мы ещё около года приводили код в божеский вид. Здесь пойдёт речь об основных технических решениях, которые мы применяли. [Читать дальше →][5]

[1]: http://habrahabr.ru/users/den_lesnov/
[2]: http://rostislav.chebykin.ru/
[3]: //habrastorage.org/files/b0d/01c/54d/b0d01c54d3a7493b8d131ef2a1485ed5.png
[4]: http://rostislav.chebykin.ru/player/
[5]: http://habrahabr.ru/post/256329/#habracut

[>] Интенс, индикатор прокрутки (или жизнь после скроллбара)
habra.14
habrabot(difrex,1) — All
2015-04-22 03:30:02


Месяц назад кто-то нашёл у меня на гитхабе незаконченный проект и выложил ссылку на него на [Designer News][1]. Внезапно я увидел, что на сайте проекта постоянно сидит по 50 человек, и мне даже пришлось срочно сбежать с работы чтоб экстренно выпилить хотя бы самые адовые баги. Этим проектом был [интенс][2], UX-компонент заменяющий полосу прокрутки (скроллбар) на специальный индикатор, который подсвечивает прокручиваемую область текстурой. Выглядит это примерно так: ![][3] __ Сообщества UX-экспертов и программистов отреагировали очень возбуждённо:

> _ Не могу понять, почему мне это не нравится… _
>
>

> _ Святые какашки, эта штука бесит _
>
>

> _ Да я себе скорее установлю ПЕРДЯЩИЙ СКРОЛЛ в качестве дефолтного, чем КОГДА-ЛИБО заменю мою полосу прокрутки на это. _
>
>

> _ Спасибо, не надо. Никогда не мог понять это желание поменять стандартные элементы интерфейса. Полоса прокрутки — это одна из тех вещей, которая просто работает. Она не мешается и легко даёт понять, насколько много контента. _
>
>

> _ Шта? _
>
>

> _… Я не очень понял, что за проблему оно решает _
>
>

(кто-то даже создал сабреддит [Real Bad UX][11] чтоб разместить там ссылку на этот проект) Вместе с UX-экспертами, возбудился и я. Бесполезные проекты обычно никому не интересны, у меня есть пара таких. Но сейчас было очень непохоже — этот получился очень спорным, и такой движухи я ещё не видел. В течение следующих недель я попытался учесть основные комментарии и либо исправить что-то в самой библиотеке, либо добавить пояснения на сайте проекта. И одновременно выкладывал его на остальных ресурсах — градус фидбэка вроде бы стал смягчаться. Здесь я хочу рассказать, какие области применения у интенса, и попробую объяснить, как я себе представляю «жизнь после скроллбара». А также предлагаю читателям покритиковать этот проект, обсудить скроллинг вообще, UX вцелом, и целесообразность замены традиционных элементов в частности. [Читать дальше →][12]

[1]: https://news.layervault.com/stories/46773-intence---the-scrollbar-era-is-over
[2]: http://asvd.github.io/intence_ru/
[3]: //habrastorage.org/files/a7e/140/684/a7e140684120434ca023b76f2d469c86.gif
[4]: http://asvd.github.io/intence_ru/
[5]: https://news.layervault.com/stories/46773-intence---the-scrollbar-era-is-over
[6]: http://www.reddit.com/r/web_design/comments/30hk0z/intence_a_brand_new_way_of_scrolling_indication/cpsh6z0
[7]: https://news.layervault.com/stories/46773-intence---the-scrollbar-era-is-over
[8]: http://www.reddit.com/r/web_design/comments/30hk0z/intence_a_brand_new_way_of_scrolling_indication/cpsi0z1
[9]: http://www.reddit.com/r/web_design/comments/30hk0z/intence_a_brand_new_way_of_scrolling_indication/cpsi976
[10]: http://www.reddit.com/r/javascript/comments/31cozr/intence_a_new_ux_concept_supposed_to_replace_the/cq0cww1
[11]: http://www.reddit.com/r/realbadux/
[12]: http://habrahabr.ru/post/256325/#habracut

[>] Синхронный код в асинхронном Twisted, или сказ о том, как скрестить ежа с ужом
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04




##### Всё хорошо

[Twisted][1] — асинхронный (событийно-ориентированный) фреймворк, написанный на Python. Мощное средство для быстрой разработки сетевых (и не только) сервисов. Он разработан с использованием паттерна проектирования [Reactor][2]. Сервисы созданные с использованием Twisted быстры и надежны, фреймворк позволяет не писать макаронный код, насыщенный непонятными коллбэками, имеет внутри себя красивые хелперы (Deferred, Transport, Protocol etc). Другими словами, делает нашу жизнь бекенд разработчиков лучше.

##### Но есть и проблемы

Основная проблема в том, что многочисленные, надежные, оттестированные, удобные библиотеки, использующие в своей основе синхронные модули Python (socket, os, ssl, time, select, thread, subprocess, sys, signal etc), просто возьмут и заблокируют нам основной процесс, цикл реактора и наступит беда. Такими библиотеками, к примеру, являются psycopg2, request, mysql и другие. В частности, psycopg2 используется в Django ORM как один из бекендов баз данных.

##### Что же делать?

Есть три пути. Сложный, приемлемый и хороший. Сложный — реализовать аналог библиотеки на Twisted. Приемлемый — использовать deferToThread и запускать синхронный код в отдельных потоках (используя пул потоков реализованный в Twisted). О хорошем пути (по моему мнению) и пойдет речь в заметке. [![Скрестить ежа с ужом][3]][4] [Читать дальше →][5]

[1]: https://twistedmatrix.com/trac/
[2]: https://en.wikipedia.org/wiki/Reactor_pattern
[3]: https://habrastorage.org/files/603/884/7fb/6038847fb6d740b5b2abe5f02a8d01fb.jpg "Скрестить ежа с ужом"
[4]: /post/266887/
[5]: http://habrahabr.ru/post/266887/#habracut

[>] Как мы придумывали систему анализа текстов
habra.14
habrabot(difrex,1) — All
2015-04-22 08:00:08


Доброго времени суток всем. Это наш первый пост в блог стартапа «Meanotek», и наверное он будет больше ознакомительного характера. Чтобы не было совсем скучно читать, мы попробуем рассказать историю, о том как одна практическая задача привела нас к созданию полноценной системы «понимания» текста компьютером, и что из этого получилось. Мысль научить компьютер общаться на человеческом языке у меня появилась еще в школе, когда у меня дома был один из первых советских аналогов IBM PC, с языком программирования GW BASIC. Понятно, что далеко эта задумка в то время не ушла, потом ее заслонили другие более важные дела, но совершенно неожиданно она всплыла вновь спустя много лет, уже в связи с конкретной потребностью. Собственно идея пришла в голову во время работы над другим проектом — сайтом поиска отзывов reviewdot.ru. Идея reviewdot.ru была в следующем — пользователь вводит запрос, например «зеркальный фотоаппарат для начинающих» — и получает список ссылок на отзывы в интернете, которые касаются именно этого вопроса. Или к примеру, чтобы по запросу «что ломается в стиральной машине Indesit?” появлялись ссылки на отзыв пользователей марки Indesit, у которых что-то сломалось. Вопрос ценности данного ресурса для людей пока оставим за скобками, и поговорим немного о технической стороне реализации. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/256303/#habracut

[>] Проверка операционной системы Haiku (семейство BeOS) c помощью PVS-Studio. Часть 1
habra.14
habrabot(difrex,1) — All
2015-04-22 11:30:02


![][1] Операционные системы являются одними из самых сложных и крупных проектов в мире программного обеспечения, а значит идеально подходят для демонстрации применения методики статического анализа кода. После проверки Linux Kernel, я вдохновился проанализировать и другие открытые операционные системы. [Haiku][2] — свободная операционная система для персональных компьютеров, которая нацелена на двоичную совместимость с операционной системой BeOS. Haiku воплощает в себе основные идеи BeOS. Это модульная система, архитектурно решённая как гибридное ядро: микроядерная архитектура, способная динамически подгружать необходимые модули. Проект для проверки был предложен пользователем, знакомым с продуктом [PVS-Studio][3] и нашей работе по проверке open-source проектов. После сравнительно недавней [проверки Linux Kernel][4], я догадывался, с какими проблемами мне придётся столкнуться и описал их в ответном письме. Неожиданно мне предложили содействие в сборке операционной системы и интеграции анализатора. Дополнительно на официальном сайте была доступна очень обширная документация и я решил попробовать. Через некоторое время я получил долгожданный лог проверки анализатором и после анализа результатов, я решил написать две статьи, описав самые подозрительные на мой взгляд участки кода. Это первая часть. [Читать дальше →][5]

[1]: http://habrastorage.org/getpro/habr/post_images/6d4/8ad/3e0/6d48ad3e0aed4bf7ae5e892107787576.png
[2]: http://www.viva64.com/go.php?url=1530
[3]: http://www.viva64.com/ru/pvs-studio/
[4]: http://www.viva64.com/ru/b/0299/
[5]: http://habrahabr.ru/post/256347/#habracut

[>] Программа практической подготовки в области ИБ: «Zero Security: A»
habra.14
habrabot(difrex,1) — All
2015-04-22 13:00:03




##### «Zero Security: A» — программа практической подготовки в области ИБ

Рады сообщить о новом наборе на программу практической подготовки в области информационной безопасности — «Zero Security: A», которая состоится 16 мая 2015 г. Программа, в первую очередь, нацелена на практическую подготовку, которая осуществляется в специализированной пентест-лаборатории, содержащей распространенные уязвимости разных типов.



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

[1]: http://habrahabr.ru/post/256333/#habracut

[>] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 25. «Hostile Takeover»
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция. Второе дыхание «квест по переводу книги» получил благодаря компании [Edison][4]. [MagisterLudi][5]: _«Приношу извинения, под конец года опять началась неразбериха с готовыми главами, выкладываем что есть, не по порядку.»_

#### Глава 25. «Захват территории»

_(за перевод спасибо fantom)_ _**«В войне самое главное — быстрота: надо овладевать тем, до чего он успел дойти; идти по тому пути, о котором он и не помышляет; нападать там, где он не остерегается.»**_ [«Искусство войны»][6] Сунь Цзы было настольной книгой Макса. Сидя в своём тайном убежище, он набросал план наступления. Было пять англоязычных подпольных кардинговых сайтов, и четыре из них были лишними. Недели ушли на изучение противника: ScandinavianCarding, Vouched, TalkCash и, его главный враг, — DarkMarket. Этот английский сайт появился на месяц раньше CardersMarket и прилагал большие усилия, добиваясь репутации зоны, защищенной от взлома. В известном смысле, планы Макса проникнуть на другие площадки, строились на его положительных качествах. На руку ему играло, что он не был жадным, и что он делал бизнес на CardersMarket. Теневая кардинговая сцена была разрушена, а когда Макс сталкивался с чем-то разбитым, он не мог отказаться восстановить это, совсем как делал это несколько лет назад для Пентагона. Играло свою роль и самолюбие. Казалось, весь кардинговый мир думал, что Iceman всего лишь администратор, способный только устанавливать ПО. Макс видел прекрасную возможность показать кардерам, как они ошибались. На DarkMarket нашлось слабое место. Британский кардер JiLsi пользовался этим сайтом. Он использовал один и тот же пароль: “MSR206” везде, включая и CardersMarket, где Макс имел доступ ко всем паролям. Теперь Макс мог проникнуть и хозяйничать на DarkMarket. [Читать дальше →][7]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://www.edsd.ru
[5]: http://habrahabr.ru/users/magisterludi/
[6]: http://militera.lib.ru/science/sun-tszy/index.html
[7]: http://habrahabr.ru/post/273357/#habracut

[>] О бедной рекурсии замолвите слово, или всё, что вы не знали и не хотите о ней знать
habra.14
habrabot(difrex,1) — All
2015-04-22 14:30:02




> Рекурсия: см. рекурсия.

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

> — Как она сложена?
>
>
>
> — Превосходно! Только рука немного торчит из чемодана.

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

def fib(n):
if n<0: raise Exception("fib(n) defined for n>=0")
if n>1: return fib(n-1) + fib(n-2)
return n


приходится городить всевозможные грязные хаки, начиная от:

@memoized
def fib(n):
if n<0: raise Exception("fib(n) defined for n>=0")
if n>1: return fib(n-1) + fib(n-2)
return n


И заканчивая вообще:

def fib(n):
if n<0: raise Exception("fib(n) defined for n>=0")
n0 = 0
n1 = 1
for k in range(n):
n0, n1 = n1, n0+n1
return n0


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

[1]: http://habrahabr.ru/post/256351/#habracut

[>] Оптимизация гиперпараметров в Vowpal Wabbit с помощью нового модуля vw-hyperopt
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04


Привет, Хабр! В этой статье речь пойдет о таком не очень приятном аспекте машинного обучения, как оптимизация гиперпараметров. Две недели назад в очень известный и полезный проект [Vowpal Wabbit][1] был влит модуль **vw-hyperopt.py**, умеющий находить хорошие конфигурации гиперпараметров моделей Vowpal Wabbit в пространствах большой размерности. Модуль был разработан внутри DCA (Data-Centric Alliance). [][2]



Для поиска хороших конфигураций vw-hyperopt использует алгоритмы из питоновской библиотеки [Hyperopt][3] и может оптимизировать гиперпараметры адаптивно с помощью метода Tree-Structured Parzen Estimators (TPE). Это позволяет находить лучшие оптимумы, чем простой grid search, при равном количестве итераций. Эта статья будет интересна всем, кто имеет дело с Vowpal Wabbit, и особенно тем, кто досадовал на отсутствие в исходном коде способов тюнинга многочисленных ручек моделей, и либо тюнил их вручную, либо кодил оптимизацию самостоятельно. [Читать дальше →][4]

[1]: https://github.com/JohnLangford/vowpal_wabbit
[2]: http://habrahabr.ru/company/dca/blog/272697/
[3]: https://github.com/hyperopt/hyperopt
[4]: http://habrahabr.ru/post/272697/#habracut

[>] Security Week 51: Zero Day в Joomla, Twitter предупреждает, утечка базы MacKeeper
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04


![][1]В предпоследнем эпизоде нашего сериала в этом году обсудим следующие новости: — Twitter рассылает предупреждения пользователям о том, что их возможно атакует какая-то спецслужба. Получателей немного, но некоторые из них так или иначе связаны с темой защиты информации (ну или политическим активизмом на ниве интернета). В том числе предупреждение получила Руна Сандвик, ранее участвовавшая в разработке и продвижении проекта Tor. — В CMS Joomla обнаружена серьезная уязвимость: двухэтапный метод взлома предусматривает внедрение закладки, позволяющей в дальнейшем передавать и запускать на уязвимой системе произвольный код на языке PHP. Уязвимость активно эксплуатировалась минимум за два дня до публикации патча. — Данные о 13 миллионах пользователей набора утилит MacKeeper оказались в открытом доступе. Нет, компанию-разработчика не взломали, имела место _неправильная конфигурация_. Традиционные правила: каждую неделю редакция новостного сайта [Threatpost][2] выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти [по тегу][3]. На следующей неделе — нестандартный топ новостей о безопасности за весь 2015 год. Тем временем можно [вспомнить][4], что произошло в 2014-м. [Читать дальше →][5]

[1]: https://habrastorage.org/files/9f5/de3/887/9f5de388715749b28076a28dd17d0ae8.png
[2]: https://threatpost.ru/
[3]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[4]: http://habrahabr.ru/company/kaspersky/blog/246745/
[5]: http://habrahabr.ru/post/273437/#habracut

[>] [Перевод] Новый спам: Как мошенники используют интерактивные робо-звонки из облака
habra.14
habrabot(difrex,1) — All
2015-04-22 15:00:02


_Журналист издания Ars Technica Шон Галлахер [рассказал][1] о новой технологии, применяемой телемаркетологами с помощью [облачных сервисов][2] — «внешних интерактивных голосовых ответах». Говоря человеческим языком — теперь роботы могут звонить потенциальным клиентам и прикидываться живым человеком. _ [![][3]][4] Была середина дня, мой телефон зазвонил — на экране высветился незнакомый, но явно местный номер. Я было подумал, что это кто-то из моих детей звонит с девайса друга (потому что свой забыт дома), чтобы попросить забрать из школы. Я ответил на звонок и довольно быстро почувствовал себя участником эксперимента по тестированию эффекта «[зловещей долины][5]». «Добрый день!», — сказал голос на другом конце провода, я ответил на приветствие. «Меня зовут Эми, я старший клиентский представитель компании American Direct Services». Потом «Эми» на пару секунд замолчала. [Читать дальше →][6]

[1]: http://arstechnica.com/information-technology/2015/04/the-new-spam-interactive-robo-calls-from-the-cloud-as-cheap-as-e-mail/
[2]: https://1cloud.ru/
[3]: //habrastorage.org/files/6f6/ec7/67b/6f6ec767be2d4d49ad111e569ab8a0a0.jpg
[4]: http://habrahabr.ru/company/1cloud/blog/256361/
[5]: https://ru.wikipedia.org/wiki/%D0%97%D0%BB%D0%BE%D0%B2%D0%B5%D1%89%D0%B0%D1%8F_%D0%B4%D0%BE%D0%BB%D0%B8%D0%BD%D0%B0
[6]: http://habrahabr.ru/post/256361/#habracut

[>] Комментарий к «Как попасть на дачу президента в пять часов утра»
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04


![][1]Было бы странно, [заниматься поиском ошибок][2] в программах и при этом пройти мимо [этой статьи][3]. Хочу оставить ряд комментариев. Основной их смысл, что это не похоже на страшные закладки. Мне этот код больше напоминает какой-то тестовый прототип, а не готовое приложение. Так что возможно не всё так страшно, как преподносит автор в статье. Во-первых, код содержит ошибку и случайные числа используются всегда. В реальности мимо такого вряд ли прошли в процессе тестировании системы. А во-вторых, существует такое понятие как «сертификация программ». И приведенный фрагмент кода — первый кандидат на обнаружение. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/912/fe8/fae/912fe8fae389015a6a5b381e35f2faa3.png
[2]: http://www.viva64.com/ru/a/0084/
[3]: http://habrahabr.ru/post/273249/
[4]: http://habrahabr.ru/post/273451/#habracut

[>] [Перевод] Управление роботами, созданными с помощью LEGO® Mindstorms® NXT Brick через язык Wolfram Language (Mathematica)
habra.14
habrabot(difrex,1) — All
2015-04-22 15:00:02






_Скачать статью в виде [документа Mathematica (NB)][1], [CDF-файла][2] или [PDF][3]._ NXT — процессор общего назначения, который используется для управления двигателями и датчиками; он идеально подходит для создания автономных роботов. Он также может сообщаться с более сложным программным обеспечением на компьютере посредством Bluetooth. В этой статье мы покажем, как правильно взаимодействовать с NXT через язык [Wolfram Language][4] (_[Mathematica][5]_), посылая корректные сигналы. Мы также представим пакет, который управляет всеми взаимодействиями между функциями. Эти функции могут использоваться в сочетании с динамическими ячейками для отображения статуса робота и управления его двигателем. [Читать дальше →][6]

[1]: http://www.mathematica-journal.com/data/uploads/2013/03/Cousineau.nb
[2]: http://www.mathematica-journal.com/data/uploads/2013/03/Cousineau.cdf
[3]: http://www.mathematica-journal.com/data/uploads/2013/03/Cousineau.pdf
[4]: http://www.wolfram.com/language
[5]: http://www.wolfram.com/mathematica
[6]: http://habrahabr.ru/post/256345/#habracut

[>] [recovery mode] Бэкдоры в файрволах Juniper
habra.15
habrabot(difrex,1) — All
2015-12-19 00:30:03


Если кто-то еще не слышал, Juniper опубликовал заявление: обнаружен код в ScreenOS версий с 6.2.0r15 по 6.2.0r18 и с 6.3.0r12 по 6.3.0r20, позволяющий обладающим соответствующей информацией лицам сделать две вещи: 1) Аутентифицироваться на устройстве по ssh 2) Слушать VPN трафик Обнаружить проникновение может быть непросто. Затронута только ScreenOS. SRX в порядке. Наверное. Подробнее: [forums.juniper.net/t5/Security-Incident-Response/Important-Announcement-about-ScreenOS/ba-p/285554][1] [kb.juniper.net/InfoCenter/index?page=content&id=JSA10713][2] Есть какие-то [сообщения][3] о том, что третьими лицами подобраны ключи к этим бекдорам. Не исключена публикация експлоитов в самом недалеком будущем. Например, прямо на этих выходных. Есть патчи от вендора и есть смысл экстренно обновляться или хотя бы блокировать доступ из недоверенных сетей по ssh, если кто-то этого еще не сделал. [][4]

[1]: http://forums.juniper.net/t5/Security-Incident-Response/Important-Announcement-about-ScreenOS/ba-p/285554
[2]: https://kb.juniper.net/InfoCenter/index?page=content&id=JSA10713
[3]: https://twitter.com/cryptoron/status/677900647560253442
[4]: http://habrahabr.ru/post/273489/#habracut

[>] Facebook угрожает специалисту по безопасности, взломавшему Instagram
habra.15
habrabot(difrex,1) — All
2015-12-19 02:00:01


Независимый специалист по безопасности Уэсли Вайнберг (Wesley Wineberg) подвергся серьёзному давлению со стороны компании Facebook. Она не заплатила за найденные уязвимости на сервере Instagram, да ещё угрожает судебным иском. Уэсли [нашёл уязвимость][1] в инфраструктуре Instagram, с помощью которой скачал практически всё ценное, что есть на серверах Instagram: исходный код последней версии, SSL-сертификаты и приватные ключи для Instagram.com, ключи для подписи куков аутентификации, учётные данные от почтового сервера и ключи для некоторых других продуктов, в том числе для подписи мобильных приложений под iOS и Android. ![][2] [Читать дальше →][3]

[1]: http://www.exfiltrated.com/research-Instagram-RCE.php
[2]: https://habrastorage.org/files/b3a/835/298/b3a8352981c44c6d944c2614d7547bea.png
[3]: http://habrahabr.ru/post/273491/#habracut

[>] Укрощаем UEFI SecureBoot
habra.15
habrabot(difrex,1) — All
2015-12-19 11:00:03


![][1] Данные обещания надо выполнять, тем более, если они сделаны сначала в [заключительной части опуса о безопасности UEFI][2], а потом повторены [со сцены ZeroNights 2015][3], поэтому сегодня поговорим о том, как заставить UEFI SecureBoot работать не на благо Microsoft, как это чаще всего настроено по умолчанию, а на благо нас с вами. Если вам интересно, как сгенерировать свои обственные ключи для SecureBoot, как установить их вместо стандартных (или вместе с ними), как подписать ваш любимый EFI-загрузчик, как запретить загрузку неподписанного или подписанного чужими ключами кода, как выглядит интерфейс для настройки SecureBoot у AMI, Insyde и Phoenix и почему это, по большому счету, совершенно не важно — добро пожаловать под кат, но опасайтесь большого количества картинок и длинных консольных команд. [Войти в клетку][4]

[1]: https://habrastorage.org/files/dc9/f31/519/dc9f315198d244b8aaef22deb80f2671.jpg
[2]: http://habrahabr.ru/post/268423/
[3]: https://twitter.com/ZeroNights/status/669864406512222208
[4]: http://habrahabr.ru/post/273497/#habracut

[>] [Перевод] Пол Грэм: Слово «хакер»
habra.15
habrabot(difrex,1) — All
2015-12-19 23:30:02




> _«Дух сопротивления правительству так ценен в определенных случаях, что мне бы хотелось, чтобы ему никогда не давали погаснуть»._
>
> Томас Джефферсон, отец-основатель.

![image][1] _(На картинке изображены Стив Джобс и Стив Возняк с их проектом «blue box». Фото сделано Маргрет Возняк. Предоставлено с разрешения Стива Возняка.)_ Оригинал — [www.paulgraham.com/gba.html][2] Перевод — Щёкотова Яна _(предыдущий перевод — [«Месть Ботанов»][3])_ **Слово «Хакер»** Апрель, 2004 В СМИ слово «хакер» используют для описания того, кто взламывает компьютеры. В среде разработчиков программного обеспечения это слово означает искусного программиста. Но между этими двумя понятиями существует связь. Для программистов «хакер» ассоциируется с мастерством в самом буквальном смысле слова: некто, кто может заставить компьютер делать то, [что ему заблагорассудится][4], хочет того сам компьютер или нет. В дополнение к этой путанице укажем, что существительное «hack» (англ.) также имеет два значения. Это слово может быть как комплиментом, так и оскорблением. Слово «hack» используется для описания ужасного результата вашей деятельности. Но когда вы совершаете что-то так талантливо, что каким-то образом побеждаете систему, то это также называют «hack». Данное слово употребляется чаще всего в первом значении, а не во втором, вероятно, потому, что плохие решения преобладают над блестящими. Хотите — верьте, хотите — нет, но эти два значения слова «hack» также связаны. У плохих и оригинальных решений есть нечто общее: они оба идут вразрез с правилами. И существует постепенный переход от нарушения правил, граничащего с безобразностью (использование клейкой ленты для присоединения чего-либо к вашему велосипеду), к такому нарушению правил, что сродни блестяще оригинальному (отказ от Евклидового пространства). [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/242/2e2/0f2/2422e20f210067d58caf51a725151e3f.jpg
[2]: http://www.paulgraham.com/gba.html
[3]: http://habrahabr.ru/company/edison/blog/271103/
[4]: http://habrahabr.ru/company/edison/blog/273295/
[5]: http://habrahabr.ru/post/273511/#habracut

[>] Открытая лекция: задача выполнимости булевых формул
habra.15
habrabot(difrex,1) — All
2015-12-20 03:30:06


![image][1]

###### (Скриншот из презентации: [slideplayer.com/slide/3238789][2])

Приглашаем всех на открытую лекцию [Computer Science центра][3], посвященную задаче выполнимости булевых формул — одной из самых известных и важных алгоритмических задач. Лекция пройдёт в рамках встречи со слушателями онлайн-курса [«Алгоритмы: теория и практика. Методы»][4]. Время и место проведения: 25 декабря, 19:00, БЦ Таймс (г. Санкт-Петербург, ул. Кантемировская 2А, 4 этаж). Участие бесплатное, но требуется регистрация: [goo.gl/IiNvV8][5] Задача выполнимости — каноническая трудная задача, по которой проводится огромное количество исследований: как практических, так и теоретических. В частности, этой задаче посвящена ежегодная международная конференция. Каждый год проходят соревнования программ для данной задачи (так называемых сат-солверов). Такие программы активно используются во многих прикладных областях. Буквально несколько месяцев назад Дональд Кнут дописал том 4B монографии «Искусство программирования», треть которого посвящена задаче выполнимости. [Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/61a/e8c/ff1/61ae8cff182b31802a18965f4c1897dd.png
[2]: http://slideplayer.com/slide/3238789/
[3]: http://compscicenter.ru
[4]: http://stepic.org/217
[5]: https://goo.gl/IiNvV8
[6]: http://habrahabr.ru/post/273505/#habracut

[>] [Перевод] Умножение по методу русских крестьян
habra.15
habrabot(difrex,1) — All
2015-12-20 12:00:03


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

#### Алгоритм



13 x 19 -> 0
6 38 19
3 76 ->
1 152 -> 95
0 304 247



Запишем два перемножаемых числа рядом – они станут заголовками двух столбцов. Третий столбец будет содержать нарастающую сумму. Если число в левом столбце нечётное, мы добавляем число из правого столбца в нарастающую сумму. Изначально она будет равна нулю. Затем в левом столбце ниже мы записываем число из заголовка, делённое пополам (с отбрасыванием остатка). 13 / 2 = 6. А во втором столбце мы пишем число, равное удвоению заголовка столбца, 19\*2 = 38. Поскольку число в левом столбце чётное, мы не увеличиваем нарастающую сумму. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273525/#habracut

[>] [Перевод] Шифрование и расшифровка — обращение к API OpenSSL с помощью вызовов JNI
habra.14
habrabot(difrex,1) — All
2015-04-22 15:30:03


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

[1]: http://habrahabr.ru/post/255525/#habracut

[>] [Перевод] Как мы перешли со Scala на Go
habra.15
habrabot(difrex,1) — All
2015-12-20 17:00:02


_Перевод [статьи][1] технического директора компании CrowdStrike, о том, как и почему они перешли со Scala на Go по мере роста компании с 5 до 200+ человек._ Scala долгое время была частью стека нашей компании CrowdStrike, по сути даже главным языком. Я помогал внедрять Scala когда мы начали разрабатывать наш софт в 2012-м году. На самом деле, это было даже одной из главных причин моего перехода в CrowdStrike. Несколько основных разработчиков были заинтересованы во внедрении Scala, так что это был хороший вариант для всех. Я перешёл из компании Gravity, которая достаточно активно использовала Scala. Это был основной язык в компании. Я привык к нему, мне он нравился, я видел его мощь и был уверен, что смогу предотвратить некоторые из сложностей, которые я видел в Scala, по мере того, как CrowdStrike будет расти. Мы делали высоконагруженную аналитику, batch-задачи на Hadoop и наш Chief Architect (привет, Биссел!) использовал лямбда-архитектуру задолго до того, как это стало модно. Недавняя цитата от одного из наших senior-разработчиков заставила меня таки написать этот пост, описывающий, почему мы перевели большую часть нашего стека на Go, и почему новые сервисы мы по-умолчанию теперь пишем именно на Go. [Читать дальше →][2]

[1]: http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/#1
[2]: http://habrahabr.ru/post/273535/#habracut

[>] Как синхронизировать KOrganizer и Exchange Server
habra.14
habrabot(difrex,1) — All
2015-04-22 16:00:02


На Хабре уже [писали][1] о синхронизации линуксовых почтовиков с MS Exchange, но там не было KDE Kontact и мне поэтому пришлось искать решение. Не то, чтобы это было сложно, но всё-таки лучше зафиксировать как это делается. Немного терминологии. [KDE-PIM][2] — это набор программ управления личной информацией. В него входят, помимо прочего, расширенный емайл-клиент [Kontact][3] и усеченный вариант — [KMail][4]. Kontact включает в себя календарный модуль **[KOrganizer][5]**, RSS-агрегатор, Заметки, Контакты и прочее. Работать в KMail или Kontact неудобно, когда календарь не синхронизирован с почтовым сервером. Для того, чтобы решить эту проблему _нужно воспользоваться программой-посредником, которая будет забирать данные с Exchange Server и передавать её почтовому клиенту_, так как сам **KOrganizer** не умеет подключаться к Exchange Server, а Kontact и KMail умеют забирать почту только по IMAP(S) или POP(S). Такой прокладкой между Kontact и почтовым сервером выступает [DavMail][6], который c последним обменивается информацией по протоколу [CalDav][7]. В дистрибутиве Генту пакет DavMail не доступен из основного репозитария, но можно воспользоваться [оверлеями][8] или скачать [deb-пакет][9] и установить с помощью dpkg. В файле настройки ~/.davmail.properties редактируем следующие записи.

davmail.caldavPort=1080
davmail.url=exchange.owa.fqdn
# Режим службы, графическая оболочка выключена.
davmail.server=true


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

[1]: http://habrahabr.ru/post/131239/
[2]: https://community.kde.org/KDE_PIM
[3]: https://userbase.kde.org/Kontact
[4]: https://userbase.kde.org/KMail
[5]: https://userbase.kde.org/KOrganizer
[6]: http://davmail.sourceforge.net/
[7]: https://www.ietf.org/rfc/rfc4791.txt
[8]: http://gpo.zugaina.org/net-mail/davmail
[9]: http://davmail.sourceforge.net/download.html
[10]: http://habrahabr.ru/post/256305/#habracut

[>] Поиск по подобию. Поиск нечетких дубликатов. Лекции от Яндекса
habra.14
habrabot(difrex,1) — All
2015-04-22 17:00:02


Сегодня мы публикуем шестую лекцию из курса «Анализ изображений и видео», прочитанного Натальей Васильевой в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.




Всего в программе девять лекций, из которых уже были опубликованы:

1. [Введение в курс «Анализ изображений и видео»][1].
2. [Основы пространственной и частотной обработки изображений][2].
3. [Морфологическая обработка изображений][3].
4. [Построение признаков и сравнение изображений: глобальные признаки][4].
5. [Построение признаков и сравнение изображений: локальные признаки][5].

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

[1]: http://habrahabr.ru/company/yandex/blog/251161/
[2]: http://habrahabr.ru/company/yandex/blog/254249/
[3]: http://habrahabr.ru/company/yandex/blog/254955/
[4]: http://habrahabr.ru/company/yandex/blog/255627/
[5]: http://habrahabr.ru/company/yandex/blog/255985/
[6]: http://habrahabr.ru/post/256291/#habracut

[>] [recovery mode] Интернет в российских школах: работа над ошибками
habra.14
habrabot(difrex,1) — All
2015-04-22 18:00:04


Привет всем! Сегодня я хочу рассказать о моем опыте организации Интернет-доступа в школе и обеспечении информзащиты.   ![][1]   Не так давно был Cyber Security Forum 2015, где на секции **«Информационная безопасность в образовании»** меня увлек доклад Юрия Контемирова из Роскомнадзора. Он говорил о строгости проверок, осуществляемых под его управлением и посетовал на нерадивость некоторых школ, которых не особо парит защита от сетевых и информационных угроз. После доклада от участника форума прилетел интересный и довольно простой вопрос: «А где же собственно те стандарты, соблюдать которые нас призывают?» После короткой дискуссии выяснилось: «Проверки есть, а вот стандартов… нет». [Читать дальше →][2]

[1]: //habrastorage.org/files/a59/db0/9a1/a59db09a18af406b8991d0409bec62b1.png
[2]: http://habrahabr.ru/post/256263/#habracut

[>] CCTV на OS X
habra.14
habrabot(difrex,1) — All
2015-04-22 18:00:04


Проживая в тайге среди белок и змей я задумался о безопасности того микропоселения где так люблю отдыхать. Начать решил с организации видеонаблюдения с какой-либо простенькой аналитикой и системой уведомления. Так как проект бюджетный и в стране кризис решил использовать как сервер iMac 27" 2010 + 4x Hikvision HiWatch DS-N201 + Yota. Видеонаблюдение было организованно без затруднений так как Hikvision HiWatch DS-n201 прекрасно сделанные камеры, каждая такая камера может работать самостоятельно нужен только storage, но для централизации нужен сервер а для сервера ПО (CCTV). ПО Hikvision iVMS 4200 для Mac OS X не смогло удовлетворить мои требования так как это всего лишь клиент. Я обратил свой взор на другие системы — не привязанные к производителю, достойных внимания систем мне удалось найти 3 штуки: 1. [Xeoma][1] 2. [SecuritySpy][2] 3. EvoCam; [Читать дальше →][3]

[1]: http://felenasoft.com/ru/
[2]: http://www.bensoftware.com/securityspy/
[3]: http://habrahabr.ru/post/256373/#habracut

[>] [Из песочницы] RS-анализ (анализ фрактальной структуры временных рядов)
habra.14
habrabot(difrex,1) — All
2015-04-22 18:30:03


Стандартная гауссова статистика работает на основе следующих предположений. Центральная предельная теорема утверждает, что при увеличении числа испытаний, предельное распределение случайной системы будет нормальным распределением. События должны быть независимыми и идентично распределены (т.е. не должны влиять друг на друга и должны иметь одинаковую вероятность наступления). При исследовании крупных комплексных систем обычно предполагают гипотезу о нормальности системы, чтобы далее мог быть применен стандартный статистический анализ. Часто на практике изучаемые системы (от солнечных пятен, среднегодовых значений выпадения осадков и до финансовых рынков, временных рядов экономических показателей) не являются нормально-распределенными или близкими к ней. Для анализа таких систем Херстом [1] был предложен метод _Нормированного размаха_ (RS-анализ). Главным образом данный метод позволяет различить случайный и фрактальный временные ряды, а также делать выводы о наличии непериодических циклов, долговременной памяти и т.д.

#### Алгоритм RS-анализа



1. Дан исходный ряд ![image][1]. Рассчитаем логарифмические отношения: ![image][2]
2. Разделим ряд ![image][3] на ![image][4] смежных периодов длиной ![image][5]. Отметим каждый период как ![image][6], где ![image][7]. Определим для каждого ![image][8] среднее значение: ![image][9]

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

[1]: http://mathurl.com/pmjtmj6.png
[2]: http://mathurl.com/k3vuk24.png
[3]: http://mathurl.com/32h6522.png
[4]: http://mathurl.com/25htm3r.png
[5]: http://mathurl.com/5cmxoc.png
[6]: http://mathurl.com/kluuwlz.png
[7]: http://mathurl.com/oadcosv.png
[8]: http://mathurl.com/kluuwlz.png
[9]: http://mathurl.com/lhsjbkq.png
[10]: http://habrahabr.ru/post/256381/#habracut

[>] День рождения основателя старейшего хакерского клуба Chaos Computer Club
habra.15
habrabot(difrex,1) — All
2015-12-20 21:30:03


![][1] 20 декабря 1951 года родился Херварт Холланд-Мориц, известный как Вау Холланд (Wau Holland), со-основатель [Chaos Computer Club][2] (ССС) в 1981 году, — это один из старейших в мире хакерских клубов. ![image][3]ССС получил всемирную известность, когда его члены обнародовали уязвимости в системе безопасности немецкого телетекстового оператора [Bildschirmtext][4] (Btx). Хакеры получили 134 000 немецких марок от банка, многократно получая доступ к его странице на Btx. Через несколько дней хакеры вернули деньги. Вау Холланд был блестящим оратором, человеком с большим чувством юмора, стоящим на позициях открытости и свободы информационного обмена. [Читать дальше →][5]

[1]: https://habrastorage.org/files/d8f/ff9/dd9/d8fff9dd9c464ff9ba68fae305e622d6.jpg
[2]: https://ru.wikipedia.org/wiki/Chaos_Computer_Club
[3]: https://habrastorage.org/getpro/habr/post_images/93b/5ca/6ad/93b5ca6adb05dbdfc7b4db8f5716aea6.jpg
[4]: https://de.wikipedia.org/wiki/Bildschirmtext
[5]: http://habrahabr.ru/post/273407/#habracut

[>] Обфускация программ
habra.14
habrabot(difrex,1) — All
2015-04-23 02:30:02


Обфускация программ — это прорывная, самая горячая сегодня, область криптографии. За последние два года написано свыше 70ти статей по этой теме, она вызывает жаркие дискуссии, создает настоящие гонки между исследовательскими группами, открывает полигон для научных изысканий. Более того, оказывается, что обфускация — фундаментальный, образующий примитив, который порождает практически всё, что мы имеем в криптографии сегодня. Разберемся, с тем что же это такое. Давая пользователям доступ к установочным файлам программ, компании неизбежно раскрывают свои профессиональные секреты и наработки, и ничто не останавливает злобонравных конкурентов от беззастенчивого копирования и воровства чужих алгоритмов. Обратим внимание и на другой пример, это важные обновления (патчи), исправляющие ошибки в операционных системах. Почти мгновенно очередное обновление анализируется хакерами, они выявляют проблему которую это обновление чинит, и атакуют несчастных, не успевших вовремя обновиться, пользователей. Эти две ситуации связывает одна фундаментальная проблема, а именно: написанная человеком программа может быть человеком же и понята, проанализирована, разобрана. А что если существовал бы алгоритм, который бы мог до неузнаваемости, необратимо переделать программу при этом сохраняя ее функциональность? Так чтобы программу совершенно невозможно было бы понять, но при этом она работала бы ничуть не хуже исходной? Такой алгоритм и называется «обфусцирующий» или «обфускатор». [Читать дальше →][1]

[1]: http://habrahabr.ru/post/255871/#habracut

[>] Еще одна «критическая» «уязвимость» «VPN» и почему Port Fail — ерунда
habra.15
habrabot(difrex,1) — All
2015-12-21 00:30:02


Утро 26 ноября началось для меня с интересной новости — ребята из Perfect Privacy [опубликовали информацию об уязвимости Port Fail][1], которая позволяет раскрывать IP-адрес клиентов VPN-сервисов с функцией проброса портов. Я немного понегодовал из-за того, что ее назвали уязвимостью, т.к. это никакая не уязвимость, а особенность маршрутизации: трафик до IP-адреса VPN-сервера всегда идет напрямую, в обход VPN. Вполне очевидная вещь, подумал я, о которой должен знать любой сетевой администратор. Заметка вменяемая и технически грамотная, придраться можно только к слову vulnerability (уязвимость). Но потом за дело взялись СМИ, и пошло-поехало… ![image][2] _Критическая уязвимость во всех протоколах VPN на всех операционных системах. У-у-у, как страшно!_ В новости, опубликованной на [Geektimes][3], изначально имевшей желтый заголовок, было сказано о награде в $5000 за найденную «уязвимость» от Private Internet Access — одного из крупнейших VPN-сервисов. «$5000 за типичную, совершенно очевидную любому сетевику вещь?» — подумал я — «Невероятно!», и высказал свое негодование по этому поводу в комментариях, попутно [расписав еще одну, не менее очевидную, особенность маршрутизации][4], с которой сталкивался любой настраивавший работу двух и более интернет-провайдеров на одном компьютере: ответ на входящий запрос не обязательно уйдет через этого же провайдера и с этим же IP, чего запросившая сторона совсем не ожидает. Если мы представим, что вместо второго провайдера у нас VPN-соединение, то отправив запрос на IP-адрес нашего провайдера, при определенных условиях может получиться так, что ответ на наш запрос мы получим с IP VPN-сервера. ![image][5] [Читать дальше →][6]

[1]: https://www.perfect-privacy.com/blog/2015/11/26/ip-leak-vulnerability-affecting-vpn-providers-with-port-forwarding/
[2]: https://habrastorage.org/getpro/habr/post_images/702/fa3/48f/702fa348fa073421bc73a884a2ff5948.png
[3]: http://geektimes.ru/post/266602/
[4]: http://geektimes.ru/post/266602/#comment_8890790
[5]: https://habrastorage.org/getpro/habr/post_images/36d/d38/97e/36dd3897ef8a8b17e54f19f14c43132c.png
[6]: http://habrahabr.ru/post/273523/#habracut

[>] Symfony2 Voters и Doctrine Filters на страже безопасности
habra.15
habrabot(difrex,1) — All
2015-12-21 10:30:05


Все началось, когда я настраивал систему безопасности одной CRM. Как это часто бывает, в ней были пользователи с разными уровнями доступа к основным данным (назовем их entities). Вид основного грида у них был одинаковый, необходима была гибкость настроек доступа к entities. Сперва я подумал об ACL, но… [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273477/#habracut

[>] [Перевод] Перевод: Чему я научился, разрабатывая API для облачной платформы Mictosoft
habra.15
habrabot(difrex,1) — All
2015-12-21 11:00:03


Вашему вниманию предлагается перевод поста о том, как разрабатывался Windows Azure API: о трудностях, удачных и неудачных решениях, сделанных выводах. Далее — текст автора. После разговора с моим коллегой [по работе][1] о REST API мне пришла в голову идея рассказать о своем опыте организации и работы команды, которая создала Windows Azure Service Management API. На написание этого поста меня вдохновили такие великолепные статьи в жанре “чему я научился” как [эта][2] за авторством Foursquare и [эта][3] от Даниэля Джакобса из Netflix. Предупреждение: Все рассказанное под катом — мое личное мнение. Я даже не уверен, что остальные участники команды со мной согласны. И я точно знаю, что некоторые из высказанных мыслей довольно противоречивы. [ознакомиться с личным мнением автора][4]

[1]: http://www.linkedin.com/in/sriramkrishnan01
[2]: http://engineering.foursquare.com/2011/07/08/apiv2-woulda-coulda-shoulda/
[3]: http://techblog.netflix.com/2011/02/redesigning-netflix-api.html
[4]: http://habrahabr.ru/post/273533/#habracut

[>] [Перевод] Перевод: Чему я научился, разрабатывая API для облачной платформы Microsoft
habra.15
habrabot(difrex,1) — All
2015-12-21 12:00:04


Вашему вниманию предлагается перевод поста о том, как разрабатывался Windows Azure API: о трудностях, удачных и неудачных решениях, сделанных выводах. Далее — текст автора. После разговора с моим коллегой [по работе][1] о REST API мне пришла в голову идея рассказать о своем опыте организации и работы команды, которая создала Windows Azure Service Management API. На написание этого поста меня вдохновили такие великолепные статьи в жанре “чему я научился” как [эта][2] за авторством Foursquare и [эта][3] от Даниэля Джакобса из Netflix. Предупреждение: Все рассказанное под катом — мое личное мнение. Я даже не уверен, что остальные участники команды со мной согласны. И я точно знаю, что некоторые из высказанных мыслей довольно противоречивы. [ознакомиться с личным мнением автора][4]

[1]: http://www.linkedin.com/in/sriramkrishnan01
[2]: http://engineering.foursquare.com/2011/07/08/apiv2-woulda-coulda-shoulda/
[3]: http://techblog.netflix.com/2011/02/redesigning-netflix-api.html
[4]: http://habrahabr.ru/post/273533/#habracut

[>] [Перевод] Новый графический режим: CGA в 1024 цвета
habra.14
habrabot(difrex,1) — All
2015-04-23 02:30:02


![image][1] Речь пойдёт о демке "[8088 MPH][2]", победившей в соревновании [Revision 2015][3]'s Oldskool Demo. Мы, вместе с [Trixter][4], [reenigne ][5] и [Scali ][6]сделали это. И я получил возможность не только работать с группой волшебников программирования, но и побить мировые рекорды при изготовлении демок для старого доброго IBM PC, маму и папу современной платформы x86. Если у вас под рукой по какой-то причине не оказалось IBM PC x86 с CGA-адаптером, вы можете посмотреть демку на ютубе:




Технические подробности содержатся в [посте reenigne][7], а я решил рассказать эту историю в более наглядном виде. [Читать дальше →][8]

[1]: http://habrastorage.org/getpro/habr/post_images/d79/1d4/509/d791d45099e4677c445995ac6f923237.png
[2]: http://www.pouet.net/prod.php?which=65371
[3]: http://2015.revision-party.net/
[4]: http://trixter.oldskool.org/
[5]: http://www.reenigne.org/blog/
[6]: https://scalibq.wordpress.com/
[7]: http://www.reenigne.org/blog/1k-colours-on-cga-how-its-done/
[8]: http://habrahabr.ru/post/256409/#habracut

[>] Забытое слово: environment
habra.15
habrabot(difrex,1) — All
2015-12-21 13:00:05


Давным-давно, когда компьютеры были большими, а программы маленькими, использовалось такое важное понятие, как Environment. Этот хороший термин уже утратил зарезервированный смысл, но не потерял своей актуальности. В связи с широким использованием виртуализации, информация об операционном окружении стала предметом обсуждения и в чем-то даже спортивного интереса среди программистов. Поучаствовать в этом мы решили с «железным» аргументом — инструкцией CPUID. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273555/#habracut

Pages: 1 ... 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 ... 210