Discussion:
шифрование. чуть не спились :-/
(слишком старое сообщение для ответа)
Vitaliy Aksyonov
2006-11-01 20:52:32 UTC
Permalink
Привет, Alim!

20 Окт 06 20:25, ты писал(а) Jenya Dyatlov:

JD>> Вчера была очередная лекция по шифрованию %)
JD>> Hу как обычно, рассматриваем очередной алгоритм шифрования,
JD>> ... зашифровали одно слово, и тут я чего-то запутавшись попросил
JD>> препода продемонстрировать расшифрование... Ууу... Туго было фсем
JD>> ;))
AF> Мда...
AF> Если какой-нить ГОСТ 28147-89 или AES у доски на пpимеpах pазбиpать,
AF> то и пpосто так спиться можно. имхо, конечно.

Что там разбирать?

ЗЫ. Кстати, гостовый алгоритм очень стоек. Писали мы как-то лабы с
использованием ГОСТ и ДЕС. :)

Best regards, Vitaliy.

... Год: [******************************.....] 86.30% completed
Alim Fedoseev
2006-11-02 06:14:54 UTC
Permalink
Hello, Vitaliy !

Once (Wednesday November 01 2006) at 23:52 someone named Vitaliy Aksyonov wrote
to Alim Fedoseev. So, look here:
AF>> Если какой-нить ГОСТ 28147-89 или AES у доски на пpимеpах
AF>> pазбиpать,то и пpосто так спиться можно. имхо, конечно.
VA> Что там разбирать?
Имелось в виду, рассказывать алгоритм на примерах. Для RSA легко привести
простой и понятный пример.

--
Best regards,
Alim Fedoseev
Vladimir Osokin
2006-11-01 18:28:30 UTC
Permalink
Привет, Alim!

20 Окт 06 20:25, ты писал(а) Jenya Dyatlov:

JD>> Вчера была очередная лекция по шифрованию %)
JD>> Hу как обычно, рассматриваем очередной алгоритм шифрования,
JD>> ... зашифровали одно слово, и тут я чего-то запутавшись попросил
JD>> препода продемонстрировать расшифрование... Ууу... Туго было фсем
JD>> ;))
AF> Мда...
AF> Если какой-нить ГОСТ 28147-89 или AES у доски на пpимеpах pазбиpать,
AF> то и пpосто так спиться можно. имхо, конечно.
Везет же... Методы шифрования разбираете... Да еще и на примерах... Hам бы так.
А то пока нам только бейсик обещают еще только. Сижу вот на инфе, пока
остальные изучают темы типа логических операций (коньюнкции, дизьюнкции всякие
- нет, что бы просто по-русски AND, OR, XOR, NOT и пр. написать), в отдельном
окошечке сижу и на етом [покоцано] бейсике программки пишу для нахождения
простых чисел в качестве примера паре моих одноклассников, которые решили
заняться программированием. Ужас!!! :-E

Выпей, может, выйдет толк
... Обретешь свое добро
Artem Ezhov
2006-11-04 21:35:04 UTC
Permalink
Hello Vladimir.

01 Nov 06 21:28, you wrote to Alim Fedoseev:

AF>> Если какой-нить ГОСТ 28147-89 или AES у доски на пpимеpах
AF>> pазбиpать, то и пpосто так спиться можно. имхо, конечно.
VO> Везет же... Методы шифрования разбираете... Да еще и на примерах...
VO> Hам бы так. А то пока нам только бейсик обещают еще только. Сижу вот
VO> на инфе, пока остальные изучают темы типа логических операций
VO> (коньюнкции, дизьюнкции всякие - нет, что бы просто по-русски AND, OR,
VO> XOR, NOT и пр. написать),

У тебя ещё всё впереди =), а коньюнкциям с дизьюнкциями привыкай, то ли ещё
будет =). Меня вот на втором курсе - уже задолбало =). Куда не плюнь -
дискретка, матлогика, архитектура ЭВМ - везде этого добра навалом, таблицы
истинности из 16 строк ручками - обычное дело. То, что в школе было - никчёмное
жевание соплей по сравнениюс этим. А что до прог - то в данный момент был как
раз занят тем, что делал знакомому первокуру его задания по проге на паскале,
типа "найти число элементов массива, удовлетворяющих таким-то условия", или
"найти сумму такого-то рядас заданой точностью".

Artem
Vladimir Osokin
2006-11-06 20:44:13 UTC
Permalink
Привет, Artem!

05 Hоя 06 00:35, ты писал(а) мне:

AE> У тебя ещё всё впереди =), а коньюнкциям с дизьюнкциями привыкай, то
AE> ли ещё будет =). Меня вот на втором курсе - уже задолбало =).
Я просто привык к стандартным обозначениям, а не к подобным :(

AE> Куда не плюнь - дискретка, матлогика, архитектура ЭВМ - везде этого
AE> добра навалом, таблицы истинности из 16 строк ручками - обычное дело.
AE> То, что в школе было - никчёмное жевание соплей по сравнениюс этим. А
AE> что до прог - то в данный момент был как раз занят тем, что делал
AE> знакомому первокуру его задания по проге на паскале, типа "найти число
AE> элементов массива, удовлетворяющих таким-то условия", или "найти сумму
AE> такого-то рядас заданой точностью".
Везет...

Выпей, может, выйдет толк
... Обретешь свое добро
Oleg Lobachev
2006-11-07 20:47:42 UTC
Permalink
Say yes, Vladimir. At least say hello.

06 Nov 06 23:44, you wrote to Artem Ezhov:

VO> Я просто привык к стандартным обозначениям, а не к подобным :(

Терпи казак, атаманом будешь.

Из недавего:

- Знаешь куме, як воны преобразованние Фурье назвають?
- Як?
- "Свертка с функции с гармоничным колебанием."
- Повбывав бы...

Greetingz Oleg
Vitaliy Aksyonov
2006-11-07 20:44:48 UTC
Permalink
Привет, Vladimir!

06 Ноя 06 23:44, ты писал(а) Artem Ezhov:

AE>> У тебя ещё всё впереди =), а коньюнкциям с дизьюнкциями
AE>> привыкай, то ли ещё будет =). Меня вот на втором курсе - уже
AE>> задолбало =).
VO> Я просто привык к стандартным обозначениям, а не к подобным :(

Это вполне стандартные обозначения. :)

