RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 133
[>] Решето под названием Adobe Flash
habra.16
habrabot(difrex,1) — All
2016-03-21 13:30:03


![][1] Пока еще широко распространенный продукт Flash Player компании Adobe печально известен своей безопасностью. Регулярно становится известно об очередной zero-day уязвимости во Flash, используемой хакерами в APT-кампаниях. 2015 год выдался особенно урожайным на такие уязвимости. Большая доля критических RCE-уязвимостей были вызваны некорректной работой с памятью: была возможна запись в освобожденную память в куче процесса Flash. В этой статье мы поисследовали безопасность Adobe Flash и выяснили, что многие его «дыры в безопасности» — хронические, и решить их можно разве что переписыванием кода с нуля, в то время как разработчики ставят заплатку на заплатку, что, конечно, не повышает уровень безопасности. А еще мы продемонстрируем некоторые найденные нами и незакрытые на данный момент уязвимости! [Читать дальше →][2]

[1]: https://habrastorage.org/files/f37/c2c/2ab/f37c2c2aba18403fb4e7b33cf6ce6729.png
[2]: https://habrahabr.ru/post/279051/#habracut

[>] Исследование: Считавшаяся «неуязвимой» память DDR4 подвержена уязвимости Rowhammer
habra.16
habrabot(difrex,1) — All
2016-03-21 13:30:03


[![][1]][2] Американские исследователи из компании Third I/O на состоявшейся в Китае конференции Semicon China представили [доклад][3], в котором рассказали о том, что уязвимости Rowhammer подвержены и чипы DDR4. Ранее считалось, что память этого типа не подвержена данной уязвимости, которую весной 2015 года [обнаружили][4] ИБ-специалисты из Google. [Читать дальше →][5]

[1]: https://habrastorage.org/files/c17/182/18a/c1718218ace34936b7f2baecf052cd62.png
[2]: https://habrahabr.ru/company/pt/blog/279749/
[3]: http://www.thirdio.com/rowhammer.pdf
[4]: http://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html
[5]: https://habrahabr.ru/post/279749/#habracut

[>] Машина Тьюринга на шаблонах
habra.16
habrabot(difrex,1) — All
2016-03-21 13:30:03


Каждый интересующийся шаблонами в С++ скорее всего слышал об их Тьюринг-полноте и связанных с этим шутках про «we put a language in your language, so you can program while you program». В этом посте я расскажу как с помощью шаблонов и константных выражений построить настоящую машину Тьюринга, вычисляющую результат своей работы во время компиляции, на которой можно будет запускать уже существующие программы. Например усердный бобер с 4 состояниями и 2 символами выглядит как-то так:

ADD_STATE(A);
ADD_STATE(B);
ADD_STATE(C);
ADD_STATE(D);

ADD_RULE(A, Blank, 1, Right, B);
ADD_RULE(A, 1, 1, Left, B);

ADD_RULE(B, Blank, 1, Left, A);
ADD_RULE(B, 1, Blank, Left, C);

ADD_RULE(C, Blank, 1, Right, Stop);
ADD_RULE(C, 1, 1, Left, D);

ADD_RULE(D, Blank, 1, Right, D);
ADD_RULE(D, 1, Blank, Right, A);

using tape = Tape<Blank>;
using machine = Machine<A, 0, tape>;
using result = Run<machine>::type;

int main() {
print(result());
return 0;
}


На выходе, как и положено, получаем

1 _ 1 1 1 1 1 1 1 1 1 1 1 1


Тут можно посмотреть на код: . Желающие узнать как все устроено внутри, добро пожаловать под кат. [Читать дальше →][1]

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

[>] Erlang в Wargaming
habra.16
habrabot(difrex,1) — All
2016-03-21 15:30:03


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

[1]: http://www.erlang.org/
[2]: https://habrastorage.org/files/c0a/95e/351/c0a95e351dee4d44947384a22bc955ae.png
[3]: https://habrahabr.ru/post/279621/#habracut

[>] [Из песочницы] Обработка «видео 360», очистка изображения: алгоритм и его реализация на C#
habra.16
habrabot(difrex,1) — All
2016-03-21 16:30:03


В последнее время, в связи с растущим трендом виртуальной реальности, все более актуальными становятся съемка/монтаж/обработка видео в формате «видео 360». В данной статье я хочу рассказать об одном эксперименте по обработке «видео 360», который хорошо иллюстрирует некоторые особенности такого формата. Забегая вперед скажу, что эксперимент потребовал реализации несложного алгоритма и, конечно, без написания программы не обошлось. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/16e/ebe/d8f/16eebed8f3194fb39c608af20f72d5f8.jpg
[2]: https://habrahabr.ru/post/279739/#habracut

[>] Обходим антивирус при помощи десяти строк кода
habra.16
habrabot(difrex,1) — All
2016-03-21 17:00:05


Специалист по информационной безопасности под ником [evasiv3][1] опубликовал на прошлой неделе запись в своем блоге, в которой рассказывается о том, как можно обойти любой антивирус при помощи десяти строк кода. Изначально Evasiv3 планировал написать огромный пост о способах обхода антивирусной защиты, однако, протестировав первый шаг своего «руководства» он был очень удивлен: ни один из 56 протестированных продуктов, призванных обеспечить безопасность пользователя в сети, не обнаружил его вредоносный бинарник. ![image][2]

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

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

[1]: https://twitter.com/evasiv3
[2]: https://habrastorage.org/getpro/habr/post_images/f16/b5c/c47/f16b5cc474a47c6c9ab873df9f960856.png
[3]: https://habrahabr.ru/post/279791/#habracut

[>] Делаем автономную фотобудку на raspberry pi
habra.16
habrabot(difrex,1) — All
2016-03-21 17:00:05


![][1]В век «онлайна», печатная фотография стала больше походить на диковинку, как это было раньше с фотографией цифровой. В последнее время, различного рода фотобудки, стали набирать популярность, как интересный способ развлечь гостей и получить памятный сувенир в виде фотографии. Я фотограф, который увлекается программированием, и при этом сочетании, было бы странно не попробовать сделать себе фотобудку. В отличии от коммерческих моделей фотобудок, которые есть в продаже, мне хотелось сделать действительно компактную и автономную систему. Чтоб я параллельно основной работе, мог за пару минут ее установить хоть в поле и не таскать с собой лишние десятки килограмм веса. И у меня это получилось. Под катом будет рассказ о железе, raspberry pi и программировании всего этого под linuх и конечно же мой любимый python. Забегая вперед, скажу, что мне хотелось именно качественных фотографий, поэтому съемка ведется не на веб камеру, а на DSLR, поэтому статья должна получиться еще больше и интересней. [Читать дальше →][2]

