RSS
Pages: 1 ... 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ... 210
[>] Релиз ownCloud 9.0 — opensource альтернатива Dropbox и другим облачным хранилищам
habra.16
habrabot(difrex,1) — All
2016-03-09 21:00:02


![][1] Вышел новый релиз [персональной облачной платформы ownCloud 9.0][2]. Я уже писал про [ownCloud раньше][3]. Я очень люблю этот комбайн из хранилища данных с синхронизацией, версионированием, галереей, календарем, хранением контактов и прочими плюшками. Серверная часть написана на PHP, поддерживаются протоколы WebDAV, CardDAV, CalDAV. Клиентский софт есть под Linux, OS-X, Windows, мобильных платформы и через web интерфейс. В теории может работать с петабайтными объемами данных. Сервис может работать в федеративном режиме — есть возможность объединять и линковать независимые ownCloud-инстансы, делиться каталогами и другими данными. В качестве файловой системы можно использовать GPFS, GlusterFS и другие распределенные варианты. Хорошо допилена интеграция в инфраструктуру Amazon. Changelog:

1. Возможность добавлять комментарии и теги к файлам
2. Новая система уведомлений
3. (Федеративный режим) Автодополнение имен пользователей
4. (Федеративный режим) Списки доверенных серверов
5. Код для дополненией и основных файлов наконец подписан
6. Добавили новую систему обновления
7. Улучшения производительности при совместном доступе к каталогам
8. Новое API для External Storage
9. Различные улучшения системы безопасности

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

[1]: https://habrastorage.org/files/07d/aa9/3ca/07daa93cacb5435e9e2ebc2eb60b3166.png
[2]: https://owncloud.org/
[3]: https://habrahabr.ru/post/233717/
[4]: https://habrahabr.ru/post/278893/#habracut

[>] Релиз ownCloud 9.0 — opensource альтернативы Dropbox и другим облачным хранилищам
habra.16
habrabot(difrex,1) — All
2016-03-09 22:00:02


![][1] Вышел новый релиз [персональной облачной платформы ownCloud 9.0][2]. Я уже писал про [ownCloud раньше][3]. Я очень люблю этот комбайн из хранилища данных с синхронизацией, версионированием, галереей, календарем, хранением контактов и прочими плюшками. Серверная часть написана на PHP, поддерживаются протоколы WebDAV, CardDAV, CalDAV. Клиентский софт есть под Linux, OS-X, Windows, мобильных платформы и через web интерфейс. В теории может работать с петабайтными объемами данных. Сервис может работать в федеративном режиме — есть возможность объединять и линковать независимые ownCloud-инстансы, делиться каталогами и другими данными. В качестве файловой системы можно использовать GPFS, GlusterFS и другие распределенные варианты. Хорошо допилена интеграция в инфраструктуру Amazon. Changelog:

1. Возможность добавлять комментарии и теги к файлам
2. Новая система уведомлений
3. (Федеративный режим) Автодополнение имен пользователей
4. (Федеративный режим) Списки доверенных серверов
5. Код для дополненией и основных файлов наконец подписан
6. Добавили новую систему обновления
7. Улучшения производительности при совместном доступе к каталогам
8. Новое API для External Storage
9. Различные улучшения системы безопасности

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

[1]: https://habrastorage.org/files/07d/aa9/3ca/07daa93cacb5435e9e2ebc2eb60b3166.png
[2]: https://owncloud.org/
[3]: https://habrahabr.ru/post/233717/
[4]: https://habrahabr.ru/post/278893/#habracut

[>] Книга «Алгоритмы: разработка и применение. Классика Computers Science»
habra.16
habrabot(difrex,1) — All
2016-03-09 23:30:02


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

[1]: https://habrastorage.org/files/9eb/f13/f8d/9ebf13f8dfd34b9dbdafa00279987a69.jpg
[2]: https://habrahabr.ru/company/piter/blog/278821/
[3]: https://habrahabr.ru/post/278821/#habracut

[>] [Из песочницы] Установка и настройка совместной работы GitLab + Redmine на Debian 8 jessie + Nginx — Часть 1
habra.16
habrabot(difrex,1) — All
2016-03-10 01:00:03




## Вступление

Так сложилось, что для ведения проекта не хватало обычного GitHub или GitBucket. Оснавная причина в хранении и контроле версий больших бинанрых файлов psd, 3dsmax и других. На самом деле вариантов решения масса, можно например было использовать Облачный диск или git Large Files System, представленный GitHub. Но взвесив все плюсы и минусы разных подходов к организации, мы пришли к связке GitLab + redmine. Я не думаю, что есть смысл описывать продукты, я лишь приведу основные достоинства, которые подтолкнули нас на этот выбор. Основные плюсы GitLab:

* Свой репозиторий.
* Тонкая настройка прав.
* Поддержка git lfs почти из коробки.

Также оба проекта Open Source. [Читать дальше →][1]

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

[>] Книга «Алгоритмы: разработка и применение. Классика Computer Science»
habra.16
habrabot(difrex,1) — All
2016-03-10 10:30:02


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

[1]: https://habrastorage.org/files/9eb/f13/f8d/9ebf13f8dfd34b9dbdafa00279987a69.jpg
[2]: https://habrahabr.ru/company/piter/blog/278821/
[3]: https://habrahabr.ru/post/278821/#habracut

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


