воскресенье, 28 февраля 2010 г.

[Scala] By-name parameters

Вспомнил пароль к профильному блогу по программированию, перенес прошлую статью по Scala туда и добавил еще одну - тема в заголовке.

пятница, 26 февраля 2010 г.

Подведем итоги

Итак, по окончанию срока правления Ющенко в сухом остатке имеем:

За время президентства Ющенко население страны уменьшилось почти на два миллиона человек. Это — абсолютный европейский рекорд!

— Глава государства, который, несмотря на уличающее в коррупционных действиях заключение специальной следственной комиссии парламента (комиссия ВР под руководством Виктора Суслова по банку «Украина»), продолжает без зазрения совести вещать о борьбе с коррупцией.

— Глава европейского государства ХХI века (!), двинувший войска на столицу для разгона парламента.

— Самый дорогой в Европе для налогоплательщика президент парламентской республики: содержание Ющенко стоило украинцам 1 млрд. 620 млн. грн. в год, что больше содержания вместе взятых парламента с 450 депутатами (около 500 млн.), правительства с премьером, вице-премьерами и министрами (около 1 млрд.) и равно затратам на содержание президента Леонида Кучмы почти за 4 года. После свержения Бокассы, Иди Амина и Дювалье ни один правитель мира не позволял себе тратить в бедной стране подобные средства на свое содержание.

— К окончанию правления имеет 14 государственных резиденций — значительно больше, чем у любого европейского монарха. Кстати, если бы не направленный мною депутатский запрос в Генпрокуратуру, была бы и пятнадцатая — Мариинский дворец. В шедевре великого Бартоломео Растрелли уже начали переделку старинной планировки для сооружения под президентское семейство ванных комнат и туалетов.

— Единственный глава государства в Европе (не считая королей), поместивший собственное изображение на деньгах страны: Ющенко «увековечил» себя на монете в 50 грн. На постсоветском пространстве до этого додумался лишь бывший президент Туркменистана Сапармурат Ниязов (Туркменбаши).

— Единственный в Европе глава государства, добивающийся государственного почитания своих родственников. Заслуженного генерала — директора музея Великой Отечественной войны уволили за отказ разместить на День Победы в Зале героев фотографии «любившего хороший немецкий кофе» президентского отца. На постсоветском пространстве лишь Туркменбаши официально присвоил звание Героев Туркменистана покойным родителям.

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

— Глава государства, назначающий близких родственников на высокие государственные посты (так, 24-летний племянник стал в 2005-м вице-губернатором одной из крупнейших областей) и награждающий их высокими государственными наградами. Любимого коня, правда, в парламент провести не пытался.

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

— Единственный в демократической Европе государственный лидер, маниакально озабоченный поиском доказательств собственного «высокого происхождения». Целая толпа сервильных псевдоисториков занимается выведением «высочайшей» родословной от последнего кошевого атамана Запорожской Сечи Петра Калнишевского. Еще бы пару лет президентства, и они наверняка бы «нашли свидетельства» о прямом происхождении Ющенко в крайнем случае от Ярослава Мудрого...

— Единственный в мире государственный лидер, пытающийся создать с помощью спецслужбы «национальную церковь».

— Глава государства, дающий образование своим детям в школе, где отечественную историю, родной язык и литературу не преподают даже факультативно. Впрочем, в качестве граждан США (один из бывших друзей Ющенко утверждал, что лично держал в руках американские паспорта семейства) они учат родной язык и историю того отечества.

— Единственный в Украине человек без исторического образования, получивший Государственную премию в области науки за цикл «трудов» по специальным историческим дисциплинам. Каюсь, по просьбе Бориса Евгеньевича Патона, мы с академиком Иваном Курасом включили в 1999 г. не написавшего ни единой строки Ющенко в состав своих соавторов.— Единственный в мире президент, на официальном сайте которого указано, что он дважды академик — «Академии экономических наук Украины, академик Украинской Академии экономической кибернетики». При этом, например, об «Украинской Академии экономической кибернетики» узнать можно только из официальной биографии «мессии», других свидетельств ее существования нет!

— Глава государства, назначавший в ХХI в. министром юстиции, руководителем офиса президента и заместителем руководителя спецслужбы людей, фальсифицировавших документы о получении ими высшего образования. А также присвоивший им почетные звания. Зато все они преданы «идеалам майдана», ставшим индульгенцией на безнаказанное разграбление страны.

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

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

