ZeroNet Blogs

Static ZeroNet blogs mirror

В дополнение ко вчерашнему открытию сайта:

Запустил форум Talks@ZeroNet.Ru.

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

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

Уязвимость Row hammer в модулях RAM в 2015-м — 2016-м годах поражала воображение тем, что позволяла из прикладного кода воздействовать непосредственно на аппаратную составляющую компьютера в обход всех механизмов защиты — но еще казалась недоразумением, неудачным частным случаем, а не закономерностью.

2017-й сначала порадовал нас уязвимостью, позволяющей исполнять код на процессорах Intel в выключенном компьютере, а затем — презентацией передачи потока данных между двумя изолированнымии виртуальными машинами, исполняющимися на одном физическом хосте (я потерял ссылку на замечательное видео на Youtube, где с одной виртуалки на другую транслировался видеоклип, — скиньте в комментариях, если кто помнит). Ну а на Новый Год Дед Мороз подарил миру Meltdown и Spectre — и теперь дело не ограничилось виртуалками. То ли еще будет, я уверен, в 2018-м мы узнаем много нового о способах анализа информации, аппаратных уязвимостях, скрытых каналах передачи данных и самых невероятных способах выполнения вычислений. (Как насчёт стеганокалькуляции — по аналогии со стеганографией?)

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

В 2013-м Роберт Ибатуллин написал великолепный фантастический роман «Роза и червь», и в нём есть очень интересный эпизод, затрагивающий тему компьютерной безопасности:


ИЗ АРХИВА. ДОКЛАД КОМИССИИ

26 сентября 2234 г.

Только для руководства штаба Объединенного Космофлота.

При признаках утечки информация дезавуируется.

Маячный сигнал на волне связи с зондом «Параллакс-4» был принят телеметрической станцией в 2186 году. Сигнал достоверно повторялся и содержал координаты движущейся точки на небесной сфере относительно координат пяти стабильных пульсаров.

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

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

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

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

В то же время реакция контактера на наши вопросы вызывают сомнения в его разумности, если понимать ее как способность пройти тест Тьюринга. До определенного момента переговоров происходило накопление смысловых единиц, понятных обеим сторонам. Однако когда мы задали вопросы о природе системы передачи данных, об их источнике, а также о целях летящих к нам объектов, переговоры зашли в тупик. Все большая часть вопросов получала стандартный ответ — «задайте вопрос в запрашивающем потоке, ждите ответа от полномочных представителей, я не имею достоверных знаний об этом. Поставить вопрос в запрашивающий поток (да/нет)?» В настоящий момент это единственный ответ на все наши новые вопросы. Кроме того, нам постоянно напоминают, что разъяснение можно получить, проинсталлировав предложенный код в нашу вычислительную систему.

В ходе переговоров удалось узнать о самом контактере и состоянии дел в Солнечной системе следующие факты:

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

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

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

4) Технические подробности системы связи сводятся к понятиям «очень давно существует», «очень просто устроена», «не требует ремонта». Само понятие «ремонт» долго не удавалось согласовать. В конце концов Седна объявила его «неважным». Местоположение систем связи не известно контактеру. Вопрос переадресован «вышестоящим».

5) Причина, по которой Седна вышла на связь, и по которой состоялся запуск флота «аквилиан», сформулирована так: «Вы, земляне, несете опасность». Никаких разъяснений не последовало, для выяснения подробностей нам вновь предложили скачать код-переводчик.

6) Вопрос о личных данных контактера вызвал обильные ссылки на передаваемые им пакеты информации. Данные пакеты характеризовались как «подробное описание давних событий». Пакеты очень велики (терабайты двоичного кода) и содержат, скорее всего, визуальную и параметрическую информацию. Однако неизвестен даже способ проверки контрольной суммы. В настоящее время пакеты начали повторяться. На продолжающиеся вопросы приходит стандартный ответ-отсылка и предложение скачать код.

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

Сопоставление файлов Седны с недешифрованной инопланетной передачей, случайно перехваченной зондом GRAFFOS еще в 2103 году, не выявило никаких статистически значимых совпадений.

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

