Pull to refresh
4
0
Kirill Levitskiy @KirillLevitskiy

Пользователь

Send message

Введение в Spring Boot: создание простого REST API на Java

Reading time 8 min
Views 383K

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


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


  • В зависимости от типа создаваемого приложения (Spring MVC, Spring JDBC, Spring ORM и т.д.) импортировать необходимые Spring-модули
  • Импортировать библиотеку web-контейнеров (в случае web-приложений)
  • Импортировать необходимые сторонние библиотеки (например, Hibernate, Jackson), при этом вы должны искать версии, совместимые с указанной версией Spring
  • Конфигурировать компоненты DAO, такие, как: источники данных, управление транзакциями и т.д.
  • Конфигурировать компоненты web-слоя, такие, как: диспетчер ресурсов, view resolver
  • Определить класс, который загрузит все необходимые конфигурации
Читать дальше →
Total votes 11: ↑6 and ↓5 +1
Comments 19

SQL для аналитики — рейтинг прикладных задач с решениями

Reading time 11 min
Views 44K

Привет, Хабр! У кого из вас black belt на sql-ex.ru, признавайтесь? На заре своей карьеры я немало времени провел на этом сайте, практикуясь и оттачивая навыки. Должен отметить, что это было увлекательное и вознаграждающее путешествие. Пришло время воздать должное.

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

Читать далее
Total votes 23: ↑21 and ↓2 +19
Comments 5

Сам себе пейджинговый оператор

Reading time 2 min
Views 89K

Привет, в этом посте я хочу рассказать как я загорелся одной больной идеей, и создал свою пейджинговую сеть в 2021 году.

В ноябре 2020 на Авито я наткнулся на объявление о продаже пейджера Motorolla Advisor всего за 100 рублей и рядом со мной. По гуглив подобные объявления, я понял что этот раритет отдается даром. Спустя всего час в руках у меня было чудо техники из 90х. И волна ностальгии, по школьным годам нахлынула на меня, с таким прибором я ходил еще в 1-3 классе. Пейджер был в идеальном состоянии почти ни царапинки. И тут в моей голове забегали тараканы, и я захотел отправить на него сообщение любым способом .

Читать далее
Total votes 175: ↑175 and ↓0 +175
Comments 182

Что послушать, когда пишешь код: бесплатные миксы, заглушка для второго монитора и эмбиент-плеер

Reading time 3 min
Views 18K

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

Читать далее
Total votes 16: ↑13 and ↓3 +10
Comments 41

Обзор ESB-систем ServiceMix и Fuse

Reading time 4 min
Views 38K
Представляю вашему вниманию небольшой обзор систем ESB (Enterprise Service Bus) на основе Apache Camel: Apache ServiceMix и Red Hat JBoss Fuse. Эти две системы построены на одних и тех же компонентах и обладают схожими возможностями. Более того, в большинстве случаев, они взаимозаменяемы. Apache ServiceMix разрабатывается open-source сообществом, Red Hat JBoss Fuse компанией Red Hat. По большей части, это одни и те же люди.


Для начала, разберемся что такое ESB и зачем системы такого класса используются в информационной инфраструктуре предприятий. На современных предприятиях используется всё большей приложений различного класса: ERP, CRM, BPM, DWH, ECM и ещё множество трех-буквенных аббревиатур. Все эти приложения используют для интеграции различные протоколы и различные форматы данных. Для того чтобы связать все эти системы между собой и используется ESB.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 18

Неужели нельзя обойтись без кафок и рэббитов, когда принимаешь 10 000 ивентов в секунду

Reading time 7 min
Views 29K

Однажды я вел вебинар про то, как принимать 10 000 ивентов в секунду. Показал картинку, зрители увидели сиреневый слой, и началось: «Ребят, а зачем нам все эти кафки и рэббиты, неужели без них не обойтись»? Мы и ответили: «Зачем-зачем, чтобы пройти собес!»

Очень смешно, но давайте я все-таки объясню.

 

Читать далее
Total votes 50: ↑43 and ↓7 +36
Comments 44

Создаем приложение на Node.JS, Express и Typescript с Jest, Swagger, log4js и Routing-controllers

Reading time 7 min
Views 53K
Это пошаговая инструкция создания приложение на Node.JS, с использованием typescript и express. Новое приложение создается не часто, отсюда забываются шаги по его созданию. И я решил написать некую шпаргалку, в помощь самому себе и другим разработчикам. Помимо шагов, я так же снял небольшие видео ролики для наглядности. Существуют уже готовые фреймворки для Node.JS, которые уже содержат в себе все необходимые пакеты и можно работать с ними, но это уже другой путь. Идея была в том, чтобы не зависить целиком от какого-то фреймворка и в случае необходимости менять одни пакеты на другие.
Читать дальше →
Total votes 6: ↑4 and ↓2 +2
Comments 14

Взлом хешей с помощью HashCat

Reading time 4 min
Views 76K


Hashcat – это самая быстрая и передовая утилита для восстановления паролей, поддерживающая пять уникальных режимов атаки для более чем трёхсот алгоритмов хеширования.


