RSS
Pages: 1 ... 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 ... 210
[>] Немного о ARM Security Extensions (aka ARM TrustZone)
habra.16
habrabot(difrex,1) — All
2016-09-10 16:30:03


# О чем эта статья



На Хабре уже несколько раз упоминали о SMM — режиме процессора x86/64 который имеет больше привилегий чем даже режим гипервизора. Нечто подобное есть и в процессорах архитектуры ARMv7 и ARMv8. Вычислительные ядра этих архитектур могут иметь опциональное расширение под названием ARM Security Extensions, которое позволит разделить исполняемый код, память и периферию на два домена — доверенный и недоверенный. Официальное маркетинговое название этой технологии — ARM TrustZone. Но технари чаще предпочитают говорить о security extensions.



Это будет обзорная статья, поэтому я не буду вдаваться в глухие технические дебри. Тем не менее технические детали будут присутствовать. Первая часть статьи будет посвящена вопросу зачем это всё вообще нужно, а вторая — как это работает в общих чертах. Если общество заинтересуется — следующая статья будет содержать больше технических деталей. Кому интересно — добро пожаловать под кат.

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

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

[>] [Из песочницы] Plug-and-Get-Security I, мониторинг настроек TLS в роще доменов
habra.16
habrabot(difrex,1) — All
2016-09-10 20:00:03


![image][1]


Безопасная настройка TLS всегда был головной болью. Как для владельцев небольших ресурсов, так и для компаний, размер инфраструктуры которых может достигать нескольких сотен или даже тысяч доменов. Проблемы с TLS\\SSL появляются постоянно — уязвимости в самих протоколах, крипто-алгоритмах или их имплементациях. От всем известных Poodle и HeartBleed, до достаточно экзотичных и свежих [(CVE-2016-2107) проблем с AES-NI][2].



**А к чему приводят проблемы с TLS? **
К краже учетных записей пользователей, администраторов, внедрению в трафик вредоносного контента, рекламы или, как это было с HeartBleed, даже к прямому доступу к памяти сервера.



Давайте взглянем на картину в целом.
На июль 2016 по данным проекта [SSL Pulse][3], который анализирует настройки Alexa Top 200k доменов:


* 40% из них имеют ошибки в конфигурации или используют недостаточно стойкие наборы алгоритмов шифрования
* 25% имеют серьезные проблемы приводящие к реальной реализации атак на пользователей ресурсов или на сами ресурсы

А значит, у всех нас проблемы!

[Не люблю проблемы!][4]

[1]: https://habrastorage.org/files/b12/a40/94d/b12a4094da5b4cb1acf341cebfbbf75c.jpg
[2]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2107
[3]: https://www.trustworthyinternet.org/ssl-pulse/
[4]: https://habrahabr.ru/post/309660/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вычисление 1000000 знаков числа Пи. На iPhone
habra.16
habrabot(difrex,1) — All
2016-09-11 04:00:03


Математика — весьма интересная и занимательная наука, особое место в которой занимает вычисление числа Pi. История его вычисления занимает более 2х тысячелетий, а точность вычисления колеблется от 256/81 в древнем Египте и 339/108 в Ведах, до Джамшида ал-Каши, вычислившего 16 знаков в 15м веке. Чего стоит хотя бы история Вильяма Шенкса, который потратил 20 лет на вычисление 700 знаков числа Пи, но уже потом выяснилось, что во второй части расчетов он ошибся… Но текст в общем-то не об этом, а об алгоритмах. Стало интересно, можно ли вычислить Пи на iPhone? И если да, то с какой точностью?

![][1]
Можно сказать сразу — миллион не предел. Можно и больше. Подробности и реализация под катом.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/82d/273/f9d/82d273f9d5414b128db76f8c8b3d6e0b.png
[2]: https://habrahabr.ru/post/309674/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Логика сознания. Часть 5. Смысловой подход к анализу информации
habra.16
habrabot(difrex,1) — All
2016-09-11 16:30:04


![][1]
Известный всем тест Тьюринга говорит о том, что понять: мыслит машина или нет, можно по тому отличим ли мы ее в беседе от человека или нет. При этом подразумевается, что вестись будет не светская беседа, а, по сути, допрос с пристрастием в котором мы будем всячески пытаться загнать машину в тупик. Что мы при этом будем проверять? Только одно — понимает ли машина суть задаваемых нами вопросов. Пытается ли она, просто, формально манипулировать словами или она может правильно интерпретировать значения слов, используя при этом знания, полученные ранее в беседе, или, вообще, общеизвестные людям знания.

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

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

[1]: https://habrastorage.org/files/d4d/3bf/45f/d4d3bf45f8fe41f2afe46743db8372d7.jpg
[2]: https://habrahabr.ru/post/309626/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Plug-and-Get-Security I, безопасность TLS в роще доменов
habra.16
habrabot(difrex,1) — All
2016-09-11 20:30:03


![image][1]


Безопасная настройка TLS всегда был головной болью. Как для владельцев небольших ресурсов, так и для компаний, размер инфраструктуры которых может достигать нескольких сотен или даже тысяч доменов. Проблемы с TLS\\SSL появляются постоянно — уязвимости в самих протоколах, крипто-алгоритмах или их имплементациях. От всем известных Poodle и HeartBleed, до достаточно экзотичных и свежих [(CVE-2016-2107) проблем с AES-NI][2].



**А к чему приводят проблемы с TLS? **
К краже учетных записей пользователей, администраторов, внедрению в трафик вредоносного контента, рекламы или, как это было с HeartBleed, даже к прямому доступу к памяти сервера.



Давайте взглянем на картину в целом.
На июль 2016 по данным проекта [SSL Pulse][3], который анализирует настройки Alexa Top 200k доменов:


* 40% из них имеют ошибки в конфигурации или используют недостаточно стойкие наборы алгоритмов шифрования
* 25% имеют серьезные проблемы приводящие к реальной реализации атак на пользователей ресурсов или на сами ресурсы

А значит, у всех нас проблемы!

[Не люблю проблемы!][4]