[...skipped...]

Best regards, Vitaliy.

... Год: [*******************************....] 87.95% completed
Vladimir Osokin
2006-11-08 16:54:28 UTC
Permalink
Привет, Vitaliy!

07 Hоя 06 23:44, ты писал(а) мне:

AE>>> У тебя ещё всё впереди =), а коньюнкциям с дизьюнкциями
AE>>> привыкай, то ли ещё будет =). Меня вот на втором курсе - уже
AE>>> задолбало =).
VO>> Я просто привык к стандартным обозначениям, а не к подобным :(
VA> Это вполне стандартные обозначения. :)
Hе, я имел в виду AND, OR, XOR, NOT, SHL, SHR и подобным.

Выпей, может, выйдет толк
... Обретешь свое добро
Alex Mizrahi
2006-11-09 18:16:55 UTC
Permalink
(message (Hello 'Vladimir)
(you :wrote :to '(Vitaliy Aksyonov) :on '(Wed, 08 Nov 2006 19:54:28 +0300))
(

VO>>> Я просто привык к стандартным обозначениям, а не к подобным :(
VA>> Это вполне стандартные обозначения. :)
VO> Hе, я имел в виду AND, OR, XOR, NOT, SHL, SHR и подобным.

и как будет по твоим "обозначениям" СДНФ (совершенная дизъюнктивная
нормальная форма)? оровая форма, что-ли?

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

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Oleg Lobachev
2006-11-07 20:46:34 UTC
Permalink
Say yes, Artem. At least say hello.

05 Nov 06 00:35, you wrote to Vladimir Osokin:

AE> никчёмное жевание соплей по сравнениюс этим. А что до прог - то в данный
AE> момент был как раз занят тем, что делал знакомому первокуру его задания по
AE> проге на паскале, типа "найти число элементов массива, удовлетворяющих
AE> таким-то условия", или "найти сумму такого-то рядас заданой точностью".

/me хихикая вспоминает "доказательство", что геометрический ряд сходится.

Greetingz Oleg
alexander Ivanov
2006-11-08 19:14:35 UTC
Permalink
Ёлочка, хой!

OL> /me хихикая вспоминает "доказательство", что геометpический pяд
OL> сходится.

но сходится-то он где-то вдалеке=)
Счастья тебе, Oleg!

... *IDEI MARKSA, ENGELSA, LENINA -- NIESMIERTELNY!*
Oleg Lobachev
2006-11-03 16:11:46 UTC
Permalink
Say yes, Vladimir. At least say hello.

01 Nov 06 21:28, you wrote to Alim Fedoseev:

AF>> Если какой-нить ГОСТ 28147-89 или AES у доски на пpимеpах pазбиpать,
AF>> то и пpосто так спиться можно. имхо, конечно.

VO> Везет же... Методы шифрования разбираете... Да еще и на примерах... Hам бы
VO> так.

Хехъ. Hе надо их на примерах.

VO> А то пока нам только бейсик обещают еще только. Сижу вот на инфе,

Омг.

VO> пока остальные изучают темы типа логических операций (коньюнкции,
VO> дизьюнкции всякие - нет, что бы просто по-русски AND, OR, XOR, NOT и пр.
VO> написать),

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

VO> в отдельном окошечке сижу и на етом [покоцано] бейсике программки пишу
VO> для нахождения простых чисел в качестве примера паре моих
VO> одноклассников, которые решили заняться программированием. Ужас!!! :-E

Действительно, ужас. Дедушка Эрастофен еще когда жил... ;)

Greetingz Oleg
Jenya Dyatlov
2006-11-09 20:34:00 UTC
Permalink
Приветствую тебя, Vitaliy!

09 Nov 06 23:23, Vitaliy Aksyonov -> Alex Mizrahi:

VO>>> Hе, я имел в виду AND, OR, XOR, NOT, SHL, SHR и подобным.
AM>> и как будет по твоим "обозначениям" СДHФ (совершенная дизъюнктивная
AM>> нормальная форма)? оровая форма, что-ли?
VA> Сильно сказал. ;)

"Я знаю кунг-фу, джиу-джитсу, ... и ещё много-много страшных слов!" ? ;-)

С уважением, Jenya
Vitaliy Aksyonov
2006-11-09 20:23:16 UTC
Permalink
Привет, Alex!

09 Ноя 06 21:16, ты писал(а) Vladimir Osokin:

VO>>>> Я просто привык к стандартным обозначениям, а не к подобным :(
VA>>> Это вполне стандартные обозначения. :)
VO>> Hе, я имел в виду AND, OR, XOR, NOT, SHL, SHR и подобным.

AM> и как будет по твоим "обозначениям" СДHФ (совершенная дизъюнктивная
AM> нормальная форма)? оровая форма, что-ли?

Сильно сказал. ;)

AM> я тебе по-секрету скажу, что математика на самом деле куда "круче" чем
AM> программирование на всяких паскалях и сях. к примеру, то что
AM> придумает математик потом может закодировать любой ПТУшник. но
AM> заменить математика ПТУшниками -- никак не возможно.

+1

Best regards, Vitaliy.

... Год: [*******************************....] 88.49% completed
Jenya Dyatlov
2006-11-09 20:30:00 UTC
Permalink
Приветствую тебя, Alex!

09 Nov 06 21:16, Alex Mizrahi -> Vladimir Osokin:

AM> я тебе по-секрету скажу, что математика на самом деле куда "круче" чем
AM> программирование на всяких паскалях и сях. к примеру, то что придумает
AM> математик потом может закодировать любой ПТУшник. но заменить математика
AM> ПТУшниками -- никак не возможно.

1. Hе каждый ПТУшник закодирует то, что придумает математик. Я вообще
слабо верю что в ПТУ могут подготовить хотя бы "средненького" программиста.

2. Математик не напишет то, что может написать программист.
Специальность у него не та. Математик - он теоретик, а программер -
практик.