Hashcat поддерживает:


  • Процессоры:
    • CPU
    • GPU
  • Другие аппаратные ускорители в:
    • Linux
    • Windows
    • macOS

Также hashcat имеет средства, которые помогают включить распределенный взлом паролей.


HashCat поддерживает следующие режимы атаки:


  • Брутфорс
  • Комбинаторная атака
  • Гибридная атака
  • Атака по Маске
  • Перестановочная атака
  • Атака на основе правил
  • Табличная атака
  • Атака с переключением регистра

С помощью данной команды можно проверить все доступные параметры:


hashcat –h


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


Содержание:


  • MD5-хеши
  • MD5-хеши с солью
  • Хеш-суммы MD5Crypt
  • HMAC-SHA1 key
    • Хеш-суммы SHA-1
  • Хеши SHA2–384
  • Хеши SHA3–512
  • NTLM-хеши
  • CRC32-хеши

MD5-хеши


Убедитесь, что входные хеши имеют совместимый с hashcat формат.


Пример:


8743b52063cd84097a65d1633f5c74f5 >hash.txt


Команда:


hashcat -m 0 -a 0 hash.txt passwordlist.txt
Читать дальше →
Total votes 12: ↑7 and ↓5 +2
Comments 16

Музыка фоном: помогают ли сконцентрироваться Моцарт, белый шум и тяжелый рок?

Reading time 5 min
Views 27K

За время пандемии работы у разработчиков Учи.ру только прибавилось: по данным SimilarWeb за апрель, платформа стала вторым по популярности образовательным сайтом в мире. А вот сконцентрироваться на ней из дома получается с переменным успехом. Мы проверили на себе самые разные лайфхаки и хотим поделиться результатами. Сегодня разбираемся с одним из самых многообещающих способов — музыкой.

Читать далее
Total votes 15: ↑11 and ↓4 +7
Comments 34

Обнаружение лиц в Node.js с использованием Rust и WebAssembly

Reading time 7 min
Views 4.1K

В последней статье мы рассказывали, как вызывать функции Rust из Node.js. Сегодня мы расскажем, как написать приложение AIaaS (англ. Artificial Intelligence as a Service — «искусственный интеллект как услуга») на базе Node.js.

Большинство приложений с искусственным интеллектом сейчас разрабатываются на языке Python, а главным языком программирования для веб-разработки является JavaScript. Для того чтобы реализовать возможности ИИ в вебе, нужно обернуть алгоритмы ИИ в JavaScript, а именно в Node.js.

Однако ни Python, ни JavaScript сами по себе не подходят для разработки ИИ-приложений с большим объемом вычислений. Это высокоуровневые, медленные языки со сложной средой выполнения, в которых удобство использования достигается за счет снижения производительности. Для решения этой проблемы блоки интеллектуальных вычислений в Python оборачиваются в нативные C/C++-модули. Точно так же можно сделать и в Node.js, но мы нашли решение получше — WebAssembly.

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

Читать далее
Total votes 10: ↑9 and ↓1 +8
Comments 3

Контейнеризация понятным языком: от самых азов до тонкостей работы с Kubernetes

Reading time 17 min
Views 94K


Чем контейнеры отличаются от виртуальных машин, почему Docker настолько популярен, что такое Kubernetes и в чём его преимущества и недостатки. В интервью АйТиБороде СТО «Слёрма» Марсель Ибраев и старший инженер Southbridge Николай Месропян рассказали о контейнеризации понятным языком. Мы перевели интервью в текст для тех, кому лень смотреть.
Мне не лень смотреть, мне лень читать

Читать дальше →
Total votes 24: ↑19 and ↓5 +14
Comments 6

Как писать статьи в IT-журналы и блоги

Reading time 17 min
Views 9.2K

Недавно на нашем ютуб-канале выступил Андрей Письменный, главный редактор Xakep.ru.

Письменный автор сотен статей, посвященных технологиям, науке и бизнесу. В роли редактора он помогал авторам обрести свой слог, оформлять идеи в связные истории.

В этом выступлении он поделится с вами опытом и приемами, которые пригодятся в работе с текстом о технологиях.

Делимся записью эфира и расшифровкой.
Total votes 37: ↑31 and ↓6 +25
Comments 10

Мой маленький Kubernetes: настраиваем тестовый кластер в VirtualBox

Reading time 13 min
Views 35K

За последние пару лет мне довольно часто приходилось сталкиваться с Kubernetes, однако обычно это всегда происходило с позиции разработчика. Посмотреть список подов, их статусы, логи и т.п. В общем, ничего сложного.

Недавно я решил заняться изучением Kubernetes чуть глубже, чтобы лучше понимать, как он работает и что умет. Но тут возникла очевидная проблема: нужна какая-то песочница, в которой можно было бы экспериментировать, не боясь при этом что-то сломать, а ещё лучше иметь возможность в любой момент откатиться назад.

