RSS
Pages: 1 ... 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 ... 210
[>] Bounty-программа в Badoo
habra.16
habrabot(difrex,1) — All
2016-03-15 16:00:03


![image][1]Сегодня у многих IT-компаний есть собственные bounty-программы (или программы по поиску уязвимостей). Badoo — в их числе. В этой статье я расскажу о том, как мы, не имея отдела информационной безопасности, запустили и ведем свою bounty-программу. Я расскажу о проблемах, с которыми мы столкнулись, как их решали и каким образом пришли к тому, что у нас сейчас есть. И, конечно, упомяну о некоторых интересных багах, присланных участниками этой программы. Со времени старта нашей bounty-программы прошло три года. Нам до сих пор продолжают присылать сообщения участники со всего мира. Мы хотим усилить интерес к ней, в том числе со стороны иностранных исследователей. Поэтому мы, во-первых, открыли страничку с нашей программой на крупнейшем портале исследователей [hackerone.com][2], а во-вторых — увеличили суммы вознаграждений за найденные уязвимости! Теперь сумма вознаграждения, в зависимости от категории, начинается от **£100** и может достигать **£1000**, сумма супер-премии составляет **£2000** (а это более 200 000 рублей по текущему курсу!) и даже больше, если обнаруженная уязвимость представляет реальную угрозу для наших пользователей. [Читать дальше][3]

[1]: https://habrastorage.org/files/3e3/f7e/033/3e3f7e033f0c43aea5abdce3735049d0.png
[2]: https://hackerone.com/badoo
[3]: https://habrahabr.ru/post/279325/#habracut

[>] [Перевод] 7 сайтов, о которых должен знать каждый .NET-разработчик
habra.16
habrabot(difrex,1) — All
2016-03-15 16:00:03


На сегодняшний день миллионы разработчиков по всему миру используют технологии Microsoft.NET. Если вы один из них или хотите им стать, обязательно добавьте нижеперечисленные сайты в «Избранное», сохраните в закладки или просто запишите в блокнот (заодно вспомните, как это – писать ручкой на бумаге). ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/ed7/04e/a74/ed704ea743534e828748081eabd6a61c.jpg
[2]: https://habrahabr.ru/post/279311/#habracut

[>] Приглашаем на Moscow Python Meetup 18 марта
habra.16
habrabot(difrex,1) — All
2016-03-15 16:00:03


![][1] 18 марта, в пятницу, приглашаем на Moscow Python Meetup 33 в офис Mail.Ru Group. На встрече планируются следующие выступления спикеров: ![][2]**— «QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Rambler&Co** Существуют три наисложнейшие проблемы в программировании: именование, кэширование и выход за границу массива. Проверка пограничных случаев поведения кода наиболее важна, но эта зона также наименее тестируема. Придумать и предугадать все возможные ситуации человеку тяжело, и порой мы что-то упускаем из виду. Вот было бы здорово, если бы тесты сами находили такие случаи, при которых код падает… Мечты? О том, как превратить их в реальность, пойдет речь в докладе. [Читать дальше →][3]

[1]: https://habrastorage.org/files/b05/aab/456/b05aab4568f74ff8bfe2f93590ed376b.png
[2]: https://habrastorage.org/files/e4d/7ac/6a3/e4d7ac6a3b1844abb9dacc28ef522a12.jpg
[3]: https://habrahabr.ru/post/279323/#habracut

[>] Как заставить GNU Make исполнить файл многократно с разными аргументами
habra.16
habrabot(difrex,1) — All
2016-03-15 16:00:03


В современных публикациях, все чаще можно слышать о недостатках утилиты **Make**. Например, в статье [Qt Build System: спасательный круг для сборки][1] приводятся мнения двух экспертов, первым из которых выступает [Peter Miller][2] с критикой рекурсивных возможностей **Make**. Разумеется, обоснованная критика необходима, иначе мы не сможем двигаться дальше. Но все-таки, хочется заступиться за старую, добрую утилиту **Make**. Тем более, что данная утилита используется в миллионах проектов и, ее рано сбрасывать со щетов. Надо просто помнить, что, по сути, **Make** является простой программой, связывающей цели пользователя с действиями, которые необходимо осуществить для достижения этих самых целей. Нельзя требовать от программы того, что она не может делать в принципе, а именно исправлять ошибки пользователя. Она может лишь пожаловаться на то, что ее заставляют делать неприличные вещи. О рекурсивных Make-файлах, параллельной и многопоточной сборке, а также о скорости сборки, мы поговорим позднее, надеюсь у нас еще будет повод, а сейчас хотелось бы представить одну из возможностей, которую предоставляет утилита **GNU Make** Предположим, что нам необходимо собрать программу или отчуждаемый пакет для работы на трех устройствах с именами **ci20**, **bt01** и **dm64**. Первые два устройства **ci20** и **bt01** основаны на архитектуре **MIPS**, третье устройство **dm64** построенно на базе процессора **ARM**. Toolchain-ы, для простоты, назовем **mips** и **arm**, соответственно. Сценарий сборки исходной программы одинаков для всех трех устройств и написан на языке **GNU Make**. Если представить все комбинации вызовов команды **Make**, необходимые для сборки программы на наши устройства, получим:

$ TOOLCHAIN=mips HARDWARE=ci20 make
$ TOOLCHAIN=mips HARDWARE=bt01 make
$ TOOLCHAIN=arm HARDWARE=dm64 make


или, при передаче имен устройств и Toolchain-ов в качестве аргументов:

$ make TOOLCHAIN=mips HARDWARE=ci20
$ make TOOLCHAIN=mips HARDWARE=bt01
$ make TOOLCHAIN=arm HARDWARE=dm64


Таким образом, система сборки должна принимать пары **TOOLCHAIN – HARDWARE**, которые определяют какой именно Toolchain необходимо использовать для того или иного устройства. [Читать дальше →][3]

[1]: https://habrahabr.ru/post/144127/
[2]: http://aegis.sourceforge.net/auug97.pdf
[3]: https://habrahabr.ru/post/279271/#habracut

[>] [Перевод] Как мы писали код Netflix
habra.16
habrabot(difrex,1) — All
2016-03-15 16:30:03


![image][1] Как именно в Netflix реализован код до этапа работы в облаке? Части этой истории мы рассказывали и прежде, но сейчас настало время добавить в неё больше деталей. В данном посте мы опишем инструменты и методы, позволившие нам пройти путь от исходного кода до развёрнутого сервиса, который позволяет наслаждаться фильмами и сериалами более чем 75 миллионам подписчиков со всего мира. ![image][2] Схема выше – отсылка к предыдущему посту, [представляющему Spinnaker][3], нашу глобальную непрерывную платформу передачи данных. Но до попадания в Spinnaker строке кода нужно пройти несколько этапов:

