Pull to refresh
8
0

обычный software погромист

Send message

Quarkus — сверхзвуковая субатомная Java. Краткий обзор фреймворка

Reading time4 min
Views64K


Введение


Седьмого марта компания RedHat (вскоре — IBM) представила новый фреймворк — Quarkus. По словам разработчиков, этот фреймворк базируется на GraalVM и OpenJDK HotSpot и предназначен для Kubernetes. Стек Quarkus включает в себя: JPA/Hibernate, JAX-RS/RESTEasy, Eclipse Vert.x, Netty, Apache Camel, Kafka, Prometheus и другие.


Цель создания — сделать Java лидирующей платформой для развертывания в Kubernetes и разработки serverless приложений, предоставляя разработчикам унифицированный подход к разработке как в реактивном, так и в императивном стиле.


Если смотреть на эту классификацию фреймворков, то Quarkus где-то между "Aggregators/Code Generators" и "High-level fullstack frameworks". Это уже больше, чем агрегатор, но и до full-stack не дотягивает, т.к. заточен на разработку backend.

Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments25

Quarkus — новый взгляд на Cloud Native Java

Reading time9 min
Views9.1K
Привет, Хабр!

В наступившем новом году мы планируем всерьез развивать темы контейнеров, Cloud-Native Java и Kubernetes. Логичным продолжением этих тем на русском языке будет рассказ о фреймворке Quarkus, уже рассмотренном в хорошей статье на Хабре. Сегодняшняя статья посвящена не столько устройству "субатомной сверхбыстрой Java", сколько тем перспективам, которые Quarkus привносит в Enterprise.
Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments4

Как мы в ЦИАН укрощали терабайты логов

Reading time6 min
Views18K


Всем привет, меня зовут Александр, я работаю в ЦИАН инженером и занимаюсь системным администрированием и автоматизацией инфраструктурных процессов. В комментариях к одной из прошлых статей нас попросили рассказать, откуда мы берем 4 ТБ логов в день и что с ними делаем. Да, логов у нас много, и для их обработки создан отдельный инфраструктурный кластер, который позволяет нам оперативно решать проблемы. В этой статье я расскажу о том, как мы за год адаптировали его под работу с постоянно растущим потоком данных.
Читать дальше →
Total votes 37: ↑36 and ↓1+35
Comments42

Нейросети и глубокое обучение: онлайн-учебник, послесловие: существует ли простой алгоритм для создания интеллекта?

Reading time13 min
Views7.1K

В данной книге мы фокусировались на основных деталях устройства нейросетей: как они работают, как их можно использовать в задачах распознавания последовательностей. Этот материал возможно непосредственно применять на практике. Но, конечно, одна из причин интереса к НС – надежда, что когда-нибудь они смогут выйти за пределы простого распознавания последовательностей. Возможно, их, или какие-то другие подходы на основе цифровых компьютеров, в итоге можно будет применять для создания думающих машин, способных поспорить с человеческим интеллектом или превзойти его? Эта идея выходит далеко за пределы обсуждаемого в книге материала – или ноу-хау любого человека на планете. Но порассуждать на эту тему всегда интересно.

Было очень много споров по поводу того, могут ли компьютеры в принципе достичь уровня человеческого интеллекта. Я не буду рассматривать этот вопрос. Несмотря на дебаты, я считаю, что не существует серьёзных сомнений в возможности создания разумного компьютера – хотя эта задача может оказаться чрезвычайно сложной, и, возможно, выйти далеко за пределы существующих технологий – а текущие критики однажды окажутся в положении виталистов прошлого.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments11

Несколько историй из жизни JSOC CERT, или Небанальная форензика

Reading time7 min
Views7.4K


Мы в JSOC CERT расследуем инциденты. Вообще все 170 человек в JSOC занимаются расследованиями, но в руки экспертов CERT попадают наиболее технологически сложные случаи. Как, к примеру, обнаружить следы вредоноса, если злоумышленник прибрал за собой? Каким образом найти «волшебника», удалившего важные бизнес-документы с файлового сервера, на котором толком не настроено логирование? Ну и на сладкое: как может злоумышленник без проникновения в сеть получить пароли от десятков не связанных между собой доменных учеток? Подробности, как всегда, под катом.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments7

Записки пентестера: случаи на охоте

Reading time4 min
Views16K
image

— Ребята, вы круты! Так нас еще никто не опускал!
— Мы старались.


