LINUX.ORG.RU

Metaprog: выпуск прототипа (универсальная графическая среда программирования)

 , ,


2

3

Сегодня, как и было обещано, день выпуска LabVIEW-прототипа универсальной графической среды программирования Metaprog.

LabVIEW-прототип не является конечной целью. В дальнейшем с помощью прототипа Metaprog будет собран «сам на себе» и не будет зависеть от LabVIEW.

Приглашаю всех желающих стоять у истоков универсальной графической среды программирования присоединиться к работе над прототипом!

Видео-обзор ( VarfolomeyKote4ka)

https://youtu.be/EcQMgUAm0DE

Скачать: https://www86.zippyshare.com/v/pWggQ91b/file.html

Аннотация

Открывать и запускать !метапрог.vi и !метапрог онлайн.vi

В Метапрог онлайн интегрирован чат и хранилище пакетов с блок-диаграммами. Там идет разработка Метапрога и можно получить консультации.

В Метапрог и Метапрог онлайн встроена справочная система и интерактивные инструкции.

Требования:

1. Для запуска, просмотра и редактирования диаграмм - LabVIEW начиная с 2013.

2. Если не удалось достать линуксовую версию LabVIEW - виртуальная машина с Windows начиная с ХР с кириллической локализацией (иначе будут проблемы с кодировкой символов).

3. Tor Browser или Tor для подключения к серверу:

https://www.torproject.org/

или:

sudo apt-get install tor

4. Для компиляции сгенерированного кода:

sudo apt-get install clang libevent-dev libsdl2-dev

Адрес для добровольных пожертвований:

Bitcoin: 1AYoK2TScSpD5bhf67mv9AxHDJ2RidRvjD

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

Код лицензирован под GNU GPL v3, подробности - по кнопке «Про программу» и в файле LICENSE.txt (на английском). Отдельные файлы могут быть лицензированы под MPL и другими лицензиями.

Описание конструктора диаграмм (часть справочной системы, лучше читать смотря на Метапрог)

В случае вопросов или проблем консультации можно получить в чате программы «Метапрог онлайн».

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

Блок-диаграмма состоит из блоков, линий с данными и особых линий - жестких последовательностей. Каждый блок может иметь входы и выходы.

При клике на терминал начнется рисование провода с данными. Клик на пустом месте при рисовании провода задает точку излома провода. При приближении курсора к терминалам провод автоматически подстраивается под ближайший терминал с совместимым типом (несовместимые типы подключить невозможно). Для окончательного подтверждения соединения кликни и связь будет установлена. Чтобы отменить рисование проводка, нажми Esc.

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

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

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

Чтобы удалить блок на диаграмме, нажми на него правой мыши. Чтобы удалить провод или жесткую последовательность, нажми правой мыши на квадратик на нем.

Чтобы скопировать элемент на диаграмме, нажми на него колесом мыши. Чтобы вставить - жми колесом мыши на пустом месте.

При наведении мышью на элемент диаграммы отображается подробная информация о нем. Элементы подсказок кликабельные. Для дальнейшней справки кликай на "?" в подсказках к элементам.

Описание контейнера с данными и системы типов (часть справочной системы, лучше читать смотря на Метапрог)

В Метапроге есть три вида контейнеров с данными: константа, вход и выход. Константа имеет жестко заданное значение. Вход и выход связывают эту диаграмму с внешними диаграммами.

При клике правой мыши на пиктограмме перемещения константа будет преобразована во вход такого же типа.

Типы в Метапроге имеют надтип. Может наследоваться интерфейс работы с данными, способ трансляции в Си и цвет (если тип не имеет своего цвета). При работе с диаграммой и ее трансляциями в Си данные разных типов обрабатываются зависимо от корневого типа. Метапрог имеет следующие корневые типы:

Данные - включает в себя числа (знаковые, беззнаковые и бробные разных разрядностей) и логический тип (зеленый). Логический тип совместим со всеми числовыми типами, так как в Си они могут выступать в качестве условия (если ноль - «нет», все другие значения - «да»). Есть типы число (все числа, коричневый), знаковое (голубой), беззнаковое (темно-синий), целое (объединяет знаковое и беззнаковое),дробь (оранжевый).

Неопределенное - аналог типа void в Си. Совместим со всеми типами.

Указатель - содержит адрес данных. Прямо транслируется в указатель на Си. Получается из данных блоком «указатель» (из меню блоков), вытягиваются данные из указателя блоком «вытягивание указателя».

Структура (последовательность и выбор) прямо транслируется в struct или union на Си. Формируется из контейнеров с данными другого типа путем из вытягивания на структуру. Достум к элементам структуры осуществляется через блок «операция над структурой».