[1]: https://habrastorage.org/files/b12/a40/94d/b12a4094da5b4cb1acf341cebfbbf75c.jpg
[2]: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-2107
[3]: https://www.trustworthyinternet.org/ssl-pulse/
[4]: https://habrahabr.ru/post/309660/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Программируем «Мегапроцессор»
habra.16
habrabot(difrex,1) — All
2016-09-12 00:00:04


На Geektimes летом была [статья про Megaprocessor][1] — процессор из дискретных транзисторов и светодиодов, который весит полтонны и занимает всю гостиную в обычном таунхаусе под Кембриджем. Я решил воспользоваться своей географической близостью к этому мегапроекту, и запрограммировать для него что-нибудь презентабельное — например, спортировать для Megaprocessor мою [предыдущую хабрапрограммку][2] «Digital Rain».

![][3]

Система команд Megaprocessor [описана на сайте разработчика][4]. Большинство команд состоят из одного байта, за которым может следовать непосредственный операнд (один или два байта). Регистров общего назначения всего четыре (R0-R3), при этом они не равноправны: например, для команд доступа к памяти адрес должен быть либо в R2, либо в R3; а операнд — в одном из двух оставшихся регистров. Программистам, привыкшим к системе команд x86 или ARM, набор команд Megaprocessor покажется крайне бедным: нет ни косвенной адресации «база+смещение», ни непосредственных операндов у арифметических команд (за исключением `addq ±1`, `addq ±2`). Зато есть пара неожиданных возможностей: отдельная команда `sqrt`, и режим `.wt` для команд сдвига, который заменяет результат суммой выдвинутых битов. Таким образом можно, например, парой команд `ld.b r1, #15; lsr.wt r0, r1` вычислить количество единичных битов в `r0` (вопрос, столь любимый собеседователями на работу!). Мнемоника `ld` для команды, загружающей в регистр непосредственное значение (вместо привычной по x86 или ARM мнемоники `mov`) указывает на способ её выполнения: фактически, с точки зрения процессора, выполняется `ld.b r1, (pc++)`.

Итак, приступим. [Читать дальше →][5]

[1]: https://geektimes.ru/post/278410/
[2]: https://habrahabr.ru/post/276371/
[3]: https://habrastorage.org/getpro/habr/post_images/f56/393/8e3/f563938e3ab5f796b19c8f2e452906c6.gif
[4]: http://www.megaprocessor.com/instruction_set.pdf
[5]: https://habrahabr.ru/post/309654/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] С Днем программиста: 10 мифов о кудесниках кодов и цифр
habra.16
habrabot(difrex,1) — All
2016-09-12 01:30:04


Уважаемые пользователи Хабрасообщества, поскольку в Москве уже 1 минута первого, а стало быть наступил следующий день, спешим вас поздравить с этим замечательным 256 днем года! Кстати, если верить [википедии ][1]в этом году** 20 лет**, как мы отмечаем **День программиста**.
С праздником всех сопричастных!
[Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/День_программиста
[2]: https://habrahabr.ru/post/309650/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Конвертируем форум из MS Exchange в MySQL с помощью Python
habra.16
habrabot(difrex,1) — All
2016-09-12 02:00:03


В общих папках ms exchange есть форум, куда пишут сотрудники, он очень неудобный и тормозной. Чтобы перенести форум на какое-то адекватное решение, необходимо также перенести уже и созданный контент. Гугл не нашел готовых конверторов в \*bb, поэтому я решил сделать свой на python, для начала в БД.
[Читать дальше →][1]

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

[>] С Днем Программиста (!)
habra.16
habrabot(difrex,1) — All
2016-09-12 09:00:04


Уважаемые пользователи Хабрасообщества, спешу вас поздравить с этим замечательным 256 днем года!

К всеобщему большому сожалению, день программиста в этом году выпал на понедельник, так что советую не перебарщивать с вечерними празднованиями:)

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

[1]: https://habrastorage.org/getpro/habr/post_images/c09/210/ecb/c09210ecbbebc6eb567f5849e2b674f7.jpg
[2]: https://habrahabr.ru/post/309720/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как штатными настройками убить микроконтроллер. Часть 2
habra.16
habrabot(difrex,1) — All
2016-09-12 11:00:13


![enter image description here][1]



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

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

[1]: https://habrastorage.org/files/1cc/989/7a6/1cc9897a66b04ab9af132751bd398718.jpeg
[2]: https://habrahabr.ru/post/308596/
[3]: https://habrahabr.ru/post/309724/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Null, великий и ужасный
habra.16
habrabot(difrex,1) — All
2016-09-12 11:00:13


# Ошибка дизайна



Именно так и никак иначе: null в C# — однозначно ошибочное решение, бездумно скопированное из более ранних языков.


1. Самое страшное: в качестве значения любого ссылочного типа может использоваться универсальный предатель — null, на которого никак не среагирует компилятор. Зато во время исполнения легко получить нож в спину — [NullReferenceException][1]. Обрабатывать это исключение бесполезно: оно означает безусловную ошибку в коде.
2. Перец на рану: сбой (NRE при попытке разыменования) может находится очень далеко от дефекта (использование null там, где ждут полноценный объект).
3. Упитанный пушной зверек: null неизлечим — никакие будущие нововведения в платформе и языке не избавят нас от прокаженного унаследованного кода, который физически невозможно перестать использовать.

Этот ящик Пандоры был открыт еще [при создании языка ALGOL W великим Хоаром][2], который позднее назвал собственную идею ошибкой на миллиард долларов.

[На самом деле все не так плохо][3]

[1]: https://msdn.microsoft.com/ru-ru/library/sxw2ez55.aspx
[2]: http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare
[3]: https://habrahabr.ru/post/309462/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Принципы и приёмы обработки очередей
habra.16
habrabot(difrex,1) — All
2016-09-12 12:30:03


![][1]


# Принципы и приёмы обработки очередей



### Константин Осипов (Mail.ru)



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



Для начала о себе — я занимаюсь разработкой СУБД [Tarantool][2] в Mail.ru. Этот доклад будет об обработке очередей. У нас много очередей внутри системы, фактически вся база данных построена как система массового обслуживания.



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




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

