@nodejs_ru

Страница 196 из 2748
Никита
13.09.2016
19:34:31
А вот в программировании функции придётся задавать порядок и писать нормализацию

Чтобы исключить перестановки одного решения.

Хотя стоп, в моём доказательстве дыра =)

Google
Никита
13.09.2016
19:37:45
Я дурак, кажется =).

Надо смотреть.

Но решение там всё равно одно, просто доказательство кривое получилось, надо строгое делать.

Но лень.

Джон
13.09.2016
19:42:38
=) я сегодня все.. устал )

вернусь завтра, если работой не забросают )

спасибо, было интересно

Никита
13.09.2016
19:46:40
Всё, доказал строго.

Но таки для старшеклассников получилось, простое совсем доказательство не работает.

Хотя, на самом деле и так довольно просто.

Там можно граф всего двумя способами нарисовать, и одному из них нужно 12 элементов, а у нас их всего 10.

=) я сегодня все.. устал )
нарисуй 4 точки. Вопрос — как между ними построить связи так, чтобы нельзя было выкинуть все 4 выкидыванием двух связанных пар.

При этом должно выполняться условие на кол-во элементов — каждая точка это 4 числа, связи это общие элементы, всего элементов 10.

Google
Никита
13.09.2016
19:51:32
Там будет два варианта — либо одна точка обособлена, а остальные 3 связаны между собой, либо из одной точки 3 связи во все оставшиеся, а они между собой не связаны.

Но последний вариант не работает, так как для него надо чтобы у нас было 4*3 разных элементов.

Меньше 3 связей тоже не работает — просто доказать.

Хотя там чуть дальше чуть сложнее становится.

Джон
13.09.2016
19:53:52
а можешь схематически показать?

Никита
13.09.2016
19:54:20
Джон
13.09.2016
19:54:27
а то я не врубаюсь что значит выкинуть все 4 выкидыванием 2х связанных пар

Никита
13.09.2016
19:56:06
а то я не врубаюсь что значит выкинуть все 4 выкидыванием 2х связанных пар
у нас цель в том, чтобы мы никакими двумя выстрелами не могли вычеркнуть все 4 варианта.

Джон
13.09.2016
19:56:21
ага да

Никита
13.09.2016
19:56:27
очевидно, что числа повторяться три раза не могут

тогда мы выкидываем то, которое три раза повторяется

и любое из оставшейся четвёрки

Поэтому числа повторяются максимум 2 раза.

Поэтому связи попарные.

Джон
13.09.2016
19:57:42
ну ты меня вынуждаешь открыть иллюстратор

=)

Никита
13.09.2016
19:58:35
Общее число связывает две точки (варианта) между собой ребром.

Всего вариантов 4.

Так, я ушёл.

Спокойной ночи.

Google
Джон
13.09.2016
19:59:00
спокойной )

Vladimir
13.09.2016
20:05:13
Добрый вечер

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

Может кто нибудь знает как решить данную проблему?

hamper ?
13.09.2016
20:14:32
так оно ж пишет что за ошибка, у тебя data точно строка а не буфер?

Vladimir
13.09.2016
20:16:07
Может и буффер, это же прямые данные из busboy

Как тогда это дело можно безболезненно преобразовать?

Просто там бинарные данные, а именно передаю картинку. Каждый раз из буфера в строку не хотелось бы переводить

hamper ?
13.09.2016
20:21:11
кстати а с чего ты взял что write без копирования пишет?

простой пример: 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'

если бы он не копировал то замена байта привела бы к аналогичной замене в строке

так что write относительно copy никак не сэкономит

Vladimir
13.09.2016
20:26:33
А относительно concat?

В многочисленных примерах как раз его и используют

hamper ?
13.09.2016
20:28:15
concat строк? так медленнее чем в буфер копировать потому что память выделяться каждый раз будет

запись в выделенную память довольно быстрая а вот само выделение памяти чуть подороже, поэтому лучше заранее сколько нужно выделять и туда писать если скорость крайне важна