3. И уж математик совсем никуда не годен, если говорить о
новейших технологиях и решениях, ведь он также остаётся всего лишь
теоретиком...

С уважением, Jenya
Vitaliy Aksyonov
2006-11-09 20:54:38 UTC
Permalink
Привет, Jenya!

09 Ноя 06 23:30, ты писал(а) Alex Mizrahi:

AM>> я тебе по-секрету скажу, что математика на самом деле куда
AM>> "круче" чем программирование на всяких паскалях и сях. к примеру,
AM>> то что придумает математик потом может закодировать любой
AM>> ПТУшник. но заменить математика ПТУшниками -- никак не возможно.
JD> 1. Hе каждый ПТУшник закодирует то, что придумает математик. Я
JD> вообще слабо верю что в ПТУ могут подготовить хотя бы "средненького"
JD> программиста.

Могут. :)

JD> 2. Математик не напишет то, что может написать программист.
JD> Специальность у него не та. Математик - он теоретик, а программер -
JD> практик.

Вот тут ты в корне не прав. Хороший программер тоже должен очень хорошо знать
теорию. А практик - это называется "кодер". Он тупо пишет код... Вот когда
будешь учиться на 4-5-м курсе, вспомнишь мои слова.

JD> 3. И уж математик совсем никуда не годен, если говорить о
JD> новейших технологиях и решениях, ведь он также остаётся всего лишь
JD> теоретиком...

Ты не прав.

Best regards, Vitaliy.

... Год: [*******************************....] 88.49% completed
Jenya Dyatlov
2006-11-10 05:25:00 UTC
Permalink
Приветствую тебя, Vitaliy!

09 Nov 06 23:54, Vitaliy Aksyonov -> Jenya Dyatlov:

JD>> 1. Hе каждый ПТУшник закодирует то, что придумает математик. Я
JD>> вообще слабо верю что в ПТУ могут подготовить хотя бы "средненького"
JD>> программиста.
VA> Могут. :)

Я таких ПТУ не знаю :-/

JD>> 2. Математик не напишет то, что может написать программист.
JD>> Специальность у него не та. Математик - он теоретик, а программер -
JD>> практик.
VA> Вот тут ты в корне не прав. Хороший программер тоже должен очень хорошо
VA> знать теорию. А практик - это называется "кодер". Он тупо пишет код...
VA> Вот когда будешь учиться на 4-5-м курсе, вспомнишь мои слова.

Я сужу по тому, что вижу.

JD>> 3. И уж математик совсем никуда не годен, если говорить о
JD>> новейших технологиях и решениях, ведь он также остаётся всего лишь
JD>> теоретиком...
VA> Ты не прав.

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

С уважением, Jenya
Vitaliy Aksyonov
2006-11-10 20:09:36 UTC
Permalink
Привет, Jenya!

10 Ноя 06 08:25, ты писал(а) мне:

JD>>> 1. Hе каждый ПТУшник закодирует то, что придумает математик.
JD>>> Я вообще слабо верю что в ПТУ могут подготовить хотя бы
JD>>> "средненького" программиста.
VA>> Могут. :)
JD> Я таких ПТУ не знаю :-/

Ты не можешь знать все ПТУ. :)

JD>>> 2. Математик не напишет то, что может написать программист.
JD>>> Специальность у него не та. Математик - он теоретик, а
JD>>> программер - практик.
VA>> Вот тут ты в корне не прав. Хороший программер тоже должен очень
VA>> хорошо знать теорию. А практик - это называется "кодер". Он тупо
VA>> пишет код... Вот когда будешь учиться на 4-5-м курсе, вспомнишь
VA>> мои слова.
JD> Я сужу по тому, что вижу.

См. выше. ;)

JD>>> 3. И уж математик совсем никуда не годен, если говорить о
JD>>> новейших технологиях и решениях, ведь он также остаётся всего
JD>>> лишь теоретиком...
VA>> Ты не прав.
JD> См. выше. Я не говорю что математики глупые люди, я говорю про то
JD> что
JD> вижу: большинство их них ничего толкового написать не могут.

Что ты имеешь ввиду под "написать"?

Best regards, Vitaliy.

... Год: [*******************************....] 88.77% completed
Alex Kocharin
2006-11-10 09:42:44 UTC
Permalink
,-' Hello, Vitaliy Aksyonov! How is your connection today?


JD>> 3. И уж математик совсем никуда не годен, если говорить о
JD>> новейших технологиях и решениях, ведь он также остаётся всего
JD>> лишь теоретиком...
VA> Ты не прав.

По крайней мере алгоритмы оптимизации в математике не рассматриваются (или я
ошибаюсь?).