— Глава государства, разогнавший ГАИ, вследствие чего на дорогах погибли десятки тысяч украинцев.

— Глава государства, удосужившийся ввести уникальную новацию в юриспруденции (касающуюся всего лишь увольнения главы райадминистрации): «РАСПОРЯЖЕНИЕ ПРЕЗИДЕНТА УКРАИНЫ № 161/2009-рп Об отмене Распоряжения Президента Украины от 6 марта 2009 года № 38

Отменить Распоряжение Президента Украины от 6 марта 2009 года № 38 «Об отмене Распоряжения Президента Украины от 13 декабря 2007 года № 292».

— Глава государства, не стесняющийся покупать и публично демонстрировать краденые артефакты «черной археологии». Если бы правоохранители «изучили» собранную Ющенко коллекцию трипольских предметов, она могла бы «потянуть» лет на 5...

— Единственный в мире президент, имеющий к концу правления рейтинг недоверия в 87,4% и — подобно рейхсканцлеру Гитлеру — сетующий на нацию, «недостойную фюрера», заявил о том, что ему стыдно за выбор украинцев.

— Президент, проигравший выборы с наиболее удручающим результатом. До этого сомнительный рекорд принадлежал экс-президенту Словакии Рудольфу Шустеру, занявшему на выборах 2004 года четвертое место и получившему 7,4% голосов. Все-таки сумели «оранжевые» революционеры обогнать Европу. Даже Гитлер имел в конце апреля 1945 г. более высокий уровень поддержки немецкого народа.

— Президент, сам себя назначивший своим указом на должность руководителя музея — «Мистецького арсеналу». Спасибо, что собственным указом не возвел себя в Герои Украины.

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

[Scala] Function currying

Вот эта тема меня поначалу сильно озадачила :) Что это такое, в принципе было понятно, не было понятно - а зачем оно мне надо? Итак, каррирование a.k.a function currying - что это? Если у нас есть некая функция с несколькими аргументами, то для получения ее значения нам необходимо передать ей значения всех аргументов. При применении каррирования мы можем передать ей лишь некоторые из них, а в качестве результата получим функцию, принимающую оставшиеся аргументы. И если уже в эту функцию мы передадим остальные аргументы, то получим собственно результат. Названа техника в честь ее изобретателя, Хаскелла Карри. В некоторых случаях это позволяет уменьшить дублирование кода и упростить его переиспользование.

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

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

Abbr. State City Tax computation
TFTerrafirman/a2% of the entire value
TCTerracottan/a6% on the first $1500
CFConfusionGotham5% on the entire value plus 4.5% on the first $1000
CFConfusionOcean City5% on the entire value plus 3% on the first $1000
CFConfusionHometown5% on the entire value plus 1.5% on the first $1000

Сначала определим обобщенную функцию вычисления налогов:

def pct(rate: Double, amt: Long) = (rate * amt / 100.0D + 0.5D).toLong //helper function for rounded percentage calculation
def tax(rateA: Double, limit: Long, rateB: Double, amt: Long) = pct (rateA, amt) + pct (rateB, limit min amt)

Теперь определим функции для вычисления налогов в каждом городе без применения каррирования:

def taxTF (amt: Long) = tax(2.0D, 0, 0.0D, amt)
def taxTC (amt: Long) = tax(0.0D, 150000, 6.0D, amt)
def taxGothamCF (amt: Long) = tax(5.0D, 100000, 4.5D, amt)
def taxOceanCityCF (amt: Long) = tax(5.0D, 100000, 3.0D, amt)
def taxHometownCF (amt: Long) = tax(5.0D, 100000, 1.5D, amt)

Дублирование видно сразу - передаются одинаковые аргументы сразу в нескольких местах. К тому же этот код не очень хорошо читаем, сразу и не понятно, что к чему относится. А теперь добавим карри. Общая функция вычисления налогов станет выглядеть так:

def tax = (rateA: Double) => (limit: Long) =>
(rateB: Double) => (amt: Long) =>
pct (rateA, amt) + pct (rateB, limit min amt)

Первые 2 функции вычисления налогов примут вид:

def taxTF = tax( 2.0D)(0)(0.0D)
def taxTC = tax( 0.0D)(150000)(6.0D)

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

def taxCF = tax(5.0D)(100000)

