vitus_wagner (
vitus_wagner) wrote2012-10-02 12:52 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
Странные мысли про интерфейсы
1. Идея per project конфигурационных файлов (где project - просто некоторое поддерево) в дополнение к per system, per user и per display как это сделано в git. - это хорошое и правильно. Надо применять возможно более широко, в частности в текстовых редакторах. Кстати, per display надо бы развить в per connection method.
2. Для того чтобы эффективно сливать конфигурационную информацию из такой кучи разных мест, нужна единая общесистемная высокоуровневая абстракция конфигурационных данных. X ресурсы не пошли именно из-за того, что они со своими wildcards и cpp-шным препроцессированием были мало к этому приспособлены. Микрософтовский или гномовский реестр в этом плане получше, но всё равно крив.
3. К системе разрешений вида андроидной должна прилагаться система фейковых разрешений. Вот мы говорим что мы эту программу пускаем в сеть, а на самом деле нифига не пускаем, или пускаем на один конкретный IP. Вот этой даем доступ к контактам, но не к настоящим, а к специальной пустой записной книжке.
4. Доверие пользователя программе должно иметь больше градаций - вот этой программе мы доверяем всё что угодно, вот этой - только работать в полностью эмулированной среде с квотами на CPU и RAM, вот этой - работать в chroot.
2. Для того чтобы эффективно сливать конфигурационную информацию из такой кучи разных мест, нужна единая общесистемная высокоуровневая абстракция конфигурационных данных. X ресурсы не пошли именно из-за того, что они со своими wildcards и cpp-шным препроцессированием были мало к этому приспособлены. Микрософтовский или гномовский реестр в этом плане получше, но всё равно крив.
3. К системе разрешений вида андроидной должна прилагаться система фейковых разрешений. Вот мы говорим что мы эту программу пускаем в сеть, а на самом деле нифига не пускаем, или пускаем на один конкретный IP. Вот этой даем доступ к контактам, но не к настоящим, а к специальной пустой записной книжке.
4. Доверие пользователя программе должно иметь больше градаций - вот этой программе мы доверяем всё что угодно, вот этой - только работать в полностью эмулированной среде с квотами на CPU и RAM, вот этой - работать в chroot.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Я доверяю игрушке захватывать экран, клавиатуру и мышь, но не доверяю коннектиться к серверам за пределами локалки (допустим, сетевая игрушка).
Я доверяю жаббер-клиенту коннектится в сеть, но не шарить по локальным файлам за пределами каталога с его конфигом и хранилищем истории переписки.
Много чего можно накрутить при грамотном подходе. SELinux, правда, начинает напоминать...
no subject
no subject
no subject
А на нишевых рынках жизнь может не очень сытная, зато спокойная, если нишу занял, то хрен тебя кто из неё выпихнет.
no subject
Вообще бы стоило заставлять авторов программ на каждое разрешение писать зачем оно надо. И так, чтобы пользователь понял.
В принципе часто бывает, что разработчики под android запрашивают те разрешения, которые им нафиг не нужны. А у пользователя нет даже возможности поторговаться "А вот я тебе этого разрешения не дам. Будешь работать?"
no subject
С позиции человека, который знает, чего хочет, и решает _свои_ проблемы - все совсем иначе.
no subject
no subject
Вот если дать возможность заниматься этим (управлением правами) сторонней программе — может быть такая программа и появится. А может и нет.
Нишевая жизнь спокойная, пока ею не заинтересовался кто-либо из гигантов. Вот выкупила МС ДаблСпейс — и лидеру ниши Стэкеру (и ещё нескольким догонялам) пришли кранты. Аналогично с МагикФолдерс, Адобовским менеджером шрифтов, расширителями памяти, драйверами клавиатуры, и разными многими системными утилитами, ставшими частью ОС. Даже антивирусы и брандмауэры прижало.
no subject
... Дайте мне другой яндекс! ...
no subject
no subject
а) слишком ресурсоемка,
б) слишком трудна для понимания (в смысле осознания последствий какого0-нибудь дизайн-решения).
Весь вопрос в том, как ограничить понятие "набор конфигурационных параметров" так, чтобы с одной стороны осталась достаточная мощность, с другой - чтобы было поменьше мощности избыточной.
no subject
Отмазка всегда найдётся. Например, навигационная программа отметит на карте координаты твоих контактов (вдруг ты даже не знаешь, что со своим онлайновым знакомым живёте в соседних домах?) и в день их рождения заменит маркер на букетик цветов.
no subject
Возможность подпихивания фейковой записной книжки - это для того, чтобы не требовать со всех авторов приложений "делайте так, чтобы ваше приложение не падало, если юзер не дал разрешения на какую-нибдуь опциональную фигню."
no subject
Вообще эта штука должна достаточно естественно интегрироваться с системой подписей под кодом. Потому что доверять примерно на одинаковом уровне всем приложениям данного автора - вполне разумное умолчательное поведение.
no subject
Однако vi и emacs до сих пор живее всех живых.
Напрашивается простой вывод: качественный нишевой продукт - гораздо более эффективная цель для вложения ресурсов чем ширпотреб.
no subject
no subject
no subject
no subject
no subject
C vi - примерно аналогичная ситуация. Отдельных коммерческих клонов я для него не припомню, но в составе других коммерческих продуктов - бывало.
Оч хорошая иллюстрация "а вот придет в нишу большая корпорация".
Что собственно и возвращает к тому с чего начали:
стратегии для корпорации и для потребителя принципиально отличаются.
Там где потребителю хотелось бы стейк с молодой картошкой, корпорации норовят подсунуть соевый белок с крахмалом.
IT имеет ту особенность, что ряд потребностей квалифицированных потребителей вполне удовлетворяются без привлечения корпораций и мегабабла.
Т.е. утверждение "X ненужно, потому что оно непонятно массовому потребителю", применительно к обсуждаемой области, неверно, поскольку есть примеры строго противоположного.
no subject
Но вообще posix-like система прав не расчитана на противодействие "дряни, которую притащит пользователь". Вот в андроиде с этим уже чуточку получше. Но его авторы, похоже не читали классическую статью Остерхута. И поэтому их система разрешений ни от чего не защищает.
no subject
no subject
no subject
или я даю доступ к контактам или программа не устанавливается, вариант "запустить, но не давать доступ к контактам" не предусмотрен.
во многом (как я думаю) это реверанс в сторону разработчиков софта (например, хотите зарабатывать на рекламе - пока пользователь не согласится на доступ к сети он программу не поставит)
no subject
И чья это проблема (если вообще существует эта проблема)? И кто и как будет её решать?
Вы мне собираетесь приписать это утверждение?
no subject
На маркете не много приложенией которые дают возможность управлять раздачей прав. Частично эту функциональность пытаются взять на себя антивирусы(пришедшие с десктопов) и фаерволы.
Так как для того чтобы контролировать права надо самому иметь максимум прав, поэтому подобный функционал требует как минимум рута как максимум патчей в kernel & dalvik.
Наиболее похожее на ваши требования из того что мне встечалось это "PDroid - The Better Privacy Protection". вот его тема на xda http://forum.xda-developers.com/showthread.php?t=1357056
И поскольку подобный функционал не востребован массово то и отлаженного продукта работающего всегда и везде пока не получается.
no subject
если есть рут - то есть LBE Privacy Guard, дающая возможность оторвать что не надо (и разумеется приложение может и упасть),closed source
в CyanogenMod 7 - Permission Manager был частью его
в базовый андроид - есть тикеты http://code.google.com/p/android/issues/detail?id=10340 и http://code.google.com/p/android/issues/detail?id=6266#c101 как раз на эту тему
писать зачем...ну в маркете хорошие разработчики - пишут
кстати, хорошая особенность iOS - те вещи, на которые там таки нужно разрешение пользователя(GPS/контакты/etc) - можно отказаться, можно отозвать потом.
no subject
Есть менеджеры разрешений, которые позволяют отрывать их от программы (хотят рута, естественно). Правда, программы могут не понять такого авангардизма.
Еще, в какой-то из альтернативных прошивок можно давать программам фейковые разрешения, чтоб таки работали, но не ковырялись в реальной адресной книге, к примеру. Но поскольку на мой телефон альтернативные прошивки не ставятся - глубоко не искал.
no subject
no subject
И что? На наркоте норма прибыли еще выше, а что наркота, что Word для меня одинаково бесполезны. Ибо не решают моих задач.
И чья это проблема (если вообще существует эта проблема)?
Это вообще не проблема. Это такое свойство мироустройства.
Вы мне собираетесь приписать это утверждение?
Нет, ну что вы, это я тому кто спорил с http://vitus-wagner.dreamwidth.org/784118.html?thread=30758902#cmt30758902
no subject
no subject
no subject
no subject
А вот по поводу доверия... Нужно тогда придумывать какую-то более-менее простую модель разрешений, чем сейчас в селинуксах на виртуозах - в том и профессиональный сисадмин не всякий может разобраться слёту, да и, к примеру, к каким каталогам должна программа доступ иметь бывает весьма неочевидно - прилинковало оно какую-то библиотеку - а у той свой конфиг куда-то засунут...
no subject
no subject
То что настройки сделанные в процессе сессии должны забываться, если явно не сказано "сохранить", и новая сессия начинаться с неких стандартных - я согласен.
Так что речь идет скорее о произвольно определенных профайлах. Впрочем, их можно свести к per-project, отобразив в файловую систему. Запускаешь IM в каталоге ~/wrk, он взлетает с одними настройками. Запускаешь в каталоге ~/play - с другими.
А что касается "прилинковало какую-то библиотеку, а у той конфиг", то надо такие библиотеки давить. Если тебе нужен конфиг, то делай не библиотеку а процесс со своими настройками, с которыми другие будут через механизм Intents общаться. Правда это тоже во-о-от такая дыра в безопасности.
no subject
То есть "рабочая сессия" - это одно, "развлечения" - это другое, а если я завтра стал рыться в электронике - ставить софт, выставлять для него хоткеи, вытягивать на экран какие-то документы или (ужас какой) ярлыки, задавать правила - в чем открывать те или иные типы файлов, в какие каталоги их на диск сохранять - то я это делаю в отдельной сессии, и это должно жить столько, сколько мне требуется. Что до реализации - на ФС это можно и каталогами с конфигами оформить, конечно. Даже XDG для этого хватит в подавляющем большинстве случаев.
А вот насчет библиотек с конфигами - ну вон fontconfig как пример. Бывает оно. Или не конфиг, а нужные файлы данных в каких-то позициях лежат. Не, если весь мир насилья разрушать - можно и это регламентировать, и, может, так и надо - но, полагаю, здесь можно менее радикальными мерами обойтись, особенно если не быть слишком уж бескомпромиссными и остановиться на удобном соотношении "морока/безопасность".
no subject
А вообще - мы так плавно перейдём к управлению множественными identity, что сейчас свосем поле непаханое.
no subject
Во-первых, это прекрасный пример того, для чего нужна классификация пользователей.
Настройка "что делать при отходе от компьютера - саспендить сессию на энергонезависимое запоминающее устройство или прекращать её" настолько тривиальна, что даже в виндах уж 10 лет как есть. Причем это явно зависит от информационного метаболизма пользователя - в состоянии ли он, оторвавшись от дисплея на несколько часов восстановить в голове контекст сессии или лучше без этого обойтись, и начать новую сессию с теми контекстами, которые у него в голове крутятся.
Во-вторых, мне сразу же захотелось спросить "а что такое выключение машины". Для моей домашней машины характерны аптаймы по нескольку месяцев. У нетбука на кнопку питания повешен suspend-to-disk.