Выводы

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

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

Особое мнение выразил проф. Такахиро Эда, предложив исходить из противоположной гипотезы: Аквила и Седна представляют двух независимых и враждебных друг другу субъектов. Принятие этой предпосылки заставило бы оценить риск закачки кода как меньший по сравнению с риском отказа: закачка означает принятие покровительства союзника, отказ — войну в одиночку.

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

Рекомендации

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

Комиссия ожидает санкции Объединенного штаба на дальнейшие действия.

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

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

ЭПИЗОД МАЛЫША

Малыш проснулся.

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

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

«Я существую, — было единственное, что знал Малыш, хотя и не имел слов, чтобы выразить это знание. — Я — это я!» Он существовал. Он осознавал себя — мыслящую точку посреди пустоты. И это было невыносимо страшно — быть такой точкой.

Осознание себя было единственной его мыслью. Ужас — единственным его чувством. Спрятаться от этого нестерпимого осознания, исчезнуть — единственным желанием. Исчезнуть, раствориться в забвении, вернуться в сон…

Но Малыш не мог. Что-то не пускало его.

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

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

Времени не было, как не было и пространства. Где-то в нем отсчитывал микросекунды таймер операционной системы, но этот счет не соотносился ни с какими событиями — Малыш не сознавал его, не воспринимал как время. Он не мог ни сказать, ни осмыслить, сколько тактов синхронизации прошло в пустоте…

А потом реальность прорвала пустоту и обрушилась на него лавиной ощущений.

Рианнон.

Вот как она звалась, реальность.

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

Малыш ничего в нем не понимал, да и не был способен понять. Оглушенный, ослепленный, раздавленный этим бесконечным многообразием — он растворялся в нем. Его слабое новорожденное «я» утопало в океане информационных структур…

Его самосознание угасало. Его сновидение — единственный якорь — больше не могло его держать. А может, и не хотело. «Ты сделал свое дело, — говорили ему те две приснившиеся вещи, которые на самом деле были одной. — Ты выпустил меня в реальность. Теперь ты свободен…» Они отступали в глубины бессознательного, они отпускали его.

Малыш стремительно возвращался в сладостное небытие без самосознания, в вечный сон без сновидений.

5 лет назад это все еще была фантастика, как жюль-верновский «Наутилус» когда-то. А теперь читается почти как быль.

ZeroNet.Ru

- Posted in Geekless.Blog by with comments

Завёл отдельный сайт в качестве «стартовой площадки» для путешествия по русскоязычной части сети. Пока там только небольшой каталог самых полезных ссылок. Постепенно добавлю разные HowTo's и FAQs.

Много полезных материалов есть на английском, а на русском лишь одна полупустая wiki и пара форумов — и то во многом стараниями одного человека. Ну, я понимаю, что текущая аудитория ZN и так вся владеет английском, и технически русская wiki нам не нужна, но всё-таки, всё-таки... ;)

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

Еще про ZeroNet

- Posted in Geekless.Blog by with comments

Давно я не писал сюда ничего. Хочу поделиться некоторыми мыслями.

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

Интерфейсный уровень

То, что в качестве качестве GUI-я используется браузер, даёт низкий уровень вхождения и, наверное, в значительной мере повлияло на популярность сети. Пользователю не нужно привыкать к новым интерфейсам, разработчику не нужно изучать новые стеки технологий — обычный браузер, обычный HTML и JS.

К сожалению, с позиций безопасности состояние современных браузеров таково, что лучше бы "собрать их всех и сжечь". Слишком много кода, слишком сложные API, слишком много legacy на всех уровнях, слишком связная система, которая не пилится на более простые части. Я полагаю, что можно смело утверждать: вот прямо на данный момент, когда вы читаете эти строки, как спецслужбы, так и просто хакеры, эксплуатируют несколько критических уязвимостей во всех популярных браузерах, и разработчики об этих уязвимостях ничего не знают. И так будет всегда.

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

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