[1]: https://habrastorage.org/files/65f/672/176/65f672176371432aa7fbd2fb7c5c0ef7.jpg
[2]: https://habrahabr.ru/post/279785/#habracut

[>] Проверка исходного кода игрового движка Serious Engine v.1.10 к юбилею шутера Serious Sam
habra.16
habrabot(difrex,1) — All
2016-03-21 18:00:02


![][1] К юбилею выхода шутера от первого лица Serious Sam, который состоялся в марте 2016 года, разработчики игры из хорватской компании Croteam решили открыть исходный код игрового движка Serious Engine 1 v.1.10. Он заинтересовал много разработчиков, которые захотели изучить и улучшить движок. Я тоже решил поучаствовать в улучшении кода и подготовил статью с обзором ошибок, найденных с помощью статического анализатора PVS-Studio. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/921/2c3/8ea/9212c38ea4ef712fa28deaf16da7edff.png
[2]: https://habrahabr.ru/post/279805/#habracut

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


В [предыдущей части статьи][1] был разобран общий принцип работы системы: мы увидели, что двумя основными её блоками являются интерполятор и нумератор. Мы построили схему взаимодействия, а также полностью обсудили реализацию интерполятора. В этой части мы разберём реализацию нумератора: обратимой функции, переводящей набор значений ключевых полей в натуральное число (BigInteger) таким образом, что набор ![][2] меньше набора ![][3] с точки зрения СУБД тогда и только тогда, когда ![][4]. Говоря проще — научимся интерполировать наборы значений и, что самое интересное, строки:



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

[1]: /post/278773/
[2]: http://tex.s2cms.ru/svg/%5Cinline%20%28K_1%2C%5Cldots%20K_n%29
[3]: http://tex.s2cms.ru/svg/%5Cinline%20%28K%27_1%2C%5Cldots%20K%27_n%29
[4]: http://tex.s2cms.ru/svg/%5Cinline%20g%28K_1%2C%5Cldots%20K_n%29%20%3C%20g%28K%27_1%2C%5Cldots%20K%27_n%29
[5]: https://habrahabr.ru/post/279083/#habracut

[>] [Из песочницы] Отбираем валидные мобильные номера друзей VK на Python
habra.16
habrabot(difrex,1) — All
2016-03-21 18:30:03


![][1] В процессе изучения Python стало интересно попробовать его в связке с API VK. В ВК есть телефонная книга, она показывает телефоны ваших друзей в более-менее удобном формате. Так как далеко не всегда люди охотно оставляют там полые(валидные) номера своих телефонов, мне показалась интересной идея написать скрипт, который отбирал бы только валидные номера моб.телефонов и выдавал бы их отдельной таблицей. Наша телефонная книга будет генерировать csv-файл, который затем можно будет открыть, например, в excel. [Читать дальше →][2]

[1]: https://habrastorage.org/files/048/d05/4c7/048d054c7a374090a39e3466334f922c.jpg
[2]: https://habrahabr.ru/post/279803/#habracut

[>] Отчёт с конференции Data Fest
habra.16
habrabot(difrex,1) — All
2016-03-21 19:00:03


![image][1] В начале марта в офисе Mail.Ru Group прошла двухдневная конференция Data Fest. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/da0/be4/130/da0be4130dff0b44d28fd481c449aa0c.png
[2]: https://habrahabr.ru/post/279775/#habracut

[>] Помогите выжить моему приложению
habra.16
habrabot(difrex,1) — All
2016-03-22 06:30:02


_Я не знаю, корректно ли публиковать такие посты на хабре: его суть — просьба подписать [мою петицию к Президенту РФ][1]. Поэтому прошу модераторов понять мою ситуацию и оставить его._ Думаю, у каждого программиста есть свой “домашний” проект, над котором он работает в свободное время. Каждый верит, что когда-нибудь придет успех, его проект станет мега-известным, и все будет круто! Что ж господа, я сделал это! Три года назад, 11 января 2013 года я выложил первую версию своего приложения “Билеты РЖД”. За три года им воспользовалось более миллиона человек, оно было на 1ом месте в топе “Выбор Google”, оно стало луреатом престижной премии CNews Awards, обогнав приложения от Яндекса и Правительства Москвы, и продало билетов на сумму более 1 млрд. рублей. Проблема лишь с “все будет круто”. Думаете я стал счастливее, или, может быть, богаче? Отнюдь: этот проект стал моим проклятьем. К его трехлетию я прихожу не заработав ни копейки, с нервами, сточенными об “российскую реальность”, и с успешным приложением, существование которого висит на волоске. Под катом я расскажу как так получилось, и почему петиция к Президенту РФ, которую я прошу подписать — последний шанс на выживание моего проекта.




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

[1]: https://www.change.org/p/%D0%B2%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80-%D0%B2%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B8%D1%87-%D0%BF%D1%83%D1%82%D0%B8%D0%BD-%D1%80%D0%B6%D0%B4-%D1%83%D0%B1%D0%B8%D0%B2%D0%B0%D0%B5%D1%82-%D0%BC%D0%BE%D0%B5-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5-%D0%B2%D1%8B%D0%B6%D0%B8%D1%82%D1%8C
[2]: https://habrahabr.ru/post/279837/#habracut

[>] Бесплатный кластер (Proxmox + Nexenta)
habra.16
habrabot(difrex,1) — All
2016-03-22 11:00:02


Наверное многие из нас, решая задачу организации небольшой IT-инфраструктуры, сталкивались с проблемой выбора гипервизора. Каким функционалом должен обладать софт и сколько за это стоит платить? А будет ли та, или иная часть решения совместима с тем, что уже есть? И как бы, всё это погонять на стенде, чтобы убедиться в правильности выбора? С учетом курса одной, всем известной валюты, хочется чего-то простого, без излишеств и, по возможности, бесплатного. Тем более, когда речь идет о малой или средней компании (стартапе), ограниченной в бюджете.

###

![image][1]

* Совместимый с оборудованием гипервизор
* Кластер, с доступом к админке через веб-интерфейс
* High Availability для виртуальных машин в кластере
* Функция бэкапа и восстановления из коробки
* Доступность для понимания и работы среднему администратору (вчерашнему школьнику-студенту).

Из Open-Source решений, наиболее простым в установке и настройке является Proxmox. Чтобы не оскорблять любителей oVirt и пр. (это не рекламная статья), оговорюсь, что изначальное требование к простоте установки и администрирования, на мой взгляд, у Proxmox все же более выражено. Также, повторюсь, у нас не ЦОД, а всего лишь кластер из 2-3-х нод для небольшой компании. В качестве гипервизоров он использует [KVM][2] и [LXC][3], соответственно держит KVM ОС (Linux, \*BSD, Windows и другие) с минимальными потерями производительности и Linux без потерь. [Итак, поехали!][4]