Vladimir
13.09.2016
20:30:05
Да, скорость мне довольно таки важна

Но тут еще один вопрос. Попробовал заюзать так 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 ?
13.09.2016
20:35:59
у тебя data буфер? вообще у copy target в параметре а source это то к чему применяется

то есть buf1.copy(buf2, 0, 0, buf1.length) это запись buf1 в buf2

Google
KlonD90
13.09.2016
20:38:52
а зачем тебе busboy?

если ты один хрен хочешь buffer

Vladimir
13.09.2016
20:39:32
Для получения бинарных данных через стримы

Хотите предложить нормальный аналог?

KlonD90
13.09.2016
20:40:19
https://www.npmjs.com/package/body-parser#bodyparserrawoptions rawParser или просто самому написать если тупо buffer нужен

Vladimir
13.09.2016
20:42:42
Хм. Он принемает стримами или пытается получить все сразу затормаживая поток?

KlonD90
13.09.2016
20:43:32
затормаживая поток?

Vladimir
13.09.2016
20:45:19
Нус, NodeJS же однопоточный. А значит если пробовать получить данные в app.post() не через порции, то система будет ожидать пока у какого-то пользователя догрузится картинка, а только после перейдет к обработке другого запроса.

KlonD90
13.09.2016
20:45:27
нет

ну типа ты можешь попытаться так сделать но в принципе в либе невозможно читать network трафик затормаживая поток. события приходят из uevent'а один хрен

Admin
ERROR: S client not available

KlonD90
13.09.2016
20:46:41
возможно тебе нужен стрим чтобы не ждать загрузки бафера целиком

но если хочешь бафер целиком

то бери сразу эту штуку

Vladimir
13.09.2016
20:47:01
Я как раз не хочу buffer целеком

Как раз из-за того что я не хочу брать buffer целеком взял busboy

KlonD90
13.09.2016
20:47:29
NodeJS Как записать в Buffer полученные данные из busboy?

Vladimir
13.09.2016
20:48:20
Нус

Получаемые данные - data(порция которую получили в данный момент), ее как раз и нужно сразу записать в Buffer

ааааааа

Google
KlonD90
13.09.2016
20:49:10
а потом ты хочешь данные что ты с ними хочешь сделать? может проще сразу пайпировать?

Vladimir
13.09.2016
20:49:29
Я после картинку отправляю в сервис на обработку

И мне ее бинарные данные нужно передать целеком

KlonD90
13.09.2016
20:49:53
ну а в чем проблема берешь картинку и пайпируешь ее

никаких проблем нету

ща тебе скину код я делал такое

req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype){ file.pipe(stream); }) ну где stream это некий writablestream до твоего сервиса

Vladimir
13.09.2016
20:54:32
Да, но я не могу сразу отправлять данные в сервис. Я получаю полный файл и после добавляю его в очередь.

KlonD90
13.09.2016
20:56:32
в очередь нельзя стримить?

Vladimir
13.09.2016
20:57:40
В данный момент очередь у нас это обычный var queue = [];

KlonD90
13.09.2016
21:00:14
ну тогдла

тебе не write нужен

а copy

write для string'ов

но вообще лучше стримить

в памяти держать все поступающие файлы я по такой стратегии присылаю заголовок с большим размером и у тебя ложится все

Vladimir
13.09.2016
21:01:36
Это черновой по большей части вариант. В будущем будем стримить уже не в var queue = []; // это и выглядит как то позорно и небезопасно

Я заголовки проверяю)

И проверяю соответствие принятых данных с данными из заголовка

Ну точнее размер данных

KlonD90
13.09.2016
21:06:28
держать в памяти это ну очень не валидный подход для NodeJS. лучше стримать по любому

Vladimir
13.09.2016
21:08:37
buffer.js:314 throw new TypeError('"list" argument must be an Array of Buffers'); ^ TypeError: "list" argument must be an Array of Buffers

Что с этим можно сделать?

Страница 196 из 2748