Странные мысли про интерфейсы
Oct. 2nd, 2012 12:52 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
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
Date: 2012-10-02 09:14 am (UTC)no subject
Date: 2012-10-02 10:07 am (UTC)no subject
Date: 2012-10-02 11:37 am (UTC)Я доверяю игрушке захватывать экран, клавиатуру и мышь, но не доверяю коннектиться к серверам за пределами локалки (допустим, сетевая игрушка).
Я доверяю жаббер-клиенту коннектится в сеть, но не шарить по локальным файлам за пределами каталога с его конфигом и хранилищем истории переписки.
Много чего можно накрутить при грамотном подходе. SELinux, правда, начинает напоминать...
no subject
Date: 2012-10-02 11:46 am (UTC)no subject
Date: 2012-10-02 11:47 am (UTC)no subject
Date: 2012-10-02 12:16 pm (UTC)no subject
Date: 2012-10-02 12:50 pm (UTC)no subject
Date: 2012-10-02 12:54 pm (UTC)no subject
Date: 2012-10-02 02:02 pm (UTC)Но вообще posix-like система прав не расчитана на противодействие "дряни, которую притащит пользователь". Вот в андроиде с этим уже чуточку получше. Но его авторы, похоже не читали классическую статью Остерхута. И поэтому их система разрешений ни от чего не защищает.
no subject
Date: 2012-10-02 02:10 pm (UTC)no subject
Date: 2012-10-02 02:57 pm (UTC)no subject
Date: 2012-10-02 09:21 am (UTC)no subject
Date: 2012-10-02 12:28 pm (UTC)а) слишком ресурсоемка,
б) слишком трудна для понимания (в смысле осознания последствий какого0-нибудь дизайн-решения).
Весь вопрос в том, как ограничить понятие "набор конфигурационных параметров" так, чтобы с одной стороны осталась достаточная мощность, с другой - чтобы было поменьше мощности избыточной.
no subject
Date: 2012-10-16 09:04 pm (UTC)no subject
Date: 2012-10-02 09:54 am (UTC)no subject
Date: 2012-10-02 10:17 am (UTC)no subject
Date: 2012-10-02 11:05 am (UTC)no subject
Date: 2012-10-02 11:49 am (UTC)А на нишевых рынках жизнь может не очень сытная, зато спокойная, если нишу занял, то хрен тебя кто из неё выпихнет.
no subject
Date: 2012-10-02 12:18 pm (UTC)Вот если дать возможность заниматься этим (управлением правами) сторонней программе — может быть такая программа и появится. А может и нет.
Нишевая жизнь спокойная, пока ею не заинтересовался кто-либо из гигантов. Вот выкупила МС ДаблСпейс — и лидеру ниши Стэкеру (и ещё нескольким догонялам) пришли кранты. Аналогично с МагикФолдерс, Адобовским менеджером шрифтов, расширителями памяти, драйверами клавиатуры, и разными многими системными утилитами, ставшими частью ОС. Даже антивирусы и брандмауэры прижало.
no subject
Date: 2012-10-02 12:35 pm (UTC)Вообще эта штука должна достаточно естественно интегрироваться с системой подписей под кодом. Потому что доверять примерно на одинаковом уровне всем приложениям данного автора - вполне разумное умолчательное поведение.
no subject
Date: 2012-10-02 12:47 pm (UTC)no subject
Date: 2012-10-02 12:11 pm (UTC)С позиции человека, который знает, чего хочет, и решает _свои_ проблемы - все совсем иначе.
no subject
Date: 2012-10-02 12:21 pm (UTC)no subject
Date: 2012-10-02 12:38 pm (UTC)Однако vi и emacs до сих пор живее всех живых.
Напрашивается простой вывод: качественный нишевой продукт - гораздо более эффективная цель для вложения ресурсов чем ширпотреб.
no subject
Date: 2012-10-02 12:46 pm (UTC)no subject
Date: 2012-10-02 01:27 pm (UTC)C vi - примерно аналогичная ситуация. Отдельных коммерческих клонов я для него не припомню, но в составе других коммерческих продуктов - бывало.
Оч хорошая иллюстрация "а вот придет в нишу большая корпорация".
Что собственно и возвращает к тому с чего начали:
стратегии для корпорации и для потребителя принципиально отличаются.
Там где потребителю хотелось бы стейк с молодой картошкой, корпорации норовят подсунуть соевый белок с крахмалом.
IT имеет ту особенность, что ряд потребностей квалифицированных потребителей вполне удовлетворяются без привлечения корпораций и мегабабла.
Т.е. утверждение "X ненужно, потому что оно непонятно массовому потребителю", применительно к обсуждаемой области, неверно, поскольку есть примеры строго противоположного.
no subject
Date: 2012-10-02 05:40 pm (UTC)И чья это проблема (если вообще существует эта проблема)? И кто и как будет её решать?
Вы мне собираетесь приписать это утверждение?
no subject
Date: 2012-10-03 06:25 am (UTC)И что? На наркоте норма прибыли еще выше, а что наркота, что Word для меня одинаково бесполезны. Ибо не решают моих задач.
И чья это проблема (если вообще существует эта проблема)?
Это вообще не проблема. Это такое свойство мироустройства.
Вы мне собираетесь приписать это утверждение?
Нет, ну что вы, это я тому кто спорил с http://vitus-wagner.dreamwidth.org/784118.html?thread=30758902#cmt30758902
no subject
Date: 2012-10-03 07:45 am (UTC)no subject
Date: 2012-10-02 11:51 am (UTC)Вообще бы стоило заставлять авторов программ на каждое разрешение писать зачем оно надо. И так, чтобы пользователь понял.
В принципе часто бывает, что разработчики под android запрашивают те разрешения, которые им нафиг не нужны. А у пользователя нет даже возможности поторговаться "А вот я тебе этого разрешения не дам. Будешь работать?"
no subject
Date: 2012-10-02 12:29 pm (UTC)Отмазка всегда найдётся. Например, навигационная программа отметит на карте координаты твоих контактов (вдруг ты даже не знаешь, что со своим онлайновым знакомым живёте в соседних домах?) и в день их рождения заменит маркер на букетик цветов.
no subject
Date: 2012-10-02 12:33 pm (UTC)Возможность подпихивания фейковой записной книжки - это для того, чтобы не требовать со всех авторов приложений "делайте так, чтобы ваше приложение не падало, если юзер не дал разрешения на какую-нибдуь опциональную фигню."
no subject
Date: 2012-10-03 05:14 am (UTC)Есть менеджеры разрешений, которые позволяют отрывать их от программы (хотят рута, естественно). Правда, программы могут не понять такого авангардизма.
Еще, в какой-то из альтернативных прошивок можно давать программам фейковые разрешения, чтоб таки работали, но не ковырялись в реальной адресной книге, к примеру. Но поскольку на мой телефон альтернативные прошивки не ставятся - глубоко не искал.
no subject
Date: 2012-10-03 05:42 am (UTC)no subject
Date: 2012-10-03 01:24 am (UTC)если есть рут - то есть 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
Date: 2012-10-16 09:13 pm (UTC)no subject
Date: 2012-10-02 12:20 pm (UTC)... Дайте мне другой яндекс! ...
no subject
Date: 2012-10-02 03:12 pm (UTC)или я даю доступ к контактам или программа не устанавливается, вариант "запустить, но не давать доступ к контактам" не предусмотрен.
во многом (как я думаю) это реверанс в сторону разработчиков софта (например, хотите зарабатывать на рекламе - пока пользователь не согласится на доступ к сети он программу не поставит)
no subject
Date: 2012-10-02 06:48 pm (UTC)На маркете не много приложенией которые дают возможность управлять раздачей прав. Частично эту функциональность пытаются взять на себя антивирусы(пришедшие с десктопов) и фаерволы.
Так как для того чтобы контролировать права надо самому иметь максимум прав, поэтому подобный функционал требует как минимум рута как максимум патчей в kernel & dalvik.
Наиболее похожее на ваши требования из того что мне встечалось это "PDroid - The Better Privacy Protection". вот его тема на xda http://forum.xda-developers.com/showthread.php?t=1357056
И поскольку подобный функционал не востребован массово то и отлаженного продукта работающего всегда и везде пока не получается.
no subject
Date: 2012-10-03 07:47 am (UTC)no subject
Date: 2012-10-16 09:11 pm (UTC)А вот по поводу доверия... Нужно тогда придумывать какую-то более-менее простую модель разрешений, чем сейчас в селинуксах на виртуозах - в том и профессиональный сисадмин не всякий может разобраться слёту, да и, к примеру, к каким каталогам должна программа доступ иметь бывает весьма неочевидно - прилинковало оно какую-то библиотеку - а у той свой конфиг куда-то засунут...
no subject
Date: 2012-10-17 03:50 am (UTC)То что настройки сделанные в процессе сессии должны забываться, если явно не сказано "сохранить", и новая сессия начинаться с неких стандартных - я согласен.
Так что речь идет скорее о произвольно определенных профайлах. Впрочем, их можно свести к per-project, отобразив в файловую систему. Запускаешь IM в каталоге ~/wrk, он взлетает с одними настройками. Запускаешь в каталоге ~/play - с другими.
А что касается "прилинковало какую-то библиотеку, а у той конфиг", то надо такие библиотеки давить. Если тебе нужен конфиг, то делай не библиотеку а процесс со своими настройками, с которыми другие будут через механизм Intents общаться. Правда это тоже во-о-от такая дыра в безопасности.
no subject
Date: 2012-10-20 12:00 am (UTC)То есть "рабочая сессия" - это одно, "развлечения" - это другое, а если я завтра стал рыться в электронике - ставить софт, выставлять для него хоткеи, вытягивать на экран какие-то документы или (ужас какой) ярлыки, задавать правила - в чем открывать те или иные типы файлов, в какие каталоги их на диск сохранять - то я это делаю в отдельной сессии, и это должно жить столько, сколько мне требуется. Что до реализации - на ФС это можно и каталогами с конфигами оформить, конечно. Даже XDG для этого хватит в подавляющем большинстве случаев.
А вот насчет библиотек с конфигами - ну вон fontconfig как пример. Бывает оно. Или не конфиг, а нужные файлы данных в каких-то позициях лежат. Не, если весь мир насилья разрушать - можно и это регламентировать, и, может, так и надо - но, полагаю, здесь можно менее радикальными мерами обойтись, особенно если не быть слишком уж бескомпромиссными и остановиться на удобном соотношении "морока/безопасность".
no subject
Date: 2012-10-20 12:04 am (UTC)А вообще - мы так плавно перейдём к управлению множественными identity, что сейчас свосем поле непаханое.
no subject
Date: 2012-10-20 04:14 am (UTC)Во-первых, это прекрасный пример того, для чего нужна классификация пользователей.
Настройка "что делать при отходе от компьютера - саспендить сессию на энергонезависимое запоминающее устройство или прекращать её" настолько тривиальна, что даже в виндах уж 10 лет как есть. Причем это явно зависит от информационного метаболизма пользователя - в состоянии ли он, оторвавшись от дисплея на несколько часов восстановить в голове контекст сессии или лучше без этого обойтись, и начать новую сессию с теми контекстами, которые у него в голове крутятся.
Во-вторых, мне сразу же захотелось спросить "а что такое выключение машины". Для моей домашней машины характерны аптаймы по нескольку месяцев. У нетбука на кнопку питания повешен suspend-to-disk.