URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 119959
[ Назад ]

Исходное сообщение
"Выпуск nginx 1.17.9 и njs 0.3.9"

Отправлено opennews , 04-Мрт-20 09:34 
Сформирован выпуск основной ветки nginx 1.17.9, в рамках которой продолжается развитие новых возможностей (в параллельно поддерживаемой стабильной ветке 1.16 вносятся только изменения, связанные с устранением серьёзных ошибок и уязвимостей)...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=52474


Содержание

Сообщения в этом обсуждении
"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено cat666 , 04-Мрт-20 09:34 
Я так понял из новостей, что Рэмблер, несмотря на все заявления, с них не слезает.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено A.Stahl , 04-Мрт-20 09:40 
А там есть ещё какие-то новости? Что-то давно не слышно было.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено cat666 , 04-Мрт-20 09:54 
Уголовное дело просто так не закрывается. Новость от 12 февраля.
"Заместитель главы комитета Госдумы по информационной политике, информационным технологиям и связи Андрей Свинцов (ЛДПР) направил запрос на имя генпрокурора РФ Игоря Краснова с просьбой взять на личный контроль уголовное дело в отношении сооснователей компании Nginx...."

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 17:54 
Слезание Рамблера (точнее, Мамута) и прекращение дела никак не связаны.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Lex , 05-Мрт-20 00:36 
Но сих пор неясно, откуда такой порыв защитить теперь уже американскую контору( или к разговору о покупке nginx )

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


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено lucentcode , 05-Мрт-20 00:51 
Глава ЛДПР - гражданин Испании. Его сын имеет вид на жительство в США. Думаю, достроить логическую цепочку сами сможете...

Ну и nginx важен для всей индустрии IT в целом, в том числе и русской. Впрягаться за него имеет смысл всем, кто хоть немного смыслит в IT.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 20:47 
>  Глава ЛДПР - гражданин Испании. Его сын имеет вид на жительство в США. Думаю, достроить логическую цепочку сами сможете...

Так бы сразу и сказали!
В западных странах очень жестко относятся к воровству интеллектуальной собственности, в частности, попыткам наёмных сотрудников присвоить то, что они делали в рабочее время, т.е. за зарплату.

Так что "взять на личный контроль" в данном контексте означает "проследить, чтобы Сысоева покарали".


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Lex , 06-Мрт-20 12:42 
Удивительно, как ловко вы политизируете обычный конторный спор о правах на продукт..

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 06-Мрт-20 17:38 
Это очень плохой прецедент для индустрии. Прецедент во многом определит решения судов по схожим делам в будущем.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 09:56 
Ты думаешь после сидения на бутылке автор не будет Рамблеру ставить палки в колеса?

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено товарищ майор , 04-Мрт-20 11:56 
а кто вам сказал что "после"? Сидя на бутылке - конечно не будет. А команды слезать мы не давали!


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 09:57 
Я бы уж лучше китайскую openresty использовал чем сабжевый njs.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 15:56 
А с чем связано? Конкурентное преимущество какое-то или просто личное расположение к Китайцам?
Или лучное отторжение от российских дрязг? Так надо понять почему так и ведь не единая история, а пожалуй национальная идея - отжал спрятал выехал и получил гражданство..

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 16:40 
Все что ты сказал плюс неприятие всего что связано с джаваскрипт. Lua подсознательно как то больше ассоциируется с быстрым встроенным простым языком.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 17:42 
Там и ~= вместо != И все равно lua по юзабельности опережает js подделки.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 18:01 
Любой кусок кхм будет лучше, чем JS.

