Laverna: Разветвляющаяся Лаверна

Созданный на 6 авг. 2018  ·  19Комментарии  ·  Источник: Laverna/laverna

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

Я подумываю о том, чтобы сделать это, поскольку в моей ветке разработки уже исправлено несколько ошибок, о которых сообщалось. Я вряд ли эксперт по JS, так что, если кто-то еще хочет помочь, это будет хорошо.

Стоит ли менять название, чтобы избежать путаницы? Если да, какие-нибудь предложения по имени?

Самый полезный комментарий

Итак, wwebfor вернулся ко мне. Он закончил с проектом.

Он признал, что лаверна не решает проблем с синхронизацией и несколькими устройствами. Он предположил, что лучше было бы потратить усилия на другие проекты, которые уже есть. Он также не дал мне доступа к репо, поэтому я ничего не могу с ним сделать напрямую.

Я думаю, что его опасения обоснованы, но мне нравится Лаверна, и я думаю, что стоит попробовать что-то из этого сделать. Я собираюсь продолжить свой план по его разветвлению и развитию независимо от организации Laverna.

Последние несколько недель я потратил, пытаясь ознакомиться с веткой разработки и работая над небольшими ошибками, где это возможно. Честно говоря, сейчас он не в очень хорошей форме:

  • Похоже, что проект находился в процессе перехода к большей части модели клиент / сервер с добавлением сигнального сервера и mongodb. Это неплохая модель для хостинга, но она становится обременительной для автономных конечных пользователей, которые синхронизируются через Dropbox (или не синхронизируются вообще).
  • Сервер сигналов, похоже, был создан с учетом многопользовательской среды, и есть начало некоторых полезных функций (например, совместное использование между пользователями), но это неполно, и я считаю, что в настоящее время фактически препятствует синхронизации между несколькими устройствами.
  • Несмотря на вышесказанное, https не включен по умолчанию.
  • Электронная версия настольного приложения не работает.
  • gulp довольно не работает в узле 10 из-за древних зависимостей. Предположительно, когда-нибудь это будет исправлено, хотя текущий план, похоже, состоит в том, чтобы принудительно установить более новую версию пакета natives, которая не поддерживается. Я не смог найти расчетное время прибытия.

Я хотел бы подробнее рассказать об этих проблемах и получить рекомендации / помощь по их устранению. Я собираюсь воспроизвести эту проблему на своей вилке по адресу https://github.com/daed/laverna/issues/1.

Я настоятельно рекомендую всем, кто чувствует личную заинтересованность в проекте, прийти к обсуждению, и я хотел бы предупредить всех, что этот проект, в том виде, в котором он существует в организации Laverna, вероятно, больше не будет обновляться.

Все 19 Комментарий

У меня приличный опыт программирования, но я только изучаю js и готов приложить усилия, если потребуется, чтобы внести свой вклад в этот проект, так как это было моим приложением goto уже долгое время. Насчет названия Laverna2.0 ... Хех.

@daed Давайте @wwebfor && @wwwredfish .

Я почти уверен, что они могут добавить всех участников или вас в организацию, чтобы у вас был доступ на запись ...
В противном случае дайте мне знать, когда у вас будет имя и выпуск, чтобы я мог создать пакет AUR: wink:

Можете ли вы связаться со мной по keybase (предпочтительно) или по электронной почте, чтобы я мог передать вам личный адрес электронной почты @wwebfor сегодня позже (по берлинскому времени)?

PS: Если вы создаете новую версию на своей вилке, я думаю, что будет хорошей идеей также сгенерировать tarballs: smile:

Да, конечно. Я не хотел ни у кого вырывать проект. Я просто хотел убедиться, что он не остался позади.

Я живу по центральному времени США. Я поговорю с тобой завтра по клавишам, если смогу.

Итак, wwebfor вернулся ко мне. Он закончил с проектом.

Он признал, что лаверна не решает проблем с синхронизацией и несколькими устройствами. Он предположил, что лучше было бы потратить усилия на другие проекты, которые уже есть. Он также не дал мне доступа к репо, поэтому я ничего не могу с ним сделать напрямую.