Массив - тип, не имеющий прямого аналога в Си. Содержит указатель на первый элемент и длину массива. Доступ к этим переменным осуществляется через блок «операция над структурой». Чтобы задать тип массива, вытащи на него контейнер нужного типа. Массив можно подключить к типованному циклу (блоки - типованный цикл), в котором можно осуществить обработку каждого его элемента.

Структура условного выбора типа не имеет проямого аналога в Си. Состоит из числа-переключателя и структуры выбору (в Си - union) из данных разных типов. Тип данных зависит от значения переключателя. Задается и читается через операцию над структурой. Можно подключить к переключателю (блоки - переключатель), в котором обрабатывать данные зависимо от типа. Для добавления типа вытащи контейнер нужного типа на СУВТ.

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

Функция Си - на уровне Си является указателем на функцию. Над такой константой есть пикторгамма соответствия копии на диске в виде дискетки, как над подфункцией. Ее цвет зависит от соответствия. Кликом по этой пиктограмме можно управлять соответствями. Подобная пиктограмма есть у сложных типов (структур и структур условного выбора типа). В подсказках к константам, содержащим подфункцию, есть 4 цветные цифры. Это суммарное число комментариев определенных видов в поддиаграммах (замечание, известные ошибки, пожелания и «дело сделано»).

------------------------------------------

При клике на пиктограмму перемещения объект можно передвинуть, при этом линии до его терминалов передвинутся за ним (но тут еще возможны баги).

При клике на название объект диаграммы можно переименовать. Название объекта никак не влияет на логику и предназначено для чтения людьми.

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

Предыдущие темы, посвященные разработке Metaprog

Metaprog: универсальная графическая среда программирования [LabVIEW-прототип] часть 9

Там же ссылки на более ранние темы.



Последнее исправление: metaprog (всего исправлений: 1)

Ответ на: комментарий от metaprog

Я не думаю, что мы подразумеваем под «поддерживать» одно и то же.

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

Гм.
Скорее всего ТС лет двадцать пять.
Так, что не все потеряно.
Ведь его бравада о том, что и то не нужно и то не нужно больше
была похожа на то, чтобы других убедить, что графический язык существенно упростит разработку.
Для простых алгоритмов да, а для сложных понадобятся и абстрации и ...

Владимир

anonymous
()
Ответ на: комментарий от anonymous

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

Это мы об адекватных разумных людях. В противном случае на графическую революцию в программировании я бы тем более не расчитывал.

Для простых алгоритмов да, а для сложных понадобятся и абстрации и

Вообще-то любой алгоритм это уже абстракция. «Простой» или «сложный» это вообще тут эпитеты.

anonymous
()
Ответ на: комментарий от anonymous

Кстати,

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

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

Собственно, всё. Lasciate ogni speranza.

anonymous
()
Ответ на: комментарий от anonymous

«Простой» или «сложный» это вообще тут эпитеты.

Где то так.
Речь шла о том, что касторкой не полезно все болезни лечить.
А пока у ТС касторка используется для всех алгоритмов.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Где-то я это уже читал, пять-шесть тредов назад. А результат — очередная тема про метапрог. Пациент стабильно тяжелый, без признаков улучшения.

Показывали, где графическое программирование хорошо работает? Показывали. Воспринял? Нет.

Объясняли, в какую сторону стоит смотреть для того, чтобы идея имела перспективы? Да, много раз. Воспринял? Тоже нет.

Мне, например, те треды было интересно читать, но уж точно не благодаря автору.

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

anonymous
()
Ответ на: комментарий от anonymous

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

Странные у вас понятия. GUI — это в лучшем случае стены, но не фундамент.

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

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

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

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

Да ерунда это всё. У каждого свой путь. Я вот в 25 лет прочитал про Linux в журнале «Монитор» и решил, что задумка, может, и интересная, но нафига, если есть божественная OS/2? И вот оно как обернулось...

Вообще, когда тут вместо того, чтобы критиковать проект, начинают переходить на личность автора, мне хочется встать на его сторону. (Другое дело, что критиковать пока особенно нечего, разве что людям, у которых уже есть Лабвью, ну или время/интерес им заняться. У меня настолько сильного интереса нет. Ну можно просто не писать в тему регулярно, а комментировать только тогда, когда ТС выложит что-то, что можно пощупать. Вот факториал выложил — мы пощупали...)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

Ну хотя бы с него начали.

Тем самым было акцентирована не важность GUI, а «хотя бы» что-то полезное начал делать.

Владимир

anonymous
()
Ответ на: комментарий от hobbit

