All streams
Search
Write a publication
Pull to refresh
28
0
Горбань Сергей @foxkeys

User

Send message
Это не просто плохое. А ужасное.
Добровольно вести досье на себя и друзей, да еще и во многих случаях с компроматом…
Это-ж надо додуматься!
А ведь ведут. И имя им легион.
Ну, если вы вообще имеете дело с индексированными массивами — то счет с нуля более «правилен» математически (не улетает в переполнение — в минус — на границах диапазона). Почитайте по ссылкам, там в общем-то довольно понятно. Хотя и на английском. Да, да тоже терпеть не могу математику — а куда деваться...

Ну а если вы работаете на высоком уровне — то это скорее «старость» языка. Современные языки для перебора коллекций используют итераторы и индексами там и не пахнет. Никакими…
foreach($cmments as $comment){ }

Так что, возвращаясь к исходному вопросу — для «старых» языков удобство в том, что при счете с нуля вы наделаете меньше ошибок :-)
А для новых — индексы и вовсе не очень-то нужны, да и сделать можно любые, какие хочется (привет итераторам)
Именно, это техническая особенность адресации современных процессоров, которую, конечно, можно скрыть (на этапе компиляции) — но зачем?
Это создаст дополнительный слой преобразования, головную боль с переполнениями и отладкой (когда в исходниках одно — а в ассемблерном режиме — совсем даже другое).
А оно надо?
Наверное вот: поэтому
Вот «оригинал»

Да еще потому, что в низкоуровневых языках (ассемблер) для адресации элементов используется указатель на начало массива, а номер элемента является смещением. Соответственно, адрес первого элемента это [указатель]+0, а не [указатель]+1
Вообще говоря, ассемблерные вставки в не самом новом языке Паскаль (во всех средах, Turbo Pascal, Delphi, Lazarus) никто вроде не отменял. Равно как и возможность дебажить / просматривать в нативных средах разработки ассемблерный код.
Так что с новизной тут как-то не очень…
Наличие while в TSQL коде в большинстве случаев означает плохое знание самого TSQL.
99% операций могут и должны делаться стандартными операторами SELECT/UPDATE
С ходу — только один безусловный случай когда применение курсоров оправдано — вызов других процедур для каких-то строк выборки. Причем, зачастую, и их можно заменить «неправильными» функциями, меняющими данные (их вызов будет осуществлен при выборке самим TSQL). В других случаях — для построчной обработки выгодно использовать триггеры.
Одним словом, случаев безусловной надобности курсоров в реальных проектах очень мало.
Напрасно вы так. При грамотном применении — TSQL очень хороший инструмент.
А два полных высших как считать?
:-)
А как по вашему софт «может полагать что в данных есть ошибка»?

Как вы себе представляете обработку на прикладном уровне ответа подсистемы хранения вида «вот вам данные, содержащие ошибку с вероятностью 0,0005%»?

Какова степень полезности такого ответа подсистемы хранения для прикладного уровня?
Прошу прощения, «промахнулся» — ответ ниже в основной ветке.
Вы путаете надежность и честность.

Никто не требует от подсистемы хранения 100% сохранности и правильности данных. Но требуют 100% информации о факте сохранности и правильности данных.

Это не дно и то же!

Если узел недоступен или поврежден — задача подсистемы хранения информировать об этом приложение, возможно, опционально, предложив запрошенную информацию в виде «что смогла — то нашла».

Таким образом, приложения готовые работать с неполными данными — смогут продолжить работу. А не готовые — сообщат о фатальном сбое.

То, что вы предлагаете может стать расширением протокола обмена.
Но вот «тихая» подмена данных (или информации о состоянии данных — при записи например) в рамках существующих протоколов IO никак не допустима.
Минусую выводы статьи.

Хранение данных — не та область, где допустимы какие-бы то ни было потери.

В теории — 1 убитый байт может сделать все данные (единицы хранения) полностью негодными к использованию. Причем «без вариантов» исправления (на существующем уровне всего стека технологий).

Согласитесь, даже один битый байт в системном файле ОС «живущей» в таком облачном хранилище может привести к чему угодно, включая полный фатальный выход из строя системы в целом.

Ведь все дело в том, какой слой абстракции ответственен за целостность данных. Сейчас за него отвечает устройство хранения — просто потому, что нереально (и экономически не обосновано, в первую очередь) перекладывать этот контроль на уровень приложения. Вы вообще себе представляете контроль целостности всех структур данных всех приложений? И обработку всех возможных повреждений?

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

И задача подсистемы хранения или выполнить команду и доложить об успехе — или честно сообщить, что вышел облом. А никак не строить предположения на тему «а может приложение обойдется без этих ХХ байт?», «А может ему сойдут эти байты их прошлого бэкапа?»
Вы таки видели на нашей почте сервис???
Это в теории.

