Прошу помощи в создании программы: MountManager 1.0.0

    Долго думал писать или не писать этот топик, но всё-таки решился, ведь все свои :) Надеюсь откликнетесь. Я как-то писал о своём небольшом проекте MountManager, максимальная версия которого 0.2.6. Эта программа вошла в репозиторий Ubuntu и об этом я писал здесь. На kde-apps.org у неё рейтинг 83 и 3800 закачек. Программа переведена на испанский, турецский, польский, португальский, чешский и английский. Каждую неделю мне кто-нибудь из иностранцев присылает баг репорт или пожелания. А некоторые даже пишут рецензии с многими комментариями(Пример). Эти факты говорят мне о том, что подобная программа действительно кому-нибудь да нужна, но одному управлять этим проектом очень тяжело. Поэтому я решил попросить помощи у Вас, уважаемые хабравчене.


    Подробнее о проекте


        Для разработки я использую GoogleCode и вот страничка проекта: LinuxTuner Project. Раньше у меня были грандиозные планы. Я хотел создать GUI для всего и вся, чтобы Linux пользователю вообще лезть в консоль и в файлы не пришлось, но конкуренты задавили и всё это уже сделали до меня :) Но раз уж взялся за MountManager, то доделаю его до конца, решил я. Вот как выглядит нынешний интерфейс MountManager:

    Другие скриншоты MountManager на PicasaWeb

        Но этот интерфейс я планирую изменить в лучшую сторону, но как я ещё не решил. Может быть, какие-нибудь интересные идеи подкинете мне Вы? :) Ну а вот список тех функций, которые пока что пришли в голову мне и пользователям программы и которые я постараюсь реализовать в этом проекте:
    • Установка опций автомонтирования
    • Возможность монтировать подключенные устройства
    • Монтирование шар, образов(Iso, Wine и др.)
    • Плазманоид KDE4(Более расширенный, чем стандартный)
    • Плагин для панели Gnome
    • Поддержка Fuse, LVM
    • GUI редактор правил Udev
    • Шифрование разделов
    • Возможно, форматирование разделов в разные ФС
    • Поддержка разделов на Fake Raid

    Какая помощь мне бы пригодилась

    • Идеи. В первую очередь я бы хотел попросить поработать ваше воображение и придумать какие-нибудь функции, которые мне стоило бы добавить в эту программу. В Linux существует много технологий, связанных с работой с дисками и другими storage-устройствами. И большинство этих технологий я бы хотел встроить в эту программу.
    • Перевод приложения. К сожалению, мой английский очень слабый. Качественно перевести приложение я не могу. Поэтому я был бы очень признателен, если кто-нибудь отозвался и я мог бы ему периодически присылать сообщения с шаблоном: «Не могли бы Вы перевести эту фразу на английский язык, пожалуйста: ....». Заодно и английский подучу. :)
    • Помощь в понимании. Если я буду слабо понимать ту технологию, которую пытаюсь встроить в программу, то это может привести к весьма печальным последствиям для пользователя. Так как скорее всего программа будет делать не то, чего хочет пользователь. А нынешнии технологии бывают настолько сложными, что без помощи я не в сих в них разобраться.
    • Документация. Очень мало разработчиков любят писать документацию к собственным программам и я также ненавижу это занятие. Поэтому если кто-нибудь поможет мне в этом, я буду безумно ему благодарен.
    • Советы в программировании. Я ещё начинающий программист. Мой код ещё очень слаб, не красив и не продуктивен. Было бы просто прекрасно, если бы Вы помогли мне писать правильный код. Программа будет писаться на C++ с использованием Qt4.


        Кстати, программа пишется для облегчения жизни пользователя Linux, поэтому если поможете мне, то поможете многим её будущим потенциальным пользователям! ;)

        Если Вы по доброте душевной решили мне помочь, то напишите, пожалуйста по какому пункту. Я Вас запомню и по мере необходимости буду Вас беспокоить. Вместе мы изменим Linux мир! :) Спасибо.

    Поделиться публикацией
    Похожие публикации
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама
    Комментарии 95
    • +11
      Могу помочь с переводом.
      • 0
        Спасибо, зафиксировал. Буду писать Вам в ХабраЯщик, если Вы не против.
        • +2
          если надо, я также могу помочь с переводом
          • 0
            Это очень хорошо! Значит можно разделить объём работы пополам. Я вам буду поочереди посылать просьбы. Надеюсь от этого, перевод не пострадает.
            • 0
              Закинь тексты лучше сюда, у тебя же размещён проект там:

              https://translations.launchpad.net/mountmanager
              • 0
                Я даже и не знал о подобной функциональности. Но там лучше просить перевод на другие языки с английского.
                • +2
                  Ну, твоё дело. Там переводчиков в десятки раз больше чем здесь.
                  ЗЫ «Мастер настройки шар» звучит слишком жестоко :)
                  • 0
                    Я попозже туда выложу.
                    На ЗЫ: Ха, действительно :)))
              • +3
                Если есть необходимость, то я могу помочь с переводом на немецкий.
                • 0
                  Ого, классно! Я обязательно Вас запомню и когда программа будет создана напишу Вам.
                  • +2
                    а Вам еще и украинский не надо?: Р
                    • +1
                      Надо, надо! Я даже и не ожидал, что у нас тут столько полиглотов ;) Вас я тоже запомнил ;)
                      • +3
                        мы не полиглоты, просто живем на Ураине. записывай и меня в переводчики на «рідну мову» )))

                        и в копилку идей. иногда требуется зашифровать раздел или LVM, возможно стоит внести данный функциона в софтину?
                        • 0
                          Записал :) Да, стоит, записал уже в список будущих функций.
                          • 0
                            если не большими порциями и не тексты и кнопочки всякие, то с польским могу помочь =)
                            • 0
                              в смысле, если не тексты огромные, а какие-нибудь кнопочки или настройки меню, то с удовольствием :)
                              • 0
                                Хорошо, я постараюсь писать поменьше :)
                    • 0
                      я тоже
          • +2
            Гляньте на интерфейсы всяких партишен манагеров и разбивателей. Вполне логично будет представить примерно так же — цветные полоски и на них написаны точки маунта. Контекстные меню и т д. При этом думаю не стоит уходить от дерева девайсов, это не будет лишним, просто аккуратно сочиать надо.
            • 0
              Насчёт полоски я подумаю. Там же они используют полоску в основном для того, чтобы показать количество занимаемого места от всего hdd. От дерева, похоже никак не откажешься :) Не могу придумать как без него обойтись.
              • 0
                Полоска это наглядно, не обязательно делать сектора пропорциональной объему раздела. Просто метафора полоса=диск сектор=раздел очень и очень удачна на мой взгляд.
                • 0
                  Хм, ну а почему тогда и не сделать какую-нибудь небольшую аккуратненькую полоску тогда? :) Если будет хорошо смотреться, то обязательно сделаю. Спасибо за идею! ;)
            • +7
              Добрый день

              Могу помочь в создании документации. Есть опыт написания мануалов к программам.
              • +1
                Я даже и не надеялся найти такого человека, честно говоря. Это большая редкость в Open Source сфере, по-моему. Спасибо Вам огромное! Но Ваш черёд скорее всего настанет только после написания программы, потому что я многое планирую изменить в интерфейсе.
                • 0
                  Ничего страшного :)
                  Будем ждать :)
                  Как будет готова программа, сообщите в каком виде Вы хотите видеть мануал. Будет это пдф или же он-лайн хелп…
                  Ждем с нетерпением новой версии :)
                  • 0
                    PDF предпочтительнее ИМХО. Иногда интернета нет, а программа по F1 открывает URL в браузере.
              • 0
                Был бы рад помочь. Возможно окажусь полезным по части идей и программирования
                • 0
                  Идеи можно уже сейчас писать :) Насчёт программирования буду Вам писать периодически.
              • +1
                GParted умеет монтировать разделы… правда там не реализована поддержка LVM пока
                • 0
                  Спасибо за крайне полезную информацию. Весьма в тему.
                • 0
                  Могу помочь с юзабилити. Только линукса нет :)
                  • 0
                    Ну это не важно для такого вопроса, по-моему :) Спасибо, обращусь.
                    • +2
                      VirtualBox в зубы и вперёд :)
                    • +1
                      Идеи.
                      В OpenSuSE есть такая фиговина: она позволяет при установке создать шифрованный раздел и, например, установить туда /home. В некоторых дистрибутивах так сделать нельзя. Было бы неплохо чтобы в программе можно было не только задать опции монтирования раздела, но и зашифровать его из гуёв и форматнуть в нужную ФС.
                      Хотя конечно к монтированию это фича имеет отношение постольку поскольку, но всё-таки… Было бы удобно.
                      • 0
                        Я уже подумываю изменить название программы :) Идея хорошая. Записал в ToDo.
                      • 0
                        Ваша прога ни в какую не видит раздел с вынь2к3… а плохо ( приходится лезть в консоль и ручками
                        • 0
                          Я в первый раз слышу это слово :) Посмотрю в интернете что это и возможно добавлю эту функцию. Спасибо :)
                          • 0
                            соре за сленг, имел ввиду ntfs раздел, раз в год, два в пятилетку приходится винду (виндовс 2003 сервер) запускать
                            • 0
                              Программа не видит NTFS раздел? О-о Странно, вот честное слово с этим проблем точно не должно быть. У всех видит, я спрашивал.
                              • 0
                                ниже гляньте, ошибся, прошу прощения )
                                • 0
                                  Флешка с ntfs, подмонтированная через ntfs-3g (fuse) определяется как vfat.

                                  $> mount
                                  /dev/sdb2 on /media/sdb2 type fuseblk (rw,allow_other,blksize=4096)
                          • 0
                            а, еще не распознает разделы на fake raid (nvraid например)
                            • 0
                              кстати, вот я лоханулся… предыдущий баг не в счет ) так как нтфс как раз на фейк рейде
                              • 0
                                Надо было этот комментарий прочитать первым :) Теперь понятно. Хорошо, сделаем ;)
                            • +1
                              и кстати, лучше идите в сторону упрощения интерфейса, это не винда где «некст некст чекбокс инсталл финиш», если понадобится едвансед — проще в консольке
                              когда-то в репах была простая как двери прога, говорила «я вижу н разделов», отображала их в виде кнопачек, нажимаешь — маунт, еще раз, анмаунт просто и удобно
                              вы можете пойти в сторону шаблонов, как-то продумать фейс чтоб и просто было и нажатием 1-2 кнопки можно было и в ро смаунтить, и с ноексек… ну а адвансед — как бонус, не стоит на нем зацикливаться
                              • 0
                                Да, конечно, Вы правы. Зря я понаделал всякие диалоге с next'ами. Но когда начинаю придумывать аж голова лопается :)
                                • 0
                                  кстати, тут здорово помогает трезвая оценка идеи или плана действий, в этом я могу помочь и, может, каких-то фишек накидать, обращайтесь если че )
                                  • 0
                                    Мне бы это уже сейчас пригодилось :) Я собираюсь разработать интерфейс ещё до начала написания кода. Какой бы внешний вид придумали бы для вот этого:
                                    1. Вывод списка всех устройств(у меня дерево)
                                    2. Показ всех возможных опций(у меня два таба со списком опций)
                                    3. Быстрое монтирование устройств(у меня надо нажать на правую кнопку на мыши на устройстве в дереве и выбрать «Монтировать»)
                                    • 0
                                      1. кнопочки, люблю кнопочки, деревья надоели ей Богу )
                                      2. а это и не нужно по сути, разве что как бонус, гайд для новичков
                                      3. нажал на кнопочку )
                                      • 0
                                        У меня возникла такая идея, которая получилась из комбинации вашей идеи и вышесказанной.

                                        Создать такую полоску, поделённую на количество частей, равную количеству разделов. Каждую такую часть раздела сделать кликабельной. Если фон части зелёный — устройство примонтировани, иначе — белую или др. цвет. Как вам?
                                        • +1
                                          соре что пропал, пришлось наконец менять БП в компе, а то ко всей грядке девайсов еще и сканер, вся юзб подсистема рухнула
                                          вот собсно, 3 минутки карандашом img261.imageshack.us/img261/8708/outz.jpg
                                          • 0
                                            Спасибо! Весьма интересный интерфейс. Я оттуда возьму некоторые штучки. Например: иконки Windows, Linux и т.п. буду рисовать у разделов, чтобы пользователю было ясно что это за раздел; до этого автомоунт у меня был для всех по default так сказать, но теперь я добавлю checkbox.

                                            А после нажатия стрелочки вниз под каждой кнопкой появляется диалог с опциями?
                                      • +1
                                        Макет интерфейса до кода — это правильный ход мысли. Еще лучше — до макета составить подробный список задач, которые вы хотите решить. Не думайте пока о кнопках, деревьях и прочем оформлении — только о логике работы программы.
                                        • 0
                                          Для меня такой подход новый, но я попробую.
                                          • 0
                                            Кроме списка задачь полезно составить и список объектов, с которыми вы хотите работать, опять же, пока абстрактно. Например, «дисковые накопители», «файлы конфигурации» и так далее.

                                            Определив список объектов управления и список решаемых задач, вам будет гораздо проще составить список функций приложения. После этого можно начинать готовить макет :)
                                            • 0
                                              Спасибо за помощь. Я попробовал. И вправду проще ;)
                                              • 0
                                                На здоровье! Успехов! :)
                                • 0
                                  разработчик имеет полное право побыть архитектором — взять камень и отсечь всё лишнее.
                                  только разница между ними в том что разработчику этот камень сперва нужно сваять =)
                                  • +2
                                    Камень я сваял, осталось отсечь всё лишнее :)
                                  • 0
                                    Я присоединюсь к вышесказанному касательно упрощения интерфейса — оно того стоит, тем более программа, очевидно, рассчитана на начинающих пользователей.

                                    Могу помочь с юзабилити, русским и английским.
                                    • +1
                                      Спасибо. Как хорошо, что на Хабре столько добрых людей ;)
                                      • НЛО прилетело и опубликовало эту надпись здесь
                                        • +1
                                          Именно, ГУЙ это в первую очередь чрезвычайно мощный инструмент для представления информации и манипулирования ей. =)
                                          • 0
                                            Не всегда. Попробуйте визуально представить конфигурацию apache в виде GUI приложения.
                                          • 0
                                            GUI — это редко замена консоли, скорее дополнение, призванное упрощать типовые задачи. Например, system-config-firewall в RedHat, Fedora и производных позволяет настроить базовые правила iptables, но для сильного волшебства придется-таки лезть в шелл.

                                            Конечно, есть и исключения.
                                        • 0
                                          Готов смотреть интерфейс, комментировать юзабилити
                                          • +1
                                            Могу помочь с переводом на испанский и английский.
                                            Изредка пишу на QT. Так что если есть какой-нибудь несложный таск, тоже мог бы помочь.
                                            • 0
                                              Испанский? :) Классно! У меня есть испанский переводчик, но он испанец. А русский человек, способный веревести приложение на испанский — это просто мечта! Записал Вас.
                                            • 0
                                              Идея/мнение — очень не хватает плазмоида для KDE который кушал бы (перебрасыванием в него) и автоматически монтировал образы, причём не только ISO но и MDF например (ну и побольше популярных форматов, mdf из консоли монтируется практически так же как и iso, но не люблю в консоль за этим делом ползать наверно не только я).
                                              Если плазмоид получится и образы будет кушать шикарно было бы его научить выплёвывать iso образы при накидывании в него обычных файлов (как дополнительную фичу).
                                              Успехов вам в разработке.
                                              • 0
                                                Спасибо за идею. Записал в TODO. Сделаем ;)
                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                • +1
                                                  По роду деятельности программирую на QT4 прикладные (и не только) приложения. Есть опыт в разработке GUI. Могу попробовать помочь…
                                                  • 0
                                                    Благодарю! По мере поступления вопросов, я к Вам буду обращаться ;)
                                                  • 0
                                                    В последний раз когда пользовался вашей программой(поставил после публикации на хабре), из fstab исчезло все что не относилось к дискам, включая dev/pts и proc/bus/usb для virtualbox

                                                    Пожелаение, чтобы программа делала бакап файла, и не трогала то что не понимает
                                                    • 0
                                                      Да, у меня до 5 июля программа действительно такое творила :(( Я тот баг исправил и решил, что нужно упрощать программу и внутри, а то наворотил там и теперь не могу ошибки найти :(
                                                    • 0
                                                      а вы решения на базе HAL'а не пробовали? просто, у меня возникали предпосылки для создания такой штуки, когда поломался HAL и ни в какую не хотел работать. начал писать и в процессе написания починил HAL :)

                                                      так вот, к чему это я. в интеграции с HAL'ом могу помочь в принципе :)
                                                      • 0
                                                        MountManager именно hal и использует для получения информации о разделах. Инфу через DBUS берёт ;)
                                                      • +1
                                                        У меня вот несколько советов/замечаний по экрану с опциями монтирования.

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

                                                        Например:
                                                        [V] Разрешить операции suid и sgid bits --> [ ] Запретить операции suid и sgid bits (nosuid)
                                                        (можно переформулировать во что-то вроде «Отключить эффект битов set-user-identifier и set-group-identifier» или «Не принимать во внимание биты set-user-identifier и set-group-identifier»).

                                                        [V] Возможность создавать ссылки на девайсы --> [ ] Не интерпретировать специальные файлы как файлы устройств (nodev)

                                                        [V] Разрешить запускать бинарные файлы --> [ ] Запретить прямой запуск исполняемых файлов (noexec)

                                                        Кто может монтировать раздел {
                                                        Только администратор
                                                        Конкретный пользователь
                                                        Каждый
                                                        }
                                                        -->
                                                        Кто может монтировать и размонтировать раздел {
                                                        Только администратор (по умолчанию)
                                                        Монтировать — каждый, размонтировать — только тот, кто смонтировал (user)
                                                        Каждый может монтировать и размонтировать (users)
                                                        }

                                                        2. У вас есть флажок «Обновлять время доступа inode для каждого доступа». Но ведь по этому пункту существуют 3 опции: atime (по умолчанию) — это как раз «обновлять время доступа inode для каждого доступа», noatime — не обновлять время доступа вообще, relatime — обновлять время доступа, только если оно указывает на дату более раннюю, чем дата модификации файла (mtime) или чем дата модификации inode (ctime).
                                                        Более того, есть ещё опция nodiratime, которая совсем отключает обновление времени доступа для директорий (видимо, может применяться совместно с любой из трёх опций выше).

                                                        3. У вас вроде не обрабатывается следующая ситуация: каждая из опций group, owner, user, users неявно включает опции nosuid,nodev (а последние две [user и users] включают ещё и noexec), если вы далее в строке опций явно не укажете обратное (так написано в man 8 mount). Например, указав user, вы на самом деле получите user,noexec,nosuid,nodev. Указав user,exec, получите user,exec,nosuid,nodev. И, насколько я понял, порядок имеет значение, то есть, указав exec,user, вы получите user,noexec,nosuid,nodev.
                                                        • 0
                                                          Ой, огромное спасибо, что уделили столько времени для написания такого большого комментария. Я с Вами согласен насчёт 1-ого и постараюсь это реализовать. За 2 и 3 особенное спасибо ;)
                                                          • +1
                                                            Ещё пара дополнений.

                                                            1. По пункту 3: я проверил, порядок точно имеет значение, то есть, указав exec,user, вы действительно получите user,noexec,nosuid,nodev.

                                                            2. Я не нашёл у вас флажка, включающего опцию owner. Поэтому предлагаю такую модификацию (с уточнениями):
                                                            Кто может монтировать раздел {
                                                            Только администратор
                                                            Конкретный пользователь
                                                            Каждый
                                                            }
                                                            -->
                                                            Кто может монтировать и размонтировать раздел {
                                                            Монтировать — только администратор, размонтировать — только тот, кто смонтировал (по умолчанию)
                                                            Монтировать — каждый, размонтировать — только тот, кто смонтировал (user)
                                                            Каждый может монтировать и размонтировать (users)
                                                            }

                                                            и ниже 2 флажка

                                                            [ ] Разрешить монтировать обычному пользователю, если он владелец файла устройства (owner)
                                                            [ ] Разрешить монтировать обычному пользователю, если он состоит в группе-владельце файла устройства (group)

                                                            Вообще, опции owner и group могут указываться совместно с любой из трёх опций nouser, user, users (nouser — это опция по умолчанию), но с user или users это имеет мало смысла, так как любой пользователь и так может монтировать раздел. Но раз уж указывать можно, то пусть будут отдельными флажками.
                                                        • 0
                                                          Могу помочь в создании документации. Опыт не слишком велик, но мож чем пригожусь)
                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                            • 0
                                                              Могу помочь с программированием, ну и при необходимости, с английским.
                                                              Пишите в хабраящик :)
                                                              • +1
                                                                Перевод на итальянский. Плюс, я думаю, что логичнее делать трей по стандарту freedesktop.org — он будет работать во всех средах.
                                                                • 0
                                                                  Ничего себе! Итальянский! Я безумно рад, что Вы откликнулись. Спасибо! ;)
                                                                  • +1
                                                                    Да не за что, пишите, главное — чтобы проект реально развивался.
                                                                • 0
                                                                  Автор, хорошая программа. ;-)

                                                                  Вопрос-идея: А не планируется ли у Вас, пусть даже в версии Pro, помимо монтировки делать еще и шифрование данных? :-)
                                                                  Не расстроюсь, если же не планируете этого делать, но, может быть, на заметочку оставите эту мысль, если багов не будет обнаружено долгое время. ;-)))

                                                                  С уважением.

                                                                  P.S.: Если что, могу с иконками помочь. :)
                                                                  • 0
                                                                    Планируется. Уже в TODO лист добавил.

                                                                    Уникальные иконки были бы прекрасным дополнением к программе. Я попозже к Вам обращусь. ;)
                                                                  • 0
                                                                    Могу помочь советами по разработке и проектированию Qt приложений… я правда пишу в основном клиент-серверы в последнее время на нем, но и ГУЙ лапать приходится изрядно…
                                                                    • 0
                                                                      Благодарю. Обращусь обязательно ;)
                                                                    • +1
                                                                      Извиняюсь, но вы не устали в конце каждого коммента ставить ;)?
                                                                      • +1
                                                                        Ха, действительно, привычка. Буду отучаться ;)
                                                                      • 0
                                                                        Автору: я где-то читал что HAL уже RIP. Погуглите на тему fedora + PolicyKit + hal.

                                                                        Лучше писать проги с ипользованием новых технологий
                                                                        • 0
                                                                          Я не линуксоид.

                                                                          Но предлагаю перенести поисковую строку наверх, над полем выбора дисков, а рядом с ней справа разместить кнопку Settings (естественно не прижимая вплотную). При нажатии на Settings вниз разворачивается панелька с настройками.

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

                                                                          Еще ниже — разместить информационное поле о ходе выполнения задач. А то уж слишком большое пустое пространство у поля дисков.

                                                                          Немного расширить по ширине поле дисков и добавить параметр Свободное место (как вариант), а также сделать возможным выбор других параметров в настройках.

                                                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.