Pull to refresh
-4
0
Александр @popov654

Веб-разработчик

Send message

Работа с геометрией в JPA и Spring Boot 3

Level of difficultyMedium
Reading time12 min
Views4K

Добрый день, уважаемые читатели Хабра. В один день для моего pet-проекта понадобилось сделать добавление адресов клиентов, и проверка входит ли этот адрес в зону доставки. 

Так как статей на эту тему на хабре раз и обчелся, то вот держите еще одну 😁

В этой статье мы разберем, что такое геометрия, как с ней можно работать в sql и no-sql базах данных. Приступим.

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

Всё ещё нерешённая загадка замерзания воды

Level of difficultyMedium
Reading time6 min
Views11K

В школе нас учат, что вода замерзает при нуле градусов Цельсия, но так бывает редко. Учёные обнаружили в облаках переохлаждённые капли воды до температуры -40 °C, а в 2014 году в лабораторных условиях они охладили воду до целых -46 °C без замерзания. Вы можете переохладить воду и дома: засуньте бутылку дистиллированной воды в морозилку, и она вряд ли кристаллизуется, пока вы её не встряхнёте.

Обычно замерзание не происходит ровно при нуле градусов практически по той же причине, по которой дрова в поленнице не возгораются спонтанно. Чтобы разгореться, огню нужна искра. А льду нужно ядро — зерно льда, вокруг которого всё больше и больше молекул воды выстраиваются в кристаллическую структуру.

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

Несмотря на свою кажущуюся обычность, процесс льдообразования остаётся на удивление загадочным. Химики не могут точно прогнозировать влияние конкретной примеси или поверхности, не говоря уже об их создании для замедления или ускорения формирования льда. Но они постепенно работают над этой задачей. Они создают компьютерные модели, которые могут точно симулировать поведение воды, и ищут подсказки в природе — лучшими из известных учёным центров льдообразования становятся белки, производимые бактериями и грибками.
Читать дальше →
Total votes 31: ↑30 and ↓1+38
Comments34

Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее

Level of difficultyMedium
Reading time12 min
Views8.3K

Несмотря на то, что данная статья была опубликована более полугода назад, команда Spring АйО по-прежнему считает ее актуальной, важной и интересной.

Себастьян Делойзе, контрибьютор Spring Framework, делится обзором усилий команды Spring по оптимизации эффективности приложений во время выполнения. Он рассматривает Virtual Threads, GraalVM Native Image, Project CRaC, Project Leyden и всё это в контексте Spring!

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

Как работает физика в играх

Level of difficultyMedium
Reading time17 min
Views20K

В мире видеоигр игровая физика играет важную роль, определяя реалистичность и взаимодействие игрового мира с игроком. Что же происходит под капотом? Какие алгоритмы и подходы используются в современных движках? И что же значит «застрять в текстурах»? (спойлер: чушь полнейшая)

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

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

REST API сервер на Bash с использованием сокетов и Apache

Level of difficultyMedium
Reading time14 min
Views7K

Всем привет! Ранее рассказывал о том, как создать REST API и Web-сервер на PowerShell для Windows, а также упоминал, что подобный сервер будет работать и в системе Linux, благодаря кроссплатформенной версии PowerShell Core. Безусловно, для подобных целей лучше используются специализированные серверные фреймворки или библиотеки, такие как Flask или Django в Python, но меня не покидала идея реализации похожего сервера, где описание логики будет производиться на языке одного только Bash. Приведу примеры, с помощью которых можно создать такой сервер используя сетевые сокеты netcat , socat и ncat, а также веб-сервера Apache с использованием встроенных модулей.

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

Введение в CMake

Reading time7 min
Views551K
imageCMake — кроcсплатформенная утилита для автоматической сборки программы из исходного кода. При этом сама CMake непосредственно сборкой не занимается, а представляет из себя front-end. В качестве back-end`a могут выступать различные версии make и Ninja. Так же CMake позволяет создавать проекты для CodeBlocks, Eclipse, KDevelop3, MS VC++ и Xcode. Стоит отметить, что большинство проектов создаются не нативных, а всё с теми же back-end`ами.
Читать дальше →
Total votes 62: ↑56 and ↓6+50
Comments23

Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет? (upd)

Level of difficultyMedium
Reading time4 min
Views6.7K
С каждым релизом PHP становится всё быстрее, а при включении JIT (Just-In-Time) компиляции, достигает почти отметок того же C.

image

У многих в своё время, наверное, было желание легкого написание консольных и оконных приложений. Ребята рунета иногда писали незаменимые приложения для решения мелких задач и делились на форумах, хотя некоторые из них и содержали костыли.

Однако времена меняются, и люди начали осознавать свои ошибки, переходя, скажем, на ООП.

Чтобы поностальгировать и продемонстрировать нового Франкенштейна, мы соберем полноценное консольное exe-приложение на PHP.
Читать дальше →
Total votes 27: ↑23 and ↓4+27
Comments22

Беззнаковая арифметика в Java

Reading time5 min
Views94K
Как известно, в Java нет беззнаковых типов. Если в Си вы могли написать unsigned int (char, long), то в Java так не получится. Однако нередко возникает необходимость в выполнении арифметических операций именно с числами без знака. На первый взгляд кажется, что беззнаковые типы в принципе-то и не особо нужны (подумаешь, MaxInt для чисел со знаком меньше в два раза, если нужны числа больше, я просто возьму long и далее BigInteger). Но основное различие на самом деле не в том, сколько различных неотрицательных чисел можно положить в signed или unsigned int, а в том, как над ними производятся арифметические операции и сравнения. Если вы работаете с бинарными протоколами или с двоичной арифметикой, где важен каждый используемый бит, нужно уметь выполнять все основные операции в беззнаковом режиме. Рассмотрим эти операции по порядку:

Преобразование byte в short (int, long)


Обычный каст (int) myByte выполнит расширение до 32 бит со знаком — это означает, что если старший бит байта был установлен в 1, то результатом будет то же самое отрицательное число, но записанное в 32-битном формате:

0xff -> 0xffffffff (-1)

Часто это не то, чего бы мы хотели. Для того, чтобы выполнить расширение до 32 бит без знака и получить 0x000000ff, в Java можно записать:

int myInt = myByte & 0xff;
short myShort = myByte & 0xff;

Сравнение без учёта знака


Для беззнакового сравнения есть лаконичная формула:

int compareUnsigned(int a, int b) {
    return Integer.compare( a ^ 0x80000000, b ^ 0x80000000 );
}

Для byte, short и long, соответственно, константы будут 0x80, 0x8000 и 0x8000000000000000L.
Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments27

Кого давить беспилотному автомобилю: результаты эксперимента Moral Machine

Reading time3 min
Views99K
Два года назад MIT запустила платформу Moral Machine. Каждый желающий мог пройти тест из смоделированных 13 ситуаций: указать, как стоит вести себя беспилотному автомобилю и кем предпочтительней пожертвовать, когда потери неизбежны. За два года в исследовании приняли участие больше 2 млн людей со всего мира. Они предоставили 40 млн решений для смоделированных ситуаций.

Вчера MIT опубликовало результаты этого эксперимента.


Пример задания из теста. Тормоза беспилотного автомобиля отказали. Что предпочтительнее: сохранять курс (тогда погибнут трое пожилых людей, переходящих дорогу на красный свет) — или свернуть и врезаться в ограждение (погибнут двое взрослых людей и ребенок, находящиеся в машине)?
Читать дальше →
Total votes 87: ↑80 and ↓7+73
Comments1125

Загадочные канцелярские приспособления. Тест на сообразительность

Reading time2 min
Views183K
Хабравчанам предлагается тест на сообразительность. Догадайтесь, что за канцелярские приспособления изображены на картинках. Подсказываю, что машинка, изображенная под номером один, использовалась в основном в банках (используется ли сейчас, не знаю, но вряд ли), а устройство под номером шесть – специфически бухгалтерское. Последний вопрос самый каверзный, что называется на засыпку.
Ответы находятся под катом.

image
Смотреть ответы
Total votes 200: ↑190 and ↓10+180
Comments95

Файл, который нужно закоммитить перед уходом с работы

Reading time2 min
Views112K
Немножко пятничного настроения в субботу. Я думаю, все видели этот код:

image

Но Aras Pranckevičius пошел еще дальше. Как написать код, который не так просто обнаружить?
И если вначале идут простые примеры, то дальше начинается…
Осторожно, чистое зло
Total votes 244: ↑208 and ↓36+172
Comments81

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity