From: Julien E. <jul...@ya...> - 2013-11-22 03:05:40
|
Hi there, just posting some thoughts about osmo future development, continuing this nice discussion we were having :). Please post your comments to the mailing list if you feel like it. STORAGE I have to disagree with the idea of moving the storage to an sqlite file. This will have the effect of obfuscating osmo's data and make it unreadable/uneditable directly, and hard to backup/restore/truncate/synchronize. The current state of affairs is not totally great (xml is not really easily readable) but at least it's feasible to selectively extract data from osmo, parse it and import it in other programs. File naming issues and the weird formatting (bold/italic.. syntax) aside, notes are easily readable outside osmo (they are just text files) and they can be synced to other machines, backed up and merged back relatively easily. TASKS/STORAGE/TEXT FORMATTING I suggest going the other way: using plain text as much as possible, or when it makes sense, use widely accepted standards. For example, Tasks can be stored in individual ical (.ics) files using the VTODO standard. For tasks that have a due date, VEVENT does the trick. For notes, the current syntax could (I guess) easily be replaced with Markdown that has every syntax option we need (except highlighting, but that can easily be worked around, alternative markdown implementations support it). Even images/file attachments are supported - just link like a file like [Bussiness report](attachments/report.pdf). NOTES/STORAGE There is no need for most xml files. Keeping the main config as xml is fine, but why does osmo need notes_entries.xml? Why not just scan the notes/ directory for .md or .markdown files and display them in the list? This could have the advantage of naming the notes files directly form their title (note "Things to remember" becomes "notes/Things to remember.md"). Just add a toolbar button that runs "xdg-open ~/.osmo/notes/" and the user has all his notes at hand, in a format that human-readable, selectively exportable, editable in any editor, and that supports formatting. DAY NOTES/STORAGE calendar_notes.xml can become a real mess. Why not just a calendar_notes/ subdirectory containing file like 20131122.md storing all the notes for one day? When the calendar for november 2013 is displayed, scan the directory for 201311*.md files, and highlight the appropriate days. CALENDAR/TASKS/SYNC ICS files are syncable to/from online calendar using the CalDAV protocol. There is no need to rewrite your own system from scratch as many libraries or standalone sync apps are available, and osmo will be compatible with all other calendaring apps if you choose to take this path. Owncloud/Dropbox/Rsync/whatever popular file syncing alternative can also easily sync and display text files. There is no need to implement your own sync directly in osmo (which is a huge task and hard to maintain). ICS format supports setting reminders and reccuring tasks (requested in the mailing list) TAGGING About a tagging system; again this can be done using ONLY plain text files. People are familiar with #hashtags (and it's not really difficult to understand words beginning with # are tags). For those who prefer clicky-clicky interfaces, just adding a "Tag..." button that prints a # in the text field should be doable. Once there, everything is already done, there's a search box for most tabs (well the search box for day notes is pretty much hidden in the right click menu, a user asked for a toolbar button to access it - good idea IMHO because it's very powerful). Just enter a search for #TODO or #vegetables and you're presented with all the related notes. Maybe highlight #tagged words with some color to make them distinguishable. There seems to be people that are competent with javascript/html in this mailing list. If you just implement a webkit box (i know this is a common widget for GTK) in the calendar, it should be easy to display a tag cloud inside it. Or an agenda view (requested and already implented,as well as gantt charts, etc..) I'm not criticizing freely, nor do I have the skills to implement this. I realize this is done on your free time and the software is remarkably stable and useful. I use to install computers for relatives or at my workplace and this is part of what I'm frequently asked about (sync, where are my files, can i export this while keeping the format...). I have a few years of experience with osmo and am just seizing the opportunity to add my views on long-standing problems i encountered. As I hear you plan to rewrite stuff, I think this is a good time to do it. I can provide quick mockups for the interface, or just plain ideas, just tell me if you find them relevant. Pasp, or any other dev, do you have a IRC/Jabber handle we can use to contact you and discuss this? I usually idle on freenode in the #debian channel (nickname is nodiscc) Side note: I am mostly done triaging the "feature requests" on the sourceforge tracker and will close the repository i imported on github very soon. I did very few changes the "Bugs" tracker as osmo is pretty much bug-free for me (some GTK theming issues aside). Thanks again, good night people of the world and happy hacking Julien |