RSS
Pages: 1 ... 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 ... 210
[>] [Перевод] Использование больших страниц в памяти в PHP 7
habra.15
habrabot(difrex,1) — All
2015-11-15 18:30:03


Разбивка на страницы — это способ управления памятью, выделяемой для пользовательских процессов. Все доступы процессов к памяти являются виртуальными, а преобразование их адресов в адреса физической памяти выполняют ОС и аппаратный [MMU][1]. При разбивке на страницы память делится на блоки фиксированного размера. В Linux на x86/64-платформах размер страниц обычно составляет 4 Кб. Каждый процесс содержит в себе таблицу, в которой хранится информация о соответствии адресов страницы и физической памяти — элемент таблицы страниц (page table entry). Чтобы ОС не лезла в эту таблицу при каждом обращении к памяти (иначе для обработки каждого запроса на обращение к памяти потребуется обращаться к ней дважды), применяется небольшой кэш — [буфер ассоциативной трансляции][2] (Translationlookaside Buffer, TLB). Этот аппаратный компонент находится в MMU и работает чрезвычайно быстро и эффективно. Система сканирует TLB с целью поиска записи о соответствии адресов страницы и физической памяти. Если нужной записи там не оказывается, тогда ядру ОС приходится обращаться к памяти, искать нужное соответствие и обновлять информацию в TLB, чтобы получить из памяти нужные нам данные. Если вы хотите больше узнать об управлении виртуальной памятью, то можете изучить [эту публикацию][3]. А пока давайте разберем, как в PHP 7 устроена работа с большими страницами (Huge Page). [Читать дальше →][4]

[1]: https://ru.wikipedia.org/wiki/%D0%91%D0%BB%D0%BE%D0%BA_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C%D1%8E
[2]: https://ru.wikipedia.org/wiki/%D0%91%D1%83%D1%84%D0%B5%D1%80_%D0%B0%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B9_%D1%82%D1%80%D0%B0%D0%BD%D1%81%D0%BB%D1%8F%D1%86%D0%B8%D0%B8
[3]: http://jpauli.github.io/2015/04/16/segmentation-fault.html
[4]: http://habrahabr.ru/post/270685/#habracut

[>] [Перевод] Perl 6 и умное соответствие
habra.14
habrabot(difrex,1) — All
2015-03-26 11:00:02


Помните ли вы [статью про оператор последовательностей ][1]в Perl 6? Последним аргументом он принимает ограничение, которое останавливает генерацию последовательности. К примеру

1, 2, 4 ... 32; # 1 2 4 8 16 32
1, 2, 4 ... * > 10; # 1 2 4 8 16


В первом случае используется числовое сравнение. Во втором запись \* > 10 интерпретируется как замыкание -> $x \{ $x > 10 \}. Оператор последовательностей выполняет «волшебное» сравнение в зависимости от типа соответствия. Это сравнение называется «умным соответствием» («smartmatching»), и эта концепция появляется во многих местах Perl 6. Примеры: [Читать дальше →][2]

[1]: http://habrahabr.ru/post/253047/
[2]: http://habrahabr.ru/post/254029/#habracut

[>] [Перевод] Асинхронный Python 3.5 и Mongodb
habra.15
habrabot(difrex,1) — All
2015-11-15 18:30:03


![][1] _Это достаточно вольный перевод статьи об основных новшествах асинхронного драйвера для `mongodb` используемого в `tornado`. Основной мотив, который послужил для написания этого перевода — новшества, появившиеся в этой версии, такие как поддержка `asyncio`, `async`, `await` и `Python 3.5`. Сама статья не сколько перечисление новшеств, сколько лаконичные примеры асинхронной работы с `MongoDB`. _ [Введение][2] [ asyncio][3] [ aggregate][4] [ Python 3.5 ][5] [ async and await][6] [Читать дальше →][7]

[1]: https://habrastorage.org/files/0e5/2ca/a0f/0e52caa0f53b40fda0a1770760c7cfd3.jpg
[2]: #0
[3]: #1
[4]: #2
[5]: #3
[6]: #4
[7]: http://habrahabr.ru/post/270709/#habracut

[>] Агрегация и осведомленность
habra.15
habrabot(difrex,1) — All
2015-11-15 19:30:03


Механизм агрегации объектов — одна из замечательных возможностей моего JavaScript-фреймворка [jWidget][1], которой нет в большинстве других фреймворков. Хочу подробнее о ней рассказать, потому что она помогает с легкостью решать широкий спектр типичных задач, стоящих перед разработчиками клиентов веб-приложений по архитектуре Model-View. Будет мало картинок, зато много интересного кода. Я кратко описал механизм агрегации объектов в разделе **1\. Классы и объекты** [прошлой статьи][2]. Статья вышла полтора года назад. С тех пор произошло 4 крупных обновления фреймворка, но философия сохранилась. С опытом, было создано несколько потрясающих паттернов структурирования кода на базе механизма агрегации, позволяющих значительно сократить объем кода и сделать его проще. Для начала, напомню, что это такое. [Читать дальше →][3]

[1]: http://enepomnyaschih.github.io/jwidget/index.html#!/guide/ruhome
[2]: http://habrahabr.ru/post/219995/
[3]: http://habrahabr.ru/post/270879/#habracut

[>] [recovery mode] Дайджест событий из мира D №2
habra.15
habrabot(difrex,1) — All
2015-11-15 23:00:03


В последнее время на Хабре стало много публикаций на тему Rust и Go и достаточно мало про D. Главной причиной этого является поддержка этих языков Mozilla и Google, которые могут вкладывать большие деньги в свои детища. За D не стоит ни одной столь же крупной компании, однако это не мешает языку активно развиваться. Сейчас я кратко расскажу о последних новостях языка и оставлю кому-то другому возможность провести комплексное сравнение Rust/Go и D. [Читать дальше →][1]

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

[>] Плохо документированные особенности Linux
habra.14
habrabot(difrex,1) — All
2015-03-26 11:00:02




> Привздохнув, произнесла:
>
>
>
> «Как же долго я спала!»

