Pull to refresh
0
@Lenusread⁠-⁠only

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

Send message

Lombok + JPA: Что может пойти не так?

Reading time4 min
Views34K

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

Читать далее
Total votes 18: ↑16 and ↓2+17
Comments42

Как мы начали использовать виртуальные потоки Java 21 и на раз-два получили дедлок в TPC-C для PostgreSQL

Level of difficultyMedium
Reading time9 min
Views20K

В этом посте мы расскажем о примере дедлока в TPC-C для PostgreSQL, причиной которого является исключительно переход на виртуальные потоки Java 21 - и никаких проблем обедающих философов.

Читать далее
Total votes 17: ↑16 and ↓1+19
Comments31

Уменьшение размера docker образа с spring boot приложением

Reading time4 min
Views17K

Добрый день.


Недавно передо мной встала задача запуска spring boot 2 приложения в kubernetes кластере используя docker образ. Эта проблема не является новой, достаточно быстро я нашел примеры в гугле и запаковал свое приложение. Я был очень удивлен не найдя alpine образ для jdk11 и надеялся что slim будет достаточно небольшим, но момент отправки образа на docker registry я обратил внимание что его размер составлял почти 422 мегабайт. Под катом описание того как я уменьшил docker образ с моим spring boot и java 11 до 144 мегабайт.


Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments13

Будни техпода. Как разместить Telegram-бота на виртуальном сервере

Level of difficultyEasy
Reading time9 min
Views13K


Чуть больше месяца назад мы запустили Telegram-бота, через который можно заказать виртуальный сервер. Этот бот помогает арендовать VPN-сервер, VPS из нашего маркетплейса или уникальную конфигурацию под ваши цели.

А не возникало ли у вас желания запустить собственный Telegram-бот на своей удалённой виртуалке? Если да, то добро пожаловать под кат, где мы разбираем весь процесс от заказа и подготовки виртуальной машины до запуска бота в работу. Скажем сразу, данная статья — для тех, кто мало знаком с работой Linux-систем и написанием кода Telegram-ботов, но хочет сделать по этому пути один из первых своих шагов.
Читать дальше →
Total votes 29: ↑23 and ↓6+26
Comments3

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

Reading time8 min
Views83K

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Total votes 89: ↑87 and ↓2+103
Comments87

С 31-го февраля в России полностью запретят VPN

Reading time11 min
Views146K

Как вам заголовок, а? Как вам такой подарочек на Рождество? 

Нет, это неправда, это шутка такая.

Не с 7-го января запретят. С другого числа запретят.

Добро пожаловать под кат, будем вместе учиться обходить блокировки VPN у наших коллег из дружественных стран - Китая, Ирана, Туркменистана и конечно же Северной Кореи.

AmneziaVPN снова на связи!

Читать далее
Total votes 469: ↑126 and ↓343-194
Comments198

Сказка о типизации

Level of difficultyMedium
Reading time7 min
Views7.8K

В некотором царстве, в некотором государстве жил был царь. Как-то раз объявил царь всему народу - "Кто решит три моих задачки, тот сам сможет царём стать". И даже контракт метода опубликовал, всё честь по чести.

Это только присказка, сказка будет впереди
Total votes 49: ↑46 and ↓3+54
Comments22

Spring Data JPA: метод save и границы его применимости

Reading time13 min
Views26K

Привет! Меня зовут Семён Киреков, я Java-разработчик и тимлид в Центре Big Data @МТС Digital и Java-декан в МТС Тета — образовательном стартапе в рамках МТС. На митапе Росбанка и Jug.ru я рассказывал о том, как устроен метод Save в Spring Data JPA, почему он может вызвать лишний select, как решить эту проблему и при чем здесь доменные события Spring. Здесь я поделюсь этой информацией с вами.

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

Ах, английский! Бессердечная ты…

Reading time16 min
Views23K

И так, вы поняли, что вам пора изучить английский. Вы идёте на всякие там сайты или качаете себе Дуолингву, но понимаете, что всё бесполезно. В очередной раз вы пялитесь в глаза этому зелёному обдолбаному совёнку, и понимаете что всё бесполезно. A bear всё так же ест этот the cheese, а вы всё так же боитесь запостить комментарий на каком-нибудь форуме, потому что вас засмеют.

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

Разрешите объясниться
Total votes 33: ↑28 and ↓5+28
Comments83

Интеграция Primefaces в приложение на Spring Boot. Часть 2 — Готовим контекстное меню для главной страницы

Reading time7 min
Views2.3K

В этой статье описывается пример интеграции библиотеки компонентов пользовательского интерфейса Primefaces, построенной на основе фреймворка JavaServer Faces (JSF), в MVC приложение на Spring Boot.

Первая часть

Читать далее
Total votes 11: ↑8 and ↓3+6
Comments0

Где найти ментора в IT? Обзор площадок

Reading time4 min
Views51K

Сейчас менторство считается одним из мощнейших рычагов роста в IT и отличным способом развития soft & hard skills. На рынке уже тысячи менторов по различным тематикам. Но где найти этого эксперта, который подскажет верный путь, поможет решить рабочую задачу, составить план развития или прокачать новый навык?

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments7

Человеческим языком про метрики 2: Prometheus

Reading time10 min
Views74K

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

Под катом: формат данных, способы отправки, типы метрик и их применение, кардинальность.

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments5

Астрологи объявили сезон Java на Хабре

Reading time13 min
Views53K

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

С 1 июля по 15 августа мы объявляем сезон Java (количество джавистов в комментариях увеличилось вдвое). Сезон — это конкурс технических статей, который Хабр проводит вместе с разными компаниями, на этот раз — со Сбером. Там, кстати, работает немало джавистов и открыты вакансии для Java-разработчиков.

Победителя сезона ждут призы, а всех участников — повышенные охваты постов. Судьба Java-хардкора в ваших руках: исход соревнования решат читатели.

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

Узнать про сезоны
Total votes 33: ↑28 and ↓5+50
Comments15

Обзор Spring-компонентов. Часть 1 – Spring Boot и фреймворк интеграции

Reading time18 min
Views42K

В обзоре собраны краткие описания каждого компонента экосистемы, чтобы дать понимание – как выглядит мир Spring, и ориентиры – что из этого стоит изучить глубже и применять в проекте.

Читать далее
Total votes 14: ↑13 and ↓1+16
Comments1

Сравнение Quartz, kagkarlsson и кастомной реализации для запланированного задания в реактивном Spring Boot приложении

Reading time6 min
Views4.2K

Часто Java-разработчикам требуется реализовать запланированные задания. Современные реалии диктуют нам, что система должна быть масштабируемой, то есть вне зависимости от количества реплик и распределения нагрузки мы ожидаем выполнения задания по условиям, которые были определены на входе. Существуют готовые решения для реализации jobService. Используя базу данных, можно написать собственное решение этой задачи, а при возникший трудностях, разбираться с тем, что же пошло не так. С одной стороны, вероятность ошибки больше, чем с готовым решением, но с другой стороны в своем коде разбираться и вносить правки проще, чем в общедоступной библиотеке. Кроме того, собственная реализация будет учитывать особенности системы, в нашем случае, это реактивность. В статье подробнее описаны плюсы и минусы этих подходов.

Читать далее
Total votes 20: ↑19 and ↓1+20
Comments0

Использование переменных окружения в Node.js

Reading time7 min
Views107K
Материал, посвящённый переменным окружения в Node.js, перевод которого мы сегодня публикуем, написал Берк Холланд, веб-разработчик, в сферу интересов которого входят JavaScript, Node.js и VS Code. Кроме того, стоит отметить, что у него сложились непростые отношения с Java. Вот его история.

Переменные окружения — одна из фундаментальных конструкций среды Node.js, но почему-то я никогда не стремился научиться правильно ими пользоваться. Возможно, случилось так из-за их названия — «Environment Variables». Это название вызывало у меня нечто вроде посттравматического синдрома, неприятные воспоминания о том, как я пытался добавить путь к домашней директории Java в Windows. Я тогда толком не мог понять, надо ли добавлять этот путь в переменную PATH, в переменную JAVA_HOME, или и туда и туда. Было неясно и то, нужно ли, чтобы в конце этого пути стояла точка с запятой. Собственно говоря, тогда у меня возникал и вопрос о том, почему я использую Java. Как бы там ни было, я наконец нашёл в себе силы и приступил к знакомству с переменными окружения Node.



Если вы пишете для платформы Node.js, и, так же, как и я, неважно — по каким причинам, до сих пор не особенно хорошо знакомы с переменными окружения — предлагаю это исправить.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments16

Как написать отличную статью и завоевать умы

Reading time12 min
Views17K

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

В данной статье мне хотелось бы предложить несколько вариантов того, как стоит создавать статьи, как их подавать и как поддерживать жизнь своей статьи.
Читать дальше →
Total votes 131: ↑96 and ↓35+61
Comments77

Принципы SOLID, о которых должен знать каждый разработчик

Reading time11 min
Views327K
Объектно-ориентированное программирование принесло в разработку ПО новые подходы к проектированию приложений. В частности, ООП позволило программистам комбинировать сущности, объединённые некоей общей целью или функционалом, в отдельных классах, рассчитанных на решение самостоятельных задач и независимых от других частей приложения. Однако само по себе применение ООП не означает, что разработчик застрахован от возможности создания непонятного, запутанного кода, который тяжело поддерживать. Роберт Мартин, для того, чтобы помочь всем желающим разрабатывать качественные ООП-приложения, разработал пять принципов объектно-ориентированного программирования и проектирования, говоря о которых, с подачи Майкла Фэзерса, используют акроним SOLID.



Материал, перевод которого мы сегодня публикуем, посвящён основам SOLID и предназначен для начинающих разработчиков.
Читать дальше →
Total votes 42: ↑33 and ↓9+24
Comments33

Откуда в Java всплывают проблемы с кодировками и возможная причина падения марсианского зонда

Reading time7 min
Views60K
Планета Марс уже не первый год населена роботами. То тут, то там появляются беспилотные электрокары и летающие дроны, а в программах, написанных на Java, с завидной регулярностью всплывают проблемы с кодировками.

Хочу поделиться своими мыслями о том, почему это происходит.
Читать дальше →
Total votes 71: ↑48 and ↓23+25
Comments53

Information

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