All streams
Search
Write a publication
Pull to refresh
45
0.1
Александр Шишенко @GamePad64

Программист

Send message
PNG можно через pngcrush прогнать, станет компактнее без потери качества. Есть даже онлайн-сервисы для этого.
Я не знаю способа добавить байт в начало файла без перезаписывания всего файла. В любой файловой системе добавление байта в начало файла будет перезаписывать файл целиком.
тот же rsync работает с truecrypt контейнерами.

Попробуйте записать в контейнер файл размером в 2Гб, передать на другой узел, приписать 1 байт в начало 2Гб-файла и запустить rsync. Будете приятно удивлены тем, что rsync исправно передаст около 2Гб. Всё из-за того, что все блоки файла будут перезаписаны, у данных изменится смещение (а смещение является параметром шифрования в режиме XTS). Шифротекст блоков изменится. Кольцевой хеш (weak-хеш, в терминологии rsync) тоже полностью изменится. Все блоки изменённого файла будут переданы заново. Из-за одного байта, да.
Блоки контейнера, на которых лежат другие файлы переданы не будут (данные не изменятся, их смещение не изменится, а значит, шифротекст тоже не изменится)
Кольцевой хеш тут использовать не получится по ряду причин. Основная причина — вычислять кольцевой хеш нужно до шифрования, потому что после шифрования в режиме XTS при добавлении байта в начало блоки сдвинутся, шифротекст блоков поменяется и кольцевой хеш не совпадёт.
С криптоконтейнерами, кстати, наоборот сложнее, так как при добавлении символа в начало файла внутри контейнера перезапишутся все блоки изменяемого файла, так как для добавления байта в начало файла, файл нужно перезаписать полностью (по определению).
Вообще, задача с дельта-кодированием, шифрованием и добавлением байта в начало файла — очень интересная. Мне приходилось решать её недавно, скорее всего, скоро напишу статью на хабре.
Это у вас не совсем дельта-кодирование получается. Если хотя бы один байт в начало файла, то перезапишется файл целиком и дельта-кодирование работать не будет.
Насколько я понимаю, тут используется режим XTS. Шифруется весь контейнер целиком (то есть, не пофайлово). Контейнер разбивается на блоки размером в 16 байт (= размер блока AES). При изменении этого блока меняется только он.
Шифрование — это инструмент. В некоторых ситуациях дельта-кодирование вполне оправдано.
Скорее всего имеется в виду WPS-кнопка.
На boost.asio можно особо не напрягаясь написать асинхронный неблокирующий сервер.
CygWin — совместимость на уровне POSIX API, а это — совместимость на бинарном уровне (можно без пересборки запускать Linux-приложения на винде, аля Wine наоборот)
Blockchain, например. Только такие оффлайн-сообщения не получится хранить вечно, будут отпадать по таймауту. Вроде у Bitmessage есть подобное.
  1. LGPLv3, пункт 4.d.0
  2. FSF FAQ пункт 1 вопроса по ссылке
  3. Ответ на SE
Со статическими можно, да. При условии, что вы предоставляете свою программу в виде объектных файлов, которые можно будет самостоятельно слинковать с LGPL-библиотекой.
Тут вполне себе осторожно. Паники нет, люди на улицы не выходят, всё идёт по плану.
На корпусе этой штукенции на обоих видео можно узреть знак "Опасно. Лазерное излучение". Да и не зря девайс называется cleanLASER?
Как вы определяете количество заходов с IPv6 адресов, если у вас нет поддержки IPv6?
Поддержку IPv6 можно прикрутить и средствами CloudFlare, на который у вас домен делегирован. Забесплатно. Займёт один вечер времени, один XHR-запрос на странице и один Page Rule на CloudFlare.

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

  1. закрепить версию (отключить автообновление, то есть, чтобы она хранилась в кеше/local storage), и контроль за этой версией осуществляло бы отдельное дополнение в браузере.
  2. провести полный аудит кода (данные можно доверять только опенсорсу, а вы как думали?)

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

Оффлайн-приложения в Хроме работают похожим образом, кстати.
Настроить один рабочий стол на две видеокарты — это тот ещё геморрой, особенно, если это две карты разных производителей (я даже не уверен, что это возможно). В винде же это из коробки.

А ещё в иксах тиринг на двух мониторах… но это совсем другая история.

Information

Rating
3,088-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Scrum Master
Lead
Python
Rust
C++