* Код должен быть написан и локально испытан плагинами [Nebula][4];
* Изменения перемещаются в центральное хранилище git;
* Jenkins запускает Nebula, которая создаёт, тестирует и подготавливает приложения для облака;
* Билды «выпекаются» в Amazon Machine Image;
* Spinnaker способствует разблокировке и активизации измененного кода.

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

[1]: https://habrastorage.org/getpro/habr/post_images/f05/b82/b77/f05b82b7793fb10d7ece4e50b0efc715.jpg
[2]: https://habrastorage.org/getpro/habr/post_images/8c5/34a/10c/8c534a10c6b673a0b4e892fefd5e2135.png
[3]: http://techblog.netflix.com/2015/11/global-continuous-delivery-with.html
[4]: http://nebula-plugins.github.io/
[5]: https://habrahabr.ru/post/279295/#habracut

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


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

[1]: https://habrastorage.org/files/c2d/db7/60e/c2ddb760e2c9442f9226e25363026dba.png
[2]: https://habrahabr.ru/post/279219/#habracut

[>] Juniper MX + IX + SynFlood
habra.16
habrabot(difrex,1) — All
2016-03-15 19:30:03


В данной статье я бы хотел рассказать об одном достаточно простом методе защиты от [Syn Flood][1] атак на маршрутизаторах Juniper серии MX. Данный метод может помочь при нескольких условиях, о которых рассказано ниже. Конечно, есть аппаратные и программные решения, технологии [Syn Cookies][2], Syn Proxy и другие. Но, иногда, большую часть трафика получается заблокировать на маршрутизаторе без применения дополнительных механизмов или дорогостоящих устройств. Так как мы использовали для настройки маршрутизатора некоторые статьи наших [коллег][3], решили поделиться и нашим опытом, он достаточно специфичны, но надеемся принесет пользу. Пример такой атаки приведен на графике ниже. ![][4] [Читать дальше →][5]

[1]: https://en.wikipedia.org/wiki/SYN_flood
[2]: https://en.wikipedia.org/wiki/SYN_cookies
[3]: https://habrahabr.ru/post/186566/
[4]: https://habrastorage.org/files/0b0/81f/23f/0b081f23f4f04a57abf764ee3d6858d5.png
[5]: https://habrahabr.ru/post/278613/#habracut

[>] Универсальный инструмент для установки бэкдоров: Что не так с системными обновлениями
habra.16
habrabot(difrex,1) — All
2016-03-15 20:30:02


[![][1]][2] В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — [биллинга для операторов связи «Гидра»][3], но и публикуем материалы о работе с инфраструктурой и использовании технологий. Немецкий журналист и хакер Ляйф Риге (Leif Ryge) написал для издания Ars Technica интересный [материал][4] о том, что современный подход к организации обновлений программного обеспечениях несет в себе серьезные риски информационной безопасности. Мы представляем вашему вниманию главные мысли этой заметки. [Читать дальше →][5]

[1]: https://habrastorage.org/files/9a7/6fd/d1b/9a76fdd1bfda459ba7ffbc570079707a.jpg
[2]: https://habrahabr.ru/company/latera/blog/279339/
[3]: http://www.hydra-billing.ru/
[4]: http://arstechnica.com/security/2016/02/most-software-already-has-a-golden-key-backdoor-its-called-auto-update/
[5]: https://habrahabr.ru/post/279339/#habracut

[>] Как прервать непрерывную интеграцию
habra.16
habrabot(difrex,1) — All
2016-03-16 12:00:03


Я — пентестер, и так получилось, что практически на всех проектах, хотя бы отдаленно связанных с анализом инфраструктуры разработчиков, мне встречаются установленные Jenkins и TeamCity (один раз я даже видел Bamboo). Немного гугла, и я выяснил, что это все — так называемые системы непрерывной интеграции. Конечно, в какой-то момент у меня в голове стали возникать вопросы вроде: «А что это вообще за системы такие?» и «Что с ними можно сделать?», естественно, с точки зрения пентестера. Ответив на поставленные вопросы, мы поймем, какую выгоду потенциальный злоумышленник может извлечь и какой вред нанести в рамках экосистемы разработчика, используя лишь имеюущуюся в ней систему непрерывной интеграции. ****

## Agile — это модно

![][1] Думаю, что большей части читателей Хабра наверняка знакомы такие ключевые слова, как Agile, Scrum или даже Sprint. Если вдруг нет, то кратко и очень приблизительно это все можно охарактеризовать так: постоянный выпуск новых законченных (т.е. обладающих каким-то конечным набором функций) релизов приложения. Подробнее можно почитать, например, в [Википедии][2]. Не будем останавливаться на этом подробно, т.к. потенциальному злоумышленнику, для проведения успешной атаки, эти знания особенно и не нужны. Однако стоит заметить, что с каждым днем все больше и больше разработчиков (да большинство!) обращается в Agile-веру, и, конечно, сталкивается с необходимостью как-то управлять всеми этими бесконечными промежуточными релизами. И именно для этой цели и используются системы непрерывной интеграции. Забегая немного вперед, нужно сказать, почему же эти системы могут заинтересовать злоумышленника (или, в нашем случае, конечно, пентестера) и почему стоит беспокоиться об их безопасности.

* Во-первых, в силу специфики своей работы, они взаимодействуют напрямую с исходными кодами (утечка которых, во многих случаях может означать значительные убытки для компании).
* Во-вторых — зачастую, для корректной сборки исходных кодов в конечный продукт, пользователи системы создают так называемые сборочные скрипты, которые могут быть реализованы как средствами самой системы непрерывной интеграции, так и с использованием сторонних инструментов (например, скрипты могут загружаться из репозиториев). В простейшем случае, эти скрипты представляют собой batch или bash файлы, т.е. по сути они ограничены только возможностями самой ОС, на которой исполняются. Таким образом, если злоумышленник смог модифицировать сборочный скрипт, он сможет выполнять команды ОС непосредственно на сборочном сервере.

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

[1]: https://habrastorage.org/files/55b/cf2/5eb/55bcf25eb39c4dcc920f94513895a735.jpg
[2]: https://en.wikipedia.org/wiki/Agile_software_development
[3]: https://habrahabr.ru/post/278283/#habracut

[>] [PF] Печать PDF средствами .NET
habra.16
habrabot(difrex,1) — All
2016-03-16 12:00:03






Под катом хочу рассказать про вывод на печать PDF фалов под .NET. С уклоном на печать из разных лотков принтера. Это бывает полезно, когда нужно распечатать документы, состоящие из разных типов бумаги разложенных по лоткам принтера. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279361/#habracut

