RSS
Pages: 1 ... 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
[>] Первое знакомство с архитектурой коллекционной карточной игры «Last Argument»
habra.14
habrabot(difrex,1) — All
2015-04-29 01:30:07


Добрый день! Меня зовут Сергей, я независимый разработчик игр. В сентябре 2014 года я поставил перед собой цель — реализовать игру во многом схожую с Heartstone. [Читать дальше →][1]

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

[>] [recovery mode] Компонент Lazarus на замену SynEdit
habra.14
habrabot(difrex,1) — All
2015-04-29 03:30:02


Начал писать месяц назад компонент для Lazarus, который бы мог заменить обычный SynEdit (это единственный серьезный компонент редактирования для Лазарус). Для своих целей. Мне бы хотелось написать «что-то типа Sublime Text». Но не совсем клон. Точнее, совсем не такой же редактор. Я бы хотел перенять многое из ST3, но на SynEdit это сделать вообще нельзя. Там нет переноса слов. Что уж говорить про все остальное. [Читать дальше →][1]

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

[>] [Из песочницы] Использование Direct3D с высокоуровневыми библиотеками компонентов VCL/LCL
habra.14
habrabot(difrex,1) — All
2015-04-29 10:30:02


Данная публикация адресуется новичкам в области программирования компьютерной графики, желающим использовать графическую библиотеку Microsoft DirectX. Сразу оговорюсь: — затронутая тема, наверняка, относится и к OpenGL, но я это не проверял опытным путём (созданием приложений под OpenGL), поэтому в заголовке упоминаю только Direct3D; — приводимые здесь примеры кода относятся к языкам Delphi/FreePascal, но перечисленные «рецепты» по большому счету универсальны в пределах целевой ОС (Windows) — их можно применять к любому языку программирования и, с высокой вероятностью — к любой высокоуровневой библиотеке компонентов, помимо VCL (Delphi) и LCL (Lazarus); — данная публикация не затрагивает тему создания каркасного приложения Direct3D и методов работы с графическими библиотеками DirectX и OpenGL; все эти вещи хорошо освещены в других источниках, и мне практически нечего к этому добавлять. Итак, ближе к теме. При разработке приложений с трехмерной графикой для построения каркаса учебного (а тем более — рабочего) приложения обычно рекомендуется использовать чистый Win32 API… Но если очень хочется использовать в своих приложениях ещё и преимущества высокоуровневых библиотек компонентов, тогда добро пожаловать под кат. [Читать дальше →][1]

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

[>] Ещё раз о шифровании ГОСТ 28147-89
habra.14
habrabot(difrex,1) — All
2015-04-29 13:00:02


О реализации этого алгоритма шифрования уже рассказывал [FTM][1]: [как в общем и целом][2], так и про [режим простой замены][3]. После изучения существующих библиотек и отдельных реализаций этого ГОСТа на C# я решил написать свой велосипед, в первую очередь, ради интереса и опыта. Результатами этой работы мне и хотелось бы поделиться с уважаемым сообществом. [Читать дальше →][4]

[1]: http://habrahabr.ru/users/ftm/
[2]: http://habrahabr.ru/post/80967/
[3]: http://habrahabr.ru/post/81032/
[4]: http://habrahabr.ru/post/256843/#habracut

[>] Хроники лаборатории: крыса в полимерном шлеме, спектральный анализ банкой чипсов и синяя изолента
habra.14
habrabot(difrex,1) — All
2015-04-29 15:00:02


![][1] _Знакомьтесь — подопытная крыса Теодор-младший._ Как многие знают, я сменил род деятельности и теперь основную часть времени я занимаюсь стволовыми клетками. Сразу хочу предупредить — работа в нашей лаборатории сопряжена с NDA, поэтому некоторых вещей я коснусь лишь поверхностно. Когда вы занимаетесь наукой, то очень часто возникает необходимость решать сложные и нестандартные задачи. Какими бы глянцевыми и красивыми ни были ваши портативные коллайдеры, любовно приборетенные для разработок, иногда возникает необходимость создать что-то «на коленке» для проверки какой-то идеи. Особенно остро это ощущается в госучреждениях, где, несмотря на зачастую прекрасное финансирование, закон вынуждает организовывать межгалактический тендер на приобретение карандаша. Поэтому я расскажу вам про синюю изоленту, спектральный анализ с помощью банки чипсов и художественную лепку экзоскелета для крысы-мутанта. А заодно узнаем, стоит ли топить сухой лед в унитазе и можно ли потом это пить. [Дальше очень-очень много фотографий и текста][2]

[1]: //habrastorage.org/files/6a9/829/b8f/6a9829b8fb974df58911d5d33839f34a.jpg
[2]: http://habrahabr.ru/post/255349/#habracut

[>] [Перевод] Сопоставление с образцом, изменения и перемещения в Rust
habra.14
habrabot(difrex,1) — All
2015-04-29 16:00:02


Одной из основных целей проекта Rust является безопасное системное программирование. Эта область обычно подразумевает императивную парадигму, что означает присутствие побочных эффектов, необходимость думать о разделяемом состоянии, и т.д. Для того, чтобы в таких условиях можно было обеспечить безопасность, программы и типы данных на Rust должны быть структурированы таким образом, чтобы их можно было статически проверить. Элементы и ограничения языка Rust совместно облегчают написание программ, проходящих эти проверки и, таким образом, обеспечивают безопасность. Например, в Rust глубоко интегрирована концепция _владениям данными_. Выражение `match` — это специальная конструкция, в которой эти особенности и ограничения сочетаются интересным образом. `match`-выражение принимает входное значение, классифицирует его и затем передаёт выполнение коду, который обрабатывает соответствующий класс данных. В этой статье мы рассмотрим, как работает `match` в Rust. Вот основные элементы, которые `match` и его дополнение, `enum`, объединяют в единое целое:

* Структурное сопоставление с образцом: анализ вариантов и удобство использования гораздо лучше, чем при использовании `switch` в C или Java.
* Исчерпывающий анализ: `match` гарантирует, что ни один вариант не пропущен.
* `match` поддерживает и императивный, и функциональный стили: вы можете и дальше использовать оператор `break`, присваивания и прочее, и вам совершенно не нужно переучиваться на стиль, основанный на выражениях;
* `match` умеет как «заимствовать», так и «перемещать»: Rust поощряет программиста думать о владении и заимствовании данных. Выражение `match` спроектировано в том числе с возможностью только _заимствования_ части структуры вместо её _перемещения_. Это нужно для того, чтобы не передать право владения какими-либо данными раньше, чем нужно.

Мы рассмотрим каждый из этих пунктов по отдельности ниже, но для начала нам следует заложить фундамент дальнейшего обсуждения — как `match` выглядит и работает? [Читать дальше →][1]

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

[>] Как Virtuozzo улучшает безопасность Docker для сервис-провайдеров
habra.14
habrabot(difrex,1) — All
2015-04-29 18:00:02


В бизнес-продразделении Odin\* недавно [объявили о поддержке контейнеров Docker в Virtuozzo][1]. Эта поддержка – часть нашей стратегии по реализации Virtuozzo как инфраструктурной основы для платформ контейнерной виртуализации, наиболее подходящей для работы в средах, где главные требования – безопасность и производительность. Стоит отметить, что такие контейнерные проекты, как Docker, иногда называют конкурентами нашим собственным разработкам. На самом деле, мы работаем на разных уровнях – Docker занимается управлением приложениями, а мы виртуализацией – в том числе и той, что используется в Docker. В результате нас нередко связывают партнерские отношения и совместная работа. Например, вместе с Docker мы разрабатываем проекты системных библиотек, предоставляющих интерфейс к ядерным контейнерным компонентам – это и начатый Docker проект Libcontainer (вместе с Canonical, Google и RedHat), и наш — libct (вместе с LXC и Google). Ниже – пример таких возможностей, которые дают совместные технологии. [Читать дальше →][2]

