The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Выпуск nginx 1.17.9 и njs 0.3.9"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск nginx 1.17.9 и njs 0.3.9"  –2 +/
Сообщение от cat666 (ok), 04-Мрт-20, 09:34 
Я так понял из новостей, что Рэмблер, несмотря на все заявления, с них не слезает.
Ответить | Правка | Наверх | Cообщить модератору

2. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от A.Stahl (ok), 04-Мрт-20, 09:40 
А там есть ещё какие-то новости? Что-то давно не слышно было.
Ответить | Правка | Наверх | Cообщить модератору

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

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

51. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Lexemail (??), 05-Мрт-20, 00:36 
Но сих пор неясно, откуда такой порыв защитить теперь уже американскую контору( или к разговору о покупке nginx )

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

Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору

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

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

Ответить | Правка | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

73. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Lexemail (??), 06-Мрт-20, 12:42 
Удивительно, как ловко вы политизируете обычный конторный спор о правах на продукт..
Ответить | Правка | Наверх | Cообщить модератору

77. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (77), 06-Мрт-20, 17:38 
Это очень плохой прецедент для индустрии. Прецедент во многом определит решения судов по схожим делам в будущем.
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

4. "Выпуск nginx 1.17.9 и njs 0.3.9"  –2 +/
Сообщение от Аноним (4), 04-Мрт-20, 09:56 
Ты думаешь после сидения на бутылке автор не будет Рамблеру ставить палки в колеса?
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

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

Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск nginx 1.17.9 и njs 0.3.9"  +5 +/
Сообщение от Аноним (4), 04-Мрт-20, 09:57 
Я бы уж лучше китайскую openresty использовал чем сабжевый njs.
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск nginx 1.17.9 и njs 0.3.9"  –4 +/
Сообщение от Аноним (21), 04-Мрт-20, 15:56 
А с чем связано? Конкурентное преимущество какое-то или просто личное расположение к Китайцам?
Или лучное отторжение от российских дрязг? Так надо понять почему так и ведь не единая история, а пожалуй национальная идея - отжал спрятал выехал и получил гражданство..
Ответить | Правка | Наверх | Cообщить модератору

27. "Выпуск nginx 1.17.9 и njs 0.3.9"  +6 +/
Сообщение от Аноним (4), 04-Мрт-20, 16:40 
Все что ты сказал плюс неприятие всего что связано с джаваскрипт. Lua подсознательно как то больше ассоциируется с быстрым встроенным простым языком.
Ответить | Правка | Наверх | Cообщить модератору
Часть нити удалена модератором

32. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (4), 04-Мрт-20, 17:42 
Там и ~= вместо != И все равно lua по юзабельности опережает js подделки.
Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

36. "Выпуск nginx 1.17.9 и njs 0.3.9"  –2 +/
Сообщение от Аноним (34), 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) → [""]

Ответить | Правка | Наверх | Cообщить модератору

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

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

Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (64), 05-Мрт-20, 20:35 
> Это всё чушь если знать про динамическую типизацию и неявное преобразование типов.

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

Ответить | Правка | Наверх | Cообщить модератору

70. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (70), 06-Мрт-20, 03:32 
> на этой "чуши" разработчики спотыкаются регулярно

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

Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск nginx 1.17.9 и njs 0.3.9"  –3 +/
Сообщение от Аноним (70), 05-Мрт-20, 04:53 
Тоже вспоминаешь npm leftpad?

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

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

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (70), 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

Ответить | Правка | Наверх | Cообщить модератору

65. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (64), 05-Мрт-20, 20:50 
> Ну и кого из этих представителей семейства Cercopithecidæ слушать? Чью хотелку официально отражать в стандарте?

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

Ответить | Правка | Наверх | Cообщить модератору

69. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (70), 06-Мрт-20, 03:28 
Мнение представителя семейства Cercopithecidæ можно оставить без внимания в силу очевидных проблем с формулированием своих хотелок. Так, банальную конкатенацию массивов этот примат называет "сложением массисов", что уже говорит о том, что в программировании ему делать нечего.
Ответить | Правка | Наверх | Cообщить модератору

78. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (78), 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

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

Ответить | Правка | К родителю #59 | Наверх | Cообщить модератору

67. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (67), 06-Мрт-20, 00:41 
А сумма двумерных массивов создаст двумерную строку?
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

74. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним2 (?), 06-Мрт-20, 13:17 
Вот, вроде
- программирование
- алгоритмы
- математические выражения...
Ожидается присутствие хоть какой-то логики
Особенно понравилось i+1 и i-1 :)
Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

42. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (-), 04-Мрт-20, 20:12 
>  js подделки.

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

Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

35. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (34), 04-Мрт-20, 17:58 
> Индексация массивов начинается с 1 а не 0. Это все что вам нужно знать про это недоразумение.

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

Ответить | Правка | К родителю #51 | Наверх | Cообщить модератору

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

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

Ответить | Правка | Наверх | Cообщить модератору

44. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (64), 04-Мрт-20, 20:42 
У меня не компьютер, у меня ЭВМ. Тёплая, ламповая.
Ответить | Правка | Наверх | Cообщить модератору

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

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

Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (67), 04-Мрт-20, 21:03 
Т.е. если нумерация массива начнется с 1, то компьютер не загрузится?
IBM/360 об  этом не знала :)
Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

48. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним84701 (ok), 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

Ответить | Правка | К родителю #43 | Наверх | Cообщить модератору

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

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

Ответить | Правка | Наверх | Cообщить модератору

62. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (64), 05-Мрт-20, 20:38 
> Может, потому что память начинается с адреса 0?

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

Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним84701 (ok), 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)
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

82. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним84701 (ok), 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)) - и ничего, (был) самый быстрый ЯП для вычислений туеву кучу лет.

Ответить | Правка | Наверх | Cообщить модератору

83. "Выпуск 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 было?

Ответить | Правка | Наверх | Cообщить модератору

79. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (80), 08-Мрт-20, 23:29 
> Итак, вы умеет пользоваться гуглом.

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

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

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

Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

6. "Выпуск nginx 1.17.9 и njs 0.3.9"  –5 +/
Сообщение от Аноним (6), 04-Мрт-20, 10:04 
На Rust написали njs, или опять будет UB во все щели?
Ответить | Правка | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

16. Скрыто модератором  –3 +/
Сообщение от Аноним (-), 04-Мрт-20, 13:21 
Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от asdasd (?), 04-Мрт-20, 16:14 
Включите -Wall -Wextra -Werror и unsafe обертывайте в #pragma GCC diagnostic.
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

29. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (29), 04-Мрт-20, 17:21 
Уже успел написать что-то на своих «не-unfase» if-ах?
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

31. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (31), 04-Мрт-20, 17:38 
>> В C++ же весь код unsafe.

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

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

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

39. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (6), 04-Мрт-20, 19:51 
Прочитайте документацию Rust по приведённой выше ссылке. UB в Rust не только в unsafe блоках
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

15. Скрыто модератором  –3 +/
Сообщение от Аноним (-), 04-Мрт-20, 13:20 
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

22. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (21), 04-Мрт-20, 15:58 
Сложно по ссылке нажать чистый канонический С.

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

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

Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

56. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (55), 05-Мрт-20, 01:27 
> Блин не пойму чего они все еще на меркуриале?

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

Ответить | Правка | Наверх | Cообщить модератору

63. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (64), 05-Мрт-20, 20:39 
Поддержка второго питона в 2020 году — крайне увлекательное занятие. Если хоть немного разума осталось — избавятся от ртути.
Ответить | Правка | Наверх | Cообщить модератору

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

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

Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

8. "Выпуск nginx 1.17.9 и njs 0.3.9"  –2 +/
Сообщение от nelsonemail (??), 04-Мрт-20, 11:03 
>> Интерпретатор njs реализует стандарты ECMAScript и позволяет расширять возможности nginx по обработке запросов с помощью скриптов в конфигурации.

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

Ответить | Правка | Наверх | Cообщить модератору