А на практике — по данным ЛК за 2013 год — топовая уязвимость CVE-2011-3402
Цитирую
На втором месте расположилась категория «Windows компоненты», которая включает уязвимые файлы семейств ОС Windows, не относящиеся к Internet Explorer и программам Microsoft Office – их мы выделили отдельно. В этой категории самое большое количество атак приходится на обнаруженную в win32k.sys уязвимость CVE-2011-3402, которую впервые использовал Duqu.


Пруф 1: www.securelist.com/ru/analysis/208050822/Kaspersky_Security_Bulletin_2013_Osnovnaya_statistika_za_2013_god
Пруф 2: www.securelist.com/ru/blog/207768987/Obnovleniya_Microsoft_za_dekabr_2013_g_patch_kriticheskoy_0_day_uyazvimosti_ekspluatiruemoy_v_dikoy_prirode

Также можете сравнить кол-во атак с 2012 годом, например. И увидите, что не смотря на снижение доли ХР до 25% (грубо) ситуация с кол-вом заражений, численностью ботнетов и т.п. — ну никак не улучшилась
Т.е. реально никакой пользы от нововведений MS просто нет.

Я отнюдь не против новых технологий. Но дело-то в том, что ничего реально нового M$ не предлагает и не делает.
На то есть объективные причины. И причина номер один — совместимость с существующим софтом.

А все эти DEP, ASLR и прочее баловство — это мелкие твики, раздутые маркетингом.
Запрет на исполнение кода из памяти данных существует еще, дай бог памяти, с 386 процессоров… А DEP это те же яйца- только в профиль. И с такой же эффективностью.

ASLR — ноги растут еще из 97 года (если верить Википедии).

UAC — вообще бесполезная вещь. За примерами далеко не пойду. Привет от Яндекс-диска…
Зря сомневаетесь.

Есть личный опыт, так что знаю точно. Очень много. И с XP и с 2000 и с NT (но это уже совсем старички)
Сами-то станки как правило управляются разными ПЛК. Но вот к ним «в комплекте» идут компы со всякими разными интерфейсными картами. Часто — проприетарщина голимая, втыкаемая как в PCI так и в LPT, USB, COM…
И вот к этим-то железкам дрова «ровесники» станка. И новые для вас никто делать не собирается.

И получается очень неприятная штука. Обновлять ОС нельзя. А дырки-то затыкать надо. Ибо иногда комп нужно и в сеть выткать — для оперативности, да, впрочем, и на флэшке всякую дрянь притащить могут.

Так что, проблема имеет место быть.
Прошу прощения. Глюк. «правильный» пост выше. Правда и его обрезало…
Дешевле. Но
1. LibreOffice !== Microsoft office (причем, даже если брать без Access… Проблем совместимости документов с libre чуть более чем дофига…

2. Есть еще такая опция как 1С. Пока с линухом не очень дружит… Костыли есть — но они такие костыли…

Насчет безопасности…
Тут выше в другой ветке пишут. И DEPa в хрюше нету и ASLR и UAC (чур меня, чур!) тоже нет. Какой ужас.
Но, одна мелочь:

Дешевле. Но
1. LibreOffice !== Microsoft office (причем, даже если брать без Access… Проблем совместимости документов с libre чуть более чем дофига…

2. Есть еще такая опция как 1С. Пока с линухом не очень дружит… Костыли есть — но они такие костыли…

Насчет безопасности…
Тут выше в другой ветке пишут. И DEPa в хрюше нету и ASLR и UAC (чур меня, чур!) тоже нет. Какой ужас.
Но, одна мелочь:
osvdb.org — делаем выборку по вендору.
Смотрим последнюю десятку уязвимостей…
Офигеваем. ВСЕ дырки работают по vista/7/8
100764: Microsoft Office Shared Component Crafted Webpage Handling Address Space Layout Randomization (ASLR) Bypass
100759: Microsoft Windows Win32k.sys Crafted TrueType Font (TTF) File Handling DoS
100760: Microsoft Windows portcls.sys Driver Memory Object Handling Double-fetch Local Privilege Escalation

И т.д.
Даже хуже. Большая часть списка работает под > XP…
И что из этого нужно для типично офисной машины?
Почта + скайп+ ворд?

Учитывая, что компы, лицензии на винду и офис уже куплены?
Вот, поставьте себя на место владельца компании. У вас есть прекрасно справляющийся со своей работой комп с чем-то 1-2х ядерным, на 2-3ГГц
Вы будете покупать новый комп (9000) + винда (6000) + офис (9000) + работа (2400 [8 часов при почасовой ставке 300, учитываем простой сотрудника и время на перенос данных и настройку])?

Отдать практически косарь баксов на каждый хост за «няшные цветовые решения»?
Причем, цены я брал по уровню плинтуса и с «самосбором». Брэндовые решения — это где-то вдвое дороже.

Не надо устраивать гонку версий рад самих версий. ОС — это всего лишь инструмент, решающий довольно узкий круг задач, на самом деле.
А свистелки-перделки это не инструмент…
А что есть в семерке (или даже восьмерке) чего нет на ХР?

Information

Rating
Does not participate
Location
Калининград (Кенигсберг), Калининградская обл., Россия
Date of birth
Registered
Activity