Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП, стандарт и прочие крики души, выделено из "Как не надо писать код" 
:(
    Опции темы
Abyx
Дата 29.7.2010, 18:03 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: нет
Всего: 10



я бы забанил HellStranger, пусть читает литературу по матчасти, раз один бред несет
PM MAIL   Вверх
bsa
Дата 29.7.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
Стандартная библиотека, реализованная в MSVC и стандартная бибилиотека от Borland(Code Gear и т.д. и т.п.) имею совершенно разные дополнения, и реализованы зачастую совершенно по-разному! И производительность у них разная и т.д. и т.п. А ось одна!
ты продолжаешь подменять понятия "стандарт" и "реализация". Не важно что внутри у библиотеки, важно, чтобы она предоставляла тот набор функций, типов и макросов, что описаны в стандарте. ВСЕ! Как ты этого добьешься - не важно, и кроме тебя это никого не будет волновать.
Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
Под линём таже фишка, производитель компилятора поставляет вместе стандарную библиотеку, реализованную им же!
Я знаю 3 компилятора, которые можно использовать под "линем". Это gcc, icc и clang. Про последний ничего сказать не могу, а вот первые два используют стандартную библиотеку С системы (будь она glibc, uclibc или какая другая - не важно). А вот компиляторы С++ поставляются и правда со своей библиотекой. Только эта библиотека нужна для работы только специфических для С++ вещей, вроде new/delete/throw/catch/typeid и STL.
Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
Кроме сегментных регистров есть регистры различных дескрипторных таблиц! IDTR, GDTR, LDTR. IDTR- Interrupt Descriptor Table Register.
И что ты этим сказать хотел? Ты таким образом пытаешься выяснить у кого длинней?
Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
Могу дать книжку, где описывается такой финт ушами под 95-й виндой.
Эта книжка очень актуальна нынче - в 2010 году.
Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
Под XP и 7-ой немного по-другому, но смысл тот же... Менять записи в таблице прерываний, генерить нужное тебе и вызовется твой обработчик... уже на другом кольце защиты, нежели твоё приложение...
Драйвер случаем писать не надо?

Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
А теперь сделай это на cpp как говорится со своим stl...
А причем тут STL, если это можно сделать только с помощью платформозависимого API (например, DDK, или как он нынче зовется)? STL - это всего лишь набор наиболее часто используемых технологий, для сокращения времени разработки ПО на C++.

Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
В дополнениях к стандартной библиотеке практически для любого компилятора есть функции генерации прерываний!
Это ты так syscall называешь?
Цитата(HellStranger @  29.7.2010,  18:46 Найти цитируемый пост)
Что такое стандартная библиотека сама по себе?.. Тот же stl, только проще и щустрее работает. Больших дел с ней не сделаешь...
Не путай, это разные вещи. Кстати, некоторые STL-ские вещи работают быстрей аналогов в libc. Поищи в инете тестирования.

PM   Вверх
HellStranger
Дата 29.7.2010, 18:26 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 1.9.2009

Репутация: -1
Всего: -1



Цитата(bsa @  29.7.2010,  18:06 Найти цитируемый пост)
ты продолжаешь подменять понятия "стандарт" и "реализация". Не важно что внутри у библиотеки, важно, чтобы она предоставляла тот набор функций, типов и макросов, что описаны в стандарте. ВСЕ! Как ты этого добьешься - не важно, и кроме тебя это никого не будет волновать.


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

Цитата(bsa @  29.7.2010,  18:06 Найти цитируемый пост)
И что ты этим сказать хотел? Ты таким образом пытаешься выяснить у кого длинней?


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

Цитата(bsa @  29.7.2010,  18:06 Найти цитируемый пост)
Эта книжка очень актуальна нынче - в 2010 году.


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

Цитата(bsa @  29.7.2010,  18:06 Найти цитируемый пост)
Драйвер случаем писать не надо?


Я о драйверах по-моему не говорил. Драйвер сам по себе работает не на прикладном уровне... И драйвер пишется с использованием соответствующего DDK и сред разработки. 

Цитата(bsa @  29.7.2010,  18:06 Найти цитируемый пост)
Это ты так syscall называешь?


Системные вызовы и генерация прерываний вообще-то разные вещи...

Цитата(bsa @  29.7.2010,  18:06 Найти цитируемый пост)
Не путай, это разные вещи. Кстати, некоторые STL-ские вещи работают быстрей аналогов в libc. Поищи в инете тестирования.


Да естественно разные. Назначение у них одно. Я в этом смысле. И то, и другое создано, чтобы не изобретать велосипед. Не поверишь, и искал в инете и сам тестировал... В частности строки... Сравнение строк работает на VS2008 в 16-18 раз быстрее, к примеру...

Добавлено через 4 минуты и 7 секунд
Цитата(Abyx @ 29.7.2010,  18:03)
я бы забанил HellStranger, пусть читает литературу по матчасти, раз один бред несет

Где именно бред? Аргументируй, пожалуйста... Мой пост, и доказательство того, что это бред в виде ссылки на доки или статьи. Кричать из-за угла "он дурак" каждый может. Между тем, я в твоей компетенции тоже не совсем уверен... Так что оставь критику при себе.
PM MAIL   Вверх
mes
Дата 29.7.2010, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



HellStranger, Вы можете, подводя итоги, нам сказать, как все таки по Вашему не надо писать код ?




--------------------
PM MAIL WWW   Вверх
bsa
Дата 29.7.2010, 20:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Цитата(HellStranger @  29.7.2010,  19:26 Найти цитируемый пост)
Вообще-то это было к вопросу о том, что стандартная библиотека поставляется с осью. Каждый производетель компилятора поставляет свою библиотеку, естесвенно сохраняя стандартный интерфейс вызовов.
Я вот поражаюсь. Как можно продолжать гнуть свою линию, не пытаясь вникнуть в то, что говорит собеседник. Я еще раз повторяю, что СТАНДАРТНАЯ БИБЛИОТЕКА СИ К КОМПИЛЯТОРУ ОТНОШЕНИЯ НЕ ИМЕЕТ. Примеры: под Windows используется в качестве стандартной библиотеки С используется msvcrt.dll (а так же его новые версии с двузначным номером - msvcrt40.dll), которая используется и компилятором VS 6.0 и mingw, под Linux есть библиотеки glibc, uclibc, dietlibc и пр. Компилятор, будь то icc или gcc линкует программы к той библиотеке, которая указана в настройках. В macos x, если не ошибаюсь, тоже используется gcc, но библиотека там своя - ее Apple сделала, а не GNU Software foundation. Список можно продолжать и дальше.
Цитата(HellStranger @  29.7.2010,  19:26 Найти цитируемый пост)
Системные вызовы и генерация прерываний вообще-то разные вещи...

На сколько я помню, в защищенном режиме операция int x вызывает исключение общей защиты, передавая управления монитору защищенного режима (ядру). Который уже сам решает, что делать с нахальным процессом, который его потревожил. syscall основан именно на этом. Или я не прав?
Цитата(HellStranger @  29.7.2010,  19:26 Найти цитируемый пост)
Я о драйверах по-моему не говорил. Драйвер сам по себе работает не на прикладном уровне...

Т.е. ты хочешь сказать, что Windows позволяет процессу, исполняемому в пользовательском пространстве, получить доступ к таких важным вещам, как таблицы дескрипторов? Если это так, то ты нашел серьезную брешь в безопасности.
Цитата(HellStranger @  29.7.2010,  19:26 Найти цитируемый пост)
Сравнение строк работает на VS2008 в 16-18 раз быстрее, к примеру...
По сравнению с чем? Если ты сравнивал производительность std::string и strcmp, то сомнительно, чтобы скорость так отличалась. Разве только из-за того, что ты собирал отладочную версию. Попробуй тоже самое в релизе. 
Вот, например, сравнение qsort и std::sort, разница по скорости двукратная, и не в пользу qsort: http://www.tilander.org/aurora/2007/12/com...-and-qsort.html
Цитата(HellStranger @  29.7.2010,  19:26 Найти цитируемый пост)
 Аргументируй, пожалуйста... Мой пост, и доказательство того, что это бред в виде ссылки на доки или статьи. Кричать из-за угла "он дурак" каждый может.
Ты на других не кивай. Пока что только ты вообще никакой аргументации не привел. Только пустые слова и подмена понятий.

PM   Вверх
JackYF
Дата 29.7.2010, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Хм, какое активное обсуждение...

HellStranger, ответьте-ка  на вопрос про не-x86*-архитектуры smile

Цитата(mes @  29.7.2010,  18:19 Найти цитируемый пост)
HellStranger, Вы можете, подводя итоги, нам сказать, как все таки по Вашему не надо писать код ?

И на этот.

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


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
HellStranger
Дата 29.7.2010, 21:36 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 1.9.2009

Репутация: -1
Всего: -1



Цитата(bsa @  29.7.2010,  20:04 Найти цитируемый пост)
Я вот поражаюсь. Как можно продолжать гнуть свою линию, не пытаясь вникнуть в то, что говорит собеседник. Я еще раз повторяю, что СТАНДАРТНАЯ БИБЛИОТЕКА СИ К КОМПИЛЯТОРУ ОТНОШЕНИЯ НЕ ИМЕЕТ. Примеры: под Windows используется в качестве стандартной библиотеки С используется msvcrt.dll (а так же его новые версии с двузначным номером - msvcrt40.dll), которая используется и компилятором VS 6.0 и mingw, под Linux есть библиотеки glibc, uclibc, dietlibc и пр. Компилятор, будь то icc или gcc линкует программы к той библиотеке, которая указана в настройках. В macos x, если не ошибаюсь, тоже используется gcc, но библиотека там своя - ее Apple сделала, а не GNU Software foundation. Список можно продолжать и дальше.


Я вот тоже не понимаю, либо я на китайском пишу... Стандарт он и в африке стандарт, но реализует его каждый по своему! Каждый производитель компилятора наряду с реализацией стандартных функций в свою "стандартную" библиотеку добавляют порядочно совершенно не имеющих к стандарту отношения, но полезных с его (производителя компилятора) точки зрения функий! И всю эту библиотеку производитель компилятора именует стандартной библиотекой C производства Borland, Microsoft, Васи Пупкина и т.д. и т.п.


Цитата(bsa @  29.7.2010,  20:04 Найти цитируемый пост)
На сколько я помню, в защищенном режиме операция int x вызывает исключение общей защиты, передавая управления монитору защищенного режима (ядру). Который уже сам решает, что делать с нахальным процессом, который его потревожил. syscall основан именно на этом. Или я не прав?


Знаешь, когда ты вызываешь CreateThread, то вызов через подсистему Win32/64 через модуль удалённого вызова процедур передаются ядру. Иными словами, это системный вызов. Как система будет реагировать на различного рода прерывания, можно настроить самому, зная должным образом архитектуру процессора и системы. 

Цитата(bsa @  29.7.2010,  20:04 Найти цитируемый пост)
Т.е. ты хочешь сказать, что Windows позволяет процессу, исполняемому в пользовательском пространстве, получить доступ к таких важным вещам, как таблицы дескрипторов? Если это так, то ты нашел серьезную брешь в безопасности.


Да что ты говоришь!!!!!!!!!!! Конец всему!!!!! А то, что этой "серьёзной брешью в безопасности" пользуются производители антивирусов и вирусов уже десятки лет для тебя новость?.. smile Зная аппаратную и программную архитектуру можно обходить любые защиты. В конце концов, если производители операционки могут работать на нулевом уровне, почему прикладной программист не может?.. Нужны только знания.

Цитата(bsa @  29.7.2010,  20:04 Найти цитируемый пост)
По сравнению с чем? Если ты сравнивал производительность std::string и strcmp, то сомнительно, чтобы скорость так отличалась. Разве только из-за того, что ты собирал отладочную версию. Попробуй тоже самое в релизе. 
Вот, например, сравнение qsort и std::sort, разница по скорости двукратная, и не в пользу qsort: http://www.tilander.org/aurora/2007/12/com...-and-qsort.html


Именно string::compare и strcmp. Что в релизе, что в дебаге. И сортировку тоже сравнивал... Массив структур со строками и интами сортировал по инту в разы быстрее, чем sort!

Цитата(bsa @  29.7.2010,  20:04 Найти цитируемый пост)
Ты на других не кивай. Пока что только ты вообще никакой аргументации не привел. Только пустые слова и подмена понятий.


Вообще-то я свои ответы аргументирую. По крайней мере необоснованно ни на кого не киваю.
PM MAIL   Вверх
HellStranger
Дата 29.7.2010, 21:52 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 1.9.2009

Репутация: -1
Всего: -1



Цитата(JackYF @  29.7.2010,  21:32 Найти цитируемый пост)
А также автоматический вызов деструкторов в конце "жизни" объекта.


Да... Извини уж, но в языке, где в принципе нет такого понятия как деструктор, трудно предусмотреть его вызов... smile))))))))))) Так что вопрос не совсем по теме. 