[] + [] → "" // Empty string? These are arrays!
[] + {} → [object object]
{} + [] → 0 // Why isn't the operation commutative???
{} + {} → NaN // ???
16 == [16] → true // Array converted into string, then into number
16 == [1,6] → false // But what is array converted into?
"1,6" == [1,6] → true
var arr = [];
arr.length → 0
arr[3] → "undefined" // No array bounds exception???
arr[3] = "hi";
arr.length → 4 // 4??? Only one element has been added!
arr["3"] → "hi" // Apparently "3" is coerced into a number
delete(arr[3]);
arr.length → 4 // 4??? There are no elements in the array!
arr[3] → "undefined" // 7 lines above, length was "0"!
var i = 1;
i = i + ""; // Oops!
i + 1 → "11"
i - 1 → 0
var j = "1";
++j → 2 // Okay, but...

var k = "1";
k += 1 → "11" // What???

[1,5,20,10].sort() → [1, 10, 20, 5] // Why is it sorting strings???
xs = ["10", "10", "10"];
xs.map(parseInt) → [10, NaN, 2] // ???
y = {};
y[[]] = 1;
Object.keys(y) → [""]


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено мяя , 04-Мрт-20 23:49 
Страшилки для маленьких.
Это всё чушь если знать про динамическую типизацию и неявное преобразование типов.
Тем более такой код не будет использоваться в реальной жизни.
> Only one element has been added!

Про дырявые массивы не не слышали... А между прочим позволяет огого как в ряде случаев производительность поднять.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 20:35 
> Это всё чушь если знать про динамическую типизацию и неявное преобразование типов.

Так как более самых распространённых 50 неочевидных ситуаций при приведении типов в JS вызубрить малореально, то на этой "чуши" разработчики спотыкаются регулярно. "Качество" JS-кода уже стало притчей во языцех.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 06-Мрт-20 03:32 
> на этой "чуши" разработчики спотыкаются регулярно

"Разработчики" - это существительное множественного числа. Когда говоришь о себе, употребляй единственное число. И правильно не "разработчик", а "особь семейства Cercopithecidæ", поскольку только она предпочитает использовать "50 неочевидных ситуаций" вместо одной-единственной, но очевидной.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 04:53 
Тоже вспоминаешь npm leftpad?

> [] + [] → "" // Empty string? These are arrays!

Особь семейства Cercopithecidæ не читала стандарт языка, но уже имеет ценное мнение о том, как На Самом Деле™ должно работать сложение... массивов? (whatever that means)


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Moomintroll , 05-Мрт-20 09:35 
> Особь семейства Cercopithecidæ не читала стандарт языка, но уже имеет ценное мнение о том, как На Самом Деле™ должно работать сложение... массивов? (whatever that means)

Я тоже не читал стандарт, но для меня, как для особи семейства Cercopithecidæ (кто это?), очевидно, что при сложении двух массивов должен получиться массив.

Если в стандарте языка это не так, это вовсе не значит, что это правильно. Это значит, что стандарт кривой.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 10:47 
> при сложении двух массивов должен получиться массив

Такой операции, как "сложение массивов", не знает ни один язык.

Есть конкатенация массивов (concat), сведение массива к одному значению (reduce), есть много чего еще. А вот сложения (addition) нету. И вообще, под этим можно подразумевать все, что угодно, в зависимости от текущей задачи:

Cercopithecus #1: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал [1,2,3,4,5,6]
Cercopithecus #2: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал 1+2+3+4+5+6 = 21
Cercopithecus #3: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал [1+4,2+5,3+6] = [5,7,9]
Cercopithecus #4: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал 3+3 = 6

Ну и кого из этих представителей семейства Cercopithecidæ слушать? Чью хотелку официально отражать в стандарте?

https://www.google.com/search?q=array+addition


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 20:50 
> Ну и кого из этих представителей семейства Cercopithecidæ слушать? Чью хотелку официально отражать в стандарте?

Очевидно, что стандарт JS писал самый упoротый из их представителей.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 06-Мрт-20 03:28 
Мнение представителя семейства Cercopithecidæ можно оставить без внимания в силу очевидных проблем с формулированием своих хотелок. Так, банальную конкатенацию массивов этот примат называет "сложением массисов", что уже говорит о том, что в программировании ему делать нечего.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 08-Мрт-20 15:49 
>> при сложении двух массивов должен получиться массив
> Такой операции, как "сложение массивов", не знает ни один язык.
> Есть конкатенация массивов (concat), сведение массива к одному значению (reduce), есть
> много чего еще. А вот сложения (addition) нету. И вообще, под
> этим можно подразумевать все, что угодно, в зависимости от текущей задачи:
> Cercopithecus #1: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал [1,2,3,4,5,6]

Это конкатенация

> Cercopithecus #2: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал 1+2+3+4+5+6
> = 21

Результат - число (не массив)
> Cercopithecus #3: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал [1+4,2+5,3+6]
> = [5,7,9]

Правильная хотелка - сумма двух векторов
> Cercopithecus #4: Было бы прикольно, если бы [1,2,3] + [4,5,6] давал 3+3
> = 6

Результат - число (не массив)


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 06-Мрт-20 00:41 
А сумма двумерных массивов создаст двумерную строку?

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним2 , 06-Мрт-20 13:17 
Вот, вроде
- программирование
- алгоритмы
- математические выражения...
Ожидается присутствие хоть какой-то логики
Особенно понравилось i+1 и i-1 :)

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 20:12 
>  js подделки.

Если они подделки, то я прямо боюсь спросить, что же оригинал?!


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 17:58 
> Индексация массивов начинается с 1 а не 0. Это все что вам нужно знать про это недоразумение.

Мнение хипстеров особого интереса не представляет.
FORTRAN (since 1957) индексирует с единицы. Появившийся на 12 лет позже C ввёл костыль с индексацией от нуля в основном для синтаксического сахарка с указателями. В скриптовом языке, естественно, это смысла не имеет.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 20:17 
> Мнение хипстеров особого интереса не представляет.

Попробуй без этих "хипстеров" с их сями хотя-бы свой компьютер загрузить, умник :)


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 20:42 
У меня не компьютер, у меня ЭВМ. Тёплая, ламповая.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 01:25 
> У меня не компьютер, у меня ЭВМ. Тёплая, ламповая.

С теплой и ламповой на опеннете не больно поумничаешь :P


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 21:03 
Т.е. если нумерация массива начнется с 1, то компьютер не загрузится?
IBM/360 об  этом не знала :)

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним84701 , 04-Мрт-20 21:12 
>> Мнение хипстеров особого интереса не представляет.
> Попробуй без этих "хипстеров" с их сями хотя-бы свой компьютер загрузить, умник :)

Если они не знают, почему в сях индексация начинается с 0,
то "их си" - разве что хелловорды … а так (пока, по крайней мере у меня) компьютер все еще без JS и питона грузится :)


#include <stdio.h>                                                                      
int main(void) {
    int bar[6];
    4[bar] = 10;
    char* foo[2] = {"hello","hello"};                                                    
    1[foo] = "world";                                                                    
                                                                                        
     int y = 2334;                                                                        
     int *x = &y;                                                                        
     0[x] = 1337;    
                                                                    
     puts(*foo);                                                                          
     puts(1[foo]);                                                                        
     printf("%d %d %d\n",0[x], y, bar[4]);                  
     return 0;                                                                            
}
% gcc -Wall -Wextra hw.c && ./a.out
hello
world
1337 1337 10


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 01:22 
> Если они не знают, почему в сях индексация начинается с 0,

Может, потому что память начинается с адреса 0? :) Вон Cortex M при power-up первым делом берет вектор по адресу 0. Кому не нравится что это не 1 - может пожаловаться в спортлото, например.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 20:38 
> Может, потому что память начинается с адреса 0?

Итак, вы умеет пользоваться гуглом.
Тогда вы сможете сделать и второй шаг — объяснить, почему в скриптовых языках индексация не обязана начинаться с нуля.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним84701 , 06-Мрт-20 00:51 
> Тогда вы сможете сделать и второй шаг — объяснить, почему в скриптовых языках индексация не обязана начинаться с нуля.

