LINUX.ORG.RU

Сообщения varchar

 

Прочитать с диска файл, рас(паковать/шифровать), закинуть в DOM

Форум — Web-development

Хочу немного прикрыть быдлокод своего node-webkit (нода в одном флаконе с хромиумом) приложения, ресурсы которого — один большой html-файл.

Пока хожу вокруг да около с такими вопросами:
1. как (чем) скрыть (испоганить) ресурсы от просмотра в браузере и текстовом редакторе?
Base64 подошла бы, но с наскоку не вышло, что-то там с кодировками. Может XOR? Или какой-то примитивный компрессор на JS, лёгкий декомпрессор которого можно было бы вставить в страницу отображающую процесс загрузки основного ресурсного файла.

2. как яваскриптом прочитать файл получая какой-то статус прогресса его загрузки?
Примитивное решение навскидку - сплит файла ресурсов на, скажем, 5 файлов одинакового размера. И их поэтапная загрузка - 20% 40% 60% и т.д.

Тег node.js — лишний, она не используется, но может быть она как раз и пригодится для решения поставленных задач?

 , ,

varchar
()

Анимация с jQuery, почему она асинхронная?

Форум — Web-development

Хочу понять, почему следующий код анимирует оба дива одновременно, а не последовательно, в порядке вызовов. Это какая-то фишка jQuery или сам яваскрипт такой, что второе if выполняется не дожидаясь возвратов из функций вызванных в первом?

function showDiv( sidebarDiv, mainContentDiv ) {
	if ( mainContentDiv ) {
		$( "div[id$='main-content-div']:visible" ).slideUp( 250, function(){
			$( "#" + mainContentDiv ).slideDown( 250 );
		});
		if ( sidebarDiv ) {
			if ( $( "div[id$='sidebar-div']" ).is(":visible") ) {
				$( "div[id$='sidebar-div']:visible" ).slideUp( 250, function(){
					$( '#' + sidebarDiv ).slideDown( 250 );
				});
			} else {
				$( '#' + sidebarDiv ).slideDown( 250 );
			};
		};
	};
};

 ,

varchar
()

Посоветуйте программ на планшет под андроидом

Форум — Mobile

Привет ЛОР, помоги-ка устроить «полный фарш» на планшете школотунчика лет 8-10ти.

Нужны годные плееры, вьювер, читалка, словарь... что ещё? Я не в теме совсем, всё, что нужно, полезно и интересно — советуйте.

 , ,

varchar
()

Кроссплатформенный презентационный диск — выбор технологии

Форум — Development

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

Пока что в кандидатах браузер + javaScript и/или flash. А есть другие варианты? Выбор? Ах, да, важна сравнительная простота. Опыта нет, знакомство-обучение будет по ходу дела.

varchar
()

Отвалилось 3D

Форум — Desktop

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

Из Xorg.0.log-а:

[ 17.105] (EE) AIGLX error: dlopen of /usr/lib64/dri/r600_dri.so failed (libLLVM-3.1.so: cannot open shared object file: No such file or directory)
[ 17.105] (EE) AIGLX: reverting to software rendering
[ 17.105] (II) AIGLX: Screen 0 is not DRI capable
[ 17.152] (EE) AIGLX error: dlopen of /usr/lib64/dri/swrast_dri.so failed (libLLVM-3.1.so: cannot open shared object file: No such file or directory)
[ 17.152] (EE) GLX: could not load software renderer
[ 17.152] (II) GLX: no usable GL providers found for screen 0

А файлы-то на месте (есть по ссылкам):

/usr/lib64/dri/r600_dri.so -> ../mesa/r600g_dri.so
/usr/lib64/dri/swrast_dri.so -> ../mesa/swrastg_dri.so

Версии:
media-libs/mesa-9.2.1
x11-base/xorg-server-1.14.3-r2
x11-base/xorg-drivers-1.14
x11-drivers/xf86-video-ati-7.2.0
sys-devel/llvm-3.1-r2

 ,