9. "Выпуск nginx 1.17.9 и njs 0.3.9"  +2 +/
Сообщение от Аноним (4), 04-Мрт-20, 11:34 
Lua уже прикручена и называется openresty.
Ответить | Правка | Наверх | Cообщить модератору

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

Ответить | Правка | Наверх | Cообщить модератору

17. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (17), 04-Мрт-20, 14:12 
mp4 это не только flash, это еще и куча всяких десктопных и мобильных клиентов вокруг систем видеонаблюдения и подобного.
Ответить | Правка | Наверх | Cообщить модератору

40. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (-), 04-Мрт-20, 20:05 
А что, он не умеет грузить MP4 "просто браузеру"? Ну тады ему амба. Впрочем, нафига он нужен, при наличии dash...
Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

49. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от пох. (?), 04-Мрт-20, 22:32 
а зачем ему это уметь, "просто браузер" и так его загружает, как обычный файл.

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

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

Ответить | Правка | Наверх | Cообщить модератору

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

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

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

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


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

Ответить | Правка | Наверх | Cообщить модератору

81. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (-), 09-Мрт-20, 00:09 
> дык а какой фокус с ним работает-то?

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

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

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

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

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

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

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

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору

76. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (76), 06-Мрт-20, 15:23 
На трансляция на сайтов телеканалов часто можно поскролить видео.
Ответить | Правка | К родителю #53 | Наверх | Cообщить модератору

13. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (13), 04-Мрт-20, 13:12 
Самое главное, копирайты-то поправили на Рамблеровские или нет?
Ответить | Правка | Наверх | Cообщить модератору

19. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (4), 04-Мрт-20, 15:12 
Нет простой бумажный конверт в адрес людей из компании Р.р  с уе  решил все вопросы.
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (21), 04-Мрт-20, 16:05 
Уроды долго не живут. Так что инвесторы от токсичных активов уже избавились,
а компанию разорят и спишут как банкрота скорее всего скоро, а основная статья
доходов у них кинотеатр Okko это вообще смешно. Примерно так же как гамбургеры
в отделениях банков.
Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

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

46. "Выпуск nginx 1.17.9 и njs 0.3.9"  –3 +/
Сообщение от Mail23842 (?), 04-Мрт-20, 20:47 
Вангую, что  это было решение солнцеликого гуру Ашманова.
Ответить | Правка | Наверх | Cообщить модератору

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

14. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (14), 04-Мрт-20, 13:19 
Ищу single-header http-сервер на С99.
Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (4), 04-Мрт-20, 15:17 
https://github.com/tom-seddon/yhs
Ответить | Правка | Наверх | Cообщить модератору

24. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (21), 04-Мрт-20, 16:05 
Спасибо добрый человек.
Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (21), 04-Мрт-20, 16:06 
А чем тебе libevent не подходит там вроде был HTTP сервер и во всех дистрибутивах можно найти.
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

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

18. "Выпуск nginx 1.17.9 и njs 0.3.9"  +1 +/
Сообщение от Аноним (18), 04-Мрт-20, 14:53 
>Запрещено указание нескольких строк "Host" в заголовке запроса;

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

Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск nginx 1.17.9 и njs 0.3.9"  –1 +/
Сообщение от Аноним (4), 04-Мрт-20, 17:46 
Конечно. Следователь в СИЗО лично коммит писал.
Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск nginx 1.17.9 и njs 0.3.9"  –2 +/
Сообщение от Аноним (34), 04-Мрт-20, 18:14 
> это чтобы обходить ДПИ было сложнее?

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

Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

66. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (66), 05-Мрт-20, 22:02 
А выпуск Сысоева уже состоялся?
Ответить | Правка | Наверх | Cообщить модератору

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

Ответить | Правка | Наверх | Cообщить модератору

75. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (76), 06-Мрт-20, 15:15 
Отпустили но дело не закрыли.
Ответить | Правка | К родителю #66 | Наверх | Cообщить модератору

85. "Выпуск nginx 1.17.9 и njs 0.3.9"  +/
Сообщение от Аноним (85), 10-Мрт-20, 15:34 
> Интерпретатор njs реализует стандарты ECMAScript и позволяет

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2020 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру