Для построения программы балансировки двуногого механизма авторы новой системы воспользовались, как ни парадоксально, принципами управления, помогающими роботу хватать предметы на лету.
Интересная работа выполнена в институте роботов и мехатроники (Institute of Robotics and Mechatronics) германского аэрокосмического центра. Здесь создали экспериментального двуногого робота DLR-Biped, основанного на лёгких манипуляторах KUKA LWR.
Робот успешно балансирует на качающейся доске, сохраняет равновесие при боковых ударах (например, пятикилограммового мяча), сообщает IEEE Spectrum.
И делает он это не вполне обычным способом. Дело в том, что DLR-Biped является родственником "Джастина", виртуозно ловящего быстро летящие мячики. Чтобы справляться со своим трюком, «Джастин» должен видеть эти мячи и прогнозировать их траекторию. Но не только это. Поймав массивный и быстрый предмет, робот мгновенно вычисляет динамическое возмущение, которое удар вносит в систему, и рассчитывает компенсирующий момент во всех своих суставах, чтобы нейтрализовать это возмущение и не упасть.
Теперь этот же принцип авторы системы перенесли на кибернетические ноги. Компьютер на лету вычисляет желаемые силы и крутящие моменты в сочленениях, чтобы восстановить равновесие, когда оно нарушено. Причём в расчётах учитываются силы трения в точках контакта ног с землёй.
Этот подход отличается от самого распространённого в мире ходячих роботов принципа «точки нулевого момента» (Zero Moment Point). Последний полагается на датчики усилия в стопах машины и контур обратной связи, которые помогают двигателям корректировать положение робота, постоянно приближая его к теоретической точке равновесия.
«Хватательный» алгоритм не нуждается в показаниях сенсоров на подошвах. Сразу после того, как к роботу была приложена внешняя сила (хотя бы рукой экспериментатора), машина находит оптимальное соотношение опорных усилий и по цепочке – усилия и перемещения во всех узлах, помогающие противостоять новой нагрузке.
В этом плане машина похожа на человека, который инстинктивно напрягает мышцы при внезапном толчке в бок или в спину.
Последние результаты опытов со своей машиной немцы представили на конференции по гуманоидным роботам Humanoids 2011, прошедшей в конце октября в Словении. В дальнейшем авторы системы надеются расширить алгоритм реакции на возмущающие действия так, чтобы робот смог ещё и свободно ходить.
Поэтому робот с кучей ног будет устойчивым, но менее маневренным.
А то ещё можно вспомнить ящериц, которые при быстром беге предпочитают переходить на бипедальный вариант передвижения, а шлемоносный васились так даже по воде умудряется бегать.
Так как у нас вся инфраструктура, приборы, инструменты и прочее расчитаны именно для человека
и вот это — держа кувшин над головой с обрыва узкою тропой порой скользила меж камней стыдясь неловкости своей. Будет?
По поводу того, нужно ли, чтобы у робота были 2 ноги, безусловно нужно, если речь идет об андроидах. А андроиды нужны, как с психологической точки зрения, так и работы в качестве замены человека в тех местах, где это требуется, банально даже водить машину может, если все остальное довести до ума.
Это философская дилема, но она решаема.
Купите мой мозг!
Назовите свою цену, мне нужны сотрудники.
Если Ваши условия меня устроят — договоримся. У меня все равно сейчас нет никакой работы, кроме заточки фрез в цеху, где минус семь гр. Предпочёл бы что-то действительно серьёзное.
я это все знаю :-)
скажем так, я не профессиональный програмер, прикладной. Потому для меня этот вопрос стоит остро.
Ну дык алгоритмист или нет, это уже ваша проблема. Есть задача, ее нужно решить. Готовы назвать цену?
— а группа «алгоритмистов» ? :)))
генетические алгоритмы это не квантовая механика, их понимают и успешно используют больше одного человека. )) так что поосторожнее в своих высказываниях. «программист» и «кодер» это разные понятия.
Правда, это не на ПХП (сейчас холивар начнется ? )) ), на J2EE + GWT
я три года тоже работал над аналогичной вещью, в итоге понял что есть лучше и элегантнее — yii
по-моему программистам как раз и надо заниматься автоматизацией процессов, вместо того чтобы делать одно и тоже тысячи раз. и не надо говорить что не делаете, я оч много лет в этом бизнесе и прекрасно знаю как обстоят дела )))
YII есть баланс между низкоуровневостью (какая, мазафака, низкоуровневость у пхп???) и решением рутинных задач программиста.
Я три года выдумывал такую систему. Идея была в том, чтобы в макете страницы крупными блоками описывать функционал — отображение данных из БД. Довыдумывался до метаязыка программирования, сделал его интерпретатор на пхп. Работало все это медленно (кешированием пока не занимался), а разработка нетипичных приложений превращалась в гимор. Я плюнул: глупо писать интерпретатор в интерпретаторе.
Первый — берем контору и пытаемся заставить работать зоопарк ПО и АО вместе. Второй — берем и делаем одну общую платформу быстро «конструктором» ровно так как надо, а не как задумали разрабы разных программ.
У вас в москвэ там зажрались просто, в регионах деньги считают и всякие там циски не ставят. Прошли сытые времена.
Я почему про два подхода сказал: я имел ввиду, что в первом случае адаптируем ПО и АО под особенности бизнеса, а во втором случае сразу строим бизнес по верному пути.
И моя контора тому пример.
Дорогое железо — это тухлый отмаз, страх расписаться в собственной некомпетентности. Но самый большой миф IT впаривателей это термин «совокупная стоимость владения», которым обманули миллионы клиентов. Этого я говорю как интегратор, у которого за плечами десятки успешных и не очень проектов.
foto.mail.ru/mail/m.tukmacheva/7920/7930#7942
А что если идея и состоит в том чтобы привнести систему за 100000 долларов «простым» людям ? Хотите сказочку расскажу ?
Жил был простой программист, по стечению обстоятельств переехавший в Испанию, устроился по специальности, начал работать. Лет 10 назад пришла ему в голову идея (еще до всяких там Drupaloв , Joomlas и прочей хренотени) автоматизировать генерирование сайтов и приложений. Через несколько лет работы система настолько разрослась что по функциональности у удобству не уступала (а во многом и превосходила) монстрам типа Vignette, Documentum, SAP и тд. У этого программиста только в R&D отделе работало 30 человек, он им и заведовал собсна...
Так вот, на базе этого продукта было создано около 2000 проектов, достаточно больших, во всех сферах применения: от туристического сектора до банковского и медицины. Сложнейшие проекты (с сотнями управляющих страниц и процессов) делались за 1-3 недели, имплантировались за 2 дня и выдерживали (и до сих пор выдерживают) тысячи одновременных пользователей и терабайты ежедневного траффика. Один из проектов работал в кластере из 100-полутора тысяч серверов, в зависимости от нагрузки, причем сама система предвидела нагрузку и успевала поднять подкластеры еще до появления реальной необходимости.
«Смогли бы вы сделать как надо и тонко настроить такое с помощью готовых приблуд?» . этого как раз и надо избежать, давая единую поатформу.
«Смогли бы вы сделать как надо и тонко настроить такое с помощью готовых приблуд?» — бесплатно. Будет.
«Потому то и стоят дороже программисты — разработчики, чем программисты — пользователи.» — потому что пока нет нормальных систем для программистов-аналитиков.
Если вас интересует почему такая замечательная система существует и ничего о ней неизвестно — конец сказки печален. Некоторая большая консалтинговая компания занервничала, теряла корпоративный рынок, взяла и купила компанию с потрохами. Через месяц всех сотрудников уволила, а продукт «убила». Теперь только тех-поддержка существующих клиентов и проектов.
Такая вот история.
мне создать статью из 2000 ссылок ? ))
AD (Win)
SQL Server
Oracle
OpenLDAP
Google Apps
HD Cloud
BrightCove
SalesForce
фронтенд Oracle iPlanet
бакэнд Oracle WebLogic разбитый географически по всем 5ти континентам
SamSat
Wowza Media Server
SugarCRM
блэкджек и ... журналисты
>1000000 посещений в сутки. не синхронизация, а использование данных в реал-тайме. Ретрансляция онлайн через спутник 20ти отдновременных видеопотоков, с записью и кодингом. Более 1500 человек работающий с системой круглые сутки в течение 3х месяцев. 40 терабайт видео, автоматически транскодифицированого в разные форматы.
Все на «конструкторе». Просто на оч. большом ))))
чтобы не было голословно, проект называется Barcelona World Race 2011, бюджет — 1.5М евро
Погуглите, если скучно.
Этим я и занялся в последнее время разработки. Но все равно увидел что все это избыточно. Я отталкивался в своей работе от идеи движка textpattern, использовал много кода оттуда. Переработал многие моменты, например ввел рекурсивную обработку переменных и улучшил работу с функциями. Я не сильно там напрограммил, два с лишним года из трех я занимался концепцией этой системы, которую несколько раз перерабатывал. В итоге — сотни килобайт текста техзадания, расписанного до мелочей. Одним из плюсов разрабатываемой системы было то, что конечный пользователь мог бы быстро, на коленке состряпать новый модуль. В начале все нравилось. Но параллельно я занимался другими вещами, каждая из которых была отлична от другой. Мое задротство в плане usability дало понимание, что почти все задачи в какой-то степени индивидуальны (а почти все мои задачи — заполнение/редактирование БД). Тут я и понял, что крупные куски, из которых я складываю приложение, слишком велики. Как запихать пользовательский javascript в них? одно дело — всякие виджеты, типа динамических таблиц. Другое дело — автоматическое создание конкретного типа значений. В общем я начинающий в этом плане, может чего-то не понимал. Просто понял, что делая движок я не хочу «мельчить». Зачем выдумывать интерпретатор/компилятор, когда на чистом языке эти задачи решаются быстрее?
Я опробовал другой метод: вместо внедрения блоков данных в оформление, я описывал в YAML файле список элементов управления сразу с данными, если их список ограничен. Получилось здорово, однако узкоспециализировано. Можно было ввести еще один уровень абстракции, но что-то лениво, понял что тоже тупик.
Периодически совершал набеги в гугль с целью поиска фреймворка, и совершенно случайно в обсуждении на одном ресурсе нашел yii, который для моих задач подходит полностью.
>>а если бы он еще и не на ПХП был
а на чем? на дотнете? на жаве? это все мертвое. Пхп программера найти можно, а среди рукожопых дотнетовцев еще поискать надо.
Фигово, конечно, что код никак нельзя защитить. Но планирую сделать C функции для пыха для быстрой обработки часто встречающихся функций и привязать к аппаратной части, чтобы копирование кода ПХП как такового не имело смысла.
Все упирается в грамотное использование того, что есть. Я видел кучу контор, особенно государственных, в которых стоит по десятку роутеров циско за поллимона каждая. Одна для видеоконференции, вторая для общего инета, вторая для инета айтишников и т.п. Еще две-три циски просто стоят потому что нет времени их куда-либо приткнуть. При этом в конторе всего три сотни пользователй, а каждая такая циска может обслужить несколько тысяч.
Видимо вы про такой подход говорите. В больших конторах примерно так же: чем больше сумма, тем больше откат в процентном выражении. Именно по этому я не работаю с госконторами.
Такая же история с ПО, особенно в банках. В банках бабла вообще немеряно, хуже банковской деятельности только нотариальные конторы. И те и другие просто собирают бабло. Только банки могут засунуть в карман 90% ваших средств. Поэтому банки тратят средства охотно и на все подряд, миллион или 10 мильонов — разница для них невелика.
а не проще ли с самого начала использовать верные решения? Тогда и бизнес будет масштабируемым. А то напокупают брендованого барахла, а потом думают что с этим делать. Ведь оказывается чтобы использовать уже купленное железо (!) нужно отвалить производителю за лицензии сумму чуть ли не в двое большую. Тоже самое про софт: вроде бы все красива, и понаставили терминалов. Но никакой экономии на лицензиях сраной винды. Выход один — опенсорц и самостоятельная разработка.
На самостоятельной разработке можно серьезно сэкономить, используя обсуждаемые конструкторы приложений, а специалистов по опенсорцу все больше. К примеру мой товарищ одно время подрабатывал заменой виндозных контроллеров доменов на линуксовые.
«что почти все задачи в какой-то степени индивидуальны (а почти все мои задачи — заполнение/редактирование БД)» — не совсем так. любую задачу можно представить как сумму некоторых настраиваемых элементарных действий. Если эти действия засунуть в дерево и привязать бизнес-правила — можно выполнить абсолютно любой процесс.
«Другое дело — автоматическое создание конкретного типа значений.» — не очень понимаю о чем речь.
«а на чем? на дотнете? на жаве? это все мертвое. Пхп программера найти можно, а среди рукожопых дотнетовцев еще поискать надо.»
у ПХП есть несколько фундаментальных проблем, которые пока не решатся — о каком-либо серьезном его использовании (не веб-сайты) говорить вообще смысла нет:
1) отсутствие виртуальной машины, расшареной памяти, потоков, нормального класслоадера
2) того кто придумал функцию «eval(...)» надо просто расстрелять без суда и следствия. Таких дыр в безопасности давно уже нигде не было. Отсюда и вирей наштамповали под пхп
3) загрузка всего интерпретатора при каждом запросе — это вообще нечто
с точки зрения оптимизации и эффективности использования ресурсов (и, как следствие, масштабируемость) — вообще вах.
Наверное если обо всем этом не задумываться то ПХП покажется годным (в текущей итерации), только вот проблемы эти надо решать, а они архитектурные.
«на жаве? это все мертвое.» — с чего это ? Просто J2EE специалисты стоят дороже, что логично. Зато и результат другой.
Ну и потом — язык пхп это признанный лидер в разработке сайтов, хотите вы этого или нет. А вот к примеру сколько я не видел сайтов на дотнете — все глючные и тормозные. Так что это пустой холивар — кому что нравится.
Пых мне нравится очевидностью и средствами работы с массивами данных, отсутствием типов.
дотнет я не рассматриваю, хотя идеологически подход верный, имплементация хромает.
"Функция Eval есть. "- это ЗЛО. Дыра в безопасности. Огромная. на всех больших имплементациях на пыхе ее вообще убирают (Фэйсбук, например) , что убирает 80% функционала.
Нравятся скриптовые языки ? Есть Руби, Груви, Питон, в конце концов. Тысячи их.
«Для чего этот лишний слой?» — для того чтобы не перегружать и не считать все при каждом запросе. Для того чтобы использовать потоки (а не тупо вызывать скрипт хроном). Для того чтобы хранить глобальные объекты в памяти, а не дергать из постоянно из БД, делая сериализацию/десереализацию постоянно. Которой в пыхе нативно тоже нет, кстати.
Не задумывались почему например фэйсбуку необходимо 400.000 серверов, а тому же G+ — только 2.000, при уже сопоставимом кол-ве пользователей ?
Вобщем не о том речь пошла. Я к тому что сделать годный конструктор можно и нужно, чем я и занимаюсь, собссна. :)) Когда будет готова бета тогда и обсудим, идет ?
По поводу сериализации при старте скрипта: это делать необязательно. Есть такая вещь как сессии, они реализованы на уровне интерпретатора. В одном проекте я просто хранил глобальные настройки (их было много) в виде готового пхп файла, который тупо инклудился. Это на много быстрее чем считывать данные из БД, но это уже задротство и тонкий тюнинг.
По поводу eval — не понимаю, почему ее отсутствие убирает 80% функционала, дырявость-то очевидна.
>>фэйсбуку необходимо 400.000 серверов, а тому же G+ — только 2.000,
не думаю что у фесбука 400к серверов. У них активных пользователей 700 М. А у G+ всего 25 М и то они ничо там не делают.
Ну а по поводу беты — можно обсудить.
Но у меня есть требования: эта платформа должна занимать не более 100Мб места и работать под центосом на стандартной LAMP платформе. Причем приложение может работать и на тощем атоме 1.6 гц, так и на кластере из десятка серверов.
www.datacenterknowledge.com/archives/2010/06/28/facebook-server-count-60000-or-more/
В платформу G+ входит Gmail, Docs и все остальное, так что точно больше 25М и «ничо там не делают» — не совсем правильно.
По поводу лампочки — однозначно нет, мне нужен хотя бы Томкат в довесок. Кластерность изначально заложена, платформа рассчитана на миллионы конкурентных пользователей.
так вот считаем:
Отношение количества серверов:
2 / 60 = 0.033
отношение количества пользователей
25М / 700М = 0,035
Какие выводы делаем? Правильно, выбор языка программирования не имеет значения. А если вспомнить, что в фейспуке программная начинка на два порядка сложнее (пока), то сравнение не в пользу гугля.
по поводу гугля: G+ это комплексная платформа, не только ленты и картинки.
«In January 2012, Google claimed 350 million active users during an earnings call.»
активных. в фэйспуке активных около 200М.
так что отношение неверно.
>>не только ленты и картинки.
пока я не вижу в гуглоплюсе ничего кроме этого. Может я плохо ищу?
>>480к ядер
ну раз меряться пиписьками, давайте уж пруфлинки на актуальные данные для обоих систем.
Ну дык посчитали бы еще пользователей поискового сервиса, адвордс и прочего. Чего мелочиться-то...
пхп нужен, когда есть компания малого и среднего бизнеса и им нужен сайт недорогой и в обслуживании и в содержании. Попробуйте найдите нормальный хост с явой? Вот, а если вы крупная компания, тогда уже можно поторговаться и предложить им j2ee + oracle или .NET С# + IIS... Предложить им купить железо под ИМ+ железо под БД. Да и то врятли согласятся. Не забывайте, что у j2ee просто отвратительные конструкторы-вебсайтики по быстрому сделать не получиться...со стилями вообще беда, я уже молчу про ajax, который нужно внедрить на страницу. А программистов j2ee вообще не сыскать, да и платить им надо ой как много. Даже крупные компании пойдут по наименьшему сопротивлению. java хороша для консольных приложений — работать будет вечно и стабильно, для веб приложений — она не годна ни в каких видах! А если подумать головой, то и у пхп можно все эти проблемы обойти. Фейсбук работает на php и ничего — работает.
spectrum.ieee.org/image/1928472
Ну да что я распинаюсь, я же ламер, не понимающий всего величия скриптовой поделки.
За сим предлагаю холивар свернуть, ввиду моей некомпетентности в быдлопрограммировании.
«Almost all our servers are running open-source software. Our Web servers use Linux and Apache and PHP. Our database servers run MySQL. We use memcached to help keep the site snappy. Some of our behind-the-scenes software is written in Python and Perl and Java, and we use gcc and Boost for the parts that arent. Our developers use Subversion and git to keep track of their work. The list goes on—like many Web sites, we use it from top to bottom.»
blog.facebook.com/blog.php?post=2223862130
в обидки ухожу потому как дискутировать с вами как-то не получается логично. доказывать мне что поделка это круче нормального структурного ООП и АОП языка как-то несерьезно. когда ПХП нативно сделает Garbage Collector, OOP, AOP, Reflection, DAO , threads и тд — тогда и можно вернуться к этому разговору.
а вообще мне глубоко «все равно» сам язых, важно то что за ним. Я учавствую в проекте Apache Commons BSF commons.apache.org/bsf/ , эта технология может вообще из языка в язык переведить через промежуточную семантику, так что с точки зрения «диалекта» вообще пох. Главное — рантайм. У пхп его просто НЕТ.
А его синтаксис меня просто раздражает. Может оттуда и есть все мои тонны ненависти. :))))
Отсутствие рантайма мне вообще не мешает, как-то пофигу есть он или нет. Наоборот: нет рантайма, нет гимора с утечками памяти и прочего. Скрипт завершился — память свободна. Все компактно и не требует гигабайт памяти и сотни ядер для запуска виртуальных машин. Опять же: ничто не мешает скрипт пхп запустить на постоянное выполнение, но смысла в этом будет немного.
В общем у нас с вами разные подходы, разные цели.
У меня все задачи сводятся к одному: извлечение данных из бд, приведение к потребному виду, формирование страницы из шаблона, вывод пользователю, получение от пользователя данных, приведение их к нужному виду, сохранение.
Приходят в крупную компанию разные интеграторы и предлагают откаты, за внедрение их системы в данную компанию. А дальше выбор идет в таком приоритете: подходит по ресурсам и технологиям, почти подходит по требованиям, подходит по размеру отката. И все процесс пошел. Долгие месяцы внедрения, первый демонстрационный показ показывает неплохие результаты. Пока....до первой нестандартной ситуации, например провести договор задним числом или будущим, изменить очередь в потоке. И система встала! загнулась! И ладно если такие моменты бывают редко, но на практике таких моментов слишком часто и много, и они нужны. И компания понимает, что ваша система не подходит им и по тихому тухнет это система в компании, и возвращается все по старинке. Но зато интегратор то уже внедрил, а значит может публично похвалиться, что мол видите, мы внедрили даже в такую известную компанию! И продемонстрировать целый нехилый список крупных известных компаний куда это было внедрено! Но если проверить весь этот список, работают ли они до сих пор на этой системе, то списочек то сразу же похудеет в разы.
Интеграторы с их системами хороши своими откатами :-)
«Питон мало где используется потому как сырой.» — на питоне даже игры делаются ! www.eve-online.com , MMORPG с самым большим миром.
И кто в России живет ? Я — нет. Где есть вообще какие-нибудь слова о России ?
мне, похоже, везет. Там где я ставил лишь в 10% мест уже не работает мое поделие, и то по причине закрытия компании или ее подразделения ;))
или уклонится?
Ну или в ответ даст в гычу?
Для уклонения от удара сначала составляется алгоритм нахождения общего центра масс рук, ног, туловища. Затем составляется алгоритм трех точек — трёх центров масс: «руки», «туловище», «ноги». Остаётся только передвигать эти 3 точки так, чтобы суммарный центр масс не двигался. Или меньше двигался. Эти 3 точки при уклонении от удара двигаются в направлении перпендикулярном вектору удара. Если кого интересуют детали, могу на определённых условиях составить приоритетный список таблиц решений на эти случаи. Каждый привод андроида имеет свои таблицы решений в базе данных. Контроль за выполнением решения из таблицы возлагается на датчики углов и сигналы 3D-гироскопа. Могу сделать и алгоритмы распознавания изображения двух (стереоизображение) телекамер андроида. Чтобы точно, после удара, андроид с фуэте вломил пяткой в челяк агрессору. Или отправил его на орбиту в МКС.
Я алгоритмист ИИ. Нужно сделать поисковик, реально понимающий смысл текста сайтов, обращаться ко мне. Методика интуитивно идентифицируется в Кибернетической энциклопедии: institutrobotov.ru/#21
Простите меня все, кто будет это читать, но я не удержался. Я открыл указанную ссылку, и отмотал одну главу. Это шедевр:
20)Я разработал в устной словесной форме новый алгоритм сжатия звука. В MP3, других алгоритмах чем выше частота, тем хуже отношение сигнал/шум. В моем алгоритме сжатия все частоты передаются с одинаковым отношением сигнал/шум. Принцип квантования амплитуды сигнала я заменил другими принципами квантования, 10 раз сильнее MP3 сжимающими звук при равном качестве. Алгоритм универсален, позволяет с равным для всех частот отношением сигнал/шум сжать любой аналоговый сигнал, видеосигнал, телеметрию. Есть возможность эквалайзером «сигнал/шум — частота» управлять отношением сигнал/шум в каждом узком частотном диапазоне по выходному звуку и/или изображению. Это позволяет дополнительно в разы сжать звук, видео. Есть новые алгоритмы сжатия сигнала. Мой алгоритм сжимает сигнал двухсторонней обратной связи киберкостюм «GE2.0» — андроид Айзек. Обращаюсь к парням из Рочестерского университета в USA, утверждающим: они сжали звук в 1000 раз: Парни! Я натяну вас по всем параметрам сжатия звука, изображения, включая скорость сжатия, дешифровки сигнала. Вас, всех остальных парней планеты. Когда, на каких условиях будем выяснять — кто Трахатель всех Трахателей, Член всех Членов, Втыкатор всех Втыкаторов, Отбойный молоток всех отбойных молотков, Втыкер всех Втыкеров, Инжектор всех Инжекторов, Тактировщик всех Тактировщиков, Втыкач всех Втыкачей, Дрючер всех Дрючеров, Натягиватель всех Натягивателей по сжатию аналогового сигнала? Трахатель Эдисон.
например:
ху*и — начало цикла;
н*х — конец цикла;
бл*ть — объявление функции;
А также функцию «обоср..ться»
АБЫ(ИЖИЦА == РЕСНОТА) ИНО ДЕЯТИ
[СЪЗДАТИ НАСЛЕДОК(ИЖИЦА);
ЛЕТЬ ИЖИЦА ЛИЧБА = — АЗ;]
АМИНЬ
...
К созданию языка следует привлечь больших специалистов в области национального языка Задорнова М. и Чурляева А.
ху*и — начало цикла;
н*х — конец цикла;
бл*ть — объявление функции;
---------------------------------------
А п*здец это шО?