Search
Write a publication
Pull to refresh
22
0
Алексей Ушаровский @usharik

Разработчик

Send message

Как я Telegram ломал

Reading time4 min
Views72K
Как-то раз я взломал один из серверов telegram. Не то чтобы это было нечто интересное, да и сами уязвимости стандартные. Удивление скорее вызывает факт того, как телеграм относится к безопасности и почему на протяжении многих лет уязвимостями так никто и не воспользовался. Но, не ошибается тот, кто ничего не делает!


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

Несколько малоизвестных возможностей docker-compose

Reading time5 min
Views30K

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


Я решил сделать некую подборку мало освещенных возможностей, особенностей. Статья не претендует на уникальность, это и мне, как памятка, и возможно некоторым падаванам поможет, начинающим свой путь с docker-compose.

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

GitHub Package Registry будет поддерживать пакеты Swift

Reading time1 min
Views2.2K
10 мая мы запустили ограниченный бета-тест GitHub Package Registry, службы управления пакетами, которая позволяет легко публиковать публичные или частные пакеты рядом с исходным кодом. В настоящее время сервис поддерживает знакомые инструменты управления пакетами: JavaScript (npm), Java (Maven), Ruby (RubyGems), .NET (NuGet), образы Docker, а также многое другое.

Рады анонсировать, что добавим поддержку пакетов Swift в GitHub Package Registry. Пакеты Swift позволяют легко делиться вашими библиотеками и исходным кодом в собственных проектах и с сообществом Swift. Работать над этим мы будем в партнерстве с ребятами из Apple.

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

Разрабатывайте плагины для продуктов JetBrains и продавайте их на JetBrains Marketplace

Reading time4 min
Views10K
Мы запустили JetBrains Marketplace — новую платформу, на которой разработчики могут продавать и лицензировать свои плагины к продуктам JetBrains. Теперь у авторов плагинов появится возможность уделять больше времени именно разработке — им не придется придумывать свои решения по лицензированию и заниматься продажами. А пользователям станет доступно еще больше удобных инструментов, которые помогут работать эффективнее.

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

Heroku + Docker + Spring Boot

Reading time5 min
Views21K
Далее речь пойдет о моем опыте запуска докеризованного Spring Boot приложения на бесплатных виртуальных машинах облачного сервиса Heroku. Одно из главных преимуществ этого провайдера в том, что он дает возможность создавать бесплатные виртуалки с ограничением по часам работы, причем для этого достаточно только регистрации. Даже платежные реквизиты подтверждать не требуется, хотя если их подтвердить можно получить дополнительные бонусы. Подробнее про их прайс можно прочитать здесь. С моей точки зрения их политика по части бесплатных ресурсов почти не имеет аналогов.

И так, после того, как вы создали на Heroku приложение есть несколько способов развернуть в нем ваш код
Читать дальше →

10 советов по использованию ExecutorService

Reading time13 min
Views159K
Предлагаю читателям «Хабрахабра» перевод публикации «ExecutorService — 10 tips and tricks».



Абстракция ExecutorService была представлена еще в Java 5. На дворе шел 2004 год… На секунду – сейчас Java 5 и 6 больше не поддерживаются и Java 7 готовится пополнить список. А многие Java-программисты по-прежнему не в полной мере понимают как работает ExecutorService. В вашем распоряжении множество источников, но сейчас я хотел бы рассказать о малоизвестных тонкостях и практиках по работе с ней.
Читать дальше →

Вариантность в программировании

Reading time6 min
Views124K

До сих пор не можете спать, пытаясь осмыслить понятия ковариантности и контравариантности? Чувствуете, как они дышат вам в спину, но когда оборачиваетесь ничего не находите? Есть решение!


Меня зовут Никита, и сегодня мы попытаемся заставить механизм в голове работать корректно. Вас ожидает максимально доступное рассмотрение темы вариантности в примерах. Добро пожаловать под кат.

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

Пришел, увидел, обобщил: погружаемся в Java Generics