varchar
()

Audacity - экспорт проекта в wav/raw

Форум — Multimedia

Какое-то проклятие преследует меня и линукс при работе с мультимедиа.

Сейчас вот с Audacity. В кратце - проект - 8-ми часовая запись, которой нужен экспорт в непожатые wav или raw. А фиг! В wav сохраняются ~2.5 часа, и это не упор в ограничение контейнера. В raw сохраняется вся длительность, если в той же Audacity открывать. Но из полезной там часика 3, всё остальное - тишина, к тому же глючащая на просмотре. Экспорт во флак — всё ок, но не подходит, т.к. 32 bit float...

До кучи гимп с зелёным сглаживанием текста и kdenlive делающий фэйд-ин-аут двух картинок только после нескольких kill -9...

Тут за советом по сабжу.

 

varchar
()

Редактирование видео — дэшейк, шумодав, поворот, монтаж, саундтрек

Форум — Multimedia

Есть видео ( MJPG 1280x720 30fps ) отснятое дрожащими руками говномыльницей. Нужная обработка в сабже, т.е. хватило бы виртуалдаба, или avidemux, если б она работала как надо, но увы нет, ещё раз убедился, отметаем!

Что взять, кто-то наверняка проделывал всё это, что оказалось лучше и удобнее для вас?

Сейчас смотрю в сторону melt с дэшейкером videostab2 и mencoder с его дэнойзерами, а также на kdenlive (ух падуч!), кстати, как в нём перевернуть по часовой на 90 (в фильрах нашёл), отмасштабировав по высоте, чтобы не потерять края от бывшей ширины, что стала высотой?

 ,

varchar
()

Информация о игнорировании для игнорируемого

Форум — Linux-org-ru

Для игнорируемых и не только, по-моему, была бы полезна какая-либо возможность узнать о игнорировании их конкретным пользователем.

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

Мне нравится максимально приватный вариант, когда только игнорируемый мог бы увидеть себя (только себя) в игнор-списке у игнорирующего. Как-то так: «Вы не игнорируете этого пользователя», в профиле, дополнить «Вас не игнорирует этот пользователь» и/или «Этот пользователь вас игнорирует» соответственно.

 ,

varchar
()

Автоматическая выгрузка зависимых модулей

Форум — Admin

Загрузка по зависимости есть, а в обратном порядке, выгрузка? Вот пример, чтобы сообщение не было уж совсем куцым. Для тюнинга параметров модуля mac80211, в моём случае, перед ним нужно выгрузить цепочку из четырёх от него зависимых:

for m in rt61pci rt2x00pci rt2x00mmio rt2x00lib mac80211; do rmmod $m; done
и всё бы ничего, если бы не вот такое определение нужного порядка:
# rmmod mac80211
rmmod: ERROR: Module mac80211 is in use by: rt2x00lib rt2x00pci
# rmmod rt2x00lib
rmmod: ERROR: Module rt2x00lib is in use by: rt61pci rt2x00pci rt2x00mmio
# rmmod rt2x00pci
rmmod: ERROR: Module rt2x00pci is in use by: rt61pci

 autounloading, kernel modules

varchar
()

Регексп для sed (1122334455 => 11:22:33:44:55)

Форум — General

Нужно stdout одной проги передать в stdin другой, модифицировав как в сабже. Регулярка работающая в редакторе geany и питоне, не работает для sed, как я её не экранировал.

Search -- (\d\d)(\d\d)(\d\d)(\d\d)(\d\d)
Replace -- \1:\2:\3:\4:\5
Man/info sed — курил — не вставило. На питоне с re — медленно. Знатоки sed-овских regexp-ов, подскажите.

 ,

varchar
()

Выбор планшета до 200$

Форум — Talks

Выбираю планшет на подарок школьнику младших классов. Из его пожеланий - камера, чтоб для фото более-менее. Из моих: свежий андроид; wifi; безгеморное подключение к компу, стандартным usb; слот для карты памяти; gps - не знаю - полезная ли штука или интересная игрушка?