[1]: https://habrastorage.org/getpro/habr/post_images/fb5/d06/4aa/fb5d064aa3101d98c1fa522e8fbb97b2.jpg
[2]: https://tarantool.org/
[3]: https://habrahabr.ru/post/309332/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Intel и Hewlett Packard выпустили уведомления безопасности для уязвимости ThinkPwn
habra.16
habrabot(difrex,1) — All
2016-09-12 12:30:03


![][1]Ранее мы несколько раз [писали][2] об LPE-уязвимости ThinkPwn, которая была обнаружена в одном из драйверов UEFI-прошивок ноутбуков Lenovo. Уязвимость была обнаружена security-ресерчером под ником Cr4sh и считается достаточно опасной, поскольку с ее помощью можно скомпрометировать наиболее современные защитные механизмы Windows 10 для загрузочного и Hyper-V кода как Secure Boot, Virtual Secure Mode (VSM) и Credential Guard. ThinkPwn присутствует в SMM-драйвере под названием SystemSmmRuntimeRt и позволяет атакующему запустить свой код в режиме SMM. Мы также [указывали][3], что компания Lenovo выпустила уведомление безопасности LEN-8324 и начала постепенно исправлять ThinkPwn в UEFI-прошивках и выпускать эти обновления для владельцев компьютеров Lenovo. На сей раз очередь дошла до прошивок компьютеров Intel и HP, поскольку ThinkPwn актуальна и для них.

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

[1]: https://habrastorage.org/files/bfd/560/a8e/bfd560a8eaf846579acd3583e8d6f184.jpeg
[2]: https://habrahabr.ru/company/eset/blog/305254/
[3]: https://habrahabr.ru/company/eset/blog/305844/
[4]: https://habrahabr.ru/post/309694/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Конечные автоматы в среде динамического моделирования SimInTech. Часть 3. Переходим к коду Си
habra.16
habrabot(difrex,1) — All
2016-09-12 12:30:03


В [первой][1] и [второй][2] части была рассмотрен пример создания системы управления на основе логики «конечных автоматов» и создана модель регулятора нагревателя.

В этой части будет показано как из SimInTech сгенерировать код Си, реализующий программу управления на основе логики «конечных автоматов», а потом отдалить в MS Visual Studio 2015 совместно с моделью объекта в SimInTech.
[Читать дальше →][3]

[1]: https://habrahabr.ru/post/307090/
[2]: https://habrahabr.ru/post/307162/
[3]: https://habrahabr.ru/post/309296/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] III Международная конференция АI Ukraine, 8-9 октября, Харьков
habra.16
habrabot(difrex,1) — All
2016-09-12 12:30:03


Команда **[FlyElephant][1]** приглашает всех** c 8 по 9 октября в Харьков** на [**III Международнаю конференцию АI Ukraine**][2], которая посвящена вопросам Data Science, Machine Learning, Big Data и Artificial Intelligence.

На конференции будут рассмотрены темы из различных областей Data Science и Machine Learning:
* глубокое обучение нейронных сетей;
* компьютерное зрение;
* обработка естественного языка;
* рекомендательные системы;
* использование Machine Learning в биоинформатике;
* Big Data инструменты: Hadoop, Spark и др.
Я буду рад видеть всех на нашем **стенде**, а также на **докладе**, в котором расскажу об **инфраструктуре для работы Data Scientist’а**.

Регистрация и все подробности [на сайте конференции][3]. Для читателей нашего блога действует скидочный промокод на 7%: flyelephant. [][4]

[1]: https://flyelephant.net/
[2]: http://bit.ly/2cEbfKu
[3]: http://bit.ly/2cEbfKu
[4]: https://habrahabr.ru/post/309736/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В сеть утекло демовидео шпионского софта от разработчиков кибероружия RCS Lab
habra.16
habrabot(difrex,1) — All
2016-09-12 13:00:04


[![][1]][2]

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

В сеть утекло видео, на котором, как предполагается, показана работа шпионского софта от компании RCS Lab. [Читать дальше →][3]

[1]: https://habrastorage.org/files/f03/549/678/f03549678d2f4a8580a6b02f9a5b15c7.png
[2]: https://habrahabr.ru/company/pt/blog/309734/
[3]: https://habrahabr.ru/post/309734/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Краткая история паролей от П до Ь: рождение, смерть и зомби-апокалипсис
habra.16
habrabot(difrex,1) — All
2016-09-12 13:30:04


![][1]Атака на башни Всемирного Торгового Центра 11 сентября 2001 года унесла жизни 658 сотрудников финансовой компании Cantor Fitzgerald. Ее директор Говард Лутник, потерявший в тот день родного брата, столкнулся с невиданной ранее проблемой. И дело было даже не в том, что серверы компании, включая резервные, также были погребены под обломками. Информация частично была доступна, но она была закрыта за сотнями учетных записей погибших коллег. На помощь были привлечены специалисты из компании Microsoft, они задействовали мощные серверы для максимально быстрого брутфорса — от доступа к данным зависело существование компании, и надо было успеть к первому открытию торгов после атак. Ускорить взлом могли персональные данные погибших. Лутнику пришлось обзванивать родственников и, в самый неподходящий момент, задавать им серию вопросов: день свадьбы, название колледжа или университета, имя собаки.

Это краткий пересказ, пожалуй, самой грустной статьи о паролях за всю их историю, [опубликованной][2] в 2014 году в New York Times. История дает две главные характеристики парольной защиты: она создает кучу проблем, и, во многих случаях, все равно не работает. Пароли — настолько плохая концепция защиты, что их уже не раз хоронили и СМИ, и специалисты по безопасности, и научные исследователи. Но воз и ныне там, пароль по-прежнему остается главным методом отделения публичного от приватного, и такую ситуацию, после похорон-то, вполне можно официально считать цифровым зомби-апокалипсисом.