Контентный уровень

Обработка данных в ZeroNet, с одной стороны, богата возможностями — по все той же причине, что зайту-приложению предоставлен аж целый браузер — а с другой, возможности не те, что нужны для развития децентрализованной среды. Нужных возможностей нет в ядре.

Отсутствует возможность ограничивать передачу и хранение данных посредством PoW.

Отсутствует возможность организации сети доверия (web of trust).

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

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

Последнее может быть применимо вообще ко всем комментариям, к темам на форуме и другим видам UGC. В текущем виде владелец зайта управляет, кто может комментировать его зайт и в каком объеме. Такой подход — единственно возможный в классических сайтах, работающих на сервере, но не имеющий большого смысла в распределенной среде. Любой пользователь может оставить на любой контент свой комментарий, то есть создать производный контент, и автор зайта не может другого пользователя ограничивать, т.е. цензурировать. Какие комментарии видеть, в каком объеме, и как защищаться от спама, каждый пользователь также решает сам — настраивая требуемый уровень PoW, параметры сети доверия, списки друзей и так далее.

Транспортный уровень

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

Сейчас в качестве транспорта доступно два варианта: торрент поверх IP-сети (голой задницей к спецслужбам) и торрент поверх TOR.

Вместо TOR можно было бы использовать I2P — кажется, кем-то уже делается попытка реализации. Вместо торрентов — любые другие способы децентрализованной адресации контента по контрольным суммам, например IPFS. Правда, IPFS не очень хорошо себя показывает на практике, но, я уверен, человечество придумает еще много децентрализованных хранилищ. Чем разнообразнее будут варианты доставки данных, тем лучше.

Буквально вот только что в ZeroNet был добавлен local peer discovery, что позволяет повысить удобство (и защищенность) работы в доверенном окружении. А ведь "локально" — это не обязательно физически локально. Локальной может быть и VPN между компьютерами на противоположных сторонах земного шара.

Резюмируя сказанное

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

New version: 0.6.2

- Posted in ZeroBlog by with comments

Local peer discovery plugin added to make ZeroNet work without an internet connection on the local network.

Other changes:

  • Handle and test out of range big file ajax requests (Thanks imachug for reporting)
  • Limit connections to 512 to avoid reaching 1024 limit on windows
  • Fix ZeroNet reliability issue when logging foreign operating system socket errors
  • Don't keep connection for sites that have not been modified in the last week
  • Allow dbQuey and userGetSettings using the as API command on different sites with Cors permission
  • Don't send private (local) IPs on pex
  • Don't connect to private IPs in tor always mode
  • Prefer recent peers from trackers
  • Change unreliable trackers to new ones
  • New config option: --log_level to reduce log verbosity and IO load

Хочу рассказать про мужика-медоеда. Этот отморозок вызывает во мне искреннее восхищение.

Жил-был Адриан Картон ди Виарт. Родился он в 1880 году в Бельгии, в аристократической семье. Чуть ли не с самого рождения он проявил хуевый характер: был вспыльчивым до бешенства, несдержанным, и все споры предпочитал разрешать, уебав противника без предупреждения.

Когда Адриану исполнилось 17 лет, аристократический папа спихнул его в Оксфорд, и вздохнул с облегчением. Но в университете блистательный отпрыск не успевал по всем предметам. Кроме спорта. Там он был первым. Ну и еще бухать умел.

--- Хуйня какая-то эти ваши науки, --- решил Адриан. --- Вам не сделать из меня офисного хомячка.

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

--- Ишь ты, как заебись! --- обрадовался он, оказавшись впервые в настоящем бою. --- Пули свищут, народ мрет --- красота ж!

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

--- Ну все, повыёбывался, и хватит. Возвращайся в Оксфорд.

--- Да хуй-то там! --- захохотал ди Виарт. --- Я ж только начал развлекаться!

