RSS
Pages: 1 ... 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 ... 133
[>] Подключаем Facebook SDK для Xamarin.Forms
habra.16
habrabot(difrex,1) — All
2017-02-08 19:30:04


Социальные сети, и особенно Facebook, уже давно используются в мобильных приложениях. Сегодня мы рассмотрим, как подключить нативные Facebook SDK к проекту на базе Xamarin.Forms (iOS и Android) для удобной авторизации пользователей и получения о них базовой информации. Вы также легко сможете расширить описанные в статье методы для того, чтобы реализовать полноценное взаимодействие с этим замечательным сервисом. Тема простая и понятная, поэтому без теорий и прелюдий перейдем сразу к практике.

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

[1]: https://habrastorage.org/files/65c/d3d/c42/65cd3dc4255c46e2b669fc90b0c251d7.jpg
[2]: https://habrahabr.ru/post/321454/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Метод рекурсивной координатной бисекции для декомпозиции расчетных сеток
habra.16
habrabot(difrex,1) — All
2017-02-08 20:00:04


![][1]


## Введение


Расчетные сетки широко применяются при решении численных задач с помощью методов конечных разностей. Качество построения такой сетки в значительной степени определяет успех в решении, поэтому иногда сетки достигают огромных размеров. В этом случае на помощь приходят многопроцессорные системы, ведь они позволяют решить сразу 2 задачи:

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

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

[1]: https://habrastorage.org/files/0a6/8e3/7b9/0a68e37b99d849bd92f7539d5818d3fe.png
[2]: https://habrahabr.ru/post/321456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Изменения процедуры выдачи сертификата для подписи кода у Certum
habra.16
habrabot(difrex,1) — All
2017-02-08 21:00:05


![image][1]

Возможно, некоторые читали про услугу, предоставляемую польской компанией [Certum][2] для open source разработчиков: недорогой сертификат для подписи кода в [этой статье][3] (если нет, то прочтите).

К сожалению, некоторые вещи в мире со временем становятся хуже или дороже (или и то, и другое вместе). Бесплатная услуга Certum-а превратилась в платную (сертификат стал стоить €14.00, а с февраля этого года — €28.00), плюс с этого года **процедура генерации пары ключей изменилась**. Вот об этом я и хочу написать.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/5d7/792/855/5d77928559e141a4bdd1800b6a7c6d28.png
[2]: https://www.certum.eu/certum/cert,offer_en_open_source_cs.xml
[3]: https://habrahabr.ru/post/242267/
[4]: https://habrahabr.ru/post/321462/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Инверсии зависимостей управления впрыском
habra.16
habrabot(difrex,1) — All
2017-02-09 00:00:04


![image][1]


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


Наверняка первый вопрос, который возник у вас при взгляде на заголовок, был "_Шта?_". На самом деле я просто перевел фразу "_Инверсия управления, внедрение зависимости_" в Google Translate на китайский, а затем обратно. Зачем? Затем, что на мой взгляд, это хорошая иллюстрация того, что происходит на самом деле. Люди вокруг _путают_, _коверкают_ и _извращают_ эти понятия. По долгу службы я провожу много интервью, и 90% того, что я слышу, когда задаю вопрос про DI — честно говоря, откровенный бред. Я сделал поиск по Хабру и нашел несколько статей, которые пытаются раскрыть эту тему, но не могу сказать, что они мне сильно понравились (ладно, ладно, я проглядел только три первых страницы, каюсь). Здесь же на Хабре я встречал в комментариях такую расшифровку IoC, как _Injection of Container_. Кто-то всерьез предполагает, что есть некий механизм инъекции контейнеров, который сосуществует где-то рядом с DI, и, видимо, даже делает нечто похожее. Только с контейнерами. Мда. На самом деле понять внедрение зависимости очень просто, надо всего лишь…
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/e74/31d/b1c/e7431db1cacf5a63858ad60b91162f27.png
[2]: https://habrahabr.ru/post/321344/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как создавать, собирать, устанавливать и использовать пакеты с программами и библиотеками для UNIX-подобных систем
habra.16
habrabot(difrex,1) — All
2017-02-09 07:30:04


Речь пойдёт о программах и библиотеках для UNIX-подобных систем, распространяемых в виде исходного кода (в том числе в виде тарболлов), написанных обычно на C и C++ (хотя этот же порядок работы может применяться к софту на любом языке). Многие вещи в этой статье написаны применительно конкретно к GNU/Linux, хотя многое из статьи может быть обобщено и на другие UNIX-подобные ОС.

Под словом «пакет» я понимаю в этой статье пакет с исходными текстами, причём не пакет конкретного дистрибутива GNU/Linux, а просто пакет, исходящий от оригинальных авторов софта.

В этой статье я разберу следующие вопросы:

* Вот скачал программу или библиотеку. Как её собрать и установить? Как воспользоваться библиотекой?
* Что такое префикс (prefix) установки? В чём разница между сборкой и установкой? Куда обычно устанавливают программы?

Я разберу только совсем базовые вещи. Те, которые типичные участники сообщества свободного ПО, программирующие на C и C++ под UNIX-подобные системы, обычно уже знают. Как создавать тарболлы (на примере «голого» make) и как устанавливать чужие тарболлы. Advanced советы по созданию «хороших» пакетов я не дам. «Продвинутые» вещи читайте в документации систем сборки, в замечательной статье [«Upstream guide» от Debian][1] (в её конце есть ещё куча ссылок о создании «хороших» пакетов). Многое в этой статье можно было сделать по-другому, моя цель: дать хотя бы один способ, не пытаться объять необъятное.
[Читать дальше →][2]

[1]: https://wiki.debian.org/UpstreamGuide
[2]: https://habrahabr.ru/post/321468/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Процедурная генерация уровней для M.E.R.C. в Unity
habra.16
habrabot(difrex,1) — All
2017-02-09 12:30:05


![image][1]


## Часть первая


Процедурная генерация уровней — отличный способ добавить в игру больше контента и неожиданных сценариев. Для сюжетных миссий M.E.R.C. мы хотели создать большой набор сделанных вручную уровней, но осознавали, что нашей небольшой инди-команде не хватит времени или ресурсов на изготовление контента для такой большой игры. Кроме того, мы стремились добавить случайность и повысить реиграбельность игры. Процедурная генерация уровней позволила нам создать большой, бесконечно изменчивый мир, который мы не смогли бы получить, строя отдельные уровни вручную. Использование процедурной генерации позволяет добавить больше контента и улучшить игровой процесс.

Что такое [M.E.R.C.][2]? M.E.R.C. — это тактический симулятор отряда в реальном времени с видом сверху. Игрок одновременно управляет отрядом из четырёх наёмников в антиутопическом мире Неотопии, отдаёт приказы и активирует особые умения. Каждый наёмник отряда имеет собственные особые боевые, технические и хакерские навыки, которые необходимо использовать в миссиях. Визуально M.E.R.C. напоминает стиль «Бегущего по лезвию»: тёмные дождливые трущобы и крыши города со множеством извилистых улиц и неоновым освещением. Сюжет заключается в войне могущественных корпораций за контроль над Неотопией. Отряд нанимают для выполнения различных заданий корпораций, таких как похищение учёных конкурентов или убийство сотрудников-перебежчиков. Каждая полученная миссия влияет на отношения с разными корпорациями и в результате изменяет игровой мир. Учитывая всё это, давайте рассмотрим требования к процедурной генерации уровней.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/2dd/a38/c62/2dda38c62a103ab1d8c9507a08fb17b8.png
[2]: http://store.steampowered.com/app/555010/
[3]: https://habrahabr.ru/post/321260/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Обеспечение безопасности пользовательских данных: кто за это отвечает?
habra.16
habrabot(difrex,1) — All
2017-02-09 13:30:04


Мы практически каждый день видим в новостях сообщения о том, что в результате утечек компрометируются огромные объемы пользовательских данных. Большинство из нас знакомы с теми рисками, которым подвергаются наши персональные данные, но, как пользователи, мы часто стараемся не обращать на это внимание или ожидаем, что ответственность за эти риски возьмет на себя компания-поставщик сервиса. Кто же отвечает за безопасность?


[Читать дальше: Кто ответит за безопасность?][1]

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

[>] Что нового в CUBA Platform 6.4
habra.16
habrabot(difrex,1) — All
2017-02-09 14:30:04


[![CUBA Generic UI templates][1]][2]



Недавно мы выпустили новый релиз CUBA Platform и CUBA Studio. Если в версии 6.3 мы сделали акцент на архитектурных и технических новшествах, то этот релиз прибавил к платформе много фич, с которыми процесс разработки стал быстрее и удобнее. Мы добавили новые визуальные компоненты универсального пользовательского интерфейса, централизованный механизм валидации данных, движок для генерации альтернативного фронт-энда на основе Google Polymer и другие важные улучшения. Подробности — под катом.



_Disclaimer: статья в первую очередь адресована разработчикам, уже знакомым с [платформой CUBA][3]._


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

[1]: https://habrastorage.org/files/558/2ee/48f/5582ee48f72f4f5985fc47428fbeee2a.png
[2]: https://habrahabr.ru/company/haulmont/blog/321400/
[3]: https://habrahabr.ru/company/haulmont/blog/310148/
[4]: https://habrahabr.ru/post/321400/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] В поисках анонимной почты
habra.16
habrabot(difrex,1) — All
2017-02-09 14:30:04


![][1]

[Источник картинки][2]


> Как мыть голову, не снимая фольгированную шапочку?
> _Неизвестный автор_

Не так давно у меня возникла необходимость в полностью анонимном адресе электронной почты, который, даже имея доступ к содержимому письма, нельзя было бы однозначно со мной связать. Мне было нужно отправить в больницу несколько вопросов по поводу лечения ребёнка, но очень не хотелось, чтобы эта информация осталась условно навечно ассоциированной c моим и его именами в логах провайдеров, поисковиков, почтовиков, товарища майора и кто знает каких ещё операторов Big Data, орудующих во Всемирной паутине. От адресата ожидалось получение файлов неизвестного размера с документами, необходимыми для госпитализации.



Мне казалось, что с регистрацией такой почты не будет трудностей, но, как выяснилось, я отстал от жизни. Известные почтовые сервисы, такие как gmail и outloook, теперь требуют номер телефона, поэтому пришлось немного потрудиться, чтобы найти устраивающий меня вариант. В данной статье я решил поделиться своим опытом решения этой проблемы.

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

[1]: https://habrastorage.org/files/5c8/133/50a/5c813350a54b455d846eed31fb9f417c.png
[2]: http://www.techgrapple.com/send-free-fake-anonymous-email/
[3]: https://habrahabr.ru/post/321480/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что такое блокчейн и зачем он нужен
habra.16
habrabot(difrex,1) — All
2017-02-09 14:30:04


[![][1]][2]

В сознании среднестатистического пользователя само слово “блокчейн” (“цепочка блоков”) стало довольно тесно связано с термином “биткойн”, что двояко отразилось на восприятии.

С одной стороны, популярность биткойна вызывает интерес и к блокчейну, с другой стороны, в массовом сознании биткойн часто ассоциируется лишь с чем-то негативным, запрещенным и подвергаемым преследованию со стороны законодателей. Мол, зачем расплачиваться биткойнами, когда есть целый зоопарк электронных кошельков и банковских карт? Ясное дело – чтобы проворачивать какие-то темные делишки.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/840/a1d/2fe/840a1d2feaeb4baf86ca3f146a3a1599.jpg
[2]: https://habrahabr.ru/company/bitfury/blog/321474/
[3]: https://habrahabr.ru/post/321474/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Анализ эффективности метода факторизации на эллиптических кривых. Практика
habra.16
habrabot(difrex,1) — All
2017-02-09 18:00:04


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

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

[>] Машинный поиск аномалий в поведении интернет-магазинов и покупателей
habra.16
habrabot(difrex,1) — All
2017-02-09 19:00:03


![image alt text][1]



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



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

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