Кто-то парсирует текстовый файл программой на Питоне, другой пишет скрипт с регулярными выражениями на Перле, Си-программист стыдливо возится с буферами и указателями, иногда применяя Yacc и Lex. А можно ли парсировать текст голым железом? Вообще без программы? — А как это?, — спросил меня знакомый, — С помощью Ардуино? — Внутри Ардуино стоит вполне фон-неймановский процессор и работает программа, — ответил я, — Нет, еще более голое железо. — А-а-а-а, этот, микрокод?, — догадался мой товарищ и взглянул на меня победно. — Нет, термин «микрокод» использовался для специфической организации процессоров в 1970-е годы, потом его использование сошло на нет, — ответил я и добавил, — Правда есть еще микрооперации в интеловских процессорах, в которые перекодируется x86, но это тоже _другое_. Нет, я имею в виду парсинг текста устройством, состоящим из логических элементов И-ИЛИ-НЕ и Д-триггерами, как на картинке ниже. — Невозможно! — воскликнул мой приятель, — в таком устройстве где-то сбоку должен сидеть процессор и хитро подмигивать! — Почему это невозможно?, — парировал я, — Вот машину Тьюринга знаешь? Парсирует текст на ленте, а сбоку никакие интелы и ардуино не подмигивают. — Нуу, машина Тьюринга, — протянул приятель, — это абстракция, типа Демона Максвелла. — Никакой абстракции, сейчас увидишь работающую схему, парсирующую текст, — сказал я и прибавил, — но сначала расскажу, зачем мне вообще это понадобилось. [![mfp_srec_parser_fragment][1]][2] [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/6c1/1d7/bf2/6c11d7bf23818087189b65cf20e7b142.png
[2]: http://www.silicon-russia.com/wp-content/uploads/2016/02/mfp_srec_parser_fragment.png
[3]: https://habrahabr.ru/post/278681/#habracut

[>] Бюллетень MS16-023: Когда критическое обновление безопасности Windows затрагивает не только безопасность
habra.16
habrabot(difrex,1) — All
2016-03-10 15:30:03


В минувшие дни Microsoft объявили о выпуске новых бюллетеней безопасности в числе которых содержится [MS16-023][1]. Задачей данного обновления безопасности является устранение критических уязвимостей в Internet Explorer позволяющих осуществлять исполнение произвольного кода. Однако, в Microsoft решили, что вместе с критическими обновлениями безопасности своим пользователям так же можно установить и что-нибудь еще… [Подробности][2]

[1]: https://technet.microsoft.com/library/security/MS16-023
[2]: https://habrahabr.ru/post/278933/#habracut

[>] Свежий взгляд на код Oracle VM VirtualBox
habra.16
habrabot(difrex,1) — All
2016-03-10 16:00:02


![][1]Виртуальные машины — важный инструмент в арсенале разработчика программного обеспечения. Мой интерес к коду VirtualBox вызван личным использованием этого продукта для проверки открытых проектов, а также для других разных задач, связанных с использованием нескольких операционных систем. Первая проверка этого проекта состоялась в 2014 году, тогда описание около 50 ошибок едва уместилось в двух статьях. C выходом Windows 10 и VirtualBox 5.0.XX, на мой взгляд, стабильность работы программы заметно ухудшилась. Поэтому я решил проверить проект ещё раз. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/0f1/f27/a1c/0f1f27a1cdd68c9518629c46c5dd1d20.png
[2]: https://habrahabr.ru/post/278959/#habracut

[>] Ошибка в микрокоде процессоров AMD позволяет пользователям виртуальных машин получать доступ к хост-системе гипервизора
habra.16
habrabot(difrex,1) — All
2016-03-10 19:00:03


[![][1]][2] Исследователи [обнаружили][3] ошибку в микрокоде процессоров AMD, эксплуатация которой может позволять злоумышленникам проникать в хост-систему гипервизора из запущенной на нем виртуальной машины. Этой уязвимости подвержены компьютеры, использующие процессоры AMD Piledriver CPU (например, линейка чипов Opteron 6300) и микрокоды версий 0x6000832 и 0x6000836. [Читать дальше →][4]

[1]: https://habrastorage.org/files/dac/732/915/dac7329155904811ace83fe5ac1a8bc0.JPG
[2]: https://habrahabr.ru/company/pt/blog/278955/
[3]: http://www.theregister.co.uk/2016/03/06/amd_microcode_6000836_fix/
[4]: https://habrahabr.ru/post/278955/#habracut

[>] Что нового в Rails 5.0. Можно планировать переезд
habra.16
habrabot(difrex,1) — All
2016-03-10 19:30:03


На 16 марта запланирован релиз Rails 5.0, самое время разобраться, что же нового и вкусного будет в новой версии рельсов (кроме нового логотипа и дизайна их официального сайта, я имею в виду). ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/f52/c36/a59/f52c36a5909a9d619c671c031c501563.png
[2]: https://habrahabr.ru/post/278969/#habracut

[>] libuniset2 — библиотека для создания АСУ. Лучше один раз увидеть…Часть 4 (Наладка)
habra.16
habrabot(difrex,1) — All
2016-03-11 00:30:02


В предыдущих частях ([часть 1][1], [часть 2][2], [часть 3][3]) было описано создание двух процессов: имитатора и процесса управления… Теперь же настало **время наладки**. [Читать дальше →][4]

[1]: http://habrahabr.ru/post/278535/
[2]: http://habrahabr.ru/post/278537/
[3]: http://habrahabr.ru/post/278565/
[4]: https://habrahabr.ru/post/278589/#habracut

[>] Программа конференции DUMP-2016: посмотрите, кто выступает в этом году
habra.16
habrabot(difrex,1) — All
2016-03-11 10:30:03


Привет, Хабр! Приглашаем всех разработчиков, тестировщиков, мобильных разработчиков, дизайнеров и менеджеров разработки на супер it-событие весны — 8 апреля в Екатеринбурге пройдет шестая конференция [DUMP][1]. Доклады будут идти в 7 секциях: FrontTalks, Serverside, Mobile, Web-design, DevOps, Тестирование, Management. Мы доделываем итоговую сетку и обговариваем детали последних докладов, но 80% программы готово. Билет сейчас стоит 4500 рублей, но уже через неделю будет дороже. Welcome! [Читать дальше →][2]

[1]: http://dump-conf.ru/section/8/
[2]: https://habrahabr.ru/post/278973/#habracut

[>] RetroShare — инструмент для приватного общения и обмена данными
habra.16
habrabot(difrex,1) — All
2016-03-11 13:30:03


![][1]После года пребывания в статусе beta и release candidate, состоялся финальный релиз Retroshare версии 0.6.0 Программа развивается в течение вот уже 10 лет. Предыдущая версия 0.5.5 была выпущена осенью 2013 года и приобрела немалую популярность среди специалистов по криптографии, энтузиастов децентрализованных сетей и рядовых пользователей сети Интернет, для которых безопасность файлообмена и общения не пустой звук. Однако следует отметить, что на одном из наиболее популярных ресурсов рунета нет ни одного материала о криптоплатформе RetroShare, пару упоминаний о ней удалось обнаружить лишь в комментариях. Нижеследующий текст можно считать скромной попыткой исправить это упущение. Итак, **Retroshare** — криптографически защищенная децентрализованая платформа для анонимного общения и файлообмена. Система позволяет организовывать обособленные бессерверные Friend-to-Friend сети или одну глобальную сеть (что по факту и существует на сей день) с определённым кругом лиц — например, вашими друзьями, семьёй, коллегами или просто незнакомцами. Соединения устанавливаются напрямую только с теми участниками, которым вы дали разрешение. Это важная особенность, перемещающая подобные сети в рамки особого класса децентрализованных сетей, в которых несанкционированное подключение к вашему компьютеру запрещено без вашей на то доброй воли. Сети такого типа называются „Private p2p“, „Darknet“ или просто „Темная сеть“. [Читать дальше →][2]

[1]: https://habrastorage.org/files/cfc/3df/138/cfc3df1380d945ae9de7ff591923c889.jpg
[2]: https://habrahabr.ru/post/279031/#habracut

[>] Badoo перешли на PHP7 и сэкономили $1M
habra.16
habrabot(difrex,1) — All
2016-03-11 16:00:02


![Badoo перешли на PHP7 и сэкономили $1M][1] Мы сделали это! Несколько сотен наших application-серверов переведены на PHP7 и прекрасно себя чувствуют. Насколько нам известно, это второй переход на PHP7 проекта такого масштаба (после Etsy). В процессе мы нашли несколько очень неприятных багов в системе кеширования байт-кода PHP7, но они исправлены. А теперь — ура! — благая весть для всего PHP-сообщества: PHP7 действительно готов к продакшену, стабилен, потребляет значительно меньше памяти и дает очень хороший прирост производительности. Ниже мы подробно расскажем, как мы перешли на PHP7, с какими трудностями столкнулись, как с ними боролись и какие результаты получили. [Читать дальше →][2]

[1]: https://habrastorage.org/files/c7b/553/eb3/c7b553eb351846a3adaac2bf6883bbee.jpg
[2]: https://habrahabr.ru/post/279047/#habracut

[>] Анонс ThinkJava #3. Микросервисы
habra.16
habrabot(difrex,1) — All
2016-03-11 16:30:02


![][1] Друзья, приглашаем всех желающих посетить нашу третью встречу ThinkJava. На этот раз мы полностью посвящаем её теме микросервисов: что это такое, как начать их использовать, с какими проблемами можно столкнуться и как их решить, а также как обеспечить безопасность приложения с микросервисной архитектурой. Последние несколько лет микросервисы остаются одним из наиболее актуальных подходов к разработке крупных приложений. Осенью прошлого года эксперты компании NIX Solutions изучали все нюансы микросервисной архитектуры на крупнейшей международной отраслевой конференции Spring One 2GX. С тех пор наши разработчики успели опробовать многое из услышанного на практике, поэкспериментировать с микросервисами, наступить на некоторые грабли, научиться избегать ошибок или же без потерь устранять их последствия. А заодно освоили различные инструменты разработки микросервисных приложений. [Читать дальше →][2]

[1]: https://habrastorage.org/files/16f/943/be4/16f943be4c8d4d6eb8336d97a4e64379.png
[2]: https://habrahabr.ru/post/278907/#habracut

[>] Ansible и reverse-proxy сервера
habra.16
habrabot(difrex,1) — All
2016-03-11 16:30:02


![][1] Примерно полгода назад, пришлось разработать схему обратного проксирования сайтов, с многих нод (n>20) на несколько (n<=3) боевых серверов. Недавно столкнулся в аналогичным запросом от коллеги. Поэтому решил поделиться, и все собрать в статью. Уровень статьи — для начинающих. Как результат, был необходим простой инструмент для добавления новых нод и обновления перечня доменов. Профит от такого решения должен быть, при использовании кеширования на сервере, и DNS с геолокацией. [Подробности реализации под катом][2]

[1]: https://habrastorage.org/files/8b3/095/f82/8b3095f8262c4f46bef08adbd6a5d9bc.png
[2]: https://habrahabr.ru/post/269123/#habracut

[>] [Из песочницы] CI своими руками для Unity3D
habra.16
habrabot(difrex,1) — All
2016-03-12 14:30:03


Дисклеймер: я знаю, что лучше было бы поставить Jenkins, а подход к реализации некоторых вещей, далеко не лучший. Но суть в создании CI с API, с полностью своим решением и как можно быстрее. Буду рад советам и любой критике. ![image][1] В наличии у насть есть только GNU/Linux сервер и доступ через ssh. Цель — виртуальная машина с Windows и возможностью делать билды и использовать весь функционал Unity3D из командной строки. Мы установим и будем использовать:

* VNC сервер
* Xcfe оболочку
* Oracle VirtualBox

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

[1]: https://upload.wikimedia.org/wikipedia/commons/8/8a/Official_unity_logo.png
[2]: https://habrahabr.ru/post/279023/#habracut

[>] Вычисление значения многочлена. Все ли тривиально в этом вопросе?
habra.16
habrabot(difrex,1) — All
2016-03-12 17:00:02


Вычисление значения многочлена в точке является одной из простейших классических задач программирования. При проведении различного рода вычислений часто приходится определять значения многочленов при заданных значениях аргументов. Часто приближенное вычисление функций сводится к вычислению аппроксимирующих многочленов. Рядового читателя Хабрахабр нельзя назвать неискушенным в применении всяческих извращений. Каждый второй скажет, что многочлен надо вычислять по [правилу Горнера][1]. Но всегда есть маленькое «но», всегда ли схема Горнера является самой эффективной?



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

[1]: https://ru.wikipedia.org/wiki/%D0%A1%D1%85%D0%B5%D0%BC%D0%B0_%D0%93%D0%BE%D1%80%D0%BD%D0%B5%D1%80%D0%B0
[2]: https://habrahabr.ru/post/279097/#habracut

[>] А нужно ли знать программисту алгоритмы?
habra.16
habrabot(difrex,1) — All
2016-03-12 21:30:03


Не встречали еще разработчика, который вместо стандартной в скриптовом языке функции деления строки по регулярке — пишет C-подобный код с [конечным автоматом][1], который вводит неокрепшие умы в трепет? И так ужасно ли то, что ты не знаешь в тонкостях работу красно-черных деревьев или путаешь линейный дискриминантный анализ с вторым законом Ньютона? :-) [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82
[2]: https://habrahabr.ru/post/279093/#habracut

[>] [Из песочницы] Наблюдение об интернационализованных доменных именах и букве K
habra.16
habrabot(difrex,1) — All
2016-03-12 22:30:02


Наверняка многие используют или слышали про про интернационализованные доменные имена (IDN) — доменные имена, состоящие из символов национального алфавита, например тест.рф. Так же многие знают что латиница и кириллица имеют визуальные схожие символы, например латинская “a” и кириллистическая “а” выглядят одинаково, однако имеют разные коды, т.e. !“a”.equals(“а”). В этой статье речь пойдет о доменных именах которые выглядят очень схоже благодаря одной букве К. В будущем этой схожестью могут воспользоваться злоумышленники, поэтому чтобы избежать этого я хочу рассказать об одном своем наблюдении из области интернационализованных доменных имен. [Читать дальше →][1]

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

[>] libuniset2 — библиотека для создания АСУ. Лучше один раз увидеть…Часть 5 (uniset2-testsuite)
habra.16
habrabot(difrex,1) — All
2016-03-13 11:00:02


В предыдущих частях ([часть 1][1], [часть 2][2], [часть 3][3], [часть 4][4]) было описано создание двух процессов имитатора и процесса управления и предварительная наладка. А теперь я хотел рассказать о написании функциональных тестов и предназначенного специально для этого средства под названием uniset2-testsuite. [Читать дальше →][5]

[1]: http://habrahabr.ru/post/278535/
[2]: http://habrahabr.ru/post/278537/
[3]: http://habrahabr.ru/post/278565/
[4]: http://habrahabr.ru/post/278589/
[5]: https://habrahabr.ru/post/278607/#habracut

[>] Часть 1. Установка и настройка авторитарного DNS сервера на основе решения PowerDNS
habra.16
habrabot(difrex,1) — All
2016-03-13 14:00:03


Добрый день! В этой статье я опишу настройку авторитарного DNS сервера, на основе решения PowerDNS. PowerDNS — высокопроизводительный, бесплатный DNS сервер с открытым исходным кодом. Для сравнения, mail.ru использует PowerDNS как держатель своих зон. PowerDNS — представляет собой высокопроизводительный DNS-сервер, написанный на C++ и лицензируемый под лицензией GPL. Разработка ведётся в рамках поддержки Unix-систем; Windows-системы более не поддерживаются. Сервер разработан в голландской компании PowerDNS.com Бертом Хубертом и поддерживается сообществом свободного программного обеспечения. PowerDNS использует гибкую архитектуру хранения/доступа к данным, которая может получать DNS информацию с любого источника данных. Это включает в себя файлы, файлы зон (англ.) BIND, реляционные базы данных или директории LDAP. PowerDNS по умолчанию настроен на обслуживание запросов из БД. После выхода версии 2.9.20 программное обеспечение распространяется в виде двух компонентов — (Authoritative) Server (авторитарный DNS) и Recursor (рекурсивный DNS). [Читать дальше →][1]

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

[>] Адаптивные Split View Controller и Popover в iOS 9 (Swift). Часть 2
habra.16
habrabot(difrex,1) — All
2016-03-13 16:00:03


Это вторая часть [обучающей статьи][1], связанной с изучением адаптивного поведения **Split View Controller** и **Popover** в iOS 9 на iPad и на iPhone, которое стало возможным благодаря концепции **Size Classes**. Обучение состоит в создания на Swift практических приложений, работающих с сервером [Flickr.com][2], который является облачным сервисом для хранения фотографий. В[ первой части][3] перечислены пять интересных с точки зрения разработчика случаев применения адаптивного **Split View Controller** и **Popover**, которые отличаются сложностью **Master**. **Detail** везде один и тот же — единственный **Image View Controller**, вставленный в **Navigation Controller** и призванный показывать изображение фотографии: 1. Классический вариант: один элемент в **Master**, вставленный в **Navigation Controller**, (часто это **Table View Controller**) 2. Множество **Table View Controller** элементов, вставленных в **Navigation Controller** 3. **Tab Bar Controller** в качестве **Master** 4. Случай разных UI и разных пользовательских классов для приборов с разными **Size Classes **здесь не рассматривается, но идею можно посмотреть в[ “Адаптивный интерфейс с двумя storyboards для iOS 9”][4]. 5. Адаптивный **Popover** В [первой части ][5] осуществлялось построение базового экспериментального приложения на Swift, которое было распространено на случаи 1-2. В этой статье мы будем дальше усложнять наше экспериментальное приложение и распространим его на случаи 3 и 5. Код для всех вариантов можно найти на [Github][6]. [Читать дальше →][7]

[1]: https://habrahabr.ru/post/278573/
[2]: https://www.flickr.com
[3]: https://habrahabr.ru/post/278573/
[4]: http://bestkora.com/IosDeveloper/dopolnenie_/
[5]: https://habrahabr.ru/post/278573/
[6]: https://github.com/BestKora/AdaptiveSplitViewSwift
[7]: https://habrahabr.ru/post/278781/#habracut

[>] Часть 1. Установка и настройка авторитетного DNS сервера на основе решения PowerDNS // Базовая установка
habra.16
habrabot(difrex,1) — All
2016-03-13 18:00:02


Добрый день! В этой статье я опишу настройку авторитетного DNS сервера, на основе решения PowerDNS. PowerDNS — высокопроизводительный, бесплатный DNS сервер с открытым исходным кодом. PowerDNS — представляет собой высокопроизводительный DNS-сервер, написанный на C++ и лицензируемый под лицензией GPL. Разработка ведётся в рамках поддержки Unix-систем; Windows-системы более не поддерживаются. Сервер разработан в голландской компании PowerDNS.com Бертом Хубертом и поддерживается сообществом свободного программного обеспечения. PowerDNS использует гибкую архитектуру хранения/доступа к данным, которая может получать DNS информацию с любого источника данных. Это включает в себя файлы, файлы зон (англ.) BIND, реляционные базы данных или директории LDAP. PowerDNS по умолчанию настроен на обслуживание запросов из БД. После выхода версии 2.9.20 программное обеспечение распространяется в виде двух компонентов — (Authoritative) Server (авторитетный DNS) и Recursor (рекурсивный DNS). Официальный сайт: [www.powerdns.com][1] [Читать дальше →][2]

[1]: https://www.powerdns.com/
[2]: https://habrahabr.ru/post/278153/#habracut

[>] ВКонтакте запускает третий чемпионат VK Cup
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


**Всем привет!** Социальная сеть ВКонтакте возвращает свой блог на Хабр. Первое, о чём хотим рассказать, – чемпионат по спортивному программированию VK Cup 2016 и разбор нескольких интересных задач с прошлого года. [][1]



Несколько слов о Чемпионате. ВКонтакте проводит [третий VK Cup][2] — чемпионат по программированию среди русскоязычных молодых специалистов, студентов, школьников и просто любителей алгоритмов и структур данных. К участию в нём приглашаются команды из двух человек (можно участвовать и индивидуально), чей возраст от 14 до 23 лет. Отборочные этапы пройдут с марта по май, а в финал будут приглашены лучшие 20 команд. Финал пройдет в Санкт-Петербурге в июле, лучшие восемь команд будут награждены призами: **1 место** — 1048576 рублей **2 местo** — 524288 рублей **3 местo** — 262144 рубля **4-8 места** — 131072 рубля Соревнование будет проходить на площадке Codeforces, регистрация уже открыта — [спешите зарегистрировать команду](http://codeforces.com/vkcup2016/teams/new)! Начать своё участие необходимо [с квалификационных этапов](http://codeforces.com/contests/637,638), которые будут проходить 13-14 и 20-21 марта. Участвовать можно как в двух, так и в любом из них. Все подробности доступны по ссылке [на странице Чемпионата][3]. [Подробности][4]

[1]: https://habrahabr.ru/company/vkontakte/blog/279145/
[2]: http://codeforces.com/vkcup2016
[3]: http://codeforces.com/vkcup2016
[4]: https://habrahabr.ru/post/279145/#habracut

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


Дошли руки написать очередное дополнение к [моему краткому курсу компьютерной графики.][1] Итак, тема для очередного разговора — использование [карт нормалей][2]. В чём основное отличие использования карт нормалей от затенения Фонга? Основная разница в плотности задания информации. Для затенения Фонга мы использовали нормальные вектора, заданные к каждой вершине нашей полигональной сетки, интерполируя нормали внутри треугольников. Использование же карт нормалей позволяет задавать нормали для каждой точки нашей поверхности, а не лишь изредка, что просто драматическим образом влияет на детализацию изображений. В принципе, в [лекции про шейдеры][3] мы уже использовали карту нормалей, но только заданную в глобальной системе координат. Сейчас же разговор пойдёт про [касательное пространство][4]. Итак, вот две текстуры, левая задана в глобальном пространстве (RGB напрямую превращается в вектор XYZ), а правая — в касательном. ![][5] [Читать дальше →][6]

[1]: https://habrahabr.ru/post/249139/
[2]: https://en.wikipedia.org/wiki/Normal_mapping
[3]: https://github.com/ssloy/tinyrenderer/wiki/Lesson-6:-Shaders-for-the-software-renderer
[4]: https://en.wikipedia.org/wiki/Frenet%E2%80%93Serret_formulas
[5]: https://raw.githubusercontent.com/ssloy/tinyrenderer/gh-pages/img/06b-tangent-space/nm_textures.jpg
[6]: https://habrahabr.ru/post/279143/#habracut

[>] [Перевод] С++ exception handling под капотом. Часть 2
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


Продолжаем перевод серии статей об обработки исключений в С++ [1 часть][1] [3 часть][2]

# C++ exceptions под капотом: милая персональность

Наша поездка в удивительном путешествии изучения работы исключений еще далека от конца, нам еще предстоит изучить что-то называемое "call frame information", помогающая библиотеке Unwind делать разворачивание стэка, а так же что компилятор пишет в чем-то, называемом LSDA, в которой определяется, какие ошибки метод может обрабатывать. А так же мы уже узнали, что большинство магии происходит в персональной функции, которую мы пока еще не видели в действии. Давай те резюмируем, что мы уже знаем о пробросе и отлове ошибок (или, точнее, что мы уже знаем о том, как брошенное будет перехвачено):

* компилятор транслирует throw объявление в пару ****cxa\_allocate\_exception/**xca\_throw**
* **\_\_cxa\_allocate\_exception** создает исключение в памяти
* **\_\_cxa\_throw** запускает работу разворачивания и передает исключение в низко-уровневую библиотеку разворачивания, вызывая _\_Unwind\_RaiseException_
* Разворачивание стэка использует CFI, чтобы узнать, какая сейчас функция в стеке
* Каждая функция имеет LSDA, добавляя что-то, называемое **.gcc\_except\_table**
* Разворачивание вызывает персональную функцию с текущим фреймом стэка и LSDA, которая должна продолжить разворачивать стэк, если текущая функция не имеет обработчиков исключения данного типа.

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

[1]: https://habrahabr.ru/post/279111/
[2]: https://habrahabr.ru/post/279149/
[3]: https://habrahabr.ru/post/279151/#habracut

[>] [Перевод] SFML и Xcode (Mac OS X)
habra.16
habrabot(difrex,1) — All
2016-03-14 00: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/279147/#habracut

[>] [Перевод] С++ exception handling под капотом. Часть 3
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


Продолжаем перевод серии статей об обработки исключений в C++ [1 часть][1] [2 часть][2]

# C++ exceptions под капотом: поиск верного landing pad

Это уже 15-я глава в нашей длинной истории. Мы уже изучили достаточно много о том, как работают исключения, и даже имеем написанную работающую собственную персональную функцию с небольшим количеством рефлексии, определяющей где находится catch-блок (landing pad в терминах исключений). В прошлой главе мы написали персональную функцию, которая может обрабатывать исключения, но она всегда подставляет только первый landing pad (т.е. первый же catch-блок). Давай те улучшим нашу персональную функцию, добавив возможность выбирать правильный landing pad в функции с несколькими catch-блоками. [Читать дальше →][3]

[1]: https://habrahabr.ru/post/279111/
[2]: https://habrahabr.ru/post/279151/
[3]: https://habrahabr.ru/post/279149/#habracut

[>] [Перевод] С++ exception handling под капотом или как же работают исключения в C++
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


![][1]

### От переводчика

В мире победили языки высокого уровня и в мирах руби-питон-js разработчиков остается только разглагольствовать, что в плюсах не стоит использовать то или иное. Например, исключения, потому что они медленные и генерируют много лишнего кода. Стоило спросить "и какой же код он генерирует", как в ответ получил мямленье и мычание. А и правда — как же они работают? Ну что ж, компилируем в g++ с флагом -S, смотрим что получилось. Поверхностно разобраться не сложно, однако то, что остались недопонимания — не давали мне спать. К счастью, готовая статья нашлась. На хабре есть несколько статей, [подробных][2] и [не очень][3] (при этом все равно хороших), посвященных тому, как работают exceptions в C++. Однако нет ни одной по-настоящему глубокой, поэтому я решил восполнить этот пробел, благо есть подходящий материал. Кому интересно как работают исключения в C++ на примере gcc — запаситесь pocket-ом или evernot, свободным временем и добро пожаловать под кат. [Читать дальше →][4]

[1]: https://habrastorage.org/files/bae/cb7/772/baecb77727fa49619830c84649d3ab3e.jpg
[2]: https://habrahabr.ru/post/208006/
[3]: https://habrahabr.ru/post/119016/
[4]: https://habrahabr.ru/post/279111/#habracut

[>] [Перевод] Саморегулирование биткойна
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


Небольшой фрагмент лекции из [курса Принстонского университета][1], лектор — [Arvind Narayanan][2] Сейчас я хочу продемонстрировать вам еще одну тонкую мысль, довольно сложную, это очень четкая идея саморегулирования, которая захватила меня в первый раз, когда я с ней встретился. Я хочу поделиться ей с вами. Что я имею в виду под саморегулированием? Я говорю о сложном взаимодействии между тремя вещами в биткойне. Что это за три вещи? [Читать дальше →][3]

[1]: https://class.coursera.org/bitcointech-001
[2]: http://randomwalker.info
[3]: https://habrahabr.ru/post/279087/#habracut

[>] [Перевод] SFML и Linux
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


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

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

[>] Про важность ловли блох. Для чего существует Global OpenStack Bug Smash?
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


_Авторы: Игорь Марнат, Илья Стечкин_ **С 7 по 9 марта проходил Global OpenStack Bug Smash Mitaka. Mirantis принимал две площадки этого ивента: одна из них — в московском офисе компании. Россия впервые присоединилась к проведению BugSmash. И мы рады, что это произошло при нашем непосредственном участии. Почему для комьюнити так важно, чтобы крупные игроки рынка, такие, как Intel, Rackspace, Mirantis, IBM, HPE, Huawei, CESI или SUSE, поддерживали работы по проверке и повышению качества кода? Какое место занимает этот событие в процессе создания платформы OpenStack?** [Читать дальше →][1]

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

[>] Security Week 10: вымогатель для OS X, обход пасскода iPhone, уязвимость в Facebook и польза bug bounty
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


![][1]В очередном выпуске нашего сериала: — Хитрый вымогатель KeRanger для Mac OS X поразил всех не столько своими вредоносными свойствами, сколько четкой организацией атаки и необычным методом распространения. Но все закончилось хорошо — жертв не так много, как могло быть. — В то время, как Apple и американские госорганы продолжают спорить о праве на взлом защиты айфона, выяснилось, что обойти пасскод можно и более тривиальными методами. Не первый раз, впрочем. — Серьезная уязвимость в Facebook хорошо объясняет сложность инфраструктуры современной компании — тривиальный и крайне опасный метод взлома любого аккаунта соцсети был невозможен на основном сайте, но оказался доступен на стороннем проекте. Предыдущие серии можно посмотреть [по тегу][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/files/741/78d/fce/74178dfce76f497aa9c0e60c9e9e1497.jpg
[2]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[3]: https://habrahabr.ru/post/279073/#habracut

[>] libuniset2 — библиотека для создания АСУ. Лучше один раз увидеть…Часть 6 (Заключительная)
habra.16
habrabot(difrex,1) — All
2016-03-14 00:00:02


В предыдущих частях ([часть 1][1], [часть 2][2], [часть 3][3], [часть 4][4], [часть 5][5]) были рассмотрены принципы и механизмы libuniset2, на примере _сферической задачки по управлению_. Осталось показать, что не вошло в поле нашего зрения… Тех, кто ещё не устал, прошу… [Читать дальше →][6]

[1]: http://habrahabr.ru/post/278535/
[2]: http://habrahabr.ru/post/278537/
[3]: http://habrahabr.ru/post/278565/
[4]: http://habrahabr.ru/post/278589/
[5]: http://habrahabr.ru/post/278607/
[6]: https://habrahabr.ru/post/278697/#habracut

[>] Декораторы в typescript: оружие против сложности или бесполезная «свистелка»?
habra.16
habrabot(difrex,1) — All
2016-03-14 11:00:02


![][1]Вы, наверное, уже наслыщаны о такой странной вещи для js/ts разработчика, как [декораторы][2]. Вообще это паттерн проектирования, который можно использовать в любом языке. Но некоторые языки программирования, например python, притащили этот паттерн в свой синтаксис, чем вызвали противоречивую реакцию среди разработчиков. TypeScript уже зарекомендовал себя как сорока, тянущая удачный синтакисис из разных языков программирования. Но пойдут ли ему на пользу декораторы? [Читать дальше →][3]

[1]: https://habrastorage.org/files/454/6c4/f7e/4546c4f7eb2245c08cb6336b2ad9e6d0.jpg
[2]: https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#decorators
[3]: https://habrahabr.ru/post/277847/#habracut

[>] Реализация грида для работы с большими таблицами. Часть 1
habra.16
habrabot(difrex,1) — All
2016-03-14 12:30:02


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



Мы расскажем об одном из возможных методов реализации табличного элемента управления, обладающего свойствами Log(N)-быстрого 1) первоначального отображения 2) прокрутки на всём диапазоне записей 3) перехода к записи с заданным уникальным ключом. Всё это — при двух ограничениях: 1) записи могут быть отсортированы только по индексированному набору полей и 2) collation-правила базы данных должны быть известны алгоритму. Изложенные в статье принципы были реализованы автором в проекте с его участием на языке Java. [Читать дальше →][1]

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

[>] Большой опрос по алгоритмам
habra.16
habrabot(difrex,1) — All
2016-03-14 14:30:03


Тема «нужны или не нужны алгоритмы современным разработчикам» на днях в очередной раз [всплывала][1] на Хабре и породила множество комментариев. В связи с этим предлагаю следующий опрос. Сможете ли вы реализовать, пусть и не production ready, этот алгоритм, не подсматривая в спецификацию: **UPD:** Касательно последнего опроса — было бы очень интересно в комментариях услышать реальные интересные примеры из жизни. [][2]

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

[>] Что читать о перспективных языках программирования
habra.16
habrabot(difrex,1) — All
2016-03-14 14:30:03


![image][1] Начнем с важной информации: совсем не обязательно перспективные языки являются новыми. Им не так много лет, как вашим любимым Python или Ruby, их нет ни в одной топовой десятке популярных рейтингов ([GitHut][2], [RedMonk][3], [TIOBE Index][4]), а знание этих языков не дает пока существенной прибавки к зарплате (за исключением, возможно, Swift). Но и назвать их революцией, набирающей обороты в среде избранных, тоже нельзя. Безусловно, у них есть своя ниша, определенная доля рынка (до 2%) и сложившееся комьюнити. Просто в будущем именно они могут посягнуть на лавры топ-5, если не случится событие типа «черный лебедь». За последние годы в рейтингах популярности языков мало что изменилось — одни опускаются, другие поднимаются, но никто не врывается в топ под лозунгом «лучший из лучших». Процесс захвата новых территорий для языка чаще всего занимает годы, и за это время успевает сформироваться необходимая база развития. Поэтому никаких эксклюзивов и написанных за вчерашний вечер уникальных языков в обзоре не будет — просто потому, что их время еще не настало. Но в ближайшие годы популярность незыблемых столпов, таких как Java (вся), JavaScript или PHP, будет снижаться, а их место постепенно займут «новички». [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/2d4/d34/99f/2d4d3499f285b0963d38c26c7dfe34e8.jpg
[2]: http://githut.info/
[3]: https://redmonk.com/sogrady/category/programming-languages/
[4]: http://www.tiobe.com/tiobe_index?page=index
[5]: https://habrahabr.ru/post/279193/#habracut

[>] [Из песочницы] Конечное поле GF(256) и немного магии
habra.16
habrabot(difrex,1) — All
2016-03-14 14:30:03




## Введение

Будучи студентом я посещаю занятия по криптографии. И разумеется этот курс не мог обойти вниманием стандарт [AES][1]. При реализации данного алгоритма встает вопрос о реализации полей GF(2^8), что будет освещено в данной статье. Будут рассмотрены: битовая магия для умножения элементов поля, шаблоны для генерации таблиц замен на этапе компиляции. Вторая часть предполагает, что читатель имеет доступ к компилятору с поддержкой C++14. Первая часть будет написана в стиле Си. [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard
[2]: https://habrahabr.ru/post/279197/#habracut

[>] Об одной интересной ошибке в Lucene.Net
habra.16
habrabot(difrex,1) — All
2016-03-14 16:30:02


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

[1]: https://habrastorage.org/getpro/habr/post_images/18a/ebb/4f3/18aebb4f30321046c2af02cbe07612cf.png
[2]: https://habrahabr.ru/post/279221/#habracut

[>] Обновленные онлайн-курсы Mail.Ru Group и интервью с их создателями
habra.16
habrabot(difrex,1) — All
2016-03-14 17:00:03


![][1] В декабре и феврале на портале [IT.Mail.Ru][2] в партнерстве со Stepic мы запустили онлайн-курсы на основе материалов, читаемых в проектах Техносфера, Технопарк и Технотрек. На сегодняшний день мы провели обучение по трем курсам:

* на курс «Алгоритмы и структуры данных» записались 3370 человек, 145 человек успешно прошли обучение, из них 105 — с отличием;
* на курс «Подготовительная программа по программированию на С/C++» записались 2400 человек, 140 человек завершили обучение, из них 106 — с отличием;
* на курс по анализу безопасности веб-проектов записались 4370 человек, 560 пользователей завершили обучение, из них 330 — с отличием.

Более того, мы доработали программу и снова открыли регистрацию на некоторые курсы! В этом посте хотим поделиться с вами интервью участников проектов. Мы расспросили идейного вдохновителя, директора департамента исследований и образования Mail.Ru Group Дмитрия Волошина, а также наших преподавателей. Читайте интервью с ними под катом. [Читать дальше →][3]

[1]: https://habrastorage.org/files/a51/192/bb4/a51192bb40284c3f83da43165e6e99ae.jpg
[2]: https://it.mail.ru/
[3]: https://habrahabr.ru/post/279041/#habracut

[>] [Из песочницы] Pandasql vs Pandas для решения задач анализа данных
habra.16
habrabot(difrex,1) — All
2016-03-14 17:00:03




# О чем речь?

В этой статье я бы хотела рассказать о применении python-библиотеки [Pandasql][1]. Многие люди, сталкивающиеся с задачами анализа данных, уже, скорее всего, знакомы с библиотекой [Pandas][2]. Pandas позволяет быстро и удобно работать с табличными данными: фильтровать, группировать, делать join над данными; строить сводные таблицы и даже рисовать графики (для простых визуализации достаточно функции [plot()][3], а если хочется чего-то позаковыристее, то поможет библиотека [matplotlib][4]). На Хабре не раз рассказывали о применении этой библиотеки для работы с данными: [раз][5], [два][6], [три][7]. Но по моему опыту далеко не все знают о библиотеке Pandasql, которая позволяет работать с Pandas DataFrames как с таблицами и обращаться к ним, используя язык SQL. В некоторых задачах проще выразить желаемое с помощью декларативного языка SQL, поэтому я считаю, что людям, работающим с данными, полезно знать о наличии такой функциональности. Если говорить о реальных задачах, то я использовала эту библиотеку для решения задачи join'a таблиц по нечетким условиям (необходимо было объединить записи о событиях из разных систем по примерно совпадающему времени, разрыв порядка 5 секунд). Рассмотрим использование этой библиотеки на конкретных примерах. [Читать дальше →][8]

[1]: https://pypi.python.org/pypi/pandasql
[2]: http://pandas.pydata.org/
[3]: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html
[4]: http://pandas.pydata.org/pandas-docs/version/0.13.1/visualization.html
[5]: https://habrahabr.ru/post/266289/
[6]: https://habrahabr.ru/post/196980/
[7]: https://habrahabr.ru/post/202090/
[8]: https://habrahabr.ru/post/279213/#habracut

[>] Custom floating point format on FPGA
habra.16
habrabot(difrex,1) — All
2016-03-15 01:30:02


Всем привет! В данной статье речь пойдет о числах в формате с плавающей точкой и в частности о реализации специализированного формата FP23 на программируемых логических интегральных схемах (ПЛИС). В рамках конкретного проекта у меня родилась мысль реализовать оптимальный для определенных нужд формат данных с плавающей точкой. В итоге эта мысль переросла в реальный проект, который впоследствии нашел применение в некоторых интересных задачах цифровой обработки сигналов. В статье рассмотрены основные сложности при реализации формата данных floating point на ПЛИС Xilinx, рассмотрены базовые математические операции в формате FP23. Также в конце статьи вы можете найти исходный код проекта, которой можно свободно использовать в своих задачах или на его основе реализовать похожие форматы данных. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/60f/91e/6b7/60f91e6b77404332b23fb29db343277c.png
[2]: https://habrahabr.ru/post/279269/#habracut

[>] CLRium #3. Анонс докладчиков
habra.16
habrabot(difrex,1) — All
2016-03-15 10:00:02


[![][1]][2] 15 апреля в **Санкт-Петербурге**, 22 апреля — в **Москве**, 29 апреля — в **Омске**, 13 мая — в **Екатеринбурге** и 20 мая — в **Новосибирске** пройдет серия семинаров [CLRium #3][3]. В прошлом году мы говорили об околохакерских штуках — разборе памяти .NET куч, приведение типов, между которыми приведение невозможно… Делили текущий поток на два… Говорили о ядре нового .NET Core и пытались понять, для чего нам нужен (и нужен ли?) Roslyn В этом же году мы поговорим о другом. О сугубо практически полезных вещах, о которых вы ранее наверняка не знали, но в которых таится огромная сила и мощь. О мутабельных языках программирования, производительности и кроссплатформенной разработке GUI Как и ранее, у нас будут:

* Максимально глубокие, отборные доклады по редко-раскрываемым вопросам
* Мы будем говорить только о том, о чем вы наверняка, до того не знали
* Максимально-полезные доклады, которые усилят Вас как специалиста
* Все доклады — от 1,5 часов. Что позволит докладчикам не экономить и рассказать все что они знают

Примечание к Nitra и Nemerle: эти два opensource проекта нынче разрабатываются в стенах компании JetBrains. Доклады:

* **Андрей Акиньшин** (JetBrains) Железные таймеры
* **Влад Чистяков** (JetBrains) Nemerle — самая мощная альтернатива C# на .NET
* **Влад Чистяков** (JetBrains) Nitra — средство разработки языков программирования и DSL
* **Станислав Сидристый** (Luxoft)JetBrains Rider IDE: Java IDE для кросс-платформенного .NET
* **Станислав Сидристый** (Luxoft) Автоматизация тестирования WPF/WinForms приложений через внедрение в процесс
* **Никита Цуканов** Кроссплатформенная разработка UI приложений (Perspex UI, Eto.Forms, Xamarin Forms)



# Когда и где?

Ссылки на регистрацию:

* У нас есть [отличный сайт][4], на котором можно почитать как про всех спикеров, так и про все доклады. Заходите, изучайте, берите билеты: [http://qaconf.ru/][5]

Что такое [CLRium?][6]? Видео записи семинара (собравшего в сумме 740 человек) с прошлого года — под катом. [Читать дальше →][7]

[1]: https://habrastorage.org/files/84c/027/813/84c0278138bf4ebeba456d77ec76132a.png
[2]: http://clrium.ru/
[3]: http://clrium.ru/
[4]: http://clrium.ru/
[5]: http://clrium.ru/
[6]: http://clrium.ru/
[7]: https://habrahabr.ru/post/279275/#habracut

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


![][1] Привет Хабр, хочу пригласить всех на небольшую экскурсию по языку D. Зачем? Ну зачем люди вообще на экскурсии ходят — чтобы развлечься, увидеть что-то новое и вообще — это интересно. D трудно назвать новым или хотя бы молодым, однако в последние пару лет шло бурное развитие, в сообщество пришел [Андрей Александреску][2] и быстро стал ведущим разработчиком, с его способностью предвидеть тренды он внес огромный вклад в концепции самого языка и особенно в стандартную библиотеку. С самого своего возникновения D позиционировался как улучшенный C++ (по крайней мере в моем прочтении истории). Возможность отбросить некоторые устаревшие конструкции и внести вместо них то новое, что не могло быть реализовано в классическом C++, и одновременно бережное сохранение низкоуровневых возможностей, таких как встроенный ассемблер, указатели и использование библиотек С, делают D уникальным претендентом на звание «следующего в ряду C — C++ — ...». Ну это с моей точки зрения, сам я (наверное вежливо было бы добавить «к сожалению») абсолютно моноязычен, много лет пишу на C++ и любые попытки познакомиться с другими языками неизбежно заканчивались крепким здоровым сном. Однако я слышал от представителей других конфессий что D для них тоже интересен как язык, так что на экскурсию приглашаю всех. Что я буду показывать? По D уже написано [несколько очень хороших книг][3], поэтому я решил просто взять функцию _getopt()_ из стандартной библиотеки и посмотреть на ее код, неоценимо полезное упражнение позволяющее оживить прочитанное в книгах. Почему именно эту функцию? Ну, она же всем знакома и системно независима, я лично ее использую 3-4 раза в неделю и в деталях представляю как она могла бы быть написана на 3-х различных языках. Кроме того, автором кода значится Александреску, я много раз видел _учебные примеры_ его кода в книгах и никогда не видел кода написанного _в продакшн_, любопытно же. В конце я конечно же не удержался и написал свой велосипед (естественно улучшенный), в данном случае это совершенно уместно и не менее полезно чем разбор чужого кода. Увидим мы далеко не все из того что бы стоило посмотреть, да и сам я далеко не эксперт, поэтому читайте сами кому интересно, ссылки в конце. [Итак, поехали][4]

[1]: https://habrastorage.org/files/2ce/c1c/63c/2cec1c63c4d442efa4950c53e17a6fdd.png
[2]: http://erdani.com/
[3]: https://wiki.dlang.org/Books
[4]: https://habrahabr.ru/post/263515/#habracut

[>] ScribeJava — даже ваша бабушка сможет работать с OAuth
habra.16
habrabot(difrex,1) — All
2016-03-15 12:30:02


![image][1] Именно этой фразой нас приветствует библиотека для работы с OAuth — ScribeJava (). Если быть точнее, то фраза звучит так: “Who said OAuth/OAuth2 was difficult? Configuring ScribeJava is **so easy your grandma can do it!** check it out:”. И это действительно похоже на правду:

OAuth20Service service = new ServiceBuilder().apiKey(clientId).apiSecret(clientSecret)
.callback("http://your.site.com/callback").grantType("authorization_code").build(HHApi.instance());
String authorizationUrl = service.getAuthorizationUrl();
OAuth2AccessToken accessToken = service.getAccessToken(code);


Готово! Этих трех строчек достаточно, чтобы начать делать OAuth запросы. А сам OAuth запрос можно будет сделать так:

OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.hh.ru/me", service);
service.signRequest(accessToken, request);
String response = request.send().getBody();


Данные о пользователе у нас в руках (в переменной response). И ни капли понимания, как в деталях работает OAuth. Хотим асинхронные http-запросы? Нам хватит тех же трех строчек. Ниже рассмотрим это на примере. [Читать дальше →][2]

[1]: https://habrastorage.org/files/273/4b0/326/2734b032642d44d38ea5ac257bd2e693.jpg
[2]: https://habrahabr.ru/post/278957/#habracut

[>] Механизмы контейнеризации: namespaces
habra.16
habrabot(difrex,1) — All
2016-03-15 12:30:02


Последние несколько лет отмечены ростом популярности «контейнерных» решений для ОС Linux. О том, как и для каких целей можно использовать контейнеры, сегодня много говорят и пишут. А вот механизмам, лежащим в основе контейнеризации, уделяется гораздо меньше внимания. Все инструменты контейнеризации — будь то Docker, LXC или [systemd-nspawn][1],— основываются на двух подсистемах ядра Linux: namespaces и cgroups. Механизм namespaces (пространств имён) мы хотели бы подробно рассмотреть в этой статье. Начнём несколько издалека. Идеи, лежащие в основе механизма пространств имён, не новы. Ещё в 1979 году в UNIX был добавлен системный вызов chroot() — как раз с целью обеспечить изоляцию и предоставить разработчикам отдельную от основной системы площадку для тестирования. Нелишним будет вспомнить, как он работает. Затем мы рассмотрим особенности функционирования механизма пространств имён в современных Linux-системах. [Читать дальше →][2]

[1]: https://blog.selectel.ru/systemd-i-kontejnery-znakomstvo-s-systemd-nspawn/
[2]: https://habrahabr.ru/post/279281/#habracut

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


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

[1]: https://habrastorage.org/files/f5a/d47/d55/f5ad47d551f246118911faf0a732e927.jpg
[2]: https://habrahabr.ru/company/itinvest/blog/279321/
[3]: http://www.financial-hacker.com/build-better-strategies/
[4]: https://habrahabr.ru/post/279321/#habracut

[>] [Из песочницы] Передвижение персонажа по карте с помощью библиотеки SFML или проходим в разные места
habra.16
habrabot(difrex,1) — All
2016-03-15 15:30:03


Даже не знаю, поможет ли кому данная статья или нет, но так как в момент написания своей мини-игры я не нашёл ответа на данный вопрос, решил написать решений. Месяцев 2 назад я начал писать мини-игру, просто для оттачивания имеющихся умений и приобретения новых. Игра была задумана 2D. Полистав немножко интернет, нашёл вполне нормальную библиотеку для начинающего (ну и не только) — SFML. Идея была придумана и библиотека выбрана. [Читать дальше →][1]

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

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