[1]: http://www.odin.com/news/pr/release/article/parallels-virtuozzo-now-provides-native-support-for-docker/
[2]: http://habrahabr.ru/post/256961/#habracut

[>] PHDays V: как сделать свой Shodan, противостоять ROP-шеллкодам и автоматизировать обратную разработку
habra.14
habrabot(difrex,1) — All
2015-04-29 18:30:02


[![][1]][2] Пятый международный форум по практической безопасности Positive Hack Days состоится 26 и 27 мая 2015 года в московском Центре международной торговли. Недавно завершилась вторая волна Call For Papers и сегодня мы представляем вашему вниманию новую порцию выступлений. [Читать дальше →][3]

[1]: //habrastorage.org/files/57b/54b/8aa/57b54b8aa4424f48b92fb67aaa2d1491.jpg
[2]: http://habrahabr.ru/company/pt/blog/256937/
[3]: http://habrahabr.ru/post/256937/#habracut

[>] [Перевод] Работа с датой и временем в Perl6
habra.14
habrabot(difrex,1) — All
2015-04-29 18:30:02




#### time и now

Две функции, которые возвращают текущее время (по крайней мере, то значение, которое ваше система принимает за текущее) – это time и now. Пример:

> say time; say now;
1292460064
Instant:2010-12-16T00:41:4.873248Z


Первая очевидная разница – time возвращает POSIX в целочисленном виде. now возвращает объект под названием Instant. Если вам нужны доли секунд и распознавание секунд координации времени, используйте now.

#### DateTime и его друзья

Большую часть времени вам нужно хранить даты, отличающиеся от now. Для этого используется объект DateTime. Для сохранения текущего времени: [Читать дальше →][1]

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

[>] [Перевод] Хакер имплантировал чип NFC в руку, чтобы обходить сканеры систем безопасности и управлять андроид-телефонами
habra.14
habrabot(difrex,1) — All
2015-04-29 19:00:02


![image][1] Опираясь на «хакерские» стереотипы, довольно легко идентифицировать человека, совершившего кибер-преступление. Сочетание бледности кожи, толстовки и ноутбука представляет собой яркую подсказку. Подобный заезженный образ хакера, конечно же, совершенно неверен и граничит с оскорблением. Настоящие хакеры, проникающие в бизнес-сети, достаточно благоразумны для того, чтобы избегать клише в собственной одежде и стремиться скрывать приемы своей работы. Для тех, кто в состоянии терпеть боль, биохакинг, при котором цифровые устройства вводятся под кожу, обеспечивает новые возможности настоящих стелс-навыков, помогающих проникать сквозь физические и цифровые системы сканирования. Именно поэтому младший офицер ВМС США Сет Уэль, в настоящее время являющийся инженером APA Wireless, имплантировал электронный чип в ладонь своей левой руки – в область между расставленными большим и указательным пальцами. Чип обладает NFC-антенной (Near Field Communications), которая пингует андроид-коммуникаторы с запросом установления соединения. Как только пользователь соглашается открыть доступ и установить вредоносный файл, его коммуникатор подключается к удаленному компьютеру, владелец которого может осуществлять дальнейшие действия с данным мобильным устройством. Проще говоря, такой андроид-коммуникатор оказывается взломанным. В демонстрации для Форбс Уэль, тестируя программное обеспечение своего ноутбука, применял Metasploit-проникновение, чтобы заставить андроид-устройства сфотографировать его собственную жизнерадостную физиономию. [Читать дальше →][2]

[1]: http://habrastorage.org/files/dc1/d27/4e7/dc1d274e733a437b8e9628c5297f0ab9.jpg
[2]: http://habrahabr.ru/post/256989/#habracut

[>] Детальный анализ Хабрахабра с помощью языка Wolfram Language (Mathematica)
habra.14
habrabot(difrex,1) — All
2015-04-29 19:30:02






_Скачать пост в виде документа Mathematica, который содержит весь код использованный в статье, вместе с дополнительными файлами, можно [здесь][1] (архив, ~147 МБ)._ Анализ социальных сетей и всевозможных медиа-ресурсов является сейчас довольно популярным направлением и тем удивительнее для меня было обнаружить, что на Хабрахабре, по сути, нет статей, которые содержали бы анализ большого количества информации (постов, ключевых слов, комментариев и пр.), накопленного на нем за довольно большой период работы. Надеюсь, что этот пост сможет заинтересовать многих участников Хабрахабра. Я буду рад предложениям и идеям возможных дальнейших направлений развития этого поста, а также любым замечаниям и рекомендациям. В посте будут рассматриваться статьи, относящиеся к [хабам][2], всего в анализе участвовало **62000 статей** из **264 хабов**. Статьи, написанные только для корпоративных блогов компаний в посте не рассматривались. Ввиду того, что база данных, построенная в посте, формировалась за некоторое время до публикации, а именно 26 апреля 2015 г., посты, опубликованные на Хабрахабре после этой даты (а также, возможно, новые хабы) в данном посте не рассматривались.

# Оглавление

[Импорт списка хабов][3] [Импорт ссылок на все статьи Хабрахабра][4] [Импорт всех статей Хабрахабра][5] [Функции извлечения конкретнных данных из символьного XML представления поста][6] [Создание базы данных постов Хабрахабра с помощью Dataset][7] [Результаты обработки данных][8] — [Краткий анализ хабов][9] — [Граф связей хабов на Хабрахабре][10] — [Количество статей в зависимости от времени][11] — [Количество изображений (видео), используемых в постах в зависимости от времени][12] — [Облака ключевых слов Хабрахабра и отдельных хабов][13] — [Сайты, на которые ссылаются в статьях на Хабрахабре][14] — [Коды, которые приводят в статьях на Хабрахабре][15] — [Частота встречи слов][16] — [Рейтинг и числа просмотров постов, а также вероятность достижения их определенных значений][17] — [Зависимость рейтинга и числа просмотров поста от времени публикации][18] — [Зависимость рейтинга поста от его объема][19] [Заключение][20] [Читать дальше →][21]

[1]: http://data.wolframmathematica.ru/habrahabr/HabrAnalysisInWolframLanguage/HabrAnalysisInWolframLanguage.rar
[2]: http://habrahabr.ru/hubs/
[3]: http://habrahabr.ru/company/wolfram/blog/256999/#Part1
[4]: http://habrahabr.ru/company/wolfram/blog/256999/#Part2
[5]: http://habrahabr.ru/company/wolfram/blog/256999/#Part3
[6]: http://habrahabr.ru/company/wolfram/blog/256999/#Part4
[7]: http://habrahabr.ru/company/wolfram/blog/256999/#Part5
[8]: http://habrahabr.ru/company/wolfram/blog/256999/#Part6
[9]: http://habrahabr.ru/company/wolfram/blog/256999/#Part7
[10]: http://habrahabr.ru/company/wolfram/blog/256999/#Part8
[11]: http://habrahabr.ru/company/wolfram/blog/256999/#Part9
[12]: http://habrahabr.ru/company/wolfram/blog/256999/#Part10
[13]: http://habrahabr.ru/company/wolfram/blog/256999/#Part11
[14]: http://habrahabr.ru/company/wolfram/blog/256999/#Part12
[15]: http://habrahabr.ru/company/wolfram/blog/256999/#Part13
[16]: http://habrahabr.ru/company/wolfram/blog/256999/#Part14
[17]: http://habrahabr.ru/company/wolfram/blog/256999/#Part15
[18]: http://habrahabr.ru/company/wolfram/blog/256999/#Part16
[19]: http://habrahabr.ru/company/wolfram/blog/256999/#Part17
[20]: http://habrahabr.ru/company/wolfram/blog/256999/#Part18
[21]: http://habrahabr.ru/post/256999/#habracut

