Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет mumuntu ([info]mumuntu)
@ 2003-12-04 17:24:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
[Politics, Conservatism, Society] Родина в беде
Последние часов 12-ть все в ЖЖ обсуждают какую-то провокац-манипуляцию, устроенную в ЖЖ кем-то из местных консерв-фашистов (или, наоборот, против консерв-фашистов); мелькают фамилии и слова: Холмогоров, Галковский, Крылов, френдоцид; пишут свои видения происходящего психологи, пиарщики и журналисты.
Ну и дерьмо.

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

http://www.gentoo.org/security/en/glsa/glsa-200312-01.xml (здесь по-русски),
http://savannah.gnu.org/statement.html (здесь по-русски).

Не успели коллеги из RedHat и SuSE security teams разобраться с недавним взломом серверов проекта Debian, как тут же последовала серия новых успешных атак.
Я, не будучи, правда, профессиональным аналитиком, уверен, что на эти акции Microsoft потратила столько средств, что можно было бы всю русскую либерально-консервативную фашшизу купить и еще скелетрона впридачу. Вот где политика!
Если кто-нибудь из вас, друзья, думает, что право избирать и быть избранным не имеет отношения к праву читать, то он глубоко заблуждается. По сути это одно и то же.

Билл, Джордж и Владимир!
Верните нам право читать!

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


(Читать комментарии) - (Добавить комментарий)

Re: Не всегда.
[info]amirul@lj
2003-12-05 07:36 (ссылка)
Проверка границ при всех обращениях к массиву - тоже ОЧЕНЬ плохо. Очень часто можно обойтись одной проверкой перед циклом или вообще без проверок, если источник надежный (то бишь или не от юзера, или от юзера, но уже проверенный). То что в C до сих пор ленятся и не проверяют размеры буфера в нужных местах - это от лени, статическая проверка не всегда (вернее в большинстве случаев) невозможна, а динамическая - оверхед (причем опять таки в большинстве случаев - совершенно лишний). Вот если бы как в некоторых странах за воровство, программерам отрезали палец за непроверенные границы юзерского ввода - было бы гораздо меньше секурити проблем :-) (как никак, но вроде бы 2/3 всех уязвимостей - переполнение буфера)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Динамическая проверка.
[info]potan@lj
2003-12-05 07:42 (ссылка)
Если с массивами работать через итераторы, то проверка как раз и будет происходить один раз перед циклом, и вообще может быть реализованна статически.
Кроме того, оптимизирующий компилятор способен убрать проверки там, где они на самом деле не нужны. Если конечно писать с учетом такой оптимизации.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Динамическая проверка.
[info]amirul@lj
2003-12-05 08:45 (ссылка)
Если с массивами работать через итераторы
Не всегда хватает последовательного доступа (если я правильно понял, что имеется в виду под словом итератор). Например для той же хеш-таблицы, да и для большинства эффективных методов сортировки и поиска требуется произвольный доступ. В этом случае никогда не известно каким будет следующий индекс. А насчет оптимизирующих компиляторов - согласен - пусть компилятор занимается рутиной, у него это лучше получается. У меня недавно была дискуссия на эту тему, где мне пытались доказать, что это отстой. Кроме собственно самого этого тезиса, я не увидел ни одного аргумента в поддержку такой теории :-)

В том же C++ есть два метода доступа к элементу контейнера с произвольным доступом (vector, deque) - operator[] и at(). Без проверки границ и с проверкой соотвественно. Пользуйтесь на здоровье :-)

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Динамическая проверка.
[info]potan@lj
2003-12-05 10:02 (ссылка)
Если доступ не последовательный, то грантировать правиьность доступа значительно сложнее. Скорее всего проверкой перед циклом не отделаешься.

stl конечно крут, но включать/выключать проверки хорошо бы ключиком (-DDEBUG=1).
Вообще C++ требует столько внимания, что бы писать и красиво, и эффективно, и безопасно, что нафиг он нужен. Все области применения этого монстра хорошо покрываются Cyclon (системные и realtume) и OCaml (приклодные задачи).

(Ответить) (Уровень выше)


(Читать комментарии) -