Re[25]: Уточнение уточнения
От: Mamut Швеция http://dmitriid.com
Дата: 11.06.09 06:38
Оценка:
Здравствуйте, Sheridan, Вы писали:

S> Mamut wrote:


S> > S> Еще раз: Сериализация предназначена для тех, кому лениво написать нормальное сохранение и


S> > чтение объекта. Таким людям пофиг что с S> полезными данными сохраняется куча бреда. Вобщем не

S> > нужно такое там.

S> > Cериализация — и есть нормальное созранение и чтение объекта.

S> > Кстати, хотелось бы еще узнать, какой бред сохраняется при сериализации.

S> Извиняюсь, не совсем точно я написал. Я против обычной сериализации, точнее против того, что обычно в наличии. А бред, который я

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


Ну-ну. А пацаны из буста и s11n и не знали. Пришел Шеридан и срочно все разрулил.

Ну-ка, расскажи мне в двух словах, как ты сохранишь «только переменными» любой цикличный граф объектов, а там посмотрим
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[29]: Уточнение уточнения
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.06.09 06:49
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>gandjustas wrote:


>>>> Ух ты. И как ты узнаешь что ты десериализуешь?

>> S>Точно также, как и узнаю, что буду сериализовать.
>> Ну да, когда сериализуешь ты знаешь конкретный тип (хотя в С++ и с этим сложности), а когда
>> десериализуешь, то у тебя только массив байт и все. Так как ты узнаешь что десериализуешь?

S>Мда, дотнет явно людям на пользу не идёт

S>Сохраняются данные в каком-то порядке. Значит в том-же порядке их надо и читать. Это же элементарно.

Ну раз элементарно то покажи код.
Тебе простой кейс: сериализуется объекты по ссылке на базовый класс, после десериализации надо также получить ссылку на базовый класс.
Re[26]: Уточнение уточнения
От: criosray  
Дата: 11.06.09 06:52
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Ну-ну. А пацаны из буста и s11n и не знали. Пришел Шеридан и срочно все разрулил.


M>Ну-ка, расскажи мне в двух словах, как ты сохранишь «только переменными» любой цикличный граф объектов, а там посмотрим


Господа, не давите Шеридана интеллектом — он этого не любит.
Re[29]: Уточнение уточнения
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.06.09 06:56
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>gandjustas wrote:


>>>> Ух ты. И как ты узнаешь что ты десериализуешь?

>> S>Точно также, как и узнаю, что буду сериализовать.
>> Ну да, когда сериализуешь ты знаешь конкретный тип (хотя в С++ и с этим сложности), а когда
>> десериализуешь, то у тебя только массив байт и все. Так как ты узнаешь что десериализуешь?

S>Мда, дотнет явно людям на пользу не идёт

S>Сохраняются данные в каком-то порядке. Значит в том-же порядке их надо и читать. Это же элементарно.

Ты своим жалким мозгом даже не способен понять суть проблемы.
Re[30]: Уточнение уточнения
От: MxKazan Португалия  
Дата: 11.06.09 07:08
Оценка: +5
Здравствуйте, gandjustas, Вы писали:

G>Ты своим жалким мозгом даже не способен понять суть проблемы.

