Tuesday, August 20, 2013

p2p over http

Идея проброса трафика через обычно открытый порт

Проброс point2point соединения через http соединение в теории можно осуществить через http 1.0 - так он позволяет иметь постоянное соединение, если не указывать размер результата. В таком случае соединение не будет закрыто до момента закрытия с обеих сторон, что позволяет после передачи стандартных минимальных заголовков иметь прямой канал.

Через прокси таким образом работать не получится так как буде работать только канал от сервера к клиенту, в обратную строну соединение не будет работать, можно создать прямое соединение через POST для отправки данных на сервер без указания размера данных используя передачу параметров запроса после заголовков не указывая multipart параметров и обратное через GET без указания размера. Такой способ соответствует спецификации в теории, но имеет несколько недостатков, так как мы имеем 2 соединения которые нужно объединить в одно виртуальное и обычно сервера не позволяют такое вольное отношение с протоколом вычитывая полностью данные с параметров запроса и буферизируя передаваемые данные и как результат такая система может работать не стабильно.

Как результат можно использовать POST запрос с указанием в ответе HTTP 1.0 без указания размера контента с обоих сторон без ожидание получения полного ответа с обоих сторон - в теории это должно повысить вероятность прохода трафика без задержек через прозрачные прокси и firewall - так как оно будет работать по протоколу который соответствует минимальном требованиям к обычно открытому порту для http.

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

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

Wednesday, August 7, 2013

Android + autoconfig?

Android по размерам исходного кода более похож на дистрибутивы общего назначения, где есть несколько тысяч пакетов со сложными взаимосвязями. Последний Android содержит примерно 370 пакетов в терминах обычных дистрибутивов. Основное отличием от остальных дистрибутивов является использование жестко прописанные зависимостей, что обычно характерно для встраиваемых систем или внутренних продуктов заточенных на выполнение только жестко ограниченной функциональности без повторного использования другими продуктами.

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

Возможно это все можно решить, если изначально собирать все по принципам LFS и в эмуляторе конечной платформы. Но результат такой системы будет полностью переписанная сборка частей общих и характерных для остальных дистрибутивов Linux и опять таки сложная система с жесткими связями для пользовательского интерфейса где используется Dalvik, плюс проблема с драйверами к аппаратуре - так как Android позволяет больший разброс в идеях как работать с аппаратурой чем обычный linux и содержит части из других операционных систем, например binder (часть как следствие вечно живой Beos).

Saturday, July 27, 2013

Обновление радио

При обновлении прошивки для радиочипа на android телефоне может поменяется идентификатор usb, для обычных пользователей это не так важно, но для использования fastboot и adb нужно в udev поменять этот идентификатор и права на него.

Установка достаточно проста: 

  1. скинуть в корень флешки, 
  2. перегрузится через adb reboot bootloader
  3. выбрать обновление.
Новая прошивка работает больше 2 месяцев, полет нормальный. Для других устройств, последовательность обновления может отличаться, как и результаты такого обновления.

Saturday, June 29, 2013

Прощай google reader!

Прекращение работы google reader возможно снизит популярность блогов, которые не обновляются очень часто, но имеют пару полезных или интересных постов. Так как на них заходить часто не имеет смысла, подписываются на них как на группу из нескольких однотипных блогов и вследствие без агрегации в ридере, о их обновлении никто не узнает.  Много из них имеют очень сходную между собой информацию, обновляются редко и как следствие вероятно заходить на них будут редко. Возможный выход: они будут прочтены, если они привязаны к социальным сетям или засветятся на более крупных сайтах.

P.S.:  Конечно остаётся вероятность переноса всех этих подписок в другие продукты с схожим функционалом, но ридер все же был в одном клике с почты. Если бы в G+ появилась возможность привязываться к rss тоже было бы не плохо.

Wednesday, May 8, 2013

Лето пришло

Простые команды для охлаждения системы/понижения частот:
  1. процессор: echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  2. видеокарта: echo low > /sys/class/drm/card0/device/power_profile
  3. посмотреть что еще можно отключить: powertop

Wednesday, April 10, 2013

Информационное перенасыщение


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

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

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

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

Saturday, March 9, 2013

i386 на amd64 в lxc

По-умолчанию при создании окружения в lxc поддержка i386 не включена, для разрешения установки пакетов другой архитектуры: dpkg --add-architecture i386