Reading time17 min
Views362K
Java Generics — это одно из самых значительных изменений за всю историю языка Java. «Дженерики», доступные с Java 5, сделали использование Java Collection Framework проще, удобнее и безопаснее. Ошибки, связанные с некорректным использованием типов, теперь обнаруживаются на этапе компиляции. Да и сам язык Java стал еще безопаснее. Несмотря на кажущуюся простоту обобщенных типов, многие разработчики сталкиваются с трудностями при их использовании. В этом посте я расскажу об особенностях работы с Java Generics, чтобы этих трудностей у вас было поменьше. Пригодится, если вы не гуру в дженериках, и поможет избежать много трудностей при погружении в тему.


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

Взлет Хелидона

Reading time6 min
Views6.7K
Привет, Хабр! Представляю вашему вниманию перевод статьи Дмитрия Корнилова Helidon Takes Flight. Я не являюсь сотрудником Oracle, но мне показалась интересной статья о новом, набирающем популярность, типе фреймворков. Итак, поехали…

Сегодня хороший день. Сегодня мы представляем новый Java-фреймворк из семейства MicroProfile для реализации микросервисов. Проект Helidon — это новый Java-фреймворк от Oracle.

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


Введение


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

Уже предпринимаются попытки создать стандартные микросервисные системы из MicroProfile. MicroProfile довольно популярен в сообществе Java EE / Jakarta EE и предоставляет опыт разработки, подобный Java EE. Нам нравится идея и мы поддерживаем эту инициативу. Helidon реализует MicroProfile 1.1. Мы продолжим работу над внедрением новых версий MicroProfile и намерены поддерживать соответствующие стандарты Jakarta EE в этой области, поскольку они уже описаны.
Читать дальше →

Прошлое и будущее Java в интервью с Саймоном Риттером из Azul

Reading time17 min
Views11K

Представляем вам интервью с Саймоном Риттером — человеком, который работал над Java с самого начала и продолжает делать это в роли заместителя технического директора Azul — компании, работающей над виртуальной машиной Zing JVM и одним из лучших сборщиков мусора, C4 (Continuously Concurrent Compacting Collector).


  • Целая жизнь вместе с Java;
  • Как оставаться на острие прогресса и кодить, когда ты CTO;
  • Лучшие и худшие фичи JDK;
  • Участие в исполнительном комитете Java Community Process;
  • Не страшно ли что-то сломать в глобальном масштабе;
  • Переход на JDK 11/12;
  • Цена поддержки собственного форка OpenJDK;
  • С4 & Falcon vs Shenandoah & Graal;
  • Нужен ли мощный сборщик в мире микросервисов;
  • Судьба серверов приложений, Java EE / Jakarta EE и JavaFx;
  • Путешествие в Россию и свежий доклад на JPoint.
Читать дальше →

Руководство пользователя Kibana. Визуализация. Часть 5

Reading time8 min
Views3.9K

Пятая часть перевода официальной документации по визуализации данных в Kibana.


Ссылка на оригинальный материал: Kibana User Guide [6.6] » Visualize


Ссылка на 1 часть: Руководство пользователя Kibana. Визуализация. Часть 1
Ссылка на 2 часть: Руководство пользователя Kibana. Визуализация. Часть 2
Ссылка на 3 часть: Руководство пользователя Kibana. Визуализация. Часть 3
Ссылка на 4 часть: Руководство пользователя Kibana. Визуализация. Часть 4


Содержание:


  1. Tag Clouds
  2. Heatmap Chart
Читать дальше →

Первое знакомство с протоколом HTTP через написание простейшего Web сервера на Java

Reading time4 min
Views41K
Думаю что не будет преувеличением утверждать, что знание и понимание сути протокола HTTP необходимо любому, кто решил сколь-нибудь серьезно заняться любым из направлений современной Web разработки. Мой личный опыт говорит о том, что понимание это приходит не сразу. Стыдно сказать, что были времена, когда слова GET и POST были для меня сродни магическим заклинаниям, а о существовании PUT, PATCH и DELETE я даже не подозревал.

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

Как начать пользоваться Swing GUI-визардом IntelliJ IDEA. Подробная инструкция

