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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> плюсы и минусы сего ЯП, пожалуйста ;) 
:(
    Опции темы
andrew_121
Дата 29.1.2010, 01:54 (ссылка)  | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



всем хай!

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

зы
пожалуйста, не устраивайте холивар.

Добавлено через 34 секунды
UP
пишу на с++


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
pythonwin
Дата 29.1.2010, 05:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 14
Всего: 36



PM WWW GTalk Jabber   Вверх
andrew_121
Дата 29.1.2010, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



pythonwin, фух, осилил.
особенно понравилось следующее:
- Динамическая типизация.
- Полная ОО.
- Кортежи.
- Генераторы.
- Лямбда.
- Управление контекстом.
- Декораторы.
- Интроспекция.
- Модули и пакеты.
- Исключения.
- Навязанный синтакс.

а Стандартная библиотека Python, просто жжет.
я как понял, сейчас две ветки поддерживаются, 2.6 и 3.1. логически, могу предположить, что начать изучение стоит с версией 3.1, верно?

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

вот, попробовал кое что, и немного не въезжаю:
user posted image
из этого получается, что v1 и v2 один и тот же объект? как-то не логично. поясните пожалуйста.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
kemiisto
Дата 29.1.2010, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(andrew_121 @  29.1.2010,  14:04 Найти цитируемый пост)
из этого получается, что v1 и v2 один и тот же объект? как-то не логично. поясните пожалуйста.

Доки иди читай. У тебя var это class variable, а не instance variable. smile

Добавлено через 7 минут и 44 секунды
Цитата(andrew_121 @  29.1.2010,  02:54 Найти цитируемый пост)
интересует внятное, компетентное, аргументирование плюсов и минусов сего ЯП.

Цитата(andrew_121 @  29.1.2010,  02:54 Найти цитируемый пост)
пожалуйста, не устраивайте холивар.

Одно другому противоречит, поэтому не буду ничего писать.



--------------------
PM MAIL WWW GTalk Jabber   Вверх
andrew_121
Дата 29.1.2010, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



kemiisto, ты хоть когда-то, где-то, по существу отвечаешь? smile 
как тролль, чесслово.

Цитата(kemiisto @  29.1.2010,  13:37 Найти цитируемый пост)
Доки иди читай. У тебя var это class variable, а не instance variable.

это я и без твоих копеек понял. просил объяснить почему.

Цитата(kemiisto @  29.1.2010,  13:37 Найти цитируемый пост)
Одно другому противоречит, поэтому не буду ничего писать.

а ты только за любой холивар. немало я их насмотрелся с твоей подачи.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
kemiisto
Дата 29.1.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(andrew_121 @  29.1.2010,  15:25 Найти цитируемый пост)
kemiisto, ты хоть когда-то, где-то, по существу отвечаешь?

Я ответил по существу. Если переменная определена на уровне класса (а не в одном из его методов), она является переменной класса, а не переменной экземпляра. Что-то типа статических членов данных в твоём любимом Це++.

Цитата(andrew_121 @  29.1.2010,  15:25 Найти цитируемый пост)
а ты только за любой холивар.

Ложь.

Это сообщение отредактировал(а) kemiisto - 29.1.2010, 15:11


--------------------
PM MAIL WWW GTalk Jabber   Вверх
andrew_121
Дата 29.1.2010, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



Цитата(kemiisto @  29.1.2010,  15:09 Найти цитируемый пост)
Если переменная определена на уровне класса (а не в одном из его методов), она является перемонной класса, а не перемонной экземпляра.

так а как сделать чтоб она была "не статической" ?

Добавлено через 14 секунд
спасибо кстати ;)


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
kemiisto
Дата 29.1.2010, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(andrew_121 @  29.1.2010,  16:12 Найти цитируемый пост)
так а как сделать чтоб она была "не статической" ?

Тупо в каком-нить методе напиши какое-нибудь присваивание, например, так:
Код

class test:
    def __init__(self, x):
        self.var = [x]


Добавлено через 1 минуту и 17 секунд
Я сейчас читаю Dive Into Python 3. smile До классов ещё не дошёл, но, вроде, сработало. smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
andrew_121
Дата 29.1.2010, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



self - это типа this.
значит, self.var - значит что var является членом(свойством) класса? я правильно понял?