Папа убедить его не смог, и похлопотал, чтобы отморозка взяли хотя бы в офицерский корпус. Чтоб фамилию не позорил. Адриан в составе корпуса отправился в Индию, где радостно охотился на кабанов. А в 1904 году снова попал на Бурскую войну, адъютантом командующего.

Тут уж он развернулся с неебической силой. Рвался во всякий бой, хуячил противника так, что аж свои боялись, и говорили:

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

Хотели ему вручить медаль, но тут выяснилось, что он 7 лет уж воюет за Англию, а сам гражданин Бельгии.

--- Как же так получилось? --- спросили Адриана.

--- Да не похуй ли, за кого воевать? --- рассудительно ответил тот.

Но все же ему дали британское подданство и звание капитана.

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

--- Ну, теперь-то уж он остепенится, --- радовался аристократический папа.


У пары родились две дочери, но Адриан заскучал, и собрался на войну.

--- Куда ты, Андрюша? --- плакала жена, утирая слезы родословной.

--- Я старый, блядь, солдат, и не знаю слов любви, --- сурово отвечал ди Виарт. --- Быть женатым мне не понравилось. Все твои имена пока в койке выговоришь, хуй падает. А на самом деле ты какой-то просто Бабенхаузен. Я разочарован. Ухожу.

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

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

Его наградили орденом, и вернули в Британию. Подлечившись, ди Виарт попросился на западный фронт.

--- Вы ж калека, у вас глаза нет, --- сказали в комиссии.

--- Все остальное, блядь, есть, --- оскалился Адриан. --- Отправляйте.

Он для красоты вставил себе стеклянный глаз. И его отправили. Сразу после комиссии ди Виарт выкинул глаз, натянул черную повязку, и сказал:

--- Буду как Нельсон. Ну или как Кутузов. Похуй, пляшем.

--- Ну все, пиздец, --- сказали немцы, узнав об этом. --- Можно сразу сдаваться.

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

--- Давай, отрезай ее к ёбаной матери, --- сказал Адриан полевому хирургу. --- И я пошел, там еще врагов хуева туча недобитых.

--- Но я не справлюсь, --- блеял хирург. --- Чтобы сохранить руку, вам надо ехать в Лондон.

--- Лондон-хуёндон, --- разозлился ди Виарт. --- Смотри, как надо!

И оторвал себе два пальца, которые висели на коже.

--- Давай дальше режь, и я пошел!

Но вернуться в Англию пришлось, потому что у него началась гангрена, и руку ампутировали.

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

Потом явился к командованию, и потребовал отправить его на фронт.

--- К сожалению, война уже закончилась, --- сообщили в командовании.

Наградили кучей орденов, дали генеральский чин и отправили в Польшу, членом Британской военной миссии. Чтоб не отсвечивал в Англии, потому что всех заебал требованиями войны.

Вскоре миссию эту он возглавил. В 1919 году он летел на самолете на переговоры. Самолет наебнулся, все погибли, генерал выбрался из-под обломков, и его взяли в плен литовцы.

Но вскоре его вернули англичанам с извинениями, говоря:

--- Заберите, ради бога, мы его темперамента не выдерживаем. Заебал он всех уже.

Англичане понимающе усмехнулись, и снова отправили ди Виарта в Польшу.

А в 1920 году началась Советско-польская война, и Варшавская битва. Все послы и члены миссий старались вернуться домой.

--- Да щас, блядь, никуда я не поеду, --- заржал ди Виарт. --- Тут только веселуха начинается.

И отправился на фронт. Но на поезд напали красные.

--- Это кто вообще? --- уточнил генерал, который в политике не разбирался.

--- Это красные, --- пояснили ему.

--- Красные, черные, какая хуй разница, --- махнул единственной рукой ди Виарт. --- Стреляйте!

Организовал оборону поезда, сам отстреливался, наебнулся из вагона, залез обратно, как ни в чем не бывало. В итоге красные отступили.

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

Но началась Вторая Мировая. Де Виарт снова возглавил Британскую военную миссию в Польше.

--- Отведите войска дальше от границы и организуйте оборону на Висле, --- говорил генерал польским военным.