По поводу исключений... Знаешь, а функции стандартной библиотеки C хорошо документированы. И по результату, возвращённому функцией, ты можешь судить о том, что же произошло. Естественно, если ты передал в strstr первым параметром мусор, а потом кричишь, почему прога свалилась, то C не для тебя... Ну и так, между делом, начиная с Visual C++ 6 поддерживается структурная обработка исключений на уровне компилятора. Почитай Рихтера, может, поможет... Кроме того, разработчикам FFMPEG, SDL, OpenH323, OPAL, PWLIB это не мешало. Последние 3 хоть и C++ проекты, но основная начинка всех классов чисто сишная. Плюс, не забывайте, пожалуйста, что за удобство использовани exception вы платите временем их программной обработки уже во время исполнения. На их обработку дополнительно уходит от нескольких сотен до несколких тысяч тактов процессора. Эти данные взяты из Рихтера "Структурная обработка исключений". Исключения сpp тоже не по мановению волшебной палочки раскручиваются... Если вам нужно удобство разработки, миллионы готовых шаблонов и классов на все случаи жизни, то C# уже создан... Зачем в него превращать старый добрый С?..

По поводу IA32/64 не нужно ёрничать... Я из себя её знатока не строю, так как таковым и не являюсь. Но основополагающие вещи знать нужно! 