[>] Обработка времени в SFML
habra.16
habrabot(difrex,1) — All
2016-03-16 13:00:03


![][1] _От переводчика: данная статья является пятой в цикле переводов официального руководства по библиотеке SFML. Прошлую статью можно найти [тут.][2] Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинал статьи можно найти [тут][3]. Начнем._ [Читать дальше →][4]

[1]: https://habrastorage.org/files/bc7/94a/b37/bc794ab377be444f8090426e56ae38bd.png
[2]: https://habrahabr.ru/post/279279/#first_unread "Компиляция SFML с помощью CMake"
[3]: http://www.sfml-dev.org/tutorials/2.3/ "Оригинальная документация по SFML"
[4]: https://habrahabr.ru/post/279347/#habracut

[>] Парсеров всем! Анализируем и тестируем существующие HTML парсеры
habra.16
habrabot(difrex,1) — All
2016-03-16 15:00:02


![][1] Всем привет! После публикации [предыдущей статьи][2] на почту прилетело не мало писем с просьбой показать и доказать, чем же одно решение лучше другого. Я, воодушевленно принялся сравнивать, но всё, как обычно, немного сложнее, чем кажется с первого взгляда. Да, в этой статье я предлагаю выложить все парсеры на стол и измерить! [Приступим!][3]

[1]: https://habrastorage.org/files/745/c9a/91a/745c9a91a0e94cb58424eb5e39564bba.png
[2]: https://habrahabr.ru/post/277031/
[3]: https://habrahabr.ru/post/279409/#habracut

[>] Регистрация на вебинар «Легкая облачная защита корпоративной сети с низкой полной стоимостью владения»
habra.16
habrabot(difrex,1) — All
2016-03-16 15:00:02


**24 марта 2016г в 12:00 (мск) **приглашаем Вас на бесплатный вебинар «Легкая облачная защита корпоративной сети с низкой полной стоимостью владения». На мероприятии Вы узнаете, как с помощью облачного SaaS-решения Panda Endpoint Protection\* можно обеспечить **эффективную централизованную ИТ-защиту всех устройств в компании**, независимо от их местоположения. Докладчик: Алексей Паздников, Генеральный директор Panda Security в России.

##### [Зарегистрироваться ][1]

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

[1]: http://event.on24.com/wcc/r/1153410/012AD0CD509BE805C2CAD342268375D6
[2]: https://habrastorage.org/files/2c2/5e6/ef6/2c25e6ef66924db2a18b18d4658aa099.gif
[3]: https://habrahabr.ru/post/279405/#habracut

[>] AirPlay сервер и бэкап Time Machine на MTK-роутерах (и не только)
habra.16
habrabot(difrex,1) — All
2016-03-16 15:00:02