Теперь черз нее можно выразить города:

def taxGothamCF = taxCF(4.5D)
def taxOceanCityCF = taxCF(3.5D)
def taxHomeTownCF = taxCF(1.0D)

Для города Gotham налог будет таким:

scala> taxGothamCF(9999)
res0: Long = 950

Дублирования нет, каждая функция делает только то, что от нее требуется. Использовать можно например так - определим функцию отчетности:

def report(taxf: (Long => Long), amts: List[Long]) = {
println("Tax on " + amts + " is " + taxf((amts :\ 0L)(_ + _)))
}
val items = List[Long](20000, 40000, 60000, 80000)

scala> report(taxHomeTownCF, items)
Tax on List(20000, 40000, 60000, 80000) is 11000

Что это даёт? В краткосрочной перспективе вобщем-то особенно ничего, но если нужно обеспечить гибкую функциональность, когда требования меняются часто, и нужно быстро и легко вносить изменения в код - то этот приём будет однозначно полезен. Кстати, налогообложение - как раз такая предметная область. Ставки и формулы там меняются весьма часто.

Лет через 10...


четверг, 25 февраля 2010 г.

Еще о Scala

Краткость - сестра таланта. А программист - ленивое существо :) За что мне понравилась Scala - так это за краткость. Вот если посмотреть на примере - надо посчитать норму вектора. Для тех, кто уже забыл, что это такое - корень из суммы квадратов всех его координат. Пускай вектор у нас представлен списком, каждый элемент которого - соответствующая координата. Ниже 2 реализации - на Java и на Scala:

Java

List<Double> vector = new ArrayList<Double>();
vector.add(-1.0);
vector.add(2.0);
vector.add(3.0);
Double norm = 0.0;
for (Double coord : vector) {
norm+=coord*coord;
}

norm = Math.pow(norm, 0.5);

Scala

val v = -1.0::2.0::3.0::Nil
val norm = Math.sqrt(
(0.0 /: v)((x, y) => x + y * y))

Разница в обьёмах набранных буков очевидна :) А результат один - корень из 14.

Hockey

Epic fail.

среда, 24 февраля 2010 г.

Россия - Канада: матч века

"Все ждали, что в этой дуэли будет разыграна золотая медаль. Но признайте – так еще лучше. Почему? Дело даже не в ставке в игре. А в цене поражения. Победитель этого матча не будет награжден золотом, но и проигравший не получит серебро, - пишет в своем блоге Франсуа Ганьон, журналист канадской газеты La Presse. - Два лучших игрока мира покажут в этом матче все, на что способны. Но, боюсь, у Кросби не окажется таких хороших помощников, как у Овечкина. Если русские опять используют тройку Семин – Малкин - Овечкин, играть против них будет трудно любому канадскому звену".
"Канада не выигрывала у России на зимних Олимпийских играх 50 лет: эта победная засуха тянется с 1960 года, - напоминает читателям Дэмиэн Кокс из Toronto Star. – Восемь матчей между Россией и Канадой – восемь канадских поражений. Так что никакого давления, джентльмены. Расслабьтесь и дышите глубже".
"Когда до конца победного матча Канады против Германии оставалось три минуты, зрители на трибунах начали петь: "Мы хотим Россию! Мы хотим Россию!" Будьте осторожны. Они тоже хотят этой встречи, - пишет Иан Макинтайр в издании The Vancouver Sun. - Сегодняшний грандиозный матч между Канадой и Россией, Сидни Кросби и Александром Овечкиным, между нами и ими, способен показать поколению, не заставшему Суперсерию 1972 года и старый турнир, называемый Кубком мира, что такое величайшее противостояние в истории хоккея".

Ни о чем

Жду завтрашнего матча Россия-Канада. Сегодня канадцы феерически разгромили немцев 8-2, один гол был очень хорош - шайба пролетела сетку ворот насквозь и гол разглядели только на видеоповторе. Нашим предстоит трудный поединок - канадцы сильны, сегодня это было хорошо видно. Комментаторы в 3м периоде, после того, как число забитых шайб перевалило за 5, только и делали, что вспоминали Россию :)) причем начиная с советских времен. Ну не дают им покоя 2 крайних проигранных чемпионата мира, хотят реваншу :)) Жду отличную игру, кто бы ни победил - матч будет достойный.