Я думаю, что его опасения обоснованы, но мне нравится Лаверна, и я думаю, что стоит попробовать что-то из этого сделать. Я собираюсь продолжить свой план по его разветвлению и развитию независимо от организации Laverna.

Последние несколько недель я потратил, пытаясь ознакомиться с веткой разработки и работая над небольшими ошибками, где это возможно. Честно говоря, сейчас он не в очень хорошей форме:

  • Похоже, что проект находился в процессе перехода к большей части модели клиент / сервер с добавлением сигнального сервера и mongodb. Это неплохая модель для хостинга, но она становится обременительной для автономных конечных пользователей, которые синхронизируются через Dropbox (или не синхронизируются вообще).
  • Сервер сигналов, похоже, был создан с учетом многопользовательской среды, и есть начало некоторых полезных функций (например, совместное использование между пользователями), но это неполно, и я считаю, что в настоящее время фактически препятствует синхронизации между несколькими устройствами.
  • Несмотря на вышесказанное, https не включен по умолчанию.
  • Электронная версия настольного приложения не работает.
  • gulp довольно не работает в узле 10 из-за древних зависимостей. Предположительно, когда-нибудь это будет исправлено, хотя текущий план, похоже, состоит в том, чтобы принудительно установить более новую версию пакета natives, которая не поддерживается. Я не смог найти расчетное время прибытия.

Я хотел бы подробнее рассказать об этих проблемах и получить рекомендации / помощь по их устранению. Я собираюсь воспроизвести эту проблему на своей вилке по адресу https://github.com/daed/laverna/issues/1.

Я настоятельно рекомендую всем, кто чувствует личную заинтересованность в проекте, прийти к обсуждению, и я хотел бы предупредить всех, что этот проект, в том виде, в котором он существует в организации Laverna, вероятно, больше не будет обновляться.

Хорошее резюме @daed : tada:: star:

Я в деле!

Для справки: # 931

Привет.
Раньше я запускал Лаверну, но отказался от нее из-за DropBox. Мои 2 цента: переход к реальной модели клиент / сервер с серверной частью базы данных может помочь предотвратить множество проблем с синхронизацией. И это сделает проект практически независимым.

@ romu70 Это одна из тех вещей, с которыми я боролся. По какой-то причине у меня никогда не было проблем с синхронизацией Dropbox, на которые все жалуются, и мне нравится отсутствие центрального сервера. Метод dropbox отчасти похож, но я могу, по крайней мере, посмотреть свои заметки и увидеть, что они зашифрованы. Если один человек или группа владеет программным обеспечением и базой данных, например, в модели клиент / сервер, это решает множество необходимых проблем, но как вы докажете, что ваши данные действительно защищены должным образом? Общедоступный api, на который вы можете отправлять уже зашифрованные сообщения, будет одним из таких способов, но это самое дальнее из возможных.

Я пытался найти способ предоставить его так, как вы хотите, с размещенной версией, версией с собственным сервером и автономной настольной версией, но похоже, что поддерживать ее будет невероятно сложно.

Мне кажется, что клиент / сервер действительно является самым быстрым и наиболее вероятным путем к следующему выпуску, но чем дальше мы продвигаемся к этому, тем сложнее будет реализовать автономное настольное приложение.

Я склонен согласиться. Клиент / сервер хорош, если вы думаете, что ваш продукт будет установлен на пользовательских серверах. Таким образом, вы можете быть уверены, что данные конфиденциальны, но настроить наверняка будет сложнее.

Что касается настольного приложения, я не уверен, что это усложняет задачу, просто подумайте об упаковке внешнего интерфейса с помощью Electron, и все почти готово.

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

Жизнь слишком коротка, чтобы изобретать велосипед.

Boostnote довольно хорош, я согласен с этим. Он намного продвинулся вперед и стал намного лучше. Однако он не обрабатывает шифрование (запрос функции открыт чуть меньше года), и объем того, что необходимо установить на компьютер, кажется намного тяжелее, чем у laverna.

