Svyatoslav
def RGBAToRGBInt(RGBA): i = int((RGBA[3] << 24) + (RGBA[0] << 16) + (RGBA[1] << 8) + RGBA[2]) if i > 2 ** 31: i = i - 2 ** 32 * math.ceil(i / 2 ** 32) return i
Xaxashutkin
ну в принципе рабочая схема, в твоем случае подходит
Svyatoslav
но я пока не уверен что писать в if, ** 32 или **31
Xaxashutkin
31
Xaxashutkin
больше 32 в принципе не должно получатся
Svyatoslav
ок, поверим)
Xaxashutkin
ок, поверим)
ну просто максимальное возможное зачение в твоем случае это и будет 2**32
GDv
Не получается сделать запрос к БД (sqlite), получить от него данные и вывести их в HTTP сервер. Проблема в том, что запрос к бд асинхронный и когда приходит его результат, уже закрывается response :)
GDv
Ошибку получаю: Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
GDv
Но как их успеть отправить-то :) если запросы асинхронные
Svyatoslav
ну просто максимальное возможное зачение в твоем случае это и будет 2**32
Ну тогда нах они вообще замутили с этими преобразованиями?
Svyatoslav
А понял, в инт еще есть 50% отрицательных значений
Xaxashutkin
Ну тогда нах они вообще замутили с этими преобразованиями?
смотри, там когда отнимали 2**32 происходило преобразование беззнакового в знаковое, тоесть Если число больше 2**31 то значит что старший бит равен 1 значит при преведении к знаковому типу это будет отрицательное число
Svyatoslav
да, только сейчас дошло что есть знаковое
Svyatoslav
спасибо народ
GDv
Точно, блин :) Спасибо! Я не думал, что res.send() перед этим закроет запрос, думал закроет только res.end() :) Убрал тестовый send перед этим и сработало.
GDv
Если ты не завершишь соединение, то с чего "респонсу закрываться"?
GDv
Ты уже отправил заголовки и пытаешься установить их снова.
Xaxashutkin
при сдвиге << преобразуется
Xaxashutkin
мы уже все выяснили, все по спеке
Svyatoslav
от числа большего 2 ** 31 мы вычитаем 2 ** 32
Svyatoslav
Где конерктно ты смог это увидеть?
Svyatoslav
i << 0 — преобразует i в 32 битное
Svyatoslav
Побитовые операторы в JavaScript работают с 32-битными целыми числами в их двоичном представлении. https://learn.javascript.ru/bitwise-operators
Svyatoslav
долго обьяснять цель
Svyatoslav
"работают с 32-битными целыми числами" "в их двоичном представлении"
Svyatoslav
А при чем тут оно
Svyatoslav
Если бы было 64-битное число, его бы представление в двоичной системе было 64 символа А сдвиги работают с 32 битными
Svyatoslav
тг считает иначе
Svyatoslav
оно не видит цвета > 2 ** 31
Svyatoslav
не используется, но задавать обязательно
Svyatoslav
если я ее не указываю, то цвет черный
Svyatoslav
Oleg
вот так приводится по спеке к Int32 в JS
Oleg
а вот аналог на Python
Anonymous
как сделать так, чтобы график показывался только тогда, когда появился data2.json https://pastebin.com/GnNvRuDG
Anonymous
сейчас, когда json есть - всё норм, когда нет - ошибка 404 и скрипт зависает
Oleg
вот так приводится по спеке к Int32 в JS
только надо в js-версии % заменить на функцию modulo вот так, потому что в js модуль не тот знак возвращает…
Anonymous
https://pastebin.com/4Z54zdg7 почему когда json существует - страница грузится без ошибок, а если json нет - сначала вылазиет GET http://localhost:63343/web/data999.json 404 (Not Found) а после того как я добавляю json -вылазиет Uncaught TypeError: Cannot read property 'update' of undefined
Oleg
https://codesandbox.io/s/m481z2v38y
Ты что-то нерабочее выложил, но всё равно видно почему так ) ты запрашиваешь json, потом зачем-то опять его запрашиваешь, потом пытаешься его отрисовать (а данных нет), из-за этого myChart будет undefined, а потом пытаешься еще обратиться к myChart.update… короче, много странных моментов в этом коде
Anonymous
как сделать else?)
Anonymous
почему так не работает var lol = (exist(json)); if (lol == true){load()} else{ while (lol == false) {lol = setTimeout(exist(json), 3000)} } load();
Anonymous
сраный джаваскрипт 🤢
Anonymous
var lol = (exist(json)); if (lol){load()} else{ while (!lol) {lol = setTimeout(exist(json), 3000)} } load();
Anonymous
так тоже
Oleg
сраный джаваскрипт 🤢
отличный язык, просто тебе его надо подизучить. например, setTimeout бесполезно вызывать так, как ты вызываешь. попробуй в консоли setTimeout(console.log('wrong'), 3000), а затем setTimeout(() => {console.log('right')}, 3000) и посмотри разницу
Anonymous
я пишу на питоне, js вынужденная мера
Andrey 😼
сраный джаваскрипт 🤢
Кажется, дело не в js
Oleg
без него зависает
не знаю что там зависает, но по поводу своей задачки лучше поспрашивай в @js_noobs_ru, там должны помочь
Andrey 😼
как
Выше дали чат
Anonymous
Выше дали чат
там молчуны все, а мне срочно
Andrey 😼
Всем срочно ¯\_(ツ)_/¯
Anonymous
Всем срочно ¯\_(ツ)_/¯
какую конкретрононо фцию вызывать
Andrey 😼
Что не так с твоим кодом
Andrey 😼
Не setTimeout(a(), 1), а setTimeout(() => { a() }, 1)
Anonymous
Не setTimeout(a(), 1), а setTimeout(() => { a() }, 1)
Uncaught ReferenceError: a is not defined
Anonymous
Anonymous
хром завис
CherryTea
Кто тут про по распутыванию говнокода? как это должно выглядеть если писать очевидным образом вызов функции в then
CherryTea
return params.process().then(this._done.bind(this, resolve))
Pavel
чего сразу говнокода, норм написано)))
Андрей
Хотя, будет только больше кода, это да.
CherryTea
чего сразу говнокода, норм написано)))
ну писать в then сразу колбек без явного указания аргументов это такое себе
Андрей
Ты же можешь _done переписать?
Pavel
да вроде все понятно
Pavel
resolve аргумент
Pavel
bind для того что бы коллбек не писать
Pavel
then(function (resolve) { this._done(resolve) })
CherryTea
then(function (resolve) { this._done(resolve) })
ага ну вот и не фига )