Search
Write a publication
Pull to refresh
198
0
Сергей Новоградцев @snipsnap

Java разработчик

Send message

О пользе технологий больших данных в повседневной жизни

Reading time4 min
Views18K


Среди многих исследователей и разработчиков бытует мнение, что инструменты обработки больших данных в области машинного обучения часто избыточны – всегда можно сделать сэмпл, загнать в память и использовать любимые R, Python и Matlab. Но на практике встречаются задачи, когда даже относительно небольшой объем данных, размером в пару гигабайт, обработать в таком стиле затруднительно – и тут-то и могут помочь те самые технологии «больших данных».

Хорошим наглядным примером такой задачи является задача нашего конкурса SNA Hakathon 2016: дан социальный граф одного миллиона пользователей и их демография. Задача — найти скрытые связи в этом графе. Размер предоставленного графа всего два гигабайта в GZip и, казалось бы, применение технологий больших данных здесь не оправданно, но это только на первый взгляд.

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

Казалось бы, для решение этой задачи впору поднимать небольшой кластер, но спешить не стоит: взяв на вооружение принципы обработки больших данных и соответствующие технологии, задачу можно решить и на обычном ноутбуке. Из принципов мы возьмем «разделяй и властвуй» и «руби хвосты сразу», а в качестве инструмента — Apache Spark.
Читать дальше →

Материал по работе с Apache Lucene и созданию простейшего нечёткого поиска

Reading time4 min
Views46K
Пост расcчитан на начинающих, на людей незнакомых с технологией Apache Lucene. В нем нет материала о том, как устроен Apache Lucene внутри, какие алгоритмы, структуры данных и методы использовались для создания фреймворка. Пост является обучающим материалом-тизером, написанным для того, чтобы показать, как организовать простейший нечёткий поиск по тексту.

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

Как разработчику «влиться» в тему DevOps

Reading time5 min
Views27K


Сегодня мы решили взглянуть на ситуацию с Java- и Python-разработчиком, который задумался о «погружении» в тему DevOps в тот момент, когда он начал все больше отдаляться от привычных инструментов в пользу работы с Oracle Weblogic и shell-скриптами. Он решил совместить свой опыт в области разработки с новым опытом в работе с процессами.

Мы посмотрели на основные советы экспертов в области DevOps на Quora и дополнили рассказ примерами из опыта команды 1cloud.
Читать дальше →

Список ресурсов по машинному обучению. Часть 2

Reading time11 min
Views48K


Продолжим (1, 2) рассматривать тему машинного обучения. Вашему вниманию вторая часть (первая тут) адаптированной подборки полезных материалов.
Читать дальше →

Пишем shell скрипты на Python и можно ли заменить им Bash

Reading time6 min
Views130K
В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

if [ $# -ne "$ARGCOUNT" ]
then
    echo "Usage: `basename $0` filename"
    exit $E_WRONGARGS
fi

Элементарно правда? Интуитивно понятный синтаксис. :)

Тем не менее в python эти конструкции намного проще. Каждый раз когда я пишу что то на баше, то непременно лезу в поисковик чтобы вспомнить как писать простой if, switch или что-то еще. Присвоение я уже запомнил. :) В Python все иначе. Я хоть и не пишу на нем круглые сутки, но никогда не приходилось лезть и смотреть как там сделать простой цикл, потому что синтаксис языка простой и интуитивный. Плюс ко всему он намного ближе к остальным мейнстримовым языкам типа java или c++, чем Bash/Sh.

Также в стандартной и прочих библиотеках Python есть намного более удобные библиотеки чем консольные утилиты. Скажем, вы хотите распарсить json, xml, yaml. Знаете какой я недавно видел код в баше чтобы сделать это? Правильно:

python -c "import json; json.loads..." :)

И это был не мой код. Это был код баше/питоно нейтрального человека.

То же самое с регексом, sed бесспорно удобная утилита, но как много людей помнит как правильно ее использовать? Ну кроме Lee E. McMahon, который ее создал. Да впринципе многие помнят, даже я помню как делать простые вещи. Но, на мой взгляд, в Python модуль re намного удобнее.

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

Велкам под кат.
Читать дальше →

Стек приложений Blockchain