Как бы ещё сузить выбор? Может конкретным процом, объёмом памяти, ёмкостью батареи, производителем Samsung/Lenovo...

А может кто-то уже знает т.н. «best buy» за сумму в сабже.

 ,

varchar
()

Меряемся размерами репозитариев

Форум — Talks

Возможно кому-нибудь кроме меня будет интересно узнать и сравнить размеры репозитариев в разных дистрибутивах.

Gentoo
Актуальное основное дерево насчитывает 16380 ебилдов.
В общем же, с кешированными оверлеями, база данных eix-а, после последнего обновления, содержит 29796 пакетов в 228 категориях.

Реальное количество доступных к установке программ немного меньше, из-за специфичных для генты виртуальных пакетов, мета-пакетов и прочего.

А у вас сколько?

varchar
()

Печальный конец Паскаля Младшего

Форум — Talks

Очень мало говорят о печальном конце Паскаля Младшего. Его бывшие коллеги знали, что у него возникли проблемы, заставившие поместить его в психиатрический госпиталь. Теперь когда он умер, я могу опубликовать письмо, которое он мне послал в свое время; оно уже больше не может причинить ему вреда...

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

О ком речь, кто этот Паскаль Младший, имеет ли он отношение к одноимённому языку Вирта? И как вам его история?

«Господин профессор,

Я не знаю, помните ли вы меня: я был вашим учеником в Институте программирования. Конечно, у вас их столько было... После того, как я окончил институт, я поступил на работу программистом-аналитиком в бюро обслуживания. Я был на очень хорошем счету. Я следовал вашим урокам: использовал программирование «сверху-вниз», я выводил свои циклы в программах, используя пост- и предусловия и инварианты. Мои программы работали верно с первого запуска, с точностью до опечаток. Короче, по прошествии нескольких лет я сказал себе, что у меня будет более интересная работа, если я буду вести ее на свой собственный счет. Поэтому я все подготовил, нашел помещение. Я подал в отставку и взял все отложенные отгулы, на которые я имел право. Будучи холостым, я, вообще говоря, брал очень мало выходных дней, настолько меня захватывала моя работа. Но, собираясь испытать счастья в большом деле и становясь своим собственным работодателем, я хотел получить настоящий отдых.

Право, я не знаю, как это меня по рекламному объявлению занесло в бюро путешествий «Посетите таинственную Индию». И вот я отправился с тремя десятками других в организованное путешествие. Конечно, я должен был задуматься раньше, то ли я выбрал, что мне нужно. Оказалось, что я с трудом переношу беспрерывную болтовню то одних то других; это мешало мне думать о чем-нибудь своем. Мне пришлось примириться с тем, что мне придется думать о чем-то еще, кроме написания какой-то упирающейся программы! Детали этого путешествия несущественны вплоть до дня, когда нас привезли в монастырь в предгорьях Гималаев.

Монах, который нас принял, говорил на отличном французском. Сообщение, которое он сделал о монастыре, свидетельствовало о свободном владении нашим языком. Это должно было показаться мне подозрительным. Он ввел нас в помещение и, с того момента как я вошел я смог только выдавить «ох» изумления: мы увидели монаха, который занимался знаменитейшей игрой в Ханойские башни. Диски были, очевидно, из золота, и я сразу угадал, даже не считая, их ровно 50. Монах объяснил игру посетителям:

«Как вы видите, игра состоит из круглой подставки с тремя стержнями. На стержни нанизаны диски различных диаметров. (Рис. 26 представляет конфигурацию игры с семью дисками.) На каждом стержне диски сложены, в стопку по возрастанию диаметра: никогда ни один диск не кладется на другой диск меньшего диаметра. В начале игры, это было много лет назад, даже много веков, все пятьдесят дисков находились на первом стержне. Монах перекладывает эти диски один за другим, следуя методу, который мы тщательно продумали. Когда все диски соберутся снова на одном стержне, отличающемся от исходного игра кончится. Великий труд, который боги наложили на людей будет завершен, и сможет наступив, конец света...»

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

