Как стать автором
Обновить
-8
0.2

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

Отправить сообщение

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

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров34K

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

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

Читать далее
Всего голосов 36: ↑36 и ↓0+36
Комментарии27

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

Уровень сложностиСредний
Время на прочтение75 мин
Количество просмотров155K

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

Читать далее
Всего голосов 248: ↑248 и ↓0+248
Комментарии121

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

Время на прочтение8 мин
Количество просмотров15K

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

Читать далее
Всего голосов 49: ↑36 и ↓13+31
Комментарии243

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

Время на прочтение39 мин
Количество просмотров46K

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

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

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

Устраивайтесь поудобнее я вам расскажу.
Всего голосов 57: ↑47 и ↓10+55
Комментарии87

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

Время на прочтение27 мин
Количество просмотров78K

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Информация

В рейтинге
2 500-й
Откуда
Warszawa, Warszawa, Польша
Зарегистрирован
Активность

Специализация

Backend Developer
Senior
Java