Джон
себе доказал
Джон
☺️
Джон
ребят где взять таких задачек еще?
Джон
пасиб )
Mikhail
Джон
не канает решение
Джон
Ага, а если бомбить будут 4 и 8?
Джон
А где тогда решение?
Джон
ага супер, спасибо )) тут человек еще одно нашел
Джон
00 - 1 2 4 6 8 10
01 - 1 3 5 7 9 10
10 - 2 4 5 6 8 9
11 - 2 3 4 6 7 8
Джон
разве?
Джон
ой я все пропустил
Джон
читаю, сек
Джон
Я думаю можно написать функцию для вычисления всех вариантов
Джон
интересненько )
Джон
ну я сразу хочу отметить, что не силен ни в программировании, ни в математике
Джон
=) я сегодня все.. устал )
Джон
вернусь завтра, если работой не забросают )
Джон
спасибо, было интересно
Джон
а можешь схематически показать?
Джон
а то я не врубаюсь что значит выкинуть все 4 выкидыванием 2х связанных пар
Джон
ага да
Джон
ну ты меня вынуждаешь открыть иллюстратор
Джон
=)
Джон
спокойной )
Vladimir
Добрый вечер
Vladimir
http://ru.stackoverflow.com/questions/565989/nodejs-%D0%9A%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D0%B2-buffer-%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B8%D0%B7-busboy
Vladimir
Может кто нибудь знает как решить данную проблему?
hamper 𓅝
так оно ж пишет что за ошибка, у тебя data точно строка а не буфер?
Vladimir
Может и буффер, это же прямые данные из busboy
Vladimir
Как тогда это дело можно безболезненно преобразовать?
Vladimir
Просто там бинарные данные, а именно передаю картинку. Каждый раз из буфера в строку не хотелось бы переводить
hamper 𓅝
кстати а с чего ты взял что write без копирования пишет?
hamper 𓅝
простой пример:
var q = 'test'
var buffer = Buffer.allocUnsafe(10).fill(0)
buffer.write(q)
// <Buffer 74 65 73 74 00 00 00 00 00 00>
buffer[0] = 117
// <Buffer 75 65 73 74 00 00 00 00 00 00>
// q == 'test'
hamper 𓅝
если бы он не копировал то замена байта привела бы к аналогичной замене в строке
hamper 𓅝
так что write относительно copy никак не сэкономит
Vladimir
А относительно concat?
Vladimir
В многочисленных примерах как раз его и используют
hamper 𓅝
concat строк? так медленнее чем в буфер копировать потому что память выделяться каждый раз будет
hamper 𓅝
запись в выделенную память довольно быстрая а вот само выделение памяти чуть подороже, поэтому лучше заранее сколько нужно выделять и туда писать если скорость крайне важна
Vladimir
Да, скорость мне довольно таки важна
Vladimir
Но тут еще один вопрос. Попробовал заюзать так buffer.copy(data,req.recvSize,0,data.length); // data - полученный буфер из busboy. req.recvSize = офсет, каждый раз он увеличивается в размер буфера. 0 = как я понял, вроде начальной позиции копирования из data. data.length - длина копирования.
Но тут сразу же ошибочка
buffer.js:314
throw new TypeError('"list" argument must be an Array of Buffers');
^
TypeError: "list" argument must be an Array of Buffers
hamper 𓅝
у тебя data буфер? вообще у copy target в параметре а source это то к чему применяется
hamper 𓅝
то есть buf1.copy(buf2, 0, 0, buf1.length) это запись buf1 в buf2
Vladimir
Для получения бинарных данных через стримы
Vladimir
Хотите предложить нормальный аналог?
Vladimir
Хм. Он принемает стримами или пытается получить все сразу затормаживая поток?
Vladimir
Нус, NodeJS же однопоточный. А значит если пробовать получить данные в app.post() не через порции, то система будет ожидать пока у какого-то пользователя догрузится картинка, а только после перейдет к обработке другого запроса.
Vladimir
Я как раз не хочу buffer целеком
Vladimir
Как раз из-за того что я не хочу брать buffer целеком взял busboy
Vladimir
Нус
Vladimir
Получаемые данные - data(порция которую получили в данный момент), ее как раз и нужно сразу записать в Buffer
Vladimir
ааааааа
Vladimir
Я после картинку отправляю в сервис на обработку
Vladimir
И мне ее бинарные данные нужно передать целеком
Vladimir
Да, но я не могу сразу отправлять данные в сервис. Я получаю полный файл и после добавляю его в очередь.
Vladimir
В данный момент очередь у нас это обычный var queue = [];
Vladimir
Это черновой по большей части вариант. В будущем будем стримить уже не в var queue = []; // это и выглядит как то позорно и небезопасно
Vladimir
Я заголовки проверяю)
Vladimir
И проверяю соответствие принятых данных с данными из заголовка
Vladimir
Ну точнее размер данных
Vladimir
buffer.js:314
throw new TypeError('"list" argument must be an Array of Buffers');
^
TypeError: "list" argument must be an Array of Buffers
Vladimir
Что с этим можно сделать?
Vladimir
ну нет, хочешь держать - держи
Vladimir
как и везде
Vladimir
?
Vladimir
buffer.js:314
throw new TypeError('"list" argument must be an Array of Buffers');
^
TypeError: "list" argument must be an Array of Buffers
Vladimir
Что с этим можно сделать?
Vlad
погуглить
Vlad
и документацию прочитать
Vladimir
Примерчик такой заделал, но целостность бинарного файла сломалась при получении http://pastebin.com/Z4qNJrs2
Алексей
Настоящая драма
https://github.com/tc39/proposal-private-fields/issues/14
Ребята из V8 хотят пропихнуть вот ЭТО в стандарт (приватные свойства класса)
class C {
#x;
constructor() {
this.#x = 1;
}
}
отписывайтесь пока у вас есть возможность, ставьте лайки и дислайки пока у вас есть выбор
Vladimir
да нормально все
Vladimir
но с @ лучше
Алексей
не дай бог! в Lisp уйду... накой мне это # из Ruby и coffeescript
Vladimir
да не пользуйся просто
Vladimir
это вообще не нужно в обычном коде
Алексей
Я то не буду :) но я обычно не 1 в команде, просто накой тогда резервировали слово private?
Vladimir
на всякий случай
Vladimir
это все таки не тоже самое