Э-э-э! Ребят, я всё конечно понимаю, но давайте полегче на поворотах, а...
Re[3]: Коробочные продукты на .NET (НЕ для программистов/адм
От: neFormal Россия  
Дата: 11.06.09 07:14
Оценка:
Здравствуйте, meowth, Вы писали:

S>>Да нету такого. Тут сравнительно недавно дотнетчики пытались искать. Разве что паинтдотнет упоминался. А остальная вся шелуха —

S>>для прораммеров\админов
M>Моделлер для Unity3D

он ещё падать любит..

M>их же плеер -- написан на .net и для .net (mono)


плеер — врядли.. дотнэт там есть, но корни скорее нативные..

да, и всё таки это для программеров/админов(с)
...coding for chaos...
Re[8]: Коробочные продукты на .NET (НЕ для программистов/адм
От: jenyavb  
Дата: 11.06.09 09:22
Оценка:
Здравствуйте, hattab, Вы писали:

J>>Вот только почему уйма народа судет о производительности .net по этой индусской программе? На C++ тоже есть море такого-же отвратительного софта и ничего.

H>Ну, так на C/C++ еще и горы приличного софта есть, в отличии от...
Ну и? То что на дотнете написано мало десктопного софта не значит, что его на нем нельзя писать. В других нишах дофига приличного .net софта но его не видно из вне.

J>>Здесь ещё пытались сравнивать скорость применения фильтра gimp и paint.net, какой в этом смысл, когда все зависит от используемго алгоритма? Как их можно сравнивать, даже не заглядывая в исходник?

H>Ну так в чем проблема? Исходники доступны, сравни.
Зачем мне заниматься такой ерундой? Это удел местных обиженных дотнетом.

H>Ты вправду думаешь, что реализацию одного алгоритма можно осуществить с такими девиациями от генеральной линии, что оно будет сливаться чуть не на порядок?

Запросто. Посмотри все эти приведенные здесь сравнения "C++ vs .Net", чаще всего там не учтены какие-то особенности или приведен неидентичный код.

H> Не, если делать это специально, тогда конечно да... Более того, Paint.NET не спасает даже двуядерный проц (реализация в Paint.NET параллелится, в отличии от GIMP)

Зато четырех-ядерный спасет . Хотя лучше конечно оттюнинговать реализацию/алгоритм.
Re[9]: Коробочные продукты на .NET (НЕ для программистов/адм
От: hattab  
Дата: 11.06.09 10:03
Оценка:
Здравствуйте, jenyavb, Вы писали:

H>>Ну, так на C/C++ еще и горы приличного софта есть, в отличии от...

J>Ну и? То что на дотнете написано мало десктопного софта не значит, что его на нем нельзя писать. В других нишах дофига приличного .net софта но его не видно из вне.

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

J>>>Здесь ещё пытались сравнивать скорость применения фильтра gimp и paint.net, какой в этом смысл, когда все зависит от используемго алгоритма? Как их можно сравнивать, даже не заглядывая в исходник?

H>>Ну так в чем проблема? Исходники доступны, сравни.
J>Зачем мне заниматься такой ерундой? Это удел местных обиженных дотнетом.

Раз ты сомнение имеешь, тебе и карты в руки

H>>Ты вправду думаешь, что реализацию одного алгоритма можно осуществить с такими девиациями от генеральной линии, что оно будет сливаться чуть не на порядок?

J>Запросто. Посмотри все эти приведенные здесь сравнения "C++ vs .Net", чаще всего там не учтены какие-то особенности или приведен неидентичный код.

Тут ты прав, чтоб сравнивать скорость работы wstring и StringBuilder'а, нужно иметь непоколебимую веру в светлую идеи отстаивания своих взлядов/убеждений/веры любой ценой (а сравнений алгоритмов тут небыло вообще, насколько я помню)

H>> Не, если делать это специально, тогда конечно да... Более того, Paint.NET не спасает даже двуядерный проц (реализация в Paint.NET параллелится, в отличии от GIMP)

J>Зато четырех-ядерный спасет . Хотя лучше конечно оттюнинговать реализацию/алгоритм.

И эти люди мне говорят об идентичности кода (впрочем, скоро обзаведусь Phenom II X4 925 сообщу тут )
Re[10]: Коробочные продукты на .NET (НЕ для программистов/ад
От: jenyavb  
Дата: 11.06.09 10:41
Оценка:
Здравствуйте, hattab, Вы писали:

H>>>Ну, так на C/C++ еще и горы приличного софта есть, в отличии от...

J>>Ну и? То что на дотнете написано мало десктопного софта не значит, что его на нем нельзя писать. В других нишах дофига приличного .net софта но его не видно из вне.
H>Писать-то, конечно, можно... Вот какой результат будет, еще вопрос. О других нишах ничего не скажу, ибо корпоратив-юзеры рублем не голосуют, а нямают то, что дают.
Результат будет такой, каким его сделаюь разработчики. Ограничения дотнета конечно есть, но встречаются они редко.

J>>>>Здесь ещё пытались сравнивать скорость применения фильтра gimp и paint.net, какой в этом смысл, когда все зависит от используемго алгоритма? Как их можно сравнивать, даже не заглядывая в исходник?

H>>>Ну так в чем проблема? Исходники доступны, сравни.
J>>Зачем мне заниматься такой ерундой? Это удел местных обиженных дотнетом.
H>Раз ты сомнение имеешь, тебе и карты в руки
Ятут сравнением не занимался. Или это по Шеридановскому учению "вот вам кое-какие аргументы, не нравится — опровергайте"?

H>>>Ты вправду думаешь, что реализацию одного алгоритма можно осуществить с такими девиациями от генеральной линии, что оно будет сливаться чуть не на порядок?

J>>Запросто. Посмотри все эти приведенные здесь сравнения "C++ vs .Net", чаще всего там не учтены какие-то особенности или приведен неидентичный код.
H>Тут ты прав, чтоб сравнивать скорость работы wstring и StringBuilder'а, нужно иметь непоколебимую веру в светлую идеи отстаивания своих взлядов/убеждений/веры любой ценой
И чем же отличается скорость работы wstring и StringBuilder'а, а то я не в теме?

H>(а сравнений алгоритмов тут небыло вообще, насколько я помню)

В этом и заключается ущербность данного сравнения. Люди сравнивают скорость работы программы даже не заглядывая в реализацию .

H>>> Не, если делать это специально, тогда конечно да... Более того, Paint.NET не спасает даже двуядерный проц (реализация в Paint.NET параллелится, в отличии от GIMP)

J>>Зато четырех-ядерный спасет . Хотя лучше конечно оттюнинговать реализацию/алгоритм.
H>И эти люди мне говорят об идентичности кода (впрочем, скоро обзаведусь Phenom II X4 925 сообщу тут )
Ну давай, давай .
Re[11]: Коробочные продукты на .NET (НЕ для программистов/ад
От: hattab  
Дата: 11.06.09 11:25
Оценка:
Здравствуйте, jenyavb, Вы писали:

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

J>Результат будет такой, каким его сделаюь разработчики. Ограничения дотнета конечно есть, но встречаются они редко.

Ты мне пытаешься нарисовать картину идеального мира, чтоли? Пожалуйста, не нужно. Ну правда, смешно читать такие вещи на фоне существующих веток, где говорят, что бета 2010 студии тормозит на современном железе (согласен, это всего лишь бета). На фоне сливающегося Paint.NET, на фоне монстра по имени Creative Docs. NET. Я уже писал о симптоматичности, вот она то и проглядывается... Ты правда думаешь, что менторы из МС (читаем About от Paint.NET), позволили так накорявить в алгоритме, что его даже параллельность не спасает?

H>>>>Ну так в чем проблема? Исходники доступны, сравни.

J>>>Зачем мне заниматься такой ерундой? Это удел местных обиженных дотнетом.
H>>Раз ты сомнение имеешь, тебе и карты в руки
J>Ятут сравнением не занимался. Или это по Шеридановскому учению "вот вам кое-какие аргументы, не нравится — опровергайте"?

Это и небыло сравнением Один горячий финский хлопец учудил сравнив Paint.NET с Photoshop, на что в ответ получл сей пример (по типу, разберись ка с моим младшим братом сперва). Если ты в этом увидел сравнение .NET с нативом, ну...

H>>>>Ты вправду думаешь, что реализацию одного алгоритма можно осуществить с такими девиациями от генеральной линии, что оно будет сливаться чуть не на порядок?

J>>>Запросто. Посмотри все эти приведенные здесь сравнения "C++ vs .Net", чаще всего там не учтены какие-то особенности или приведен неидентичный код.
H>>Тут ты прав, чтоб сравнивать скорость работы wstring и StringBuilder'а, нужно иметь непоколебимую веру в светлую идеи отстаивания своих взлядов/убеждений/веры любой ценой
J>И чем же отличается скорость работы wstring и StringBuilder'а, а то я не в теме?

Можешь ознакомиться
Автор: criosray
Дата: 07.06.09
.

H>>(а сравнений алгоритмов тут небыло вообще, насколько я помню)

J>В этом и заключается ущербность данного сравнения. Люди сравнивают скорость работы программы даже не заглядывая в реализацию .

Как я уже написал выше, это небыло сравнением натива с .NET. Было сравнение продуктов.

H>>И эти люди мне говорят об идентичности кода (впрочем, скоро обзаведусь Phenom II X4 925 сообщу тут )

J>Ну давай, давай .

Поставил в закладки. Если все срастется, недельки через 2 сделаю
Re[26]: Уточнение уточнения
От: Sheridan Россия  
Дата: 11.06.09 11:29
Оценка:
Mamut wrote:

> Ну-ка, расскажи мне в двух словах, как ты сохранишь «только переменными» любой цикличный граф

> объектов, а там посмотрим
Ты действительно не понимаешь, о чем речь или это у тебя сарказм такой?
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[30]: Уточнение уточнения
От: Sheridan Россия  
Дата: 11.06.09 11:30
Оценка:
gandjustas wrote:

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

Помоему это ты не можешь понять то, о чем я говорю.
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[31]: Уточнение уточнения
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.06.09 11:36
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>gandjustas wrote:


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

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

Напрмиер так:

class C
{
  ...
}

class A
{
  ...
}

class B: public A
{
  private:
    C*  field; //или смарт-поинтер какой-нибудь
  ...
}

A* a = new B(...);
x = serialize(a);
a = /*особая магия десериализации*/(x);
Re[30]: Уточнение уточнения
От: Sheridan Россия  
Дата: 11.06.09 11:44
Оценка: -2 :)))
gandjustas wrote:


> Ну раз элементарно то покажи код.

> Тебе простой кейс: сериализуется объекты по ссылке на базовый класс, после десериализации надо
> также получить ссылку на базовый класс.
Както так:
class a
{
 int i1;
 int i2;
 double d1;
 void save(const char * file)
 {
  int f = open(file, O_CREAT | O_WRONLY);
  write(f, &i1, sizeof(int));
  write(f, &i2, sizeof(int));
  write(f, &d1, sizeof(double));
  close (f);
 }
 void load(std::string file)
 {
  int f = open(file, O_RDONLY);
  read(f, &i1, sizeof(int));
  read(f, &i2, sizeof(int));
  read(f, &d1, sizeof(double));
  close (f);
 }

};
main()
{
 a *c1 = new a();
 c1->i1 = 5;
 c1->i2 = 15;
 c1->d1 = 0,5;
 c1->save("file.dat");
 a *c2 = new a();
 a->load("file.dat");
}

Если ссылка на базовый класс, то в базовом объявляется и вызывается чисто виртуальная функция, которая реализуется в дочернем.
Но для вас господа. чувствую, это из ряда вон выходящее. Минусуйте, чего уж.
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[24]: Включись наконец
От: Sheridan Россия  
Дата: 11.06.09 11:46
Оценка:
midcyber wrote:

> S>За последнее время я вижу игры написаные при помощи опенгл на порядки чаще чем игры написаные

> при помощи директХрень. Домашнее задание: понять — почему так.

> Дай угадаю — DirectX не работает под linux, поэтому ты не видишь игр, кроме тех, которые у тебя

> уже есть.

Бинго! Хоть один умный человек, способный думать!
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Re[27]: Уточнение уточнения
От: Mamut Швеция http://dmitriid.com
Дата: 11.06.09 11:49
Оценка:
Здравствуйте, Sheridan, Вы писали:

S> Mamut wrote:


S> > Ну-ка, расскажи мне в двух словах, как ты сохранишь «только переменными» любой цикличный граф

S> > объектов, а там посмотрим

S> Ты действительно не понимаешь, о чем речь или это у тебя сарказм такой?


Это ты действительно не понимаешь, о чем речь. Ты прочитал ту тсатью, ссылку на которую я тебе дал?
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[25]: Включись наконец
От: yoriсk.kiev.ua  
Дата: 11.06.09 11:51
Оценка: 1 (1) +1
Здравствуйте, Sheridan, Вы писали:

>> S>За последнее время я вижу игры написаные при помощи опенгл на порядки чаще чем игры написаные

>> при помощи директХрень. Домашнее задание: понять — почему так.

>> Дай угадаю — DirectX не работает под linux, поэтому ты не видишь игр, кроме тех, которые у тебя

>> уже есть.

S>Бинго! Хоть один умный человек, способный думать!


Ну так зачем выдавать свой весьмааа ограниченый опыт за правило?
Re[31]: Уточнение уточнения
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 11.06.09 12:02
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>gandjustas wrote:



>> Ну раз элементарно то покажи код.

>> Тебе простой кейс: сериализуется объекты по ссылке на базовый класс, после десериализации надо
>> также получить ссылку на базовый класс.
S>Както так:
S>
S>class a
S>{
S> int i1;
S> int i2;
S> double d1;
S> void save(const char * file)
S> {
S>  int f = open(file, O_CREAT | O_WRONLY);
S>  write(f, &i1, sizeof(int));
S>  write(f, &i2, sizeof(int));
S>  write(f, &d1, sizeof(double));
S>  close (f);
S> }
S> void load(std::string file)
S> {
S>  int f = open(file, O_RDONLY);
S>  read(f, &i1, sizeof(int));
S>  read(f, &i2, sizeof(int));
S>  read(f, &d1, sizeof(double));
S>  close (f);
S> }

S>};
S>main()
S>{
S> a *c1 = new a();
 c1->>i1 = 5;
 c1->>i2 = 15;
 c1->>d1 = 0,5;
 c1->>save("file.dat");
S> a *c2 = new a();
 a->>load("file.dat");
S>}
S>

S>Если ссылка на базовый класс, то в базовом объявляется и вызывается чисто виртуальная функция, которая реализуется в дочернем.
S>Но для вас господа. чувствую, это из ряда вон выходящее. Минусуйте, чего уж.
Ну так а где ссылка на базовый класс?
Ты уже почти слил, напиши код чтобы это всем понятно было. Тебе ведь нужно явное указание типа при десериализации, чтобы вызвать нужный load.

Кстати, как твой код отработает при циклических ссылках, как будут сериализовываться строки?
И вообще это не обобщенный код, для каждого класса писать такое никто не станет.
Re[31]: Уточнение уточнения
От: anton_t Россия  
Дата: 11.06.09 12:05
Оценка: 2 (1) +1
Здравствуйте, Sheridan, Вы писали:

S>gandjustas wrote:



>> Ну раз элементарно то покажи код.

>> Тебе простой кейс: сериализуется объекты по ссылке на базовый класс, после десериализации надо
>> также получить ссылку на базовый класс.
S>Както так:
S>
S>class a
S>{
S> int i1;
S> int i2;
S> double d1;
S> void save(const char * file)
S> {
S>  int f = open(file, O_CREAT | O_WRONLY);
S>  write(f, &i1, sizeof(int));
S>  write(f, &i2, sizeof(int));
S>  write(f, &d1, sizeof(double));
S>  close (f);
S> }
S> void load(std::string file)
S> {
S>  int f = open(file, O_RDONLY);
S>  read(f, &i1, sizeof(int));
S>  read(f, &i2, sizeof(int));
S>  read(f, &d1, sizeof(double));
S>  close (f);
S> }

S>};
S>main()
S>{
S> a *c1 = new a();
 c1->>i1 = 5;
 c1->>i2 = 15;
 c1->>d1 = 0,5;
 c1->>save("file.dat");
S> a *c2 = new a();
 a->>load("file.dat");
S>}
S>

S>Если ссылка на базовый класс, то в базовом объявляется и вызывается чисто виртуальная функция, которая реализуется в дочернем.
S>Но для вас господа. чувствую, это из ряда вон выходящее. Минусуйте, чего уж.

Контрпример:
class b : public a
{
  int test;
public:
  void virtual  save(const char * file)
  {
    a::save(file);
    //сохраняем.
  }
  void virtual  load(const char * file)
  {
    a::load(file);
    //загружаем.
  }
};
main()
{
 a *c1 = GetA(); // не знаем реальный класс c1.
 c1->>i1 = 5;
 c1->>i2 = 15;
 c1->>d1 = 0,5;
 c1->>save("file.dat");
 a *c2 = new a(); // соответственно и при загрузке не знаем реальный тип c2.
 a->>load("file.dat");//<- не-не-не Дэвид Блейн
Re[28]: Уточнение уточнения
От: Sheridan Россия  
Дата: 11.06.09 12:09
Оценка:
Mamut wrote:

> Это ты действительно не понимаешь, о чем речь. Ты прочитал ту тсатью, ссылку на которую я тебе

> дал?
Да. Я как раз против этого метода.
Posted via RSDN NNTP Server 2.1 beta
Matrix has you...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.