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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему так не любят Delphi? 
:(
    Опции темы
k0rvin
Дата 19.4.2013, 17:43 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Beltar @  19.4.2013,  17:26 Найти цитируемый пост)
А основную базу тащит какой-нибудь банальный Оракл, или MS SQL.

Опять мимо. Сегодня явно не твой день. Кстати у Оракла тоже есть nosql бд. К чему бы это?

Это сообщение отредактировал(а) k0rvin - 19.4.2013, 18:01


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
k0rvin
Дата 19.4.2013, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Beltar @  19.4.2013,  17:26 Найти цитируемый пост)
Т. е. библиотеки могли просто не успеть сделать. На самом ведь деле все наоборот, не в Delphi нет поддержки чего-то там и поэтому Delphi плохая, а скорее  это самое чего-то там просто никому не нужно, и поэтому никто драйверами не озаботился.

Для всех живых языков библиотеки есть, что намекает на ненужность Делфи.

Цитата(Beltar @  19.4.2013,  17:26 Найти цитируемый пост)
Впрочем наезд-то был на якобы ущербную ООП модель Паскаля, ну может сравним с теми же плюсами. А SmallTalk это вообще другая идеология.

Эм, ну да, ты упомянул «проблему всея ООП», я показал, что вовсе не всея. И что значит другая идеология? Всё то же ООП.

Добавлено через 7 минут и 9 секунд
http://redis.io/clients
http://docs.mongodb.org/ecosystem/drivers/
http://wiki.apache.org/cassandra/ClientOptions
http://wiki.apache.org/couchdb/Related_Projects

И ни одного упоминания Делфи. =)


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
k0rvin
Дата 19.4.2013, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстати там же в англовике:
Цитата
One possible solution is to make instance variables private to their defining class and force subclasses to use accessors to modify superclass states. A language could also make it so that subclasses can control which inherited methods are exposed publicly. These changes prevent subclasses from relying on implementation details of superclasses and allow subclasses to expose only those superclass methods that are applicable to themselves.

Собственно возникает вопрос: какие современные ООП-языки позволяют при наследовании получить доступ к приватным членам суперкласса?

Это сообщение отредактировал(а) k0rvin - 19.4.2013, 18:19


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Beltar
Дата 19.4.2013, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Для всех живых языков библиотеки есть, что намекает на ненужность Делфи.


Скорее ты плохо искал. Что впрочем не отменяет незначительности использования данных типов БД.

Цитата

Эм, ну да, ты упомянул «проблему всея ООП», я показал, что вовсе не всея.


Дорогой мой, я тебе дал проблему, кстати, для меня достаточно очевидную, т. к. 100500 вопросов встает даже при проектировании несложного класса или дерева классов. Да и вообще любой библиотеки. И нигде не сказано, что эта проблема типична для какого-то одного языка. Объектные модели OP, C++, Java, и т. п. языков мало отличаются друг от друга, везде есть дерево наследования, такие детали как наличие множественного наследования, виртуальные конструкторы, порядок работы конструкторов и т. п. принципиально ничего не меняют. И самое главное, то что существует в этих языках принято называть ООП. Ладно, пусть будет ООП, а C++ пророк его. В конце концов мы пишем на этих языках, а не на СмоллТолке. Если в СмоллТолке используется какое-то свое ООП, где нет такого, что настроили дерево классов, попилили корень, оно и упало, или, например, вообще нет наследования, то тогда вопрос, а что же тогда вообще ООП? Может традиционные процедурные языки его и не имеют и существующие в них ссылочные структуры под название класс, хотя стоп, традиционные объекты Object Pascal'я, которые и в Delphi есть, и даже применяются в KOL вообще не ссылочные. В общем может никакого ООП ни в плюсах, ни в Паскале вообще нет, а есть только ссылочные и не очень структуры с методами и наследованием?  smile За "настоящим" же ООП в SmallTalk.

Это сообщение отредактировал(а) Beltar - 19.4.2013, 18:49


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
k0rvin
Дата 19.4.2013, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Beltar @  19.4.2013,  18:47 Найти цитируемый пост)
Ладно, пусть будет ООП, а C++ пророк его

Лол, тебе совсем плохо что ли?

Цитата(Beltar @  19.4.2013,  18:47 Найти цитируемый пост)
Скорее ты плохо искал.