Да, жизнь охотников за уязвимостями полна специфических комплиментов от заказчиков и не менее специфических ситуаций. За прошедший год мы выполнили более пятидесяти тестов на проникновение в разные компании и, надо сказать, повидали всякое. Один пароль ко всем учеткам и системам, открытое хранение паролей в базе данных, остатки отладочного функционала в боевой среде… Поэтому, когда наши коллеги из JSOC CERT поведали несколько историй по расследованию киберинцидентов, мы в отделе пентеста решили не отставать и показать другую сторону «баррикад»: инфраструктуру заказчика глазами хакера. Сегодня расскажем о наиболее интересных за последнее время внешних пентестах, когда мы должны были проникнуть во внутренний периметр заказчика, имея только список его внешних IP-адресов и доменных имен.
Читать дальше →
Total votes 53: ↑50 and ↓3+47
Comments9

Новая иммунотерапия убрала все опухоли у женщины с метастатическим раком молочной железы

Reading time4 min
Views66K


Работа, опубликованная в Nature Medicine учёными из National Cancer Institute (NCI), описывает новый тип иммунотерапии, который привёл к полному исчезновению опухолей у женщины с метастатическим раком молочной железы, которой осталось всего несколько месяцев жизни.
Результаты показывают, как естественные опухолевые инфильтрирующие лимфоциты (TIL) были извлечены из опухоли пациента, выращены вне её тела, чтобы увеличить их количество, и введены обратно пациенту для борьбы с раком. Пациент ранее получил несколько форм лечения, включая гормональную терапию и химиотерапию, но никакая из них не остановила прогрессирование рака. После лечения все опухоли пациентки исчезли, и через 22 месяца она все ещё находится в ремиссии.
Читать дальше →
Total votes 114: ↑109 and ↓5+104
Comments145

Отчёт с Java Virtual Machine Language Summit 2019

Reading time14 min
Views6.2K

Сегодня закончился двенадцатый саммит JVM LS. Как обычно, это было хардкорное мероприятие с техническими докладами, посвящёнными виртуальным машинам и языкам, которые на них работают. Как обычно, саммит проходил в Санта-Кларе, в кампусе компании Оракл. Как обычно, желающих попасть сюда существенно больше, чем мест: количество участников не превышает 120. Как обычно, не было никакого маркетинга, только потроха.


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


Если вы не попали на саммит, не беда. Большинство докладов выкладывают на YouTube практически сразу послед саммита. Собственно они уже доступны. Чтобы было проще сориентироваться, я опишу здесь вкратце все доклады и воркшопы, на которых удалось поприсутствовать.

Total votes 40: ↑40 and ↓0+40
Comments5

CMake и C++ — братья навек

Reading time11 min
Views78K

Дружба навек


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


Многие ругают CMake, и часто заслуженно, но если разобраться, то не всё так плохо, а в последнее время очень даже неплохо, и направление развития вполне позитивное.


В данной заметке я хочу рассказать, как достаточно просто организовать заголовочную библиотеку на языке C++ в системе CMake, чтобы получить следующую функциональность:


  1. Сборку;
  2. Автозапуск тестов;
  3. Замер покрытия кода;
  4. Установку;
  5. Автодокументирование;
  6. Генерацию онлайн-песочницы;
  7. Статический анализ.

Кто и так разбирается в плюсах и си-мейке может просто скачать шаблон проекта и начать им пользоваться.
Читать дальше →
Total votes 52: ↑49 and ↓3+46
Comments51

Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS

Reading time21 min
Views27K
История встречи статического анализатора PVS-Studio с кодом операционной системы Haiku уходит в далёкий 2015-й год. Это был интереснейший эксперимент и полезный опыт для команд обоих проектов. Почему эксперимент? Анализатора для Linux тогда не было и не будет ещё полтора года. Но труды энтузиастов нашей команды были вознаграждены: мы познакомились с разработчиками Haiku и повысили качество кода, пополнили базу редкими ошибками программистов и доработали анализатор. Сейчас проверить код Haiku на наличие ошибок можно легко и быстро.

Picture 3

Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments45

Мой второй день с Haiku: восхищен, но пока не готов перейти

Reading time11 min
Views26K


TL;DR: я восхищен Haiku, но доработать есть что


Вчера я изучал Haiku — операционную систему, которая меня приятно удивила. День второй. Поймите правильно: я все еще восхищен тем, насколько легко она делает то, что тяжело дается на рабочих окружениях для Linux. Горю желанием узнать, как она работает, а также полон энтузиазма использовать ее ежедневно. Правда, день для полного перехода еще не наступил: страдать не хочется.