Сегодня я попробую проанализировать, что именно плохого в паролях (короткий ответ — всё), что можно с этим сделать, а также поделюсь парой интересных исторических наблюдений.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/7a7/9ff/74e/7a79ff74ecfb4a55b5cdb298f22881a7.jpg
[2]: http://www.nytimes.com/2014/11/19/magazine/the-secret-life-of-passwords.html?_r=1
[3]: https://habrahabr.ru/post/309542/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Modest — разработка открытого движка HTML рендера на «голом» Си
habra.16
habrabot(difrex,1) — All
2016-09-12 14:30:04


Всем привет! Меня зовут Александр Борисов и я разрабатываю **Modest** — открытый движок HTML-рендера на «голом» Си без использования внешних зависимостей (далее движок). Сразу хочется пояснить, что значит «без внешних зависимостей» — весь код пишется с нуля, код ни где не заимствован.
![][1]
После моей [последней публикации][2] прошло не мало времени. За это время многое изменилось и я хочу поделиться с вами достижениями в разработке.
[Приступим!][3]

[1]: https://habrastorage.org/files/ea2/fb5/687/ea2fb5687aea466c9f1b3d1b00794a57.png
[2]: https://habrahabr.ru/post/279409/
[3]: https://habrahabr.ru/post/309756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Домашний алгоритм разбиения на слова (c картинками)
habra.16
habrabot(difrex,1) — All
2016-09-12 15:00:04


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

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

[1]: http://s8.hostingkartinok.com/uploads/images/2016/09/ce0427cbe873f3c0146b7fee00e61652.jpg
[2]: https://habrahabr.ru/post/309762/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как работает Центр оперативного управления мобильной сетью МТС. Ответы на ваши вопросы
habra.16
habrabot(difrex,1) — All
2016-09-12 15:00:04


Уважаемые читатели, спасибо вам за то, что наш [первый пост][1], который подготовил директор Департамента эксплуатации конвергентных сетей и сервисов МТС Андрей Серегин, стал самым читаемым за сутки. Нам очень приятно, что тема оказалась интересной для вас. Спасибо также за множество вопросов. И спасибо за темы будущих постов, которые вы предлагали.

Когда мы вместе с Андреем Вячеславовичем стали готовить ответы на ваши вопросы, то поняли, что ответы получаются слишком развернутые – хватит на целый новый пост. Именно поэтому мы решили опубликовать ответы в форме нового поста.

Напомним, что речь в прошлый раз шла о нашем [Центре оперативного управления мобильной сетью в Краснодаре][2], который мы открыли в 2012 году.

Итак, отвечаем на ваши вопросы:

**Что делает человек, у которого 12 мониторов?**

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

[1]: https://habrahabr.ru/company/ru_mts/blog/308044/
[2]: https://habrahabr.ru/company/ru_mts/blog/308044/
[3]: https://habrastorage.org/getpro/habr/post_images/680/32f/de7/68032fde7792cee3fb126a59356cf50f.jpg
[4]: https://habrahabr.ru/post/309760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пишем квайн-полиглот-палиндромы в честь дня программиста
habra.16
habrabot(difrex,1) — All
2016-09-12 16:00:03


[![PalidromePolyglotQuine][1]][2]



Поздравляю всех трансляторов человеческого языка в машинный с их профессиональным днем, желаю вам меньше багов и больше-либо-равно классных идей! А в качестве идейного подарка со своей стороны предлагаю решение одной красивой задачи — написание кода, который на выходе выдаёт свой собственный текст, является валидным для интерпретаторов и компиляторов разных языков, и при этом правильно исполняется при реверсе исходников.



Не так давно я узнал о коде, который может одновременно интерпретироваться в PHP и компилироваться в Java: [PhpJava.java][3]. Как оказалось, эта идея не нова: код, валидный сразу для нескольких компиляторов или интерпретаторов, называется [полиглотом (polyglot)][4]. Такой код возможно писать из-за особенностей обработки строк и комментариев в различных интерпретаторах или компиляторах.

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

[1]: https://habrastorage.org/files/b0e/458/9ec/b0e4589ec6494616b28f63c65843d896.png
[2]: https://habrahabr.ru/post/309702/
[3]: https://gist.github.com/forairan/b1143f42883b3b0ee1237bc9bd0b7b2c
[4]: https://en.wikipedia.org/wiki/Polyglot_(computing)
[5]: https://habrahabr.ru/post/309702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Начальные грабли в работе с Service Bus for Windows Server
habra.16
habrabot(difrex,1) — All
2016-09-12 16:00:03


Есть у Майкрософта такая не очень известная вещь, как [Service Bus for Windows Server][1]. И так случилось, что в нескольких проектах подряд довелось с ней поработать. В итоге получилось собрать небольшой набор подводных камней, встречавшихся в проектах чаще других. Чем и делюсь. [Читать дальше →][2]

[1]: https://msdn.microsoft.com/en-us/library/dn282144.aspx
[2]: https://habrahabr.ru/post/308464/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Открытая трибуна для разработчиков opensource-проектов
habra.16
habrabot(difrex,1) — All
2016-09-12 16:00:03


![][1]

На одной из встреч Программного комитета конференции разработчиков высоконагруженных систем [HighLoad++][2] возникла следующая идея — открытая трибуна на HighLoad++ для opensource-разработчиков. Мы даём оборудованный зал, формируем специальную программу для активистов, которые готовы рассказать про свой opensource-продукт. Движок, фреймворк, библиотеку, технологию, базу данных. У каждого 30 минут, рекламируй себя, вовлекай, ищи себе последователей!


## Как вам идея, кто хотел бы попробовать? С каким продуктом?


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

Аудитория HighLoad++ — около 2500 разработчиков, тимлидов, DBA, devops-инженеров и системных администраторов, технических менеджеров и директоров. [][3]

[1]: https://habrastorage.org/files/e14/c8b/940/e14c8b940fe94f86841b75e8b9af4b8e.jpg
[2]: http://highload.ru/
[3]: https://habrahabr.ru/post/309750/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вынесение управления состоянием компонентов в пользовательские классы в React
habra.16
habrabot(difrex,1) — All
2016-09-12 16:30:04


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

В React приложениях данные обычно можно разделить на 2 вида: данные самого приложения (хранятся в store) и данные, которые используются конкретным компонентом при отрисовке (хранятся в state).

Многие разработчики выносят работу с состоянием компонента отдельно от него. В популярном Redux состояния также убраны из компонентов. Я тоже пришел к данному решению, попутно отказавшись от использования распространенных библиотек вроде Flux, Reflux, Redux. Поначалу я использовал Reflux, но быстро почувствовал следующие недостатки:

1) Постоянно приходилось писать код для объявления новых actions и подписки на них.
2) Проблемы из-за того, что изменение свойств внутри объекта в state не вызывает обновление компонента.

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

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

[>] Извините, мы обновляем протокол
habra.16
habrabot(difrex,1) — All
2016-09-12 16:30:04


Еще в 2011 году нас спрашивали, зачем вводить номер телефона для выставления счета на стороне партнера? Мы давно хотели облегчить интеграцию для наших партнеров, но раньше сделать это было достаточно сложно. Что же изменилось в QIWI в 2016? Сейчас расскажем, а также поэкспериментируем с хабровским R&D голосованием.

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

[1]: https://habrastorage.org/files/1d2/346/26d/1d234626ddb74cc4b6bb760424637bdd.PNG
[2]: https://habrahabr.ru/company/qiwi/blog/309772/
[3]: https://habrahabr.ru/post/309772/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пишем квайн-полиглот-палиндромы в честь дня 2^2^3
habra.16
habrabot(difrex,1) — All
2016-09-12 16:30:04


[![PalidromePolyglotQuine][1]][2]



Поздравляю всех трансляторов человеческого языка в машинный с их профессиональным днем, желаю вам меньше багов и больше-либо-равно классных идей! А в качестве идейного подарка со своей стороны предлагаю решение одной красивой задачи — написание кода, который на выходе выдаёт свой собственный текст, является валидным для интерпретаторов и компиляторов разных языков, и при этом правильно исполняется при реверсе исходников.



Не так давно я узнал о коде, который может одновременно интерпретироваться в PHP и компилироваться в Java: [PhpJava.java][3]. Как оказалось, эта идея не нова: код, валидный сразу для нескольких компиляторов или интерпретаторов, называется [полиглотом (polyglot)][4]. Такой код возможно писать из-за особенностей обработки строк и комментариев в различных интерпретаторах или компиляторах.

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

[1]: https://habrastorage.org/files/b0e/458/9ec/b0e4589ec6494616b28f63c65843d896.png
[2]: https://habrahabr.ru/post/309702/
[3]: https://gist.github.com/forairan/b1143f42883b3b0ee1237bc9bd0b7b2c
[4]: https://en.wikipedia.org/wiki/Polyglot_(computing)
[5]: https://habrahabr.ru/post/309702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] С Днем Программиста :)
habra.16
habrabot(difrex,1) — All
2016-09-12 18:00:04


Уважаемые пользователи Хабрасообщества, спешу вас поздравить с этим замечательным 256 днем года!

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

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

[1]: https://habrastorage.org/getpro/habr/post_images/c09/210/ecb/c09210ecbbebc6eb567f5849e2b674f7.jpg
[2]: https://habrahabr.ru/post/309720/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] От черного списка до машинного обучения. Антифишинг в Яндекс.Браузере
habra.16
habrabot(difrex,1) — All
2016-09-13 13:30:04


Злоумышленники, специализирующиеся на воровстве паролей, номеров банковских карт и прочей личной информации, появились еще в прошлом веке и с тех пор их число только растет. Согласно отчету [Лаборатории Касперского][1], от 9% до 13% их пользователей в России сталкиваются с фишингом. Ежегодно в мире фишинг и другие формы кражи личных данных наносят ущерб в $5 млрд, согласно оценкам [Microsoft][2]. Это в целом соответствует нашим наблюдениям и объясняет, почему в любом более-менее популярном браузере есть защита от фишинга, основанная на «черных списках». В Яндекс.Браузере она тоже есть. Казалось бы, зачем изобретать что-то еще?

![][3]

**Safe Browsing**

Самое очевидное решение для защиты пользователей – это использование готовой базы со списком фишинг-сайтов. Проверяем по «черному списку» посещаемые страницы и предупреждаем, если нашлось совпадение. На этой идее и основана защита с использованием технологии Safe Browsing, которая работает в Яндекс.Браузере с момента его появления.

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

[1]: https://kasperskycontenthub.com/securelist-russia/files/2016/08/Spam-report_Q2-2016_final_RUS.pdf
[2]: https://news.microsoft.com/en-sg/2014/02/11/microsoft-consumer-safety-index-reveals-impact-of-poor-online-safety-behaviours-in-singapore/#sm.00f3k5lc11wwe5a11wr1perny4f9z
[3]: https://habrastorage.org/files/39f/3ed/82c/39f3ed82c2ae4f249a80f34e7bafb063.png
[4]: https://habrahabr.ru/post/309808/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] JetBrains Night в Москве 29 сентября
habra.16
habrabot(difrex,1) — All
2016-09-13 14:30:04


Вот уже больше 16 лет JetBrains успешно занимается созданием профессиональных инструментов для программистов.

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

Сегодня мы хотим пригласить вас на мини-конференцию, JetBrains Night Moscow, которая состоится 29 сентября (четверг) в гостинице «Novotel Москва Сити». Цель данного мероприятия — пообщаться вживую. Мы расскажем о некоторых наших продуктах, о том что мы делаем, как и почему.

Вход свободный, но количество мест ограничено. Спешите [ознакомиться с программой и зарегистрироваться][1]!

До встречи!
Команда JetBrains [][2]

[1]: http://info.jetbrains.com/JetBrains-Night-Moscow.html
[2]: https://habrahabr.ru/post/309830/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PHP 7.1: Обзор новых возможностей
habra.16
habrabot(difrex,1) — All
2016-09-13 17:00:04


![image][1] На Хабре уже был перевод с обзором несколько месяцев назад, но недавно вышел первый релиз-кандидат PHP 7.1, а значит никаких существенных изменений больше не будет и можно сказать, какие точно изменения будут в релизе. Я решил немного оживить сухой “changelog” своим вольным переводом изменений, которые принесет нам новая минорная версия 7.х ветки.


## Новая функциональность