Ну ваш хваленый Torry.net молчит.

Цитата(Beltar @  19.4.2013,  18:47 Найти цитируемый пост)
Что впрочем не отменяет незначительности использования данных типов БД.

Т.е. ты мое сообщение про список юзеров просто проигнорировал? Так вот, я тебя огорчу, NoSQL DB используют намного больше, чем Делфи, и популярность этих БД только растет, в отличие от.

Цитата(Beltar @  19.4.2013,  18:47 Найти цитируемый пост)
Дорогой мой, я тебе дал проблему, кстати, для меня достаточно очевидную

А я тебе дал решение этой проблемы, а так же цитату с вики.

Цитата(Beltar @  19.4.2013,  18:47 Найти цитируемый пост)
Если в СмоллТолке используется какое-то свое ООП

Нет, в СмоллТоке используется вполне обычное ООП. Которое легло в основу например Objective-C и Ruby. И, внезано, «influenced by Pascal, Smalltalk».

Цитата(Beltar @  19.4.2013,  18:47 Найти цитируемый пост)
я тебе дал проблему, кстати, для меня достаточно очевидную, т. к. 100500 вопросов встает даже при проектировании несложного класса или дерева классов.

Ты бы сам для начала прочитал, в чем «проблема», как она решается:
Цитата
One possible solution is to make instance variables private to their defining class and force subclasses to use accessors to modify superclass states.

И как она решается в некоторых популярных языках: http://en.wikipedia.org/wiki/Fragile_base_class#Solutions
Упс, опять Делфи не упомянули. В СмоллТоке же вообще у объектов нет публичных полей, только методы.

Добавлено через 3 минуты и 34 секунды
Ну может английский трудности вызывает? Цитата с русской вики (важную часть я выделил, подумай):
Цитата
Проблема хрупкого базового класса заключается в том, что малейшие правки в деталях реализации базового класса могут привнести ошибку в производные классы.



--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Beltar
Дата 19.4.2013, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Наличие инструментов для решения проблемы, как минимум, свидетельствует о ее наличии. С логикой опять проблемы.

Цитата

A language could also make it so that subclasses can control which inherited methods are exposed publicly.


В смысле дернуть унаследованный метод? В Delphi обычная практика в конструкторе\деструкторе, хотя как до родоначальника всей иерархии добраться я не скажу, наверное, можно как-то, в плюсах вроде никак, про Java, C# не знаю.

Гугл говорит, что на 2011-ый было для MongoDB пара драйверов, один на ранней стадии. Я что-то не врубился на его сайтике, что там качать. Вывод, MongoDB не такая пропащая.  smile 

Это сообщение отредактировал(а) Beltar - 19.4.2013, 19:29


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
k0rvin
Дата 19.4.2013, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Beltar @  19.4.2013,  19:17 Найти цитируемый пост)
В смысле дернуть унаследованный метод? В Delphi обычная практика в конструкторе\деструкторе, в плюсах вроде никак, про Java, C# не знаю.

Думаю имеется в виду protected. Которого, кстати в СмоллТоке нет =)

Но вообще это похоже просто на какой-то фейк или хз что. Рассмотрим три ситуации:

1.
Код

class Base is
  private var x : Int = 0
end

class Derived : Base is
  public method print() is
    println(super.x)
  end
end

Но (вероятно) ни один из ООП языков не позволяет унаследованному классу получить доступ к приватным данным (т.е. внутренней реализации) базового класса. Во всяком случае ни один из здесь упомянутых. Следовательно проблемы нет.

2.
Код

class Base is
  protected var x : Int = 0
end

class Derived : Base is
  public method print() is
    println(super.x)
  end
end

Но, во-первых, protected есть не везде, а во-вторых, с для унаследованного класса protected-члены базового являются его (базового класса) публичным интерфейсом (это равносильно переменной уровня модуля в любом другом языке). Поэтому смотрим третью ситуацию:

3.
Код

class Base is
  public var x : Int = 0
end

class Derived : Base is
  public method print() is
    println(super.x)
  end
end

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