Reading time3 min
Views141K
Давно не писал настольных приложений на Java вообще и с использовании Swing в частности. Однако, возникла необходимость немного по GUIть. В качестве инструмента выбрал IntelliJ IDEA Community edition, 2016.1 версии.

Взялся ваять и, естественно, первое, на что налетел — хотя со времён Borland Java Builder 2006 воды утекло немало, экранные интерфейсы создавать проще не стало, скорее наоборот. А одной из причин выбора IDEA было как раз наличие Swing дизайнера «из коробки», однако как им пользоваться с ходу решительно непонятно — форма генерится, класс создаётся, создаются переменные контролов из дизайнера… но и только: при создании нашего класса форма на экране не появляется
Читать дальше →

Мысли про порог входа в технологии в 2018, пример простого мобильного приложения и не только

Reading time3 min
Views27K

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

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

Работа с ConstraintLayout через XML-разметку

Reading time22 min
Views131K

ConstraintLayout


Привет! Меня зовут Гавриил, я Android-лид Touch Instinct.


В марте Google выкатил релизное обновление ConstraintLayout. Презентовали его еще на прошлом Google I/O. С того момента прошел почти год, ConstraintLayout стал лучше, быстрее и оброс новыми возможностями. Например, приятно, что появилась возможность объединения элементов в цепи — это позволяет использовать ConstraintLayout вместо LinearLayout.


О всех новых и старых возможностях ConstraintLayout я и постараюсь рассказать в этой статье. Предупрежу сразу — статья будет длинная и других семи частей не будет. Про визуальный редактор ConstraintLayout в статье не будет ни слова — только XML-разметка (по старинке) и немного кода.

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

Как не надо писать факториал в Java

Reading time10 min
Views105K
Перевод этой статьи уже был однажды опубликован на хабре, но там почему-то осталась за кадром самая важная часть. Ниже — полный перевод.

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

Если вам надо написать факториал на Java, то большинство из ваc, вероятно, начнёт с чего-нибудь
такого

String aggregation in the SQL Server world

Reading time4 min
Views53K
На практике, задачи по объединению строк в одну попадаются достаточно часто. Весьма печально, но стандарт T-SQL не предусматривает возможности использовании строковых данных внутри агрегирующей функции SUM:

Msg 8117, Level 16, State 1, Line 1
Operand data type char is invalid for sum operator.


Хотя для решения подобного рода задач, для MySQL была добавлена функция GROUP_CONCAT, а в Oracle LISTAGG. В свою же очередь, SQL Server такого встроенного функционала пока не имеет.

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

Что нового в IntelliJ IDEA 2017.2

Reading time4 min
Views28K
Привет, Хабр! Мы рады сообщить о выходе крупного обновления IDE – IntelliJ IDEA 2017.2. Поскольку далеко не все следят за новостями в нашем официальном блоге (а также потому, что многим удобнее будет прочитать об этом на русском), в этом посте я расскажу что ждать от новой версии IDE. Кто спешит попробовать обновление самостоятельно, качайте с сайта JetBrains, либо из Toolbox App. Все остальные, добро пожаловать под кат.


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

Нетривиальные проблемы с generic'ами и возможные решения

Reading time7 min
Views9.7K
Привет всем! Любой программист, хоть немного знающий Java работал с такой штукой, как generic. Эта фича появилась аж в 5-ой версии Java и сегодня я хотел бы рассказать о некоторых нетривиальных проблемах, связанных с обобщенными типами, с которыми я сталкивался, а также о том почему они возникают и как их можно решить. В этой статье также будут затронуты всеми (не)любимые Hibernate и Spring.

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

Красно-черные деревья: коротко и ясно

Reading time3 min
Views290K
История из жизни. Девушка предложила своему парню-программисту пройти психологический тест:
Девушка: Нарисуй дерево.
Программист: (рисует бинарное дерево)
Девушка: Нет, другое.
Программист: Я и красно-черное дерево могу нарисовать.

Итак, сегодня хочу немного рассказать о красно-черных деревьях. Рассказ будет кратким, без рассмотрения алгоритмов балансировки при вставке/удалении элементов в красно-черных деревьях.
Читать дальше →

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Date of birth
Registered
Activity