По-моему, не надо писать код как Ctrl+C, Ctrl+V из примеров в MSDN и прочих источников, как любят заядлые критики Windows. Не прочитав полность статью о функции хватают пример из этой же статейки, естественно функция либо рушит приложение, либо просто возвращает лажу; а винда потом кривая!  smile  Нужно прежде всего понимать, как будет работать твой код, а не что он в итоге сделает. Только и всего!

Это сообщение отредактировал(а) HellStranger - 29.7.2010, 22:13
PM MAIL   Вверх
MAKCim
Дата 29.7.2010, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 8
Всего: 207



ребята, создавайте тему в религиозных войнах или флейме и дискутируйте дальше там

HellStranger
я вам настоятельно советую успокоится, собрать все мысли, выстроить их в логическую цепочку и без перехода на личности объяснить нам, что вы хотите сказать

тема временно закрыта на сутки, остыньте ;)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
mes
Дата 30.7.2010, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(HellStranger @  29.7.2010,  20:36 Найти цитируемый пост)
И всю эту библиотеку производитель компилятора именует стандартной библиотекой C производства Borland, Microsoft, Васи Пупкина и т.д. и т.п.

если она называется стандартная библиотека васи пупкина, то это совершенно не значит что она стандартна.
стандартна, только та ее часть , что соответсвует стандарту (в данном случае стандарту языку, а не стандарту расширения стандарта языка васи пупкина).