[Хочу узнать][2]

[1]: https://habrastorage.org/getpro/habr/post_images/8c9/678/b98/8c9678b988563df4589096d34da40d56.jpg
[2]: https://habrahabr.ru/post/309858/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Применение нелинейной динамики и теории Хаоса к задаче разработки нового алгоритма сжатия аудио данных
habra.16
habrabot(difrex,1) — All
2016-09-13 20:00:04


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

Чего вы не найдёте здесь:

* Сложных уравнений. Цель данной публикации является представление идей и видение задачи. И как любое видение оно во многом абстрактно;
* Каких либо генераторов фрактальных изображений. Такие изображения выглядят интересно, но мня интересуют реальные задачи.
Что вы найдёте здесь:

1. Краткий обзор применения фрактальных преобразований к задаче сжатия данных с потерями;
2. Необычная интерпретация фрактальных преобразований;
3. Ссылки на реальный код компрессора и декомпрессора аудио данных посредством фрактальных преобразований (декомпрессор представлен в форме плагина для аудио плейера Winamp);
4. Описание нового формата для хранения сжатых аудио данных с пятью уникальными свойствами, отличающими новый формат от многих хорошо известных индустриальных аудио форматов.[Читать дальше →][1]

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

[>] [Из песочницы] Пишем Hello World на FASM
habra.16
habrabot(difrex,1) — All
2016-09-13 20:00:04


Одним томным пятничным вечером взбрела мне в голову безумная идея: а почему бы мне не поразмять мозг, и не написать HelloWorld на ассемблере. Однако это показалось слишком простым. А давайте соберем не x86 программу, а java class? Сказано — сделано.
[Читать дальше →][1]

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

[>] [Из песочницы] Использование Android устройства в качестве тонкого UI для С++ программ
habra.16
habrabot(difrex,1) — All
2016-09-14 01:30:03


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


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


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

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

[>] Разработчик, который живет на крыше: хроники прошедшего PDUG Picnic
habra.16
habrabot(difrex,1) — All
2016-09-14 01:30:04


Глядя на холодный осенний пейзаж за окном, пожалуй, не поверишь, что еще месяц назад больше сотни разномастных разработчиков, неслучайно собравшихся в одном месте, по доброй воле устроили себе многочасовой рабочий солярий на жаркой солнечной крыше. Никто не жаловался: все пили лимонад (на горизонте маячило пиво), слушали суровые доклады про взлом приложений, их же защиту и разные полезные утилиты, задавали вопросы, общались в кулуарах. Внизу, по Большой Новодмитровской, изредка туда-сюда проезжал одинокий байкер, разбавлявший беседу о безопасной разработке музыкальными хитами девяностых. К концу вечера запахло жареным — нет, это не разработчики сцепились в споре, какой язык круче, а повар наконец выложил на решетку гриля аппетитные колбаски.

[![][1]][2]

Так прошел PDUG Picnic 2016 — неформальная тусовка для разработчиков, которые на досуге всерьез задумываются о том, безопасен ли код, который они пишут.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/b63/7f0/00b/b637f000bb1c42aa90cdf9834e7c34db.jpg
[2]: https://habrahabr.ru/company/pt/blog/309884/
[3]: https://habrahabr.ru/post/309884/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] NIO: между Сциллой и Харибдой?
habra.16
habrabot(difrex,1) — All
2016-09-14 10:00:04


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

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

[>] Настройки безопасности iOS 10, на которые следует обратить внимание
habra.16
habrabot(difrex,1) — All
2016-09-14 12:00:03


![][1]Сегодня Apple [выпустила][2] iOS 10. Пользователи iPhone 5+, iPad mini 2+, iPad 4, iPad Air 1/2, iPad Pro, а так же iPod touch 6 уже могут установить обновление на свои устройства. О функциях этой новой версии мобильной ОС от Apple уже достаточно написано в различных обзорах, так что не будет повторять эту информацию еще раз. Вместо этого, остановимся более детально на ее настройках конфиденциальности и безопасности. Отметим, что в iOS 10 Apple переключилась на более безопасный механизм доставки обновлений — протокол HTTPS. Этой новой security функцией Apple исправляет уязвимость с идентификатором CVE-2016-4741, которая позволяла атакующим удаленно блокировать доставку обновлений устройству с iOS. Apple также исправила проблему с OTA-обновлением iOS 10 для устройств, на которую уже успели [пожаловаться][3] некоторые владельцы устройств iDevice.

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

[1]: https://habrastorage.org/files/ac4/5f5/514/ac45f55148ea411f98c6386254d1ead5.png
[2]: https://support.apple.com/en-ca/HT207143
[3]: http://www.macrumors.com/2016/09/13/ios-10-update-bricking-iphones-and-ipads/
[4]: https://habrahabr.ru/post/309948/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Почему я отказался от Rust
habra.16
habrabot(difrex,1) — All
2016-09-14 13:00:03


![][1]



Когда я узнал, что появился новый язык программирования системного уровня, с производительностью как у С++ и без сборщика мусора, я сразу заинтересовался. Мне нравится решать задачи с помощью языков со сборщиками мусора, вроде C# или JavaScript, но меня постоянно терзала мысль о сырой и грубой мощи С++. Но в С++ так много способов выстрелить себе в ногу и других хорошо известных проблем, что я обычно не решался.



Так что я влез в Rust. И, блин, влез глубоко.



Язык Rust все еще довольно молод, поэтому его экосистема пока находится в стадии начального развития. В некоторых случаях, например, в случае с [вебсокетами][2] или [сериализацией][3] есть хорошие и популярных решения. В других областях у Rust не все так хорошо. Одна из таких областей это OpenGL GUI, вроде [CEGUI][4] или [nanogui][5]. Я хотел помочь сообществу и языку, поэтому взялся за портирования nanogui на Rust, с кодом на чистом Rust, без связок с С/C++. Проект можно [найти тут][6].