Total votes 56: ↑53 and ↓3+50
Comments35

Доступное объяснение алгоритма коллапса волновой функции

Reading time9 min
Views34K
Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные.


(Источник)

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


(Источник)

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

Большинство реализаций и объяснений коллапса волновой функции — это полная, оптимизированная по скорости версия алгоритма. Разумеется, все они важны и необходимы, но в них сложно разобраться с нуля. В этом посте я буду объяснять всё понятным я простым языком, сосредоточившись на версии Wavefunction с ограничениями, которую я назвал Even Simpler Tiled Model. Кроме того, я выложил пример реализации ESTM на Github. Код в нём неэффективный и медленный, но очень хорошо читаемый и подробно прокомментирован. Как только вы разберётесь в технологии, лежащей в основе ESTM, то станете ближе к пониманию более сложных версий алгоритма. Если хотите понять алгоритм коллапса волновой функции, то эта статья будет хорошим началом.
Читать дальше →
Total votes 56: ↑55 and ↓1+54
Comments19

Модели дженериков и метапрограммирования: Go, Rust, Swift, D и другие

Reading time16 min
Views28K

В некоторых сферах программирования нормально хотеть написать такую структуру данных или алгоритм, которые могут работать с элементами разных типов. Например, список дженериков или алгоритм сортировки, которому нужна только функция сравнения. В разных языках предложены всевозможные способы решения этой задачи: от простого указания программистам на подходящие общие функции (С, Go) до таких мощных систем дженериков, что они стали полными по Тьюрингу (Rust, C++). В этой статье я расскажу о системах дженериков из разных языков и их реализации. Начну с решения задачи в языках без подобной системы (вроде С), а затем покажу, как постепенное добавление расширений приводит к системам из других языков.
Читать дальше →
Total votes 112: ↑110 and ↓2+108
Comments14

Какой язык — D, Go или Rust имеет лучшие перспективы заменить C и почему?

Reading time7 min
Views71K
Несмотря на мой статус и очевидную предвзятость как одного из создателей D, я постараюсь отвечать откровенно; Я следовал путям Go и Rust, и я абсолютно точно знаю, где стирают грязное белье в D. Я поощряю людей на аналогичных позициях в сообществах Rust и Go чтобы и они делились своим мнением. Так вот.

Для начала, где то в вопросе должен фигурировать и C++. Должен ли он быть заменен вместе с С, или же он один из кандидатов на замещение С, но в любом случае С++ это ключевой элемент уравнения. Это ближайший язык к С и очевидный шаг вперед. Учитывая возраст С++, я в дальнейшем полагаю в этом вопросе что С++ вместе с С является целью для замены.
Читать дальше →
Total votes 109: ↑104 and ↓5+99
Comments393

Португалия. Лучшие пляжи и тысяча стартапов в год

Reading time9 min
Views28K

Всем привет


Вот так выглядит место, где проводится WebSummit:

Parque das Nações
Parque das Nações

И именно такой я впервые увидел Португалию, приехав сюда в 2014 году. И теперь я решил поделиться с вами тем, что я видел и узнавал на протяжении последних 5 лет, а также чем примечательна страна для IT профессионала.
Читать дальше →
Total votes 68: ↑66 and ↓2+64
Comments51

Онлайн игра с реальными RC роботами в Чернобыле. Часть 2

Reading time9 min
Views62K
Это продолжение статьи «Как мы запустили роботов в маленький Чернобыль» про игровую концепцию Remote Reality.

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

Выход на Kickstarter


Как вы помните, в предыдущей статье, построив 10 готовых роботов, мы решили выйти на краудфандинговую платформу «kickstarter». Изначально мы понимали, что «кикстартер» это не наш «формат». Нам нечего было предложить покупателям, кроме игрового времени, но это был замечательный повод заявить о себе и, как оказалось, мы не ошиблись. Рассказывать о «кикстартере» можно долго. Мы были «наивными детьми», которые верили, что увидев наш проект, люди сразу оценят его по достоинству и начнут платить нам деньги. Мы наняли консультанта, который много времени уделил оформлению страницы и подаче материала, не рассказав нам, что с «кикстартером» не все так просто.

image