Добавлено через 8 минут и 43 секунды
что-то не срабатывает :(
Код

class test:
    def __init__(self, x):
        self.var.append(x)

t1 = test(1)
t2 = test(2)

t1
t2

Цитата

AttributeError: test instance has no attribute 'var'
File "/home/nixman/untitled-2.py", line 6, in <module>
  t1 = test(1)
File "/home/nixman/untitled-2.py", line 4, in __init__
  self.var.append(x)


просьба не посылать. я только учусь smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
andrew_121
Дата 29.1.2010, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

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



все, разобрался smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Karadul
Дата 1.2.2010, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(kemiisto @  29.1.2010,  15:09 Найти цитируемый пост)
Если переменная определена на уровне класса (а не в одном из его методов), она является переменной класса, а не переменной экземпляра.

Пардон, но почему тогда работает self? Он относится не только к обьектам, но и к статическим переменным?

Вот блин, насколько понятнее в жаве с ее static.
  •  Кривое обьявление переменных.
  •  В перле можно сделать так:

    Код

    $arr[20]=1;
    $arr[30]=1;


    А как в питоне присвоить в середину массива?

PM MAIL   Вверх
Karadul
Дата 1.2.2010, 06:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А вот, кстати. Почему питон матерится на русские символы даже в комментариях?
PM MAIL   Вверх
Леопольд
Дата 1.2.2010, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Karadul @  1.2.2010,  06:53 Найти цитируемый пост)
А вот, кстати. Почему питон матерится на русские символы даже в комментариях? 

Попробуй после шебанга кодировку прописать, например utf-8.
#! /usr/bin/env python
# -*- coding: utf-8 -*-


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Karadul
Дата 1.2.2010, 20:31 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нет, с указанием кодировки все работает. Какого хрена он только вообще в коменты смотрит? Это ведь коменты.

Кстати, а кому нужны эти -*-? И без них ведь работает.
PM MAIL   Вверх
Karadul
Дата 2.2.2010, 11:01 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



  • Можно опечататься или забыть и в одном месте напечатать var1 = a, а в другов var01 = b, ниже опять var1. Материться никто не будет, программа будет работать.Только неправильно. use strict, как в перле, здесь нет.

PM MAIL   Вверх
Void
Дата 2.2.2010, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(Karadul @  1.2.2010,  07:47 Найти цитируемый пост)
А как в питоне присвоить в середину массива?

Точно так же, потому что перловым массивам в Питоне соответствует dict, а не list.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Karadul
Дата 2.2.2010, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Пардон, но dict - это хэш массив, и он тормознее. Или нет?

И кстати, почему массив называется list? Список - это структура, когда можно узнать следующий и (в двунаправленных списках) предыдущий элемент, обращение по индексу не предусмотрено, зато добавление/удаление элементов в/из середины гораздо легче. Или я что-то не понимаю?

Это сообщение отредактировал(а) Karadul - 2.2.2010, 21:18
PM MAIL   Вверх
kosmonaFFFt
Дата 2.2.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



просто в питоне массивы имеют тип list )


--------------------
user posted image
PM MAIL ICQ   Вверх
Void
Дата 3.2.2010, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(Karadul @  2.2.2010,  23:16 Найти цитируемый пост)
Пардон, но dict - это хэш массив, и он тормознее. Или нет?

Тормознее в какой операции? Доступ к произвольному элементу? Асимптотика та же, просто константа больше. Много динамических языков вообще не имеют массивов как таковых, одними хэш-таблицами обходятся. Я перепутал, Perl к ним не относится, но тем не менее.
Как раз присваивание элемента за пределами текущих границ массива нарушает неявный контракт на то, что эта операция должна иметь сложность O(1).
А внутри массива, на здоровье:
Код
>>> a = range(5)
>>> a
[0, 1, 2, 3, 4]
>>> a[3] = 9
>>> a
[0, 1, 2, 9, 4]

Цитата(Karadul @  2.2.2010,  23:16 Найти цитируемый пост)
И кстати, почему массив называется list? Список - это структура, когда можно узнать следующий и (в двунаправленных списках) предыдущий элемент, обращение по индексу не предусмотрено, зато добавление/удаление элементов в/из середины гораздо легче. Или я что-то не понимаю?

Список — это не обязательно связанный список.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Леопольд
Дата 4.2.2010, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Void @  3.2.2010,  08:46 Найти цитируемый пост)

Список — это не обязательно связанный список. 

Т.е. здесь доступ по индексу константа и не зависит от длины списка? Я еще удивлялся, на кой ляд, Саммерфилд производит поиск сечением пополам в списке...


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Void
Дата 4.2.2010, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(Леопольд @  4.2.2010,  21:45 Найти цитируемый пост)
Т.е. здесь доступ по индексу константа и не зависит от длины списка?

Для типа list в Python — именно так.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
chaos
Дата 5.2.2010, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

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



тоже стало интересно
Код

>>> class SomeClass:
    text = "empty"
    def __init__(self, str):
        self.text = str

        
>>> a = SomeClass("hello")
>>> b = SomeClass("wordl")
>>> a.text
'hello'
>>> b.text
'wordl'
>>> a.text
'hello'


чот не вижу что text статическое поле