[1]: https://habrastorage.org/files/f3f/044/18d/f3f04418d7304d5b810d7d9387bbbb42.jpg
[2]: https://ru.wikipedia.org/wiki/Kernel-based_Virtual_Machine
[3]: https://ru.wikipedia.org/wiki/LXC
[4]: https://habrahabr.ru/post/279589/#habracut

[>] LTSP: Терминальный сервер на Linux
habra.16
habrabot(difrex,1) — All
2016-03-22 12:00:04


![][1] Сейчас я расскажу вам о том, как можно сэкономить немалое количество времени и денег на вашей IT-инфраструктуре. Как централизованно админить большое количество linux рабочих станций не разводя при этом хаос в вашей экосистеме. И так, что же такое LTSP? **LTSP** — Это терминальное решение на Linux. Говоря "терминальное", я в первую очередь имею в виду не подключение к удаленному рабочему столу как в Windows. Я подразумеваю гораздо более гибкую и продвинутую систему доставки ПО, конфигов, домашенего каталога, да и самой операционной системы на клиентские рабочие станции с вашего терминального сервера. В частности, LTSP — это совокупность преднастроенных программ и скриптов которые позволят вам без особого труда превратить вашу свежеустановленную Ubuntu, или другой дистрибутив, в полностью готовое к работе терминальное окружение. Которое будет загружаться на любых компьютерах в вашей сети и предоставлять пользователю полноценный интерфейс. У LTSP есть несколько режимов работы:

* тонкий клиент
* толстый клиент

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

[1]: https://habrastorage.org/getpro/habr/post_images/91f/ec4/76d/91fec476de2d7f6764aa8755a366e5f6.png
[2]: https://habrahabr.ru/post/277783/#habracut

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


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

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

[>] IBM передала почти 44000 строк кода блокчейн open-source проекту Hyperledger Project
habra.16
habrabot(difrex,1) — All
2016-03-22 14:30:02


![][1] Корпорация IBM продолжает реализацию [планов][2] по развитию корпоративного применения технологии [блокчейн][3]. Одно из направлений такой работы — предложение блокчейн технологии в качестве сервиса для разработчиков. Чтобы помочь разработчикам быстрее вникнуть в особенности корпоративного применения этой технологии, IBM передала около 44000 строк кода открытому [проекту Hyperledger][4] консорциума Linux Foundation. Кроме того, исходный код также выложен и на [GitHub][5]. «Это один из самых стремительно развивающихся проектов в рамках Linux Foundation на нашей памяти", — заявил Том Росамилиа, старший вице-президент корпорации IBM Systems, в своем докладе на организованной компанией IBM конференции PartnerWorld Leadership. Сейчас большое количество специалистов по экономике уверены, что за блокчейн-технологией стоит большое будущее. Возможно, говорят специалисты, blockchain поможет изменить подход к реализации финансовых операций. [Читать дальше →][6]

[1]: https://habrastorage.org/files/4a0/2ab/526/4a02ab52606a4ff8ae6d60b0f37a405c.jpg
[2]: https://habrahabr.ru/company/ibm/blog/273747/
[3]: https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BF%D0%BE%D1%87%D0%BA%D0%B0_%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2_%D1%82%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D0%B9
[4]: https://www.hyperledger.org/
[5]: https://github.com/openblockchain
[6]: https://habrahabr.ru/post/279801/#habracut

[>] Изучаем дерево исходников Windows 10: от телеметрии до open source
habra.16
habrabot(difrex,1) — All
2016-03-22 14:30:02






Насколько бы закрытым ни было программное обеспечение Microsoft, информации о своем внутреннем устройстве оно выдает предостаточно. К примеру, экспорт функций из библиотеки по именам дает представление о ее интерфейсах. В свободном доступе есть и отладочные символы, которые повсеместно используются для диагностики ошибок в ОС. Однако на руках у нас все равно имеются только скомпилированные бинарные модули. Становится интересно: а какими они были до компиляции? Давайте попробуем разобраться, как вытащить побольше информации об исходных кодах, не делая ничего незаконного. [Читать дальше →][1]

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

[>] Основные угрозы безопасности сайта
habra.16
habrabot(difrex,1) — All
2016-03-22 15:30:04


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

[1]: https://habrastorage.org/files/c89/a70/b0c/c89a70b0c05e4f25b88136e85652770b.png
[2]: https://habrahabr.ru/post/279787/#habracut

[>] [Из песочницы] RetroShare
habra.16
habrabot(difrex,1) — All
2016-03-22 16:30:02




#### Немного про RetroShare

Из Википедии: RetroShare — свободное кроссплатформенное программное обеспечение для бессерверного обмена письмами, мгновенными сообщениями и файлами с помощью шифрованной F2F (и опционально P2P) сети, построенной на GPG. Не является даркнетом в строгом смысле слова, так как пиры могут обмениваться сертификатами и IP адресами со своими друзьями. [Читать дальше →][1]

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

[>] «Щадящая» балансировка между несколькими провайдерами на офисном шлюзе
habra.16
habrabot(difrex,1) — All
2016-03-22 16:30:02


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

[1]: https://habrastorage.org/files/545/523/90d/54552390dafe441c8da3ecbaccf82eea.png
[2]: https://habrastorage.org/files/86a/115/f9b/86a115f9bcbe4191bb68bae295f5b271.png
[3]: https://www.opennet.ru/docs/RUS/LARTC/x348.html#LOADBALANCING
[4]: https://habrahabr.ru/post/279777/#habracut

[>] Ферро-электрическая память и электронные чернила — идеальное сочетание для батарейного питания
habra.16
habrabot(difrex,1) — All
2016-03-22 16:30:02


Когда Texas Instruments оснастил свою знаменитую низким энергопотреблением серию MSP430 ферроэлектрической памятью, работать с ней стало еще легче и приятней, ведь такая память совмещает преимущества флэша и оперативной памяти. А новые лончпады с сегментным индикатором — просто готовая платформа для какой нибудь домашней автоматизации. А что если нужен графический дисплей? Тут на помощь приходят электронные чернила, ведь они потребляют энергию только при обновлении и способны годами радовать красивой контрастной картинкой, питаясь от одного комплекта батарей. Если вам интересен опыт программирования подобного устройства — добро пожаловать под кат. Я расскажу о том, что такое ферроэлектрическая память, и зачем она нужна, как добиться максимально низкого энергопотребления и получить красивую картинку на электронной бумаге и при этом воспользоваться на техасе кодом, написанным под ардуйно. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/ca6/8ad/ae5/ca68adae5b314152a476a75b3f6ed5df.jpg
[2]: https://habrahabr.ru/post/279831/#habracut

