Pull to refresh
0
0
Send message

Spring изнутри. Этапы инициализации контекста

Reading time11 min
Views346K


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

Всех, кого интересует внутреннее устройство Spring, прошу под кат.
Читать дальше →
Total votes 57: ↑53 and ↓4+49
Comments16

Введение в Spring Boot Actuator

Reading time10 min
Views104K
Салют, хабровчане! Уже через неделю стартуют занятия в новой группе курса «Разработчик на Spring Framework». В связи с этим делимся с вами полезным материалом в котором рассказано о том, что такое Spring Actuator и чем он может быть полезен.



  1. Что такое Spring Actuator?
  2. Как добавить Spring Actuator в проект Maven или Gradle?
  3. Создание проекта Spring Boot с зависимостью Spring Actuator.
  4. Мониторинг приложений с Spring Actuator Endpoints.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments2

Разработан метод шумоизоляции, гасящий до 94% шумов — рассказываем, как он работает

Reading time4 min
Views93K
Американские инженеры предложили способ шумоизоляции. Он отличается от привычных звукопоглощающих панелей. Это — напечатанное на 3D-принтере пластиковое кольцо.

Total votes 49: ↑40 and ↓9+31
Comments177

Java Agent на службе JVM

Reading time5 min
Views59K

Наверное многие слышали или сталкивались с таким параметром JVM как -javaagent, увидеть этот параметр вы могли используя Jrebel или Plumbr это могло выглядеть например так JAVA_OPTS=-javaagent:[path/to/]jrebel.jar или так -javaagent:/path-to/plumbr.jar
Хотя javaagent появился еще в версии java 1.5, многие разработчики так никогда и не использовали возможности агентов и имеют смутное представление что это такое.
Что же это за агент? Зачем он может нам понадобиться и как написать свой?
Читать дальше →
Total votes 40: ↑40 and ↓0+40
Comments10

Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)

Reading time16 min
Views91K
То, о чем я попытаюсь сейчас рассказать, выглядит как настоящая магия.

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

Итак, магия:


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

Читать дальше →
Total votes 83: ↑82 and ↓1+81
Comments64

Разбор основных концепций параллелизма

Reading time17 min
Views66K
Всем кофе!

Завтра у нас плавненько стартует практически юбилейный поток курс «Разработчик Java» — уже шестой по счёту начиная с апреля прошлого года. А это значит, что мы снова подобрали, перевели интереснейший материал, которым делимся с вами.

Поехали!

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

РАЗДЕЛ 1

Вступление

С момента своего создания Java поддерживает ключевые концепции параллелизма, такие как потоки и блокировки. Эта памятка поможет Java-разработчикам, работающим с многопоточными программами, понять основные концепции параллелизма и способы их применения.

РАЗДЕЛ 2

Концепции

Концепция Описание
Atomicity (атомарность) Атомарная операция — это операция, которая выполняется полностью или не выполняется совсем, частичное выполнение невозможно.
Visibility (видимость) Условия, при которых один поток видит изменения, сделанные другим потоком

Таблица 1: Концепции параллелизма

Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments12

Обучение с подкреплением для самых маленьких

Reading time8 min
Views72K
В данной статье разобран принцип работы метода машинного обучения на примере физической системы. Алгоритм поиска оптимальной стратегии реализован в коде на Python с помощью метода .

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

Задача


С помощью метода «обучение с подкреплением» необходимо научить тележку отъезжать от стены на максимальное расстояние. Награда представлена в виде значения изменения расстояния от стены до тележки при движении. Измерение расстояния D от стены производится дальномером. Движение в данном примере возможно только при определенном смещении «привода», состоящего из двух стрел S1 и S2. Стрелы представляют собой два сервопривода с направляющими, соединенными в виде «колена». Каждый сервопривод в данном примере может поворачиваться на 6 одинаковых углов. Модель имеет возможность совершить 4 действия, которые представляют собой управление двумя сервоприводами, действие 0 и 1 поворачивают первый сервопривод на определенный угол по часовой и против часовой стрелке, действие 2 и 3 поворачивают второй сервопривод на определенный угол по часовой и против часовой стрелке. На рисунке 1 показан рабочий прототип тележки.


Рис. 1. Прототип тележки для экспериментов с машинным обучением
Читать дальше
Total votes 32: ↑32 and ↓0+32
Comments8

Материалы летней школы Deep|Bayes по байесовским методам в глубинном обучении

Reading time3 min
Views25K

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