За неделю до начала кампании мы запустили рекламу на фейсбуке, сделали рассылку анонса «по друзьям». В общем, сделали все, как советовали статьи в Интернете. Также, мы «вычитали», что первый и второй день на «кикстартере» приносят максимальный результат. Первый день нам не принес… ничего, второй… тоже ничего и к концу недели мы так и не собрали ни одного доллара. Аналитика показывала, что причина банальна — к нам на страницу просто никто не заходит. Позже мы узнали, что для успешной кампании нужны солидные расходы на маркетинг, рассылки по базам бэкеров итд.
Читать дальше →
Total votes 260: ↑254 and ↓6+248
Comments283

Как мы запустили роботов в маленький Чернобыль. Часть 1

Reading time8 min
Views53K

Рождение концепции Remote Reality


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


image

Идея изначально показалась нам достаточно интересной и не сложной в реализации. Мы тут же «засели» за поиски похожих проектов и с удивлением обнаружили, что никто, ничего подобного не делал. Это казалось странным, ведь идея лежала буквально «на поверхности». Мы нашли множество следов любительских проектов создания прототипов в виде шасси с камерой на основе Arduino, но никто так и не довел ни один проект до логического завершения. Позднее, преодолевая казалось бесконечные трудности и проблемы, мы поняли причину отсутствия аналогов, но изначально идея нам казалось крайне простой и быстро реализуемой.


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


Мы сразу решили, что эти мысли укладываются больше в концепцию развлекательного аттракциона, а не компьютерной игры. Люди любят развлечения и хотят чего-то нового, и мы знали, что им предложить. Как и в любом бизнесе, сразу всплыл вопрос окупаемости, ведь на первый взгляд кажется, что наша физическая модель ограничена количеством роботов. Но умножив роботов на 24 часа и на цену часа в 5-10 долларов, сомнения отпали. Финансовая модель не являлось «Клондайком», но вполне окупалась даже при 10% загрузке.


Очень быстро у нас в голове появилось название новой концепции: Remote Reality, по аналогии с Virtual Reality и Augmented Reality.

Читать дальше →
Total votes 215: ↑214 and ↓1+213
Comments158

Монады с точки зрения программистов (и немного теории категорий)

Reading time14 min
Views48K

Введение


Как узнать, что человек понял, что такое монады? Он сам вам об этом расскажет в первые 5 минут общения и обязательно попробует объяснить. А ещё напишет об этом текст и по возможности где-нибудь его опубликует, чтобы все остальные тоже поняли, что такое монады.


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


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


Моё изложение во многом основывается на книге Бартоша Милевски "Теория категорий для программистов", которая создавалась как серия блогпостов, доступна в PDF, а недавно вышла в бумаге.


Примеры приводятся на Haskell, предполагается, что читатель знаком с синтаксисом и основными понятиями языка. В упомянутой книге есть примеры и на С++, можете сравнить чистоту и понятность кода.


Читать дальше →
Total votes 56: ↑52 and ↓4+48
Comments267

Многомировая интерпретация квантовой механики

Reading time9 min
Views57K

Наверняка большинство из вас нет-нет да и встречало в научно-популярной литературе упоминания о "многомировой интерпретации" квантовой механики (ММИ). Ее любят помянуть и в комментариях на Хабре, однако зачастую в неверном ключе или с серьезными неточностями.


image

Попробуем разобраться, что же к чему в ММИ.

Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments364

«Пора валить из фронтенда»: Андрей Ситник о стагнации сообщества, опенсорсе и не только

Reading time27 min
Views84K


Андрей Ситник из Злых марсиан — одно из самых известных российских имён во фронтенде: у его проектов PostCSS и Автопрефиксер счёт GitHub-звёзд идёт на десятки тысяч. Но поскольку Андрей живёт в Нью-Йорке, а путешествует по всей планете, застать в России его можно нечасто.

В мае он будет в Петербурге на конференции HolyJS, и по этому поводу его подробно расспросили участники программного комитета HolyJS Дмитрий DmitryMakhnev Махнёв и Максим Юзва. Почему Андрей считает, что фронтенд стагнирует, а код наших проектов излишне разбухший? В чём различия IT-сообществ разных стран? Как учить английский и почему это менее важно, чем кажется? Куда пропал проект Logux, презентованный на HolyJS ещё в 2016-м?
Читать дальше →
Total votes 102: ↑88 and ↓14+74
Comments296

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer, Fullstack Developer
Senior
Java
Git
SQL
C++
Python
Linux
Rust
OOP
Docker
Kubernetes