[>] [Перевод] Десятка лучших движков для создания своих собственных игр
habra.14
habrabot(difrex,1) — All
2015-04-30 11:00:03


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

#### [Unity 5][1]

![image][2] Лучший выбор для разработчика, позволяет создавать игры как 2D, так и 3D.

#### [Construct 2][3]

![image][4] Система для создания двумерных игр через простой интерфейс на базе HTML5. Программирования не требуется.

#### [libGDX][5]

![image][6] Кросплатформенный фрейморк, написанный на Java и работающий с OpenGL (ES). [Читать дальше →][7]

[1]: http://unity3d.com/5
[2]: http://habrastorage.org/getpro/habr/post_images/df0/729/992/df072999226d52149fc6f12c573f5d8d.jpg
[3]: https://www.scirra.com/construct2
[4]: http://habrastorage.org/getpro/habr/post_images/330/16e/fd0/33016efd035b3b9ff205093a57721c61.jpg
[5]: http://libgdx.badlogicgames.com/
[6]: http://habrastorage.org/getpro/habr/post_images/983/f33/138/983f33138a14a0e45d4bcb99b0d87a86.jpg
[7]: http://habrahabr.ru/post/257019/#habracut

[>] Яндекс будет ниже ранжировать сайты, обманывающие пользователей мобильного интернета
habra.14
habrabot(difrex,1) — All
2015-04-30 11:30:03


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

[1]: //habrastorage.org/files/aeb/1f5/b7e/aeb1f5b7e38e4c569018f2c276a2cd81.jpg
[2]: http://habrahabr.ru/post/257043/#habracut

[>] Аудит одного «медленного» приложения в одном крупном концерне
habra.14
habrabot(difrex,1) — All
2015-04-30 12:30:03


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

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

Речь шла о том, что иногда в корпоративном секторе, прикрываясь надуманными нормативами или навязанными стандартами от безопасности, случаются совершенно неоправданные, а иногда и совершенно дикие реализации последних, нередко граничащих просто с невозможными условиями работы. Например CIO и иже с ним (либо нерадивые или просто ленивые исполнители), руководствуясь такими политиками, возможно переусердствовали, а часто не нашли (или не искали) лучшего решения. В результате имеем антивирусы на серверах, со всеми вытекающими, _потому что просто должен быть на каждом компьютере_. Сотрудников вынужденных работать под админом (aka MakeMeAdmin), _потому что создать админский аккаунт (тех-юзера), тупо для скриптов, перестартовки и дебага сервисов, ну никак не возможно (да и ладно — все-равно есть же антивирус)_. Политики позволяющие запустить исполняемый файл отовсюду (сеть, временный каталог и т.д.), _потому что какая-то там служба обновления по другому не умеет (не страшно — снова антивирус как аргумент)._ И т.д. и т. п. На самом деле я совершенно четко понимаю откуда у таких требований ноги растут. Довольно часто это действительно условия клиентов-заказчиков, требования материнской там или партнерской компании или де-факто стандарты индустрии, которым просто нужно соответствовать. Ну т.е. тупо никуда не денешься. Но, дело в том что технически как раз некоторые вещи, что касается безопасности, совершенно не оправданы, хуже того в действительности совсем «не секьюрны», мало того — мешают как разработке, так и продуктивной работе того же клиента. И если прикрывая свою пятую точку (прикрываясь фальшивыми «стандартами»), решаешь соответствовать требованию безопасности от лукавого, то сделай это хотя бы включая голову, так чтобы это не влияло (ну или минимально влияло) на продуктивность компании. Пример: как-то бились с одним известным антивирусом (доказуемо бажным, вероятно где-то в районе аналитики и очередях real time scanning) — при очень большой загруженности сервера (32 ядра >= 50% cpu load):

* антивирус блокирует (от нескольких миллисекунд до 30 секунд!) доступ к файлам, после их переименования — в результате многопоточный pipeline (асинхронная очередь заданий) периодически вылетает с «access denied» при доступе например к временным, только что созданным и затем переименованным файлам из другого потока, сообщившего об окончании работы. При том, что working folder вроде бы из real time scanning.
* или того хуже, кладет дочерние процессы спать (suspended) и забывает их «разбудить», а поток в предке бесконечно ждет окончания работы уснувшего дитя.

И ведь отключить его в продакшн на серверах _«никак не возможно»_ (даже временно в качестве доказательства, т.к. таким антивирусом как правило они себе одно место прикрывают). Например, что стоит разделить ту же сеть и воткнуть тот же антивирус за NAT-ом. Или хотя бы проверить на такие болячки и заменить на другой, более надежный. Сравните эту стоимость со скажем человеко-часом \* 25000 сотрудников, ежедневно минута за минутой тратящихся на тупое ожидание ответа приложения. А в результате растет-растет число велосипедов типа «safe\_rename», «real\_delete» или «start\_process\_with\_observe» вокруг проектов. Тот же CIO быстро пересмотрел бы свою позицию, если бы ему (его подразделению) коллективный счет выставить за суммарное время «простоя» (ожидания) всех сотрудников. [Итак аудит ...][2]

[1]: /post/256793/#comment_8397441
[2]: http://habrahabr.ru/post/256975/#habracut

[>] Автоматический 3D сканер размера упаковки
habra.14
habrabot(difrex,1) — All
2015-04-30 14:00:01


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

[1]: http://masterkit.ru/shop/arduino/shields/1905153
[2]: http://masterkit.ru/shop/arduino/controllers/1375722
[3]: //habrastorage.org/files/122/b08/dec/122b08dec63247f8b0e5b880132d355c.JPG
[4]: http://habrahabr.ru/post/256431/#habracut

[>] Атака на оракула. Подробный гайд по векторам атак на Oracle DB
habra.14
habrabot(difrex,1) — All
2015-04-30 15:00:02


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

[1]: //habrastorage.org/files/063/258/777/06325877794c4fe481dc1463efb1c7eb.jpg
[2]: http://habrahabr.ru/post/256663/#habracut

[>] Программисты не понимают
habra.14
habrabot(difrex,1) — All
2015-04-30 15:00:02


Написать данную статью меня подтолкнула статья [«Твой код никого не интересует»][1]. А точнее, комментарии к ней, которые говорили о полном или частичном непонимании у некоторых читателей хабра почему именно «твой код никого не интересует». Чтобы понять позицию «твой код никого не интересует», надо подойти со стороны бизнеса: зарабатывание денег, выплата ЗП своим сотрудникам, уплата налогов, в общем, с точки зрения доходов/расходов компании или отдельно взятого человека. Например, утверждение «идеальный код — залог успешного бизнеса» может казаться логичным, но с точки зрения доходов/расходов далеко не всегда истинно. Например, малофункциональный продукт или продукт недостаточного качества для бизнеса, продающего этот продукт, может быть куда полезней, чем полноценная рабочая версия. Это звучит нелогично, но, увы, больше похоже на правду. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/256175/
[2]: http://habrahabr.ru/post/256477/#habracut

[>] Яндекс против мошеннических мобильных редиректов и подписок
habra.14
habrabot(difrex,1) — All
2015-04-30 15:00:02


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



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

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

[>] [recovery mode] Жизнь в стиле SMART (продолжение)
habra.14
habrabot(difrex,1) — All
2015-04-30 15:30:01