«Как только что заметил один из вас, это занятие потребует еще многих столетий, несмотря на большую сноровку монахов, которые перекладывают каждый диск приблизительно за одну секунду». Я снова продемонстрировал свое раздражение, Разумеется, я предполагал, что из-за меня посещение будет сокращено. Но не для того же я сюда приехал, чтобы надо мной, как и над остальными путешественниками, насмехались? Мы хорошо знаем, что игра в ханойские башни была изобретена в конце прошлого века преподавателем математики в лицее Сент-Луи по имени Люка, который под этим соусом ее и пустил в свет, окружив легендой, согласно которой монахи где-то в Индии суетятся вокруг игры в 50 дисков, по окончании которой наступит конец света. Эта легенда делала естественной задачу о подсчете числа ходов, Необходимых для завершения игры. Что же касается того, что каждый диск перекладывается за секунду, то это элементарно, и мы знаем итеративную стратегию, которая позволяет нам просто играть, ни о чем не думая — вы ее нам сами давали в вашем курсе в институте...

Когда мы покидали монастырь, наш гид подошел ко мне и спросил меня, не хочу ли я оказать его настоятелю большую честь своим посещением. Обсуждение с руководителем группы. Назавтра мы не должны были уезжать рано, и поэтому я принял приглашение снова прийти туда до нашего отъезда. Настоятель принял меня очень любезно и предвосхитил мои упреки: «Несомненно, вы уже знакомы с башнями Брахмы. Мы знаем, что они были введены во Франции много лет назад М. Люка. Он никогда не говорил, что он сам придумал эту игру. Совсем наоборот, он очень добросовестно изложил то, что мы делаем. И разве мы виноваты в том, что вы вбили себе в голову, что с его стороны это была чистейшая уловка» чтобы придать больший блеск своему мнимому открытию? А это была и в самом деле чистейшая уловка, потому что ему приписали создание этой игры, в то время как он всего лишь пересказал то, что ему описал один путешественник... Нас тревожит то невероятное время,, которое нужно для окончания игры. Мы очень терпеливы, однако мы ищем, как двигаться быстрее. Один наш посетитель, приехавший из американского университета, предложил нам сконструировать робота-манипулятора, управляемого компьютером. Мы со своей стороны финансировали это исследование. Но робот Не мог двигаться быстрее, чем наши монахи, натренированные до совершенства и действовавшие безошибочно». Когда же я высказал замечание, что при таком решении проблемы игру будут вести уже не люди, а машина, настоятель решительно возразил мне, сказав: «Мы прекрасно пользуемся молитвенными мельницами, Во всяком случаем машина делается людьми и управляется программой написанной людьми...»

Он также сказал мне, каким образом это исследование к тому же открывает новые перспективы. Были времена, когда монахи пытались присоединить к игре четвертый стержень. Правила оставались такими же: перемещать за один раз не более одного диска и никогда не класть диск на другой диск меньшего диаметра. Конечно, манипуляция игрой с 50 дисками до сих пор не удалась. Они вывели, что при этом требуется гораздо меньше ходов, но стратегия манипулирования становится много сложнее. Монахи терялись, часто оказывалось, что они ошибаются, они снова попадали в уже пройденные конфигурации, так что не было никакой уверенности в том, что удастся дойти до конца, если постоянно приходится начинать сначала.., «Не могли бы вы взяться за решение проблемы башен Брамы с четырьмя стержнями, составить программу для соответствующего компьютера и использовать его для управления роботом, манипулирующим игрой? Ведь даже если каждый ход отнимет много секунд, конец должен будет наступить намного быстрее. А нам, таким образом, выпадет величайшая радость — стать теми, кто выполнил волю богов. Мы увидим, что мир достиг своего конца, и вступим в счастье, которое никогда не кончится...»

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

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