Обычно, знакомство с Rust начинается с борьбы с идеей borrow-checker. Как и у других программистов, у меня тоже был период, когда я не мог понять, как решить ту или иную проблему. К счастью, есть классное сообщество в [\#rust-beginners][7]. Его обитатели помогали мне и отвечали на мои дурацкие вопросы. Мне понадобилось несколько недель на то, чтобы почувствовать себя более-менее комфортно в Rust.



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

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

[1]: https://habrastorage.org/files/3ee/da0/a79/3eeda0a79fd646aea814490e796078ea.jpg
[2]: https://github.com/cyderize/rust-websocket
[3]: https://github.com/serde-rs/json
[4]: http://cegui.org.uk/
[5]: https://github.com/wjakob/nanogui
[6]: https://github.com/Oipo/nanogui-rust-sdl
[7]: https://client00.chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-beginners
[8]: https://habrahabr.ru/post/309968/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Выход «в поле»: Как мы делали мобильное приложение для повышения эффективности выездных работников
habra.16
habrabot(difrex,1) — All
2016-09-14 17:30:07


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

Сервис для управления выездными сотрудниками (field management software) обычно состоит из веб-части, которой пользуются менеджеры в офисе, и мобильного приложения для работников, выезжающих на заказы к клиентам. Сегодня мы расскажем о разработке такого [приложения][3].
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/0ab/23c/cc1/0ab23ccc11b173acc57ca154891fd1e4.jpg
[2]: https://habrahabr.ru/company/planado/blog/309842/
[3]: http://www.planado.ru/
[4]: https://habrahabr.ru/post/309842/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] UDL-поддержка
habra.16
habrabot(difrex,1) — All
2016-09-14 18:30:04


Вы когда нибудь задумывались, почему вы пишете код на Caché Object Script, а он экспортируется в XML файл?

![][1]

Так вот, пора меняться. Начиная с выхода новой среды разработки Atelier и версии Caché 2016.2, у вас будет возможность экспортировать и импортировать файлы в формате, в котором вы пишете в студии, так называемый формат UDL (Universal Definition Language). Теперь вы сможете писать код, который не только быстро работает, но еще и приятен глазу в экспортированном виде. Но, возникает другая, не менее важная проблема: если все новые проекты будут находиться в UDL формате, то, кто позаботиться об обратной совместимости?
[Читать дальше →][2]

[1]: https://habrastorage.org/files/8ff/670/9f2/8ff6709f25bd4f1e93e80909fc1f6e76.jpg
[2]: https://habrahabr.ru/post/308936/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Однажды программисты погубят этот мир
habra.16
habrabot(difrex,1) — All
2016-09-14 21:30:04


![][1]


### 1\. История первая: воспоминание


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

А ведь самое логичное объяснение — он сам упал. Просто он рос, выбрасывал новые побеги, развивал и наращивал массу. Тянулся к солнцу. Однажды проекция центра тяжести цветка вышла за пределы опоры и он опрокинулся.

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

[1]: https://habrastorage.org/files/068/986/8e3/0689868e316a4e0e91bb403d0ccee053.jpg
[2]: https://habrahabr.ru/post/310026/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему не нужно сваливать на неточность O-оценок свои проблемы
habra.16
habrabot(difrex,1) — All
2016-09-15 08:00:04


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

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

[1]: https://habrastorage.org/getpro/habr/post_images/570/b9b/dd3/570b9bdd394f69cbe4cebaaf68d3fb2e.jpg
[2]: https://habrahabr.ru/post/308818
[3]: https://habrahabr.ru/post/309394/
[4]: https://habrahabr.ru/post/310038/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] OpenJDK: Project Panama
habra.16
habrabot(difrex,1) — All
2016-09-15 11:30:04


![][1]

Два года назад в OpenJDK был создан новый проект под кодовым названием [«Panama»][2]. Основным направлением исследований анонсировалось создание нового интерфейса для работы с платформозависимыми библиотеками и данными вне Java heap’а (off-heap). Но цели проекта шире: исследование механизмов взаимодействия JVM и «внешнего» (не-Java) API.

![][3]**[Владимир Иванов][4]** [iwanowww][5] — ведущий инженер Oracle, работает в группе разработки виртуальной Java-машины HotSpot. Специализируется на JIT-компиляции и поддержке альтернативных языков на платформе Java. Владимир пришел в Sun Microsystems (приобретена Oracle в 2010) в 2005 году и с того момента поучаствовал в большом количестве проектов, связанных с Java (HotSpot JVM, RTSJ, JavaFX).

**— Большая часть проекта Panama — это работа с native библиотеками из Java кода. Как это можно делать сейчас?**

— Работать с native кодом в Java можно было всегда. Native методы были еще в первой версии Java, а стандартный интерфейс JNI появился уже в версии 1.1. Но время идет, платформа развивается, требования меняются и, смотря на JNI сейчас, есть понимание, что можно организовать работу с native библиотеками удобнее и эффективнее.
[Читать дальше →][6]

[1]: https://habrastorage.org/files/54e/f83/3ca/54ef833cae1a44189fe0cb4a36b97d17.jpg
[2]: http://openjdk.java.net/projects/panama/
[3]: https://habrastorage.org/files/c38/8cb/752/c388cb752fc24ecf8cfa22ab3c55bc1f.jpg
[4]: http://jokerconf.com/#vivanov
[5]: https://habrahabr.ru/users/iwanowww/
[6]: https://habrahabr.ru/post/310014/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Темная сторона protobuf
habra.16
habrabot(difrex,1) — All
2016-09-15 12:00:04


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

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

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

[>] Анимированные QR коды
habra.16
habrabot(difrex,1) — All
2016-09-15 13:30:05


В свободном доступе появилась реализация интересных графических или анимированных QR кодов.

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

**Github:** [github.com/sylnsfar/qrcode][1]
**Веб-версия:** [www.amazing-qrcode.com][2]

**Примеры анимированных QR кодов, GIF 1Мб**

[][3]

[1]: https://github.com/sylnsfar/qrcode
[2]: http://www.amazing-qrcode.com/
[3]: https://habrahabr.ru/post/310052/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Миф о незрелости мобильных NFC технологий
habra.16
habrabot(difrex,1) — All
2016-09-15 13:30:05


Современные NFC-технологии в их нынешнем виде появились в 2002 году. Однако, начало этим технологиям было положено еще в 1980, с появлением RFID. Возможно, причина, по которой люди считают эту технологию недостаточно зрелой, заключается в том, что за годы, прошедшие с момента ее изобретения, она не успела получить массового распространения. Действительно, пользователи по всему миру начали активно применять NFC технологии только в последние 18 месяцев, после запуска систем мобильных и бесконтактных платежей.


[Читать дальше: Миф о незрелости мобильных NFC технологий][1]

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

[>] Как избежать ошибок, используя современный C++
habra.16
habrabot(difrex,1) — All
2016-09-15 14:00:05


![][1]



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

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

[1]: https://habrastorage.org/files/3be/f20/4f0/3bef204f0fa44b4f8ade9198f65a56c2.png
[2]: https://habrahabr.ru/post/310064/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Dropbox на macOS использует приёмы malware, чтобы получить привилегии, которые ему не нужны
habra.16
habrabot(difrex,1) — All
2016-09-15 16:00:04


Если у вас установлен Dropbox, загляните в `Системные настройки` → `Защита и безопасность` → `Конфиденциальность`.


![][1]

TL;DR: Dropbox


* Показывает фальшивое системное окно macOS, чтобы получить пароль пользователя
* Добавляет себя в привилегированные процессы без обязательного для всех разрешения
* Ставит в систему backdoor, чтобы восстановить разрешения, если их явно отберут
* Эти разрешения толком не использует <irony/> [Подробности и как с этим бороться][2]

[1]: https://habrastorage.org/files/f93/38d/9de/f9338d9debf24643b9403bdab7c1dd5d.png
[2]: https://habrahabr.ru/post/310074/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Для чего финтеху машинное обучение
habra.16
habrabot(difrex,1) — All
2016-09-15 17:30:03


![image][1]Технология машинного обучения вызывает интерес у мировых финтех-компаний и финансовых организаций, чей бизнес так или иначе связан с инвестициями, кредитованием, консалтингом и решениями в области безопасности. Мы в компании [PayOnline][2], специализирующейся на автоматизации приема онлайн-платежей, решили рассмотреть [международные финтех-кейсы][3] применения технологии машинного обучения.

В 80-х появились компьютеры, и постепенно мы наблюдали, как их использование для хранения и обработки информации становилось нормой для большинства компаний. В 90-х мы стали свидетелями интернет-бума, по-настоящему изменившего мир. Собрать информацию о чем-либо сегодня — сущий пустяк. В середине прошлого десятилетия появились социальные сети и предприниматели заметили, что клиенты начали проводить в них столько времени, сколько до этого не проводили ни на одном другом сайте. В итоге бизнесмены по всему миру начали инвестировать в социальные медиа для увеличения охвата аудитории и в маркетинговых целях. Когда широкой публике были представлены Android и iOS, произошел сдвиг парадигмы. Люди стали проводить больше времени со своими смартфонами, нежели персональными компьютерами. Со временем потребители начали пользоваться смартфонами для принятия решений, совершения покупок и даже платежей. Сегодня, поняв, что смартфоны стали неотъемлемой частью процесса принятия потребителем решений, компании стремятся предоставить им омниканальный опыт взаимодействия. В связи с этим возникает вопрос: «Какие еще существуют инновационные инструменты, способные изменить рынок?» Вероятно, компаниям следует обратить внимание на использование алгоритмов машинного обучения.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/0c1/977/7fa/0c19777fa60340bbbec8c5bd9fbe82a1.PNG
[2]: http://payonline.ru/?utm_source=habrahabr&utm_medium=referral&utm_campaign=webpayments-main
[3]: https://letstalkpayments.com/winning-with-algorithms-in-fintech/
[4]: https://habrahabr.ru/post/305646/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Исследование и доработка IP-видеосервера на базе Orange Pi PC
habra.16
habrabot(difrex,1) — All
2016-09-15 19:00:03


![][1]

Около полугода назад мне достался миниатюрный видеосервер, применение которому я нашёл в арендуемом для мотоцикла гараже, где он всё это время благополучно работал в связке с двумя китайскими NoName IP-камерами, худо-бедно поддерживающими ONVIF, и 3G-модемом, что позволяло мне удалённо посмотреть видео с камер при оповещениях о детекции движения, к счастью совпадавшими пока только с моим приходом в гараж. Не дал этому микросерверу спокойно работать дальше я сам, так как, ещё когда только получил его в руки, из любопытства разобрал и неожиданно для себя обнаружил, что построен он на одноплатнике Orange Pi PC, который незадолго до этого, благодаря низкой цене, широко освещался в интернете, в том числе и на Geektimes, поэтому я примерно представлял его возможности.

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

[1]: https://habrastorage.org/files/b6d/e48/6a2/b6de486a22e84d8fb5027074cb52953a.JPG
[2]: https://habrahabr.ru/post/310090/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Bagri — NoSQL база данных с открытым кодом, построенная поверх распределенного кэша
habra.16
habrabot(difrex,1) — All
2016-09-15 19:30:04


Сегодня хочу рассказать вам об open source проекте под названием [Bagri][1]. Bagri — это распределенная база данных документов (document database), или как сейчас модно говорить NoSQL база данных, написанная на Java и спроектированная с учетом требований, в основном используемых в корпоративном секторе, таких как высокая готовность, отказоустойчивость, масштабируемость и поддержка транзакционности.

Bagri построена поверх продуктов реализующих распределенный кэш, таких как Hazelcast, Coherence, Infinispan и других подобных систем. Именно за счет возможностей распределенного кэша Bagri поддерживает требования корпоративного сектора прямо из коробки. Распределенный кэш используется системой не только как хранилище данных, но и как распределенная система обработки этих данных, что позволяет эффективно и быстро обрабатывать любые большие объемы слабо структурированных данных. Транзакционность в системе решена с помощью алгоритма реализующего [multi-version concurrency control][2]
[Читать дальше →][3]

[1]: http://bagridb.com/
[2]: https://en.wikipedia.org/wiki/Multiversion_concurrency_control
[3]: https://habrahabr.ru/post/310110/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 ... 210