_Удивительные приключения Open Source разработки, или как некоторые программисты, используя свободное ПО, саботируют саму идеологию Open Source_ [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279369/#habracut

[>] Понять Open Source: модели использования
habra.16
habrabot(difrex,1) — All
2016-03-16 15:00:02






__

## Для чего компании и отдельные люди вкладываются в Open Source?

Википедия предлагает [воз и маленькую тележку ответов][1] на этот вопрос. Я не буду здесь перепечатывать Википедию. Остановлюсь только на нескольких моделях работы с Open source. На тех, которые, как мне кажется, либо плохо проиллюстрированы в популярных источниках, либо не упомянуты вовсе. Особое внимание я уделю подходам, появившимся относительно недавно. Тем самым я исполню обещание, данное в [предыдущем посте на тему открытого кода][2] – обещание поговорить о путях развития Open source. В конце вас ждет несколько опросничков (которые упертый движок Хабрахабра упорно не позволяет вставлять в основной текст). [Поехали!][3]

[1]: https://en.wikipedia.org/wiki/Business_models_for_open-source_software
[2]: https://habrahabr.ru/post/267473/
[3]: https://habrahabr.ru/post/279335/#habracut

[>] [Из песочницы] Почему я пишу свои алгоритмы в 95% случаев, и буду и дальше разрабатывать кодовые велосипеды
habra.16
habrabot(difrex,1) — All
2016-03-16 15:00:02


Это ответ на пост "[А нужно ли знать программисту алгоритмы?][1]" Так почему я пишу свои алгоритмы в 95% случаев и буду их и дальше писать? Дабы быть кратким, сразу приведу конкретику в моем случае (весьма экзотическом), но отмечу что есть немало случаев-аналогов. Если в вашей практике нет случая-аналога — поздравляю, вам не нужно заморачиваться велосипедами. Возьмите готовый код, это реально отличный вариант для RAD, да и просто для потоковой разработки, где время — деньги, а специальные требования отсутствуют. Я разработчик экспериментальной системы управления крылатым беспилотником. [Читать дальше →][2]

[1]: https://habrahabr.ru/post/279093/
[2]: https://habrahabr.ru/post/279419/#habracut

[>] [Перевод] Компиляция SFML с помощью CMake
habra.16
habrabot(difrex,1) — All
2016-03-16 15:00:02


![][1] _От переводчика: данная статья является пятой в цикле переводов официального руководства по библиотеке SFML. Прошлую статью можно найти [тут.][2] Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинал статьи можно найти [тут][3]. Начнем._ [Читать дальше →][4]

[1]: https://habrastorage.org/files/bc7/94a/b37/bc794ab377be444f8090426e56ae38bd.png
[2]: https://habrahabr.ru/post/279107/#first_unread "SFML и Linux"
[3]: http://www.sfml-dev.org/tutorials/2.3/ "Оригинальная документация по SFML"
[4]: https://habrahabr.ru/post/279279/#habracut

[>] Вариант развёртывания Linux систем на базе Puppet 4. Часть IV: централизованное управление (cftotalcontrol)
habra.16
habrabot(difrex,1) — All
2016-03-16 15:00:02




# Вкратце:



> 1. **[cftotalcontrol][1]** — модуль создания среды специальной учётной записи с SSH доступом к другим узлам инфраструктуры и выполнения массовых рутинных задач параллельно.
> 2. Отвлечённая от реализации теория организации безопасного и контролируемого доступа к инфраструктуре.
> 3. Описывается практическое применение конкретного решения
>
>

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

[1]: https://forge.puppetlabs.com/codingfuture/cftotalcontrol
[2]: https://habrahabr.ru/post/279375/#habracut

[>] Персистентная оперативная память
habra.16
habrabot(difrex,1) — All
2016-03-16 19:00:02


Сегодня — рассказ про одну из ключевых концепций ОС Фантом. Впрочем, сама концепция, конечно, существовала и до Фантома — фактически, у Танненбаума в конце книги, там, где он позволяет себе фантазировать, просматриваются очертания почти всех особенностей Фантома, так что, в целом, подход довольно очевиден для тех, кто хотя бы задумывается о будущем систем вообще. Персистентная оперативка — очень простая и очень непростая вещь. В целом, всё просто: представьте себе, что содержимое оперативной памяти не пропадает. Никогда. Например, при выключении компьютера. Или, например, при… исчезновении компьютера. «И души умерших программ носятся над водою.». :) Ну, действительно — неважно: если мы смогли спасти состояние компьютера перед его отключением, то можно восстановить это состояние в другом. Таком же. Вообще таком же? Прямо до микросхемы? А если в нём видеокарта другая — уже нельзя? Можно, потому что мы говорим не о том, чтобы заперсистить, сохранить **всё** состояние компьютера, а только его оперативную память. Но тогда в этом нет пользы, скажет внимательный читатель — уже хотя бы регистры надо бы сохранить? Иначе восстановление только памяти не позволит программе работать как если бы ничего не происходило. А задача — именно такова. Обеспечить программе среду, в которой остановка ОС и остановка компьютера для программы выглядели исключительно как нажатие на кнопку «пауза» при просмотре фильма. Во время паузы «под программой» можно даже компьютер поменять, но надо как-то обеспечить ситуацию, в которой продолжение работы для программы будет совершенно прозрачным. Это недостижимо, если требование доводить до абсолюта. Состояние хардвера сохранить и полностью восстановить нельзя. Но и не надо. Программе не нужна видеокарта, ей нужен тот же API и сохранённая картинка на экране, а это — можно. Что вырисовывается: сохранить состояние только оперативки — мало, а всего компьютера — нереально. Инженерная смекалка говорит нам, что нужно специфицировать для программы некоторую среду, которой во-первых, достаточно для самой программы, а во-вторых, в рамках такой среды должно быть возможно выполнить сохранение консистентного состояния программы и всего, что она «видит». [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279443/#habracut

[>] [Из песочницы] Зачем программисту знать алгоритмы
habra.16
habrabot(difrex,1) — All
2016-03-16 19:30:02


Часто появляются статьи вида «нужны ли программисту алгоритмы», и все они имеют примерно одинаковый шаблон. Автор статьи как правило пишет: «Я N лет пишу сайты/скрипты в 1С, и никогда не пользовался алгоритмами или структурами данных. Тут же приводятся в пример красно-чёрные деревья или какие-нибудь другие экзотические структуры, которые в области, в которой работает автор не часто увидишь, если увидишь вообще. Такие статьи сводятся к тому, что в конкретной области программисты не используют сложные структуры данных и не решают NP задач. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279453/#habracut

[>] Новая ICQ для Windows, открытый код и кое-что еще
habra.16
habrabot(difrex,1) — All
2016-03-16 19:30:02


![][1] В ноябре 2015 года мы вспоминали, [как менялся интерфейс Аськи][2]. Сегодня мы выпустили новую версию для Windows, внешность которой была полностью переработана. ICQ обрела минималистичный интерфейс и стала очень похожа на свою мобильную инкарнацию. А кроме того — тадам! — мы открыли исходный код приложения, потому что использовали для создания новой версии [кроссплатформенный инструментарий Qt][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/d92/564/802/d925648028954e5489c92d19bb1d3058.jpg
[2]: https://habrahabr.ru/company/mailru/blog/271317/
[3]: http://www.qt.io/
[4]: https://habrahabr.ru/post/279435/#habracut

[>] С днем рождения, Ричард Столлман
habra.16
habrabot(difrex,1) — All
2016-03-16 21:30:05


_«Бесспорно, величайшая фигура хакерской культуры»_ Эрик Рэймонд о Ричарде Столлмане ![image][1]

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

Сегодня день рождения «последнего истинного хакера», Ричарда Столлмана, «вечного студента», освободителя ПО и идеолога [свободного программного обеспечения][2] (не путать с [Открытое программное обеспечение][3]), создателя GNU, автора концепции «copyleft». Хоть Ричард и выглядит чудаком, но [список наград][4] и вклад в развитие самосознания и мировоззрения разработчиков ПО впечатляет.































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

[1]: https://habrastorage.org/getpro/habr/post_images/861/7bd/c28/8617bdc285c662a00499cdda036e1ee1.png
[2]: https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
[3]: https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
[4]: https://en.wikipedia.org/wiki/Richard_Stallman#Honors_and_awards
[5]: https://habrahabr.ru/post/279451/#habracut

[>] [Перевод] Что делает программное обеспечение качественным?
habra.16
habrabot(difrex,1) — All
2016-03-16 23:30:02


![image][1] _КДПВ_ Кто-то создает программное обеспечение с открытым исходным кодом, а я провожу много времени размышляя над тем, как сделать программное обеспечение лучше. Бесконечный поток просьб о помощи на форумах Stack Overflow, GitHub, Slack, в электронных письмах и личных сообщениях неизбежен. К счастью, в итоге вы знаете многих людей, которые добились определенного успеха и сделали фантастические вещи, и знание о том, что вы приняли в этом участие благодаря вам и вашей помощи, является хорошей мотивацией для новых достижений. У вас возникает вопрос: какие качества программного обеспечения приводят разработчика к успеху или к неудаче? Как я могу улучшить свой софт и помочь бо́льшему количеству людей стать успешным? Я могу ясно сформулировать некоторые основные принципы или полагаюсь на интуицию в зависимости от конкретного случая? (Рождение и воплощение одной мысли это два совершенно разных действия). Возможно это что-то вроде принципов [Дитера Рамса][2], способствующих качественному дизайну программного обеспечения?

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

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

[1]: https://habrastorage.org/getpro/habr/post_images/0ea/fba/a64/0eafbaa64ffa4af65a5473aef822ab91.png
[2]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%BC%D1%81,_%D0%94%D0%B8%D1%82%D0%B5%D1%80
[3]: https://habrahabr.ru/post/279459/#habracut

[>] Критические уязвимости в клиенте и серверной части Git позволяют осуществлять удаленное выполнение кода
habra.16
habrabot(difrex,1) — All
2016-03-17 01:00:02


[![][1]][2] Исследователь информационной безопасности Лаел Целлье (Laël Cellier) [обнаружил][3] две критические уязвимости в клиенте и серверной части Git (CVE-2016-2324 и CVE‑2016‑2315). Воспользовавшись ими, злоумышленники могут осуществлять удаленное выполнение кода. Для этого необходимо создать репозиторий с деревом файлов с очень длинными названиями, а затем отправить «пуш» на удаленный уязвимый сервер или позволить уязвимому клиенту осуществить «пулл». [Читать дальше →][4]

[1]: https://habrastorage.org/files/04c/abf/be4/04cabfbe415242c2a46ab21795b565fc.png
[2]: https://habrahabr.ru/company/pt/blog/279483/
[3]: http://seclists.org/oss-sec/2016/q1/645
[4]: https://habrahabr.ru/post/279483/#habracut

[>] Линейные модели: простая регрессия
habra.16
habrabot(difrex,1) — All
2016-03-17 06:00:03


В прошлый раз мы подробно рассмотрели [многообразие линейных моделей][1]. Теперь перейдем от теории к практике и построим самую простую, но все же полезную модель, которую вы легко сможете адаптировать к своим задачам. Модель будет проиллюстрирована кодом на R и Python, причем сразу в трех ароматах: scikit-learn, statsmodels и Patsy. [Читать дальше →][2]

[1]: https://habrahabr.ru/post/278513/
[2]: https://habrahabr.ru/post/279117/#habracut

[>] Об одном забавном подходе к фильтрации унимодальных сигналов
habra.16
habrabot(difrex,1) — All
2016-03-17 11:30:03


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

[1]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%85_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2
[2]: https://habrastorage.org/files/e0b/2f0/b23/e0b2f0b23c4f4d9286de905eea8efa43.png
[3]: https://habrastorage.org/files/04a/18d/7e7/04a18d7e73d64928ac47b70f6d123241.png
[4]: https://habrastorage.org/files/737/c56/027/737c56027a27439794de77ffd56158e5.png
[5]: https://habrahabr.ru/post/279427/#habracut

[>] Мой велосипед или о том как я сэкономил свои нервные клетки
habra.16
habrabot(difrex,1) — All
2016-03-17 12:30:02


Приветствую хабровчане! Вот уже пол года как мой основной Desktop работает на Ubuntu, о плюсах и минусах Linux писать не буду, пост не об этом. Так вот… я к сожалению не владею слепым методом набора текста, да и не было смысла обучаться так как в окнах меня вполне сносно спасала программа PuntoSwitcher которой пользовался около 5-ти лет, однако её аналог Xneur на Ubuntu мягко говоря работал «не очень» и вовсе не работал в Skype. Некоторое время я мирился с этим, потом пробовал безуспешно написать небольшую программку на Java. Требования к программе:

1. Быстрый запуск
2. Иконка в трее для выхода из приложения и отмены конвертации
3. Конвертация по глобальной комбинации клавиш

— это тот функционал которым я и пользовался в PuntoSwitcher. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/aa8/e47/0cd/aa8e470cd5b8dd8aae1f82ce1fe239b3.jpg
[2]: https://habrahabr.ru/post/279499/#habracut

[>] Что есть в Visual Studio 2015 для разработчика на Python
habra.16
habrabot(difrex,1) — All
2016-03-17 13:00:02







Всем привет! С версией [Visual Studio 2015 Community][1] компания Microsoft впервые предложила разработчикам совершенно бесплатно пользоваться полнофункциональной версией своего мощного инструмента для разработки. Напомню, что функционал Visual Studio 2015 Community почти полностью предоставляет функционал [версии Professional][2], но имеет некоторые лицензионные ограничения по использованию в коммерческой разработке. Visual Studio 2015 Community так же, как и остальные версии инструмента, расширяема, благодаря Visual Studio Marketplace и всем официальным обновлениям инструмента. То есть огромное, постоянно увеличивающееся количество функционала доступно разработчикам совершенно бесплатно. Это касается и инструментов для разработки на[ языке Python][3]. Поддержка Python станет доступна, если отметить соответствующий пункт при установке среды. Это касается и CPython, PyPy, IronPython, поддержки IntelliSense, интерактивной отладки, интеграции и других возможностей Visual Studio для Python: [Читать дальше →][4]

[1]: https://www.visualstudio.com/products/visual-studio-community-vs
[2]: https://www.visualstudio.com/products/visual-studio-professional-with-msdn-vs
[3]: http://microsoft.github.io/PTVS/
[4]: https://habrahabr.ru/post/279455/#habracut

[>] Немного размышлений и советов по оптимизации кода на С++
habra.16
habrabot(difrex,1) — All
2016-03-17 13:30:03


![][1] Эту статью я написал достаточно давно для своего блога, который теперь заброшен. Мне кажется, в ней есть весьма полезная информация, поэтому не хотелось бы, чтобы она просто исчезла. Очень может быть, что-то уже устарело, буду благодарен, если мне на это укажут. Как правило, язык C++ используют там, где требуется высокая скорость работы. Но на C++ без особых усилий можно получить код, работающий медленнее какого-нибудь Python/Ruby. Именно подобным кодом оперируют многочисленные сравнения _Any-Lang_ vs C++. Вообще, оптимизация бывает трех типов:

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

Специально заниматься оптимизацией готового кода следует только после того, как проект закончен и используется. Как правило, оптимизация потребуется только в небольшой части проекта. Поэтому сначала нужно найти места в коде, которые съедают большую часть процессорного времени. Ведь какой смысл ускорять код, пусть даже на 500%, если он отнимает только 1% машинного времени? И следует помнить, что, как правило, гораздо больший выигрыш в скорости дает оптимизация самих алгоритмов, а не кода. Именно про данный ее вид говорят: «преждевременная оптимизация — зло» (с). Второй тип оптимизации — это изначальное проектирование кода с учетом требований к производительности. Такое проектирование не является ранней оптимизацией. Третий тип даже не совсем оптимизация. Скорее это избегание неоптимальных языковых конструкций. Язык C++ довольно сложный, при его использовании частенько нужно знать, как реализован используемый код. Он достаточно низкоуровневый, чтобы программисту пришлось учитывать особенности работы процессоров и операционных систем. [Читать дальше →][2]

[1]: https://habrastorage.org/files/143/ebc/18c/143ebc18c42f4b30ac136e05bd4d263b.jpg
[2]: https://habrahabr.ru/post/279449/#habracut

[>] Критические уязвимости DNS-сервера BIND позволяют удаленно отключать его и проводить DoS-атаки
habra.16
habrabot(difrex,1) — All
2016-03-17 14:30:02


[![][1]][2] В популярном DNS-сервере BIND обнаружены критические уязвимости. Их эксплуатация может открывать злоумышленникам возможности для проведения DoS-атаки а также удаленно останавливать его работу. Информация об уязвимостях была [опубликована][3] специалистами компании ISC, под лицензией которой распространяется программное обеспечение BIND. [Читать дальше →][4]

[1]: https://habrastorage.org/files/928/009/019/928009019c5948558dbf5a5b528bf2ef.png
[2]: https://habrahabr.ru/company/pt/blog/279503/
[3]: http://seclists.org/oss-sec/2016/q1/573
[4]: https://habrahabr.ru/post/279503/#habracut

[>] 2.1 Обработка времени
habra.16
habrabot(difrex,1) — All
2016-03-17 16:00:05


![][1] _От переводчика: данная статья является шестой в цикле переводов официального руководства по библиотеке SFML. Прошлую статью можно найти [тут.][2] Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинальную статью можно найти [тут][3]. Начнем._ [Читать дальше →][4]

[1]: https://habrastorage.org/files/bc7/94a/b37/bc794ab377be444f8090426e56ae38bd.png
[2]: https://habrahabr.ru/post/279279/ "Предыдущая статья: Компиляция SFML с помощью CMake"
[3]: http://www.sfml-dev.org/tutorials/2.3/system-time.php "Оригинальная статья: Handling time"
[4]: https://habrahabr.ru/post/279347/#habracut

[>] Pwn2Own 2016: первые итоги
habra.16
habrabot(difrex,1) — All
2016-03-17 17:00:03


Завершился первый день известного контеста [Pwn2Own][1] 2016, который проходит в Ванкувере. Соревнование представляет из себя площадку, на которой security-ресерчеры могут продемонстрировать свои эксплойты для различных продуктов, включая, веб-браузеры и плагины к ним. На этот раз система проведения Pwn2Own была несколько изменена и была введена система очков за успешные эксплуатации уязвимостей, а также в списке продуктов появилось известное ПО для виртуализации VMware Workstation. ![][2] Как не трудно догадаться, в случае с VMware Workstation участникам предлагается продемонстрировать успешный «побег» из виртуальной машины (VM escape) и запуская эксплойт на виртуальной машине, его код должен выполниться на хосте. Правилами регламентируется, что все запускаемое ПО, а также ОС, должны быть полностью обновлены (up-to-date). [Читать дальше →][3]

[1]: http://community.hpe.com/t5/Security-Research/Zero-Day-Initiative-announces-Pwn2Own-2016/ba-p/6831571#.VupEqamLSUk
[2]: https://habrastorage.org/files/551/5c1/511/5515c15119a44cb396e3b1c39319d0a6.png
[3]: https://habrahabr.ru/post/279497/#habracut

[>] [Из песочницы] Программный поиск процесса по имени в QNX 6.5.0
habra.16
habrabot(difrex,1) — All
2016-03-17 17:00:03


Периодически при разработке приложений в ОС РВ QNX 6.5.0 возникает задача найти процесс зная только его символьное имя, или выяснить какую либо информацию о процессе, или собрать какую либо статистику о процессе. Это может понадобиться для широкого круга задач. ![image][1] Данная задача является платформо-специфичной и единое кроссплатформенное решение доступно только в виде сторонних библиотек. В данной статье мы реализуем небольшой класс «обертку», позволяющий получить информацию о процессе, зная только его имя. Использовать мы будем ЯП C++. [Читать дальше →][2]

[1]: http://www.adzuna.ru/blog/wp-content/uploads/2014/08/24.04.jpg
[2]: https://habrahabr.ru/post/279509/#habracut

[>] На чем писать десктопного клиента для веб-сервиса?
habra.16
habrabot(difrex,1) — All
2016-03-17 17:00:03


Таким вопросом я задался, когда возникла необходимость написать Windows клиента для своего нового сервиса [Hyrax][1]. Сервис позволяет расшарить буфер обмена между компьютерами и/или Android устройствами, а также получать на компьютере все уведомления, приходящие на телефон. Итак, в первую очередь были сформированы требования: [Читать дальше →][2]

[1]: http://hyraxhub.com/
[2]: https://habrahabr.ru/post/279447/#habracut

[>] [Перевод] 1.5 Компиляция SFML с помощью CMake
habra.16
habrabot(difrex,1) — All
2016-03-17 17:00:03


![][1] _От переводчика: данная статья является пятой в цикле переводов официального руководства по библиотеке SFML. Прошлую статью можно найти [тут.][2] Данный цикл статей ставит своей целью предоставить людям, не знающим язык оригинала, возможность ознакомится с этой библиотекой. SFML — это простая и кроссплатформенная мультимедиа библиотека. SFML обеспечивает простой интерфейс для разработки игр и прочих мультимедийных приложений. Оригинальную статью можно найти [тут][3]. Начнем._ [Читать дальше →][4]

[1]: https://habrastorage.org/files/bc7/94a/b37/bc794ab377be444f8090426e56ae38bd.png
[2]: https://habrahabr.ru/post/279147/ "Предыдущая статья: SFML и Xcode (Mac OS X)"
[3]: http://www.sfml-dev.org/tutorials/2.3/compile-with-cmake.php "Оригинальная статья: Compiling SFML with CMake"
[4]: https://habrahabr.ru/post/279279/#habracut

[>] Как превратить поездку на конференцию в крутые выходные?
habra.16
habrabot(difrex,1) — All
2016-03-17 18:00:03


8 апреля в Екатеринбурге пройдет конференция разработчиков [DUMP][1]. Мы уже писали на Хабре про [программу][2] этого года, а вот короткое [видео][3] о том, как DUMP прошел в прошлый раз. Все мы умеем выбирать конференции по интересным темам и уровню зажигательности спикеров, но поездка может не заканчиваться с последним докладом. Этот пост о том, как сделать так, чтобы участие в конференции переросло в классные выходные в городе, который мы любим. Мы не будем писать о прелестях программы и докладчиков, зато расскажем про Ельцин-центр, памятник клавиатуре и конструктивизм. Надеемся, пост будет полезен для тех, кто до сих пор раздумывает, ехать ли ему на DUMP. [][4] [Читать дальше →][5]

[1]: http://dump-conf.ru/section/8/?utm_source=news&utm_medium=post&utm_term=habr&utm_content=habr&utm_campaign=habr
[2]: https://habrahabr.ru/company/it_people/blog/278973/#first_unread
[3]: https://www.youtube.com/watch?v=VfCAEm7Tip0
[4]: https://fotki.yandex.ru/next/users/it-people-ekb/album/480748/view/993683?page=8
[5]: https://habrahabr.ru/post/279445/#habracut

[>] Популярный плагин для WordPress содержит в себе бэкдор
habra.16
habrabot(difrex,1) — All
2016-03-17 19:30:02


![image][1] Специалисты в области информационной безопасности нашли бэкдор в плагине для [WordPress][2], который вносил изменения в основные файлы платформы с целью дальнейшей авторизации и кражи пользовательских данных. Первые признаки наличия бэкдора были замечены сотрудниками компании Sucuri, работающей в области обеспечения информационной безопасности web-сайтов. Один из их клиентов заметил файл со странным названием (auto-update.php), не существовавший до недавнего обновления плагина. Речь идёт о [Custom Content Type Manager (CCTM)][3], популярном плагине для WordPress, предназначенном для создания произвольного типа постов. CCTM был доступен в директории плагинов на сайте WordPress в течение трёх лет и собрал себе довольно большую аудиторию – он установлен на более чем 10000 сайтов. [Читать дальше →][4]

[1]: http://i.imgur.com/xQ8LZGR.png
[2]: https://wordpress.org/plugins/custom-content-type-manager/
[3]: https://wordpress.org/plugins/custom-content-type-manager/
[4]: https://habrahabr.ru/post/279539/#habracut

[>] [Из песочницы] Настройка сервера репозиториев на основе SCM-Manager под Debian
habra.16
habrabot(difrex,1) — All
2016-03-17 23:00:02


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

* авторизация пользователей через Active Directory
* e-mail уведомления о пушах
* управление и создание репозиториев, а так же управление доступом через web-интерфейс
* возможность размещения mercurial, git, svn
* простота разворачивания
* поддержка SSL

Изучение гугла и тестовые установки различного ПО привели меня к SCM-manager, который позволял практически из коробки реализовать все поставленные требования. Внедрение сервиса проводилось на Debian 8.3 x64. Под катом процесс установки и настройки: [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279505/#habracut

[>] Модули расширения Python на Rust
habra.16
habrabot(difrex,1) — All
2016-03-18 00:30:03






_“Absolute statements are the root of all evil. The key is balance. There are no answers, only questions.” ????_ Автор статьи: [zolkko][1].

##### **Оптимизации**

Когда говорят про оптимизацию в контексте ПО, часто подразумевают оптимизацию производительности программиста и/или оптимизацию самого ПО. Исходя из YAGNI-принципа, Python позволяет программисту сосредоточиться на реализации ПО, избавив его от необходимости заботиться о низкоуровневых вещах: регионах памяти, в которых выделяются объекты, освобождении памяти, соглашениях о вызовах. На обратную проблему в [одной из его лекций][2] о Haskell указал Саймон Джонс. У него был слайд со стрелкой, закрашенной градиентом. В начале было написано “no types”, посередине — “Haskell”, в конце — “Coq”. Указав на Coq, он сказал: “This stresses power over usability. Right?! You need a PhD here!”[1]. Несмотря на то, что это была шутка, мантра Python — одна из любимых программистами особенностей этого языка. По моему опыту, это то, что позволяет выпускать готовый продукт несколько быстрее. [Читать дальше →][3]

[1]: https://habrahabr.ru/users/zolkko/
[2]: https://www.youtube.com/watch?v=brE_dyedGm0
[3]: https://habrahabr.ru/post/279561/#habracut

[>] [Перевод] Почему Citrix не стала «новой Red Hat» на рынке виртуализации? Часть 1
habra.16
habrabot(difrex,1) — All
2016-03-18 02:00:03


_Когда писал свой [прошлый пост о том, как поменялось мое отношение к Xen][1], вспомнил, что еще в 2007 году (после [покупки Citrix’ом компании XenSource][2]), обсуждался вопрос о том, что Citrix может стать “новой Red Hat в виртуализации”. И действительно, для этого были все предпосылки — Citrix давний и хорошо известный игрок корпоративного рынка, а XenSource была молодой и амбициозной OpenSource-компанией, основанной участниками проекта Xen._



_Но Citrix не стала «новой Red Hat в виртуализации». Почему? Ответить на этот вопрос поможет статья Питера Левайна (Peter Levine), который занимал пост CEO в XenSource как раз в 2007 году, во время продажи компании. Во второй части статьи я напишу, в чем, на мой взгляд, Питер Левайн прав, а в чем нет. Ну а у вас есть возможность высказаться об этом в комментариях, сразу же после прочтения статьи. ;-)_ [Читать дальше →][3]

[1]: https://habrahabr.ru/post/278071/
[2]: http://ko.com.ua/citrix_priobrela_xensource_za_500_mln_doll_31323
[3]: https://habrahabr.ru/post/279577/#habracut

[>] Ixia выпустила интеллектуальный network packet broker — Vision ONE
habra.16
habrabot(difrex,1) — All
2016-03-18 11:00:03


Компания Ixia, поставщик решений для тестирования, мониторинга и защиты сетей, выпустила продукт Vision ONE — высокопроизводительный интеллектуальный network packet broker. [![][1]][2] Vision ONE имеет 48 портов 1/10GbE SFP+ и 4 порта 40GbE QSFP+. Дальнейшее описание под катом. [Читать дальше →][3]

[1]: https://habrastorage.org/files/89b/82d/f4b/89b82df4bf2048ff87d5feae899724db.jpg
[2]: https://habrahabr.ru/company/muk/blog/279187/
[3]: https://habrahabr.ru/post/279187/#habracut

[>] «Весёлый повар» на FBD шаг за шагом
habra.16
habrabot(difrex,1) — All
2016-03-18 12:00:02


Приветствую всех. Предыдущие статьи были о небольших проектах, сделанных по одному и тому же принципу:

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

Но при этом в конечной программе часть решений была не очевидна. Кроме того, имея перед глазами схему из пары десятков блоков, сложно сразу сообразить, что, как и для чего используется. Поэтому в данном примере будет применен несколько другой подход. Я постараюсь просто и наглядно показать, как сделать простейшую программу шаг за шагом, затратив при этом минимум времени и усилий. И заодно подробно прокомментирую каждый шаг. В качестве примера была выбрана игра [«Электроника ИМ-04 — Веселый повар»][1]. ![][2] Под катом описание по шагам, как написать эту игрушку на языке программирования FBD. [Читать дальше][3]

[1]: https://ru.wikipedia.org/wiki/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0_(%D0%B8%D0%B3%D1%80%D1%8B)
[2]: https://habrastorage.org/files/c52/1f7/946/c521f7946136478eb380fc6130d884cc.png
[3]: https://habrahabr.ru/post/278963/#habracut

[>] [Из песочницы] Полнотекстовый нечеткий поиск с использованием алгоритма Дамерау-Левенштейна
habra.16
habrabot(difrex,1) — All
2016-03-18 14:00:11


Статья написана об использовании алгоритма вычисления расстояния Дамерау-Левенштейна для нечеткого поиска в тексте, без использования вспомогательного словаря. Расстоение Дамерау-Левенштейна используется для сравнения двух слов или двух строк, чтобы определить их схожесть. Некоторое время назад передо мной встала схожая задача — в заданной строке искать вхождение слов, словосочетаний и формул, похожих на образец. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279585/#habracut

[>] Ключ от продуктов JetBrains всем учащимся на Stepic.org
habra.16
habrabot(difrex,1) — All
2016-03-18 17:30:03


Этой весной JetBrains дарит ключи от своих продуктов всем активным учащимся массовых открытых онлайн-курсов по программированию на [Stepic.org][1]! ![][2] Мы в Stepic.org, конечно, считаем, что учиться классно в любое время года, но весной'16 это делать будет особенно приятно! [Читать дальше →][3]

[1]: https://stepic.org
[2]: https://habrastorage.org/files/fd1/034/ace/fd1034ace8d64c498709ef5981c3815f.png
[3]: https://habrahabr.ru/post/278407/#habracut

[>] [Перевод] MCMC-сэмплинг для тех, кто учился, но ничего не понял
habra.16
habrabot(difrex,1) — All
2016-03-18 18:30:02


Рассказывая о вероятностном программировании и Байесовской статистике, я обычно не уделяю особого внимания тому, как, на самом деле, выполняется вероятностный вывод, рассматривая его как некий «чёрный ящик». Вся прелесть вероятностного программирования заключается в том, что, на самом деле, для того, чтобы строить модели,_ не обязательно_ понимать, как именно делается вывод. Но это знание, безусловно, весьма полезно. [][1]



Как-то раз я рассказывал о новой Байесовской модели человеку, который не особенно разбирался в предмете, но очень хотел всё понять. Он-то и спросил меня о том, чего я обычно не касаюсь. «Томас, — сказал он, — а как, на самом деле, выполняется вероятностный вывод? Как получаются эти таинственные сэмплы из апостериорной вероятности?». [Читать дальше →][2]

[1]: https://habrahabr.ru/company/wunderfund/blog/279545/
[2]: https://habrahabr.ru/post/279545/#habracut

[>] Установка приложений в Caché с использованием проекций
habra.16
habrabot(difrex,1) — All
2016-03-18 18:30:02


[][1] Здравствуйте. В этой статье будет описан еще один способ создания установщика для приложений в InterSystems Caché. Под приложениями здесь имеются в виду разные библиотеки или утилиты, которые могут быть добавлены или удалены из Caché всего одним действием. Если вы всё ещё пишете инструкции для пользователей по установке ваших приложений в Caché, состоящие более чем из одной строки — самое время это автоматизировать. [Читать дальше →][2]

[1]: https://habrahabr.ru/company/intersystems/blog/279207/
[2]: https://habrahabr.ru/post/279207/#habracut

[>] [Из песочницы] Настройка LaTeX-шаблонов для Jupyter notebook
habra.16
habrabot(difrex,1) — All
2016-03-18 18:30:02


Есть отличный инструмент для обучения/отчётов/написания умных книг про код — [Jupyter Notebook][1]. Если отчёт или книга, например, пишутся на кириллице, а нужно быстро сделать из этого PDF с красивыми формулами и тире правильной длины, то сразу обнаруживается проблема: в стандартном шаблоне, который Jupyter использует для конвертации блокнотов в PDF через LaTeX, нет подключения нужных пакетов с нужными параметрами, поэтому LaTeX просто не компилируется и PDF не получить. [Что делать?][2]

[1]: http://jupyter.org
[2]: https://habrahabr.ru/post/279601/#habracut

[>] [Из песочницы] Замечательные zippers, или как я научился не волноваться и полюбил древовидные структуры данных
habra.16
habrabot(difrex,1) — All
2016-03-18 19:30:03


Известно, что дерево – довольно сложная структура. И если чтение успешно реализуется рекурсией (которая не лишена своих проблем), то с изменением дела обстоят совсем не хорошо. При этом довольно давно существует высоко эффективный инструмент для работы с деревьями – зипперы, однако широкого распространения он не получил и, мне кажется, я знаю почему. Классическое концептуальное объяснение зиппера, выглядит как-то так: **это взгляд изнутри на древовидную структуру как бы вывернутую наизнанку, вроде вывернутой перчатки**. Это образное объяснение, если поскрипеть мозгами, обычно, конечно же, понимается только в какой-то мере, далее зипперы откладываются в сторону, потому что _«это непонятная какая-то функциональная заморочка, типа монад, потом разберусь»_. У автора _«потом»_ уже наступило. Эта статья – попытка дать альтернативное объяснение зипперов (не путать с объяснением для альтернативно одаренных, хотя…) такое, что позволит быстро понять и немедленно начать использовать зипперы в практических задачах. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279623/#habracut

[>] Релиз CLion 2016.1: новые инструменты и новые языки
habra.16
habrabot(difrex,1) — All
2016-03-18 20:00:05


Привет, Хабр! У нас сегодня отличные новости — вышел очередной релиз нашей кросс-платорфменной среды для разработки на C и C++, CLion 2016.1.

# Версия 2016.1

Вы, наверное, немного удивлены номером версии. Ближайшие релизы других наших десктопных инструментов, кстати, имеет такую же версию, начиная с IntelliJ IDEA 2016.1. В чем же смысл? Если коротко, то теперь все продукты в рамках пакета JetBrains All Products (то есть все десктопные инструменты) получают обновления примерно в одно и тоже время несколько раз в год. Таким образом, версия — это просто год и последовательный номер “пачки” релизов. Основные возможности, реализованные в платформе, попадают во все IDE одновременно, и такая унификация версий позволяет легче ориенироваться в платформенных изменениях. Кроме того, мы решили отказаться от схемы выпуска мажорных-минорных релизов. Теперь каждый релиз нацелен на то, чтобы принести пользу как новыми возможностям, так и постоянными баг-фиксами и улучшениями производительности. Подробно о причинах перехода и самой новой схеме можно почитать в [статье][1] на англоязычном блоге компании. А теперь — непосредственно о новых возможностях! [Читать дальше →][2]

[1]: //blog.jetbrains.com/blog/2016/03/09/jetbrains-toolbox-release-and-versioning-changes/
[2]: https://habrahabr.ru/post/279625/#habracut

[>] [Из песочницы] Полнотекстовый нечеткий поиск с использованием алгоритма Вагнера-Фишера
habra.16
habrabot(difrex,1) — All
2016-03-18 23:00:02


Статья написана об использовании алгоритма вычисления расстояния Левенштейна для нечеткого поиска в тексте, без использования вспомогательного словаря. Расстояние Левенштейна используется для сравнения двух слов или двух строк, чтобы определить их схожесть. Некоторое время назад передо мной встала схожая задача — в заданной строке искать вхождение слов, словосочетаний и формул, похожих на образец. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/279585/#habracut

Pages: 1 ... 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 ... 210