Это сообщение отредактировал(а) k0rvin - 19.4.2013, 19:34


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Beltar
Дата 19.4.2013, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ситуация, есть некий класс в котором определен метод сортировки пузырькового типа, от него наследуемся 100500 раз. Пузырьковая сортировка хоть и тормозная, то никаких аварийных ситуаций не создаст. Меняем в базовом классе пузырьковую сортировку на быструю и какой-то наследник удумавший отсортировать унаследованным методом 10000 элементов улетает в Stack overflow.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
k0rvin
Дата 19.4.2013, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Beltar @  19.4.2013,  19:41 Найти цитируемый пост)
Ситуация, есть некий класс в котором определен метод сортировки пузырькового типа, от него наследуемся 100500 раз. Пузырьковая сортировка хоть и тормозная, то никаких аварийных ситуаций не создаст. Меняем в базовом классе пузырьковую сортировку на быструю и какой-то наследник удумавший отсортировать унаследованным методом 10000 элементов улетает в Stack overflow. 


Теперь пишем на любом другом языке, хоть на том же обычном паскале, функцию сортировки, используя метод пузырьковой, описываем 100500 функций, использующих ее. Меняем реализацию функции сортировки на быструю и какая-то другая функция, использующая ее, удумавшая отсортировать 10000 элементов улетает в Stack overflow.

Внимание вопрос: при чем тут ООП?


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Beltar
Дата 19.4.2013, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Русская педивикия что пишет:


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

Проблема хрупкого базового класса сильно снижает ценность наследования.

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

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

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


Это сообщение отредактировал(а) Beltar - 19.4.2013, 20:22


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Akella
Дата 19.4.2013, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(k0rvin @ 19.4.2013,  16:16)
Цитата(Akella @  19.4.2013,  15:37 Найти цитируемый пост)
Почему уныло? Что не так?

В первом вот это:
Цитата
Optionally pass a sequence of key-value pairs, e.g.: BSON(['x',5,'y',7]);
    Use '[' and ']' to created embedded documents, e.g.: BSON(['x','[','$gt',7,']']);
    Use VarArrayOf or 1-dimensional variant arrays to add arrays, e.g.: BSON(['x',VarArrayOf(1,2,3)]);

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

Во втором хоть автор догадался классы отдельные сделать.

Но умеют ли эти либы маппить документ сразу в структуру? Типа как здесь.

значит есть к чему стремиться  smile 
PM MAIL   Вверх
k0rvin
Дата 19.4.2013, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Beltar @  19.4.2013,  20:22 Найти цитируемый пост)
Русская педивикия что пишет:

Еще раз перечитай мое сообщение выше и попробуй ответить на вопрос.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Beltar
Дата 19.4.2013, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



На колу мочало, начинем ср... спор сначала.  smile 


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Freyzer
Дата 20.4.2013, 04:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


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

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



Сложный спор, одного понять немогу, а что? Класс создать сложно? Это все ровно что сделать колбасу.

Это сообщение отредактировал(а) Freyzer - 20.4.2013, 04:46


--------------------
Advocatus Dei smile. Advocatus Diaboli smile. Ajo!   
PM MAIL   Вверх
diadiavova
Дата 20.4.2013, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 4
Всего: 142



Цитата(Beltar @  19.4.2013,  16:09 Найти цитируемый пост)
У дельфинов Fire Monkey, вопрос в том, как ее развивать будут.

Нет, все-таки давай малость вернемся назад и вспомним из-за чего мы снова начали это обсуждать. Ты написал, что в дельфях в 2002-м году уже было все, к чему другие приходят только сейчас. Теперь ты уже говоришь, что в дельфях есть перспективная технология, которая в случае если эмбаркадера вложит в нее кучу бабла(а вряд ли она сможет вложить больше майкрософта), то тогда это, возможно, станет чем-то, что можно будет как-то сравнивать с впф. Ну не знаю, можно будет или нет: впф - как я уже сказал, не только векторная графика и аппаратное ускорение, там много новшеств, я например, пока толстую книжку по впф не прочитал, тоже смотрел на нее с колокольни своих знаний о гуестроительстве, а после книжки понял насколько я отстал от жизни. Так что не знаю, чем будет в перспективе огнеобезьяна, но сейчас пока в этом направлении спорить не о чем.
Цитата(Beltar @  19.4.2013,  16:09 Найти цитируемый пост)
Возможность повозиться с XAML и изменить стандартный контрол до неузнаваемости вроде хороша, но с практической точки зрения не дает ничего, наоборот стандартный интерфейс, как правило, желателен.

