1. PHP / Говнокод #14237

    +149

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if ($result->fetch()) {
        return $result->get('num_flags');
    }
    else {
        return 666;
    }

    Верующий программист :)

    Запостил: xakip, 17 Декабря 2013

    Комментарии (110) RSS

    • И ?? если бы отдал константу DEFAULT_VAL вместо цифери не было бы говнокодом ??
      Ответить
      • Потому что если бы он объявлял константу она бы назвалась не DEFAULT_VAL а DEVIL_VAL
        Ответить
    • Может этот код выдаёт права, которые нужно назначить файлу? Тогда вполне себе нормальный код. Единственный минус - магическая константа. Но если эти 6 строчек - код метода к примеру getFileAccess - тогда вроди и не особо магическая
      Ответить
      • > Может этот код выдаёт права, которые нужно назначить файлу?
        Не, число же не восьмиричное. Да и 666 не особо хорошие права, больно уж свободные. Обычно все-таки ставят 664 или даже 644.
        Ответить
        • Виноват, Борманд, есть ли способ перенести элементы управления окном с левого края на правый (Ubuntu ) ? А то как-то неудобно ( Линукс минт жутко глючил и тормозил, пришлось снести, к большому сожалению. В нем меня все устраивало.
          Ответить
          • Поправь в реестре консолькой:
            gsettings set org.gnome.desktop.wm.preferences button-layout ':minimize,maximize,close'
            Как вариант - можно поправить через гуёвый редактор реестра dconf-editor.

            http://askubuntu.com/questions/44187/how-do-i-move-the-unity-title-bar-buttons-to-the-right-side
            Ответить
            • О, спс большое! )
              >> в реестре
              Тонко.
              Ответить
              • Ну в гноме вроде и правда реестр есть. Не в голых текстовых конфигах валяется
                Ответить
                • имхо давно пора бд подобную структуру прикрутить вместо конфигов в линупсе. быстрее будет оса воркать
                  Ответить
                  • Так большинство программ читают конфиги раз в своей жизни.
                    Ответить
                    • > Так большинство программ читают конфиги раз в своей жизни
                      Ага, а потом конфиг самоуничтожается вместе с репозиторием программы.
                      Ответить
                  • > бд подобную структуру прикрутить вместо конфигов в линупсе
                    Да вот хуй бы знал, стоит ли... Конфиги же в основном читаются при старте прог, да и не так уж долго парсятся на современном железе. Ну да, будет на несколько миллисекунд быстрее грузиться... А оно надо?

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

                    Вобяз потребуется встроенное и неотключаемое версионирование (не банальные снепшоты аля .reg, а полноценный контроль версий), чтобы можно было откатывать кривые изменения, или что-нибудь тестить или ставить без боязни запороть все к хуям.

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

                    Тогда профит может быть и будет...
                    Ответить
                    • >И в идеале нужен в какой-то форме контроль полномочий. Чтобы приложения не могли править (и даже смотреть) конфигурации друг друга, если им это не было явным образом разрешено.

                      > Тогда профит может быть и будет...
                      В таком виде и на винде профит будет. Только не заебет ли вопросами?
                      Ответить
                      • > Только не заебет ли вопросами?
                        Ну если сделать грамотные дефолты - не заебет.

                        Например каждой паре (пользователь; приложение) выделяем приватную ветку, в которой они могут делать что хотят. Другие приложения и пользователи к ней доступа не имеют, если исходное приложение не разрешит. Ну разве что кроме специально помеченного софта в духе regedit'а. И никаких вопросов не будет.

                        А насчет вопросов о том, как назвать коммит - обязать проги, которые вносят изменения в "реестр" работать в транзакциях, и давать каждой из них название. Например "установка проги firefox" или "изменение разрешения экрана" или "прописал виря в автозагрузку". Тогда пользователю не придется все это вбивать, но он всегда сможет понять, что, зачем, и какой прогой было изменено...
                        Ответить
                        • >Ну если сделать грамотные дефолты - не заебет.
                          Инфа скольки %?

                          Ну названия будут даваться на отъебись, а какой будет размер лога транзакций, если прога пишет в реестр раз в 5 секунд?
                          Ответить
                          • > Инфа скольки %?
                            А х.з. я же пока не продумывал концепцию, и запиливать ее не хочу. Просто обсуждаем ее с тобой. К концу дискуссии определимся ;)

                            > если прога пишет в реестр раз в 5 секунд?
                            Можно сделать для веток флаг запрета логирования для таких случаев. Вешаешь на ветку, и она не логируется. Ну и флаг нетранзакционности до кучи, если нам похуй на сохранность этой ветки при жестком ребуте, но нужна большая скорость записи...

                            > названия будут даваться на отъебись
                            Ну с этим ничего не поделать. Но по крайней мере какая-нибудь айдишка или название этой уебанской проги останется в журнале. Ну и дата изменения.
                            Ответить
                            • >К концу дискуссии определимся ;)
                              угу :) получится как с самим реестром - идея может и хороша, но детали (что говнопрога может засрать весь реестр) ее убивают.

                              >Можно сделать для веток флаг запрета логирования для таких случаев.
                              Дрейф в сторону слива.

                              Что-то из этого сделать можно, а что-то не реализуемо. Изолированные настройки можно было бы попробовать. Еще бы сделать легкий перенос отдельных настроек при переустановке Шиндовс.
                              Ответить
                              • > может засрать весь реестр
                                Она и сейчас может это сделать ;) Так что хуже уже не будет. На крайний случай можно замутить квоты.

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

                                > а что-то не реализуемо.
                                А что именно нереализуемо?

                                > Еще бы сделать легкий перенос отдельных настроек при переустановке Шиндовс.
                                Это да, интересно было бы. Но тут куча проблем... Настройки то перенести можно, но будут ли они иметь смысл на свежей оси? Те же пути могут оказаться сбитыми и т.п. Каких-то зависимостей не будет установлено. Короче тут явно нужна поддержка со стороны самого софта.
                                Ответить
                                • >Почему?
                                  Я не пойму идею - разные настройки для разных веток?

                                  >А что именно нереализуемо?
                                  От многого пахнет фейлом вроде журналирование всех подряд изменений.

                                  >Короче тут явно нужна поддержка со стороны самого софта.
                                  Будет лет через 10 мб. Хотя с UAC некоторые до сих пор не дружат, а некоторые его тупо вырывают с мясом, ставя софт в %appdata%

                                  Вот какого черта у меня автоматом добавляется английская раскладка?
                                  Ответить
                                  • > Я не пойму идею - разные настройки для разных веток?
                                    Да. И менять их может только владелец ветки, т.к. он знает для чего она нужна и как ее будут юзать.

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

                                    Понятно что всякую хуйню, типа recently used и статистики не стоит логировать.

                                    А вот для ассоциаций файлов, автозапуска, настроек всякого софта журнал явно не повредит.
                                    Ответить
                                    • >Ну большая часть реестра же очень редко меняется.
                                      А если прога решит писать настройки раз в 5 секунд, что делать бум?

                                      >А вот для ассоциаций файлов, автозапуска, настроек всякого софта журнал явно не повредит.
                                      Ну это вообще реализуется внешним софтом. Есть автобекапилки реестра.

                                      Вспомнил. У одного меня настройки сохраняются в реестре только при выходе из винды?
                                      Ответить
                                      • > А если прога решит писать настройки раз в 5 секунд, что делать бум?
                                        Хм, да, кривожопые проги это проблема. Может квоты тогда делать не на объем данных в реестре, а на объем проведенных транзакций? Типа 5 метров в месяц (если журналы держатся месяц) на прогу, если юзер не согласился на большее.

                                        Если прога выжирает лимит - сама виновата.

                                        > Есть автобекапилки реестра.
                                        Ну да, это тоже решает проблему :)
                                        Ответить
                                  • >> Будет лет через 10 мб.

                                    Ну как, появилось?
                                    Ответить
                    • >И в идеале нужен в какой-то форме контроль полномочий. Чтобы приложения не могли править (и даже смотреть) конфигурации друг друга, если им это не было явным образом разрешено.

                      Ну как бы Mandatory Access Control уже изобрели и даже запили несколько реализаций.
                      Вообще хотелось бы видеть ограничения для программ примерно как в андроиде. И ведь сейчас это реально сделать - взаимодействие через dbus настраивается (и вроде работает с selinux), доступ к конфигам, .gpg и прочим нужным вещам запрещается.
                      Для доступа в ФС можно запилить диалог, который выполняется в отдельном процессе и может разрешать приложения читать/писать определенный файл. Но как быть с запуском вида vlc yast-another-pron.mkv я хз.
                      Ответить
                      • > Mandatory Access Control уже изобрели
                        Ну вот в виндовом реестре он на уровне пользователей. А хотелось бы на уровне пары (пользователь; приложение).

                        > Но как быть с запуском вида vlc yast-another-pron.mkv я хз
                        Ну как вариант - чтобы проги могли передавать доступ к файлу или ветке реестра. Т.е. если cmd или bash имеет доступ к файлу, оно может временно, не меняя флагов на фс, разрешить vlc поюзать этот файл.
                        Ответить
                        • >А хотелось бы на уровне пары (пользователь; приложение).
                          ну это не помешает какому-нибудь огороженному приложения вызвать rm -rf /*. Лучше запихать приложение в домен и не выпускать из него и все дочерние процессы тоже будут ограничены именно этим доменом

                          *Ушел курить про контроль доступа
                          Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Сегодня день некропостинга на говнокоде?
                            Ответить
                          • Вся история «Windows» — костыли.

                            Начиналась «Windows» как графическая оболочка для «DOS». Т. е. по сути как чисто клиентская питушня.

                            Потом появилась «NT» — серверная система, но сделанная по мотивам клиентской питушни: с гуём, сидящим глубоко в кишках, даже в сетевые сокеты зачем-то нужно передавать дескриптор окна.

                            Потом слепили 95 — домашнюю однопользовательскую систему, но с API, похожим на «NT».

                            После выпуска Me однопользовательские системы делать перестали. Все последующие системы «для дома» — стали делать на основе «NT» — по сути многопользовательской серверной системы. Даже если XP/Vista/7/8/10 называется «Хоум Эдишон», она всё равно многопользовательская.
                            Ответить
                            • Изначально GUI не было в кишках NT, да и сама NT рассматривалась как универсальная система с разными API.

                              Где-то к 4.0 стало понятно, что всё равно писать все будут под Win32API, а переключать GDI туда-сюда (в юзерспйс и обратно) -- дорого!
                              Тогда-то и занесли GDI в kernel space. Само ядро конечно про GUI ничего не знает, но win32k.sys -- драйвер для реализации win32 в кренелй спейсе -- знает

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

                            Можно прям галочки.
                            ☑ Я согласен, что эта прога может поиметь мой комп.
                            ☑ Я согласен, что эта прога может испортить ось.
                            ☑ Я согласен, что эта прога может повредить работоспособность других программ.
                            ☑ Я согласен, что изменения, внесенные этой прогой будут необратимыми и не будут отменены после ее удаления.
                            ☑ Я в здравом уме и твердой памяти хочу запустить эту прогу и осознаю все возможные последствия.
                            Ответить
                            • Можно, но по достижении критической массы на них будут кликать не глядя, как на запросы uac при установке софта.
                              Ответить
                              • > будут кликать не глядя, как на запросы uac
                                Я согласен. А с другой стороны, может быть и не будут, если таких прог будет мало.

                                Ну не требовать же разрешения от разрабов оси, как это делали в симбиане?
                                Ответить
                                • Можно галочку дублировать, располагать каждый раз в случайном месте или предлагать пользователю (не)сложный ребус.

                                  ☑ Я согласен, что эта прога может поиметь мой комп.
                                  ☑ Я не согласен, что эта прога может поиметь мой комп.
                                  ☑ Я согласен, что эта прога может поиметь мой комп, но не надо её устанавливать.
                                  ☑ Я знаю, что эта прога может поиметь мой комп, и хочу её установить.
                                  ☑ Я знаю, что эта прога может поиметь мой комп, и хочу её не установить.
                                  ☑ Я знаю, что эта прога может поиметь мой комп, и категорически против завершения процесса её неустановки.
                                  Ответить
                                  • > предлагать пользователю (не)сложный ребус
                                    http://www.gamedev.ru/files/images/pilot.jpg
                                    Ответить
                                    • Там на столе стоит желтый для
                                      double penetration;
                                      Ответить
                                    • Помню этот долбанный холодильник - сколько нервов на него извел
                                      Ответить
                                      • > сколько нервов на него извел
                                        Я человек добрый, помогу тебе извести их до конца побороть твой страх перед холодильником. Держи:
                                        http://jsfiddle.net/5uNEW/1/
                                        Ответить
                                        • За одно и синтаксис жабы-пхпешницы посмотрю
                                          Ответить
                                          • > За одно и синтаксис жабы-пхпешницы посмотрю
                                            Да этот код можно сразу на гк выкладывать ;)
                                            Ответить
                                          • > жабы-пхпешницы
                                            Ай-ай-ай, фу-фу-фу
                                            Ответить
                                        • На этот раз я был старше и с вышматом за плечами. flawless victory
                                          Ответить
                                          • > flawless victory
                                            Какой алгоритм придумал?
                                            Ответить
                                            • конкретного не придумал, просто сначала вывел к симметричность по диагонали - остальное - элементано.
                                              Кстати, это идея. Надо придумать авторешатель
                                              Ответить
                                              • > конкретного не придумал
                                                Ну когда я первый раз в нее играл - я тоже рандомом натыкал ;)

                                                А сейчас, в принципе, алгоритм очевиден.

                                                Если прокликать строчку и столбик (7 кликов, т.к. в пересечение тыкаем 1 раз), то переключится всего один флажок на их пересечении.

                                                Если выщелкивать все флажки таким способом, то получается, что в каждую клетку надо тыкнуть столько раз, сколько она "видит" включенных флажков (клетка "видит" свою строчку, свой столбик и саму себя). Т.к. больше одного раза кликать бессмысленно, берем все по модулю 2.

                                                И получаем тупейший алгоритм: ищем клетку, которая "видит" нечетное количество флажков и тыкаем в нее.
                                                Ответить
                                                • Три года я решал эту головоломку, но наконец решил и делюсь готовым решением. Каждый раз в начале уровня положение переключателей выбирается случайно, так что тупую последовательность нажатий не запомнишь. Но решение существует. Подойдя к холодильнику, запомните (а лучше - ЗАПИШИТЕ!), какие переключатели стоят ВЕРТИКАЛЬНО, и нажмите их все по очереди. Уточняю: не те, которые станут вертикально после каждого вашего действия, а те, которые были вертикально В САМОМ НАЧАЛЕ. После этого вы, скорее всего, получите симметричный узор из переключателей (если нет - вероятно, вы ошиблись, но это поправимо). Теперь снова запоминаем, какие переключатели ТЕПЕРЬ стоят вертикально, и по очереди нажимаем. Если всё сделано правильно, вы получите все переключатели горизонтально, то есть именно то, что требуется. Если нет, идём по третьему заходу (больше трёх мне ещё не требовалось ни разу, но если не получилось - очевидно, вы запутались - идите по четвёртому заходу и далее до результата).
                                                  Ответить
                                                  • > больше трёх мне ещё не требовалось ни разу
                                                    Хм, интересно, а можно ли это формально доказать?

                                                    Так то можно тупо прогнать прогой все 65536 вариантов и убедиться или опровергнуть. Но это читерство ;)
                                                    Ответить
                                                    • > Но это читерство
                                                      Прогнал, проверил. Двух раз всегда достаточно. Три не нужно никогда, ну если я в проге не накосячил ;)
                                                      Ответить
                                                  • > больше трёх мне ещё не требовалось ни разу
                                                    Черезжопное доказательство на хаски:
                                                    http://ideone.com/BjP6j7
                                                    Ответить
                                                • нашел алгоритм для поля четной размерности да премлимое количество шагов

                                                  100*100 решил за 9960 ходов
                                                  Ответить
                                                  • > для поля четной размерности
                                                    > Пока я искал его уже Хаски поведал)
                                                    Да, для нечетной (по крайней мере для трех) он зависнет на втором проходе:
                                                    http://ideone.com/psR0LW

                                                    А чем мой алгоритм не нравится? Он гарантированно решает за не более чем N*N кликов для поля N*N :)
                                                    Ответить
                                                    • Аглоритм в среднем решает на n*n ходов (шас статистику набирал)
                                                      твой - за (2*N) * количество чекнутых
                                                      в итоге твой в хучшем случае решает за 2*n*n*n в среднем - за тот же n*n*n а мой за N*N
                                                      Ответить
                                                      • > твой - за (2*N) * количество чекнутых
                                                        Откуда столько кликов? Может ты его не до конца дочитал?
                                                        for (int i=0; i<N; i++) {
                                                            for (int j=0; j<N; j++) {
                                                                bool odd = get(i, j);
                                                                for (int k=0; k<N; k++) {
                                                                    odd ^= get(i, k) ^ get(k, j);
                                                                }
                                                                if (odd)
                                                                    click(i, j);
                                                            }
                                                        }
                                                        Не более N*N кликов и ровно N*N*(2*N+1) взглядов на клеточки.

                                                        И работает на любых полях.
                                                        Ответить
                                                        • > И работает на любых полях.
                                                          Хуй. Мой тоже виснет. Может быть нечетные поля тупо неразрешимы?
                                                          Ответить
                                                          • Я уже 3 А4 исписал - ответа пока нет)
                                                            Ответить
                                                            • > Я уже 3 А4 исписал - ответа пока нет)
                                                              Короче надо доказывать, что для нечетных полей нет алгоритма, который переключит ровно 1 флажок. Ибо если такой алгоритм есть - то из него вытекает разрешимость любой ситуации. Если же такого алгоритма нет - множество всех состояний распадется на несколько подмножеств, недостижимых друг из друга. И задача становится разрешимой не во всех случаях (что мы и видим на опытах).

                                                              Для четных полей такой алгоритм существует - "прокликать строчку и столбик, тыкая в пересечение только один раз". Поэтому они разрешимы всегда.
                                                              Ответить
                                                        • Я ссыль вообще заметил - настолько я увлечен)

                                                          ты просто писал
                                                          > Если прокликать строчку и столбик (7 кликов, т.к. в пересечение тыкаем 1 раз), то переключится всего один флажок на их пересечении.

                                                          я дальше читать не стал - сделал вывод и пошел кодить)
                                                          Ответить
                                                    • Осталось понять почему он виснет.)
                                                      Ответить
                                                    • Скажи мне, ирод, ты по что сделал код таким не мутабельным?)))

                                                      Думал твой переписать для 5 на 5 и потыкать - ан нет
                                                      Ответить
                                                      • > Думал твой переписать для 5 на 5 и потыкать - ан нет
                                                        Тыкай: http://www.bormand.tk/
                                                        Ответить
                                                        • > "Как ты это сделал?!"
                                                          неси зачётку!
                                                          Ответить
                                                        • Да я уже формочку сделал, спс
                                                          Ответить
                                                        • Таки пришел я факту того, что 5*5 всегда можно свести к

                                                          #~~~~
                                                          ~~~~~
                                                          ~~~~~
                                                          ~~~~~
                                                          ~~~~~

                                                          А оттуда уже все, никак
                                                          Ответить
                                                          • > всегда можно свести
                                                            замечание: либо не всегда, либо факт сведения не влияет на разрешимость
                                                            Ответить
                                                            • зануды. Либо можно решить, либо сводится)
                                                              Ответить
                                              • Пока я искал его уже Хаски поведал)
                                                Ответить
                                    • Да вы медвежатник, шеф!
                                      Ответить
                • даа
                  помнится на старой работе сделал фичастый кросс-платформенный "реестр"

                  без откатов и версионности, конечно, но реально кросс-платформенный, типизированный, с сетевым доступом, с листенерами изменений, вешаемых на узлах/листьях дерева

                  с бекендом под виндой в виде родного реестра, и под линухом в виде демона с бд в виде набора xml-файлов (корневой xml мастер-файл, в котором произвольную ноду - которая будет часто обновляться - можно сослать в отдельный файл)
                  ну и сетевой доступ тоже как бекенд
                  клёво было....
                  Ответить
                  • > листенерами изменений
                    Да, вот это я забыл. Очень годная фишка, чтобы не перечитывать весь конфиг по таймеру/изменению файла, и не пинать лишние утилитки...

                    > без откатов и версионности, конечно
                    Ну хотя бы лог операций поди можно было включить? :)
                    Ответить
                    • Так файловая система позволяет получать оповещения при изменении файла.
                      Так что можно завести по файлу на параметр. Может не очень быстро работает, но зато быстро пишется. директории за путь, имена файлов за ключи, содержимое за данные. тут тебе и версионность в некоторые фс встроена, бекапы. и быстрый поиск файлов, а не перебор за О(n). и даже права. и даже кеширование. и самовосстановление
                      Ответить
                      • >Так что можно завести по файлу на параметр.
                        Ололо диванный кукаретик.

                        >а не перебор за О(n)
                        Это где?
                        Ответить
                        • ну в том же текстовом ini-файле для поиска ключа может потребоваться O(n)
                          Ответить
                          • > ну в том же текстовом ini-файле для поиска ключа может потребоваться O(n)
                            Ну так кто мешает загрузить его в хешмап за O(n) и искать за O(1)?
                            Ответить
                            • А вот я может хочу сразу хранить хешмап на диске. У меня может памяти не хватает и часто их приходится выгружать. на ребуилд хешмапа каждый раз для того чтобы загрузить 3 ключика у меня нет времени
                              Ответить
                              • Юзай базу данных ;)

                                ФС не самое лучшее средство для таких целей. Они не особо любят много файлов в одном каталоге, имеют ограничения по длине пути и т.п..

                                Хотя да, такая схема работала в реестре гнома 2.
                                Ответить
                        • > Ололо диванный кукаретик.
                          Считай что я писал зеленым. Под линупсом я бы взял Redis
                          Ответить
                      • > Так файловая система позволяет получать оповещения при изменении файла.
                        А ничего, что количество watcher'ов ограничено?

                        > и даже права.
                        Права не совсем такие, как хотелось бы. На уровне юзеров. Ну разве что по-андроиски поступить: одна прога - один uid.
                        Ответить
                        • > А ничего, что количество watcher'ов ограничено?
                          Ну для чего-то может и не чо
                          Ответить
                        • >одна прога - один uid.
                          Это как?
                          Ответить
                          • > Это как?
                            Ну там для каждой софтины при установке заводится свой "пользователь" (это в линухе практически бесплатно - домашная папка, да где-то хранить целое число с uid'ом "юзера"). За счет этого как раз проги не могут лезть в папки друг к другу.
                            Ответить
                            • А размер uid-а какой?

                              >Ну там для каждой софтины при установке заводится свой "пользователь"
                              Эт на серваке чтоли? Потому что по другому нормальную изоляцию не сделать.
                              Ответить
                              • > Эт на серваке чтоли?
                                Ты не поверишь, но я сейчас рассказывал об андроиде ;)

                                > размер uid-а какой
                                32 бита вроде. Ну по крайней мере sizeof(uid_t) выдает 4 байта даже на x86_64.
                                Ответить
                                • да и на серваках, и на декстопах, часто создается специальный пользователь под демона
                                  Ответить
                                • Хороший подход. А что делать с прогами, которые должны лезть в чужие настройки? И как пользователи определяют, нужно лезть в чужие настройки или нет?
                                  Ответить
                                  • > А что делать с прогами, которые должны лезть в чужие настройки?
                                    Ну во-первых на андроиде для общения между прогами есть вполне кошерное IPC, и лазить в папки это уже самый крайний случай. Во-вторых прога вроде бы может поменять права на какой-нибудь свой файл, чтобы другая прога могла его трогать. Но я это не проверял.

                                    На своем же серваке можно просто никсовыми правами на уровне фс разрулить кто именно и куда может лезть. Так то в линухе и ACL есть, как в винде, если не хватает классической owner-group-other.

                                    > И как пользователи определяют, нужно лезть в чужие настройки или нет?
                                    На андроиде, емнип, никак. На серваке - админ само собой решает что и как должно быть.
                                    Ответить
                      • ну во-первых, там стояло древнее ядро, которое не очень умело в оповещения при изменении файла (спасибо замечательной компании advantech)
                        во-вторых, файл на каждый числовой параметр - это плохое использование ресурса, особенно когда вместо диска - флешка со всеми вытекающими на 128М под всё
                        ну и в третьих, поддерживать такие конфиги не очень приятно - особенно, когда надо "закоммитить" в "реестр" сразу пачку настроек - в т.ч. удаления ключей

                        а так собсно весь вопрос в ещё одном бекенде, всего-то
                        Ответить
                        • Ты тогда делал - серьёзно задумывался о отдаленно похожей реализации, что я предложил?
                          Ответить
                          • взять файловую систему как уже сделанную отлаженную схему хранения древовидных данных? одна из первых мыслей, чего такого
                            Ответить
                    • > лог
                      ну т.к. там в любом случае клиент-сервер, то на сервере можно допилить что угодно
                      не вставала задача транзакционности просто, acid был ни к чему
                      Ответить
                  • под линупсом развернуть реестр в файловой системе через fuse и расшарить его через httpd
                    Ответить
                  • >с листенерами изменений
                    Вполне могут быть в NT
                    Ответить
          • Бля, открой для себя уже форум.
            Ответить
    • Припарковавшись у своего дома, я протянул брату свою сумку.
      Ответить

    Добавить комментарий