И я был всем очень доволен, пока не понял внезапно, что я без раздумий бросился в ужасное предприятие. А что, если монахи говорили правду? Какую пользу мне принесет обладание богатством (ибо они должны были заплатить мне еще если программа будет работать правильно), если вскоре наступит конец света? Безусловно, будучи убежденным рационалистом, я не очень-то всерьез принимал их истории. Но, в конце концов, это — новая форма пари Паскаля *). Даже если шанс, что все это верно, бесконечно мал, я не испытывал ни малейшего желания ускорять конец света. Но прошлое вернуть нельзя и их плату я уже получил.

*) Имеется в виду постановка Блезом Паскалем (1623—1662) вопроса о вере в существование бога как задачи о выборе стратегии в азартной игре («Мысли», отрывок 233): «Взвесим 'выигрыш и проигрыш, ставя на то, что бог есть. Возьмем два случая: если выиграете, вы выиграете все; если проиграете, то не потеряете ничего. Поэтому, не колеблясь, ставьте на то, что он есть» (Антология мировой философии в четырех томах, Том 2, М., «Мысль», 1970, С, 306).— Примеч. пер.

Мне пришла в голову поистине дьявольская мысль: эти прекрасные монахи желали конца света, чтобы как можно скорее достичь вечного счастья вот уж я его им обеспечу, В корпус компьютера я добавил выдвижной ящик, который окрестил «концом света». В нем были под видом блока питания толстые цилиндры, на корпусах которых была маркировка конденсаторов, но в которых находились пластиковые бомбы. Маленькое изменение программы должно было вызвать взрыв сразу же после того, как наименьший диск покидал свой стержень и перед тем, как он достигал места своего назначения. Таким образом, игра никогда не должна была кончиться. Что до монахов, то они будут с восторгом представлять себе конец света в тот момент, когда завершится игра. В тот момент чудовищность моего поступка меня не шокировала. Наоборот, я был в восторге: монахи будут счастливы, а я уберегу весь мир от конца. Я дошел до того, что смотрел на себя как на благодетеля человечества. Конечно, я брал на себя риск. Программу, без сомнения, нужно было испытать. Но, как я вам уже говорил я прошел хорошую школу — Вашу школу — и я программировал правильно.

Когда все было закончено, я отправился вручить свое произведение сияющим монахам. Она была испытана на игре в 20 дисков. Затем аппарат был пущен в работу для игры с 50 дисками и 4 стержнями. Тут я попросил у монахов разрешения удалиться: ведь мне хотелось бы привести свои дела в порядок в то небольшое время, которое осталось нам жить, что они очень хорошо понимали. Я возвратился с полными пригоршнями золота.

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

Уже позже меня стали одолевать сомнения. Не были ли монахи правы? Не я ли тот, кто помешал воле богов? Не воспрепятствовал ли я выполнению работы, которая была доверена людям? Не должен ли я сконструировать игру в 50 дисков, и не следует ли ее разыграть, чтобы искупить свою вину?

С этих пор я живу в ужасе. Если я ничего не делаю, я несу на себе груз того, что я препятствую воле богов. Если я сделаю игру, что для меня не составляет никакого труда, то именно я и приведу мир к гибели... Я никому не могу довериться. Я умоляю вас, помогите мне...»

Я не стал вмешиваться. Душа Паскаля Младшего не могла сопротивляться этому удару. Он впал в безумие и немного спустя умер...

 паскаль младший, печальный конец

varchar
()

Эмуляция USB mass storage устройства

Форум — Linux-hardware

Есть аппарат (тв ресивер) способный читать некоторые файлы с флешки. Есть сами файлы на компьютере с линукс.

Задача — обойтись без флешки, эмуляцией. Что курить, куда копать?

 ,

varchar
()

Gentoo, systemd — откуда брать юниты?

Форум — General

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

 , , , хочу готового

varchar
()

Блокировка на удаление комментария.