Reading time5 min
Views29K
Здравствуйте, Хабр!

Надеемся не слишком вас шокировать, признавшись в неподдельном интересе к децентрализованным приложениям.



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

Работа с данными: Новая наука

Reading time5 min
Views36K


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

Революция машинного обучения: общие принципы и влияние на SEO

Reading time10 min
Views25K
Предлагаю вашему вниманию перевод статьи "Революция машинного обучения" за авторством Эрика Энжа (Eric Enge).

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

Для справки, рекомендую посмотреть презентацию Рэнда Фишкина «SEO in a Two Algorithm World», где Рэнд подробно рассматривает влияние машинного обучения на поиск и SEO. К этой теме я еще вернусь.

Я также упомяну сервис, который позволяет спрогнозировать шансы ретвита вашего поста на основании следующих параметров: показатель Followerwonk Social Authority, наличие изображений, хэштегов и некоторых других факторов. Я назвал этот сервис Twitter Engagement Predictor (TEP). Чтобы разработать такую систему мне понадобилось создать и обучить нейронную сеть. Вы указываете исходные параметры твита, сервис обрабатывает их и прогнозирует шансы ретвита.
Читать дальше →

CodingFuture + Puppet. Часть I: сеть и сетевой фильтр (cfnetwork + cffirehol)

Reading time14 min
Views10K

Вкратце:


  1. cfnetworkPuppet API для полной настройки сети и фильтра через ресурсы Puppet. Идеально дружит с Hiera и потенциально другими "data providers" в концепции Puppet.
  2. cffirehol — "meta-provider" конкретной реализации настройки фильтра для cfnetwork на базе замечательного генератора FireHOL
  3. Пока поддерживаются только Debian 8+ (Jessie и выше) и Ubuntu 14.04+ (Trusty и выше)

Читать дальше →

Как не надо восстанавливать данные, или чтобы вам тоже так везло

Reading time15 min
Views38K
Все мы периодически сталкиваемся с отказами устройств хранения. В интернете написаны сотни инструкций, как без специального оборудования прочитать все что только возможно с устройств, еще отвечающих на обычные запросы ОС. Но мне долгие годы не везло, диски либо умирали совсем-совсем, либо файловая система была еще доступна и я просто читал все то, что читалось в обычном режиме. И ждал. Должно же было случиться, чтобы умирающий диск попал мне именно в состоянии, требующем большего, чем самые элементарные действия?
И вот этот день настал...

Мониторинг выполнения задач в IPython Notebook

Reading time2 min
Views37K
Хотел бы поделиться простым, но полезным инструментом. Когда много работаешь с данными, часто возникают примитивные, но долгие операции, например: «скачать 10 000 урлов», «прочитать файл на 2Гб, и что-то сделать с каждой строчкой», «распарсить 10 000 html-файлов и достать заголовки». Долго смотреть в зависший терминал тревожно, поэтому долгое время я использовал следующий гениальный код:
def log_progress(sequence, every=10):
    for index, item in enumerate(sequence):
        if index % every == 0:
            print >>sys.stderr, index,
        yield item


Эта функция прекрасна, больше года она кочевала у меня из задачи в задачу. Но недавно я заметил в стандартной поставке Jupyter виджет IntProgress и понял, что пора что-то менять:

Читать дальше →

Обход DPI провайдера на роутере с OpenWrt, используя только busybox

Reading time5 min
Views70K
image
Всем привет, в свете последних новостей от РосКомНадзора решил я глянуть, как дела с блокировками у моего провайдера. Оказалось, что гугловский DNS не спасает, а блокировка работает путем выделения HTTP запроса на запрещенный сайт и последующего дропания пакетов найденной TCP сессии. Однако после небольшого ковыряния оказалось, что для обхода достаточно одного busybox'а. Кому интересно — велком под кат.

Читать дальше →

Телефония для домена

Reading time5 min
Views30K


Изучение протокола SIP привело к пониманию того, что он изначально поддерживает работу с доменными именами. В частности, достаточно создать DNS записи типа SRV и NAPTR для указания SIP клиентам где искать ваш сервер телефонии. В результате мы получаем возможность заводить пользователей типа alex@mysite.ru, director@mysite.ru, 101@mysite.ru и делать звонки напрямую на эти номера. В частности, эти номера могут совпадать с адресом электронной почты.
Читать дальше →