[1]: https://habrastorage.org/files/7d4/9e8/8b4/7d49e88b474c4a3a8661b24ef21a2837.jpg
[2]: https://habrahabr.ru/post/321490/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Остроумие и отвага: как мы много раз ошибались, создавая iFunny
habra.16
habrabot(difrex,1) — All
2017-02-09 19:30:04


Это — не статья, это — фейлбук. То, что вы прочтете под катом, — выжимка наших нелепых техно-промахов за все 5 лет работы над флагманским продуктом — iFunny. Возможно, наша фейловая история поможет вам избежать ошибок, а возможно, вызовет смех. Что тоже хорошо. Смешить людей — призвание FunCorp уже 13 лет.


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

[1]: https://habrastorage.org/files/783/d56/9a4/783d569a466d41fc8084c76d926e4539.jpg
[2]: https://habrahabr.ru/post/321508/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Mahou — волшебный переключатель раскладок
habra.16
habrabot(difrex,1) — All
2017-02-09 20:00:03


### Как я создал первую функцию



![][1] Все началось с того что я захотел программировать на C#(до создания этой программы у меня было почти что никаких знаний о C#), и была одна программа которая не работала так как я хотел (Punto Switcher) долго-долго я искал к ней альтернативы и ненадолго остановился на dotSwitcher нравилась она мне… Но через некоторое время я решил что ей не хватает функционала и решил посмотреть исходный код, кое-где кое-как я разобрался как все работает, но больше всего не понимал одну вещь — WinAPI, и начал z искать информацию по функциям используемых в dotSwitcher и понемногу я начинал запоминать и понимать смысл всего этого _волшебства_ (так мне тогда казалось).

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

[1]: http://i.piccy.info/i9/dc685734c2c850286bc6c3c39dafa066/1475346272/4400/1075423/Mahou.png
[2]: https://habrahabr.ru/post/321518/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VulnHub: Выкидываем неугодных из IRC в Wallaby's Nightmare
habra.16
habrabot(difrex,1) — All
2017-02-10 03:00:03