На личности переходят только «личности».

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Нет смысла ТС разрабатывать GUI с scratсh /задача того не требует/.

VarfolomeyKote4ka помогай товарищу.

Владимир

anonymous
()
Ответ на: комментарий от Deleted

А чем она была лучше винды?

Если сравнивать с Win95, то почти всем. Win95 продолжала оставаться слегка замаскированной графической оболочкой над DOS, в то время как полуось была реально многозадачная 32-разрядная система.

Если же сравнивать с WinNT, то тут результат не столь очевиден. Но NT для приемлемой работы кушала памяти в разы больше, чем OS/2, что для железа середины 90-х было очень ощутимо.

Кроме этого, у OS/2 был объектно-ориентированный рабочий стол (уже забываю, как всё это работало, но с виндой не сравнить), продвинутый скриптовый язык REXX из коробки и другие приятные плюшки.

Справедливости ради, надо сказать, что в Win95 было гораздо поприятнее, например, с мультимедиа. Полноценный микшер (в OS/2 только эстетский регулятор громкости). IBM всегда ориентировалась на кровавый энтерпрайз, а о домашнем десктопе не думала. В то же время винда, по меткому замечанию Линуса, использовала тактику саранчи, то есть стремилась заполнить все дыры. За счёт чего и победила.

Инженеры IBM сделали отличную систему. Менеджеры и маркетологи IBM скатили её в сраное говно. С Windows ситуация с точностью до наоборот. Собственнно, осознание дерьмовости этой истории и привело меня в ряды сторонников свободного ПО.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

продвинутый скриптовый язык REXX из коробки и другие приятные плюшки.

Приходилось с ним иметь дело на СВМ /система виртуальных машин/, в частности на ЕС-1040.
Можно было выделить аж 12MB виртуальной памяти /все плакали от счастья/.
Первые версии Windows были похожи на «срез» программ с СВМ.

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Первые версии Windows

Первые версии MS DOS.

Владимир

anonymous
()
Ответ на: комментарий от hobbit

Вообще, когда тут вместо того, чтобы критиковать проект, начинают переходить на личность автора

А вот это сейчас реально смешно было. На колу висит мочало...

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

anonymous
()
Ответ на: комментарий от metaprog

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

snake266 ★★
()
Ответ на: комментарий от snake266

лол. Он ни скриншотов, ни видео (полной среды, а не огрызки кубиков на белом фоне) своей поделки не может, а ты про документацию.

anonymous
()
Ответ на: комментарий от anonymous

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

snake266 ★★
()
Ответ на: комментарий от hobbit

Win95

Ну с этим сравнивать нельзя %)

продвинутый скриптовый язык REXX

А какой нибудь VBScript был хуже?

NT для приемлемой работы кушала памяти в разы больше

Хм, интересно, в разы это сколько?

Deleted
()
Ответ на: комментарий от anonymous

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

Так если «нет проекта» — можно оставить тему в покое и не обсуждать возраст/упоротость автора.

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

hobbit ★★★★★
()
Ответ на: комментарий от Deleted

Хм, интересно, в разы это сколько?

Ты много хочешь от моего склероза, но если я правильно помню - OS/2 Warp нормально работала на 8-16 Мб памяти (вот не помню, третья или четвёртая). С NT такое не прокатывало, под неё уже покупали машины с 32 Мб.

И NT на десктопе это вообще грустно было, тут битва шла именно между Win95 и OS/2. Нормальная универсальная система на ядре NT — это уже была Windows 2000, и это было сильно позже, OS/2 к тому времени почти сошла со сцены.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от hobbit

Так если «нет проекта» — можно оставить тему в покое и не обсуждать возраст/упоротость автора.

А что ещё обсуждать, не «проект» же, которого нет. Только автора и его упоротость и осталось обсуждать, кому не лениво, естественно.

либо всерьёз задумается о смене концепции

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

ядовитые замечания только усиливают эффект «они меня не понимают, я докажу, что был прав».

Ну если хоть «ядовитые замечания» приведут к тому, что у него тыква наконец работать начнет, и то польза.

anonymous
()
Ответ на: комментарий от anonymous

Ну если хоть «ядовитые замечания» приведут к тому, что у него тыква наконец работать начнет, и то польза.

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

Иногда лучше просто помолчать.

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Да. Но для комфортной работы 8 таки было желательно.

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Сейчас это кажется фантастикой. Даже ещё большей, чем тогда казались машины с десятками Гб памяти.

anonymous
()
Ответ на: комментарий от anonymous

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

Ну это как сказать, анон-сан. Примерно в 25 уровень тестостерона у мужчины подскакивает в 4 раза. О том свидетельствуют медицинские исследования и уголовная статистика. Именно в 25 поток чистой агрессии («saint anger») ожидаем больше всего. А потом человек уже как-то ей овладевает со временем.