Форум — Linux-org-ru

При удалении комментария (#2) блокировавшего удаление предыдущего комментария (#1). Удаление комментария #1 остаётся невозможным, несмотря на появление под ним ссылки [удалить]. Это штатное поведение?

Как воспроизвести:
1. оставить комментарий
2. ответить на него
3. удалить ответ (п.2)
3. попытаться удалить комментарий из п.1
4. наблюдать пингвина сообщающего о невозможности удаления

Решение — или разрешить удаление или убрать ссылку [удалить].

И вопрос - со скольки скора становится доступной правка сообщений? лорВики по теме скора читал, там нет.

maxcom

varchar
()

Разобраться с .diff-ом и патчингом

Форум — Development

Прислали на проверку патч устраняющий баг, следующего содержания:

diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
index 60f1ce5..8c89f06 100644
--- a/net/mac80211/iface.c
+++ b/net/mac80211/iface.c
@@ -210,8 +210,18 @@ static int ieee80211_change_mac(struct net_device *dev, void *addr)
                 return -EBUSY;
 
         ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
-        if (ret)
-                return ret;
+        if (ret) {
+                struct ieee80211_sub_if_data *tmp;
+                unsigned num_ifcs = 0;
+
+                list_for_each_entry(tmp, &sdata->local->interfaces, list) {
+                        num_ifcs++;
+                }
+                if (num_ifcs > 1)
+                        return ret;
+
+                SET_IEEE80211_PERM_ADDR(&sdata->local->hw, sa->sa_data);
+        }
 
         ret = eth_mac_addr(dev, sa);

Сохранил, пытаюсь пропатчить:

# patch < iface.c.Kuba.diff 
patching file iface.c
Hunk #1 FAILED at 210.
1 out of 1 hunk FAILED -- saving rejects to file iface.c.rej
Ошибка. Ниже функция подлежащая патчингу:
static int ieee80211_change_mac(struct net_device *dev, void *addr)
{
	struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
	struct sockaddr *sa = addr;
	int ret;

	if (ieee80211_sdata_running(sdata))
		return -EBUSY;

	ret = ieee80211_verify_mac(sdata->local, sa->sa_data);
	if (ret)
		return ret;

	ret = eth_mac_addr(dev, sa);

	if (ret == 0)
		memcpy(sdata->vif.addr, sa->sa_data, ETH_ALEN);

	return ret;
}

Помощь не нужна. Уже внёс изменения вручную, но хотелось бы понять почему не сработало на автомате.

[offtop] Почему-то при предпросмотре, а наверное и после постинга ничего не изменится, не работает подсветка синтаксиса при таком оформлении вышеприведенных листингов: [code=Diff]...[/code], [code=C]...[/code]. В профиле «TeX Paragraphs», в чём ошибка? [/offtop]

 ,

varchar
()

Посоветуйте годных ява игр на мобильный

Форум — Games

Предпочтительно пазлов, где думать нужно. В качестве примеров: Bobby Carrot и WALL-E.
Играть буду в линук-версии MicroEmulator-a Телефон — старый не тач с малюсеньким экраном.
Ещё бы файлообменник с корректным mime-type для jar/jad.

Edit: Только то, что играли/прошли/играете с большим удовольствием лично вы, или то, что бы вы поставили на телефон своему ребёнку в первую очередь.

 игры телефон

varchar
()

С ядром 3.8.1-pf не меняется MAC адрес

Форум — General

До обновления, на 3.7.5-pf — всё ок, а после:
# macchanger -A wlan0

ERROR: Can't change MAC: interface up or not permission: Invalid argument
Конфиг ядра - старый, интерфейс - down, в messages - ничего.

varchar
()

Яндексу 15. Приз -500 на мобильный

Форум — Talks

Пруф. Выиграл при поиске чего-то в bing-е, с последующим переходом на softpedia. Но то ли промахнулся, то ли магия, и вуаля!

 scamm,

varchar
()

RSS подписка на новые темы