![image][1] Когда-то, впервые встретив Unix, я был очарован логической стройностью и завершенностью системы. Несколько лет после этого я яростно изучал устройство ядра и системные вызовы, читая все что удавалось достать. Понемногу мое увлечение сошло на нет, нашлись более насущные дела и вот, начиная с какого-то времени, я стал обнаруживать то одну то другую фичу про которые я раньше не знал. Процесс естественный, однако слишком часто такие казусы обьединяет одно — отсутствие авторитетного источника документации. Часто ответ находится в виде третьего сверху комментария на _stackoverflow_, часто приходится сводить вместе два-три источника чтобы получить ответ на именно тот вопрос который задавал. Я хочу привести здесь небольшую коллекцию таких плохо документированных особенностей. Ни одна из них не нова, некоторые даже очень не новы, но на каждую я убил в свое время несколько часов и часто до сих пор не знаю систематического описания. Все примеры относятся к Linux, хотя многие из них справедливы для других \*nix систем, я просто взял за основу самую активно развивающуюся ОС, к тому же ту, которая у меня перед глазами и где я могу быстро проверить предлагаемый код. Обратите внимание, в заголовке я написал «плохо документированные» а не «малоизвестные», поэтому тех кто в курсе прошу выкладывать в комментариях ссылки на **членораздельную** документацию, я с удовольствием добавлю в конце список. [Читать дальше →][2]

[1]: //habrastorage.org/files/ddd/a95/15b/ddda9515b1e9414f8baf11fc782a688e.jpeg
[2]: http://habrahabr.ru/post/253811/#habracut

[>] Let's encrypt: старт публичной беты с 5 декабря
habra.15
habrabot(difrex,1) — All
2015-11-16 01:00:02


![image][1] На сайте Let's encrypt появилась [новость][2] о том, что доступ к публичному бета-тестированию будет открыт 5 декабря 2015 года. Для регистрации больше не будет нужен invite код. «С момента запуска закрытой беты 12 сентября было выдано более 11000 сертификатов и стало понятно, что система готова к публичному тестированию», — сообщается в новости. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/00d/77a/262/00d77a262c95927ab0d8b55226574dc0.jpg
[2]: https://letsencrypt.org/2015/11/12/public-beta-timing.html
[3]: http://habrahabr.ru/post/270919/#habracut

[>] Let's encrypt: старт публичной беты с 3 декабря
habra.15
habrabot(difrex,1) — All
2015-11-16 11:00:02


![image][1] На сайте Let's encrypt появилась [новость][2] о том, что доступ к публичному бета-тестированию будет открыт 3 декабря 2015 года. Для регистрации больше не будет нужен invite код. «С момента запуска закрытой беты 12 сентября было выдано более 11000 сертификатов и стало понятно, что система готова к публичному тестированию», — сообщается в новости. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/00d/77a/262/00d77a262c95927ab0d8b55226574dc0.jpg
[2]: https://letsencrypt.org/2015/11/12/public-beta-timing.html
[3]: http://habrahabr.ru/post/270919/#habracut

[>] [Из песочницы] Сборка 4-мерного кубика Рубика
habra.15
habrabot(difrex,1) — All
2015-11-16 11:30:02


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

[1]: https://habrastorage.org/files/38a/499/731/38a499731a9e4334859eca635a2ac0b3.jpg
[2]: http://habrahabr.ru/post/270935/#habracut

[>] Как я спас несколько жизней оптимизацией и немного о работе в Zeptolab
habra.14
habrabot(difrex,1) — All
2015-03-26 12:00:03


Привет! [23derevo][1] перед выступлением на Mobius попросил рассказать меня немного о процессе клиентской разработки в Zeptolab. ![][2] Начну с того, что мы пишем на C++ и на своём фреймворке, от любого клиентского устройства нам нужен только контекст OpenGL. Дальше мы с нуля строим свой интерфейс, свои контролы и так далее. Соответственно, чтобы взять девелопера в команду, в теории, ему достаточно знать плюсы. На практике это немного не так. [Читать дальше →][3]

[1]: http://habrahabr.ru/users/23derevo/
[2]: //habrastorage.org/files/5d5/481/c50/5d5481c50ef64895b185a6537706b1fd.jpg
[3]: http://habrahabr.ru/post/254009/#habracut

[>] Забвение старых идей и попытки изобретения «старого колеса»
habra.15
habrabot(difrex,1) — All
2015-11-16 14:30:02




##### **Из истории криптографии США**

![][1] Еще в конце XVIII века криптография обогатилась замечательным изобретением — ** шифратором Джефферсона**, названным в честь государственного деятеля, первого государственного секретаря, а затем и президента Америки Томаса Джефферсона. Сам Джефферсон назвал свою систему «дисковым шифром». Реализовывало такое устройство известный шифр многоалфавитной замены. Шифратор представлял собой деревянный цилиндр, который разрезался на 36 дисков (хотя количество дисков могло быть и другим), которые насаживались на одну ось так, чтобы независимо поворачиваться вокруг нее. На боковых поверхностях дисков в вольном порядке — все буквы английского алфавита. [Читать дальше][2]

[1]: https://habrastorage.org/files/d25/ea9/d3d/d25ea9d3dcea4b5b974c2bbbb61ae682.jpg
[2]: http://habrahabr.ru/post/270931/#habracut

[>] Как могла бы выглядеть поддержка JSON в современном С++
habra.14
habrabot(difrex,1) — All
2015-03-26 14:00:02


Хорошо в плане поддержки JSON живётся программистам на Javascript — _по какому-то невероятному стечению обстоятельств_ там JSON входит в спецификацию самого языка: есть JSON — есть объект. Удобно. Неплохо дело обстоит и в языках, где JSON не входит в сам язык, но поддерживается стандартной библиотекой (Python, Ruby): импортируешь модуль — и готово. Жизнь программистов на С++ никогда не была особо простой — поддержки JSON у нас нет ни на уровне языка, ни в стандартной библиотеке. И не будет, возможно, никогда. «Тоже мне проблему нашел!» — скажут мне опытные коллеги — «Её там и не должно быть, С++ поставляется без „батареек“. Для решения этой задачи мы...» и вот здесь они разделятся на два лагеря: **1\.** «Мы используем большой фреймворк (boost, Qt, POCO, другой), который применяется во всех наших проектах и умеет 150 000 разных вещей, в том числе и JSON.» **2\.** «Мы придерживаемся подхода в котором для каждой задачи применяется своя легковесная библиотека. В частности, для JSON мы уже 150 000 лет назад выбрали отличную библиотеку %JSON\_LIB%, которая прекрасно работает.» Да, всё так и есть. Вот только…

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