Подключаем резервный канал интернет в роутере с прошивкой dd-wrt

Reading time9 min
Views31K
Неприятно, если у провайдера авария и у вас дома пропал доступ в интернет. Вдвойне неприятно, если в этот момент вы находитесь далеко от дома и вам нужно залезть на домашний компьютер или NAS. В моем случае застраховаться от падения канала мне помогла компания МГТС, заменив устаревшую медь на оптику, с которой я получил ещё один канал интернет, и чтение различных мануалов по dd-wrt. Если с оптикой я помочь не смогу, то готовым решением по dd-wrt я с удовольствием поделюсь.

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


Читать дальше →

«Крупнейший в мире завод Li-Ion аккумуляторов» — Лиотех — всё

Reading time2 min
Views48K

Источник

Печальная новость пришла сегодня от РосНано.
Один из самых мощных — во всех смыслах этого слова — проектов РосНано прогорел и не смог договориться с кредиторами о реструктуризации задолженности.
Краткие подробности из пресс-релиза

Игра для тех, кто учится программировать: Colobot

Reading time3 min
Views40K
Много лет назад друг принес мне поиграть одну игрушку для тех, кто учится программировать. Уже тогда я достаточно хорошо программировал, и подумал, что игра не для меня, но решил попробовать.

Colobot оказалась очень увлекательной игрой, и я до сих пор считаю ее одной из самых интересных из тех, в которые я играл.
Читать дальше →

Размещаем сайт в анонимной сети I2P (+ параноидальный режим)

Reading time6 min
Views32K


Предположим, что ты уже зашел несколько раз в I2P, початился там с ребятами в irc, проникся идеей ламповой невидимой и задумался о собственном (в)кладе в I2P. В раздумьях об этом ты посидел пару дней перед раскрытым блокнотом — узнав попутно из новостей, что не только флибуста, но и рутрекер был запрещен, — и наконец вспомнил про то что ты Сноуден и основатель викиликс (весьма неожиданный поворот, признаюсь, я сам не ожидал от тебя такого), и уже давно ищешь плацдарм для размещения общественно значимой информации. Например, ты решил выкладывать куда-нибудь картинки с котиками, которых ты налайкал в твиттере (Сноуден лайкает котиков в твиттере, ты знал?). И выбор твой пал на I2P.
Читать дальше →

How-to: Объектно-ориентированная система бэктестинга на Python

Reading time10 min
Views13K


Известный британский трейдер и разработчик Майк Халлс-Мур написал в своем блоге статью о том, как создать объектно-ориентированную систему бэктестинга финансовых стратегий торговли на бирже. Мы представляем вашему вниманию главные мысли этого материала.
Читать дальше →

Python и красивые ножки: как я бы знакомил сына с математикой и программированием

Reading time4 min
Views109K
Раньше мы уже искали необычные модели Playboy с помощью библиотеки Python Scikit-learn. Теперь мы продемонстрируем некоторые возможности библиотек SymPy, SciPy, Matplotlib и Pandas на живом примере из разряда занимательных школьных задач по математике. Цель — облегчить порог вхождения при изучении Python библиотек для анализа данных.



Читать дальше →

CNTK — нейросетевой инструментарий от Microsoft Research

Reading time5 min
Views26K
2015 год был очень богат на события, связанные с нейросетевыми технологиями и машинным обучением. Особенно заметный прогресс показали сверточные и рекуррентные сети, подходящие для решения задач в области компьютерного зрения и распознавания речи. Многие крупные компании опубликовали на Github свои разработки, Google выпустил в свет TensorFlow, Baidu — warp-ctc. Группа ученых из Microsoft Research тоже решила присоединиться к этой инициативе, выпустив Computational Network Toolkit, набор инструментов для проектирования и тренировки сетей различного типа, которые можно использовать для распознавания образов, понимания речи, анализа текстов и многого другого. Интригующим при этом является то, что эта сеть победила в конкурсе ImageNet LSVR 2015 и является самой быстрой среди существующих конкурентов.


Читать дальше →

Information

Rating
Does not participate
Location
Kassel, Hessen, Германия
Registered
Activity