Http2 убивает идею кешировантие на прокси, этот стандарт приносит
передачу сразу в несколько потоков с использование приоритетов на каждый
поток, но в нем не заложена идея кеширования на промежуточных узлах.
Это становиться не возможно, после того как любое соединение становиться
шифрованным и требует валидных сертификатов. В следствии этого нельзя несколько
раз передать туже информации разным пользователям, так как для каждого
соединения используются разные ключи для потока. Значит можно работать
только по схеме CDN, когда на промежуточных узлах есть оригинальный
сертификат и все данные перепаковываются им.
Было бы замечательно, если бы существовала технология, когда данные с
определённого не зашифрованного потока можно было закешировать и
передавать отдельным зашифрованным каналом подписи для таких данных,
а сами данные по усмотрению промежуточных узлов брались из отдельного
кеша. Даже если в кеше были бы данные зашифрованные и хозяин данного
кеша не мог получить эти данные в открытом виде, но оставались бы хеши
от содержимого и подпись этого содержимого. Это вернет кеширование в
общее потребление - и сразу несколько клиентов могли бы получать общие
библиотеки по общему каналу, а подписи для этих библиотек и специфичную
для пользователя информацию по другому.
Идеи приходящие в голову. Надеюсь они кому-то помогут. Заранее благодарен за комментарии.
Sunday, June 21, 2015
Bootable usb flash
Маленькая инструкция для создания загрузочной usb flash disk:
- запускаем dmesg и ищем в последних записях упоминание о usb storage, предположим, что это будет sdb
- пробуем отмонтировать диск umount /dev/sdb1
- очищаем sudo dd if=/dev/zero of=/dev/sdb count=100
- создаем заново разделы sudo fdisk /dev/sdb, в ней создаем диск нажав n и соглашаемся со всеми предложениями, записываем разделы через w
- форматируем новый раздел mkfs.vfat /dev/sdb1
- восстанавливаем загрузочные записи sudo apt-get install mbr && sudo install-mbr /dev/sdb
- если нужно, копируем нужный нам дистрибутив linux через unetbootin, или если образ создан с возможностью старта с флешки, то это все можно было не делать и просто запустить dd if=cool_dist.iso of=/dev/sdb
Thursday, May 21, 2015
Датчик освещения
Опубликовал свое первое приложение в гугл маркете, написал я его полгода назад и сразу выложил исходный код с альфа версией на маpкете, но тогда оно было доступно только ограниченному кругу тестеров, включающему только те аппараты которые мне доступны. Теперь же это 'произведение' доступно всем желающим в собранном виде. Функциональность приложения очень проста, оно берет изображение с фронтальной камеры с минимальным разрешением и заблокированной экспозицией и рассчитывает среднее значение которое ставит как значение яркости экрана. Для удобства тестирования приложение отображает значение с датчика освещения и примерное значение освещения на основе кадра фронтальной камеры.
Идей для дальнейшего улучшения может быть добавление виджета для рабочего стола или экрана блокировки, но у андроида динамическое изменение содержимого виджета и доступ к камере не доступен напрямую без хаков. Скорее это не очень красивый код получится, поэтому пока не найду, как красиво это сделать будет только явный запуск. Или добавление в ядро линукса псевдо датчика освещённости, который будет использовать камеру.
DDOS vs CDN
Текущие методики чистки трафика от паразитного как то DDOS или накручивание счетчиков представляют собой правила на блокирование трафика по регионам адресов и дополнительные проверки на живость пользователя через капчи даже скрытое от пользователя когда браузер сам высчитывает какую-то магию или проверку на какие-то специфичные свойства браузера - куки в local storage или флеше, теги в кешируемом содержимом.
Эти способы имеют не очень приглядные особенности - заблокировав людей по принципу присутствия включенного js или флеша, сразу отбрасывают людей с выключенным js или если сбойнул какой-то код или мобильных пользователей с альтернативными браузерами. При этом желающих обойти эту проблему решение лежит на поверхности - разобраться что куда ставиться и с эмулировать или запустить эмуляцию всего браузера и или если есть доступ к банерной системе - грузить этот сайт вместе со своим банером на пользовательских системах.
При ограничении трафика по адресу вы сразу отбрасываете пользователей с этого региона и теряете часть добросовестных пользователей, в случае тора для сайтов связанных с образовательной деятельностью или обсуждающих какие-то проблемы общества - мы теряем наиболее активных пользователей которым из-за ограничение трафика провайдером или из желания сохранить конфиденциальность своих интересов от третьих лиц.
Возможным решением таких проблем было бы максимальная кешируемость страниц с информацией с попыткой по максиму использовать CDN и лимитация трафика по объёму по регионам и выполнение проверок на живость только на этапе заполнения форм, когда js уже может быть жизненно важен для работоспособности.
Sunday, April 12, 2015
Vulkan или новый шанс
На данный момент реализация OpenGl для линукс отстает от последней версии на пару лет, расширения из новой версии присутствуют,
но официальной поддержки четвертой версии так и нет. Есть на это две причины:
- intel который делает ставку на open source и постепенно реализует все версии opengl в полном объеме, но еще не опубликовал код с поддержкой этой версии;
- независимым разработчикам не интересно реализовывать расширения которые не являются популярными и реализуют только те части которые им кажутся нужными.
Также amd работает над драйвером для ядра который можно использовать для обоих реализаций графики: для проприетарных
драйверов и открытого кода. Это позволит без обновления кода в ядра использовать проприетарные дрова с любым ядром, а
для открытого кода возможность всегда иметь поддержку всех новых чипов и постараться получить максимально полную реализацию
всех возможных стандартов.
Но существует шанс получить реализацию стандарта несколько быстрее: новая версия OpenGL
Vulkan - базируется на открытых
стандартах и должна иметь референсную реализацию всех частей для проверки валидности рендеринга. Особенность данного
стандарта заключается в том что он пересматривает все традиции современного OpenGL, если традиционно библиотека полностью
скрывает внутреннюю реализацию взаимодействия с видеокартой и сама следит за опустошением буферов и синхронизацией, то новый
стандарт предоставляет программисту самому следить за буферами и дает абстракцию к буферам видеокарты и памяти максимально
низкоуровнево и как следствие получаеться, что программист должен сам контролировать заполненость буферов и выделение памяти,
ошибки не проверяються перед отправкой в устройство. И основой нового стандарта послужила
API Mantle от AMD.
В результате доступно такие виды взаимодействия:
- апи описания памяти и флаги как обрабатывать эту память с отображением в виртуальную память процессора или использовать только внутреннюю память устройства реализуется через выбор пула памяти и характеристик сегмента;
- описание опкодов Spir V виртуальной машины базирующемся на байткоде llvm.
Valve c Intel уже имеют реализацию данных драйверов написанный
LunarG, который они обещают
полностью открыть в момент полного открытия стандарта.
Sunday, March 22, 2015
SSD performance
SSD диски SAMSUNG 840 EVO имеют неприятную особенность деградации производительности -
по изначальной спецификации скорость чтения записи должна быть на уровне
400-450 Mb/s, но современем скорость падает до 100Mb/s. Или совсем
запущенные случаях до 30 для случая 0,5Tb записвнных блоков для 240Gb
диска.
Возможные причины данного поведения:
- скрываются во внутренней структуре дисков когда диск состоит из TLC памяти и треть которой используется как кеш в виде SLC, что позволяет ускорить работу диска. Как следствие метод ускорения перенести в этот кеш наиболее часто используемые области;
- не достаточно эффективная работа TRIM для записи информации нужно полностью очищенные области памяти так как перезапись нескольких байт не поддерживается в флеш памяти;
- особенности процесса поддержки равномерного износа ячеек когда каждая следующая операция записи идет в следующий очищенную область памяти и при падении заряда в ячейках памяти при чтении эти данные переносятся в новую область а старая переноситься в буфер свободных областей и так по кругу.
- особенности чтения многоуровневой памяти - когда уровень заряда памяти постепенно падает и нужно несколько раз прочитать информацию с различными уровнями усиления пока не совпадут контрольные суммы.
Возможный способ решения этих особеностей предположительно используемый
утилитой самсунга для востановления производительности:
перечитать все заполненые области диска и сохранить уровни усиления
для стабильного чтения с ячеек и перенести плохо читающиеся области в
новые области памяти. Все свободные области принудительно сбросить чтобы
подготовить для последующей записи.
Для запуска этой утилиты с usb диска нужно подготовить флешку таким образом:
- скачать freedos и записать на флешку;
- скачать утилиту для восстановления производительности Performance Restoration Software и записать на тот же диск;
- загрузиться с флешки без загрузки драйверов и запустить утилиту, скопированную на предыдущем шаге;
- выключить компьютер, не перегружаться, а именно выключить. Это нужно чтобы все буферы сбросились и диск перечитал прошивку. ( freedos поддерживает poweroff команду ).
После этих действий производительность возвращается в заявленные производителем рамки. Для быстрой проверки можно запустить: hdparm -tT /dev/sda
Wednesday, March 4, 2015
Логичность
Иногда наблюдаешь особую логичность, есть некая узкая улица на задворках центра некого города, где все заполонено магазинами и бизнес центрами с жилищами людей. И как всегда инфраструктура не успевает за прогрессом и парковаться людям негде. И вот паркуються они по обоим сторонам этой безымянной улочки, и все было бы не плохо, если бы не одна особенность, с одной стороны стройка уже достаточно высокого здания и написано на заборе этой стройки, не будете ли вы так добры не парковаться здесь ибо возможны падения стройматериалов в процессе конструирования не то нового бизнес центра не то жилого фонда. И гарсают там бетономешалки и дальномеры с строй материалами в паре миллиметров от машин, и видно высокое мастерство этих водителей не царапающих только чудам пелацы припаркованые, так что расстояние между ними как раз ширина грузовика плюс пара миллиметров. Ну где же тут логика? Может в надежде на авось пронесет, а может решили проверить физику падения гири по канализационному люки с многоэтажки. Вера в свою фортуну непоколебима.
Subscribe to:
Posts (Atom)