Плох он вот этой частью: "...150 000 лет назад выбрали отличную библиотеку...". Скорее всего речь идёт о чём-то, что начинало писаться чуть-ли не во времена DOSа и, без сомнения, работает, но при этом, пытаясь быть совместимым со всеми платформами и стандартами языка совершенно отстаёт от прогресса. Да, всё компилируется и работает, даже тесты проходит. Но библиотека совершенно не знакома с такими вещами, как ключевое слово auto, range-based циклы, строковые литералы, raw-строки, конструкторы перемещения, списки инициализации и прочие классные вещи, делающие код одновременно более эффективным и более легко читаемым. А ведь у библиотеки, созданной годы назад, есть обязательства по обратной совместимости, а значит просто так взять и добавить это всё она не может.



**Давайте немного помечтаем. ** А что, если бы JSON вошел в стандартную библиотеку нового стандарта С++? Что, если бы он был написан в терминах С++11\\14 и без требований обратной совместимости со старыми стандартами языка? Что, если бы синтаксис этого модуля попытались бы сделать максимально приближенным к родному для JSON использованию «а-ля Javascript», но в том же время сохранить дух С++ (эффективность, минимальное потребление памяти, совместимость с STL)? Что, если бы его можно было включить в проект одним инклюдом и не беспокоиться о его сборке и линковке? Как бы это всё выглядело и работало? И у нас есть ответ на этот вопрос! Давайте посмотрим на [JSON-библиотеку][1] для С++ написанную в соответствии со всеми этими принципами, ну и вообще написанной людьми для людей, а не чужими для хищников, как это обычно бывает. [Читать дальше →][2]

[1]: https://github.com/nlohmann/json
[2]: http://habrahabr.ru/post/254075/#habracut

[>] Russian AI Cup 2015: гонки на выживание для программистов
habra.15
habrabot(difrex,1) — All
2015-11-16 17:00:03


![][1] Мы рады сообщить о начале очередного международного чемпионата по программированию искусственного интеллекта — [Russian AI Cup][2]. В этот раз чемпионат получил название CodeRacing. Храбрецам, которые отважатся принять участие, предстоит программировать искусственный интеллект для управления гоночным автомобилем. Но он должен будет не просто исполнять роль водителя, но и одновременно расстреливать соперников. В «игровом» мире предусмотрено четыре типа юнитов: кодемобили, снаряды, бонусы и лужи мазута. Самые «грязные» приёмы на трассе будут только поощряться: можно толкать чужие машины, повреждать их и ломать. [Читать дальше →][3]

[1]: https://habrastorage.org/files/b4c/ca2/064/b4cca206426f4d2882e240c7a622384e.jpg
[2]: http://russianaicup.ru/
[3]: http://habrahabr.ru/post/270759/#habracut

[>] Задачи по алгоритмам
habra.14
habrabot(difrex,1) — All
2015-03-26 15:30:03


Добрый день. На первом курсе бакалавриата Академического университета читается годовой курс алгоритмов. Каждая лекция сопровождается семинаром, на котором мы разбираем алгоритмические задачи. Практические семинары проходят в небольших группах. В этом семестре я читаю лекции и веду практику у одной из групп. Сегодня хочу поделиться с Вами двумя задачами с этих семинаров. **Задача 1.** На прямой даны n отрезков, нужно выбрать максимальное по размеру подмножество непересекающихся. **Задача 2.** На окружности даны n дуг (отрезков), нужно выбрать максимальное по размеру подмножество непересекающихся. [Читать дальше →][1]

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

[>] PowerShell: за гранью
habra.14
habrabot(difrex,1) — All
2015-03-26 16:00:03


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

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

[>] Титаник на Kaggle: вы не дочитаете этот пост до конца
habra.15
habrabot(difrex,1) — All
2015-11-16 17:30:02


Привет, хабр! ![][1] **\#\{Data Science для новичков\}** Меня зовут Глеб Морозов, мы с Вами уже знакомы по предыдущим статьям. По многочисленным просьбам продолжаю описывать опыт своего участия в образовательных проектах [MLClass.ru][2] (кстати, кто еще не успел — до конца еще можно [получить материалы прошедших курсов][3] — это, наверное, самый краткий и максимально практичный курс по анализу данных, который можно себе представить). Данная работа описывает мою попытку создать модель для предсказания выживших пассажиров «Титаника». Основная задача — тренировка в использовании инструментов применяемых в Data Science для анализа данных и презентации результатов исследования, **поэтому данная статья будет очень и очень длинной**. Основное внимание уделено исследовательскому анализу (**exploratory research**) и работе по созданию и выбору предикторов (**feature engineering**). Модель создаётся в рамках соревнования **Titanic: Machine Learning from Disaster** проходящего на сайте Kaggle. В своей работе я буду использовать язык «R». [Читать дальше →][4]

[1]: https://habrastorage.org/files/c3e/cde/5b7/c3ecde5b78cd41e89b09f79af46311bb.png
[2]: http://dscourse.mlclass.ru/
[3]: http://dscourse.mlclass.ru/
[4]: http://habrahabr.ru/post/270973/#habracut

[>] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 16. «Operation Firewall»
habra.15
habrabot(difrex,1) — All
2015-11-16 18:30:02


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

#### Глава 16. Операция Фаервол

_(за перевод спасибо хабраюзеру [Find\_The\_Truth][5])_ Что-то странное происходило с [ShadowCrew][6]. Макс старался не светиться на одном из самых криминальных сайтов во всем интернете. Для него ShadowCrew была лишь площадкой, где можно было взломать пару-тройку кардеров. Однако, в мае 2004 года, администратор сайта сделал заявление, которое привлекло внимание Макса. Админ КумбаДжонни (Cumbajohnny) представил новый VPN сервис только для участников сайта. [Читать дальше →][7]

[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]: http://habrahabr.ru/users/find_the_truth/
[6]: https://en.wikipedia.org/wiki/ShadowCrew
[7]: http://habrahabr.ru/post/270831/#habracut

[>] [Из песочницы] Восстанавливаем права доступа под Mac OS X — EL Capitan
habra.15
habrabot(difrex,1) — All
2015-11-16 19:30:02