Лаверну также можно полностью использовать через USB и при этом взаимодействовать с Dropbox, даже если она не установлена. Это тоже довольно изящно. Я думаю, что здесь есть что сэкономить даже перед лицом других инструментов для заметок, у которых больше ресурсов, чем у пары зацикленных людей.

Здесь простой пользователь, но ключевая особенность Лаверны - это шифрование с нулевым разглашением с пометкой «Держите свои заметки в секрете». Без этого я мог бы вернуться в Evernote.

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

@glocalglocal Как вы определяете «частный»?

"Зашифровано, но на сервере, которым вы не владеете" считается "частным"?
А как насчет «зашифрованного, но на локальном жестком диске»?

Я предполагаю, что в обходной манере я спрашиваю, достаточно ли хорош первый или второй является требованием для рассмотрения программного обеспечения для использования? Нет неправильных ответов; Здесь мне нужна точка зрения пользователя.

Выбор - это всегда хорошо. Так что, безусловно, стоит потратить время и усилия на форк этого проекта, несмотря на наличие других зрелых альтернатив.

Вот то, что я изначально думаю, будет наиболее гибким и поддерживаемым компромиссом:

В настоящее время в разработке:
Лаверна состоит из двух компонентов: трех, если считать UI, и четырех, если считать mongodb (в настоящее время это требование). Это необоснованное ожидание от пользователя. Компонент, обращенный к пользователю, общается с сигнальным сервером, который, в свою очередь, обращается к mongodb. В настоящее время все, что делает mongodb, - это хранит имена пользователей и, как мне кажется, открытые ключи. Все, что делает сервер сигналов (о чем я знаю), - это отделяет базу данных от компонента, который обрабатывает пользовательский интерфейс. Это означает, что пользователь может запустить лаверну «gui» (например, лаверну в электронном формате) и подключиться к общедоступному «серверу» лаверны / db. Реализация для нескольких пользователей / устройств выглядит неполной, хотя, судя по моим беглым тестам. Если он каким-то образом полностью завершен, я не мог понять, как его использовать, а это значит, что это, вероятно, слишком сложно.

Что я предлагаю для разработчиков:
Мы объединяем сигнальный сервер и пользовательский интерфейс в один пакет. Кроме того, мы создаем электронные версии этого объединенного пакета. Мы обрабатываем все данные через сигнальный сервер в базе данных. Заметки, записные книжки, резервные файлы конфигурации, все, кроме закрытого ключа. Мы включаем конфигурацию, позволяющую запускать пользовательский интерфейс, сигнальный сервер или и то, и другое. Кроме того, мы создаем адаптер для сервера сигналов, чтобы он мог обрабатывать соединения sqlite3.

Это берет лаверну и позволяет превратить ее во что угодно. Три очевидные конфигурации с этой схемой, из которых вы можете выбрать одну из следующих:

  1. полностью управляемый: пользовательский интерфейс, сигнальный сервер и база данных работают где-то на сервере. Вы подключаетесь через браузер. Это в основном более или менее то, чем сегодня является laverna.cc. Вы получаете наибольшее удобство, и вам не нужно загружать / устанавливать что-либо, но вы имеете наименьшую прозрачность и должны слепо доверять своему администратору сервера. Я назову это «конфигурацией Evernote».
  2. клиент / сервер: пользовательский интерфейс работает на клиентском компьютере через узел или электрон, сигнальный сервер и база данных работают где-то на сервере. У вас есть централизованное хранилище и доступны любые функции совместной работы, которые могут быть включены в линию, и вы владеете клиентом пользовательского интерфейса, который вы можете создать из исходного кода, чтобы иметь разумные основания полагать, что безопасность поддерживается на уровне клиента. Вероятно, это лучший компромисс между функциями, удобством и безопасностью. Это отдаленно похоже на то, как я понимаю, как работает клавиатура.
  3. полностью автономный: пользовательский интерфейс, сигнальный сервер и база данных работают в одном устройстве. Узел или электрон запускают пользовательский интерфейс и сигнальный сервер, когда вы их запускаете. База данных - это ваш выбор mongodb или, если вам нужен простой вариант без дополнительной установки, вы можете выбрать sqlite3. Мы полностью сбрасываем метод api dropbox и переходим к синхронизации Dropbox через файловую систему. Если вы хотите, чтобы Dropbox синхронизировался, вы можете поместить базу данных в каталог dropbox по любому удобному пути. Если вы хотите, чтобы ваши заметки были записаны на флэш-накопитель, NFS или / dev / null, вы просто скажете ему это сделать. Это, вероятно, самое близкое к тому, как работает текущий выпуск Laverna на данный момент.