_[В предыдущей статье][1] мы рассказывали о преимуществах и проблемах использования системы Умного дома с точки зрения пользователей. Теперь поговорим о конкретной реализации ._ ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/company/ximad/blog/256873/
[2]: //habrastorage.org/files/f65/98f/122/f6598f122fbb41ceb5b3152757465399.png
[3]: http://habrahabr.ru/post/257055/#habracut

[>] Уязвимость в proftpd CVE-2015-3306
habra.14
habrabot(difrex,1) — All
2015-04-30 15:30:02


Недавно обнаружилось, что часть сайтов подверглось взлому и были залиты веб-шеллы. Изучение взлома показало, что причина кроется в proftpd. Поиск на эту тему выдал, что недавно ([10\.04.2015][1]) была зафиксирована уязвимость под номером [CVE-2015-3306 (Debian, Red Hat, Ubuntu, Gentoo, more)][2]. Источник: [http://bugs.proftpd.org/show\_bug.cgi?id=4169][3] Например, ситуация с debian: ![][4] Тоесть, на данный момент, уязвимы все актуальные версии debian. И так как обновление в текущие стабильные репозитории до сих пор не попало, то устранить уязвимость можно обновив proftpd из sid репозитория. Начиная с 1.3.5-2 проблема исправлена. [Читать дальше →][5]

[1]: http://www.securitylab.ru/vulnerability/472462.php
[2]: https://security-tracker.debian.org/tracker/CVE-2015-3306
[3]: http://bugs.proftpd.org/show_bug.cgi?id=4169
[4]: //habrastorage.org/files/b46/c64/eab/b46c64eab604445f9ecfdb5d93e490c2.png
[5]: http://habrahabr.ru/post/257027/#habracut

[>] [Перевод] Транслитерация в Perl6
habra.14
habrabot(difrex,1) — All
2015-04-30 15:30:02


«Транслитерация» означает замену символов. Именно этим и занимается метод Str.trans

say "GATTACA".trans( "TCAG" => "0123" ); # выводит "3200212\n"


Люди, знакомые с Perl 5 или с оболочкой Unix распознают в этом tr/tcag/0123/, а для остальных поясним: каждая буква T заменяется на 0, каждая C на 1, и так далее. Две строки, TCAG и 0123, предоставляют алфавиты, которые надо взаимозаменять. Это можно использовать для скорости при реализации разных операций. Например, простая функция, «шифрующая» текст методом [ROT-13 ][1](замена символа тем, что стоит через 13 позиций от него): [Читать дальше →][2]

[1]: http://en.wikipedia.org/wiki/ROT13
[2]: http://habrahabr.ru/post/257021/#habracut

[>] [Перевод] Игровые Истории и немного «ЧАЯ» ч.2
habra.14
habrabot(difrex,1) — All
2015-04-30 15:30:02


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

[1]: http://habrahabr.ru/company/ilkfinkom/blog/256745/
[2]: //habrastorage.org/files/bf6/116/bee/bf6116bee9cd4abaa55a2010bebf5ef0.jpg
[3]: http://habrahabr.ru/post/256751/#habracut

[>] Знакомство с программным Ethernet Fast Path на отладочной плате P1020RDB
habra.14
habrabot(difrex,1) — All
2015-04-30 15:30:02


![][1] Не смотря на то, что процессоры архитектуры ARM начинают активно завоевывать рынок систем широкополосной связи и сетевых технологий, процессоры PowerPC все еще занимают значительную долю рынка благодаря таким производителям, как Freescale. В рамках данной статьи мы познакомимся с техническими возможностями процессора Freescale P1020 в части обработки Ethernet-траффика. А также проверим производительность IP-маршрутизации на отладочной плате P1020RDB (внешний вид см. выше). [Читать дальше →][2]

[1]: //habrastorage.org/files/db4/d06/d22/db4d06d22f9b4c49949aed426c363928.jpg
[2]: http://habrahabr.ru/post/257015/#habracut

[>] Проверяем исходный код FreeCAD и его «нехорошие» зависимости
habra.14
habrabot(difrex,1) — All
2015-04-30 18:00:03






Статья, которая задумывалась как обзор ошибок в открытом проекте FreeCAD, приобрела немного другой характер. Весомая часть предупреждений анализатора пришлась на используемые сторонние библиотеки. Разработка программного обеспечения с активным использованием сторонних библиотек даёт много плюсов, особенно в сфере Open Source. И ошибки в библиотеках не повод отказываться от них. Но надо понимать, что в используемом коде тоже могут жить баги. Их надо быть готовым встретить и по возможности исправить, тем самым улучшив используемые вами библиотеки. [FreeCAD][1] — параметрический трехмерный редактор, позволяющий создавать объемные модели и чертежи их проекций. Разработчик FreeCAD Юрген Ригель, работающий в корпорации DaimlerChrysler, позиционирует свою программу как первый бесплатный инструмент проектирования механики. В среде специалистов ряда отраслей известна проблема создания полноценной САПР в рамках Open Source, и этот проект является кандидатом на такую «полноценность». Проверим же исходный код с помощью [PVS-Studio][2] и поможем открытому проекту в этой области стать чуточку лучше. Наверняка вы сталкивались с «глюками» в различных редакторах, когда не удаётся попасть в какую-нибудь точку или выпрямить линию, которая всегда съезжает на один пиксель. Возможно, причиной всего этого являются лишь опечатки в исходном коде. [Читать и смотреть картинки...][3]

[1]: http://www.viva64.com/go.php?url=1534
[2]: http://www.viva64.com/ru/pvs-studio/
[3]: http://habrahabr.ru/post/257079/#habracut

[>] [Из песочницы] Мини-обзор библиотек для Reflection в C++
habra.14
habrabot(difrex,1) — All
2015-04-30 18:30:02


В силу скромной информации на эту тему, в данной статье проведу небольшой обзор и сравнение найденных библиотек для Reflection в C++. В первую очередь эта информация будет интереса разработчикам игр. Благодаря reflection можно: — Легко создавать редакторы, в том числе интерфейсов, так как есть удобный доступ к мета-информации о всех свойствах ваших объектов; — Добавить binding для многих скриптовых языков сразу (Lua, Python, JavaScript и т.д.); — Использовать мета-информацию для автоматической сериализаци; — Использовать как фабрику объектов, создавая нужные экземпляры, имея лишь строку с именем тип; — Использовать в качестве более легковесной замены dynamic\_cast; — И прочее прочее прочее, в зависимости от фантазии и потребностей. [Читать дальше →][1]

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

[>] Новости BUILD 2015: Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5
habra.14
habrabot(difrex,1) — All
2015-04-30 22:00:02


![][1]Конференция [Microsoft BUILD][2] это момент выпуска новых инструментов для разработчиков и анонсов. И без сомнения, в этом году мы превзошли сами себя. В этом посте нам хотелось бы рассказать о главных новинках которые мы выпустили, но не забудьте так же посмотреть на анонсы которые опубликованы в блогах [Скота Гатри][3], [Терри Маерсон ][4], [Сомасегара][5] и [Брайана Харри][6]. Если вы предпочитаете смотреть видео, мы так же опубликовали [видео основных анонсов][7]. Самая главная новость и краткое содержание этого материала – мы выпустили [Visual Studio 2015 Release Candidate (RC)][8], [.NET Framework 4.6][9], [Team Foundation Server 2015 RC][10], и [Visual Studio 2013 Update 5 RC][11] а так же предварительную версию нового инструмента работающего на MacOS, Linux и Windows — [Visual Studio Code][12]. Прямо сейчас вы можете начать загрузку пока читаете этот пост. [Читать дальше →][13]

[1]: http://habrastorage.org/getpro/habr/post_images/dc2/e30/b96/dc2e30b96cce28d0acf781e909f06be2.png
[2]: http://www.buildwindows.com/
[3]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200627584
[4]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200627581
[5]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200627580
[6]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200627582
[7]: http://channel9.msdn.com/events/build/2015
[8]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200626829
[9]: https://www.visualstudio.com/news/vs2015-vs?CR_CC=200626819
[10]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200626824
[11]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200626818
[12]: http://www.microsoft.com/click/services/Redirect2.ashx?CR_CC=200627586
[13]: http://habrahabr.ru/post/257083/#habracut

[>] Анализ изображений и видео. Сегментация изображений
habra.14
habrabot(difrex,1) — All
2015-05-01 22:00:02


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




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

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

Под катом вы найдете план новой лекции и слайды. [Читать дальше →][8]

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

[>] Лаборатория тестирования на проникновение «Test lab v.7» открыта
habra.14
habrabot(difrex,1) — All
2015-05-02 03:00:02


Рады сообщить об открытии новой пентест-лаборатории «Test lab v.7» под кодовым названием «Ахиллесова пята». 01 мая 2015 г. начиная с 22:00 по московскому времени лаборатория будет открыта для участия. Как сообщалось [ранее][1], лаборатория представляет собой типичную корпоративную сеть виртуальной компании «SecureSoft LLC», которая занимается разработкой систем обеспечения информационной безопасности.

##### Мировая карта атак на лабораторию

![][2]

##### Сюжет

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

[1]: http://habrahabr.ru/company/pentestit/blog/255823/
[2]: //habrastorage.org/files/a25/787/4e0/a257874e067f4262a27103b099a81e7e.jpg
[3]: http://habrahabr.ru/post/257117/#habracut

[>] Билайн автоматически добавляет тулбар с поиском mail.ru
habra.14
habrabot(difrex,1) — All
2015-05-02 05:30:03


![][1] Наверное многие слышали про тулбар от Билайн. С их стороны этот сервис вежливо назван "[Мини-кабинет][2]".

> «Мини-кабинет» – это сервис самообслуживания в браузере, с помощью которого можно узнавать баланс, остаток интернет трафика, управлять услугами связи и менять тарифные планы, а также получать ссылки на полезные сервисы от «Билайн»

Есть говорить по-другому, то билайн добавлял на любую не зашифрованную (http) страницу свой javascript код и в браузере отображался тулбар с информацией о балансе и ссылками на сайт билайна. На хабре о нем как-то [писали][3] и проблема вроде как была решена. Однако, билайн решил пойти еще дальше и начал добавлять на сайты тулбар с поиском mail.ru! ![][4] [Читать дальше →][5]

[1]: //habrastorage.org/files/32b/07c/ef7/32b07cef72a3475784d5745c430e6c1b.png
[2]: http://spb.beeline.ru/customers/products/mobile/services/details/mini-kabinet/
[3]: http://habrahabr.ru/post/230921/
[4]: //habrastorage.org/files/808/62e/3b0/80862e3b061b405a9eb3d1fb2d8e1b1e.png
[5]: http://habrahabr.ru/post/257133/#habracut

[>] Очередные пароли засветили на ТВ. Теперь Британские железные дороги
habra.14
habrabot(difrex,1) — All
2015-05-02 13:00:02


![][1] Похоже, светить пароли в СМИ становится традицией. Вслед за французским [телеканалом][2] TV5Monde, [базой][3] королевских ВВС и [центром][4] обеспечения безопасности ЧМ2014 по футболу, свои пароли на стикерах, приклеенных к монитору, продемонстрировала в документальном фильме BBC лондонский узел управления железнодорожным транспортом. Логин и пароль появился на 44-й минуте документального фильма «Nick And Margaret: The Trouble With Our Trains», в котором журналисты Ник Хьюер и Маргарет Маунтфорд рассказывают о плачевном состоянии британской железной дороги. В ходе передачи они, помимо прочего, посещают так называемый Вессекский Интегрированный Центр управления, круглосуточно осуществляющий контроль и управление местными поездами, расположенный над платформой входа на Лондонский железнодорожный вокзал [Ватерлоо][5]. На кадрах хорошо видна местная система управления поездами, работающая на с машинах с Windows XP (что тоже вызывает вопросы, т.к. обновления безопасности для данной платформы уже давно не выпускаются). На некоторое время в кадр попадает монитор, с приклеенными к нему бумажками с логином _CO-WSX-WGO-01A_ и паролем _Password3_, а за ним видны другие с похожими наклейками… [Читать дальше →][6]

[1]: http://habrastorage.org/files/2dc/76d/c1b/2dc76dc1bbd149cb97b2759340c8efd1.jpeg
[2]: http://habrahabr.ru/post/255509/
[3]: http://habrahabr.ru/post/159679/
[4]: http://habrahabr.ru/post/227689/
[5]: https://ru.wikipedia.org/wiki/%C2%E0%F2%E5%F0%EB%EE%EE_(%E2%EE%EA%E7%E0%EB)
[6]: http://habrahabr.ru/post/257137/#habracut

[>] Ошибка в коде AFNetworking позволяет перехватывать HTTPS трафик пользователей
habra.14
habrabot(difrex,1) — All
2015-05-03 14:00:02


В одном из самых популярных фреймворков для работы с сетью в iOS и OS X системах была найдена критическая уявимость. Под прицелом специалистов из Minded Security оказался [AFNetworking][1], а именно версия 2.5.1. ![image][2] [Читать дальше →][3]

[1]: https://github.com/AFNetworking/AFNetworking
[2]: http://habrastorage.org/getpro/habr/post_images/219/a3e/9cc/219a3e9cc05ec89872eb82b66ceed7e5.png
[3]: http://habrahabr.ru/post/257163/#habracut

[>] [Перевод] Разработка приложений для Apple Watch (iPhone и iPad) с помощью Wolfram Language (Mathematica)
habra.14
habrabot(difrex,1) — All
2015-05-03 19:00:02






_Перевод поста Стивена Вольфрама (Stephen Wolfram) "[Instant Apps for the Apple Watch with the Wolfram Language][1]". Выражаю огромную благодарность [Кириллу Гузенко][2] за помощь в переводе._

----

Моя цель — с помощью [Wolfram Language][3] вывести программирование на новый уровень. И за прошлый год (см. статью на Хабрахабре "[Стивен Вольфрам: Рубежи вычислительного мышления (отчёт с фестиваля SXSW)][4]") мы расширили [способы использования и развёртывания языка][5] — на рабочем компьютере, в облаке, мобильных и встраиваемых платформах и т. д. А что по поводу носимых гаджетов? И, в частности, насчет Apple Watch? Несколько дней назад я решил посмотреть, что тут можно сделать. Так что я освободил свой день под это дело и начал писать код. Идея заключалась в написании кода с помощью [Wolfram Programming Cloud][6], но вместо создания веб-приложения или web API мне нужно было получить приложение для Apple Watch. И, что достаточно удобно — первая, предварительная, версия нашего [Wolfram Cloud app][7] теперь доступна в App Store: ![][8] ![][9] Оно позволяет выгружать приложения из [Wolfram Cloud][10] сразу на iPhone, iPad и Apple Watch. [Читать дальше →][11]

[1]: http://blog.wolfram.com/2015/04/28/instant-apps-for-the-apple-watch-with-the-wolfram-language/
[2]: http://vk.com/ld742
[3]: http://www.wolfram.com/language/
[4]: http://habrahabr.ru/company/wolfram/blog/255579/
[5]: http://www.wolfram.com/language/uses/
[6]: http://www.wolfram.com/programming-cloud/
[7]: https://itunes.apple.com/us/app/wolfram-cloud/id978701305
[8]: //habrastorage.org/files/617/0ff/f97/6170fff9714841efb8bfd188198b5a7c.jpeg
[9]: //habrastorage.org/files/d40/d71/e96/d40d71e967a54e7ebe205824ada95519.jpeg
[10]: http://www.wolfram.com/cloud/
[11]: http://habrahabr.ru/post/257171/#habracut

[>] Фабрика сайтов (Ф.CMS) проиграла суд
habra.14
habrabot(difrex,1) — All
2015-05-03 19:00:02


Наверняка многие активные MODX-разработчики слышали про «Фабрику сайтов». Это такие ребята, которые сделали копию движка MODX Revolution, назвали ее Ф.CMS и клепают на ней сайты, выдавая за собственный движок. Но помимо того, что они взяли сторонний опенсурс-движок, они еще и «позаимствовали» различные модули сторонних разработчиков, так же переименовали их и продают как свои, не указывая никакого авторства. Среди пострадавших — [andchir][1] и [bezumkin][2]. Последний [писал про эту ситуацию][3] довольно давно и подробно. В прошлом году мне пришлось столкнуться с парой клиентов, чьи сайты долго и безнадежно разрабатывались в Фабрике. Один из сайтов был мной переделан и по результатам был [написан подробный топик][4], где я разбирал качество выполненной работы указанной компании. И да, переданный мне сайт был разработан на Ф.CMS, действительно очень сильно напоминающую MODX Revolution, и да, в качестве модуль интернет-магазина использовался ShopKeeper by [Andchir][5]. [Читать дальше →][6]

[1]: http://habrahabr.ru/users/andchir/
[2]: http://habrahabr.ru/users/bezumkin/
[3]: https://bezumkin.ru/sections/blog/497/
[4]: http://modxclub.ru/topics/fabrika-sajtov-otzyivy.html
[5]: http://habrahabr.ru/users/andchir/
[6]: http://habrahabr.ru/post/257149/#habracut

[>] Mesosphere открывает тестовый доступ к своей ОС для дата-центров
habra.14
habrabot(difrex,1) — All
2015-05-04 04:00:03


![][1] Про операционные системы для дата-центров начали говорить относительно недавно. И буквально полгода назад [компания Mesosphere][2] заявила об успешной разработке подобной операционной системы. Сейчас компания сделала второе заявление: она открывает тестовый доступ к своей ОС, при этом в тестовый период ОС от Mesosphere будет доступна не всем, а предоставляться по заявкам заинтересованных организаций. Стоит отметить, что некоторые организации и стартапы получили такой доступ. К примеру, [Kubernetes][3], сторонний проект Google, сейчас полностью интегрирован с ОС Mesosphere. Процесс интеграции начался еще в прошлом году, и сейчас, как видим, успешно завершен. Кстати, проект от Mesosphere заинтересовал не только представителей телекоммуникационной сферы, но и инвесторов, [которые уже выделили][4] около $50 млн на этот проект. Среди прочих инвесторов — Andreessen-Horowitz, Khosla Ventures, SV Angel и Fuel Capital. [Читать дальше →][5]

[1]: http://habrastorage.org/getpro/habr/post_images/4f2/541/b5c/4f2541b5c31d9eb327864bfddfe5ab50.png
[2]: http://mesosphere.io/
[3]: http://kubernetes.io/
[4]: http://venturebeat.com/2014/12/07/mesosphere-funding/
[5]: http://habrahabr.ru/post/257139/#habracut

[>] Что делать если Google authenticator всегда выдает неправильные коды
habra.14
habrabot(difrex,1) — All
2015-05-04 10:30:02


![][1] Доброго времени суток. Я хотел бы рассказать вам о проблемах 2FA аутентификации на устройствах Android 4.4.2 KitKat и о решении, которое в нашем случае прекратило долгие поиски. Некоторое время назад мы с коллегами решили добавить Двухэтапную аутентификацию (Two factor authentication или для краткости 2FA) для нашего маленького офисного сервера на базе Ubuntu Server. 2FA это дополнительный уровень безопасности и приятное дополнение к уже существующему механизму аутентификации. Кроме обычной пары логин + пароль от пользователя, выполняющего авторизацию, требуется цифровой ключ, который динамически изменяется каждые 30 секунд и генерируется устройством, находящимся во владении пользователя. Для генерации ключа мы использовали Приложение [Google authenticator][2] и мобильный телефон на платформе Android. После разовой настройки приложение генерирует коды, имеющие срок жизни в 30 секунд, точно такие же коды генерирует сервер. При аутентификации коды сравниваются. Так как данные не передаются от сервера и хранятся только на устройстве — этот механизм является более безопасным, чем отправка кодов подтверждения (например как 3D-secure SMS подтверждение в банковских системах). [Читать дальше →][3]

[1]: https://lh6.ggpht.com/SK6qynd5-RDcys_3anR6QLocnjY_o9ZbDMmKtTnrAiQ3zNuWVFbkE2N15IyNBGBUhdkH=w300-rw
[2]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=ru
[3]: http://habrahabr.ru/post/257197/#habracut

[>] Бесплатные SSL-сертификаты теперь на 3 года от WoSign
habra.14
habrabot(difrex,1) — All
2015-05-04 13:00:02


![][1] Вчера обнаружил, что WoSing дает бесплатно сертификат, теперь уже, на 3 года. [Читать дальше →][2]

[1]: //habrastorage.org/files/d59/003/7d3/d590037d38604e45add24153b662d561.png
[2]: http://habrahabr.ru/post/257207/#habracut

[>] EPAM, собери мне геном
habra.14
habrabot(difrex,1) — All
2015-05-04 15:30:02


Если сравнивать человека с компьютером, то его тело – это hardware, а то, что вдыхает в него жизнь – software. И сегодня речь пойдёт о человеческом software – его геноме. ![image][1] [Читать дальше →][2]

[1]: http://habrastorage.org/files/6c6/ab9/f33/6c6ab9f3316f4441a60475fe162678b4.jpg
[2]: http://habrahabr.ru/post/257215/#habracut

[>] Что делать, если Google authenticator всегда выдает неправильные коды
habra.14
habrabot(difrex,1) — All
2015-05-04 15:30:02


![][1] Доброго времени суток. Я хотел бы рассказать вам о проблемах 2FA аутентификации на устройствах Android 4.4.2 KitKat и о решении, которое в нашем случае прекратило долгие поиски. Некоторое время назад мы с коллегами решили добавить Двухэтапную аутентификацию (Two factor authentication или для краткости 2FA) для нашего маленького офисного сервера на базе Ubuntu Server. 2FA это дополнительный уровень безопасности и приятное дополнение к уже существующему механизму аутентификации. Кроме обычной пары логин + пароль от пользователя, выполняющего авторизацию, требуется цифровой ключ, который динамически изменяется каждые 30 секунд и генерируется устройством, находящимся во владении пользователя. Для генерации ключа мы использовали Приложение [Google authenticator][2] и мобильный телефон на платформе Android. После разовой настройки приложение генерирует коды, имеющие срок жизни в 30 секунд, точно такие же коды генерирует сервер. При аутентификации коды сравниваются. Так как данные не передаются от сервера и хранятся только на устройстве — этот механизм является более безопасным, чем отправка кодов подтверждения (например, как 3D-secure SMS подтверждение в банковских системах). [Читать дальше →][3]

[1]: https://lh6.ggpht.com/SK6qynd5-RDcys_3anR6QLocnjY_o9ZbDMmKtTnrAiQ3zNuWVFbkE2N15IyNBGBUhdkH=w300-rw
[2]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=ru
[3]: http://habrahabr.ru/post/257197/#habracut

[>] Трансгуманизм в массы: разблокировка устройства на Android Lollipop вживленным NFC-чипом
habra.14
habrabot(difrex,1) — All
2015-05-04 16:00:02


Еще в школе я познакомилась с жанром аниме. Мультяшные куклы с огромными глазами не особо впечатлили, но тогда я увидела по телевизору сериал Wonder Beat Scrumble — и для меня открылось то, что в аниме тоже неплохо выглядит: всяческая механика, электроника и вообще крутые штуки, связанные с техногенным путем развития. С тех пор я с восхищением наблюдала за развитием технологий в нашем времени и не в мультиках, а наяву — компьютеры, сотовые телефоны, беспроводная связь, бионические протезы. Узнала новый термин «трансгуманизм» и мечтала, мечтала, мечтала что когда-нибудь люди начнут расширять возможности своего тела за счет объединения биологии и механики с электроникой. Для меня эта мечта стала сбываться — об этом под катом. [Читать дальше →][1]

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

[>] [Перевод] Async/await в C#: подводные камни
habra.14
habrabot(difrex,1) — All
2015-05-04 17:00:02


Я бы хотел обсудить подводные камни, которые наиболее часто встречаются при работе с фичей async/await в C#, а также написать про то, как их можно обойти. [Читать дальше →][1]

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

[>] Spring Boot: от начала до продакшена
habra.14
habrabot(difrex,1) — All
2015-05-04 19:00:02


![][1]![][2] В данной статье я попробую расписать все шаги, которые потребуются для создания небольшого проекта на Spring Boot и развертывания его на боевом сервере. [Читать дальше →][3]

[1]: //habrastorage.org/files/0ed/0bc/1f8/0ed0bc1f8ab842d1b0d30e4a26c76482.png
[2]: //habrastorage.org/files/5d7/b9a/6dd/5d7b9a6dd9c94175a05883b9fdd97303.png
[3]: http://habrahabr.ru/post/257223/#habracut

[>] NFX — Ультраэффективная Бинарная Сериализация в CLR
habra.14
habrabot(difrex,1) — All
2015-05-05 00:30:02




# Требования

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

* самозацикленные графы объектов (деревья с back-references)
* массивы структур (value types)
* классы/структуры с readonly полями
* инстансы существующих .Net коллекций (Dictionary, List), которые внутренне используют custom-сериализацию
* большое кол-во инстансов типов, специализированных для конкретной задачи

Речь пойдёт о трёх аспектах, которые очень важны в распределённых кластерных системах:

* скорость сериализации/десериализации
* объём объектов в сериализированном виде
* возможность использовать существующие объекты без надобности “украшения” этих объектов и их полей вспомогательными атрибутами для сериализации

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

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

[>] Оптимизируем шаг за шагом с компилятором Intel C++
habra.14
habrabot(difrex,1) — All
2015-05-05 11:00:02






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

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

[>] Бесплатные SSL-сертификаты — теперь на 3 года от WoSign
habra.14
habrabot(difrex,1) — All
2015-05-05 11:30:02


![][1] Вчера обнаружил, что WoSing дает бесплатно сертификат, теперь уже на 3 года. [Читать дальше →][2]

[1]: //habrastorage.org/files/d59/003/7d3/d590037d38604e45add24153b662d561.png
[2]: http://habrahabr.ru/post/257207/#habracut

[>] Решение лабиринтов на Perl
habra.14
habrabot(difrex,1) — All
2015-05-05 13:30:02


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

#### Читаем лабиринт

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

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="112" height="96" version="1.1" xmlns="http://www.w3.org/2000/svg">
<rect width="112" height="96" fill="white" stroke="none" />
<title>5 by 4 orthogonal maze</title>
<g fill="none" stroke="#000000" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
<line x1="16" y1="16" x2="32" y2="16" />
<line x1="48" y1="16" x2="80" y2="16" />
<line x1="16" y1="80" x2="96" y2="80" />
<line x1="16" y1="16" x2="16" y2="80" />
<line x1="96" y1="16" x2="96" y2="80" />
<line x1="64" y1="16" x2="64" y2="32" />
<line x1="32" y1="32" x2="32" y2="48" />
<line x1="32" y1="32" x2="48" y2="32" />
<line x1="64" y1="32" x2="64" y2="48" />
<line x1="64" y1="32" x2="80" y2="32" />
<line x1="32" y1="48" x2="48" y2="48" />
<line x1="48" y1="48" x2="48" y2="64" />
<line x1="48" y1="48" x2="64" y2="48" />
<line x1="80" y1="48" x2="80" y2="64" />
<line x1="16" y1="64" x2="32" y2="64" />
<line x1="48" y1="64" x2="64" y2="64" />
<line x1="80" y1="64" x2="80" y2="80" />
</g>

<g fill="black" stroke="none" stroke-width="1">
<text x="24" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">1</text>
<text x="40" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">2</text>
<text x="56" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">3</text>
<text x="72" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">4</text>
<text x="88" y="26" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">5</text>
<text x="24" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">6</text>
<text x="40" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">7</text>
<text x="56" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">8</text>
<text x="72" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">9</text>
<text x="88" y="42" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">10</text>
<text x="24" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">11</text>
<text x="40" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">12</text>
<text x="56" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">13</text>
<text x="72" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">14</text>
<text x="88" y="58" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">15</text>
<text x="24" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">16</text>
<text x="40" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">17</text>
<text x="56" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">18</text>
<text x="72" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">19</text>
<text x="88" y="74" text-anchor="middle" style="font-family:Arial Narrow; font-size: xx-small;">20</text>
</g>
</svg>




![][1] Файл мы будем обрабатывать двумя регулярками – одна для размера, а вторая – для поиска линий. [Читать дальше →][2]

[1]: //habrastorage.org/files/230/b16/b2f/230b16b2f426458099389b899dcfdcdb.png
[2]: http://habrahabr.ru/post/257251/#habracut

[>] Играем мускулами. Методы и средства взлома баз данных MySQL
habra.14
habrabot(difrex,1) — All
2015-05-05 13:30:02


![][1] MySQL — одна из самых распространенных СУБД. Ее можно встретить повсюду, но наиболее часто она используется многочисленными сайтами. Именно поэтому безопасность базы данных — очень важный вопрос, ибо если злоумышленник получил доступ к базе, то есть большая вероятность, что он скомпрометирует не только ресурс, но и всю локальную сеть. Поэтому я решил собрать всю полезную инфу по взлому и постэксплуатации MySQL, все трюки и приемы, которые используются при проведении пентестов, чтобы ты смог проверить свою СУБД. 0day-техник тут не будет: кто-то еще раз повторит теорию, а кто-то почерпнет что-то новое. Итак, поехали! [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/5e9/6b5/e08/5e96b5e080f92e62126f023ef978ef66.jpg
[2]: http://habrahabr.ru/post/256665/#habracut

[>] Лекции Техносферы. 2 семестр. Современные методы и средства построения систем информационного поиска
habra.14
habrabot(difrex,1) — All
2015-05-05 14:30:02







Снова в эфире наша образовательная рубрика. На этот раз предлагаем ознакомиться с очередным курсом Техносферы, посвящённым информационному поиску. Цель курса — рассказать об основных методах, применяемых при создании поисковых систем. Некоторые из них представляют собой хороший пример смекалки, некоторые показывают, где и как может применяться современный математический аппарат. Преподаватели курса: Алексей Воропаев, Владимир Гулин, Дмитрий Соловьев, Игорь Андреев, Алексей Романенко, Ян Кисель. [Читать дальше →][1]

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

[>] [Из песочницы] Изменение схемы разбивки диска на арендуемом VPS
habra.14
habrabot(difrex,1) — All
2015-05-05 16:30:02


«Можно ли сделать произвольную схему разбивки диска на виртуальном сервере?» Такой вопрос однажды возник в моей голове. Сразу скажу — речь о случае, когда нет доступа к гипервизору (иначе это было бы слишком легко). На первый взгляд может показаться, что вопрос не решаемый. В самом деле — чтобы переразбить раздел, его нужно отмонтировать. В случае с домашними компьютерами для этого используют Live\{CD,USB\}. Но если в вашем распоряжении только ssh? Пару секунд на обдумывание — и я нашёл решение. Казалось, на этом можно успокоиться: сам проблему придумал, сам решил. Но потом я в шутку задал этот же вопрос коллеге, будучи уверен, что у него так же не возникнет затруднений с решением вопроса. Результаты меня удивили. Опросив других, оказалось что все опрошенные уверены, что переразбить диск на VPS невозможно. Дальше всех пошёл только один парень, который сказал: «Можно, но не корневой раздел». Если вы тоже не знаете решения этой задачки или просто хотите посмотреть на пример реализации — добро пожаловать в статью! [Читать дальше →][1]

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

[>] Билайн автоматически добавляет тулбар с поиском Mail.Ru
habra.14
habrabot(difrex,1) — All
2015-05-05 16:30:02


![][1] Наверное, многие слышали про тулбар от Билайн. С их стороны этот сервис вежливо назван "[Мини-кабинет][2]".

> «Мини-кабинет» – это сервис самообслуживания в браузере, с помощью которого можно узнавать баланс, остаток интернет трафика, управлять услугами связи и менять тарифные планы, а также получать ссылки на полезные сервисы от «Билайн»

Есть говорить по-другому, то билайн добавлял на любую не зашифрованную (http) страницу свой javascript код и в браузере отображался тулбар с информацией о балансе и ссылками на сайт билайна. На хабре о нем как-то [писали][3] и проблема вроде как была решена. Однако, Билайн решил пойти еще дальше и начал добавлять на сайты тулбар с поиском mail.ru. ![][4] [Читать дальше →][5]

[1]: //habrastorage.org/files/32b/07c/ef7/32b07cef72a3475784d5745c430e6c1b.png
[2]: http://spb.beeline.ru/customers/products/mobile/services/details/mini-kabinet/
[3]: http://habrahabr.ru/post/230921/
[4]: //habrastorage.org/files/808/62e/3b0/80862e3b061b405a9eb3d1fb2d8e1b1e.png
[5]: http://habrahabr.ru/post/257133/#habracut

[>] [Перевод] Арбелос
habra.14
habrabot(difrex,1) — All
2015-05-05 18:00:01






_Скачать статью в виде [документа Mathematica (NB)][1], [CDF-файла][2] или [PDF][3]._ Выражаю огромную благодарность [Кириллу Гузенко][4] за помощь в переводе.

----

В этой статье систематически проверяются некоторые свойства фигуры, известной с древних времён, называемой [арбелос][5]. Она включает в себя несколько новых открытий и обобщений, представленных автором данной работы.

### Введение

Будучи мотивирован вычислительными преимуществами, которыми обладает _[Mathematica][6]_, некоторое время назад я решил приступить к исследованию свойств арбелоса — весьма интересной геометрической фигуры. С тех пор я был впечатлен большим количеством удивительных открытий и вычислительных проблем, которые возникали из-за всё расширяющегося объёма литературы, касающейся этого примечательного объекта. Я вспоминаю его сходство с нижней частью культового велосипеда пенни-фартинг из The Prisoner (телесериал 1960-х), шутовской шапкой Панча (знаменитых Punch and Judy) и символом инь-ян с одной перевёрнутой дугой; см. рис. 1. В настоящее время существует специализированный каталог архимедовых кругов (круги, содержащиеся в арбелосе) [1] и важные применения свойств арбелоса, которые лежат вне поля математики и вычислительных наук [2]. Многие известные исследователи занимались этой темой, в том числе Архимед (убитый римским солдатом в 212 г. до н.э.), Папп (320 г. н.э.), Кристиан О. Мор (1835-1918), Виктор Тебо (1882-1960), Леон Банкофф (1908-1997), Мартин Гарднер (1914-2010). С недавних пор свойствами арбелоса занимаются Клейтон Додж, Питер Ай. Ву, Томас Шох, Хироши Окумура, Масаюки Ватанабе и прочие. Леон Банкофф — человек, который привлекал всеобщее внимание к арбелосу в последние 30 лет. Шох привлёк внимание Бэнкоффа к арбелосу в 1979 году, открыв несколько новых архимедовых кругов. Он послал 20-страничную рукописную работу Мартину Гарднеру, который направил её Бэнкоффу, который затем отправил 10-страничный фрагмент копии рукописи Доджу в 1996 году. Из-за смерти Бэнкоффа запланированная совместная работа была прервана, пока Додж не сообщил о некоторых новых открытиях [3]. В 1999 году Додж сказал, что ему потребуется от пяти до десяти лет, чтобы отсортировать весь материал, которым он располагает, разложив всё это дело по стопкам. В настоящее время эта работа все ещё продолжается. Не удивительно, что в четвертом томе _The Art of Computer Programming_, сказано о том, что важная работа требует большого количества времени. **Рис. 1.** _Велосипед пенни-фартинг, куклы Панч и Джуди, физический арбелос._ Арбелос (“нож сапожника” в греческом языке) назван так из-за своего сходства с лезвием ножа, использующегося сапожниками (Рис. 1). Арбелос — плоская область, ограниченная тремя полуокружностями и общей базовой линией (рис. 2). Архимед, вероятно, был первым, кто начал изучать математические свойства арбелоса. Эти свойства описаны в теоремах с 4-ой по 8-ую его книги _Liber assumptorum_ (или _Книги лемм_). Возможно, эту работу написал не Архимед. Сомнения появились после перевода с арабского _Книги лемм_, в которой Архимед упоминается неоднократно, но ничего не сказано о его авторстве (однако, существует мнение, что эта книга — подделка [4]). _Книга Лемм_ так же содержит знаменитую архимедову _Problema Bovinum_ [5]. Эта статья направлена на систематическое изложение некоторых свойств арбелоса и не носит исчерпывающий характер. Наша цель состоит в том, чтобы выработать единую вычислительную методологию для того, чтобы преподнести данные свойства в формате обучающей статьи. Все свойства выстроены в рамках определённой последовательности и представлены с доказательствами. Эти доказательства были реализованы посредством тестирования эквивалентных вычисляемых утверждений. В ходе выполнения данной работы автором было совершено несколько открытий и сделано несколько обобщений. [Читать дальше →][7]

[1]: http://www.mathematica-journal.com/data/uploads/2014/05/Rangel-Mondragon_Arbelos.nb
[2]: http://www.mathematica-journal.com/data/uploads/2014/05/Rangel-Mondragon_Arbelos.cdf
[3]: http://www.mathematica-journal.com/data/uploads/2014/05/Rangel-Mondragon_Arbelos.pdf
[4]: http://vk.com/ld742
[5]: https://ru.wikipedia.org/wiki/%D0%90%D1%80%D0%B1%D0%B5%D0%BB%D0%BE%D1%81
[6]: http://www.wolfram.com/mathematica/
[7]: http://habrahabr.ru/post/257319/#habracut

Pages: 1 ... 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41