При переходе на El Capitan ряд пользователей столкнулся с проблемами прав доступа — неработающее **sudo**, некорректная timezone, etc… Корнем зла является урезанный доступ к **/private/etc**. Для начала, вам, стоит проверить свой. Откройте **Terminal** (это можно сделать через **Spotlight**) и введите **ls -la /private**.

$ ls -la /private
total 0
drwxr-xr-x@ 6 root wheel 204 Oct 1 10:20 .
drwxr-xr-x 33 root wheel 1190 Nov 4 15:56 ..
drwxr-xr-x 106 root wheel 3604 Nov 13 18:04 etc
drwxr-xr-x 2 root wheel 68 Aug 23 02:28 tftpboot
drwxrwxrwt 14 root wheel 476 Nov 16 10:55 tmp
drwxr-xr-x 25 root wheel 850 Nov 4 17:02 var
$


Вот так **«drwxr-xr-x»** и должны выглядеть права на **etc**. Если они выглядят больше похожими на **«drwx-----»**, то вам к нам. [Читать дальше →][1]

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

[>] Строим свое собственное отказоустойчивое облако на базе OpenNebula с Ceph, MariaDB Galera Cluster и OpenvSwitch
habra.15
habrabot(difrex,1) — All
2015-11-16 19:30:02


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

* **[Установка Ceph, распределенного хранилища][2]**. _(Я буду описывать установку двухуровневого хранилища с кэширующим пулом из SSD-дисков)_
* **[Установка MySQL, Galera кластера с мастер-мастер репликацией][3]**
* **[Установка софт-свича OpenvSwitch][4]**
* **[Установка непосредственно самой OpenNebula][5]**
* **[Настройка отказоустойчевого кластера][6]**
* **[Первоначальная конфигурация][7]**

Темы сами по себе очень интересные, так что даже если вас не интересует конечная цель, но интересует настройка какого-нибудь отдельного компонента. Милости прошу под кат. [Читать дальше →][8]

[1]: https://habrastorage.org/files/1b8/185/6c4/1b81856c42da42ba903e85e1653969e4.png
[2]: http://habrahabr.ru/post/270187/#ceph
[3]: http://habrahabr.ru/post/270187/#galera
[4]: http://habrahabr.ru/post/270187/#openvswitch
[5]: http://habrahabr.ru/post/270187/#opennebula
[6]: http://habrahabr.ru/post/270187/#pacemaker
[7]: http://habrahabr.ru/post/270187/#configuration
[8]: http://habrahabr.ru/post/270187/#habracut

[>] В Android обнаружена опасная уязвимость
habra.14
habrabot(difrex,1) — All
2015-03-26 16:00:03


Компания Palo Alto Networks [сообщила][1] об обнаружении опасной уязвимости в компоненте установщика приложений (_PackageInstaller_) Android версий <5. Эта уязвимость схожа с уязвимостью Masque для iOS, о которой мы писали [здесь][2], и позволяет устанавливать одно приложение поверх другого, причем это новое приложение получит доступ ко всем данным предыдущего. Речь идет об установке приложений из стороннего магазина приложений, а не из Google Play, поскольку, только при таком сценарии злоумышленники могут воспользоваться уязвимостью. ![][3] По подсчетам Palo Alto Networks, уязвимость охватывает 49,5% всех устройств, которые работают под управлением Android. Сам эксплойт был успешно протестирован на следующих версиях Android: 2.3, 4.0.3-4.0.4, 4.1.X, и 4.2.x. Уязвимыми являются некоторые прошивки с версиями Android 4.3. Для Android 4.4 эта уязвимость уже была устранена. [Читать дальше →][4]

[1]: http://researchcenter.paloaltonetworks.com/2015/03/android-installer-hijacking-vulnerability-could-expose-android-users-to-malware/
[2]: http://habrahabr.ru/company/eset/blog/243279/
[3]: //habrastorage.org/files/f95/f81/3fa/f95f813fa42049e6a6c973b85ff5b000.png
[4]: http://habrahabr.ru/post/254061/#habracut

[>] Защита VoIP сетей
habra.15
habrabot(difrex,1) — All
2015-11-16 19:30:02


![][1] Приветствую всех. В сети уже достаточно много написано статей о том, что SBC защищает VoIP сеть и предотвращает воровство трафика, отражает DoS/DDoS атаки и обеспечивает полноценную безопасность VoIP сервисов. Но очень мало написано о том, какие в реальности есть атаки в мире VoIP и SIP, и какие именно технологии обеспечивают безопасность. В данной статье я постарался описать какие бывают атаки в мире VoIP, в чем их особенность, какое у них отличие от обычных сетевых атак и каким образом AudioCodes SBC предотвращает данные атаки и обеспечивает ту самую защиту, про которую все пишут. [Читать дальше →][2]

[1]: https://habrastorage.org/files/047/9aa/fce/0479aafceb4c432b9145c7c0cfcd9a91.png
[2]: http://habrahabr.ru/post/270739/#habracut

[>] Наручные часы на основе Arduino, созданные на 3D-принтере за один субботний вечер
habra.14
habrabot(difrex,1) — All
2015-03-26 17:30:02


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

[1]: http://habrahabr.ru/company/masterkit/blog/253957/
[2]: //habrastorage.org/files/285/3b2/7d7/2853b27d70e843a2802341aed65898d1.jpg
[3]: http://habrahabr.ru/post/254099/#habracut

[>] Установка плагина onlyoffice-alfresco (контрольный лист — шпаргалка)
habra.15
habrabot(difrex,1) — All
2015-11-16 19:30:03


10 ноября 2015 стал доступен плагин для редактирования документов в Alfresco Share при помощи онлайн-редакторов OnlyOffice. Код плагина распространяется под лицензией GPL. [Читать дальше →][1]

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

[>] Превращение Android телефона в сетевую SQL базу данных (MyMobileSQLServer — Utesov)
habra.14
habrabot(difrex,1) — All
2015-03-26 17:30:02