Обратите внимание, что я использую выше «клиент» и «пользовательский интерфейс» как синонимы.

Единственное, что меня беспокоит, - это надежность sqlite3, особенно при синхронизации через Dropbox. У меня есть догадка (и только догадка), что большинство проблем с синхронизацией, с которыми сталкиваются люди с Dropbox, связаны с api, и простое переключение на приложение / файловую систему для доступа к Dropbox вылечит многие из этих проблем.

Это много, и я, вероятно, не умею объяснять свои мысли, но вопросы? Обеспокоенность? Комментарии?

@daed с точки зрения пользователя, если шифрование достаточно надежное и прозрачное, db можно хранить где угодно, и это не вызовет у меня проблем с конфиденциальностью.

Я бы предпочел модель клиент / сервер (2) с ее настольными и мобильными клиентами с открытым исходным кодом для проверки / аудита и серверным хранилищем для переносимости и совместимости. Часто приложения предлагают автономную модель (3) в качестве опции. Нельзя ли также сохранить локальную копию базы данных в модели 2 в папке Dropbox, MEGA и т. Д.? Это сработает, даже если сервер исчезнет навсегда.

В модели (1), разве шифрование / дешифрование на стороне клиента не решает проблему доверия? например Lastpass, Bitwarden. Это при условии, что все, что работает в браузере, тщательно проверяется. Модель (1) была бы удобна при определенных обстоятельствах.

Для модели 1:
«Клиент» в данном случае - это просто «тупой» веб-браузер, который подключается к пользовательскому интерфейсу laverna. Это дает нам два варианта.

  • Мы можем либо попросить пользователя указать путь к его закрытому ключу, чтобы мы могли его прочитать (локально) и выполнить шифрование в js на стороне браузера, прежде чем передать сообщение экземпляру узла, на котором запущен пользовательский интерфейс laverna, что неудобно, поскольку для этого требуются локальные файлы, что с самого начала сводит на нет цель полностью размещенной установки. Это было бы похоже на то, как работает github, но технически у github есть клиент с git / ssh.
  • Или мы можем сделать так, чтобы сервер сохранял / управлял вашим секретным ключом (но НИКОГДА не вашей парольной фразой), а затем мы выполняли действия на 100% удаленно. Вы можете загрузить / изменить свой закрытый ключ, но вы также должны быть уверены, что мы не храним кодовую фразу и не испортим безопасность вашего ключа. Думаю, это ближе к тому, как это реализовано сейчас. По сути, это бесплатный evernote с более дружелюбным ToS и приятной атмосферой с открытым исходным кодом. Не идеально, но для некоторых может быть достаточно.

Могут быть другие варианты, но я не уверен, какими они будут на данный момент. «Lastpass / Bitwarden хранят и скрывают пароли», - подумал я. Это функция шифрования, которую можно использовать вместе с этим, но она не решает проблему управления ключами. Я никогда не использовал их, так что, возможно, я не совсем понимаю их полезность.
С учетом всего сказанного, я, вероятно, установлю такой «официальный» сервер на AWS или что-то в этом роде на всякий случай, если этого хватит для некоторых, если не для всех. Я полагаю, что бесплатного evernote даже с некоторыми проблемами доверия будет более чем достаточно для некоторых пользователей. Может быть, нажмите на него кнопку пожертвования и посмотрите, окуплю ли я когда-нибудь расходы на хостинг.