Крайние 2 недели изучаю Scala. Хороший язык, имеет много чего, что я бы хотел видеть в Java. По-моему, за ним будущее, тем более что они с Java полностью совместимы и работают на одной платформе - JVM. В качестве учебника использую "Programming in Scala", за авторством создателя языка (Martin Odersky) со-товарищи. Хорошая книга, понятно излагают.

Ну и жду уже окончания игр - задолбали толпы болельщиков повсюду. Ходят, орут, свистят.. ну чисто обезьяны. Теперь город патрулирует конная полиция, раньше не видел.

четверг, 18 февраля 2010 г.

О конструкциях функциональных языков программирования

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

среда, 17 февраля 2010 г.

Выставляем рейтинг

Понравилась картинка, утащил себе :) Для понимания важен комментарий - все переменные принимают значение 0 или 1. То есть девушка со значением "внешность" = 0 имеет нулевой рейтинг :))

воскресенье, 14 февраля 2010 г.

Полуавтоматический карабин «Сарыч» (.308 Win)

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

Внушает надежду

Лидер Партии регионов Украины Виктор Янукович, который, по всей видимости, скоро будет официально объявлен победителем президентских выборов, дал интервью российскому государственному агентству ИТАР-ТАСС.

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

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

"Искусственные барьеры, которые были созданы за пять лет между нашими странами, быстро исчезнут". "Это даст возможность восстановить объемы торгово-экономических отношений. Недопустимо, что мы скатились с 40 миллиардов долларов до 13 миллиардов. Это смешная цифра для наших стран", - сказал Янукович.

"Сегодня не стоит вопрос вступления Украины в НАТО. И мы уже на этот вопрос ответили, что Украина сегодня заинтересована в том, чтобы развивался проект создания системы коллективной безопасности европейской", - сказал Янукович. Он заявил о готовности Украины участвовать в этом проекте.

"Мы готовы принимать в нем активное участие и поддержать инициативу президента Дмитрия Медведева, кстати, которую поддержал президент Франции Николя Саркози. И мы готовы в этом принимать участие", - отметил Янукович.

http://www.newsru.com/world/12feb2010/yanukovich.html

суббота, 13 февраля 2010 г.

Виртуальное путешествие по России

Google в сотрудничестве с РЖД создал виртуальную модель Транссибирской магистрали. Очень интересно получилось. Можно посмотреть на все ключевые пункты маршрута Москва-Владивосток на видео, как из окна поезда. При этом идёт привязка движения к карте. Звуковое сопровождение также можно конфигурировать - от стука колес до аудиоверсиии русской классики. Мне лично было любопытно проехаться по Екатеринбургу - городу, где я родился. Уже лет 8 там не был.

среда, 10 февраля 2010 г.

Vancouver 2010 & Hockey Canada магазины - скидки

Официальный интернет-магазин Олимпиады 2010: www.vancouver2010.com/store
промо-код EPFRIENDS2010 скидка 15%, действительно до 14 февраля;

Официальный магазин Hockey Canada: www.store.hockeycanada.ca
промо-код TEAMCANADA скидка 15%, действительно до 14 февраля;

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

суббота, 6 февраля 2010 г.

Грядки - экскаватором

Классно кто-то высказался по поводу создания небольших веб-проектов на java: когда нужна маленькая настольная фигурка кошки, тебе выкатывают 50-метровую статую Ленина, которую нужно везти на ракетном тягачe :)) Поэтому эта ниша прочно и надолго занята PHP :)

среда, 3 февраля 2010 г.

Как это было

Это первый лётный образец — Т–50–1.
До него был ещё Т–50–0 (только корпус, обклеенный тензодатчиками и датчиками вибраций, предназначенный для статических испытаний), который увезли в Москву ещё летом, или даже весной.
Там, в Москве, его должны были всячески нагружать механически и, в конце концов, порвать или поломать.

Параллельно с "нулёвкой" изготавливали Т–50–КНС и Т–50–1.
Т–50–КНС — это так называемый "Комплексный Натурный Стенд" (некоторые говорят "Наземный").
Он, в конечном итоге, должен был быть снабжён полным составом оборудования.
На нём должно было бы отрабатываться взаимодействие всех систем и на нём же завод отрабатывал технологию.
На него устанавливались "запоротые" детали, которые нельзя было допустить к установке на лётный образец. Этим было сэкономлено немало денег — ибо брак не выкидывали, а разрешали поюзать на стенде.