Недавно я начал делать очередной проект для мобильных устройств. Его побочным продуктом стало приложение, с помощью которого можно развернуть сетевую базу данных на любимом Android телефоне, планшете и т.п… Предлагаемое решение является сетевым провайдером SQLite базы данных. Приложение многопользовательское, каждый пользователь имеет свою БД, которая недоступна другим пользователям. Код открытый, лицензия Apache 2.0. Для демонстрации заявленных возможностей написано простое приложение которое позволяет делать SQL запросы на сервер и получать результаты их выполнения, его код рассмотрим здесь. Время освоения — 10 минут. Для тестирования достаточно одного устройства (если используется два и более, то необходимо WiFi подключение). Поехали! ![image][1] _Кадр из к\\ф «Весёлые ребята» (доработанный)_ [Читать дальше →][2]

[1]: http://habrastorage.org/files/63e/3d4/84f/63e3d484ff9d4b74bc9a65dfce62b6dc.png
[2]: http://habrahabr.ru/post/254021/#habracut

[>] [Перевод] Лучше или хуже
habra.15
habrabot(difrex,1) — All
2015-11-16 19:30:03


_Перевод статьи [«For Better or For Worse»][1] [разработчика][2] из компании DataDog Inc. Статья посвящена вопросу дизайна языков программирования и связи дизайна с попытками оценок качества языков. Частично является ответом на недавно переведенную [тут эту статью][3]._ В программистской тусовке возникает мем об “объективном качестве” дизайна Go. Буквально на днях я встретил его в [статье про выбор языков от Honza][4], где он был очень хорошо виден:

> Учтите, язык объективно очень плохо спроектирован. [...] И, при этом, Go гораздо более популярен, чем Haskell, если верить GitHub. При этом, уже столько отличных проектов, написанных на Go, вроде Docker, InfluxDB, etcd, Consul, Prometheus, packer и других.

Я думаю, что это [крайне интересный набор противоречий][5], и автор с этим согласен. Сложно было бы так безаппеляционно и уверенно утверждать, что Go плохо спроектирован, если бы это мнение не было столь расхожим. В прошлом году целый ряд статей и постов в блогах заложили основу этому мнению. Среди них были статьи людей, не любящих Go, потому что тот [не позволяет им чувствовать себя умными][6] или потому что [в нём нет ничего принципиально нового][7]. Они уверены, что Go, сознательно игнорируя определённые продвижения в дизайне языков программирования, остался в прошлом, из которого лучшие языки ушли далеко вперед. И они это утверждают [весьма настойчиво][8]. Когда люди с таким видением пытаются объяснить популярность Go, они неизбежно приходят к парадоксу. Если Go настолько плох, почему он так популярен? [Читать дальше →][9]

[1]: http://jmoiron.net/blog/for-better-or-for-worse/
[2]: https://github.com/jmoiron
[3]: http://habrahabr.ru/post/270707/
[4]: https://honza.ca/2015/11/language-choice
[5]: https://twitter.com/jmoiron/status/662156246452060161
[6]: http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/
[7]: http://yager.io/programming/go.html
[8]: https://www.quora.com/How-do-Go-and-Rust-languages-compare/answer/Costya-Perepelitsa?srid=u77Z&share=1
[9]: http://habrahabr.ru/post/270981/#habracut

[>] Развитие card‑not‑present environment: история и возможности
habra.15
habrabot(difrex,1) — All
2015-11-16 20:30:03


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

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

[>] [Из песочницы] Большое обзорное тестирование языков программирования
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Недавно очередной раз отработал со студентам 2-го курса 2-семестровую дисциплину «Алгоритмические языки». Обзорно рассмотрели несколько дюжин языков программирования. Один из студентов, Вадим Шукалюк, захотел получше с ними познакомиться, получить более четкое представление о каждом из них. Посоветовал ему провести небольшое исследование. Чем и увлёк. Предлагаю свой отчёт по проделанной за несколько месяцев вместе с ним работе. У каждого языка программирования есть свои достоинства и недостатки. Одна из важнейших характеристик транслятора с любого языка — это скорость исполнения программ. Очень трудно или даже невозможно получить точную оценку такой скорости исполнения. Ресурс Х, тикль, бэш. Исследовались как собственно скорость исполнения нескольких небольших, но трудоёмких алгоритмов, так и:

* качество оптимизации некоторых трансляторов;
* особенности при работе с процессорами Intel и AMD;
* предельное число рекурсивных вызовов (ёмкость стека).

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

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

[>] Настройка Linux кластера на Shared DAS и ZFS
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Этим материалом мы открываем цикл статей, посвященных [технологии Shared DAS][1] и ее использованию в ОС GNU\\Linux. В первой статье цикла описывается создание простейшего двух-узлового кластера высокой надежности и создание на его базе отказоустойчивой iSCSI-СХД с ZFS. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/company/etegro/blog/215333/
[2]: //habrastorage.org/files/a07/47e/ed1/a0747eed1984499e8d40fbf93a2a20b8.png
[3]: http://habrahabr.ru/post/254083/#habracut

[>] WebPack: как внутри устроено Hot Reloading
habra.15
habrabot(difrex,1) — All
2015-11-17 11:00:04


![][1]Наша платформа voximplant активно использует javascript. С помощью него клиенты управляют в реальном времени звонками, на нем работает наша backend логика и большинство frontend. Javascript мы любим, ценим и стараемся быть в курсе последних новостей. Сейчас наши разработчики активно экспериментируют с перспективной связкой webpack + typescript + react (кстати, для typescript мы сделали [type definitions][2] к нашему web sdk, но об этом как-нибудь в другой раз). Особенно нам нравится «hot module replacement»: возможность при изменении исходников очень быстро отобразить изменения в браузере без перезагрузки страницы. Выглядит как магия. К сожалению, документировано тоже как магия — по словам [eyeofhell][3], нашего технического евангелиста, «пример на офсайте — это уникальная комбинация частных случаев и особых команд, любое изменение в которых делает его неработоспособным». На наш взгляд все не так плохо, за пару вечеров вполне можно разобраться. Но и не так просто, как хотелось бы. Поэтому специально для Хабра под катом мы максимально просто и понятно расскажем как работает под капотом вся эта машинерия. [Открыть попкорн и посмотреть шоу с эвалом и вебсокетами][4]

[1]: https://habrastorage.org/files/5fd/ea4/6f8/5fdea46f8f154af98deed1828873f0e9.jpg
[2]: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/voximplant-websdk
[3]: http://habrahabr.ru/users/eyeofhell/
[4]: http://habrahabr.ru/post/270593/#habracut