Это сообщение отредактировал(а) chaos - 5.2.2010, 14:04
PM WWW   Вверх
Daevaorn
Дата 5.2.2010, 14:27 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 9
Всего: 70



Цитата(chaos @  5.2.2010,  15:01 Найти цитируемый пост)
чот не вижу что text статическое поле

А почему вы SomeClass.text не вывели?
PM MAIL WWW   Вверх
Karadul
Дата 6.2.2010, 09:31 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это - оригинальный код (со скрина он не копируется smile)
Код

class test:
    var = []
    def __init__(self, x):
        self.var.append(x)

v1 = test(10)
v2 = test(20)
v1
v1.var
v2.var
v1.__dict__
v2.__dict__
test.__dict__



А это - другой вариант.
Код

class test2:
    var = []
    def __init__(self, x):
        self.var = x

vv1 = test2(10)
vv2 = test2(20)
vv1
vv1.var
vv2.var
vv1.__dict__
vv2.__dict__
test2.__dict__



Разница в том, что присваивание обьявляет переменную в init,  и теперь хрен пойми, как обратиться к test2.var (не употребляя имени класса). global - не получается. 

Если в перле, охренев от их видения области видимости переменных (а там еще и my не видно в подпроцедурах smile), можно влепить use strict и писать, как привых, то в питоне придется кусать кактус smile

Void, т.е. никак? И хэшэррей в питоне нифига не аналох перлового массива, и добавление в хэшмассив гораздо тормознее добавления в обычный массив? Или писать какую-то чушь вроде for a in range(10000): arr.append(None)?

Короче, в треде назревает нифиговый такой питонкапец++ smile

Это сообщение отредактировал(а) Karadul - 6.2.2010, 09:32
PM MAIL   Вверх
Karadul
Дата 6.2.2010, 09:59 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А вот еще. В питоне нету нормального for, как в C и ко, питоновский for - это foreach, и в for i in range(1e10) таки будет сгенерен список на 1e10 элементов, что сильно порадует производительностью. Если нужен for - приходится юзать while smile

А цикл с постусловием в питоне есть?
PM MAIL   Вверх
cutwater
Дата 6.2.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Karadul, а Вы о xrange слышали?
Кстати в 3й версии range работает именно как xrange


--------------------
user posted image
PM MAIL   Вверх
Karadul
Дата 6.2.2010, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстати, 3-я версия еще в разработке, насколько я знаю.
PM MAIL   Вверх
Void
Дата 6.2.2010, 12:33 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(Karadul @  6.2.2010,  11:31 Найти цитируемый пост)
Void, т.е. никак? И хэшэррей в питоне нифига не аналох перлового массива, и добавление в хэшмассив гораздо тормознее добавления в обычный массив? Или писать какую-то чушь вроде for a in range(10000): arr.append(None)?

Можно объяснить, зачем это надо? Такое присваивание в массиве — если это действительно массив, а не подрумяненная хеш-таблица — в любом случае требует перераспределения памяти, явного или в потрохах рантайма. Меня категорически не устраивает ситуация, когда присваивание элемента внезапно может оказаться O(N) вместо O(1).
Выделить список заданной длины в Питоне можно и проще: array = [None] * size.
Цитата(Karadul @  6.2.2010,  13:39 Найти цитируемый пост)
Кстати, 3-я версия еще в разработке, насколько я знаю. 

Вам стоит не полагаться на свои знания, а заглянуть на python.org.

Добавлено через 2 минуты и 8 секунд
P.S. Впрочем, чего я кормлю-то...


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Karadul
Дата 6.2.2010, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Void @  6.2.2010,  12:33 Найти цитируемый пост)
Вам стоит не полагаться на свои знания, а заглянуть на python.org.

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

Цитата(Void @  6.2.2010,  12:33 Найти цитируемый пост)
Можно объяснить, зачем это надо? Такое присваивание в массиве — если это действительно массив, а не подрумяненная хеш-таблица — в любом случае требует перераспределения памяти, явного или в потрохах рантайма. Меня категорически не устраивает ситуация, когда присваивание элемента внезапно может оказаться O(N) вместо O(1).Выделить список заданной длины в Питоне можно и проще: array = [None] * size.


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

Это сообщение отредактировал(а) Karadul - 6.2.2010, 12:45
PM MAIL   Вверх
Void
Дата 6.2.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Цитата(Karadul @  6.2.2010,  14:42 Найти цитируемый пост)
Угу, а в яве/си как-то по другому? Или бывают массивы без выделения памяти?
Как ни крути, а когда-то выделять память когда-то придется. 

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


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Karadul
Дата 6.2.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я не знаю, как это сделано в перле.
Но с другой стороны, любое присваивание в хеш-массиве может вызвать рехеш.
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




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


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

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