Санкт Петербург, 2012
Текстът не е за философията в интернет и не е за философията на интернет – философията и интернетът в него са строго разграничени: първата част на текста е посветена на философията, а втората – на интернет. Свързващата ос между двете части е понятието "еволюция": ще се говори за философията на еволюцията и за еволюцията на интернет. Първо ще бъде демонстрирано как философията – философията на глобалния еволюционизъм, въоръжена с концепцията "сингулярност" – неизбежно ни води до мисълта, че именно интернетът е прообразът на бъдещата постсоциумна еволюционна система; след това самият интернет, по-скоро логиката на неговото развитие, ще потвърди правото на философията да разисква на, изглежда, изцяло технологични теми.
Технологична сингулярност
Понятието "сингулярност" с епитета "технологична" за обозначаване на особена точка на времевата ос на развитието на цивилизацията бе въведено от математика и писател Вернор Виндж. Екстраполирайки известния закон на Мур, според който броят на елементите в компютърните процесори се удвоява на всеки 18 месеца, той направи предположение, че някъде около 2025 година (плюс-минус 10 години) компютърните чипове ще достигнат изчислителна мощност, равна на човешкия мозък (разбира се, чисто формално – по предполагаемото количество операции). Виндж установи, че зад тази граница ни (човечеството) очаква нещо нечовешко, изкуствен свръхразум, и трябва добре да помислим, можем ли (и трябва ли) да предотвратим тази напаст.
Еволюционно планетарна сингулярност
Втората вълна интерес към проблема за сингулярността възникна след като няколко учени (Панов, Курцвейл, Снукс) извършиха числен анализ на феномена ускоряване на еволюцията, а именно съкратени периоди между еволюционните кризи или, може да се каже, "революции" в историята на Земята. Към такива революции следва да се отнесат кислородната катастрофа и свързаното с нея появяване на ядрени клетки (еукариоти); камбрийския взрив - бързо, практически мигновено по палеонтологични стандарти формиране на разнообразни видове многоклетъчни, включително гръбначни; моментите на появяване и измирание на динозаврите; възникването на хоминидите; неолитната и градската революции; началото на средновековието; индустриалната и информационната революции; краха на двуполюсната империалистическа система (разпад на СССР). Беше показано, че посочените и много други революционни моменти в историята на нашата планета попадат в определена закономерност-формула, която има сингулярно решение около 2027 година. В този случай, за разлика от абстрактната предположение на Винджа, ние имаме работа със "сингулярността" в традиционния математически смисъл - броят на кризите в тази точка, според емпирично получената формула, става безкраен, а интервалите между тях стремят към нула, тоест решението на уравнението става неопределено.
Ясно е, че указанието за точката на еволюционна сингулярност намеква за нещо по-съществени, отколкото елементарен ръст в производителността на компютрите - разбираме, че стоим на ръба на съществено събитие в историята на планетата.
Политическите, културни, икономически сингулярности като фактори на абсолютен кризис на цивилизацията
На особеностите на близкия исторически период (следващите 10-20 години) сочи и анализа на икономическите, политическите, културните и научни сфери на обществото (извършен от мен в работата ""): удължаването на съществуващите тенденции на развитие в условията на научно-техническия напредък неизбежно води до "сингулярни" ситуации.
Съвременната финансово-икономическа система, по същина, представлява инструмент за координиране на разпръснатото във времето и пространството производство и потребление на стоки. Ако анализираме тенденциите в развитието на мрежовите средства за комуникация и автоматизация на производството, можем да стигнем до извода, че с течение на времето всеки акт на потребление ще бъде максимално наближен във времето до акта на производство, което безспорно ще премахне самата необходимост от съществуващата финансово-икономическа система. Тоест, съвременните информационни технологии вече се приближават до такова ниво на развитие, когато производството на конкретен единичен продукт ще бъде обусловено не от статистическия фактор на пазара на потребление, а от поръчката на конкретния потребител. Това ще стане възможно и в резултат на закономерното намаляване на разходите за работно време за производството на единичен продукт, което накрая ще доведе до ситуация, в която за производството на този продукт ще е необходимо минимално усилие, събиращо се в акта на поръчка. Тем повече, че в следствие на технологичния напредък основният продукт става не техническото устройство, а неговата функционалност – програмата. Следователно, развитието на информационните технологии указва както на неизбежността на бъдещия абсолютен кризис на съвременната икономическа система, така и на възможността за еднозначно технологично осигуряване на нова форма на координация между производството и потреблението. Описаният преходен момент в социалната история резонно може да бъде наречен икономическа сингулярност.
Изводът за приближаващата се политическа сингулярност може да бъде получен при анализа на отношенията между два разпръснати във времето управленски акта: вземането на социално значимо решение и оценката на неговия резултат - те имат тенденция да се сближават. Това е свързано най-вече с факта, че, от една страна, по чисто производствено-технологични причини времевият интервал между вземането на обществени решения и получаването на резултати неуклонно се съкращава: от столетия-години преди до години-месеци-дни в съвременния свят. От друга страна, с развитието на мрежовите информационни технологии основният проблем в управлението ще бъде не назначаването на лице, вземащо решения, а оценката на ефективността на резултата. Тоест, неизбежно стигаме до ситуация, в която правото на вземане на решение се предоставя на всеки желаещ, а оценката на резултата от решението не изисква специални политически механизми (като гласуване) и се извършва автоматично.
Паралелно с технологичните, икономическите и политическите сингулярности можем да говорим и за ясно проявена културна сингулярност: за прехода от тотален приоритет на последователно сменящи се художествени стилове (с намаляващ период на тяхното процъфтяване) към паралелно, едновременно съществуване на всичко възможно разнообразие от културни форми, към свобода на индивидуалното творчество и индивидуалното потребление на продуктите от това творчество.
В науката и философията се очертава смяна на смисъла и целта на познанието от създаването на формални логически системи (теории) към нарастващо интегрално индивидуално разбиране, към формирането на така наречения постнаучен здрав разум или постсингулярна философия.
Сингулярността като завършване на еволюционния период
Традиционно разговорът за сингулярността – както технологичната, свързана с опасения относно поробването на човека от изкуствения интелект, така и планетарната, произведена на базата на анализа на екологичните и цивилизационните кризи – се води в термини на катастрофи. Въпреки това, като се вземат предвид общееволюционните съображения, не бива да се представя предстоящата сингулярност като край на света. По-логично е да се предположи, че имаме работа с важно, интересно, но не уникално събитие в историята на планетата – преход към нов еволюционен ниво. Тоест, редица сингулярни решения, възникващи при екстраполация на тенденциите в развитието на планетата, обществото и цифровите технологии, свидетелстват за завършването на поредния (обществени) еволюционен етап в глобалната история на планетата и началото на нов постобществени. Тоест, имаме работа с историческо събитие, сравнимо по значение с преходите от протобиологичната еволюция към биологичната (преди около 4 милиарда години) и от биологичната еволюция към обществени (преди около 2,5 милиона години).
В споменатите преходни периоди също се наблюдаваха сингулярни решения. Така, при прехода от протобиологичния етап на еволюцията към биологичния, последователността от случайни синтези на нови органични полимери беше заменена с непрекъснат закономерен процес на тяхното възпроизвеждане, което можем да обозначим като „сингулярност на синтеза“. А преходът към обществения етап беше съпроводен с „сингулярност на адаптациите“: редица биологични адаптации преминаха в непрекъснат процес на производство и използване на адаптационни приспособления, тоест предмети, позволяващи почти мигновено адаптиране към всякакви изменения на средата (похладня – облякох палто, заваля дъжд – отворих чадър). Сингулярните тенденции, подсказващи за завършването на обществени етапа на еволюцията може да се тълкува като «сингулярност на интелектуалните иновации». Всъщност през последните десетилетия наблюдаваме тази сингулярност като трансформиране на поредицата от отделни открития и изобретения, разделени преди с значителни времеви интервали, в непрекъснат поток от научно-технически нововъведения. Тоест, преходът към постсоциумния етап ще се прояви като замяна на последователното появяване на творчески новации (открития, изобретения) с тяхната непрекъсната генерация.
В този смисъл до известна степен може да се говори за формирането (в именно формирането, а не създаването) на изкуствения интелект. В същата степен, както, да кажем, социалното производство и използването на адаптационни устройства могат да бъдат наречени «изкуствен живот», а самият живот от гледна точка на непрекъснатото възпроизводство на органичния синтез – «изкуствен синтез». Всъщност, всеки еволюционен преход е свързан с осигуряване на функционирането на основните процеси на предходното еволюционно ниво по нови неспецифични за него начини. Животът е нехимичен начин за възпроизводство на химически синтез, разумът – необработен начин за осигуряване на живота. Продължавайки тази логика, може да се каже, че постсоциумната система ще бъде «неразумен» начин за осигуряване на интелектуалната дейност на човека. Не в смисъл на «глупав», а просто по форма нямащи отношение към разумната дейност на човека.
На базата на предложената еволюционно-иерархична логика може да се изкаже предположение и за постсоциумното бъдеще на хората (елементи от социосистемата). Както биопроцесите не заменят химическите реакции, а всъщност представляват само сложна тяхна последователност, както функционирането на социума не изключва биологичната (жизнената) същност на човека — така и постсоциумната система не само не ще замени човешкия интелект, но и не ще го надмине. Постсоциумната система ще функционира НА базата на човешкия интелект и ЗА осигуряване на неговата дейност.
Използвайки анализ на закономерностите за прехода към нови еволюционни системи (биологични, социални) като метод за глобално прогнозиране, можем да посочим някои принципи на предстоящия преход към постсоциумна еволюция. (1) Запазване и стабилност на предходната система при формирането на нова – човекът и човечеството след прехода в еволюцията към нов етап ще запазят основните принципи на своята социална организация. (2) Некатастрофичност на прехода към постсоциумна система – преходът няма да се прояви в разрушаване на структурите на текущата еволюционна система, а ще бъде свързан с формирането на ново ниво. (3) Абсолютна включеност на елементите на предишната еволюционна система във функционирането на следващата – хората ще осигурят непрекъснат процес на сътворение в постсоциумната система, поддържайки социалната си структура. (4) Невъзможност за формулиране на принципите на новата еволюционна система с термини от предишните – ние нямаме и не ще имаме нито език, нито понятия за описание на постсоциумната система.
Постсоциумна система и информационна мрежа
Всички описани варианти на сингулярност, указващи на предстоящия еволюционен преход, по един или друг начин са свързани с научно-техническия напредък, по-точно с развитието на информационните мрежи. Технологичната сингулярност на Винджа директно намеква за създаването на изкуствен интелект, свръхразум, способен да погълне всички сфери на човешката дейност. Графикът, описващ ускорението на планетарната еволюция, достига сингулярната точка, когато честотата на революционните промени, честотата на появата на нововъведения предположително става безкрайна, което отново логично се свързва с някакъв пробив в мрежовите технологии. Икономическите и политическите сингулярности – съвместяване на актовете на производство и потребление, сближаване на моментите на вземане на решение и оценка на неговия резултат – също са пряко следствие от развитието на информационната индустрия.
Анализът на предходните еволюционни преходи ни подсказва, че постсоциумната система трябва да се реализира върху основните елементи на социума – индивидуалните разумности, обединени не чрез социумни (непроизводствени) отношения. Тоест, както животът е нещо, което е необходимо за осигуряване на химически синтез с нехимически методи (чрез възпроизвеждане), а разумът е нещо, което е необходимо за осигуряване на възпроизвеждане на живота с небилогични методи (в производството), така и постсоциумната система трябва да се мисли като нещо, необходимо за осигуряване на разумно производство с несоциумни методи. Прообраз на такава система в съвременния свят, безусловно, представлява глобалната информационна мрежа. Но именно прообраз – за пробив извън точката на сингулярност, тя сама трябва да преживее не един кризис, за да се трансформира в нещо самодостатъчно, което понякога наричат семантичен уеб.
Многосветовната теория на истинността
За обсъждане на възможните принципи за организация на постсоциумната система и трансформация на съвременните информационни мрежи, освен еволюционните съображения, е необходимо да се фиксират и някои философско-логически основания, в частност, касаещи съотношението между онтологията и логическата истинност.
В съвременната философия съществуват няколко конкуриращи се теории на истинността: кореспондентска, авторитарна, прагматична, конвенционална, когерентна и някои други, включително дефлационна, която отхвърля самата необходимост от понятието „истинност“. Тази ситуация е трудно да се представи като разрешима, която може да завърши с победа на една от теориите. По-скоро трябва да стигнем до разбирането на принципа на относителността на истинността, който може да бъде формулиран така: истинността на изказването може да се установи само и единствено в пределите на една от многото повече или по-малко затворени системи, които в статията „“ предложих да наричам логически светове. За всеки от нас е очевидно, че за да се потвърди истинността на изказаното от нас предложение, което констатирa некоя състояние в личната реалност, в собствената онтология, не е необходимо да се позовава на някаква теория за истинността: предложението е истинно само по факта, че е вградена в нашата онтология, в нашия логически свят. Ясно е, че съществуват и надиндивидуални логически светове, обобщени онтологии на хора, обединени от някаква дейност – научна, религиозна, художествена и др. И е очевидно, че в всеки от тези логически светове истинността на предложенията се фиксира по особен начин – в зависимост от начина, по който те се включват в конкретната дейност. Именно спецификата на дейността в дадена онтология определя набора от методи за фиксиране и генериране на истинни предложения: в някои светове преобладава авторитарният метод (в религията), в други когерентният (в науката), в трети конвенционалният (в етиката, политиката).
И така, ако не искаме да ограничаваме семантичната мрежа само до една сфера (например, физическата реалност), трябва първоначално да тръгнем от предпоставката, че в нея не може да има една логика, един принцип на истинност – мрежата трябва да се изгражда на принципа на равноправието на пресичащите се, но принципно непроизтичащи една от друга логически светове, отразяващи множеството от всички осъществими дейности.
Онтологии на дейността
И тук преминаваме от философията на еволюцията към еволюцията на интернет, от хипотетичните сингулярности към утилитарните проблеми на семантичната мрежа.
Основните проблеми при изграждането на семантичната мрежа в значителна степен са свързани с култивирането от страна на проектантите на натуралистична, съциентистка философия, тоест с опитите да се създаде единствено правилна онтология, отразяваща така наречената обективна реалност. И е ясно, че истинността на предложенията в тази онтология трябва да се определя съгласно единни правила, в съответствие с универсалната теория за истинността (под която най-често се подразбира кореспондентска, тъй като става дума за съответствието на предложенията с някаква "обективна реалност").
Тук е нужно да зададете въпрос: какво трябва да описва онтологията, каква е онази "обективна реалност", на която тя трябва да отговаря? Некое неопределено множество обекти, наречено свят, или конкретна дейност в рамките на ограничен набор от обекти? Какво ни интересува: реалността като цяло или фиксираните отношения между събития и обекти в последователността на действия, насочени към постигането на конкретни резултати? Отговаряйки на тези въпроси, ние трябва да стигнем до извода, че онтологията има смисъл само като крайна и единствено като онтология на дейността (действията). Следователно, безсмислено е да говорим за единна онтология: колкото дейности, толкова и онтологии. Онтологията не трябва да бъде създавана – тя трябва да бъде открита чрез формализиране на самата дейност.
Разбира се, ясно е, че ако става въпрос за онтология на географски обекти, онтология на навигацията, тя ще бъде една за всички дейности, които не са ориентирани към изменение на ландшафта. Но ако се обърнем към области, в които обектите нямат фиксирано привързване към пространствено-времеви координати, не са свързани с физическата реалност, онтологиите нарастват без никакви ограничения: можем да приготвим ястие, да построим къща, да създадем методика за тренировка, да напишем програма на политическа партия, да свържем думи в поема по безкраен брой начини, и всеки от тези начини е отделна онтология. При такова разбиране на онтологиите (като начини за фиксация на конкретна дейност) те могат и трябва да се създават само в самата дейност. Разбира се, при условие, че става въпрос за дейности, директно изпълнявани на компютър или фиксирани на него. А други скоро съвсем няма да останат; онези, които няма да бъдат "оцифровавани", не трябва да ни интересуват особено.
Онтология като основен резултат от дейността
Всяка дейност се състои от отделни операции, които установяват връзки между обекти в определена предметна област. Действащото лице (в по-нататъшния текст традиционно ще го наричаме потребител) многократно - независимо дали пише научна статия, попълва таблица с данни или съставя график на работа - извършва напълно стандартен набор от операции, които в крайна сметка водят до постигане на фиксирания резултат. И в този резултат той вижда смисъла на своята дейност. Но ако погледнем от позицията не на локално утилитарно, а на системно глобално ниво, основната стойност на работата на всеки професионалист не се състои в поредната статия, а в метода на нейното написване, в онтологията на дейността. Тоест вторият основен принцип на семантичната мрежа (след изводът „онологии трябва да има безкрайно множество; толкова дейности, толкова и онологии“) - трябва да бъде тезисът: смисълът на всяка дейност не се състои в крайния продукт, а в онтологията, фиксирана при нейното изпълнение.
Разбира се, самият продукт, да речем статия, съдържа в себе си онтология - тя, по същество, е въплътена в текста онтология, но в такъв застинал вид продуктът много трудно подлежи на онтологичен анализ. Именно об този камък - фиксираният краен продукт на дейността - и се обива семантичният подход. Но трябва да бъде ясно, че да се разкрие семантиката (онтологията) на текста може само след като притежаваме онтологията на този конкретен текст. Да разберем текст с малко изменена онтология (с променена терминология, концептуална мрежа) е трудно дори за човек, а на програма направо е невъзможно. Въпреки това, как е ясно от предложените подходи, не е нужно да се анализира семантиката на текста: ако пред нас стои задачата да разкрием някаква онтология, то не е необходимо да анализираме фиксирания продукт, а трябва да се обърнем директно към самата дейност, в хода на която той е възникнал.
Онтологичен парсер
По същество, това означава, че трябва да се създаде софтуерна среда, която едновременно да е и работен инструмент за професионалиста, и онтологичен парсер, фиксиращ всички негови действия. От потребителя не се изисква нищо повече от просто работа: да съставя текстов план, да го редактира, да търси из източниците, да изважда цитати, да ги поставя в съответните раздели, да прави бележки и коментари, да организира индекс и тезаурус и т.н. Максимумът на допълнителните действия е да маркира нови термини и чрез контекстното меню да ги свързва с онтологията. Въпреки това, всеки професионалист ще бъде само радостен от тази допълнителна "товарност". Тоест, задачата е абсолютно конкретна: тябва да се създаде такъв инструмент за професионалиста в всяка област, от който той не би могъл да се откаже, инструмент, не само позволяващ извършването на всички стандартни операции при работа с всякаква информация (събиране, обработка, конфигуриране), но и автоматично формализиращ дейността, строящ онтология на тази дейност, а при натрупване на "опит" я коригиращ.
Универсум на обекти и клъстерни онтологии
Разбира се, че описаният подход за изграждане на семантична мрежа ще бъде наистина ефективен само при изпълнение на третия принцип: софтуерна съвместимост на всички създавани онтологии, т.е. осигуряване на системна свързаност. Безусловно, всеки потребител, всеки професионалист създава своя собствена онтология и работи в нейната среда, но съвместимостта на индивидуалните онтологии по данни и идеология на организацията ще осигури създаването на единен универсум на обекти (данни).
Автоматичното сравняване на индивидуалните онтологии ще позволи, идентифицирайки техните пресечени точки, да създава тематични клъстерни онтологии – йерархично организирани неиндивидуални структури на обекти. Взаимодействието на индивидуалната онтология с клъстерната ще помогне значително да се опрости дейността на потребителя, да я насочва и коригира.
Уникалност на обектите
Съществено изискване на семантичната мрежа трябва да бъде осигуряването на уникалност на обектите, без което е невъзможно реализирането на свързаност между индивидуалните онтологии. Например, всеки текст трябва да присъства в системата в единствен екземпляр – само тогава всяка връзка към него, всяко цитиране ще се фиксира: потребителят ще може да проследи включването на текста и неговите фрагменти в различни клъстери или лични онтологии. При това е ясно, че под „единствен екземпляр“ се разбира не съхранение на един сървър, а присвояване на обект уникален идентификатор, независим от местоположението. Тоест трябва да бъде реализиран принципът на крайност на обема на уникалните обекти при множественост и неконечност в тяхната организация в онтологията.
Потребителският центризъм
Принципиално следствие от организацията на семантичната мрежа според предложената схема ще бъде отказът от сайтцентризма – сайт-ориентираната структура на интернет. Появата и съществуването в мрежата на някакъв обект означава само и единствено присвояване на уникален идентификатор и вписването му поне в една онтология (например, индивидуалната онтология на потребителя, който е разположил обекта). Обект, например текст, не трябва да има никакъв адрес в Web – той не е свързан нито със сайта, нито със страницата. Единственият начин за достъп до текста е неговото визуализиране в браузъра на потребителя след намирането му в някоя онтология (или като самостоятелен обект, или по връзка или по цитат). Мрежата става изцяло потребителски центристка: до и извън свързването на потребителя имаме само универсум от обекти и множество клъстерни онтологии, построени на този универсум, и само след свързването настъпва конфигуриране на универсума спрямо структурата на онтологията на потребителя – разбира се, със възможност за свободно превключване на „точките на гледане“, преминаване към позиции на други, съседи или далечни онтологии. Основната функция на браузъра става не визуализирането на съдържанието, а свързването с онтологиите (клъстерите) и навигацията в тях.
Услуги и стоки в такава мрежа ще се представят под формата на отделни обекти, първоначално записани в онтологиите на техните собственици. Ако в дейността на потребителя бъде проследена необходимост от даден обект, то при наличието му в системата, той ще бъде автоматично предложен. (Всъщност, по такава схема в момента работи контекстната реклама – ако сте търсили нещо, няма да останете без предложения.) От друга страна, самата необходимост от някакъв нов обект (услуга, стока) може да бъде установена при анализ на клъстерните онтологии.
Естествено, в потребителската мрежа предлаганият обект ще бъде представен в браузъра на потребителя под формата на вградена джаджа. За да види всички предложения (всички стоки на производителя или всички текстове на автора), потребителят трябва да превключи на онтологията на доставчика, в която систематизирано са показани всички обекти, достъпни за външни потребители. И е очевидно, че мрежата веднага предоставя възможност да се запознаете с онтологиите на производителите в клъстера, а също така, което е особено интересно и важно, с информация за поведението на другите потребители в този клъстер.
Заключение
И така, информационната мрежа на бъдещето се представя като вселена от уникални обекти с изградени върху тях индивидуални онтологии, обединени в клъстерни онтологии. Обектът се определя и е достъпен в мрежата за потребителя само като вписан в една или множество онтологии. Онтологиите се формират предимно автоматично чрез парсинг на дейността на потребителя. Достъпът до мрежата е организиран като съществуване/дейност на потребителя в собствена онтология с възможност за нейното разширяване и преминаване към други онтологии. И вероятно описаната система вече трудно може да се нарече мрежа – имаме работа с един виртуален свят, с вселена, която е само частично представена на потребителите под формата на тяхната индивидуална онтология – лична виртуална реалност.
*
В заключение искам да подчертая, че нито философският, нито техническият аспект на наближаващата сингулярност не са свързани с проблема за т.нар. изкуствен интелект. Решението на конкретни приложения никога не ще доведе до създаването на нещо, което може да бъде наречено интелект. А това ново, което ще съставлява същността на функционирането на следващото еволюционно ниво, вече няма да бъде интелект – нито изкуствен, нито естествен. По-скоро, по-точно би било да се каже, че то ще бъде интелект до степента, до която ще можем да го разберем с нашия човешки интелект.
Работейки по създаването на локални информационни системи, е необходимо да се отнасяме към тях само като към технически устройства и да не се замисляме за философски, психологически и, още повече, етично-естетически и глобално-катастрофични аспекти. Въпреки че безспорно ще се занимават с това и хуманитарите, и техниците, техните разсъждения няма да ускори или забави закономерния ход на решаването на строго техническите задачи. Философското разбиране както на еволюционното движение на Света, така и на съдържанието на наближаващия йерархичен преход ще дойде с самия този преход.
Самият преход ще бъде технологичен. Но той няма да настъпи в следствие на частно гениално решение. А в резултат на множество решения. Преодолявайки критичната маса. Интелектът ще се материализира в „железо“. Но не един частен интелект. И не в конкретно устройство. И той вече няма да бъде интелект.
P.S. Опит за осъществяване на проекта (вариант след първоначално тестване).
Литература
1. Вернор Виндж. Технологичната сингулярност,
2. А. Д. Панов. Завършване на планетарния цикъл на еволюцията? Философски науки, брой 3–4:42–49; 31–50, 2005.
3. Болдачев А.В. . СПб., 2008.
4. Болдачев А.В. . СПб., 2008.
5. Болдачев А.В. Новаторство. , Спб.: Изд-во С.-Петерб. ун-та, 2007. — 256 с.
Източник: habr.com