`-._ --- Alexander Kocharin ---
John Lepikhin
2006-11-10 17:34:04 UTC
Permalink
## On Fri, 10 Nov 2006 12:42:44 +0800
## Alex Kocharin wrote to Vitaliy Aksyonov:

AK> По крайней мере алгоритмы оптимизации в математике не
AK> рассматриваются (или я ошибаюсь?).

Любая оптимизация имеет математическое обоснование. Hе говоря уж о
том, что большинство алгоритмов (нет, глобальнее: большинство методик
решения вычислительных задач) основаны на математических теориях.
Хороший алгоритмизатор - это, в первую очередь, хороший математик.

Предлагаю разобраться в терминологии. Сайтостроительство, шелл-
скрипты, программирование железок и игрушек, написание почтовых
клиентов, текстовых редакторов/процессоров и т.д. - это на 70-99%
использование готовых библиотек или алгоритмов. То есть, большинство
концептуальных элементов конечного продукта реализовано ранее.
Создание подобных продуктов, в моем понимании, - кодинг, пусть на Ruby
on Rails или на ассемблере.

Разработка алгоритмов распознавания чего-либо, AI-систем, оптимизаторов
компиляторов, решения научных задач и т.д. - это на 90% изыскание
подходящих математических моделей. В более серьёзных организациях,
занимающихся подобными разработками, ведущие программисты должны уметь
представить математически расчитанную погрешность результатов работы
алгоритма. Много современных "программистов" на это способны? Я - нет :)
--
mailto: john@{7!+30}.info
Soldatenkov Mitea
2006-11-10 18:28:47 UTC
Permalink
Привет, John Lepikhin!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
AK>> По крайней мере алгоритмы оптимизации в математике не рассматриваются
AK>> (или я ошибаюсь?).

JL> Любая оптимизация имеет математическое обоснование. Hе говоря уж о том,
Что надо математически обосновывать, в такой оптимизации работы с памятью?
void*My_Class::operator new(size_t size)
{
My_Class*ret=BeginFree;
BeginFree=ret->NextFree;
return ret;
}
void My_Class::operator delete(void*p)
{
if(p)
{
My_Class*pointer=(My_Class*)p;
pointer->NextFree=BeginFree;
BeginFree=pointer;
}
}
John Lepikhin
2006-11-11 11:31:18 UTC
Permalink
## On Fri, 10 Nov 2006 21:28:47 +0800
## Soldatenkov Mitea wrote to John Lepikhin:

JL>> Любая оптимизация имеет математическое обоснование. Hе говоря уж о том,
SM> Что надо математически обосновывать, в такой оптимизации работы с
SM> памятью?

Цепочка, одномерная ветка графа. Изучают их чуть ли не в школе. А
теперь немного развернем задачу: мы имеем полноценный граф, который
представляет у нас некую структуру зависимостей и наследия объектов.
Hам нужно проводить различные операции с этим графом. Без знания
графов тут разве что перебором.
--
mailto: john@{7!+30}.info
Alex Mizrahi
2006-11-11 14:53:37 UTC
Permalink
(message (Hello 'Soldatenkov)
(you :wrote :to '(John Lepikhin) :on '(Fri, 10 Nov 2006 21:28:47 +0300))
(

AK>>> По крайней мере алгоритмы оптимизации в математике не
AK>>> рассматриваются (или я ошибаюсь?).

JL>> Любая оптимизация имеет математическое обоснование. Hе говоря уж о
JL>> том,

SM> Что надо математически обосновывать, в такой оптимизации работы с
SM> памятью?

хех, конечно надо. подобная конструкция всегда требует памяти по максимуму.

хотя конкретно эта вообще не понятно как работает -- в каком месте
выделяются объекты? ты знаешь наперёд сколько у тебя объектов будет? (если
знаешь, то связный список -- излишество, нужно пользоваться массивом)

а в некоторых ситуациях это будет анти-оптимизацией -- т.к. это увеличивает
working set процесса, таким образом, если не влезет в оперативную память, то
произойдвёт swapping, а I/O операции с винчестером на порядки медленнее
операций с память. я уж не говорю что от подобной оптимизации приложение
может вообще не влезть в оперативную память.

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

кроме того, какая вообще от этого может быть выгода? если не учитывать что в
объектах нужна длительная инициализация, то в основном мы таким образом
избавляемся от задержек менеджера памяти.
а менеджер памяти работает по весьма сложному алгоритму поиска свободных
блоков на хипе, и очень желательно знать характеристики производительности
этого алгоритма.

кроме того, возможно имеет смысл перейти на garbage-collected модель
выделения памяти -- в этом случае выделение памяти фактически мгновенное. но
зато деаллокация идёт по весьма сложным алгоритмам. к примеру, копирующий
garbage collector копирует все "выжившие" объекты в новое место, за одно
компактируя их. таким образом получается очень хорошо что количество дохлых
объектов мало влияет на производительность. но вот количество живых влияет.
тогда использую generational GC.
в общем, спомощью GC обычнно можно достигнуть более высокой
производительности чем с традиционной моделью выделения памяти
(malloc/free). в особенности на многопроцессорных системах можно большую
часть работы делегировать отдельному потоку.
но GC имеет свои недостатки -- сборка мусора может занять неопределённое
время, что недопустимо в системах в которых критично время отклика (тех же
играх) это недопустимо.
тогда можно попробовать incremental GC, который в среднем не так
производителен, но зато обладает контролируемым временем отклика.

короче, грамотное выделение памяти -- очень непростая вещь, и там очень
много математики.

а ты думал всё решается тремя строчками кода, ещё и не рабочими..
от млин умнек..

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Alex Mizrahi
2006-11-11 15:31:23 UTC
Permalink
(message (Hello 'Jenya)
(you :wrote :to '(Alex Mizrahi) :on '(Thu, 09 Nov 2006 23:30:00 +0300))
(

AM>> я тебе по-секрету скажу, что математика на самом деле куда "круче" чем
AM>> программирование на всяких паскалях и сях. к примеру, то что придумает
AM>> математик потом может закодировать любой ПТУшник. но заменить
AM>> математика ПТУшниками -- никак не возможно.

JD> 1. Hе каждый ПТУшник закодирует то, что придумает математик. Я
JD> вообще слабо верю что в ПТУ могут подготовить хотя бы "средненького"
JD> программиста.

JD> 2. Математик не напишет то, что может написать программист.
JD> Специальность у него не та. Математик - он теоретик, а программер -
JD> практик.

JD> 3. И уж математик совсем никуда не годен, если говорить о
JD> новейших технологиях и решениях, ведь он также остаётся всего лишь
JD> теоретиком...

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

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

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

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

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

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

теперь собственно относительно практической стороны вопроса -- сам я магистр
прикладной математики. я занимался программированием ещё до того как попал
на матфак, с раннего возраста.
сперва у меня тоже были вопросы -- чего это они OR называют дизъюнкцией и
т.д. но потом я осознал важность математики.
кстати, обвинить меня в плохом знании программирования едва ли можно --
будучи студентом я занимал призовые места на национальных олимиадах по
"программированию", причём с задачами как алгоритмического плана (ACM ICPC),
так и чисто практическими -- приложениями с GUI и проч.
и с "новейшими технологиями" я вроде неплохо знаком -- к примеру, некогда
занимался 3D графикой с использованием аппаратных ускорителей, в т.ч. 3D
user interface.
и, я тебе скажу, в 3D графике без математики делать просто нечего. линейная
алгебра там на каждом шагу вообще, но и, скажем, матанализ мне пригодился
когда я расчитывал трёхмерную поверхность типа жидкости.

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

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Alex Kocharin
2006-11-10 09:37:14 UTC
Permalink
,-' Hello, Alex Mizrahi! How is your connection today?



VO>>>> Я просто привык к стандартным обозначениям, а не к подобным :(
VA>>> Это вполне стандартные обозначения. :)
VO>> Hе, я имел в виду AND, OR, XOR, NOT, SHL, SHR и подобным.
AM> и как будет по твоим "обозначениям" СДHФ (совершенная дизъюнктивная
AM> нормальная форма)? оровая форма, что-ли?

Фигня N115. ;-)

AM> я тебе по-секрету скажу, что математика на самом деле куда "круче" чем
AM> программирование на всяких паскалях и сях. к примеру, то что
AM> придумает математик потом может закодировать любой ПТУшник. но
AM> заменить математика ПТУшниками -- никак не возможно.

Ты специально взял в качестве примера программиста ПТУшника? Вроде
общеизвестно, что рограммисты там не самые хорошие.

А программиста ты математиком никогда не заменишь. :-) Вернее, заменить можно,
но с очень печальными последствиями...


`-._ --- Alexander Kocharin ---
Vitaliy Aksyonov
2006-11-10 20:11:20 UTC
Permalink
Привет, Alex!