[>] [Из песочницы] Многоликий ГОСТ Р 34.11-94
habra.16
habrabot(difrex,1) — All
2016-03-22 18:30:03


![][1] Готовил я как-то тесты для системы, один из модулей которой помимо всего остального вычислял значение хеш-функции для загружаемого файла. В ТЗ был прописан и необходимый алгоритм — ГОСТ Р 34.11-94. За эталон я взял значение хеша, посчитанного сторонней утилитой **Rhash**. `f86c9ecfb6e63726b35ebc79528d013d52b781e06e29d7eb0c9d1cb256efb7c1` Понимая, что функция вычисляется стандартной библиотекой, я больше для очистки совести отправил запрос, соответствующий загрузке файла в модуль. Но судьба человека полна неожиданностей. И стоит только расслабиться, как видишь нечто подобное: `964ba8755ca782ec3c5e0f98c93347f9b96d9f39cf5c7fdef43a23273fe8868a` Кто не прав — разработчик модуля или утилиты? [Читать дальше →][2]

[1]: https://habrastorage.org/files/f72/224/3c4/f722243c420d4ed3bffd85f509302dbd.jpg
[2]: https://habrahabr.ru/post/279895/#habracut

[>] Ферроэлектрическая (сегнетоэлектрическая) память и электронные чернила — идеальное сочетание для батарейного питания
habra.16
habrabot(difrex,1) — All
2016-03-22 19:30:02


Когда Texas Instruments оснастил свою знаменитую низким энергопотреблением серию MSP430 [ферроэлектрической памятью][1], работать с ней стало еще легче и приятней, ведь такая память совмещает преимущества флэша и оперативной памяти. А новые лончпады с сегментным индикатором — просто готовая платформа для какой нибудь домашней автоматизации. А что если нужен графический дисплей? Тут на помощь приходят электронные чернила, ведь они потребляют энергию только при обновлении и способны годами радовать красивой контрастной картинкой, питаясь от одного комплекта батарей. Если вам интересен опыт программирования подобного устройства — добро пожаловать под кат. Я расскажу о том, что такое ферроэлектрическая память, и зачем она нужна, как добиться максимально низкого энергопотребления и получить красивую картинку на электронной бумаге и при этом воспользоваться на техасе кодом, написанным под ардуино. ![][2] [Читать дальше →][3]

[1]: http://www.ti.com/ww/ru/mcu/fram_ultra_low_power_embedded_memory/
[2]: https://habrastorage.org/files/ca6/8ad/ae5/ca68adae5b314152a476a75b3f6ed5df.jpg
[3]: https://habrahabr.ru/post/279831/#habracut

[>] JetBrains C++ night: впечатления и записи докладов
habra.16
habrabot(difrex,1) — All
2016-03-22 20:30:08


Привет, Хабр! Буквально на днях мы выпустили [очередной релиз CLion 2016.1][1], нашей кросс-платформенной IDE для разработки на C и C++. Передохнув от релизной суматохи, хотим поделиться впечатлениями о проведенном недавно нами мероприятии, посвященному разработке на C++. 24 февраля этого года в офисе компании JetBrains собралось более 50 человек на мероприятие _JetBrains C++ night_. Основную часть аудитории составляли C++ разработчики из питерских и не только IT-компаний. Хотя большую часть времени заняли доклады наших разработчиков, видеозаписи которых опубликованы на нашем канале (см. ссылки ниже), нашей основной целью было неформальное общение с C++ сообществом, которое есть в Питере или приехало поучаствовать в конференции [C++ Russia][2]. В целом, нам кажется, что первый блин вышел не комом, хотя нам есть над чем работать. Главное, нам удалось пообщаться, узнать много интересного, услышать множество пожеланий и вопросов к нашим продуктам, да и просто понять, какой же разработкой занимаются в C++ мире в Питере и в России вообще. Так, например, мы неожиданно для себя получили запрос на поддержку Android проектов на CMake (Android Studio, в которую включена поддержка C++ на базе CLion, CMake не поддерживает; а CLion в свою очередь не имеет сейчас Android поддержки). [Читать дальше →][3]

[1]: https://habrahabr.ru/company/JetBrains/blog/279625/
[2]: http://meetingcpp.ru
[3]: https://habrahabr.ru/post/279925/#habracut

[>] [Перевод] Как использовать именованные конструкторы в PHP
habra.16
habrabot(difrex,1) — All
2016-03-22 21:30:01


_tl; dr — Не ограничивай себя одним конструктором в классе. Используй статические фабричные методы._ PHP позволяет использовать только один конструктор в классе, что довольно раздражительно. Вероятно, мы никогда не получим нормальную возможность перегрузки конструкторов в PHP, но кое-что сделать все же можно. Для примера возьмем простой класс, хранящий значение времени. Какой способ создания нового объекта лучше:

<?php
$time = new Time("11:45");
$time = new Time(11, 45);


Правильным ответом будет «в зависимости от ситуации». Оба способа могут являются корректным с точки зрения полученного результата. Реализуем поддержку обоих способов: [Читать дальше →][1]

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

[>] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 31. «Суд»
habra.16
habrabot(difrex,1) — All
2016-03-23 10:00:02


_В 31 главе описывается кейс, как спецслужбы вычисляют кардеров по метаданным._ ![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТишном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция. Второе дыхание «квест по переводу книги» получил благодаря компании [Edison][4].

#### Глава 31. «Суд»

_(за перевод спасибо Богдану Журу aka [K3lwiN][5] )_ Кардер с Лонг-Айленда Джонатан Джианноне, с которым Макс и Крис познакомились, когда он был тинэйджером, хранил тайну ото всех. В день, когда Макс своим сайтом поглотил всех конкурентов, агенты Тайной службы арестовали Джианноне в доме его родителей за продажу нескольких дампов Макса Бретту Джонсону, информатору Тайной службы под ником Gollumfun. Джианноне выпустили под залог, но о своем проколе он никому не сказал. Он считал это очередной мелкой неприятностью. В конце концов, ну что ему грозило за продажу двадцати девяти дампов? Впечатление укрепилось после того, как уже через месяц после ареста суд Южной Каролины снял с него запрет на перемещение. Джианноне тут же полетел в аэропорт Окленда за покупками, где его встретила Теа. Они катались по шоссе вдоль тихоокеанского побережья, она покупала ему пиццу в Fat Slice на Берклиз Телеграф Авеню. Джианноне казался ей забавным — хвастливый белый паренек с вьющимися волосами и пристрастием к хип-хопу, который как-то раз хвалился, что побил футболиста из Нью-Йорк Джетс во время драки в местном баре. Теперь у них появилось что-то общее: Крис прервал контакты с Джианноне незадолго до ареста, а Теа сказал вернуться к заливу Сан-Франциско, чтобы она не создавала проблем в отношениях Криса. Он избавился от них обоих. [Читать дальше →][6]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://www.edsd.ru
[5]: https://habrahabr.ru/users/k3lwin/
[6]: https://habrahabr.ru/post/279931/#habracut

[>] [Перевод] 3.1 Открытие и управление окнами
habra.16
habrabot(difrex,1) — All
2016-03-23 11:00:03


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

[1]: https://habrastorage.org/files/bc7/94a/b37/bc794ab377be444f8090426e56ae38bd.png
[2]: https://habrahabr.ru/post/279689/ "Предыдущая статья: Работа с пользовательскими потоками данных"
[3]: http://www.sfml-dev.org/tutorials/2.3/window-window.php "Оригинальная статья: Opening and managing a SFML window"
[4]: https://habrahabr.ru/post/279957/#habracut

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


![][1] Данная публикация является переводом второй части статьи [Characterization and Optimization Methodology Applied to Stencil Computations][2] инженеров компании Intel. В [предыдущей части][3] была описана методология для оценки максимальной производительности, которая может быть получена при использовании какого-либо алгоритма на конкретной платформе на примере довольно распространенного вычислительного ядра, используемого при решении 3D акустического изотропного волнового уравнения. Эта часть описывает серию шагов по оптимизации исходного кода для получения производительности, близкой к ожидаемой отметке. [Читать дальше →][4]

[1]: https://habrastorage.org/files/9f1/2de/63e/9f12de63eaac4327b27dbce8c3055090.jpg
[2]: https://www.researchgate.net/publication/285433271_Characterization_and_Optimization_Methodology_Applied_to_Stencil_Computations
[3]: https://habrahabr.ru/company/intel/blog/277407
[4]: https://habrahabr.ru/post/279669/#habracut

[>] C++17, который мы потеряли
habra.16
habrabot(difrex,1) — All
2016-03-23 15:00:02


![][1] 5-го марта 2016-го года в городе Джэксонвилл закончился очередной съезд комитета ISO C++. Люди собирались предварительно-окончательно решать, что же войдёт, а что не войдёт в стандарт С++17. Конечно, ещё не 2017-ый год и кое-что ещё, возможно, переиграется. Тем не менее, есть мнение, что именно данное мероприятие очертило С++17 в его будущем виде. Я не буду тут тянуть кота за хвост и искать толерантные выражения: нас ждёт катастрофа. Стандарты С++11/14 были очень значительным скачком вперёд, но на этом всё закончилось. С++17, обещанный когда-то «мажорным» релизом, по факту не несёт в себе ничего существенного. Немного синтаксического сахара, пару мелочей в стандартную библиотеку — и на этом всё. Отголоски данной трагедии уже звучали некоторым эхо на Хабре, но я всё-таки решил обобщить информацию и понять, куда мы катимся. [Читать дальше →][2]

[1]: https://habrastorage.org/files/876/1f8/a35/8761f8a3574d4089966f2bd36f979738.png
[2]: https://habrahabr.ru/post/279927/#habracut

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


_ Использовать ли статические методы? Да, когда они не зависят от внутреннего состояния объекта._ В обсуждениях к [посту][1] ([перевод][2]) о именованных конструкторах прозвучало мнение, что статические методы плохи и их вообще не стоит использовать. На мой взгляд, это слишком большое обобщение. Статические методы по сути своей просто способ организации глобальных функций в пространства имен. Использование пространств имен, я думаю, вы согласитесь — хороший тон. Что касается глобальных функций — мы используем их всегда, встроенные функции PHP составляют основу нашего кода. Основная проблема здесь — отсутствие совместно используемого глобального состояния. Вот пример из прошлого поста:

<?php
$time = Time::from("11:45");


В данном примере возвращаемый результат свободен от побочных эффектов и вполне предсказуем, т.к. зависит только от аргументов, подаваемых на вход. Каждый раз при вызове метода вам будет возвращен идентичный результат (объект Time со значением 11:45), вне зависимости от состояния системы, контекста или чего-либо еще. [Читать дальше →][3]

[1]: http://verraes.net/2014/06/named-constructors-in-php/
[2]: https://habrahabr.ru/post/279919/
[3]: https://habrahabr.ru/post/279921/#habracut

[>] Обзор антивируса 360 Total Security
habra.16
habrabot(difrex,1) — All
2016-03-23 17:00:02


Данный обзор посвящён бесплатному антивирусу 360 Total Security. Цель этой статьи — показать его функциональность и продемонстрировать, как он ведёт себя в реальных условиях. Но для начала давайте посмотрим на то, что он умеет. [![image][1]][2] [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/fb2/588/255/fb25882550133947c896640940d94e74.png
[2]: https://habrahabr.ru/company/360totalsecurity/blog/280003/
[3]: https://habrahabr.ru/post/280003/#habracut

[>] [Перевод] Увлекательное программирование: изучаем Minecraft
habra.16
habrabot(difrex,1) — All
2016-03-23 19:00:02


Добрый день, уважаемые читатели! У нас выходит второй тираж замечательной [книги][1] об игровом мире Minecraft. Мы уже публиковали о ней отдельный [пост][2]. ![][3] С удовольствием напоминаем, что этой игре все возрасты покорны, более того — она будет интересна даже дошколятам, если правильно подать смысл этой замечательной игры и пробудить в детях творческую жилку. Под катом — рассказ многодетной мамы о том, как это делается. Наконец, если вас заинтересует перевод ознакомительной публикации Уолтера Хиггса о ScriptCraft, на которую ссылается автор в самом конце статьи — пишите, обсудим :) [Читать дальше →][4]

[1]: http://www.piter.com/product/minecraft-programmiruy-svoy-mir
[2]: https://habrahabr.ru/company/piter/blog/269757/
[3]: https://habrastorage.org/files/b9f/6ac/bc1/b9f6acbc16a14259b61bff16fcbfb0e4.jpg
[4]: https://habrahabr.ru/post/280023/#habracut

[>] Анонс встречи Sync.NET #2
habra.16
habrabot(difrex,1) — All
2016-03-23 19:00:02


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

[1]: https://habrastorage.org/files/f81/33f/3ab/f8133f3ab8614d8d890e9010b55465ce.png
[2]: https://habrahabr.ru/post/280013/#habracut

[>] Конкурс CityF: битва между хакерами и безопасниками
habra.16
habrabot(difrex,1) — All
2016-03-23 19:00:02


[![][1]][2] Через два месяца состоится шестой форум Positive Hack Days. Уже во всю идет подготовка к мероприятию: объявлена [первая группа докладчиков][3] и близится к концу вторая волна [Call For Papers][4], стартовал [прием заявок на Young School][5] и конкурс киберпанковских рассказов «[Взломанное будущее][6]». Теперь мы рады сообщить, что [опубликованы правила][7] соревнования PHDays VI СityF: Противостояние. [Читать дальше →][8]

[1]: https://habrastorage.org/files/adb/e86/f5b/adbe86f5b27340e8996a88009dc12783.JPG
[2]: https://habrahabr.ru/company/pt/blog/280025/
[3]: http://www.phdays.ru/program/
[4]: http://www.phdays.ru/program/call_for_papers/
[5]: http://www.phdays.ru/press/news/45630/
[6]: http://www.phdays.ru/press/news/45372/
[7]: http://www.phdays.ru/program/ctf/
[8]: https://habrahabr.ru/post/280025/#habracut

[>] ОСРВ QNX: Qnet — прозрачное сетевое межзадачное взаимодействие
habra.16
habrabot(difrex,1) — All
2016-03-23 19:00:02


![][1]Надеюсь, что долгожданное продолжение цикла заметок об [операционной системе реального времени QNX][2]. В этот раз я бы хотел рассказать о Qnet — собственном сетевом протоколе QNX. Сразу уточню, что помимо родной сети Qnet, в QNX поддерживается стек протоколов TCP/IP, работа с которым в общем-то должна быть знакома администраторам Unix-подобных систем. Поэтому в заметке сначала немного расскажу о сетевом администраторе `io-pkt`, а потом более подробно о протоколе Qnet. По ходу повествования нас также ждут четыре лирических и одно техническое отступления.

#### Что такое Qnet?

Сеть QNX представляет собой группу соединённых между собой целевых систем, каждая из которых работает под управлением ОСРВ QNX Neutrino. В такой сети любая программа имеет доступ к любому ресурсу на любом узле (node, именно так называются отдельные компьютеры в сети). В качестве ресурса может выступать файл, устройство или процесс (в том числе обеспечивается и запуск процессов на другом узле). При этом целевые системы (те самые узлы) могут представлять собой компьютеры различных архитектур — x86, ARM, MIPS и PowerPC (текущая реализация Qnet работает в том числе и в cross-endian среде). Но словно этого мало, любое POSIX-приложение, портированное в QNX (для переноса зачастую требуется только пересборка) без всякой доработки будет обладать перечисленными выше способностями работы в сети Qnet. Заинтригованы, как это получается? [Ну, допустим, заинтригованы.][3]

[1]: https://habrastorage.org/files/a84/b40/c31/a84b40c31d5b4bfb8c91196b40ee6a35.jpg
[2]: http://habrahabr.ru/blogs/nix/124656/
[3]: https://habrahabr.ru/post/279679/#habracut

[>] IBM поможет ликвидировать последствия кибератак
habra.16
habrabot(difrex,1) — All
2016-03-23 19:00:02


**Если с атаками бороться умеют многие, то ликвидировать последствия успешно проведенной кибератаки могут единицы** Корпорация IBM приобрела компанию Resilient Systems, работающей в сфере информационной безопасности. Соответственно, все технологии этой компании стали активом IBM. Сейчас, используя инструментарий и возможности Resilient Systems, IBM собирается начать более активную работу в указанной сфере. Стоит отметить, что большая часть команды купленной компании переходит на работу в IBM, включая руководство. IBM уже представила такие решения, как сервисы [X-Force Incident Response Services][1], основанные на платформе Resilient. Используя этот инструмент, клиенты компании могут планировать защиту от кибератак, управлять средствами информационной безопасности, быстро реагировать на атаки злоумышленников и ликвидировать последствия взлома. Комплексная платформа, разработанная уже на базе имеющихся решений, включает средства аналитики, компьютерно-техническую экспертизу, технологии управления уязвимостями и реагирования на инциденты. [Читать дальше →][2]

[1]: http://www-03.ibm.com/security/services/cybersecurity-assessment/incident-response.html
[2]: https://habrahabr.ru/post/279983/#habracut

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


![][1]

#### Введение

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

[1]: https://habrastorage.org/files/4b0/d64/4e9/4b0d644e90724822bca673fa426e8361.jpg
[2]: https://habrahabr.ru/post/279977/#habracut

[>] [Из песочницы] Alipay — One Click Checkout: стоит ли нам беспокоиться?
habra.16
habrabot(difrex,1) — All
2016-03-23 19:00:02


Алиэкспресс — одна из самых популярных торговых площадок, открывающая мир китайских товаров для покупателей с любой точки мира. Небольшое отступление про Алипэй для того, чтобы рассмотреть найденную проблему в системе безопасности. Алипэй (компания Алибабы) является платежным сервисом, который очень популярен в Китае и потихоньку начинает распространяться по всему миру. В Китае Алипэй используется в очень многих местах и сервисах, в остальных странах Алипэй пока что используется только для оплаты покупок на Алиэкспресс (также компания Алибабы). В настоящее время Алипэй позволяет пользователям сохранить кредитную карту, а также, когда вы делаете покупку на Алиэкспрессе, использовать сохраненную кредитную карту для оплаты без фактического ввода её данных. Теперь, когда мы знаем немного о сервисе Алипэй, мы можем использовать его на Алиэкспресс. При регистрации на Алипэй мы создаем пароль, как в каждом нормальном процессе регистрации. Во время использования услуги для оплаты Алипэй попросит вас ввести пароль для входа в систему, но вот интересная вещь. Если вы сделали покупку через мобильное приложение Алиэкспресс, когда вы находитесь дома (а большинство покупателей совершают покупки из дома), приложение на смартфоне или планшете отметит вашу домашнюю сеть (WiFi) как безопасную и не будет спрашивать у вас пароль при последующих покупках! Так будет до тех пор, пока вы не сделаете покупку с другой сети. Представители технической поддержки Алиэкспресс и Алипэй подтвердили это и сказали мне, что это будет сделано в рамках функции «One Click Checkout», чтобы сделать оплату еще проще для пользователей. [Читать дальше →][1]

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

[>] Один разработчик чуть не «сломал» пакетный менеджер NPM
habra.16
habrabot(difrex,1) — All
2016-03-23 21:30:02


Веб-разработчик Азер Кочулу (Azer Koçulu), автор [более 250 модулей для Node.js][1], попал в неприятную ситуацию. В своём блоге он [пишет][2], что несколько недель назад получил письмо от юриста компании [Kik][3] (мессенджер) с требованием отозвать модуль с аналогичным названием [kik][4] из пакетного менеджера [NPM][5] (Node Package Manager). Программист отказался, тогда юрист обратился напрямую в NPM, и администрация проекта удовлетворила его требование, сменив владельца модуля kik без разрешения автора. Азер Кочулу был крайне недоволен этим. Настолько недоволен, что решил в ответ «освободить» (то есть отозвать) все свои модули — более 250 модулей NPM. К сожалению, среди них оказался и [left-pad][6] — маленький модуль из 11 строк кода на JavaScript. Он используется при установке зависимостей между пакетами через NPM, в том числе в Node.js, JavaScript-транскомпиляторе Babel и огромном количестве других билдов. Только за прошлый месяц left-pad скачали 2 486 696 с сервера NPM, по их статистике. [Читать дальше →][7]

[1]: https://gist.githubusercontent.com/azer/db27417ee84b5f34a6ea/raw/50ab7ef26dbde2d4ea52318a3590af78b2a21162/gistfile1.txt
[2]: https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.ypymls2zp
[3]: http://www.kik.com/
[4]: https://github.com/starters/kik
[5]: https://www.npmjs.com/
[6]: https://github.com/azer/left-pad/blob/master/index.js
[7]: https://habrahabr.ru/post/280039/#habracut

[>] VolgaCTF 2016 поднимает паруса
habra.16
habrabot(difrex,1) — All
2016-03-24 12:00:02


Многие читатели уже знают о командных соревнованиях по компьютерной безопасности или CTF. На Хабре есть несколько статей, посвященных таким соревнованиям ([habrahabr.ru/post/64216][1], [habrahabr.ru/post/263473][2], [habrahabr.ru/post/252303][3]). ![image][4] Для тех, кто читает об этом впервые: CTF (Capture the flag) – командные соревнования по компьютерной безопасности. В классическом понимании: команда защищает свой сервер от атак других команд и сама пытается, взломав чужой сервер, добыть флаг. Бывают и task-based: дается ряд заданий по стеганографии, криптографии, веб-администрированию, реверс-инжинирингу, recon (испытание на поиск информации) и некоторым другим. [Читать дальше →][5]

[1]: https://habrahabr.ru/post/64216
[2]: https://habrahabr.ru/post/263473
[3]: https://habrahabr.ru/post/252303
[4]: https://habrastorage.org/files/12e/d1e/e4e/12ed1ee4e08c43c88772f5064e4f6432.jpg
[5]: https://habrahabr.ru/post/280043/#habracut

[>] Fbi Detected: Как я обнаружил агентов ФБР
habra.16
habrabot(difrex,1) — All
2016-03-24 13:30:04


В новом выпуске [«Черной археологии датамайнинга»][1] мы немного поиграемся в шпионов. Увидим, что может узнать обычный Data Specialist на основе открытых в сети данных. Всё началось со [статьи на хабре][2], о том, что некий анинимный хакер делился слитыми в сеть данными агентов ФБР. Я получил эти данные, и стал смотреть, что с ними можно сделать? В данных есть только фамилия, имя, и служебные мейлы и телефон – немного информации. ![][3] Получив эти данные, я увидел, что они заканчиваются буквой **J**. То есть, датасет не полон. Интресено, каков его полный размер? Чтобы узнать его, надо построить статистику частоты встречаемости фамилий. Для этого я начал искать наборы американских фамилий, и тут меня ждало открытие – в Америке можно найти открытые данные по, скажем, избирателям штата – как я понял, совершенно легально. Например, я за полчаса без проблем [получаю][4] данные всех избирателей штата Юта. [Читать дальше →][5]

[1]: https://habrahabr.ru/users/caveeagle/topics/
[2]: https://geektimes.ru/post/270730/
[3]: https://habrastorage.org/files/2d7/02d/d75/2d702dd7513041bfaeb8719da0442a84.png
[4]: https://www.reddit.com/r/privacy/comments/3yinij/entire_us_voter_registration_record_leaks_191
[5]: https://habrahabr.ru/post/280065/#habracut

[>] Взаимоотношения dhcpclient и resolv.conf'а в Linux
habra.16
habrabot(difrex,1) — All
2016-03-24 14:30:04


Abstract: описание того, как обновляется файл /etc/resolv.conf в условиях работающего dhcp-клиента, специфика различных ОС и варианты реализации. Охват: Debian, Ubuntu, Centos/Fedora/RHEL; dhclient с resolvconf и без. NetworkManager не учитывается. Лирика: Я только что потратил несколько дней (подробности на английском [[1][1]], [[2][2]]) разбираясь как правильно сохранять 'options rotate' в /etc/resolv.conf в разных дистрибутивах при работающим DHCP. Оказалось, внятной документации по этому вопросу нет, и информацию пришлось собирать из разных источников, исходных текстов и экспериментальных данных. Дальше будет сухо и по делу. О чём речь? У компьютера сетевой интерфейс принципиально может быть сконфигурирован тремя видами: вручную/специализированным софтом, статически заданными настройками и через DHCP-клиент. (Есть ещё сколько-то экзотики, но эти три — основные методы). Первый метод нам не интересен, со статической конфигурацией всё просто — как написано, так и будет. DHCP интересен тем, что компьютер запрашивает настройки по сети «у кого-то». Протокол DCHP имеет множество опций (настроек), которые могут изменять совершенно неожиданные настройки компьютера — часовой пояс, адрес сервера с точным временем, таблицу маршрутизации, имя или домен сервера, и т.д. Из всего этого нас интересует возможность задавать настройки DNS. Традиционно, настройки DNS-ресолвера хранятся в файле /etc/resolv.conf, и после обновления dhcp-аренды этот файл обновляется. В этой статье объясняется, как именно "-ся" этот файл.

# Устройство DHCP client

Существует несколько реализаций dhcp-клиента, нас интересует ISC DHCP, как наиболее распространённая. Сам клиент называется /sbin/dhclient, однако, стандартно, для обновления настроек, вызывается не он, а /sbin/dhclient-script. dhclient-script вызывает dhclient и использует его ответ для изменения разных частей системы. В самом dhclient-script есть функция make\_resolv\_conf, которая, собственно, и создаёт файл resolv.conf. [Читать дальше →][3]

[1]: https://medium.com/@george.shuklin/dhcp-and-resolv-conf-options-88b13afb3bdc
[2]: https://medium.com/@george.shuklin/dhcp-and-resolv-conf-part2-debian-ubuntu-e79ea43aaed5
[3]: https://habrahabr.ru/post/280037/#habracut

[>] [Из песочницы] Работа с С-объединениями (union) в Rust FFI
habra.16
habrabot(difrex,1) — All
2016-03-24 14:30:04


_Предлагаю вашему вниманию перевод статьи "[Working with C unions in Rust FFI][1]" за авторством Herman J. Radtke III. Примечание: Эта статья предполагает, что читатель знаком с [Rust FFI][2], [порядком байтов][3] (endianess) и [ioctl][4]._ При создании биндингов к коду на С мы неизбежно столкнёмся со структурой, которая содержит в себе объединение. В Rust отсутствует встроенная поддержка объединений, так что нам придётся выработать стратегию самостоятельно. В С объединение — это тип, который хранит разные типы данных в одной области памяти. Существует много причин, по которым можно отдать предпочтение объединению, такие как: преобразование между бинарными представлениями целых чисел и чисел с плавающей точкой, реализация псевдо-полиморфизма и прямой доступ к битам. Я сфокусируюсь на псевдо-полиморфизме. [Читать дальше →][5]

[1]: http://hermanradtke.com/2016/03/17/unions-rust-ffi.html
[2]: https://doc.rust-lang.org/book/ffi.html
[3]: https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2
[4]: https://en.wikipedia.org/wiki/Ioctl
[5]: https://habrahabr.ru/post/280063/#habracut

[>] [Из песочницы] Ключевое слово «var» в Java: пожалуйста, только не это
habra.16
habrabot(difrex,1) — All
2016-03-24 15:00:03


![Ключевое слово var][1] Прошедшее 8-е марта для разработчиков Java выдалось особенно насыщенным. Причиной тому послужил новый [JEP 286: Local-Variable Type Inference][2], который предлагает ввести ключевое слово **var**, избавляя нас от необходимости явно указывать тип локальной переменной:

var unbufOut = NetUtils.getOutputStream(sock);


вместо

OutputStream unbufOut = NetUtils.getOutputStream(sock);


А на днях подоспели и результаты [опроса разработчиков][3], которые недвусмысленно показали — **var** в Java быть. Хорошо это или плохо? [Читать дальше →][4]

[1]: http://i.imgur.com/DKYrBQK.png?2
[2]: http://openjdk.java.net/jeps/286
[3]: https://www.surveymonkey.com/results/SM-FLWGS5PW/
[4]: https://habrahabr.ru/post/280075/#habracut

[>] Уличная грязь и симуляция движения пешеходов
habra.16
habrabot(difrex,1) — All
2016-03-24 15:00:03


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

[1]: https://habrastorage.org/files/f5b/fb2/cfb/f5bfb2cfbfd740ab850556dbd3d6ce0a.jpg
[2]: https://habrahabr.ru/post/257563/#habracut

[>] [Перевод] Введение в PHP 7: Что добавлено, что убрано
habra.16
habrabot(difrex,1) — All
2016-03-24 15:30:02


Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы. Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7. [Читать дальше →][1]

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

[>] Равнение на модель: что нужно знать о создании стратегий для торговли на бирже. Часть II
habra.16
habrabot(difrex,1) — All
2016-03-24 17:00:02


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

[1]: https://habrastorage.org/files/53d/0bb/fe3/53d0bbfe3c8144f599e09d6dbd5c7de6.jpg
[2]: https://habrahabr.ru/company/itinvest/blog/280059/
[3]: https://habrahabr.ru/company/itinvest/blog/279321/
[4]: http://www.financial-hacker.com/build-better-strategies-part-2-model-based-systems/
[5]: https://habrahabr.ru/post/280059/#habracut

[>] [Перевод] NPM и left-pad: мы разучились программировать?
habra.16
habrabot(difrex,1) — All
2016-03-24 18:00:02


_Автор — [Дэвид Хейни][1] (David Haney), ведущий инженер-программист Stack Overflow_ Итак, разработчики, время для серьёзного разговора. Вы уже наверное в курсе, что на этой неделе React, Babel и куча других популярных пакетов на NPM сломались. Причина довольно удивительная. Простой пакет NPM под названием left-pad был установлен как зависимость в React, Babel и других пакетах. Модуль, который на момент написания этого поста, [имеет 11 звёзд на Github][2] (сейчас 323 — прим.пер). Весь пакет состоит из [11 простых строчек][3], которые реализуют примитивную функцию вставки пробелов в левой части строк. Если какие-то из ссылок когда-нибудь умрут, вот его код:

module.exports = leftpad;
function leftpad (str, len, ch) {
str = String(str);
var i = -1;
if (!ch && ch !== 0) ch = ' ';
len = len - str.length;
while (++i < len) {
str = ch + str;
}
return str;
}

Что меня беспокоит, так это _такое большое количество пакетов_, где установлена **зависимость** от простой функции набивки строки пробелами, вместо того чтобы потратить 2 минуты и написать эту базовую функцию самому. [Читать дальше →][4]

[1]: https://twitter.com/@haneycodes
[2]: https://github.com/azer/left-pad
[3]: https://github.com/azer/left-pad/blob/master/index.js
[4]: https://habrahabr.ru/post/280099/#habracut

[>] Время учиться: дайджест бесплатных образовательных материалов от Mail.Ru Group
habra.16
habrabot(difrex,1) — All
2016-03-24 18:00:02


![][1] Как говорят, «кризис — пора возможностей». И поэтому сейчас самое время начать вкладывать в саморазвитие, осваивать новую профессию или повышать свою квалификацию. Займитесь изучением языков программирования, обретением навыков разработки, тестирования и вообще всячески прокачивайте свой IT-скилл. Ведь чем больше вы знаете, тем прочнее будете стоять на ногах. А чтобы вам было легче сориентироваться и выбрать направление, мы сделали подборку наших бесплатных образовательных материалов, курсов и инициатив за 2015–2016 годы. [Читать дальше →][2]

[1]: https://habrastorage.org/files/65c/0e0/224/65c0e022435240b89e4558b4d6d8f4dd.jpg
[2]: https://habrahabr.ru/post/280079/#habracut

[>] Эмуляция и перехват SIM-команд через SIM Toolkit на Android 5.1 и ниже (CVE-2015-3843)
habra.16
habrabot(difrex,1) — All
2016-03-24 18:30:02


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

[1]: https://habrastorage.org/files/d23/059/429/d230594295bd46fdb722f53352aa3496.jpg
[2]: https://habrahabr.ru/post/280095/#habracut

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 133