Цитата(HellStranger @  29.7.2010,  20:36 Найти цитируемый пост)
Знаешь, когда ты вызываешь CreateThread, то вызов через подсистему Win32/64 через модуль удалённого вызова процедур передаются ядру. Иными словами, это системный вызов. Как система будет реагировать на различного рода прерывания, можно настроить самому, зная должным образом архитектуру процессора и системы. 

как много умных слов, только что тут по теме ?!

Цитата(HellStranger @  29.7.2010,  20:36 Найти цитируемый пост)
Вообще-то я свои ответы аргументирую. По крайней мере необоснованно ни на кого не киваю. 

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

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
. Извини уж, но в языке, где в принципе нет такого понятия как деструктор, трудно предусмотреть его вызов..

речь не о том что там есть или нет, а о том что подобное отсутствие имеет свои преимущества и/иль недостатки..

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
Знаешь, а функции стандартной библиотеки C хорошо документированы. И по результату, возвращённому функцией, ты можешь судить о том,

Советую вначале ознакомиться в чем разница между кодами возврата и исключениями..

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
Естественно, если ты передал в strstr первым параметром мусор, а потом кричишь, почему прога свалилась, то C не для тебя..

ну ну.. Вы действительно считаете , что кто то из программистов (не новичков) назовет это проблемой, а не кривыми руками ?

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
Последние 3 хоть и C++ проекты, но основная начинка всех классов чисто сишная. 