С практической точки зрения можно создавать очень гибкие интерфейсы, управляемые данными, которые будут меняться в зависимости от того, какие данные поступают. Взять к примеру обычный листбокс, там помимо шаблона самого листбокса есть еще шаблон для элементов листбокса. То есть если ты привязываешь к нему в качестве источника данных коллекцию неких объектов, то ты можешь сам определить как будет выглядеть каждый объект коллекции, то есть это не просто надпись появится, а ты можешь создать шаблон из нескольких контролов, которые расположишь как тебе удобно, каждый привяжешь к определенному свойству объекта данных и когда у тебя лисбокс отобразит список этих объектов, то информация по каждому будет более полной и более осмысленной. Это даже не будет выглядеть листбоксом, а больше будет напоминать какой-нибудь список товаров в интернет-магазине, где для каждого товара есть картинка, описание, цина и т.д. И тем не менее это будет обычный листбокс и подчиняться он будет логике заложенной в этот контрол. Другое применение - это шаблоны ошибок, то есть обычный текстбокс имеет такой шаблон и он проявляется если введены данные, которые не принял валидатор. С этим шаблоном можно делать тоже все что угодно. О скинах упоминал уже. Ну, о том, что одни и те же данные можно отображать разными способами и иногда надо иметь возможность переключать представление, тоже долго говорить не надо и так понятно. Ну и по части отделения логики от представления, там поддерживается шаблон проектирования MVVM, хотя тебе и без разницы, что в дельфах разделение обязанностей эмммммм... труднореализуемо.
Цитата(Beltar @  19.4.2013,  16:09 Найти цитируемый пост)
Бесполезны в 99% случаев и разного рода свистелки и перделки с переворотом формы в полном 3D и т. п.

Если в дельфах этого всего нет, то защищая дельфу, проще всего сказать, что все чего там нет вроде как и не нужно. Не забывай только о том, что более продвинутые технологии поднимают планку требований к тому же гую и плохой вид в конце концов будет и на спрос влиять. Относительно свистелок с перделками, вон на Злоху в дельфах в свое время впечатление произвели именно они, а теперь дельфисты пытаются убедить всех в том, что это для них не имеет значения. Что же тогда имеет?
Цитата(Beltar @  19.4.2013,  16:09 Найти цитируемый пост)
 т. к. рисовал график с десятками тысяч точек (GDI не пзволяет использовать линии толщиной больше 1, слишком медленно выходит)

Чарт-контрола в дельфах нет что ли?
Цитата(Beltar @  19.4.2013,  16:09 Найти цитируемый пост)
 которая даже сейчас неюзебельна просто потому, что не работает под XP

А это еще зачем? smile 
Цитата(Beltar @  19.4.2013,  16:09 Найти цитируемый пост)
Ну и что остается в итоге? Резиновость? Которую, кстати, и в Delphi можно замутить через ScaleBy.

Не знаю, что ты понимаешь под резиновостью, но если я правильно понял то в винформах она тоже есть. В впф более продвинутая модель компоновки, но в фомах есть у контролов свойства Anchor, Dock, LayoutEngine, Margin, Padding, событие Layout и несколько готовых панелек. Все это в сочетание дает довольно гибкую модель компоновки и для этого никакой скейлбай не нужен, чем бы он ни был smile Просто в впф все еще круче.
Цитата(Beltar @  19.4.2013,  16:09 Найти цитируемый пост)
А, ну везде есть свой BDSM.

Ну почему? Если человек привык писать на плюсах, то ему проще использовать их. Будучи мультиязычной платформой, дотнет просто предоставляет выбор. Кстати у плюсов под дотнет есть свои плюсы smile 
Цитата(Zloxa @  19.4.2013,  17:05 Найти цитируемый пост)
Скажете у вас есть что нить более фапабельное нежели WPF для доднетчиков?

Не только впф. Еще раз повторюсь, что не в одном гуе счастье, так сказать: "Не гуем единым..." smile

Добавлено через 13 минут и 38 секунд
Цитата(k0rvin @  19.4.2013,  20:33 Найти цитируемый пост)
Но (вероятно) ни один из ООП языков не позволяет унаследованному классу получить доступ к приватным данным (т.е. внутренней реализации) базового класса. Во всяком случае ни один из здесь упомянутых. Следовательно проблемы нет.

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


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

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

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


 




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


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

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