Обычно изучение Kubernetes стоит начинать с minikube - консольной утилиты, которая умеет быстро создавать кластер из одного узла с использованием VirtualBox. Это самый лучший вариант для быстрого старта.

Но есть и другой вариант. Можно взять VirtualBox, создать несколько виртуальных машин, например, с Ubuntu Server и настроить небольшой кластер Kubernetes прямо на своём домашнем компьютере.

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

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

Осторожно, трафик! В статье очень много скриншотов.

Читать далее
Total votes 17: ↑15 and ↓2 +13
Comments 35

PHP class для скачки и закачки файлов на сервер

Reading time 5 min
Views 9.2K

Предисловие


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

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


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


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


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

Читать дальше →
Total votes 28: ↑8 and ↓20 -12
Comments 31

Как изменился английский Илона Маска за 20 лет

Reading time 6 min
Views 50K

Илон Маск — одна из самых ярких личностей XXI века. Инженер, предприниматель и миллионер с просто невообразимыми идеями. PayPal, Tesla, SpaceX — это всё его детища, и бизнесмен не собирается останавливаться только на нескольких проектах, которые стали всемирно успешными. Он вдохновляет миллионы людей своим примером и доказывает, что даже один человек вполне способен изменить мир к лучшему.

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

В этой статье мы подробно разберем английский язык Илона Маска, его акцент и особенности произношения слов. А также проанализируем, как за последние 20 лет изменилась английская речь бизнесмена. Итак, поехали.
Total votes 63: ↑53 and ↓10 +43
Comments 77

Зачем нужны скрытые игровые механики

Reading time 4 min
Views 19K


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

Формирование этих ощущений — вот в чем суть геймдизайна. Каждый твист или игровая механика помогает создавать эмоции. Большинство из них очевидны для игрока, но иногда приходится хитрить. Разработчики скрывают определенные механики, чтобы подарить игроку лучший экспириенс. Они есть, работают в фоне, но игрока об этом никогда не информируют.
Читать дальше →
Total votes 61: ↑60 and ↓1 +59
Comments 45

Самые страшные яды

Reading time 24 min
Views 346K


Привет, %username%

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

Но я не хочу перечислять то же самое. Я не хочу меряться дозами LD50 и претендовать на оригинальность.

Я хочу написать про те яды, с которыми ты, %username%, имеешь большой риск столкнуться каждый день. И которые не так просты, как их ближайшие собратья.

Врага надо знать в лицо. И надеюсь — будет интересно. А если окажется интересно — то возможно, что и осилишь вторую часть.

Итак — моя смертельная десятка!
Читать дальше →
Total votes 308: ↑292 and ↓16 +276
Comments 609

Руководство по Kubernetes, часть 1: приложения, микросервисы и контейнеры

Reading time 16 min
Views 160K
По нашей просьбе Хабр создал хаб Kubernetes и нам приятно разместить первую публикацию в нём. Подписывайтесь!

Kubernetes — это просто. Почему же банки платят мне за работу в этой сфере большие деньги, в то время как любой может освоить эту технологию буквально за несколько часов?


Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 18

Подробный разбор решения crackme01_x64

Reading time 5 min
Views 25K
Данная статья рассчитана на начинающих, интересующихся обратной разработкой, и имеющих базовые представления о работе ЦП, языке ассемблера. Этот crackme относительно старый и простой, но при его решении применяются в основном те же приемы, что и при решении более сложных. На просторах Сети можно найти несколько статей с его разбором такие как эта, а еще он здесь упоминается(crackme то с историей), однако те решения не такие подробные как это. В свое время мне сильно не хватало такого построчного разбора, куда можно было бы заглянуть, когда запутался и не понимаешь что делает тот или иной участок кода. Если этот пост окажется полезным хотя бы для одного человека, значит я не зря старался. Все скрины(кроме первого) кликабельны. Приятного прочтения.

Итак, перед нами простой crackme, запустим его и посмотрим как он работает.


Ага, все довольно просто, мы должны ввести правильный серийник. Теперь откроем программу в дизассемблере. Как правило дизассемблерные листинги, даже относительно простых программ, довольно объемны. Для определения той части кода, которая проверяет ввод серийника, найдем где в памяти программы хранится строка с сообщением об ошибке «Fail, Serial is invalid !!!» и какой код к этой строке обращается.
Читать дальше →
Total votes 49: ↑47 and ↓2 +45
Comments 19

Сервис-ориентированная архитектура (SOA)

Reading time 14 min
Views 180K


Сервис-ориентированная архитектура (service-oriented architecture, SOA) придумана в конце 1980-х. Она берёт своё начало в идеях, изложенных в CORBA, DCOM, DCE и других документах. О SOA написано много, есть несколько её реализаций. Но, по сути, SOA можно свести к нескольким идеям, причём архитектура не диктует способы их реализации:


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

SOA — это набор архитектурных принципов, не зависящих от технологий и продуктов, совсем как полиморфизм или инкапсуляция.

Читать дальше →
Total votes 28: ↑27 and ↓1 +26
Comments 2
1

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity