Denis
а у тебя big endian little endian в порядке все такое ?
Denis
(мало ли)
Ayrat
а у тебя big endian little endian в порядке все такое ?
ну вот я думал про это, НО я хз)))
Ayrat
оно просто вот так показывает
Ayrat
(внизу)
Ayrat
если там же внизу переключить на Text получим нормальное число (в строке)
Ayrat
я хочу программно получить это же число
Denis
Vladimir
ну вот я думал про это, НО я хз)))
наверняка, джависты все в обратном порядке шлют
Ayrat
бля)))
Ayrat
ну то есть это оно и есть!!1
Denis
https://hexed.it/
Denis
на
Ayrat
на
осталось только эту программу на сервер воткнуть и в жарник впилить как часть бинарника)))
Ayrat
аха, проклятый дотнет в литл ендиан, а проклятая жава по умолчанию в биг ендиан
Ayrat
придётся в котлине скриптовать -_-
Ayrat
я писал пруф оф концепт в фшарпе для программы на джаве
Anatoly
аха, проклятый дотнет в литл ендиан, а проклятая жава по умолчанию в биг ендиан
дилан рассказывал про багу, когда у них роутер как-то скипал один байт из пакета.
Anatoly
пейлоад был в UTF16, и там было смешно
Ayrat
F# [|31uy; 37uy; 39uy; 32uy; 30uy; 37uy; 36uy; 34uy; 31uy; |] |> System.Text.Encoding.UTF8.GetString |> System.Console.WriteLine // %' %$" Kotlin val arr = byteArrayOf(0x31, 0x37, 0x39, 0x32, 0x30, 0x37, 0x36, 0x34, 0x31) val str = Charsets.UTF_8.decode(java.nio.ByteBuffer.wrap(arr)) print(str) //179207641
Ayrat
короче, разметка по пизде идёт, но мысль понятна
Ayrat
короче, наступил на грабли
Vladimir
https://github.com/fsharplang-ru/pulsar-client-dotnet/blob/develop/src/Pulsar.Client/Common/Tools.fs#L19-L23
Ayrat
Ayrat
то есть это не просто число
Vladimir
ну это странно, обычно индианность только для чисел важна
Ayrat
ну это странно, обычно индианность только для чисел важна
ну вот пример выше показывает что не только
Ayrat
один и тот же массив байт (он был получен в жава коде) по-разному декодится в UTF-8
Ayrat
BitConverter.IsLittleEndian жи
BitConverter.IsLittleEndian val it : bool = true
Ayrat
а в жаве байты в биг ендиане пакуются
Ayrat
ебень.
Ayrat
И как вы на это не наступили при общении со скала сервером?
Vasily
Легко
Vasily
Проверяем, в какой мы endian
Vasily
И реверсим
Vasily
В зависимости от результатов
Ayrat
РЕЗОННО
Vasily
Но сейчас у нас все в LE
Vasily
А вот когда я в банке сидел, то надо было чекать
Vasily
Ну и там завезли годного api с BinaryPrimitives
Vladimir
а в жаве байты в биг ендиане пакуются
в пульсаре я байты не переворачиваю для строк utf-8 и работает, мб они не дефолтную кодировку юзают
Vasily
Скорее всего LE по умолчанию
Vladislav
Когда сраный райдер перестанет со стековерфлоу падать?
Vladislav
7 раз за день сука
Ayrat
в пульсаре я байты не переворачиваю для строк utf-8 и работает, мб они не дефолтную кодировку юзают
да всё обычно вроде. берут жексон и превращают какую-то дтошку в набор байт. Видимо настройки жексона такие
Vladimir
java.nio.charset.Charset
Vladimir
Ayrat
ну тут вроде всё обычно
Ayrat
я охуеваю с кода наших жавистов иногда. Их наверное в инкубаторе для конченых выращивают и выдают каждому книгу - Как Писать Хуёвый Код. Издание 13-ое расширенное.
Ayrat
вот код выполнения списка запросов в БД
Ayrat
давайте посмотрим что происходит в executeAsync
Ayrat
попытка взять семафор, асинхронный запуск и отпуск семафора на окончании. пока всё ок
Ayrat
Давайте же посмотрим что в waitForFinish()???
TOV_MULTIMASSO
вот код выполнения списка запросов в БД
А оно точно ловит Exception, которое оно throws (причём throws оно в async?)
Ayrat
просто сука рукалицонахуй
Ayrat
ояебал эти семафорщики мамкины
Ayrat
и главное ASYNC
Ayrat
пойду поору в подушку
Anatoly
https://www.youtube.com/watch?v=1VZaIG5WZH0
Ayrat
Кошмар какой
там ещё создание PreparedStatement на каждый месадж, нормальный такой оверхед
Vagif
там ещё создание PreparedStatement на каждый месадж, нормальный такой оверхед
А не может все это объясняться вечной спешкой и невозможностью пройтись по всем техническим долгам? Кто-то это много лет назад написал, сейчас бы он так не написал, но времени, времени нет...
Ayrat
это в кассандре такая замена процедурам. Мы отдаём двиглу шаблон для запроса с темплейтами вместо значений, оно там парсит, оптимизирует и выдаёт через драйвер айдишник Prepared Statement. Тебе надо просто прокинуть по этому айдишнику значения и всё быстро исполнится. Мы создаём этот PreparedStatement каждый раз. На каждый месадж свой
Ayrat
Почему аски не даёт?
не знаю. Не даёт)
Hog
И простым вычитанием проверяем, что аски даёт искомое число :)
Ayrat
0 - 0x30
Ну вот дотнет так не считает. Проверь!
Ayrat
Код выше. Только енкодинг там замени
Hog
Вот на этом хрупком предположении...
Можно в кишочки посмотреть идеей :)
Ayrat
Можно в кишочки посмотреть идеей :)
Я почти уверен что нихуя ты в инсерте не оптимизнешь особо.
Maksym
Давайте же посмотрим что в waitForFinish()???
На каком проекте такие индусы сидят ?
Ayrat
Причем автор индус.
Maksym
Меня удивило уже сколько лет они живут в пендосии и все равно они не понятно говорят
Maksym
Причем автор индус.
Так в волмарте кроме индусов никого не видел