Pull to refresh
-8
0
Send message

CompletableFuture. Глубокое погружение

Level of difficultyHard
Reading time20 min
Views19K

java.util.concurrent.CompletableFuture - класс не новый. Он предстал перед нами во всём своём величии в 2014-м году вместе с выпуском Java 8. Много лет с тех пор прошло, а проще он не стал.

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

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

Что делает ChatGPT… и почему это работает?

Level of difficultyMedium
Reading time75 min
Views145K

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

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

TDD есть опиум для народа. Так ли хороша технология, как ее описывают адепты?

Reading time8 min
Views14K

Привет, Хабр! Меня зовут Владимир, я работаю программистом в компании Quadcode. Вот уже почти полтора десятилетия я при помощи доброго десятка языков программирования разрабатываю приложения - от простых, вроде маленького плагина для Emacs, до сложных распределенных систем. Последние 4 года своей жизни я посвятил компании Quadcode, где занимаюсь разработкой транспортной подсистемы. Лет пять назад я вплотную столкнулся с адептами TDD (test-driven development) и это произвело на меня настолько сильное впечатление и оставило так много эмоций, что я написал “для своих” критический разбор наиболее часто встречаемых мною тезисов об этой технике (я бы даже сказал - учении). До сих пор мое мнение о TDD не изменилось, так что хотел бы описать его под катом и предлагаю обсудить вместе спорные моменты в комментариях.

Читать далее
Total votes 57: ↑44 and ↓13+31
Comments243

Античность против Средневековья. Чьи армии сильней?

Reading time39 min
Views45K

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

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

Несмотря на то, что античность и средневековье вроде как плавно друг в друга перетекают, представляем мы себе их несколько иначе. Античность – это, стало быть, амфитеатры, колонны и солдаты в туниках, а средневековье – это рыцари, замки и турниры. При этом, несмотря на разницу между ними в 1000-1500 лет воюют они донельзя схожим образом – тыкают острыми и тупыми предметами друг в друга, на что невольно напрашивается вопрос – а кто сильнее?

Устраивайтесь поудобнее я вам расскажу.
Total votes 75: ↑65 and ↓10+55
Comments87

Метод ветвей и границ. Задача коммивояжера

Reading time27 min
Views72K

Среди методов, привлекаемых к решению задач исследования операций (ИО) особое место занимает метод ветвей и границ (МВГ), который внес оригинальный взгляд в целом на проблемы оптимизации и позволил по другому воспринимать смысл оптимальности решений. Авторы разработанного метода предложили оценивать целевую функцию (ЦФ) задачи нижней границей целевой функции (НГЦФ) всего множества решений конкретной задачи, не получая ни всех решений, ни одного из них. Располагая такой оценкой, можно формировать решения задачи последовательно их улучшая не сильно уклоняясь от НГЦФ. В статье предлагается детальный разбор этого метода решения на числовом примере с подробными комментариями выполняемых действий при поиске оптимального решения.

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

Information

Rating
5,113-th
Location
Warszawa, Warszawa, Польша
Registered
Activity

Specialization

Backend Developer
Senior
Java