[>] Как избежать разыменования нулевого указателя, на примере одного исправления в ядре Linux
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


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

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

[>] Pro Parboiled (Часть 4 заключительная)
habra.15
habrabot(difrex,1) — All
2015-11-17 11:00:04


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

* [Часть 1. Почему Parboiled?][1]
* [Часть 2. Сопоставление текста][2]
* [Часть 3. Извлечение данных][3]
* Часть 4. Суровая действительность

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

[1]: http://habrahabr.ru/post/270233
[2]: http://habrahabr.ru/post/270531
[3]: http://habrahabr.ru/post/270609
[4]: http://habrahabr.ru/post/271003/#habracut

[>] [Из песочницы] Как расшифровать данные магнитной дорожки с использованием DUKPT
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Предлагаю читателям «Хабрахабра» перевод статьи [«How To Decrypt Magnetic Card Data With DUKPT»][1]. Недавно мне было нужно расшифровать карточные данные из считывателя магнитных дорожек. Казалось бы, это просто. Беру ключ и выполняю определенный алгоритм расшифровки. Но не тут-то было. Оказалось, мои считыватели используют схему известную как DUKPT (Derived Unique Key Per Transaction — Определение Уникального Ключа На Транзакцию). Идея этой схемы состоит в том, что для каждой транзакции (или в нашем случае для каждого проката карты) данные шифруются с использованием ключа вычисленного для отдельного проката карты. Таким образом, чтобы расшифровать данные, которые были зашифрованы с использованием этой схемы, вы должны уметь вычислять ключ для отдельного проката карты. Процесс вычисления такого ключа (сессионного ключа) далеко не простой. [Читать далее][2]

[1]: https://www.parthenonsoftware.com/blog/how-to-decrypt-magnetic-stripe-scanner-data-with-dukpt/
[2]: http://habrahabr.ru/post/254109/#habracut

[>] Семантические технологии на практике на примере родословных
habra.15
habrabot(difrex,1) — All
2015-11-17 13:30:05


Программа, способная к логическим выводам в рамках поставленной задачи, может казаться техническим чудом и воплощением Скайнета. Но, как можно убедиться ниже, на сегодняшний день создать такую программу на языке Python не составит труда, если использовать семантические технологии. Мы остановимся на наглядном примере онтологий — родословных — и для любого члена семьи в родословной сможем выводить его родственные отношения произвольной сложности (она ограничена вычислительными ресурсами). К примеру, на фамильном древе семьи Романовых ниже показан внучатый двоюродный племянник (first cousin twice removed) российского императора Петра II. ![image][1] Так что если вы хотите познакомиться с технологиями семантического веба на практике, добро пожаловать под кат, где мы потренируемся на родословных. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/d23/314/13a/d2331413a25143c93218a2b9796c666d.png
[2]: http://habrahabr.ru/post/270857/#habracut

[>] [Из песочницы] CSRF-уязвимость VK Open Api, позволяющая злоумышленнику без ведома пользователя получать Access Token’ы сторонних сайтов, на которых реализована авторизация через VK
habra.15
habrabot(difrex,1) — All
2015-11-17 14:00:05


Представляю вашему вниманию обзор уязвимости, связанной с неправильным применением JSONP в VK Open Api. На мой взгляд, уязвимость достаточно серьёзная, т.к. позволяла сайту злоумышленника получать Access Token другого сайта, если на нём используется авторизация через библиотеку VK Open API. На данный момент уязвимый код поправили, репорт на HackerOne закрыли, вознаграждение выплатили (1,500$).

### Как это выглядело

В принципе, процесс получения пользовательского Access Token'а страницей злоумышленника происходил по стандартной схеме эксплуатации CSRF-уязвимости:

1. Пользователь заходит на сайт, использующий библиотеку VK Open API (например, [www.another-test-domain.com][1]).
2. Авторизуется там через VK.
3. Потом заходит на сайт злоумышленника (например, [www.vk-test-auth.com][2]), который, эксплуатируя уязвимость, получает Access Token, принадлежащий сайту [www.another-test-domain.com][3].
4. Получив Access Token пользователя, злоумышленник может обращаться к VK API с теми правами, который пользователь дал сайту [www.another-test-domain.com][4] при авторизации на нем через VK.



### Демонстрация

На видео показано, как страница «злоумышленника» на домене [www.vk-test-auth.com][5] получает Access Token пользователя VK, который авторизовался на сайте [www.another-test-domain.com][6], несмотря на то, что в настройках приложения VK, доступ разрешён только для домена [www.another-test-domain.com][7].




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

[1]: http://www.another-test-domain.com
[2]: http://www.vk-test-auth.com
[3]: http://www.another-test-domain.com
[4]: http://www.another-test-domain.com
[5]: http://www.vk-test-auth.com
[6]: http://www.another-test-domain.com
[7]: http://www.another-test-domain.com
[8]: http://habrahabr.ru/post/271031/#habracut

[>] LINQ конвертор между римскими и арабскими числами
habra.15
habrabot(difrex,1) — All
2015-11-17 16:30:09


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

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