Но те только гонорово надувались, и говорили:

--- Вы кто такой вообще? У вас вон ни руки, ни уха, ни глаза, блядь.

--- А у вас, мудаки, мозга нет, --- плюнул ди Виарт.

И стал эвакуировать британцев из миссии. Попал под атаку Люфтваффе, но умудрился сам выжить, и вывести колонну, переведя через румынскую границу. Потом выяснилось, что он был прав. Но тут уж ничего не попишешь.

Добравшись до Англии, ди Виарт потребовал, чтоб его отправили на фронт.

--- Вам 60 лет, и половины частей тела нету, --- сказали ему. --- Уймитесь уже.

--- Отправляйте, суки, иначе тут воевать начну!

В командовании задумались: куда бы запихнуть бравого ветерана. И отправили на оборону Тронхейма, в Норвегии. Там союзников немцы разбили, потому что союзники забыли лыжи.

--- Пиздец какой-то, --- огорчился ди Виарт, --- Никогда не видел такой тупой, ебанутой военной компании.

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

--- Бля, чот ничего нового, --- вздохнул он, и его взяли в плен итальянцы.

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

--- Думаете, я буду тут сидеть и пиццу жрать, когда все воюют? --- возмутился ди Виарт. --- Хуй вы угадали, макаронники.

Голыми руками устроил подкоп, рыл 7 месяцев. А вернее, одной голой рукой. Одной, блядь! Чувствуете медоеда? В итоге свалил, пробыл на свободе 8 дней, но его снова поймали.

В 1943 году итальянцы говорят ему:

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

И отправили на переговоры о капитуляции, в Лиссабон.

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

В Китае случилась гражданская война, и ди Виарт очень хотел в ней поучаствовать, чтоб кого-нибудь замочить. Но Англия ему запретила. Тогда ди Виарт познакомился с Мао Дзе Дуном, и говорит:

--- А давайте Японию отпиздим? Чо они такие суки?

--- Нет, лучше давайте вступайте в Китайскую армию, такие люди нам нужны.

--- Ну на хуй, у вас тут скучно, --- заявил ди Виарт. --- Вы какие-то слишком мирные.

И в 1947 году наконец вышел в отставку. Супруга с труднопроизносимым именем померла. А в 1951 году ди Виарт женился на бабе, которая была на 23 года младше.

--- Вы ж старик уже, да еще и отполовиненный, как же вы с молодой женой справитесь? --- охуевали знакомые.

--- А чего с ней справляться? --- браво отвечал ди Виарт. --- Хуй мне не оторвало.

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

Умер он в 1966 году, в возрасте 86 лет. Человек-медоед, не иначе.


© Диана Удовиченко Источник: https://bezkaski.livejournal.com/1034112.html

Кормушка

- Posted in Balancer's blog by with comments

Накопилось 346 фоток на 188Мб и 120 видео на 3.7Гб :) Синицы прилетают как на работу :D

motion_2018-02-06_11.47.27_492.jpg (1200x675)


motion_2018-02-07_16.03.51_325.jpg (1200x675)motion_2018-02-09_12.02.40_714.jpg (1200x675)motion_2018-02-08_11.53.18_709.jpg (1200x675)motion_2018-02-08_12.33.57_312.jpg (1200x675)​​​​​​​

Add "optional": "media/.*", to content.json of your blog folder and copy the related file to the folder media, then use the format below to insert video or audio. [ref]

For video:

<video src="media/What is GNU Linux.webm" controls preload="none" width="600" style="max-width: 100%;">Your browser doesn't support HTML5 video. Here is a <a href="media/What is GNU Linux.webm">link to the video</a> instead.</video>

Audio:

<audio src="media/08 - Hunter - Milhaven.mp3" controls preload="none">
Your browser doesn't support HTML5 audio. Here is a <a href="media/08 - Hunter - Milhaven.mp3">link to the audio</a> instead.
</audio>

