Так вот почему, оказывается, телевизор так долго переключает каналы…
*шутка, но не смешно…
Блокировка этих адресов будет работать до первого обновления, т.к. производителю ничто не мешает их изменить. Блокировками вообще не решить этой проблемы.
До тех пор, пока законодательно не запретят подобную деятельность таким образом, чтобы компания начала нести реальные убытки в денежном эквиваленте, ситуация не изменится. До этих пор компания, которая занимается слежкой, будет иметь конкурентное преимущество перед другой компанией, которая не занимается, ибо тех, кто «читает хабр» — меньшинство.
Сегодня в голову пришла мысль, что в качестве генератора случайных чисел можно использовать убитую в ноль флешку, у которой сыпется память из-за очень большого колличества перезаписей… Записываем на флешку псевдослучайную последовательность чисел, а считываем уже случайную…
Надо будет эксперимент провести… как раз нарисовался образец…
Я предложил ссылку на альтернативный VPN как раз для пользователей, а не для сайтов, просто гораздо дешевле, если им не нужно пользоваться 24*7.
Я совершенно с вами согласен, более того, именно это и хотел сказать. Видимо, просто не очень четко выразился.
Кажется, что проще арендовать VPS и вывести весь свой траффик из-под юрисдикции РФ. Вместо того, чтобы делать это «per website».
Тем более, что на хабре есть замечательная статья, про то как сделать это за пять минут.
Не пойму, почему x += n должно разворачиваться компилятором в x = x + n?
В языке С# тип int — синоним структуры Int32, которая является потомком Object. При его использовании применяются все те-же правила, которые работают для любых типов с перегруженными операторами.
В языке C# невозможно перегрузить операторы +=, -=, /=, и *=. Они всегда разворачиваются в соответствующие операторы +, -, *, / c присвоением. Присвоение невозможно перегрузить. Операторы инкремента перегрузить можно, но они обязаны создавать копию объекта и менять уже её, а не модифицировать состояние исходного.
Внутри CLR работает стековая машина.
Выражение i++ транслируется в:
load i
duplicate
call operator++
store i
На стеке остается исходное значение i.
Выражение ++i транслируется в:
load i
call operator++
duplicate
store i
На стеке остается измененное значение i.
Соответственно в языке С# невозможно перегрузить постфиксный и префиксный операторы инкремента отдельно.
Выражение i+=expr транслируется в:
load i
<код expr>
call operator +
store i
Сложив два кусочка кода и выполним в уме.
Получается 6.
При вызове Dispose у контейнера освобождается всё что в контейнере заргистрировано.
Это относится и к дочернему контейнеру.
Конечно же можно забыть вызвать Dispose у дочернего контейнера, а можно забыть сделать дочерний контейнер. А можно ещё сделать десять других ошибок.
*шутка, но не смешно…
Блокировка этих адресов будет работать до первого обновления, т.к. производителю ничто не мешает их изменить. Блокировками вообще не решить этой проблемы.
До тех пор, пока законодательно не запретят подобную деятельность таким образом, чтобы компания начала нести реальные убытки в денежном эквиваленте, ситуация не изменится. До этих пор компания, которая занимается слежкой, будет иметь конкурентное преимущество перед другой компанией, которая не занимается, ибо тех, кто «читает хабр» — меньшинство.
Надо будет эксперимент провести… как раз нарисовался образец…
Я совершенно с вами согласен, более того, именно это и хотел сказать. Видимо, просто не очень четко выразился.
Тем более, что на хабре есть замечательная статья, про то как сделать это за пять минут.
В языке С# тип int — синоним структуры Int32, которая является потомком Object. При его использовании применяются все те-же правила, которые работают для любых типов с перегруженными операторами.
В языке C# невозможно перегрузить операторы +=, -=, /=, и *=. Они всегда разворачиваются в соответствующие операторы +, -, *, / c присвоением. Присвоение невозможно перегрузить. Операторы инкремента перегрузить можно, но они обязаны создавать копию объекта и менять уже её, а не модифицировать состояние исходного.
Внутри CLR работает стековая машина.
Выражение i++ транслируется в:
load i
duplicate
call operator++
store i
На стеке остается исходное значение i.
Выражение ++i транслируется в:
load i
call operator++
duplicate
store i
На стеке остается измененное значение i.
Соответственно в языке С# невозможно перегрузить постфиксный и префиксный операторы инкремента отдельно.
Выражение i+=expr транслируется в:
load i
<код expr>
call operator +
store i
Сложив два кусочка кода и выполним в уме.
Получается 6.
unity.codeplex.com/SourceControl/changeset/view/fbfa57574c56bd77695ecb3f963808c32849d498#Unity/Unity/Src/Lifetime/ContainerControlledLifetimeManager.cs
Это относится и к дочернему контейнеру.
Конечно же можно забыть вызвать Dispose у дочернего контейнера, а можно забыть сделать дочерний контейнер. А можно ещё сделать десять других ошибок.
В вашем примере небыло и намека на DataDependency.
Это был откровенный говнокод.