Скритовые ЯП тут особо ни при чем. Массивы сами по себе уже абстракция (foo[i] -- это  смещение i относительно адреса foo).
Тут просто сочетается синдром водоплавающих и "мы так привыкли и не задумывемся", хотя в том же сишном foo[3] aka *((foo)+(3)) почему-то анонимов не смущает неявное (3*размер_элемента) ;)


var myarr: array[-5..10, -10..10] of Byte;
begin
    myarr[10][10] := 37;
    myarr[-5,-10] := 13;

(ну или если паскаль слишком "скриптово")

echo "void foo(void) {
int bar[10];              
bar[0] = 1;
bar[1] = 2;
}"|gcc -O0 -masm=intel -S -m32 -xc -o- -|grep -v "\."  
foo:
    push    ebp
    mov    ebp, esp
    sub    esp, 48
    mov    DWORD PTR [ebp-40], 1    ;первый элемент массива
    mov    DWORD PTR [ebp-36], 2    ;второй
    nop
    leave
    ret

(т.е. на более низком уровне индексация массива может начинаться совсем не с 0)

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 08-Мрт-20 23:33 
> Массивы сами по себе уже абстракция (foo[i] -- это  смещение i относительно адреса foo).

Память как таковая, в общем то тоже абстракция. На уровне физики чип RAM бывает например двухмерным массивом. Однако врядли вы будете в большом восторге от идеи узнавать истинную геометрию каждого чипака оперативы, высчитывая rows и columns, которые, однако, ни разу не константа.

А еще цифровые штуки изначально оперируют единицами и нолями. По поводу чего ноль достаточно удобен для представления на уровне железа. Это "все нули", по всем разрядам шин, регистров и проч. Просто и элегантно.

> (т.е. на более низком уровне индексация массива может начинаться совсем не с 0)

"Права купил, а ездить не купил?" :) Режимы адресации и их чудеса не имеют никакого отношения к тому с чего начинается адресное пространство.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним84701 , 09-Мрт-20 01:31 
>> Массивы сами по себе уже абстракция (foo[i] -- это  смещение i относительно адреса foo).
> Память как таковая, в общем то тоже абстракция. На уровне физики чип
> RAM бывает например двухмерным массивом. Однако врядли вы будете в большом

Это все очень интересно, но на причину "почему индексация  массивов с 0 - более труЪ" не тянет от слова "совсем".

>> (т.е. на более низком уровне индексация массива может начинаться совсем не с 0)
> "Права купил, а ездить не купил?" :) Режимы адресации и их чудеса
> не имеют никакого отношения к тому с чего начинается адресное пространство.

"Очки купил, а читать …?" :) Специально цитировал на что отвечаю - спорить с анонимом по поводу "Может, потому что память начинается с адреса 0?" в качестве аргумента "нулевой индексации" не вижу смысла.
Т.е. тема - индексация массивов в различных ЯП и отображение на более нижнем уровне, а не "с чего начинается адресное пространство".

Приведенный выше листинг вполне валидный режим для индексации "в ручном режиме" массивов на стеке при ваянии "шедевров" прямо в x86асме, хотя народ конечно предпочитал LOCAL макросы или хотя бы EQU определения, вместо жонглирования относительными адресами.
Ну и заодно наглядно демонстрирует,  что режим адресации "с 0" даже в "низкоуровневом" си не гарантирует такой же "маппинг" на более нижнем уровне.
И вообще, что foo[-10], что foo[10] - компилятору все едино (а уж современному с наворотами - он еще и варнинги "index out of array" будет выдавать).
Поэтому претензии вида "Индексация массивов начинается с 1 а не 0. Это все что вам нужно знать про это недоразумение." - не понятны.

Конкретно в cи причина сильно смахивает на гибрид наследия древних времен написания компилятора ручками (не нужно заморачиваться с семантикой и прослойкой для парсинга foo[-10, 10], для которого нужно запоминать и  каждый раз вытаскивать определение массива) плюс  определение сабскрипта E1[E2]<=> *((E1)+(E2)) (потому и возможны "кунстштюки" типа 10[x] в валидном коде),
т.е. ковыряние массив проходит как  "указатель на первый элемент + смещение" => адресная арифметика, а запись foo[i] как синтактический сахар.
Если нужно "как проще" (для написания компилятора) то напрашивается индексация с 0: первый элемент foo[0]<=> foo+0 <==> foo и "больше ничего делать не надо" => т.е. сделали как проще, а не потому что мифическое "так ближе к железу!".
Вон, в фортране индексы вполне себе начинаются по умолчанию с 1 (а еще можно определить свой диапазон integer foo(-100:500)) - и ничего, (был) самый быстрый ЯП для вычислений туеву кучу лет.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 10-Мрт-20 01:25 
> Это все очень интересно, но на причину "почему индексация  массивов с
> 0 - более труЪ" не тянет от слова "совсем".

Довольно криво считать адреса с нуля а массивы с единицы. Например, в сях отличия массивов от просто указателей ... по сути номинальные.

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

Вам не кажется что будет по идиотски, если мы хотим начиная с адреса 0 поработать, но референсить в виде массива будем уже как 1? Это немедленно гарантирует легион "off by one" errors во всей системщине, как будто их без этого мало. И более того - есть еще такая веселая штука как alignment и пожелания железяк к оному. Вебмакак такими словами, конечно, не пугают, показывая им фильдеперсовые абстракции. Но эти абстракции кто-то должен сделать. И вот им совершенно не удобно все время влетать мордой в off by one error'ы на этой почве, равно как и большие проблемы с чет/нечет и вообще alignment.

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

> спорить с анонимом по поводу "Может, потому что память начинается с
> адреса 0?" в качестве аргумента "нулевой индексации" не вижу смысла.

А почему, собственно, адресация одного того же по указателю и массивом должна работать вот настолько по разному? Чтобы больше off by one было?


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 08-Мрт-20 23:29 
> Итак, вы умеет пользоваться гуглом.

Я еще и памятью умею пользоваться.

> Тогда вы сможете сделать и второй шаг — объяснить, почему в скриптовых
> языках индексация не обязана начинаться с нуля.

Потому что поделки для вебмакак, не понимающих как работает компьютер? :)


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 10:04 
На Rust написали njs, или опять будет UB во все щели?

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 10:05 
В вашем Rust неопределённого поведения не меньше чем в C++. Пруфы https://doc.rust-lang.org/reference/behavior-considered-unde...

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Анатолий , 04-Мрт-20 11:39 
> В вашем Rust неопределённого поведения не меньше чем в C++.

Так это unsafe, для это часть кода маркируется unsafe чтобы сразу показать
где баги. В C++ же весь код unsafe.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 13:21 
В rust весь тулчейн - unsafe, т.к. пилится только мозиллой, а мозилла - сборище стремных хипстеров, конкретно шибанутых на голову и потому шатающихся из крайности в крайность.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено asdasd , 04-Мрт-20 16:14 
Включите -Wall -Wextra -Werror и unsafe обертывайте в #pragma GCC diagnostic.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 17:21 
Уже успел написать что-то на своих «не-unfase» if-ах?

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 17:38 
>> В C++ же весь код unsafe.

Диванные экспертам лучше видней. А то, что в С++ возможно писать полностью safe код, это никто во внимание не берёт


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 18:10 
Писать-то на крастах можно, а вот читать...
Впрочем, у Rust та же проблема. Теперь, встречая что-то наподобие !@#$%^&*(), думаешь — это завуалированное ругательство, следствие чистки клавиатуры, или фрагмент кода на Rust?

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 19:51 
Прочитайте документацию Rust по приведённой выше ссылке. UB в Rust не только в unsafe блоках

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 13:20 
Ваш хруст - один большой UB сам по себе. Потому что полупроприентарное нечто, контролируемое одной корпорацией с репками завязанными на гамадрилу.корп.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 15:58 
Сложно по ссылке нажать чистый канонический С.

Вот какой-то файл там у них открыл  http://hg.nginx.org/njs/rev/65f4b11e3302

Блин не пойму чего они все еще на меркуриале?


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 01:27 
> Блин не пойму чего они все еще на меркуриале?

На гитхабе зеркало есть, но они таки из тех кто любит ссать против ветра. В принципе никто бы не возражал, если б не запах...


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 20:39 
Поддержка второго питона в 2020 году — крайне увлекательное занятие. Если хоть немного разума осталось — избавятся от ртути.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 10-Мрт-20 01:28 
> На Rust написали njs, или опять будет UB во все щели?

Сначала пусть растоманы перестанут быть театром одного актера с жестким вендорлоком на 1 комерса, чтоли.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено nelson , 04-Мрт-20 11:03 
>> Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации.

лучше бы lua или tcl прикрутили


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 11:34 
Lua уже прикручена и называется openresty.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено пох. , 04-Мрт-20 12:01 
Кто-нибудь, кстати, намекните там Максу, что плешь немодно, и жить ему осталось месяц, можно в ngx_http_mp4_module уже ничего не чинить.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 14:12 
mp4 это не только flash, это еще и куча всяких десктопных и мобильных клиентов вокруг систем видеонаблюдения и подобного.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 20:05 
А что, он не умеет грузить MP4 "просто браузеру"? Ну тады ему амба. Впрочем, нафига он нужен, при наличии dash...

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено пох. , 04-Мрт-20 22:32 
а зачем ему это уметь, "просто браузер" и так его загружает, как обычный файл.

Это был грязный хак для флэша, который был настолько суперстар, что не умел Range: - и так и не умеет их до конца своей жизни.
Поэтому когда юзверь тыкал мышкой в слайдер, чтобы пропустить скучный диалог горничной с водопроводчиком, приделанный к слайдеру скрипт просто давал команду загрузить другой файл, вида url://somesite/somepron.mp4?start=100 - а этот модуль парсит параметр и отсчитывает нужное число секунд (по неведомым причинам, старт mp4 отсчитывается в секундах)

Браузер c html5 просто запросит другой range с того же самого файла, и сразу в байтах.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 01:09 
> "просто браузер" и так его загружает, как обычный файл.

Этот фокус не особо работает с "безразмерным потоком" (трансляция с камеры).

> Браузер c html5 просто запросит другой range с того же самого файла, и сразу в байтах.

Более вероятно что он запросит другой chunk :). Правда модуль нжинкса для этого все же не надо.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено пох. , 06-Мрт-20 10:53 
> Этот фокус не особо работает с "безразмерным потоком" (трансляция с камеры).

дык а какой фокус с ним работает-то?

Где у него "старт", и кто тебе будет хранить произвольный фрагмент при прямой трансляции? Так что рисуем grayed slider и перестаем обрабатывать события от него, делов...


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


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 09-Мрт-20 00:09 
> дык а какой фокус с ним работает-то?

Дык посмотри на dash например. Сделали отдельно хидеры потоков и потом в чанки энного размера складируют. Ну а плеер грузит чанки по мере надобности. Старые можно удалять, можно не удалять, смотря хочется ли оставить поток на потом, или он совсем live (ну, если старые чанки снесли, значит посмотреть их уже не выйдет).

Сие правда требует достаточно мозгастый плеер. Ну и adaptive оно потому что ежели плеер видит что бандвиза или проца не хватило - следующий чанк он может и более тощий уже качать, если несколько вариантов есть. В принципе достаточно здравая по меркам вебмакак конструкция :)

> Где у него "старт",

Либо где поток начался, если его решили еще и хранить, либо там какой чанк актуален на сейчас.

> и кто тебе будет хранить произвольный фрагмент при прямой трансляции?

Сервер. Кусочками. Ютуб так делает, например. Да и не только он.

> Так что рисуем grayed slider и перестаем обрабатывать события от него, делов...

Это если решено не хранить. А если хранить то можно смотреть "с отставанием от реалтайма". Ну как, плеер будет тянуть старые чанки, сервак будет складировать новые. Можно даже ускоренно перемотать если не интересно, плеер пойдет качать более свежие чанки.

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

Гугл по этому поводу забавно видео кодирует: Q-based + верхний лимит на битрейт. Если сцены простые, оно жрет столько битов сколько реально надо. На сложных оно не сожрет выше верхнего лимита - и всегда можно зарезать клиента вот в этих пределах.

Еще у них плеер видео грузит только если юзер его смотрит. А если не смотреть, новый чанк тягается только если в буфере менее 120 секунд. Иначе забывается, экономя гугле бандвиз. Юзерь может ведь и забыть про видео, и вообще.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 06-Мрт-20 15:23 
На трансляция на сайтов телеканалов часто можно поскролить видео.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 13:12 
Самое главное, копирайты-то поправили на Рамблеровские или нет?

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 15:12 
Нет простой бумажный конверт в адрес людей из компании Р.р  с уе  решил все вопросы.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 16:05 
Уроды долго не живут. Так что инвесторы от токсичных активов уже избавились,
а компанию разорят и спишут как банкрота скорее всего скоро, а основная статья
доходов у них кинотеатр Okko это вообще смешно. Примерно так же как гамбургеры
в отделениях банков.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 16:55 
Рамблер это СМИ, а не IT-компания. Чего стоит только их решение целый год не покупать сервера и это на заре развития поиска.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Mail23842 , 04-Мрт-20 20:47 
Вангую, что  это было решение солнцеликого гуру Ашманова.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Michael Shigorin с гексагорыныча , 05-Мрт-20 17:28 
Поскольку мне лень сейчас перечитывать ради Вас http://www.ashmanov.com/education/articles/zhizn-vnutri-puzyrya/ -- давайте Вы сами перечитаете, а потом или расскажете, где он соврал, или (с большой вероятностью) станете искать щётку, чтобы отчистить от следов лужи свою одёжку.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 13:19 
Ищу single-header http-сервер на С99.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 15:17 
https://github.com/tom-seddon/yhs

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 16:05 
Спасибо добрый человек.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 16:06 
А чем тебе libevent не подходит там вроде был HTTP сервер и во всех дистрибутивах можно найти.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 20:07 
Может тем что это _не_ http server? А так по хорошему lwan.ws советую посмотреть. Он, конечно, не single header, но таки шустрый, с удобным апи, и вообще, с ним вы сможете показывать go'пникам что умеете в микросервисы и тому подобное совсем не хуже :)

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 14:53 
>Запрещено указание нескольких строк "Host" в заголовке запроса;

это чтобы обходить ДПИ было сложнее?


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 17:46 
Конечно. Следователь в СИЗО лично коммит писал.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 04-Мрт-20 18:14 
> это чтобы обходить ДПИ было сложнее?

Ага, специальный прокси HelloDPI подставляет в каждый запрос заголовки Host со всеми запрещенными хостнеймами, которые есть в реестре. В результате человек жалуется, что клятi москали весь интернет побанили, а у всех остальных всё работает.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 05-Мрт-20 22:02 
А выпуск Сысоева уже состоялся?

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено товарищ майор , 06-Мрт-20 10:55 
доброе у вас сердце, Штирлиц. Нет, пусть пока посидит.


"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 06-Мрт-20 15:15 
Отпустили но дело не закрыли.

"Выпуск nginx 1.17.9 и njs 0.3.9"
Отправлено Аноним , 10-Мрт-20 15:34 
> Интерпретатор njs реализует стандарты ECMAScript и позволяет

Очень хотим етот интерпретатор как standalone решение для кастомизации нашего решения. Можно как-то его отдельной библиотекой сделать?