Для модели 2:
На самом деле это моя любимая реализация из трех возможных. Технически, на компьютер все равно нужно устанавливать нулевое программное обеспечение. Вы можете запустить Laverna с USB-накопителя и оставить там свой ключ. Вы даже можете встроить его в USB-накопитель с установленными на нем хвостовиками, если хотите зайти так далеко с общедоступными компьютерами.
Я не рассматривал локальную копию, но в моем списке была какая-то функция импорта / экспорта / резервного копирования заметок, так что оба эти вида прекрасно сочетаются друг с другом. Если ваш сервер ушел, вы могли просто перейти на модель 3, импортировать заметки и двигаться дальше, как ни в чем не бывало. Может показаться немного странным переход от данных, хранящихся в mongodb, к некоторому локальному формату, но, вероятно, с этим можно справиться.

В качестве общего обновления я сделал доказательство концепции электронного приложения поздно вечером со встроенным в него пользовательским интерфейсом и сервером сигналов, которые запускаются при запуске. Он совершенно без доработки и совершенно непригоден для выпуска, но он показал мне, что на 100% возможно все еще иметь модель 3 с очень небольшими дополнительными усилиями.

Я думаю, что если мы пойдем со схемой 3-х моделей, я создам пакеты для «серверной» версии, которая будет содержать пользовательский интерфейс laverna и серверный материал, но без электронов, а также «клиентскую» версию, которая также будет содержать компоненты для всего. как электрон. Для серверной версии настройку необходимо будет выполнить путем редактирования файлов, но она будет способна предоставлять серверные компоненты для модели 1 или модели 2, тогда как клиентская версия будет иметь страницу / мастер настройки пользовательского интерфейса и сможет предоставлять компоненты для клиента для модели 2, а также полная реализация модели 3.


Этот разговор был полезен, но оставаться на этом репозитории лаверны не особенно полезно, так как я ничего не могу с этим поделать. Я все равно буду проверять здесь, чтобы увидеть, публикует ли кто-нибудь что-нибудь новое, но если вы хотите продолжать говорить об этом (а я надеюсь, что все это делают!), Я бы попросил, чтобы мы сделали это у меня на https://github.com/daed / laverna / issues / 1.

И спасибо всем.

Я не знаю, что означает Forking (и я не уверен, что должен?), Но в любом случае; Я попробовал Laverna apk, и кажется, что синхронизация с ним не работает. Пробовал с 5storage. Кажется, есть еще одна версия Android на другой странице, но нет выпуска, мне нужно ее собрать, и, с моими плохими знаниями, она просто потерпела неудачу.

@xreqx Это означает, что проект мертв, и я беру код и снова

Честно говоря, мобильную версию еще не смотрел. Честно говоря, у меня нет опыта написания мобильных приложений. Хотя это то, над чем я бы хотел работать.

стоит упомянуть стандартный файл ; библиотека, используемая стандартными заметками .

Стандартный файл - это библиотека синхронизации и шифрования для веб-приложений и собственных приложений. Это позволяет разработчикам сосредоточиться на создании отличных приложений, ориентированных на пользователя, и оставляет синхронизацию, серверы и сквозное шифрование этой библиотеке.
..
Стандартный файл - это многоразовая клиентско-серверная система, которая позволяет вам развернуть «тупой» внутренний сервер, который не знает и не заботится о вашей схеме данных, и позволяет вам шифровать данные на стороне клиента и синхронизировать их с удаленным сервером. .

Итак, wwebfor вернулся ко мне. Он закончил с проектом.

Обратите внимание, я создал этот википейдж некоторое время назад. Я связался с вашим комментарием:
https://github.com/Laverna/laverna/wiki/DEAD-PROJECT-ALERT

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

userdaphi picture userdaphi  ·  4Комментарии

Issam2204 picture Issam2204  ·  8Комментарии

rjdeible-github picture rjdeible-github  ·  8Комментарии

igorsantos07 picture igorsantos07  ·  7Комментарии

hgaronfolo picture hgaronfolo  ·  5Комментарии