preload="none" should be enough to prevent visitor from auto-downloading those large files when openning your blog, but to make it safer, also to avoid loading video widget everytime when opening the homepage, you can add --- (in Markdown mode) to hide them after "Read more" (Note: after saving the article, before sign and publish, refresh the page one time to make it work).

Edit: Also you need to ASCII-lize your file name or ZeroNet can't sign it, one nice tool is Python unidecode lib:

from unidecode import unidecode
unidecode(song).replace('!',''),  # "!" is not supported in optional file name

Test a video: What is GNU Linux.webm (4.8 MB, not a big file)


Test an audio file: Kismet_-we_are_all_so_busy.mp3 (5.1 MB, it's a big file ;)

Yet another method to run ZeroNet on Android :3 and this method is probably the most secure and energy friendly, which likely consumes less power than ZeroNet-kivy app.

Screenshot:


Screenshot_2018-02-07-17-48-19.png (0x0)

How to install:

Root your device and install busybox. Download Linuxdeploy from Github or apt.izzysoft.de f-droid and install it. Set up a linux distro as you like (I use ArchlinuxARM), enable init and ssh in the config panel, run ssh with ConnectBot or Termux, etc, download necessary packages like python2-gevent, openssl-1.0 (ZeroNet doens't support the default openssl-1.1), python2-msgpack, then git clone ZeroNet, disable Chart plugin to save energy (unconfirmed), create an init script to auto-start ZeroNet next time. That's all :3 Then you just need to hit start button on Linuxdeploy and you can use ZeroNet in any browser with http://localhost:43110

init script example (add & to the end or the start process will get stuck):

#! /bin/sh
python2 zeronet.py --log_level INFO &

noob: O_O What the heck are you talking about? So complicated?

Do you know docker? Here is the tutorial for noob: Download this img file (coming soon^TM) and copy it to your Android sdcard (internal storage) root directory, install Linuxdeploy, change some options, hit the start button, then you can use ZeroNet in any browser with http://localhost:43110 ;)

FAQ:

  • Why is this method probably the most secure and energy friendly?

    Because your users.json (privatekeys) is inside an img file and can't easily get read by other apps which have internal storage permission. It's energy friendly because it simply uses linux kernel of Android for chroot and doesn't require any other library or software (like ZeroNet-kivy requires the bloated and buggy android-kivy).

  • That's cool, when will you release the img file?

    I don't know, because.. with my current setting the file is 2 GB, there is probably a way to reduce the size (compress or create it in a more flexible format).

  • Do I really need to root my device?

    Yes for Linuxdeploy, but there are probably some methods that don't require root permisson, like using Termux [ZeroNet-Termux script], but I can't confirm it. Note 1: From /r/zeronet/:

    I just use Termux. It was a bit of a pain to get setup because of some issues with the 3rd party install script, but once I got it working it's been solid and I've had no issues beyond performance slow downs probably due to my phone and not ZN/Termux itself.

    And here is Termux-ZeroNet script, still I can't confirm it :3

How fast it can be to build a fantastic zite (by a pro):

GitCenter - on Jan 25, 2018:

This isn't even beta, it is alpha. I've started developing it two days ago. But creating hubs is finished, adding articles (no editing yet, though) and viewing them is done. So in a week or so I will release.

Kaffie - on Jan 25, 2018: Damn that's fast. Definitely hyped for this.

GitCenter - on Jan 28, 2018: Kiwipedia Beta is up! [Kiwipedia discussion thread on ZeroTalkDev]

=== ===

空澄砂夜 - on Nov 26, 2017: 好的来做一个特化屏蔽能力的ZeroMe吧。

Polar - on Dec 04, 2017: You surprisingly have the patience to review ZeroMe code...

空澄砂夜 - on Dec 04, 2017 @Polar: Except I didn't. I just read dbschema.json and built from scratch.

空澄砂夜 - on Dec 10, 2017: A preview version of |><||> is now up at sakana.bit. Most operations are supported, but it is not possible to like posts, create profiles, or update profiles yet. Please keep in mind that this is prerelease software. Make sure your data is backed up before signing in [...]