Всем доброго времени суток, после небольшого перерыва, снова возвращаемся к разбору виртуалок с [VulnHub][1]. И на очереди [Wallaby's: Nightmare (v1.0.2)][2], как пишет автор, на создание этого _boot2root_ его вдохновили некоторые предыдущие _CTF_ с этого сайта, а вот какие именно, я думаю вы сами сможете догадаться.
[Читать дальше →][3]

[1]: https://www.vulnhub.com
[2]: https://www.vulnhub.com/entry/wallabys-nightmare-v102,176/
[3]: https://habrahabr.ru/post/321384/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Angular — настройка среды разработки и production сборки с AOT-компиляцией и tree-shaking (Gulp, Rollup, SystemJS)
habra.16
habrabot(difrex,1) — All
2017-02-10 13:30:04


Одна из особенностей Angular, присущая и первой и новой версии — высокий порог вхождения. Новый Angular, помимо всего прочего, трудно даже запустить. А и запустив, легко получить 1-2 Мб скриптов и порядка нескольких сотен запросов при загрузке hello world страницы. Можно, конечно, использовать всякие стартеры, seed'ы или Angular CLI, но для использования в серъезном проекте нужно самому во всем разбираться.



В этой статье я постараюсь описать, как настроить удобную среду разработки с использованием SystemJS, и production сборку Angular приложения на основе Rollup, с выходом около 100кб скриптов и нескольких запросов при открытии страницы. Использовать будем TypeScript и SCSS.



Попробовать все в деле можно в моем [angular-gulp-starter][1] проекте.


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

[1]: https://github.com/PFight/angular-gulp-starter
[2]: https://habrastorage.org/files/dc0/c30/6b9/dc0c306b93f9458db1ede6a226571123.jpeg
[3]: https://habrahabr.ru/post/321236/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 06: открытые пароли в SCADA, уязвимость в SMB, токен для Google Apps
habra.16
habrabot(difrex,1) — All
2017-02-10 13:30:04


Давно мы не говорили о безопасности промышленных IT-систем. Независимый исследователь из Германии Максим Рупп нашел ([новость][1], [исследование][2]) серьезные проблемы в SCADA-системе компании Honeywell. В контроллерах XL Web II, использующихся в том числе в производстве, энергетике и в системах водоснабжения, были обнаружены пять уязвимостей, включая хранение паролей в открытом виде. Более того, используя специальный запрос к контроллеру, атакующий может в любое время получить актуальный пароль — он хранится на клиентской стороне. Приведенный в исследовании код говорит сам за себя:

![][3]
Через параметры в URL в систему передается масса команд и настроек, принимаются они без проверок: правильным запросом можно, например, начать новую пользовательскую сессию, отключив таким образом легитимного управляющего устройством. Данная история хорошо описывает все традиционные особенности IT-безопасности в промышленности. Для апдейта нужно обратиться в местное подразделение вендора, сроки закрытия уязвимостей большие (информация была передана еще в августе прошлого года). Тем не менее, это неплохой пример взаимодействия вендоров SCADA-систем с безопасниками.
[Читать дальше →][4]

[1]: https://threatpost.com/honeywell-scada-controllers-exposed-passwords-in-clear-text/123562/
[2]: http://rupp.it/SA-Honeywell_XL_WEB_II_Controller.html
[3]: https://habrastorage.org/files/479/d90/1aa/479d901aa21c49ca87abdc78f3c70069.png
[4]: https://habrahabr.ru/post/321526/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Язык C# почти функционален
habra.16
habrabot(difrex,1) — All
2017-02-10 13:30:04


Здравствуйте, уважаемые читатели! Наши искания в области языка C# серьезно перекликаются с этой статьей, автор которой — специалист по функциональному программированию на C#. Статья — отрывок из готовящейся книги, поэтому в конце поста предлагаем за эту книгу проголосовать.

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

[1]: https://habrastorage.org/files/e1b/694/f55/e1b694f554424d9c8bbbde5be94ddd91.jpeg
[2]: https://habrahabr.ru/post/321546/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Cognitive Services & LUIS: Введение в распознавание естественного языка
habra.16
habrabot(difrex,1) — All
2017-02-10 13:30:04


В этой статье мы поговорим о понимании языка (о лингвистических вычислениях, таких как назначение меток, синтаксический анализ и так далее) и обратим особое внимание на два API: Linguistic Analysis API и интеллектуальную службу распознавания речи (LUIS). Если вы любите английский язык так же как русский и увлекаетесь обучением искусственного интеллекта, добро пожаловать под кат.

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

[1]: https://habrastorage.org/files/6e5/086/18f/6e508618f19549749cb042860aa4d7fa.jpg
[2]: https://habrahabr.ru/post/321494/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PVS-Studio и GitHub-сообщество: начало дружбы
habra.16
habrabot(difrex,1) — All
2017-02-10 16:00:04


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


![Picture 1][1]



Итак, всё началось со статьи: [Как использовать PVS-Studio бесплатно][2].
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/23f/39d/db6/23f39ddb671a98ba55787cf06da9fb9a.png
[2]: http://www.viva64.com/ru/b/0457/
[3]: https://habrahabr.ru/post/321582/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вас атакует искусственный интеллект
habra.16
habrabot(difrex,1) — All
2017-02-10 18:00:05


[![][1]][2]

В конце прошлого года “искусственный интеллект” многократно упоминали в итогах и прогнозах IT-индустрии. И в нашу компанию, которая занимается информационной безопасностью, всё чаще стали присылать из различных изданий вопросы про перспективы AI. Но эксперты по безопасности не любят комментировать эту тему: возможно, их отталкивает именно эффект “жёлтой прессы”. Легко заметить, как возникают такие вопросы: после очередной новости типа “Искусственный интеллект научился рисовать как Ван Гог” журналисты хватаются за горячую технологию и идут опрашивать по ней всех подряд – а чего может достичь AI в животноводстве? А в сфере образования? Где-то в этом списке автоматически оказывается и безопасность, без особого понимания её специфики.

Кроме того, журналистика, щедро подкормленная IT-индустрией, обожает рассказывать о достижениях этой индустрии в рекламно-восхищенных тонах. Именно поэтому СМИ прожужжали вам все уши о победе машинного интеллекта в игре Го (хотя от этого нет никакой пользы в реальной жизни), но не особенно жужжали о том, что в прошлом году погибло уже как минимум два человека, которые доверили свою жизнь автопилоту автомобиля Tesla.

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

[1]: https://habrastorage.org/files/7e5/468/409/7e54684099a34f92bf68760e15a2bf3d.jpg
[2]: https://habrahabr.ru/company/pt/blog/321586/
[3]: https://habrahabr.ru/post/321586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Серия видеоуроков по Kotlin
habra.16
habrabot(difrex,1) — All
2017-02-10 18:00:05



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

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

[>] Процедурные макросы в Rust 1.15
habra.16
habrabot(difrex,1) — All
2017-02-10 20:00:04


![][1]Ребята, свершилось! После долгих шести недель ожидания наконец [вышла версия **Rust 1.15**][2] с блекджеком и процедурными макросами.



По моему нескромному мнению, это самый значительный релиз, после [эпического **1\.0**][3]. Среди множества вкусных вещей в этом релизе были стабилизированы [процедурные макросы][4], взрывающие мозг своим могуществом, удобством и безопасностью.



А что же это дает простым смертным? Практически [бесплатную [де]сериализацию][5], удобный [интерфейс к БД][6], интуитивный [веб фреймворк][7], [выводимые конструкторы][8] и много чего еще.



Да, если вы все еще не добрались до этого языка, то сейчас самое время попробовать, тем более, что теперь [установить компилятор и окружение][9] стало можно одной строкой:


curl https://sh.rustup.rs -sSf | sh

Впрочем, обо всем по порядку.

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

[1]: https://habrastorage.org/getpro/habr/post_images/0b3/e28/766/0b3e28766aef36e8e998a6e430922be1.png
[2]: https://blog.rust-lang.org/2017/02/02/Rust-1.15.html
[3]: https://blog.rust-lang.org/2015/05/15/Rust-1.0.html
[4]: https://doc.rust-lang.org/book/procedural-macros.html
[5]: https://serde.rs/
[6]: http://diesel.rs/
[7]: https://rocket.rs/
[8]: https://github.com/nrc/derive-new
[9]: https://www.rust-lang.org/en-US/install.html
[10]: https://habrahabr.ru/post/321564/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PROTEQ — протокол обмена по мультигигабитным линиям для ПЛИС Xilinx
habra.16
habrabot(difrex,1) — All
2017-02-11 18:30:04


Современные ПЛИС содержат мультигигабитные линия связи и существует большое количество протоколов для обмена. Однако при ближайшем рассмотрении применять стандартные протоколы в ПЛИС не всегда удобно. Например для ПЛИС Xilinx доступны реализации PCI Express, RapidIO, Aurora; У каждого из них есть недостатки. PCI Express и RapidIO работают с кодировкой 8/10 что сразу ограничивает пропускную способность. Aurora может работать с кодировкой 64/66 но не обеспечивает восстановление данных после сбоя. С учётом недостатков стандартных протоколов и особенностей применения я решил реализовать свой протокол обмена.
[Читать дальше →][1]

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

[>] Ещё один Brainfuck интерпретатор
habra.16
habrabot(difrex,1) — All
2017-02-11 23:30:04


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



![quine][2]


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

[1]: https://ru.wikipedia.org/wiki/Brainfuck
[2]: https://hsto.org/files/f53/d76/310/f53d763107c0497884971ba9e033c149.png
[3]: https://habrahabr.ru/post/321630/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Читаем tar за 26 строк ANSI C кода
habra.16
habrabot(difrex,1) — All
2017-02-11 23:30:04


Архиваторы — это страшно! Огромные и ужасные алгоритмы, которые обычному человеку никогда в жизни не понять! Rar, zip, gzip, tar — современные стандарты де-факто, а значит крайне сложные и навороченные штуки, которые и пытаться понять не стоит. Ну, tar выглядит попроще, может там всё не так сложно? Смотрим [git][1] с исходниками. Видим десятки файлов, многие на десятки килобайт. Мда. Видимо, тупик.


__________________| |____________________________________________
,--. ,--. ,--. ,--.
|oo | _ \ `. | oo | | oo|
o o|~~ |(_) / ; | ~~ | | ~~|o o o o o o o o o o o
|/\/\| '._,' |/\/\| |/\/\|
__________________ ____________________________________________
| |dwb

На самом деле всё не так сложно. В [документации][2] было описано, что tar — просто способ записи нескольких файлов на ленту. Т.е. всё должно быть просто. По факту — набор вспомогательной информации для каждого файла и непосредственно его содержимое. Именно понимание этого факта и позволило сделать читатель tar-файлов в 26 строк.

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

[1]: http://git.savannah.gnu.org/cgit/tar.git/tree/src
[2]: https://www.opennet.ru/docs/RUS/tar/tar-8.html
[3]: https://habrahabr.ru/post/320834/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Automount afuse
habra.16
habrabot(difrex,1) — All
2017-02-12 00:00:04


Я хотел рассказать про своё открытие afuse — автомонтирование файловых систем по требованию, автоматически.

Разве не здорово просто сделать:
ls /mnt/remote/web.example.com/var/lib/www/

и сразу увидеть файлы web-сервера, никак не устанавливая с ним соединение специально?

Я этим пользуюсь уже давно, а главное:
* Это работает из любого источника: Не важно, делаете вы указанный вывод в консоли, сохранили ссылку в MC или переходите из favorites вашего любимого менеджера такого как nautilus или dolphin
* Вы можете переходить на любой хост, куда у вас есть доступ по ключам (настроить запрос пароля тоже можно, но это не интересно)
* Вы можете запросто указать под каким пользователем входить на сервер, традиционно используя @:
cd /mnt/remote/apache@web.example.com/var/lib/www/



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

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

[>] UNIX-подобные системы содержат кучу костылей. Крах «философии UNIX»
habra.16
habrabot(difrex,1) — All
2017-02-12 09:30:04


_Модераторы, при следующем внеснии мной правки я просто внесу правку в мастер-копию, размещённую на моём компьютере и пересу её сюда. Так что все ваши правки исчезнут. Если хотите сообщите мне об ошибке, используйте стандартный способ (личку). См. также: [github.com/limonte/dear-habr/issues/80][1] ._

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

Костыли в UNIX начали возникать ещё с момента появления UNIX, а это было ещё раньше появления не только Windows, но даже вроде бы Microsoft DOS (вроде бы, мне лень проверять, проверяйте сами). Если лень читать, хотя бы просмотрите все пункты, что-нибудь интересное найдёте. Это далеко не полный список, это просто те косяки, который я захотел упомянуть.

* В самом начале make был программой, которую один человек написал для себя и нескольких своих знакомых. Тогда он, недолго думая, сделал так, что командами воспринимаются строки, которые начинаются с Tab. Т. е. Tab воспринимался отлично от пробела, что крайне некрасиво и нетипично ни для UNIX, ни за его пределами. Он так сделал, потому что не думал, что make будет ещё кто-то использовать кроме этой небольшой группы. Потом появилась мысль, что make — хорошая вещь и неплохо бы включить его в стандартный комплект UNIX. И тогда _чтобы не сломать уже написанные мейкфайлы, т. е. написанные вот этими вот десятью людьми, он не стал ничего менять_. Ну вот так и живём… Из-за тех десятерых страдаем мы все.[Читать дальше →][2]

[1]: https://github.com/limonte/dear-habr/issues/80
[2]: https://habrahabr.ru/post/321652/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Свершилось! Процедурные макросы в Rust 1.15
habra.16
habrabot(difrex,1) — All
2017-02-12 18:00:04


![][1]Ребята, свершилось! После долгих шести недель ожидания наконец [вышла версия **Rust 1.15**][2] с блекджеком и процедурными макросами.



По моему нескромному мнению, это самый значительный релиз, после [эпического **1\.0**][3]. Среди множества вкусных вещей в этом релизе были стабилизированы [процедурные макросы][4], взрывающие мозг своим могуществом, удобством и безопасностью.



А что же это дает простым смертным? Практически [бесплатную [де]сериализацию][5], удобный [интерфейс к БД][6], интуитивный [веб фреймворк][7], [выводимые конструкторы][8] и много чего еще.



Да, если вы все еще не добрались до этого языка, то сейчас самое время попробовать, тем более, что теперь [установить компилятор и окружение][9] можно одной командой:


curl https://sh.rustup.rs -sSf | sh

Впрочем, обо всем по порядку.

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

[1]: https://habrastorage.org/getpro/habr/post_images/0b3/e28/766/0b3e28766aef36e8e998a6e430922be1.png
[2]: https://blog.rust-lang.org/2017/02/02/Rust-1.15.html
[3]: https://blog.rust-lang.org/2015/05/15/Rust-1.0.html
[4]: https://doc.rust-lang.org/book/procedural-macros.html
[5]: https://serde.rs/
[6]: http://diesel.rs/
[7]: https://rocket.rs/
[8]: https://github.com/nrc/derive-new
[9]: https://www.rust-lang.org/en-US/install.html
[10]: https://habrahabr.ru/post/321564/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Нейронные сети для начинающих. Часть 2
habra.16
habrabot(difrex,1) — All
2017-02-12 21:00:05


![][1]

Добро пожаловать во вторую часть руководства по нейронным сетям. Сразу хочу принести извинения всем кто ждал вторую часть намного раньше. По определенным причинам мне пришлось отложить ее написание. На самом деле я не ожидал, что у первой статьи будет такой спрос и что так много людей заинтересует данная тема. Взяв во внимание ваши комментарии, я постараюсь предоставить вам как можно больше информации и в то же время сохранить максимально понятный способ ее изложения. В данной статье, я буду рассказывать о способах обучения/тренировки нейросетей (в частности метод обратного распространения) и если вы, по каким-либо причинам, еще не прочитали [первую часть][2], настоятельно рекомендую начать с нее. В процессе написания этой статьи, я хотел также рассказать о других видах нейросетей и методах тренировки, однако, начав писать про них, я понял что это пойдет вразрез с моим методом изложения. Я понимаю, что вам не терпится получить как можно больше информации, однако эти темы очень обширны и требуют детального анализа, а моей основной задачей является не написать очередную статью с поверхностным объяснением, а донести до вас каждый аспект затронутой темы и сделать статью максимально легкой в освоении. Спешу расстроить любителей “покодить”, так как я все еще не буду прибегать к использованию языка программирования и буду объяснять все “на пальцах”. Достаточно вступления, давайте теперь продолжим изучение нейросетей.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/081/b6a/e2c/081b6ae2cde449f08975c968f202f883.png
[2]: https://habrahabr.ru/post/312450/
[3]: https://habrahabr.ru/post/313216/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ещё один интерпретатор Brainfuck
habra.16
habrabot(difrex,1) — All
2017-02-12 23:30:04


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



![quine][2]


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

[1]: https://ru.wikipedia.org/wiki/Brainfuck
[2]: https://hsto.org/files/f53/d76/310/f53d763107c0497884971ba9e033c149.png
[3]: https://habrahabr.ru/post/321630/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как я разбирал docx с помощью XSLT
habra.16
habrabot(difrex,1) — All
2017-02-13 12:00:04


Задача обработки документов в формате docx, а также таблиц xlsx и презентаций pptx является весьма нетривиальной. В этой статье расскажу как научиться парсить, создавать и обрабатывать такие документы используя только XSLT и ZIP архиватор.

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

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

[>] Pygest #3. Релизы, статьи, интересные проекты из мира Python [30 января 2017 — 13 февраля 2017]
habra.16
habrabot(difrex,1) — All
2017-02-13 12:00:04


![image][1]

Всем привет!

Это уже третий выпуск дайджеста на Хабрахабр о новостях из мира Python. В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся машинного обучения, популярных фреймворков, внутреннего устройства языка и много другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

А теперь к делу!
[Перейти к дайджесту][2]

[1]: https://habrastorage.org/files/aa2/815/f22/aa2815f2207940fab9ac72e85219fe3c.png
[2]: https://habrahabr.ru/post/321662/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Удаленная переустановка Linux по ssh без доступа к консоли
habra.16
habrabot(difrex,1) — All
2017-02-13 14:30:04


Понадобилось мне переустановить сервер, который как бы хостился у знакомых знакомых. Там был сильно устаревший Debian, а, самое главное, система стояла на обычных разделах без lvm и пространство было распределено очень не оптимально. Физический доступ получить к нему было практически нереально, местного админа попросить что-то сделать было можно, но занять это могло неделю. Виртуальный KVM у сервера был, но извне на него попасть было нельзя; у как бы хостера не было лишних IP-адресов, а внутрь его сети попасть было невозможно. Надо было переустановить сервер из-под работающей системы по ssh. Ага, давайте поменяем ротор у турбины не выключая, потом её перезапустим и будет она с новым ротором работать!
[Читать дальше →][1]

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

[>] Версионирование артефактов сборки в Gradle используя git имена тегов, бранчей и коммитов
habra.16
habrabot(difrex,1) — All
2017-02-13 15:30:04


С переездом из SVN на GIT и gitlab (плюс переезд из Jenkins на Gitlab-CI, но его использование также упомянём), встал вопрос версионирования получаемых артефактов сборки приложения.

В SVN был всем привычный номер ревизии, монотонно увеличивающийся с каждым коммитом. Его было удобно добавлять в номер версии, и это решало большинство проблем. Но git конечно предоставляет множество плюшек, и стоило убеждать руководство и всё команду перевести проект на него…
Зато пришлось отстроить заново процесс версионирования получаемых артефактов сборки.

В итоге остановились на очень хорошем Gradle плагине [github.com/nemerosa/versioning][1], о его использовании я и собираюсь рассказать.
[Читать дальше →][2]

[1]: https://github.com/nemerosa/versioning
[2]: https://habrahabr.ru/post/321668/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Служба Advanced Threat Protection в Защитнике Windows
habra.16
habrabot(difrex,1) — All
2017-02-13 18:00:05


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

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

[1]: https://aka.ms/habr_321698_1
[2]: https://habrastorage.org/files/a89/cef/ad9/a89cefad9edb4284a985271ef5c2cebb.jpg
[3]: https://habrahabr.ru/post/321698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Уравнение теплопроводности в tensorflow
habra.16
habrabot(difrex,1) — All
2017-02-13 23:30:03


Привет, Хабр! Некоторое время назад увлекся глубоким обучением и стал потихоньку изучать tensorflow. Пока копался в tensorflow вспомнил про свою курсовую по параллельному программированию, которую делал в том году на 4 курсе университета. Задание там формулировалось так:

Линейная начально-краевая задача для двумерного уравнения теплопроводности:

![\frac{\partial u}{\partial t} = \sum \limits_{\alpha=1}^{2} \frac{\partial}{\partial x_\alpha} \left (k_\alpha \frac{\partial u}{\partial x_\alpha} \right ) -u, \quad x_\alpha \in [0,1] \quad (\alpha=1,2), \ t>0;][1]
![k_\alpha =
\begin{cases}
50, (x_1, x_2) \in \Delta ABC\\
1, (x_1, x_2) \notin \Delta ABC
\end{cases}][2]
![(\alpha = 1,2), \ A(0.2,0.5), \ B(0.7,0.2), \ C(0.5,0.8);][3]
![u(x_1, x_2, 0) = 0,\ u(0,x_2,t) = 1 - e^{-\omega t},\ u(1, x_2, t) = 0,][4]
![u(x_1,0,t) = 1 - e^{-\omega t},\ u(0, x_2, t) = 0,\ \omega = 20.][5]
Хотя правильнее было бы назвать это уравнением диффузии.

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

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


## Численный алгоритм


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

[1]: //tex.s2cms.ru/svg/%0A%5Cfrac%7B%5Cpartial%20u%7D%7B%5Cpartial%20t%7D%20%3D%20%5Csum%20%5Climits_%7B%5Calpha%3D1%7D%5E%7B2%7D%20%5Cfrac%7B%5Cpartial%7D%7B%5Cpartial%20x_%5Calpha%7D%20%5Cleft%20(k_%5Calpha%20%5Cfrac%7B%5Cpartial%20u%7D%7B%5Cpartial%20x_%5Calpha%7D%20%5Cright%20)%20-u%2C%20%5Cquad%20x_%5Calpha%20%5Cin%20%5B0%2C1%5D%20%5Cquad%20(%5Calpha%3D1%2C2)%2C%20%5C%20t%3E0%3B%0A
[2]: //tex.s2cms.ru/svg/%0Ak_%5Calpha%20%3D%0A%5Cbegin%7Bcases%7D%0A%20%20%20%2050%2C%20(x_1%2C%20x_2)%20%5Cin%20%5CDelta%20ABC%5C%5C%0A%20%20%20%201%2C%20(x_1%2C%20x_2)%20%5Cnotin%20%5CDelta%20ABC%0A%5Cend%7Bcases%7D%0A
[3]: //tex.s2cms.ru/svg/%0A(%5Calpha%20%3D%201%2C2)%2C%20%5C%20A(0.2%2C0.5)%2C%20%5C%20B(0.7%2C0.2)%2C%20%5C%20C(0.5%2C0.8)%3B%0A
[4]: //tex.s2cms.ru/svg/%0Au(x_1%2C%20x_2%2C%200)%20%3D%200%2C%5C%20u(0%2Cx_2%2Ct)%20%3D%201%20-%20e%5E%7B-%5Comega%20t%7D%2C%5C%20%20u(1%2C%20x_2%2C%20t)%20%3D%200%2C%0A
[5]: //tex.s2cms.ru/svg/%0Au(x_1%2C0%2Ct)%20%3D%201%20-%20e%5E%7B-%5Comega%20t%7D%2C%5C%20u(0%2C%20x_2%2C%20t)%20%3D%200%2C%5C%20%20%5Comega%20%3D%2020.%0A
[6]: https://habrahabr.ru/post/321734/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как я сделал самый быстрый ресайз изображений. Часть 0
habra.16
habrabot(difrex,1) — All
2017-02-14 12:30:04


Здравствуйте, меня зовут Саша, я написал самый быстрый ресайз изображений для современных х86 процессоров. Я так утверждаю, поскольку все остальные библиотеки, которые я сумел найти и протестировать, оказались медленнее. Я занялся этой задачей, когда работал над оптимизацией ресайза картинок на лету в [Uploadcare][1]. Мы решили открыть код и в результате появился проект [Pillow-SIMD][2]. Любой желающий с легкостью может использовать его в приложении на языке Python.



Любой код выполняется на конкретном железе и хорошей оптимизации можно добиться, только понимая его архитектуру. Всего я планирую выпустить 4 или 5 статей, в которых расскажу как применять знание архитектуры железа для оптимизации реальной задачи. Своим примером я хочу побудить вас оптимизировать другие прикладные задачи. Первые две статьи выйдут в течение недели, остальные — по мере готовности.

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

[1]: https://uploadcare.com/
[2]: https://github.com/uploadcare/pillow-simd
[3]: https://habrahabr.ru/post/321744/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


![][1]
_Предлагаем вашему вниманию перевод первой части полезной статьи о том, как разрабатывать транзакционные бизнес-приложения, используя микросервисную архитектуру._

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

Однако микросервисы являются не таким уж простым и универсальным решением. В частности, модели предметной области, транзакции и запросы удивительно устойчивы к разделению по функциональному признаку. В результате разработка транзакционных бизнес-приложений с использованием микросервисной архитектуры является довольно сложной задачей. В этой статье мы рассмотрим способ разработки микросервисов, при котором эти проблемы решаются с помощью паттерна проектирования на основе предметной области (Domain Driven Design), Event Sourcing и CQRS.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/888/eec/62e/888eec62e9204cbf8d1a1cfead60455b.jpg
[2]: http://microservices.io/patterns/microservices.html
[3]: https://habrahabr.ru/post/321686/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Упрощаем работу с русскими текстами в Sublime Text 3 + Vintage
habra.16
habrabot(difrex,1) — All
2017-02-14 13:30:04


Если вы недавно начали: 1) пользоваться Sublime Text и/или 2) пользоваться плагином Vintage и/или 3) редактировать много текста на русском (или наоборот английском) языке с использованием ST3+Vintage, то скорее всего уже почувствовали какая боль связана с командами назначенными на символы пунктуации — "$", ";", ".", ",", """ и т.п.
В небольшой заметке под катом я хочу предложить вам пару костылей, которые помогают эту боль в значительной степени облегчить.

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

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

[>] Angular 1.x: крадущийся webpack, затаившийся grunt
habra.16
habrabot(difrex,1) — All
2017-02-14 14:00:04


## История о том, как мы поменяли сборку проекта с grunt на webpack


Приходишь на работу, открываешь IDE, пишешь `npm start`, запуская систему сборки, начинаешь работать. Тебе удобно ориентироваться в структуре проекта, удобно отлаживать код и стили, очевидно, как именно и в каком порядке собирается проект.

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

Как выяснилось, такое случается, если не модернизировать систему сборки вместе с ростом проекта. Хорошая новость в том, что это успешно лечится! Летом мы подтвердили это в бою и хотим поделиться опытом.

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

[1]: https://habrastorage.org/files/a82/5e6/4a3/a825e64a3e0d4be897a87d56656d9bbd.jpg
[2]: https://habrahabr.ru/post/321584/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Приглашаем на Tarantool Meetup 2 марта
habra.16
habrabot(difrex,1) — All
2017-02-14 16:30:04


![][1]

В первый четверг марта в нашем московском офисе состоится Tarantool Meetup 2017. Пользователи [Tarantool][2] расскажут про их опыт его внедрения и использования, о его плюсах и минусах и дальнейших планах использования. Это уникальная возможность услышать коллег и пообщаться с разработчиками нашей СУБД. Расписание мероприятия уже готово, подробнее смотрите под катом.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/cf6/ec2/c30/cf6ec2c30b68478fa014d20d09f15362.png
[2]: https://tarantool.org/
[3]: https://habrahabr.ru/post/321812/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проверка open-source сервера World of Warcraft CMaNGOS
habra.16
habrabot(difrex,1) — All
2017-02-14 16:30:04


В этой статье мне хотелось бы поделиться результатами проверки статическим анализатором PVS-Studio открытой реализации сервера игры World of Warcraft – CMaNGOS.


![][1]




## Введение


C(ontinued)MaNGOS является активно развивающимся ответвлением старого проекта MaNGOS (Massive Network Game Object Server), призванного создать свободный альтернативный сервер для игры World of Warcraft. Большая часть разработчиков MaNGOS продолжает работу в проекте CMaNGOS.

Как пишут сами разработчики, их цель – создать открытый «well written server in C++» для одной из лучших MMORPG. Постараюсь немного помочь им в этом, и проверю CMaNGOS при помощи статического анализатора PVS-Studio.

Примечание: Для проверки использовался сервер CMaNGOS-Classic, доступный в [репозитории проекта на github.][2]
[Читать дальше →][3]

[1]: https://habrastorage.org/files/ed9/a82/0f9/ed9a820f991d458b8aeec1cbbf7c61c7.png
[2]: https://github.com/cmangos/mangos-classic
[3]: https://habrahabr.ru/post/321814/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Сведение с применением «регуляторов»: задача выполнимости
habra.16
habrabot(difrex,1) — All
2017-02-14 17:30:04


Привет, Хаброжители! Мы решили опубликовать отрывок из книги «Алгоритмы: разработка и применение. Классика Computers Science». **Задачи SAT и 3-SAT**. Допустим, имеется множество X из n булевых переменных x1, ..., xn; каждая переменная может принимать значение 0 или 1 (эквиваленты false и true). Литералом по X называется одна из переменных xi или ее отрицание. Наконец, условием называется обычная дизъюнкция литералов ![image][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/files/82f/a37/616/82fa376164f641cead73eb8bfc6113b2.PNG
[2]: https://habrahabr.ru/post/321778/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Рефакторинг платежного процесса Я.Денег — пробуждение силы
habra.16
habrabot(difrex,1) — All
2017-02-14 18:30:04


![image alt text][1]



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



И тогда приходит он, рефакторинг платежного процесса. Но мы решили сделать процесс еще интереснее, добавив к рефакторингу идеи **IDEF-0**.

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

[1]: https://habrastorage.org/files/a32/bd2/d70/a32bd2d705ce4e9c914eb060191ae8b4.jpg
[2]: https://habrahabr.ru/post/321824/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Создаём нейронную сеть InceptionV3 для распознавания изображений
habra.16
habrabot(difrex,1) — All
2017-02-14 19:00:04


![][1]

Привет, Хабр! Под катом пойдёт речь о реализации свёрточной нейронной сети архитектуры InceptionV3 с использованием фреймворка [Keras][2]. Статью я решил написать после ознакомления с туториалом "[Построение мощных моделей классификации с использованием небольшого количества данных][3]". С одобрения автора туториала я немного изменил содержание своей статьи. В отличие от предложенной автором нейронной сети [VGG16][4], мы будем обучать гугловскую глубокую нейронную сеть [Inception V3][5], которая уже предустановлена в Keras.

Вы научитесь:

1. Импортировать нейронную сеть Inception V3 из библиотеки Keras;
2. Настраивать сеть: загружать веса, изменять верхнюю часть модели (fc-layers), таким образом, приспосабливая модель под бинарную классификацию;
3. Проводить тонкую настройку нижнего свёрточного слоя нейронной сети;
4. Применять аугментацию данных при помощи ImageDataGenerator;
5. Обучать сеть по частям для экономии ресурсов и времени;
6. Оценивать работу модели.
При написании статьи я ставил перед собой задачу представить максимально практичный материал, который раскроет некоторые интересные возможности фреймворка Keras.
[Читать дальше →][6]

[1]: https://habrastorage.org/files/b60/891/4ad/b608914ad4c4421c9734fb6e685c4aa4.png
[2]: https://keras.io/
[3]: https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html
[4]: http://www.robots.ox.ac.uk/~vgg/practicals/cnn/
[5]: https://habrahabr.ru/post/302242/
[6]: https://habrahabr.ru/post/321834/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Мобильная платформа. Как не бояться ReactNative
habra.16
habrabot(difrex,1) — All
2017-02-14 20:30:04


Первый пост блога мы решили посвятить «мобильной» тематике и  рассказать о  разработке глобального решения для запуска и создания приложений — «Мобильная платформа ЕФС».
       
Что это? Это многомодульный продукт, позволяющий массово создавать мобильные приложения, тиражировать их и поддерживать во время эксплуатации.

[![][1]][2]

Итак, что мы делаем по порядку и по пунктам.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/9b7/42d/b4c/9b742db4c3dd49b8ae379d6f8a0a82c2.jpg
[2]: https://habrahabr.ru/company/efs/blog/321828/
[3]: https://habrahabr.ru/post/321828/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как «пробить» человека в Интернет: используем операторы Google и логику
habra.16
habrabot(difrex,1) — All
2017-02-14 21:00:04


В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.



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


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

[1]: https://habrahabr.ru/company/echelon/blog/319334/
[2]: https://habrahabr.ru/post/321754/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Черная магия метапрограммирования: как работают макросы в Rust 1.15
habra.16
habrabot(difrex,1) — All
2017-02-14 22:30:04


![][1]В [прошлой статье][2] мы познакомились с одной из самых интересных возможностей языка Rust — процедурными макросами.



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



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

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

[1]: https://habrastorage.org/files/55d/01f/76a/55d01f76a48d425792b64dbf23251d60.png
[2]: https://habrahabr.ru/post/321564/
[3]: https://habrahabr.ru/post/321620/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор 5 самых популярных JavaScript фреймворков 2017
habra.16
habrabot(difrex,1) — All
2017-02-14 23:00:04


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

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

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

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