В общем, первым был готов КНС. поначалу его выкатывали из ангара только по ночам, закутанного в брезент (например, когда надо было перекатить его в цех для покраски). Двигатели гоняли тоже ночью, чтобы враги не заметили. Правда, при свете прожекторов, но это мелочи.

То что в конечном итоге взлетело — это Т–50–1 — первый лётный образец. На нём стоит оборудование по минимуму, только то, что нужно для полёта + СБИ (система бортовых измерений, которая меряет вибрации, изгибы, температуру, и т.п., очень много датчиков).
На нём столько проводов и датчиков, что проводам штатного оборудования просто не хватает места. Это — одна из причин, по которой на первый лётный образец не устанавливается всё штатное оборудование. Но чтобы масса самолёта была точь–в–точь, как с полным составом оборудования, на место недостающих блоков установлены грузы с соответствующей массой.

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

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

Полёт назначили на 28 января, но из–за обнаруженной неисправности в системе управления полёт был отложен на один день. За ночь неисправность устранили, и на 11:15 29 января назначили первый полёт.

Сбоку от полосы завис вертолёт с кинооператором, поднялся в воздух Су–27УБ, тоже с кинооператором, сделал "коробочку", и, когда стал проходить вдоль полосы, первый лётный стал набирать скорость, оторвался от полосы, и стал набирать высоту. Причём, в небо он ушёл почти свечкой. На фоне Су–27УБ он выглядел очень неприметным. Буквально — как тёмная чёрточка с расстояния в три — четыре километра.

После взлёта машины развернулись через левое плечо и ушли на север — бОльшая часть испытательного полёта прошла над тайгой.
Вернувшись через полчаса, машины прошли на небольшой скорости на высоте около 30 метров над полосой, сделали коробочку и Т–50–1 приземлился. Су–27УБ снимал посадку, а затем приземлился и он.

За время полёта отказов в работе оборудования не было.

Ещё назначено 7 полётов в Комсомольске, и потом его увезут вместе с КНСом в Жуковский.

http://aviaforum.ru/showthread.php?t=25758&page=5

понедельник, 1 февраля 2010 г.

Шеф, фсьо пропало!

вброс говна на вентилятор>>Ни одной реальной новинки в Т-50 я не вижу, сплошное копирование + "рестайлинг" Су-27. Хорошо что РЛС с АФАР более менее готова, да еще с двигателя есть 'положительный сдвиг'.

ответный удар>>Мало того, можно с полной уверенностью считать, что Т-50 - сплошное копирование + "рестайлинг" проекта самолета Можайского. Хорошо, что есть положительные сдвиги в области двигательных установок, удалость таки перейти от паровых винтовых двигателей к некому подобию высокотехнологической продукции Pratt&Whitney F119. Однако в области конструктивных материалов сделан огромный шаг назад. Требование радиолокационной невидимости ставит под сомнения использование металлических и даже углепластиковых материалов. Широкое использование в конструкции Можайского лишь истинно диэлектричнеских материалов, таких как дерево и полотно позволяет достичь очень значительного снижения радиолокационной заметности конструкции, по всей видимости даже приближающегося к непревзойденным показателям гениального творения человеческого разума - Lockheed Martin F-22. Следует отметить, что достижение радиолокационной невидимости стояло в первых рядах задач, решаемых Можайским. Достаточно вспомнить радикальное решение им проблемы радиолокационных отражений, создаваемых двигательной установкой летательного аппарата. В одном из натурных экспериментов он использовал прием транспортирования летательного аппарата лошадьми, движущимися по земле. Тк обнаружение конной тяги на фоне подстилающей поверхности до сих пор остается сложной задачей даже для непревзойденных изделий Northrop-Grumman/Raytheon AN/APG-77, следует отметить несомненную прогрессивность данного технического решения.
Из всего сказанного в явном виде следует, что деградация научно-технического потенциала путинской России достигло критических масштабов. По абсолютным показателям он уже ниже, чем уровень Российской империи конца 19 века и продолжает катастрофически снижаться. Нет числа утраченым технологиям. Производство цельнодолбленных фюзеляжных конструкций, пеньковых буксировочных тросов большого удлинения, раскрой льняной обшивки и многие другие столь нужные в это непростое время технологии вряд ли будут воссозданы в условиях тотального разворовывания финансовых средств.

Я плакал :)))