kostyarin_ ★★
()
Ответ на: комментарий от hobbit

«Тут МУР, а не институт благородных девиц»

Тут вообще-то ЛОР, а не школа для лиц с пониженной самооценкой.

anonymous
()
Ответ на: комментарий от kostyarin_

Люди, не умеющие справляться со своей агрессией, уж точно на лоре «графическое программирование» в массы не продвигают, а слушают радиопередачу «Калина красная».

anonymous
()
Ответ на: комментарий от anonymous

А что, «школа для лиц с пониженной самооценкой» - это единственное место, где надо стремиться вести себя вежливо и доброжелательно? :)

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

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

А что, «школа для лиц с пониженной самооценкой» - это единственное место, где надо стремиться вести себя вежливо и доброжелательно? :)

Нене, не надо передергивать.

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

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

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

Варя dies.

anonymous
()
Ответ на: комментарий от kostyarin_

Ладно, намек оказался слишком тонким. Да, именно это я и имел ввиду.

anonymous
()
Ответ на: комментарий от anonymous

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

Кстати, чем дальше в лес, тем все с большей симпатией отношусь к чморению Луговским подобных неучей.

Вежливось и «кукушение петушки» это всё хорошо, но к сожалению, на текущий момент баланс между неучами и луговскими кардинально нарушен. Я, конечно, за вежлилось, но ещё больше за баланс.

anonymous
()
Ответ на: комментарий от anonymous

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

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

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

Личность автора на порядок интереснее проекта в данном случае.

anonymous
()
Ответ на: комментарий от anonymous

не «проект» же, которого нет

Настолько «нет», что даже прототип уже выпущен. Сходи к окулисту.

metaprog
() автор топика
Ответ на: комментарий от snake266

Такое если захотеть можно и ручками набить

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

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

Я с ним работал и знаю о чем говорю. Видео записывать лень. Если ты мне не веришь, то можешь сам проверить, поставив Лабвью и генератор Си.

metaprog
() автор топика
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от metaprog

Да, он настолько «есть», что нет ни одного видео с работой этого мегапроекта от запуска до получения готового бинаря, ни одного полного скрина. Есть только некий набор файлов, которые только ты и, возможно (а скорее всего нет), твоя секретарша видели в действии. Ну и пара непонятных скриншотов из которых, опять же, непонятно ничего.

anonymous
()
Ответ на: комментарий от metaprog

Если ты мне не веришь, то можешь сам проверить, поставив Лабвью и генератор Си.

Если ты мне не веришь, то можешь сам проверить, навернув говнеца.

fixed

anonymous
()
Ответ на: комментарий от hobbit

продвинутый скриптовый язык REXX из коробки

Ждём допила Red и айда возрождать Syllable. Лично в моих планах — мобильная версия. Правда, портирование middleware для взаимодействия с радиомодулем даже при наличии готового rild и сопутствующих вещей — штука весьма суровая…

rebforce
()
Последнее исправление: rebforce (всего исправлений: 1)
Ответ на: комментарий от metaprog

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

или ты предлагаешь поверить на слово такому треплу и неучу, как ты?

anonymous
()
Ответ на: комментарий от i-rinat

Работы привалило, небось.

Ох, я сходил по ссылке на хабр и понял, что ошибся. Он не работой занят, он срётся на хабре.

i-rinat ★★★★★
()
Ответ на: комментарий от rebforce

Ждём допила Red

Глядя на тех дебильных жирножопых персонажей что его делают, надеяться ни на что хорошее не приходиться.

Да и вообще концепция языка программирования любая, которая может придти в голову среднему оленю не имеет ничего общего с современными потребностями. Эти (абстрактно) идиоты умеют только смотреть по сторонам и тащить со стороны к себе. Похоже на сообразительность сороки — где-то блестит — значит нужно мне. И вместо языков получается говно. Как и всегда. В наше время уже совсем другие потребности в программировании. ТС хоть и тупо но всё же пытается их решить — у него получиться говно, я не сомневаюсь, но по сообразительности он точно даст фору любому ред-мэйкеру, Пайку, Страуструппу, Кернигану с Ритчи и котлинаторам и прочим.

anonymous
()
Ответ на: комментарий от hobbit

«Ну и что вы теперь на это скажете, мой дорогой психолог?» (с)

Вежливо, говорите.

Ага.

«Лаской-с. Единственным способом, который возможен в обращении с живым существом.» ? Профессору такой подход особенно хорошо помог, да.

Нет, только чморить. Луговского очень не хватает.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.