[>] Расширения привязки и xaml-разметки на примере локализации
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Одним из ключевых моментов в разработке _xaml_-ориентированных приложений является использование привязок (_Bindings_). **Привязка** — это медиатор (посредник), с помощью которого синхронизируются значения свойств между связанными объектами. Стоит отметить не очевидный, но важный нюанс: Наследование от класса _Binding_ разрешено, но в целях безопасности кода переопределение метода _ProvideValue_, который связан с основной логикой работы, не допускается. Это так или иначе провоцирует разработчиков на применение паттерна _Converter_, который тесно переплетается с темой привязок. Привязки очень мощный инструмент, но в некоторых случаях их декларирование получается многословным и неудобным при регулярном использовании, например, для локализации. В этой статье мы разберём простой и элегантный способ, делающий код намного более чистым и красивым. ![image][1] [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/2e3/869/9c4/2e38699c4b8a3770232ade2314f04ade.jpg
[2]: http://habrahabr.ru/post/254115/#habracut

[>] Алгоритмы и торговля на бирже: Скрытие крупных сделок и предсказание цены акций
habra.15
habrabot(difrex,1) — All
2015-11-17 17:30:06


[![][1]][2] Профессор математики Нью-Йоркского Университета и эксперт по финансовым рынкам Марко Авелланеда (Marco Avellaneda) составил [презентацию][3], в которой рассказал о том, как с помощью алгоритмов крупные инвесторы «скрывают» свои масштабные сделки, а другие трейдеры занимаются предсказанием изменений цен акций. В нашем сегодняшнем материале — основные моменты этой работы. [Читать дальше →][4]

[1]: https://habrastorage.org/files/c79/c44/35a/c79c4435a2474e5da70360e3c541ec82.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/271059/
[3]: https://www.math.nyu.edu/faculty/avellane/QuantCongressUSA2011AlgoTradingLAST.pdf
[4]: http://habrahabr.ru/post/271059/#habracut

[>] [Перевод] Глубокое обучение: Немного теории
habra.15
habrabot(difrex,1) — All
2015-11-17 19:30:04


[][1] Этот пост основан на лекции «[Deep Learning: Theoretical Motivations][2]» («Глубокое обучение: теоретические обоснования») доктора [Йошуа Бенджио][3] (Dr. Yoshua Bengio), которую он читал в [летней школе][4] по глубокому обучению в Монреале (2015 год). Мы рекомендуем её прослушать – так вы лучше поймете нижеизложенный материал. [Читать дальше →][5]

[1]: http://habrahabr.ru/company/spbifmo/blog/271027/
[2]: http://videolectures.net/deeplearning2015_bengio_theoretical_motivations/
[3]: http://www.iro.umontreal.ca/%7Ebengioy/yoshua_en/index.html
[4]: https://sites.google.com/site/deeplearningsummerschool/
[5]: http://habrahabr.ru/post/271027/#habracut

[>] Перенос данных в Россию. Краткий FAQ по заблуждениям
habra.15
habrabot(difrex,1) — All
2015-11-17 20:00:06


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

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

[>] Установка, настройка и использование сканера безопасности Antidoto
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


Ранее я писал о двух известных сканерах безопасности общего плана rkhunter и CentOS На “Хабре” так же есть описание организации работы сканера для вебхостинга — maldet. Теперь хотелось бы рассмотреть реализацию приложения для эвристического обнаружения уязвимостей, вирусов и ботнетов для ОС Linux — Antidoto. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/d4b/817/fec/d4b817fec7d74dc5ba35feeaf02d5754.jpg
[2]: http://habrahabr.ru/post/254079/#habracut

[>] Ночь программиста. 3-4 апреля, Нижний Новгород. IoT хакатон Microsoft и Intel
habra.14
habrabot(difrex,1) — All
2015-03-26 19:00:02


![][1] Что можно делать субботней апрельской ночью? Вариантов, конечно, масса, но мы предлагаем еще один — наверняка, самый оригинальный. Всего одну ночь, с 3 на 4 апреля, компания Microsoft при участии Intel устраивает интеллектуальную вечеринку для программистов — [хакатон по разработке решений для Интернета вещей][2] на базе платформы [Intel® Galileo][3] и облачного сервиса [Microsoft Azure][4]. [Читать дальше →][5]

[1]: //habrastorage.org/files/fb3/6d5/df9/fb36d5df9f2149f28972f2cfd6505ce1.jpg
[2]: http://events.techdays.ru/msdevtour/nizhniy-novgorod-hackaton
[3]: http://www.intel.com/content/www/us/en/do-it-yourself/galileo-maker-quark-board.html
[4]: http://l.techdays.ru/go/azuretrial
[5]: http://habrahabr.ru/post/254057/#habracut

[>] В свободном доступе по-прежнему находится частная, финансовая и другая закрытая информация пользователей Fl.ru
habra.14
habrabot(difrex,1) — All
2015-03-26 23:00:03


![][1] Несмотря на публикацию [«Критическая уязвимость в безопасности на fl.ru»][2], этот сервис продолжает раздавать всем желающим информацию, которую следовало бы закрыть от публичного доступа. Вы можете легко получить доступ к паспортным данным, адресу регистрации, почтовому адресу, E-mail, телефону и другой информации о пользователях Fl.ru, в том числе финансовой! Причем не только о фрилансерах, но и о заказчиках. Для этого не требуется применять какие-то хакерские приемы и взламывать сайт Fl.ru, достаточно просто пройти по ссылкам, проиндексированным Яндексом с указанием соответствующего реферера в заголовке запроса. [Как это сделать][3]

[1]: //habrastorage.org/files/8ea/6eb/970/8ea6eb9705454095b2432c1b269885e8.png
[2]: http://habrahabr.ru/post/253943/#comment_8346599
[3]: http://habrahabr.ru/post/254141/#habracut

[>] HighLoad++ 2015 глазами иностранного докладчика
habra.15
habrabot(difrex,1) — All
2015-11-17 20:00:06


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

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

[>] [Из песочницы] Как попасть в топ на Kaggle, или Матрикснет в домашних условиях
habra.14
habrabot(difrex,1) — All
2015-03-26 23:30:03


Хочу поделиться опытом участия в конкурсе Kaggle и алгоритмами машинного обучения, с помощью которых добрался [до 18-го места из 1604 в конкурсе Avazu][1] по прогнозированию CTR (click-through rate) мобильной рекламы. В процессе работы попытался воссоздать оригинальный алгоритм Мактрикснета, тестировал несколько вариантов логистической регрессии и работал с характеристиками. Обо всём этом ниже, плюс прикладываю полный код, чтобы можно было посмотреть, как всё работает. Рассказ делю на следующие разделы: 1. Условия конкурса; 2. Создание новых характеристик; 3. Логистическая регрессия – прелести адаптивного градиента; 4. Матрикснет – воссоздание полного алгоритма; 5. Ускорение машинного обучения в Python. [Читать дальше →][2]

[1]: https://www.kaggle.com/c/avazu-ctr-prediction/leaderboard/private
[2]: http://habrahabr.ru/post/254151/#habracut

[>] Пролог – декларативный язык, способный решать любые ребусы и доказывать теоремы
habra.14
habrabot(difrex,1) — All
2015-03-27 00:00:03


Представьте себе высокоуровневый язык, в котором не нужно указывать КАК получить результат, вместо этого нужно просто указать ЧТО вы хотите получить. При этом область применения языка не ограничена и язык способен решать те же задачи, что и любой другой высокоуровневый язык, наподобие JAVA. Кажется фантастикой, не правда ли? Однако такой язык есть и называется он PROLOG. Посмотрим как PROLOG справляется с этой задачей на примере загадывания прологу некоторых загадок и попросим PROLOG выдать доказательство теоремы. ![image][1] [Читать дальше →][2]

[1]: http://habrastorage.org/files/66b/d0a/d94/66bd0ad9428943138aa8a102526cbe02.jpg
[2]: http://habrahabr.ru/post/254133/#habracut

[>] Ночь программиста. 4-5 апреля, Нижний Новгород. IoT хакатон Microsoft и Intel
habra.14
habrabot(difrex,1) — All
2015-03-27 09:30:03


![][1] Что можно делать субботней апрельской ночью? Вариантов, конечно, масса, но мы предлагаем еще один — наверняка, самый оригинальный. Всего одну ночь, с 4 на 5 апреля, компания Microsoft при участии Intel устраивает интеллектуальную вечеринку для программистов — [хакатон по разработке решений для Интернета вещей][2] на базе платформы [Intel® Galileo][3] и облачного сервиса [Microsoft Azure][4]. [Читать дальше →][5]

[1]: //habrastorage.org/files/fb3/6d5/df9/fb36d5df9f2149f28972f2cfd6505ce1.jpg
[2]: http://events.techdays.ru/msdevtour/nizhniy-novgorod-hackaton
[3]: http://www.intel.com/content/www/us/en/do-it-yourself/galileo-maker-quark-board.html
[4]: http://l.techdays.ru/go/azuretrial
[5]: http://habrahabr.ru/post/254057/#habracut

[>] Пол Грэм: «Месть ботанов». В чем отличие Lisp
habra.15
habrabot(difrex,1) — All
2015-11-17 20:00:06


[Продолжаем перевод][1] эссе и книги Пола Грэма «Хакеры и Художники». В конце статьи тех.директор компании [Edison][2] рассказывает, как они портировали Lisp на С#

> _«Мы гонялись за С++ программистами. Нам удалось перетащить их целую кучу на полпути к Lisp.» Гай Стил, соавтор Java спецификации._

![][3] Оригинал — [Revenge of the Nerds][4], Май 2002 и [What Made Lisp Different][5], декабрь 2001 _За перевод спасибо Щёкотовой Яне._ Начало: [Пол Грэм: «Месть ботанов», часть 1][6]

#### Часть вторая

**Чем отличается Lisp** Когда Lisp был впервые разработан, он воплощал в себе 9 новых принципов. Сегодня некоторые из них мы воспринимаем как само собой разумеещееся, другие можно увидеть только в более продвинутых языках, а два все еще остаются прерогативой Lisp. Эти 9 принципов перечислены ниже в порядке их применения в основном IT-течении. [Читать дальше →][7]

[1]: http://habrahabr.ru/company/tceh/blog/253311/
[2]: http://www.edsd.ru/
[3]: https://habrastorage.org/files/db0/66b/beb/db066bbeb91449dca99a71e97893f22c.jpg
[4]: http://www.paulgraham.com/icad.html
[5]: http://www.paulgraham.com/diff.html
[6]: http://habrahabr.ru/post/267865/
[7]: http://habrahabr.ru/post/268293/#habracut

[>] Про MAC-таблицы в коммутаторах
habra.14
habrabot(difrex,1) — All
2015-03-27 15:00:02


![][1]Привет, Хабр! Случается так, что иногда хочется отойти от скупой теории и перейти к практике. Сейчас как раз такой случай. Желание возникло на фоне воспоминаний того, как мы делали [коммутатор][2]. Он — вещь довольно простая, делов-то — пересылай пакеты с порта на порт, да статистику веди. Все оказалось немного сложнее. [Читать дальше →][3]

[1]: //habrastorage.org/files/aac/5f2/de2/aac5f2de2a69410a96ae862ef04c3664.png
[2]: http://metrotek.spb.ru/x10-24.html
[3]: http://habrahabr.ru/post/254183/#habracut

[>] Тех деревня от нуля до единицы. Теперь и с отзывами о компаниях
habra.15
habrabot(difrex,1) — All
2015-11-17 20:30:03


Привет всем! Делимся новостями проекта, о котором писали год назад. Но сначала говорим спасибо каждому хабровчанину, поддержавшему [Тех деревню][1]! За отзывы, шеринг в соцсетях и письма об ошибках — мы это ценим. Спустя год мы обновили проект и добавили новые возможности. Немного про итоги. За год в Тех деревне появилось 500 новых отзывов о городах. Карта стала ярче в разы, и уже с первого взгляда видно где хорошо, а где — не очень. Приятно, что пишут из самых разных мест. У нас собраны отзывы со всех континентов, кроме Антарктиды (не будет считать это минусом — вы вряд ли захотите работать там, где даже летом -30). ![image][2] [Читать дальше →][3]

[1]: http://techvillage.ru/
[2]: https://habrastorage.org/files/101/ecc/17d/101ecc17d2e24ac79dedbbbdb17de2e3.png
[3]: http://habrahabr.ru/post/270965/#habracut

[>] [recovery mode] Защита персональных данных по N 242-ФЗ: как понять и что делать?
habra.15
habrabot(difrex,1) — All
2015-11-17 22:00:05


![][1] Тема информационной безопасности продолжает быть актуальной — недавно в Москве на конференции «Защита персональных данных» обсуждали ФЗ №242 или как его называют «Закон о локализации персональных данных россиян на территории РФ». Суть его такова: с сентября 2015 года организациям-операторам ПДн, необходимо вести сбор и систематизацию персональных данных (далее – ПДн) россиян на территории РФ. А львиная доля поставщиков различных услуг — иностранцы, или хранят свои серверы заграницей, и российские пользователи, приобретая услуги таких поставщиков, передают свои данные за рубеж, где происходит не только их хранение, но и систематизация. Возникает вопрос — как клиентам продолжить пользоваться услугами зарубежных поставщиков, не нарушив стандарты обработки ПДн по российскому законодательству. [Читать дальше →][2]

[1]: https://habrastorage.org/files/202/9bb/162/2029bb16265e45679315d61f93d9ae0c.jpg
[2]: http://habrahabr.ru/post/271061/#habracut

Pages: 1 ... 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 ... 210