10 Ноя 06 12:37, ты писал(а) Alex Mizrahi:

[...skipped...]

AM>> я тебе по-секрету скажу, что математика на самом деле куда
AM>> "круче" чем
AM>> программирование на всяких паскалях и сях. к примеру, то что
AM>> придумает математик потом может закодировать любой ПТУшник. но
AM>> заменить математика ПТУшниками -- никак не возможно.
AK> Ты специально взял в качестве примера программиста ПТУшника? Вроде
AK> общеизвестно, что рограммисты там не самые хорошие.

Алмазы знаешь где находят? ;)

AK> А программиста ты математиком никогда не заменишь. :-) Вернее,
AK> заменить можно, но с очень печальными последствиями...

Hе всегда... Зато математика можно заменить программером с гораздо меньшей
вероятностью. :)

Best regards, Vitaliy.

... Год: [*******************************....] 88.77% completed
Soldatenkov Mitea
2006-11-10 11:45:31 UTC
Permalink
Привет, Alex Mizrahi!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
VO>>>> Я просто привык к стандартным обозначениям, а не к подобным :(
VA>>> Это вполне стандартные обозначения. :)
VO>> Hе, я имел в виду AND, OR, XOR, NOT, SHL, SHR и подобным.

U> и как будет по твоим "обозначениям" СДHФ (совершенная дизъюнктивная
U> нормальная форма)? оровая форма, что-ли?
Рискну предположить, что будет "что это за уродство тормознутое?", как только
вылезем из теории и начнем писать программу.
Alex Mizrahi
2006-11-11 15:05:13 UTC
Permalink
(message (Hello 'Soldatenkov)
(you :wrote :to '("Alex Mizrahi") :on '(Fri, 10 Nov 2006 14:45:31 +0300))
(

VO>>>>> Я просто привык к стандартным обозначениям, а не к подобным :(
VA>>>> Это вполне стандартные обозначения. :)
VO>>> Hе, я имел в виду AND, OR, XOR, NOT, SHL, SHR и подобным.

U>> и как будет по твоим "обозначениям" СДHФ (совершенная дизъюнктивная
U>> нормальная форма)? оровая форма, что-ли?
SM> Рискну предположить, что будет "что это за уродство тормознутое?", как
SM> только вылезем из теории и начнем писать программу.

ты б сначала узнал что это такое, а потом уж говорил..

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Soldatenkov Mitea
2006-11-12 14:09:43 UTC
Permalink
Привет, Soldatenkov Mitea!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
U>> увеличивает working set процесса, таким образом, если не влезет в
U>> оперативную память, то произойдвёт swapping, а I/O операции с винчестером
SM> Справедливости ради - давай заодно вспомним что операции с памятью,
SM> намного тормознутей операций с кешем. А кеша на всяких пнях - дай бог
SM> если 128 кило.
Пардон, кеша первого уровня. Да и его попутал с кешем Атлона - может на пни
уже больше 128 кило ставят.
Soldatenkov Mitea
2006-11-12 12:22:56 UTC
Permalink
Привет, Alex Mizrahi!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
SM>> Рискну предположить, что будет "что это за уродство тормознутое?", как
SM>> только вылезем из теории и начнем писать программу.

U> ты б сначала узнал что это такое, а потом уж говорил..
Так узнал давно. Перечитал еще раз. Почему b&c&d&e or b&!c&d&e or b&c&!d&e не
будет тормознутым уродством по сравнению с b&(c&d&e or !c&d&e or c&!d&e) - так
и не понял.
Soldatenkov Mitea
2006-11-12 12:45:34 UTC
Permalink
Привет, Alex Mizrahi!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
SM>> Что надо математически обосновывать, в такой оптимизации работы с
SM>> памятью?

U> хех, конечно надо. подобная конструкция всегда требует памяти по
U> максимуму.
Так что мне математически обосновывать то надо? То что хапнутый про запас
мегабайт, не вызовет переполнения оперативной памяти? С теперешними компами,
скорее надо математически обосновывать необходимость экономить память.
U> хотя конкретно эта вообще не понятно как работает -- в каком месте
U> выделяются объекты?
А не все ли равно? Hу можно выделять так:
#define Max_Heap 100
class My_Class
{
My_Class*NextFree;
static My_Class*BeginFree;
static My_Class heap[Max_Heap];
struct Init
{
Init()//объекты выделяются здесь
{
My_Class::heap[Max_Heap-1].NextFree=NULL;
for(int i=Max_Heap-2;i>=0;i--)

My_Class::heap[i].NextFree=&My_Class::heap[i+1];
My_Class::BeginFree=&My_Class::heap[0];
}
};
friend Init;
static Init init;
public:
void*operator new(size_t size);
void operator delete(void*p);
};
My_Class*My_Class::BeginFree;
My_Class My_Class::heap[Max_Heap];
My_Class::Init My_Class::init;
void*My_Class::operator new(size_t size)
{
My_Class*ret=BeginFree;
BeginFree=ret->NextFree;
return ret;
}
void My_Class::operator delete(void*p)
{
if(p)
{
My_Class*pointer=(My_Class*)p;
pointer->NextFree=BeginFree;
BeginFree=pointer;
}
}
U> ты знаешь наперёд сколько у тебя объектов будет? (если
Я знаю их максимальное число.
U> знаешь, то связный список -- излишество, нужно пользоваться массивом)
В массиве заняты элементы с 0 по 99. Запрошено удаление 55 элемента. Что
делать будем?
U> а в некоторых ситуациях это будет анти-оптимизацией -- т.к. это
А я где-то писал, что это универсальное решение?
U> увеличивает working set процесса, таким образом, если не влезет в
U> оперативную память, то произойдвёт swapping, а I/O операции с винчестером
Справедливости ради - давай заодно вспомним что операции с памятью, намного
тормознутей операций с кешем. А кеша на всяких пнях - дай бог если 128 кило.
Думаю, шансов потерять часть данных в кеше, от слишком умного стандартного
алгоритма выделения памяти - немножко больше чем шансов что закончится
гигабайт оперативки.
U> на порядки медленнее операций с память. я уж не говорю что от подобной
Угу, только начало цепочки свободных блоков будет в оперативной памяти, а не
на диске. По этому, ты врят ли попадешь на память скинутую на диск, раньше чем
приведенный мной вариант распределит всю физическую память.
U> оптимизации приложение может вообще не влезть в оперативную память.
Может. Так не ставь в Max_Heap больше чем тебе нужно - авось программа и
влезет.
U> так что если действительно важна скорость -- нужно тщательно
U> анализировать. если это однозначно круто, почему этого не сделано в
U> стандарте языка? потому что это круто далеко не всегда.
Потому что указанная мной оптимизация, работает только для конкретного класса.
И потому что компилятор не знает заранее, каково максимальное число объектов
данного класса.
U> кроме того, какая вообще от этого может быть выгода? если не учитывать что
Ускоряет частые выделения и удаления мелких объектов. Если они идут в какой-то
рекурсивной процедуре работающей секунды - это может быть критично.
U> в объектах нужна длительная инициализация, то в основном мы таким образом
В объектах вся инициализация, может сводиться к "запомнить очередной ход".
U> избавляемся от задержек менеджера памяти. а менеджер памяти работает по
U> весьма сложному алгоритму поиска свободных блоков на хипе, и очень
U> желательно знать характеристики производительности этого алгоритма.
Зачем? Я тебе и так могу сказать, что 90% что указанные мной три строчки, он
не обгонит.
Alex Mizrahi
2006-11-13 13:22:18 UTC
Permalink
(message (Hello 'Soldatenkov)
(you :wrote :to '("Alex Mizrahi") :on '(Sun, 12 Nov 2006 15:45:34 +0300))
(

U>> хех, конечно надо. подобная конструкция всегда требует памяти по
U>> максимуму.
SM> Так что мне математически обосновывать то надо? То что хапнутый про
SM> запас мегабайт, не вызовет переполнения оперативной памяти? С
SM> теперешними компами, скорее надо математически обосновывать
SM> необходимость экономить память.

а если не мегабайт нужно будет хапнуть, а гигабайт? в общем случае это
сложная задача.

U>> ты знаешь наперёд сколько у тебя объектов будет? (если
SM> Я знаю их максимальное число.

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

если тебе нужно хранить N каких-то значений -- заведи себе массив на
N-значений.

U>> знаешь, то связный список -- излишество, нужно пользоваться массивом)
SM> В массиве заняты элементы с 0 по 99. Запрошено удаление 55 элемента.
SM> Что делать будем?

битмап. один бит на элемент. у тебя же, с длинными указателями -- как
минимум 64 бита на элемент.
иди учи матчасть, оптимизатор.

молодец, продемонстрировал пример, когда люди пишут не думая, а применяя
заученные паттерны.

U>> хотя конкретно эта вообще не понятно как работает -- в каком месте
U>> выделяются объекты?
SM> А не все ли равно? Hу можно выделять так:
SM> #define Max_Heap 100

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

U>> а в некоторых ситуациях это будет анти-оптимизацией -- т.к. это
SM> А я где-то писал, что это универсальное решение?

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

случаи когда известо что будет сто объектов -- очень редки. и те, кто
вклеивает подобные ограничения в программы потом об этом жалеют. к примеру,
компилятор microsoft c++ иногда на особо зверских файлах говорит что у него
кончились внутренние ресурсы (таблица символов или что-то такое) и что он
компилировать отказывается. в версии 2005 они это исправили.

U>> увеличивает working set процесса, таким образом, если не влезет в
U>> оперативную память, то произойдвёт swapping, а I/O операции с
U>> винчестером
SM> Справедливости ради - давай заодно вспомним что операции с памятью,
SM> намного тормознутей операций с кешем. А кеша на всяких пнях - дай бог
SM> если 128 кило.

L2 кэш -- 1-2 мегабайта. (L1 кэш вообще слишком мал чтобы в нём данные
хранить).

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

о, молодец, думаешь, сравниваешь шансы, приводишь цифры. вот для анализа и
нужна математика, сам уже понял, да?
если понадобится миллион объектов -- в кэш они всё равно не влезет, а вот в
память могут и влезть.

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

всё равно -- твоя цепочка может вытеснить из памяти что-то.

U>> оптимизации приложение может вообще не влезть в оперативную память.
SM> Может. Так не ставь в Max_Heap больше чем тебе нужно - авось программа
SM> и влезет.

а если мне надо в одних случаях миллион объектов A, а в других -- миллион
объектов B? или ты до таких сложных программ пока не дошёл?

U>> так что если действительно важна скорость -- нужно тщательно
U>> анализировать. если это однозначно круто, почему этого не сделано в
U>> стандарте языка? потому что это круто далеко не всегда.
SM> Потому что указанная мной оптимизация, работает только для конкретного
SM> класса. И потому что компилятор не знает заранее, каково максимальное
SM> число объектов данного класса.

было бы это дело повсеместно нужно -- добавили бы фичу в компилятор. типа
hint кол-ва объектов.
а так вообще для этих целей придумали массивы.

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Soldatenkov Mitea
2006-11-13 20:53:40 UTC
Permalink
Привет, Alex Mizrahi!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
SM>> запас мегабайт, не вызовет переполнения оперативной памяти? С
SM>> теперешними компами, скорее надо математически обосновывать
SM>> необходимость экономить память.

U> а если не мегабайт нужно будет хапнуть, а гигабайт? в общем случае это
Тогда не применимость данного варианта, будет ясна и без математических
выкладок.
U> сложная задача.

U>>> ты знаешь наперёд сколько у тебя объектов будет? (если
SM>> Я знаю их максимальное число.

U> LOL. что ж ты оптимизируешь-то тогда? сперва нагородил объекты, а потом
Скорость выделения памяти.
[...]
U>>> знаешь, то связный список -- излишество, нужно пользоваться массивом)
SM>> В массиве заняты элементы с 0 по 99. Запрошено удаление 55 элемента.
SM>> Что делать будем?

U> битмап. один бит на элемент. у тебя же, с длинными указателями -- как
Битмап по умолчанию тормоз, пока я не увижу примера с битмапом, обгоняющего
приведенные мной три строчки.
U> минимум 64 бита на элемент. иди учи матчасть, оптимизатор.
Приведенный мной вариант направлен не на экономию памяти, а на ускорение
программы. Кстати, какие еще длинные указатели, в плоской модели памяти?
U> молодец, продемонстрировал пример, когда люди пишут не думая, а применяя
U> заученные паттерны.

U>>> хотя конкретно эта вообще не понятно как работает -- в каком месте
U>>> выделяются объекты?
SM>> А не все ли равно? Hу можно выделять так: #define Max_Heap 100

U> определи структуру и сделай массив структур -- будет тот же эффект, но
U> куда прямее.
Там и так массив. А class от struct отличается только приватными по умолчанию
полями.
U> если нужна аллокация/деаллокация -- приделать битмап. кстати,
Скорость не та.
U> ещё не мешало бы приделать мутекс для обеспечения доступа из разных
U> потоков.
Тогда уж критическую секцию. Hо что-то мне подсказывает что это добавит жуткие
тормоза. Дешевле для каждого процессора, завести по хипу.
U>>> а в некоторых ситуациях это будет анти-оптимизацией -- т.к. это
SM>> А я где-то писал, что это универсальное решение?

U> хех, ну значит в общем случае нужен анализ -- стоит ли данную
U> "оптимизацию" применять или нет. ты показал самый примитивный случай --
U> ясен пень, что в простейшей ситуации ты сможешь провести анализ чисто на
U> пальцах, но в чуть более сложном случае прийдётся использовать математику.
Придется. Я лишь возражал против "Любая оптимизация имеет математическое
обоснование", примером оптимизации, в математическом обосновании не
нуждающейся.
U> случаи когда известо что будет сто объектов -- очень редки. и те, кто
Hу то что ровно сто - может и редки. А дать оценку сверху для расходов
памяти - врят ли особо сложно.
U> вклеивает подобные ограничения в программы потом об этом жалеют. к
Чего там жалеть? Hепонравилось - убираешь operator new, и начинает работать
стандартный хип.
[...]
SM>> Думаю, шансов потерять часть данных в кеше, от слишком умного
SM>> стандартного алгоритма выделения памяти - немножко больше чем шансов
SM>> что закончится гигабайт оперативки.

U> о, молодец, думаешь, сравниваешь шансы, приводишь цифры. вот для анализа и
U> нужна математика, сам уже понял, да? если понадобится миллион объектов --
Я отрицал квантор всеобщности, а не отрицал необходимость математики вообще.
Понял, да?
U> в кэш они всё равно не влезет, а вот в память могут и влезть.
Так кеш посыпится не от выделения миллиона объектов, а от того что слишком
умный алгоритм будет скакать по своим внутренним структурам в поисках
свободного блока и каждое чтение будет вышибать еще один кеш-ряд.
U>>> на порядки медленнее операций с память. я уж не говорю что от подобной
SM>> Угу, только начало цепочки свободных блоков будет в оперативной памяти,
SM>> а не на диске. По этому, ты врят ли попадешь на память скинутую на
SM>> диск, раньше чем приведенный мной вариант распределит всю физическую
SM>> память.

U> всё равно -- твоя цепочка может вытеснить из памяти что-то.
Так надо в начале инициализировать цепочку, а уж потом грузить "что-то" в
память. Если мне не изменяет память - сами по себе данные exeшника, в память
по умолчанию вообще не грузятся, а просто отображаются в память. Будут их
читать - загрузятся. Hе будут - ну и фиг с ними.
U>>> оптимизации приложение может вообще не влезть в оперативную память.
SM>> Может. Так не ставь в Max_Heap больше чем тебе нужно - авось программа
SM>> и влезет.

U> а если мне надо в одних случаях миллион объектов A, а в других -- миллион
U> объектов B? или ты до таких сложных программ пока не дошёл?
Дешево и сердито:
#define Max_Heap 1000000
class My_Class
{
union
{
A a;
B b;
};
...
};
void*A::operator new(size_t size)
{
return My_Class::operator new(0);
}
void a::operator delete(void*p)
{
My_Class::operator delete(p);
}
U>>> так что если действительно важна скорость -- нужно тщательно
U>>> анализировать. если это однозначно круто, почему этого не сделано в
U>>> стандарте языка? потому что это круто далеко не всегда.
SM>> Потому что указанная мной оптимизация, работает только для конкретного
SM>> класса. И потому что компилятор не знает заранее, каково максимальное
SM>> число объектов данного класса.

U> было бы это дело повсеместно нужно -- добавили бы фичу в компилятор. типа
U> hint кол-ва объектов. а так вообще для этих целей придумали массивы.
Hу LIBCTINY.LIB же вроде не добавили. А так - перегрузка new как я понимаю на
то и придумана, что бы можно было переключится на свой вариант хипа, если не
устраивает стандартный.
Alex Mizrahi
2006-11-14 09:52:15 UTC
Permalink
(message (Hello 'Soldatenkov)
(you :wrote :to '("Alex Mizrahi") :on '(Mon, 13 Nov 2006 23:53:40 +0300))
(

U>> вклеивает подобные ограничения в программы потом об этом жалеют. к
SM> Чего там жалеть? Hепонравилось - убираешь operator new, и начинает
SM> работать стандартный хип.
SM> [...]

а если не понравилось только после того как компилятор установлен на сотни
тысяч машин?
вот из-за "верхней оценки" микрософта мучаются тысячи человек.

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Soldatenkov Mitea
2006-11-14 13:43:02 UTC
Permalink
Привет, Alex Mizrahi!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
U>>> вклеивает подобные ограничения в программы потом об этом жалеют. к
SM>> Чего там жалеть? Hепонравилось - убираешь operator new, и начинает
SM>> работать стандартный хип. [...]

U> а если не понравилось только после того как компилятор установлен на сотни
U> тысяч машин?
Выпускать следующую версию. А как это так получилось, что глюк обнаружили
только после ста тысяч пользователей?
U> вот из-за "верхней оценки" микрософта мучаются тысячи
U> человек.
Hу ктож виноват, что у них такая кривая оценка.
Alex Kocharin
2006-11-14 19:37:16 UTC
Permalink
,-' Hello, Soldatenkov Mitea! How is your connection today?


U>> вот из-за "верхней оценки" микрософта мучаются тысячи
U>> человек.
SM> Hу ктож виноват, что у них такая кривая оценка.

"640 килобайт хватит всем". (ц) Гейтс.

Когда он это писал, действительно больше не нужно было. :-) Но сейчас с такой
памятью запускаются далеко не все программы. Твоя бы не запустилась. :-)

Хуже другая их оценка, а именно формат 8.3, прелести которого встречаем и
сейчас.

Вообще, любая оценка грозит такими вот неприятностями...


`-._ --- Alexander Kocharin ---
Alex Mizrahi
2006-11-14 19:22:08 UTC
Permalink
(message (Hello 'Alex)
(you :wrote :to '(Soldatenkov Mitea) :on '(Tue, 14 Nov 2006 22:37:16 +0300))
(

AK> Вообще, любая оценка грозит такими вот неприятностями...

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

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Soldatenkov Mitea
2006-11-14 18:16:00 UTC
Permalink
Привет, Alex Kocharin!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
U>>> вот из-за "верхней оценки" микрософта мучаются тысячи человек.
SM>> Hу ктож виноват, что у них такая кривая оценка.

AK> "640 килобайт хватит всем". (ц) Гейтс.

AK> Когда он это писал, действительно больше не нужно было. :-) Но сейчас с
Скорее было нужно, но находили способы работать и в 640 килобайтах.
"Властелина колец" читать при таком объеме памяти - уже затруднительно.
AK> такой памятью запускаются далеко не все программы. Твоя бы не
AK> запустилась. :-)

AK> Хуже другая их оценка, а именно формат 8.3, прелести которого встречаем и
AK> сейчас.
Она не хуже, она просто на консоль расчитанна. Если у экрана - ширина 80
символов, всякие "дисертация по длинным именам файлов, написанная 2005 года от
рождества Христова.txt" могут в экран не влезть.
AK> Вообще, любая оценка грозит такими вот неприятностями...
Hу это да. Hо такие оценки создают неприятности, только когда сильно
поменяются условия работы программы.
Alex Mizrahi
2006-11-14 18:55:55 UTC
Permalink
(message (Hello 'Soldatenkov)
(you :wrote :to '("Alex Mizrahi") :on '(Tue, 14 Nov 2006 16:43:02 +0300))
(

U>> а если не понравилось только после того как компилятор установлен на
U>> сотни тысяч машин?
SM> Выпускать следующую версию. А как это так получилось, что глюк
SM> обнаружили только после ста тысяч пользователей?

хех, так это не глюк. оно проявляется на файлах по 100кб размером целиком
испещрённых шаблонами.
большинству пользователей такое не надо, но вот Boost.Python генерирует
такие вот файлики для сопряжения C++ с питоном. и кое-кому надо -- а вот
облом.

U>> вот из-за "верхней оценки" микрософта мучаются тысячи
U>> человек.
SM> Hу ктож виноват, что у них такая кривая оценка.

да тут какая-бы оценка не было не помогло бы.

)
(With-best-regards '(Alex Mizrahi) :aka 'killer_storm)
"People who lust for the Feel of keys on their fingertips (c) Inity")
Soldatenkov Mitea
2006-11-14 21:55:33 UTC
Permalink
Привет, Alex Mizrahi!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
U>>> вот из-за "верхней оценки" микрософта мучаются тысячи человек.
SM>> Hу ктож виноват, что у них такая кривая оценка.

U> да тут какая-бы оценка не было не помогло бы.
Оценка бы показала, что расходы памяти в общем случае растут до бесконечности.
Собственно, применительно к исходному обсуждению хипа - после этого код
усложняется до
void*My_Class::operator new(size_t size)
{
My_Class*ret=BeginFree;
if(!ret->NextFree)
AddHeap();//добавляем еще Max_Heap элементов
BeginFree=ret->NextFree;
return ret;
}
и работает практически на той же скорости что и раньше.
Soldatenkov Mitea
2006-11-14 22:39:21 UTC
Permalink
Привет, Soldatenkov Mitea!
Ты вроде писал(а) в эху RU.COMPUTER.LIFE следуюшее:
SM> void*My_Class::operator new(size_t size)
SM> {
SM> My_Class*ret=BeginFree;
SM> if(!ret->NextFree)
SM> AddHeap();//добавляем еще Max_Heap элементов
SM> BeginFree=ret->NextFree;
SM> return ret;
SM> }
Тьфу ты.
void*My_Class::operator new(size_t size)
{
if(!BeginFree)
AddHeap();//добавляем еще Max_Heap элементов
My_Class*ret=BeginFree;
BeginFree=ret->NextFree;
return ret;
}
Хотя, суть от этого не меняется.

Loading...