опять как это относится к теме ? или это призыв, хватит писать на С++, возвращайтесь на Си ?!

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
Плюс, не забывайте, пожалуйста, что за удобство использовани exception вы платите временем их программной обработки уже во время исполнения.

во время исключения. но так ли важны эти такты в исключительной ситуации ?

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
 то C# уже создан... 

а то что шарп только под винду  (моно не в счет) это уже никого не волнует ?!

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
 Зачем в него превращать старый добрый С?..

С как раз и не тронут.. С++ отдельная ветвь, не принуждающая отказываться от С. и кстати не единственная.. 

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
По-моему, не надо писать код как Ctrl+C, Ctrl+V из примеров в MSDN и прочих источников, как любят заядлые критики Windows

это тоже аргументировано ?

Цитата(HellStranger @  29.7.2010,  20:52 Найти цитируемый пост)
Нужно прежде всего понимать, как будет работать твой код, а не что он в итоге сделает.

ну с этим то никто спорит, но как это опять связано с остальными размышлениями ?






--------------------
PM MAIL WWW   Вверх
k0rvin
Дата 1.8.2010, 09:47 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: 1
Всего: 5



Цитата(HellStranger @ 29.7.2010,  13:49)
Основополагающая концепция ООП инкапсуляция здесь не выполнена к твоему сведению.

Данные существуют отдельно, методы их обработки отдельно!

это не имеет влияния на инкапсуляцию


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Любитель
Дата 4.8.2010, 02:03 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 5
Всего: 92



Цитата(HellStranger @  29.7.2010,  21:36 Найти цитируемый пост)
В конце концов, если производители операционки могут работать на нулевом уровне, почему прикладной программист не может?.. Нужны только знания.

Спасибо, поржал. А вообще - ребят, хватит кормить троля. Это смешно, конечно, но.. совсем не ново и потому скучновато..

Цитата(Abyx @  29.7.2010,  18:03 Найти цитируемый пост)
я бы забанил HellStranger, пусть читает литературу по матчасти, раз один бред несет 

 smile 


--------------------
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.0726 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.