Многие современные исследовательские статьи активно используют байесовский формализм в сочетании с глубокими нейросетями, приходя к интересным результатам. Мы – исследовательская группа BayesGroup с помощью наших друзей из Сколтеха, а так же при поддержке Высшей Школы Экономики, Сбербанка, Яндекса, Лаборатории Касперского, JetBrains и nVidia – решили поделиться накопленным опытом и устроить летнюю школу по байесовским методам в глубинном обучении Deep|Bayes, где подробно рассказать, что такое байесовские методы, как их комбинировать с глубинным обучением и что из этого может получиться.


Отбор на школу оказался весьма сложным занятием – мы получили более 300 заявок от сильных кандидатов, но вместить смогли только 100 (приятно, что среди участников были не только жители Москвы и Петербурга, но и студенты из регионов, а так же русскоговорящие гости из-за границы). Пришлось отказать многим сильным кандидатам, поэтому для смягчения этого прискорбного факта мы решили сделать доступными максимальное количество материалов, которыми и хотим поделиться с хабраюзерами.

Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments5

Wireshark — приручение акулы

Reading time10 min
Views1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

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

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →
Total votes 207: ↑202 and ↓5+197
Comments60

Латентно-семантический анализ

Reading time4 min
Views98K
Как находить тексты похожие по смыслу? Какие есть алгоритмы для поиска текстов одной тематики? – Вопросы регулярно возникающие на различных программистских форумах. Сегодня я расскажу об одном из подходов, которым активно пользуются поисковые гиганты и который звучит чем-то вроде мантры для SEO aka поисковых оптимизаторов. Этот подход называет латентно-семантический анализ (LSA), он же латентно-семантическое индексирование (LSI)

Латентно-семантический анализ

Читать дальше →
Total votes 104: ↑101 and ↓3+98
Comments27

Латентно-семантический анализ и поиск на python

Reading time7 min
Views57K


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

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

Далее прошу под кат
Total votes 47: ↑46 and ↓1+45
Comments7

Обработка естественного языка. Полезные инструменты

Reading time3 min
Views8.6K
Последнее время на Хабре зачастили статьи про обработку естественного языка.
И так уж совпало, что последнее время я работаю в этой области.
Был очень хорошо освещен sentiment analysis, и теггер частей речи pymorphy.
Но мне хотелось бы рассказать, какие средства для NLP использовал я, и что я нашел нового, чего здесь еще не было
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments8

Современные аспекты представления текстов при анализе естественного языка: классические и альтернативные подходы

Reading time9 min
Views10K

Введение


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

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

Отметим, что приводимые подходы применимы не только к текстам, а вообще к любым объектам, которые можно представить в виде символьных последовательностей, например, какие-нибудь макромолекулы (ДНК, РНК, протеины) из генетики. Всего мы рассмотрим 4 метода:

  1. Признаковое описание.
  2. Попарное наложение (выравнивание) текстов.
  3. Формирование профиля и скрытой марковской модели.
  4. Представление фрагментами.

Итак, приступим.
Читать дальше →
Total votes 23: ↑21 and ↓2+19
Comments2

Как начать работать с GitHub: быстрый старт

Reading time6 min
Views1.2M


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →
Total votes 182: ↑165 and ↓17+148
Comments51

Data Mining в футболе: давайте оцифруем матч и всех посчитаем!

Reading time6 min
Views51K

Тренер следит за вами. Тренер помнит. Тренер не забывает и не прощает.

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

Читать дальше →
Total votes 96: ↑94 and ↓2+92
Comments30

Licenzero: простые движения

Reading time6 min
Views7.2K
Двустороннее движениеЭтим постом мы продолжаем цикл статей о том, как мы делали порнофильтр. Сейчас речь пойдет о попытке классифицировать порнографический контент по характерным движениям в кадре.

Началось это все как просто шутка из разговора. Ведь классифицировать порнографические движения довольно непросто — они слишком разные, чтобы найти в них что-то общее. Но мы попробовали, результат нас вполне устроил, и детектор движения занял свое место в общем классификаторе порнографического видеоконтента.
Читать дальше →
Total votes 80: ↑73 and ↓7+66
Comments38

RapidMiner – Data Mining и BigData у вас дома, быстро и без подготовки (почти)

Reading time8 min
Views46K


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

Закачка, установка и получение первых результатов — минут 20 максимум.

Я говорю про RapidMiner — опенсорсную среду, которая при всей своей бесплатности некисло «уделывает» коммерческих конкурентов. Правда, сразу скажу, что разработчики всё равно её продают, а в опенсорс отдают только предпоследние версии. Дома можно попробовать потому, что есть вообще бесплатные сборки со всей-всей логикой с всего лишь двумя ограничениями — максимальный объем используемой памяти 1 Гб и работа только с обычными файлами (csv, xls и т.п.) в качестве источника данных. Естественно, в малом бизнесе это тоже не проблема.
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments22

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity