Disclaimer: Involved in both KDE (including kde pim and kalendar) and Nextcloud. See bio.
* I wouldn't call Nextcloud codebase old. It's a PHP 7.3 codebase with sure quite a lot of legacy stuff but a lot of thing has been improved and refactored with the time. It's maintained, there is an active community and an healthy enterprise behind the project. IHMO this is that matters more than the programming language used.
* SabreDAV supports WebDAV and this is that we are using at Nextcloud for our webdav/caldav and carddav support.
* KOrganizer does run on Windows but it require to be built from source. I have been told that a better Windows support is being worked on for the entire PIM suite and I hope that at some point exe can be distributed. Technically there is nothing that makes it impossible to use on macOS, we just need more helping hands to help with fixing the platform specific issues. There is also a modern alternative to Korganizer being worked on called Kalendar. More on it can be learned on https://claudiocambra.com/ (Disclaimer: I was the mentor of this GSoC project).
I have been using Nextcloud as my family's calendaring solution for years now. It works great and that's high praise coming from me because 95% of the software I have to use on a daily basis is terrible. The fact that the blog author's main complaint about it was that it was "old PHP" makes me wonder if he's even interested in a time-tested solution with a large active community.
The calendar is really the main reason I use Nextcloud at all. The web UI _was_ the best calendar UI I had used but the recent rewrite set it back quite a bit. I've been following the bugs related to it but the UI designers seem to think that pretty is better than functional.
Nextcloud calendar does work great as a source of truth. I share calendars to Android devices (via Davx5), iPhones, and calendar clients like Thunderbird. It all just works great.
>The UI _was_ the best UI I had used but the recent rewrite set it back quite a bit. The UI designers seem to think that pretty is better than functional.
This applies to 95% of all modern software. Optimise UI for looking (subjectively) pretty in screenshots.
The "dribbilization of design" (in reference to Dribble.com) seems to have gotten especially bad in the last decade or so.
I used to teach Human-Computer Interaction, and it was exciting to me when many companies started hiring UX designers. But ultimately it was disappointing because especially in consumer products it seems like product managers prioritized hiring folks with strong aesthetics even at the expense of fundamentals like usability and research.
What do you think the thing new designs are missing? I don't want to casually dismiss the visual aspects of 'dribbblized' designs, because they do look nice, but clearly they're missing some aspect that makes them good for humans to actually use.
Just basic adherence to web standards I think is really the problem people have with these interfaces.
Basic support for already existing web client functionality. For instance, I shouldn't have to sacrifice the ability to open a link in a new tab, or sacrifice the ability to link _period_ which is commonly the case (which interferes with bookmarking, etc). I shouldn't be logged out or yelled at by an app for hitting the back or refresh buttons on my web browser.
Most of these things are reinventing the wheel. Just for prettiness they'll break a basic browser functionality, then they try to re-implement in their framework and it just creates an abstraction layer on top of an abstraction layer, creating unnecessary bloat.
Many times this is even just so they can show you a blog post, which is just text and some images. I shouldn't need JavaScript to see that, especially if I don't know you or trust you. Even Google AdWords has had malware injected in its JavaScript, a blogger is not going to be worth my time to read if I have to trust his code isn't malicious just to see what he has to say about an obscure fruit.
My personal favourite “wtf” is a recent pattern I’ve noticed across a growing number of random websites I’ve come across where they implement a flat/pseudo-Material style design and they have the nice big square coloured areas for buttons (often without any visual cue it’s a button like a drop shadow) and instead of being a clickable button where the entire coloured “button area” is clickable, only the text is clickable.
I just can’t comprehend why anyone thinks it’s a good idea to imply an area is a button and then not make it act like a button. It’s not even like they don’t have multiple ways to make whatever element they use to contain/apply the colour clickable, it’s just bad design!
In my experience, "dribbble designers" sometimes take a "cargo cult" approach to design that apes the appearance of good design without understanding what actually makes a design good in the first place.
I agree with most of what people have written, but I think the two biggest gaps are:
First, understanding the target users and their goals, tasks, skills, context of use, performance, etc. When interviewing designers I'm regularly surprised how many of them have been working in the field for years and have a beautiful portfolio and yet when I drill into their process they seem to have spent surprisingly little effort understanding of the human on one side of the interaction.
Second, usability tests with a representative sample of the target audience. (Along with an organization that has the humility to accept when a redesign is unsuccessful.) If you do nothing else, do this. Even the best design groups I've worked with produced nearly the same number of beautiful-but-bad designs as the worst ones. The difference was that the former had the humility to accept that the design missed the mark and continued to iterate whereas the latter was often willing to ship anyway due to misplaced confidence, strict deadlines, or a CEO with a Steve Jobs complex.
With respect to things like whitespace, information density, hit-target/button size, modals, adherence to platform standards, up-front complexity vs hidden actions, icons vs words, customizability, etc those can be good or bad depending on user and context. The real problem occurs when a designer attempts to substitute their own gut instinct to compensate for a lack of understanding of their target audience. The mantra often repeated at the design program where I worked was: "The user is not like me."
I'm not the person you're replying to but I can put in my two cents on what I miss often in modern designs:
- Information density. This is especially a problem with communication tools, which for some reason are all copying Slack and leaving very little screen space for the thing you actually want to see - the text that the other person is writing. Messages go off the screen very quickly and a lot of screen space is spent on decorations (user icons, names, speech bubbles, padding) leaving it with basically the density of comic chat. Graphic background images with semitransparent visual elements on top are another similar trend which uses a lot of padding to not obscure the background too much, and the transparency makes contrast and readability worse.
- Affordance discoverability. Many modern user interfaces have a lot of functionality hidden behind catchall elements like a user icon, a gear icon, or a hamburger menu. This may be a misguided attempt to make the user interface "cleaner" but it makes it very difficult to find what functionality is available unless you go exploring. This is especially bad for context-dependent functionality because there's no visual indication that the hidden contents of the catchall have changed.
- Delineated targets. A lot of modern designs have flatness as a design concept, meaning the click or tap targets are not clearly separated from the static parts of the interface. This makes it hard to know that they are targets (as it's common to have nonclickable decorative graphics too) and hard to tell where exactly they start/end so it causes extra cognitive load in order to hit them precisely.
- Non-gigantic targets. This is related to the low information density mentioned above. More and more designs target smartphone displays, which used to be very small and require big targets to ensure they could be mashed with normal human fingers. However, this gets reused on tablets, modern gigantic smartphones, and even desktop, where none of this makes sense.
- High-contrast targets with identifiable icons. Low-contrast or monochrome targets have become fashionable. Clickable items often have simplified, highly abstracted icons with thin-line monochrome content, frequently implemented as fonts, which is less distracting from the visuals of the design but is also hard to understand what it's supposed to represent. Another common one is having said elements in grey on grey, making them very difficult to read for people with less than perfect vision.
- Less modality. Many modern designs will have modal interface elements that prevent access to the rest of the user interface until interacted with and/or dismissed. The "blur the content and put a tiny dialog with a huge button in the middle" is a common tactic, and is often user-hostile nudging trying to get the user to do something they don't really want in order to get rid of the thing that is literally blocking their access to whatever they were actually doing.
This is basic human-computer interaction design stuff, but somehow it's all gotten lost.
> This is basic human-computer interaction design stuff, but somehow it's all gotten lost.
Indeed, probably because people who design the interfaces no longer care about carefully studying human-computer interaction, or apply the knowledge of decades of research in this area.
> Many modern user interfaces have a lot of functionality hidden behind catchall elements [...] it makes it very difficult to find what functionality is available unless you go exploring.
Users still have to explore, even more so, in complex interfaces where a lot of options are presented. They don't know what each option does and there's so many of them.
And even the classic desktop apps have a lot of functionality hidden under the File/Edit/View/Insert/Tools menu bar. If they are not designed carefully, they are just hamburger menus with confusing labels. I'm looking at one right now. Why is "Find" under "Edit"? I don't want to edit anything, I just want to look for something. Is this action destructive? I took a risk and I pressed it, but luckily it is indeed just a search.
It's also a problem in physical interfaces like a computer keyboard. There's dozens of buttons and yet there are many hidden interactions between them. What does "Home" button do? Will it take me to my home screen? My home page? Let's press it. Oh, it just scrolls up.
Unless the options are severely limited or the users are trained, exploring can't be avoided - and it's not a bad thing.
> More and more designs target smartphone displays, which used to be very small and require big targets to ensure they could be mashed with normal human fingers. However, this gets reused on tablets, modern gigantic smartphones, and even desktop, where none of this makes sense.
It does make sense on the gigantic smartphones and tablets. The size of the viewport doesn't matter. The size and the precision of the pointer device does - and my finger didn't shrink.
> Clickable items often have simplified, highly abstracted icons with thin-line monochrome content, frequently implemented as fonts, which is less distracting from the visuals of the design but is also hard to understand what it's supposed to represent.
Here's a screenshot of LibreOffice Calc with a classic skeuomorphic icon set: https://i.imgur.com/TO7mHEg.png Let's ignore the poor contrast caused by the dark background for now. Can you tell me which icon is responsible for Search?
It should be the one between the printer and the scissors - it has a magnifying glass after all. Turns out, it's Toggle Print Review. Search is actually in the middle of the row between Redo and Spelling, labeled as Find and Replace. It looks more like a microphone to me.
> Less modality. Many modern designs will have modal interface elements that prevent access to the rest of the user interface until interacted with and/or dismissed.
There's a time and place for this, especially if it's something important. For example Exit Without Saving confirmation modal in BIOS, which is several decades old.
I agree with your other points. Chat apps are getting worse. Discord has even shrunk the text area where you type your message.
Turns out bad design isn't new. I agree with almost everything you've said - there's bad design examples from every period. There's plenty of UI design resources from the early 2000s and they all contain examples of bad UI. But that doesn't mean there's no difference between now and then. Having options split among labeled menus improves recall, even when it doesn't improve discovery (and it often does improve discovery because the labels aren't entirely arbitrary). So I definitely see this getting worse with hamburger-and-gear interfaces. Skeuomorphic colorful icons are usually easier to tell apart than font-based monochrome abstract line art, and they're much easier to remember, for non-colorblind users. Doesn't mean they can't be bad or misleading.
As for the size of clickable items, I consistently see interface elements that span the full width of the screen (except some padding) on modern giant-screen smartphones and tablets. It seems the screens grow and the UI elements grow with them, rather than remaining fingertip-sized. And of course none of this has any place on desktop, but it gets reused there anyway.
Lately I'm a big fan of omni-search bars that search not only across the files, but also options and menus. Like the one in Sublime Text on Jetbrains products.
It was certainly not known by that name[1] but the tension between designers with a cognitive/ergonomic/human factors/HCI/research focus and those with a visual/aesthetic/artistic focus goes back a lot further.
Having said that, the shift in favor of visual/aesthetic designers does seem to be somewhat recent. My impression is that companies scrambled to hire interface designers when good interfaces became a selling point for consumers, which led to a lot of graphic/print/visual/web designers switching over to UX, and some of those designers never got around to learning about the rest of UX. Whatever the reason, there simply seem to be more designers these days who operate as if the most important aspect of a design is how it looks.
Another issue here is that UX/Product tend to focus on two or three privileged use cases at the expense of any concept of flexibility/extensibility: I’ve worked on several projects now that could have enabled some really fantastic third-party extension feature but, because these only appeal to a small fraction of the users, they’re never prioritized or thought about: the ethos embodies in a lot of the old Unix programs (emacs/vim) or even something like Excel is largely underserved.
I think your comment has me thinking that instead of everyone having a vim/emacs holy war mixed with battling the Excel wizards, we should all band together because we are infighting at this point.
We were on top of the world, now the world is built on top of us.
Flexible products cost more to design, implement, and support than simple ones. Outside of expensive tools for professionals (and web browsers oddly enough) the market seems to have spoken that not enough consumers are willing to pay for that flexibility.
(Personally I like designing expressive/extensible products, so that constrains me to working on tools for professionals.)
I think there’s a chicken and egg problem here, though: if all the apps/websites an average user uses aren’t designed to make “power users” possible, fewer people will have the opportunity cross the line from user to power user. (In the extreme, I had a former coworker who started as an accountant, discovered he really liked automating excel Workflows with VBA and eventually made the career jump to Software Engineer)
Agreed. Excel is an interesting case. Most of the power and expressiveness was added to support professional use cases but because it's bundled with MS Office it's available to novices as well.
At least in my experience, making products for non-professional power users presents a few challenges. First off, you can't charge much for a product that isn't a professional tool. At the same time, power users are (initially) a niche segment so in order to support a development team you probably need something that will appeal to a broad audience. But designing a product that works well for a broad audience and for power users is harder (=more expensive) than focusing on one or the other. It doesn't help that power users can be more demanding in terms of support and feature requests than average users.
My experience is that power-user features often get nixed not because any one stakeholder doesn't like them -- often internal folks are themselves power users and think it would be pretty cool -- but because it's often harder to make a good ROI argument for building and supporting power-user features compared to features for the average user.
I think what this misses is the disproportionate influence of power users: they're a small fraction of the user base, but they tend to be concentrated among the people that are in a position to recommend your product.
It's a slightly different case, but I remember noticing that, when Google retired Google Reader, the perception of Google in media and on tech sites seemed to go bad nearly overnight.
I felt the same way about Google Reader -- I stopped relying on new Google products after it was sunsetted. But Reader has also come up in discussion as a cautionary tale. Because if we do build niche but well-loved capabilities and later determine that we can't afford to maintain them then we run the risk of the kind of backlash that Google got for Reader.
Besides the argument that power users can become evangelists, the other argument I've used in feature prioritization meetings is that power users can provide significant utility to the whole user ecosystem by sharing the customizations and extensions they've developed with average users.
Having said that, these kinds of features rarely make the cut, and even when they do they're often not as obviously successful as I would have hoped. With respect to the benefit of power-user "evangelism" that's hard to measure. It's hard to measure whether $400k for a few power-user features or $400k in average-user features ends up resulting in more paying users.
Every time I see that happening to some software I use I wonder if the designer is a passerby tasked with making it look pretty or somebody that actually use that software daily.
Examples in different categories as I don't use Nextcloud:
Do Firefox designers for Android use Firefox on their phones as their only browser or they use Chrome and don't understand how their new UX added too many extra taps and/or complications?
On the other side, the designer of new K9 is the original developer and I'm pretty sure he uses K9 daily. I and many other people just happen to use the app in a very different way than him and many others. The new app optimizes one workflow and inadvertently destroys the other. At least I understand that even if I had to go back to the old version (no security bugs there at least.)
I find the new UI of Firefox on android much better than the old and miles better than chrome, so these things are quite subjective.
Also, the complains about how design and UIs are getting worse, remind me a lot of the "the youth of today" complaints that can be dated back to Plato. There was plenty of absolutely horrendous UIs around at every time. Also, just because it looks good, doesn't make it bad UI (plenty of people seem to judge like that).
>>The UI _was_ the best UI I had used but the recent rewrite set it back quite a bit. The UI designers seem to think that pretty is better than functional.
>This applies to 95% of all modern software. Optimise UI for looking (subjectively) pretty in screenshots.
Hard to blame them - most people make the decision to evaluate/not evaluate software based purely on how it looks.
I wrote an interactive GUI app in Lazarus that had almost instant (less than 20ms) responses to any user action (click, enter, typing, chart-rendering, etc). My manager complained that it looked dated and asked why a WebApp couldn't be done instead :-/
I do some minor customization with the UI via the custom css app https://apps.nextcloud.com/apps/theming_customcss to make it a bit more functional. Thankfully they have keept the css classes and don't look to ever be getting rid of them.
I would compare Nextcloud with SharePoint and the latter is a technological relic. Yes, it now has a modern appearance that is based on react, but the backbone is still terrible and the old UI even superior to the pretty much useless new paint.
Ironically the integration between Outlook and SharePoint is rudimentary and will also fall back to using iCal files. At least I never found alternatives. Apple has some troubles consuming them I believe, but I think it was only about some details (repeating elements or something like that)
I use Nextcloud for calendar and have Davx5 installed. I've found it lacking in one way that's critical for me, though.
On the web site if I set an email reminder for an event, it works.
On my Android, if I set an email reminder for an event, it pretends to work, but then sets only an Android notification. No idea why, but there's no way for me to actually set an email reminder from Android.
I much prefer email reminders - I get so many notifications on Android that my brain just ignores them - email is something I actively work on and I can't dismiss it as easily. Because of this, I still have to enter all events using the web site, sadly.
Incidentally, setting the Nextcloud site to send email reminders was a ridiculous pain. I somewhat agree with the author - I still haven't found a self hosted calendar solution that works and syncs properly with Android.
Thank you for your work. I've used KDE for quite a while and I recall the 4.0 shenanigans and stayed with it. I absolutely love the mad amount of customisation that is available and the breadth and sheer depth of the project.
If you could get Kmail/Kalendar to speak Exchange EWS or the like easily then you might unlock a lot of "enterprise" users. I use (Gnome) Evolution EWS on my KDE desktop.
Been using Nextcloud since it was called Owncloud and I make (happy) heavy use of its files, calendar and notes capabilities.
Updates always go well and the android apps are good.
I doubt the general experience would have been as smooth had it not been a PHP "app".
Surprised nobody has mentioned this yet, but Org-mode for Emacs [1] is just great, and fits very well to the requirements:
- Source of truth: these are text files, so any of git, nextcloud, syncthing etc. will do.
- Consistent interface: using emacs might be tough on mobile, but there are some pretty good web interfaces for it [2]. I personally use Orgzly [3] and syntching on my Android
- Standard protocols: custom scripting does anything. ical is pretty easy to handle, not sure about webdav.
- FOSS: check
- Multiple calendars: yep, via Org agenda [4]
- Subtask support: As deep as you can go
- Custom logic: via emacs scripts (or some creativity if you're using other clients)
- Markdown notes: yes, minimal differences between org mode and markdown
> - Consistent interface: using emacs might be tough on mobile
> - Custom logic: via emacs scripts
> - Standard protocols: custom scripting does anything.
Huh?!
What kind of fantasy world are emacs devotees living in? No "normal" or even half-normal user is going to spend hours on "scripting" just to see their calendar, nor are they going to put up with mobile as anything other than a first class platform. For a lot of people, mobile is their only platform.
I don't think blackbear_ is a average user of emacs, remember we're on the same hacker news where a user famously asked "why even build Dropbox when ssh/scp does the trick?" so it's very biased towards "I can hack this together myself so why couldn't others".
If I recall correctly, that user was giving examples of questions that could be expected to be asked by other people. They were not actually tivializing Dropbox.
You don't recall correctly, the users only question is about making money while the rest are statements on how Dropbox don't seem to solve any of the "real" problems and won't even replace FTP (I recalled ssh/sft incorrectly here too).
Interesting. I think those need to be taken in their own context though - at least the second is responding to somebody who is indeed being an 'internet-jerk'. Usually when I see it it's used either in a humbling reminder that the future isn't known sense, or a suggestion not to underestimate the value in simplifying, de-nerd-ifying existing things that work.
I referred to it myself yesterday (https://news.ycombinator.com/item?id=28359928) in the latter sense, and I hope nobody would read that as me being a jerk or attacking BrandonM or anything. I just see it as an 'historical' example of something we can learn from; in the same way as you could learn from some great statesman or general's mistake or whatever, without it tainting your image of the person or being an attack on them.
I suppose most of the jerkier ones get flagged away, meaning I mostly don't see them and dang mostly does.
- org-agenda is slow and completely unusable if you have hundreds of org files.
- despite multiple half-baked efforts there is still no easy-to-use parser and pretty printer for the lanuguage. I'm not even asking for 100% of the syntax, 20% capability of t he built-in org-element API with good documentatiom will accomplish 80% of the requirements.
- no easy way to integrate calendars and org-agenda with something like a calDav server.
> no easy way to integrate calendars and org-agenda with something like a calDav server.
It would be great to have something like this.
I have a system which can at least handle invitations to events by means of a python script that convert iCal files to Org-style headers. It is triggered automatically via inotify so that every time a new iCal file appears into a specific folder it is appended automatically to an Org file. Now I simply save the .ics that comes attached to event invitation emails to have the time slot booked in my Org agenda automatically.
By the way, when ls isn’t printing to a terminal it defaults to one file name a line, so 'ls -a' would work fine here (and arguably be a bit more correct).
I've only recently started using org and haven't yet tried this, but I did research CalDav interop ahead of time and found https://github.com/dengste/org-caldav
Using org-mode is a complete non-starter for me because of the requirement to use Emacs. I'm very happy with IntelliJ and don't wish to rewire my muscle memory/conceptual familiarity from an IDE into an editor that I will detest anyway (because I was forced to use it to have one feature).
I am also a heavy IntelliJ user but have been using emacs on the side. emacs is fantastic and you only need very basic knowledge of it to be able to effectively use it and org-mode. Don't let the "everything is a shortcut" tutorials/videos about emacs stop you from trying: emacs can be used as any other app: with the mouse, clicking and scrolling around... most IntelliJ shortcuts to edit text will work the same on emacs (a few require you to install a couple of packages, if you want I can send you which ones I use to get a very IJ-like experience).
Emacs is very idiosyncratic for beginners. Things like confusing terminology and lack of conformance with CUA (aka Windows 98-style shortcuts for navigation, copy and paste) make for an extremely steep learning curve when all I want to use it for is a very fancy organizer tool. I'm not willing to spend this much effort at this stage.
If you're on Mac, Cmd+C Cmd+V and Cmd+Z do the same as in other apps, and so will Option+Left/Right for example, I guess the problem is on Windows where those shortcuts use Ctrl and emacs uses Ctrl for all its other shortcuts? In which case you can try cua-mode but then you might have trouble with other useful shortcuts commonly used being bound to unusual keys.
"Confusing terminology and lack of conformance with CUA" (aka. being older than both CUA and modern terminology) is perhaps a stumbling block for some, but arguably not that big once a wannabe-user decides to extend their attention span beyond 30 seconds.
If the Emacs keybindings and terminology could be mastered in not much more than 30 seconds, they wouldn't pose a problem in the first place.
There is value in standardisation, and it's unlikely that the current starter Emacs layout provides any unique value other than letting 40+ year old industry veterans keep their muscle memory, while alienating basically everyone born after the age of the monochrome glass TTY.
While I understand that using or not using Emacs is not a competition, it almost appears that Emacs tries to be different for the sake of being different. Just like Mac OS uses the Ctrl+PgDn/Up/Arrow shortcuts in a way that contradicts what virtually every other platform does (including Windows and Linux).
Edit: do not misunderstand my point, I am not saying that Emacs is trying to be different for the sake of being different. I am saying that remaining the way it is, on purpose, when the majority of the world expressed a preference for a different convention that comes with no clear downsides, makes it look as if that were the case. Or makes Emacs look recalcitrant, if you prefer.
> it almost appears that Emacs tries to be different for the sake of being different.
Emacs conventions existed long before CUA became the standard and to adapt to CUA would require Emacs to change some very basic and critical conventions. There were plenty of word processors like Word Star that also featured its own conventions, just Word Star has mostly become an esoteric word processor while Emacs and Vim remain prevalent to this day (I mean... they're still esoteric but not that esoteric).
MacOS also has its own conventions that don't comply with the "standard" which of course, again, came after MacOS established its own standards and of which are superior to Windows, anyway, since it doesn't break compatibility with the unix terminal.
Maybe the real issue is Windows and Linux that decided to adopt the inferior conventions of the dominant OS?
Just because a control convention existed before other implementations, it doesn't automatically make it good. Plenty of older shooter games have a control scheme that besides being unfamiliar, is simply not ergonomic enough. E. g. Wolfenstein's control scheme that uses the mouse to rotate the camera, but also to move the player forwards and backwards.
> Just because a control convention existed before other implementations, it doesn't automatically make it good.
Conversely, just because CUA became the de facto standard in Windows and Linux doesn't make it good, either. They became standardized as a consequence of Windows becoming the most popular operating system and the only reason you're advocating for it is because it's what you are comfortable with, not because it has any meaningful advantages over other keyboard shortcut paradigms.
Yes. My point is, Emacs convention and CUA are basically equivalent. In which case there is little excuse to go with the less popular one if you want to attract young blood without creating an obstacle course they must pass first. If you don't have young blood coming in occasionally, your editor will remain stagnant after a while.
I agree it wouldn't hurt to redesign for CUA, but I'm not sure how much young blood it would actually invite. Hotkeys are just the first thing on a long list of things to learn, and if that first thing puts them off, maybe they wouldn't have stuck with it anyway.
If you use something like which-key* you will see all available key combos as you hit them, I first saw this in spacemacs. This means even when I am unfamiliar with the key commands I have a very low friction way of seeing what's available, under thirty seconds.
> If the Emacs keybindings and terminology could be mastered in not much more than 30 seconds, they wouldn't pose a problem in the first place.
Try 5 minutes then :). No, I'm not joking with this, nor am I trying to be snarky. I've just seen the way people approach new tools, and I also know myself. Most of the time, people can barely give 30 second of serious effort before judging something as "okay" or "too complicated" - at least as long as they view the new thing as something they already know. "It's a text editor, I know text editors, I shouldn't need to learn anything new here".
Once you drop the assumption that you already know Emacs because you know the product category it's purportedly in, it turns out the conventions and keybindings aren't really that hard. The manual and the tutorial do a good job explaining them, and there's always CUA mode to be used as training wheels :).
(For me, the biggest hurdle I faced when learning Emacs was to unlearn using arrow keys for navigation - which really has nothing to do with Emacs per se; you need to do that for any editor in order to use it efficiently.)
As a point of comparison, imagine approaching Emacs like you'd approach Blender or 3DS Max. In my experience, there's less complaints about weird conventions there, because newcomers to 3D graphics don't assume they know the whole tooling space just because they tinkered in Sketchup in the past.
(And that's not to say Emacs isn't full of legacy cruft. It's just that the legacy cruft that's really holding it down is not the things newcomers complain about.)
Emacs takes serious, concerted, and prolonged effort to make headway in. Nothing a new user knows about other software is helpful in working in emacs, so yeah, it's a really daunting and offputting barrier in 2021 when the overwhelming RULE is that tools honor conventions and work similarly.
This is why emacs is a niche application in a niche world, and is likely to remain so.
It's crazy powerful, and I have made OrgMode my organizational home for a long time, but I don't pretend it's a good fit for people who aren't already very nerdy. (Honestly, at this point, if a person with no development background expresses curiosity, I send them to Obsidian.)
While it may be a higher initial investment, emacs doesn't enforce any key bindings, just sets defaults and many people rebind them. Nothing prevents you from creating or finding bindings of your suiting
Key bindings are just one problem. Fundamentally, I don't want to put in the work just to drag Emacs out of the 1980s/1970s and into the modern day, or learn Emacs-specific concepts, when my existing tools already are ready to use from install time and already require no adjustment to my mindset because they use modern terminology etc.
It IS a MASSIVE investment in time and effort to learn something that will appear as an obstacle MONTHS before it becomes second nature. Plus you spend the rest of you natural life fussing with your .emacs file.
It doesn't take months to get familiar with Emacs. You can be quite effective after an hour, although I've been using it for a couple of decades and I'm still improving.
I feel like of all the tools I've learnt to use, Emacs has had the greatest return on investment.
I thought that would be the case too, but after a few years and after adopting Doom Emacs, I've reached a stable flow. I don't fuss with it anymore. I just write new commands occasionally.
Great about Doom Emacs:
- has sensible VIM keybindings, no need to learn the Emacs ones
- has batteries included, no need to tweak the config more than "yes, I'd like to activate Magit"
makes it possible to actually be productive with org-mode within an hour.
I tried so many times to get into it, but the barrier of entry is really high I find. Learning a number of shortcuts and keyboard flows just to take notes is not a very good idea IMO.
I picked up emacs long ago simply because it was modeless (i.e. not vi), but I haven't advanced beyond to-top, to-bottom, search, replace, save, quit. As others have eloquently said here, the terminology and the odd key bindings are an impediment.
I'm in a terminal all day. But I point and click for calendar, notes, etc. I can't remember all the syntax and shortcuts. But the 'Create Event's button is generally easy to find.
I've fed these to a custom NewTab extension and that has been a huge win for me. I make a new tab like every five minutes so it's always visible.
Last time I was looking into org-mode, I ran across an extremely frequent refrain of "there are no 3rd party tools for it, because there is no spec". And then I looked for apps that'd work with it anyway, and came up shockingly short, though some of the most-trivial things generally worked. (orgzly is the one I ended up with. it's pretty good, definitely recommended for anyone doing this)
Has that improved? It seems fine if you do everything from the CLI (or similar), but emacs is a little difficult to use on a phone.
We're working on a formal grammar and a test suite that can be used to specify expected behavior. See the linked mailing list thread [0] for pointers to some of the interested parties.
I just wanted to chime in and mention that the folks who wrote organice[0] also came up with an EBNF grammar[1] for org-mode. Also of tangential interest is that work is actively being done on creating a tree-sitter version[2] of the grammar, although that work is not public (yet).
~3 years ago, and literally anything. I was trying to see if org-mode could serve as a long-term store of info (i.e. decades), so multi-OS and "likely to have other working implementations" or "can re-build by hand if necessary" was critical. Since then I've just settled on a pile of markdown/commonmark files that interlink when desired, and I'm pretty happy with that.
Everything essentially just said "use emacs, that's the only implementation and the only spec". So I tried orgzly for a bit (it's handy), but ultimately decided it's a "hard no" for things with only one impl.
On iOS I recently found beorg [1] for org-mode, and so far I'm happy with it. I've got it set up to connect through WebDAV to a GitFS mount on my homeserver, so that I automatically get versioning. I sync to the Git backend on my desktop.
I keep hearing about org mode but want to avoid emacs unless its really worth it. Is there a youtube or demo to show what it actually does? I'm pretty happy with a couple of text files, I'm not sure what I'm missing out on.
Org mode does a lot of different things, but one use case I find interesting is to be able to mix prose and program output in a technical document in a way that keeps things consistent when things change. I made a video[0] a year or so ago that explores Org's literate programming features that I think does a pretty good job of illustrating the power of Org.
I love Org mode but the fact that relies on emacs can push some people from using it.
I've been using lately [logseq](https://logseq.com/) and it's fantastic. Has the features I love from Org mode, plus what I like from Workflowy, stores the data in plain text in Markdown and supports cross references, images, and more.
There is an iPhone app for org-mode. It's free as in both. It's called beorg and it works great. Syncs org-mode files over iCloud and let's you edit them via a touch interface. Supports a very big subset of org features.
Just to provide another perspective: I use org as a notetaking-and-todo app, and BeOrg just really doesn't work that well for me AT ALL.
I've given up on true iOS access to my org files except for must-do situations, and then I just use Editorial or Byword or some other iOS editor pointed to my Org folder in Dropbox. For capture on the go, I mostly use built-in notes and reminders on the phone and just port the data over later.
I love org mode and use it all the time, but I still occasionally blow up my file with inadvertent vim commands! Yes I know I am a weirdo for using eVil mode :)
The most common mistake I make is having caps lock on and hitting J a bunch which merges all the lines together.
Yes, using evil mode in emacs puts you in the weird position of being scoffed at by both vim users and emacs users ;)
> The most common mistake I make is having caps lock on and hitting J a bunch which merges all the lines together.
Oh that happened to me as well one day, it was catastrophic! I did not realize I hit J on a folded header (which joined all lines in that section) before saving and quitting at the end of the day. I only realized the mess on the next day.
I wrote a blog post [1] on how I solved it, if it sounds interesting.
I found <https://github.com/hlissner/doom-emacs> doom-emacs to be very pleasant to use. Loading times are so much better than spacemacs. And using an external binary for updating etc. really helps.
seconded a million times. to me, nothing rivals org and its ecosystem. i’ll give org-roam a shout too, if you’re into this type of networked note-taking
I'm the author of the article, it's always fun to see your own articles pop up on HN unexpectedly.
This post was written several months ago and in the meantime I have given up on trying to cobble something together using existing solutions because they don't provide the extensibility that I want.
I'm building my own replacement from scratch focussing on tasks/projects/calendars first. The architecture is a postgres db exposing CRUD API endpoints and all changes are broadcasted over MQTT so I can easily hook into everything for automation and extension.
I have a desktop application in JavaFX and a mobile Android app so I can use Kotlin as one language across all clients and backend. Lots of code sharing going on for things like API models.
MS Exchange server for tasks and calendar, OneNote for notes, SharePoint to sync these notes.
Closed source, expensive, designed to be supported by professionals, you might need more than 1 server/VM to run them all, requires AMD64 processors.
Well tested (used by millions of people every day), relatively secure, not terribly hard to setup (follow installation guide / best practices documents carefully, and you should be fine).
OneNote is worth it by itself, it's so good. It also works on mobile really well, the search is awesome,I just wish the sync was slightly less opaque for large notebooks with multiple authors.
Viewing tagged notes has been in OneNote since 2010, not sure what you mean. ToDos are a built-in tag type, but you can also create arbitrary other ones and filter based off of those.
I understood you, that's what this does. See the quote below extracted from the link I previously posted. Note that the page it autogenerates is post-filtering and works the same way for any tag (built-in or user created). The summary screen is usually enough for me, but the full note page is nice sometimes because you can annotate it just like any other page.
"If you want to view the tag search results as a notes page, click the Create Summary Page button at the bottom of the Tags Summary task pan."
Huh, interesting. Doesn't seem to be an option on the Mac version, and I don't think there was this option the last time I tried to do it in Windows, but I'll admit that was a while ago.
love OneNote, easy and quick for collaborative documentation around implemented systems. It does seem to process the text from images so it can search on them. However, searching IP addresses is not very good
Actually my business email is currently setup like this. I have a business o365 account and use Outlook on Windows/MacOS/android/iphone and Thunderbird on Linux.
But I want to move away from it because I want to 1) gain control over my data and 2) extend the system with automations.
Thats why I started researching open source and self hosted alternatives.
I planned to comment on the conclusion as well. I think these protocols often do not handle things well enough and in the end the apps out there do not implement them properly anyways. You always end up building some kind of CRUD/RPC thing that works via HTTP/WebSocket which is why things like Todoist and etc work well and are able to add the features everyone wants in the end.
This is what I concluded as well. The end goal for my desired system is to make it straightforward to hook into events so I can add automation.
This turns out to be very hard to do based on CalDAV/WebDAV protocols because many clients and services implement the spec differently or only parts of it.
That's why I switched my approach and I'm writing my own backend storage layer that has my desired event system builtin on that layer (Using Kotlin/JVM for the backend, postgres for storage and MQTT for pub-sub to events). On top of that storage/api layer I'm building CalDAV/WebDAV support so external clients can connect to it.
Having my own HTTP+MQTT API makes it a lot easier to build modern clients as well. In fact because I chose Kotlin/JVM as my baseline and have already written a pure Kotlin client library I'm making a lot of progress on both desktop, android and cli tools to interact with the system.
Nice, good choice IMSO. Kotlin Native Multiplatform Mobile would make an iOs app less porting work. Only the UI/Views would differ, ViewModels, http client and DB can be shared via Ktor and SQLDelight.
Currently I'm doing JVM only using Retrofit and Jackson instead of Ktor. Mostly because I know the JVM ecosystem best and supports all my target platforms. It's delightful to work in a big monorepo that shares API models all the way from the backend to the clients.
The backend and client libraries will be fully open source. That's the only way a self-hosted project like this can work.
I'm not sure about the android/desktop apps. I might keep them commercial for a bit to experiment with an open-core monetization strategy.
Give me a couple weeks to iron out architecture details and write some design docs and then I'll publish the project on GitHub. Shoot me an email if you're interested.
Have you noticed if any of the calendar protocols allow for recording an appointment without specifying a date?
Consider a haircut that will take 45 minutes & will invite two people (me & the barber), but the day/time is still undecided. Perhaps that sort of appointment can park at a placeholder date with infinite capacity until the real date is scheduled?
There's a draft that's been floating around and renewed multiple times over the years called VPOLL which is supposed to do basically this, but it's very tricky to get the edge cases sensible, so it's still not totally done. Generally one party offers appointment times and the other party books one, which simplifies it considerably.
It looks like I missed the option to set an htpasswd file directly on the radicale server. After a second look at the Radicale documentation it looks like it supports both, htpasswd directly on the server or configured on the reverse proxy.
I’m frustrated that adding and tracking public events is still so primitive. Why can’t I just click a button and follow all the local events for my favorite artist/venue/team/theater/charity? Why do I still have to manually create events and copy and paste details? Why are there so few “add to calendar” and why do they often fail?
Part of it is down to the failure of micro formats and the semantic web, but it would seem like with today’s technology it wouldn’t be to hard for a browser extension to recognize an event and automatically extract the correct details (title, place, date, time).
> Why can’t I just click a button and follow all the local events for my favorite artist/venue/team/theater/charity? Why do I still have to manually create events and copy and paste details? Why are there so few “add to calendar” and why do they often fail?
It's because of advertising.
Artists, venues, teams, theaters, charities and other performers may themselves not care - they make money on you being there. But everyone else between you and the event, they make money on your attention. They explicitly don't want you to streamline or automate event discovery and attendance scheduling. They want you to visit their pages, and be exposed to ads (whether it's regular ads where they get paid per click, or ads for different events with which they make money on you deciding to attend).
The "attention economy" is, by definition, built on making everything inefficient and full of hassle. To monetize attention, you have to make the users pay it first.
This may be an tired point, but I feel it bears repeating. The problem isn't one of technology - the tech for what you want exists, and actually worked much better in the past. The problem is businesses: they actively don't want you to use the Internet in this way.
I agree there are market forces fighting this. That’s why I’d like to see better event detection and handling built into user tools. It’d be great if I could, say, right click on a date and “add to calendar”, with details auto-populated via ML or site-specific algorithms. Or maybe I could paste a URL directly into my calendar app and it would scrape the details for me. Seems like it could be doable.
I run a free hand-curated concert calendar in NYC[0] with a friend. It's all operated manually and we still end up with 15-20 great shows every night. If this were automated or scraped, you'd have 250 events on your calendar per day.
Sure it might work if you just pick one venue, or a handful of artists. But it's not particularly helpful since you'll either be overwhelmed by spam (venue shows you're not interested in) or you'll inevitably be missing out on a lot of great events (since you're filtering on very specific parameters).
On our app, you can swipe on any show to add it to your phone's calendar instantly. 60 seconds daily or a few minutes each week and you can build your own subset calendar from our already curated calendar. It's honestly very efficient and low-tech.
I do subscribe to some remote calendars like my favorite sports team (NBA provides per-team calendar URLs). If you're in a smaller town with just a few venues, I bet you could do that too. For the privacy-conscious among us, you can always route them through Cloudflare Workers pretty easily.
Although I am nowhere New York, I want you to know that I think your hobby project of curating a concert calendar is bitchin'.
When viewing the website on my desktop computer(mac OS, Firefox), the "add to calendar" functionality that you mention being in the phone app is not, so far as I can tell, available. Perhaps I missed the button?
Live music is a ripe market for a new social network!
There's a few music apps, but they focus only on the audio. I wish there were a combined app for managing everything together.
Listening to music (Spotify, YouTube, iTunes), keeping track of what music I've listened to (Last.FM, iTunes play counts), making playlists (Spotify, YouTube, iTunes), organising playlists into folders (iTunes), syncing music to devices offline (iTunes).
I hear about bands I like being on tour (Facebook, band websites, posters), I buy tickets (Ticketmaster, LiveNation, trains), go to events (iCal), take photos (iPhoto), and keep track of the bands I saw live (Excel).
At those events, I buy physical T-shirts, hoodies, posters, and CDs, and get them signed by the band when possible (NFT, Wise, bank cards, cash). I meet other fans while waiting in the queue, and exchange contact details (Contacts, Facebook, WhatsApp, WeChat, LINE, KakaoTalk, iMessage). I then see the other bands that friend likes (Facebook) and check out their music (Spotify, YouTube, iTunes) and the cycle starts again.
When I listen to a song, my mind still makes connections to the memories of that time I crowdsurfed while the band played it on Warped Tour '08 in LA during my exchange programme to California. Having software that could help me create the links to organise all those memories would be wonderful. It doesn't exist yet though, from what I can tell - so I hope someone will write it!
Third party services are totally capable of this. Google Calendar has a "subscribe to calendar" feature that puts every event in somebody else's calendar into yours. I know of several clubs and fandoms that use this feature to track public events, and at least one music venue near me uses it as well.
Agreed! and they do this for holidays, sport games, all sorts of stuff.
Add Calendar > Browse Calendars of Interest.
The gym I go to also publishes their calendar as a google calendar I can subscribe to. So maybe it's more of the adoption concern that the GP is highlighting.
On the other hand you can click a link on a web page and have your calendar filled with spammy fake calendar events advertising who knows what.
It's not a failure of the semantic web, but more a failure of no one creating a shared calendar like that. (And Facebook not giving API access to calendar events).
Facebook still provides a personal calendar feed, not a feed to events on some Page/Group. So you have to actually visit Facebook (watch ads) and add events to your facebook calendar, which can then appear in your calendar app.
All of these platforms end up more closed as they get bigger. Why let someone view events in their calendar for free when you could get them on your app and looking at adverts.
> Why can’t I just click a button and follow all the local events for my favorite artist/venue/team/theater/charity?
Because it costs time and money to collect and maintain those data. And you need a proper technical solution to let other use those data in a meaningful way. Usually it busts at the second part, because either the people have not enough time or expertise to offer exportable data; or it's not in their interesst, as they earn money from presenting them to the users.
The whole self-managment-space sucks because everything is so one sided. Other people must do something and offer something to make it work, and we as the users have little to no way to make things work from our side with little to no effort/expertise.
The real joke is, there are all kind of specialized solutions and ugly hacks from users to make things work. But all of them are isolated solutions. What we might need is a gamechanger to empower the users, simplifying automation of those things from our side. Home Automation has it's vibrant community with home assistant, node-red, etc. Why does something like that does not exist for work automation? IFTTT&Co. is the best we got so far, and those are commercial solutions running in the cloud, not in our homes/desktops.
Our local MLS team had a feature to add the game schedule to your calendar. I was excited, but it turned out that for Google Calendar you had to grant a third party app read and write access to all of the data connected to your Google account, including your emails. Surprisingly, Google did a good job of explaining the possible consequences of that, including all your data being irretrievably deleted.
So I added all the games by hand, and a few weeks later, the entire second half of the season was rejiggered.
I route my remote calendars through Cloudflare workers for a modicum of privacy. It's as simple as running a basic open source relay and prepending the worker URL: https://github.com/Zibri/cloudflare-cors-anywhere
Yes, unfortunately even when there is a calendar integration offered, it’s often through a “heavyweight” oauth-style API that requires all sorts of crazy permissions…
Sometimes they try to be clever and detect my calendar provider and do it wrong. Sometimes they request oauth-style API permission to my calendar. Sometimes they link to a .ics file that isn’t handled.
It sounds like you have 2 issues here:
1. You need a user based event recommendation service
2. You need a personalized calendar subscription from that service (These don't have to be connected services)
I think a lot of this comes down to walled gardens kicking out formats from being developed. If we had a standard for event announcements, I think we would have had a chance.
Personally i have a better experience, with most places sending me an email that says“ Do you want to add this event?” And i click yes and it gets added to my calendar with location or Zoom link, etc.
I also had a shared calendar with all of the events for my lab synchronized.
I don’t think this is open calendar because it was Google, but it made events pretty seamless.
Gmail does a pretty good job with this, but there are some scenarios that don’t work properly; if I recall right, one is when you get a forwarded invite, you get the “add event” dialog on desktop but not on mobile.
Given the (commercially-driven) failure of the semantic web, I'm in favour of diversity (even if at the expense of convenience). Sooner or later network effects means this sort of service will likely still end up as a monopoly in the hands of some F**G organisation (probably G) but in the meantime we can live in hope.
Technically, there is lots that should be possible to do here.
I used to run an events tech listing site and we had an export/share box with various feeds, filtered or otherwise. We heard anecdotally that many people just imported whole feeds, in ical or rss formats. One company used to pick events into their company calendar and we had a "add" button that worked just fine for them.
There is a comment about commercial interests - that can be one problem. I said "anecdotally" because it's pretty impossible to get accurate usage figures with a lot of this stuff. I decided that counted as a minor inconvenience for my use case and did it anyway as I thought it was the right thing to do. But I can see in some companies that would be a hard sell. I suspect that's why some people end up with "Give us write access to your google account!" solutions. (I always say no.)
> Why can’t I just click a button and follow all the local events for my favorite artist/venue/team/theater/charity?
Having moved on from the tech listing site, I've now got a side project that is trying to do just this. It's at https://www.theoccasionoctopus.net/ I don't know whether to sell it as like Twitter for events? Basically you follow accounts that interest you, these accounts promote events they thing are interesting, any you also think are interesting you can copy to your own account/calendar. I'm working on it slowly but it's already useful for me, so that's fine and I'll just carry on.
But the real problem here is getting people to publish any kind of structured data on event listings.
There was one event organiser I used to follow; they had events with schema.org markup on their site. It wasn't to hard for me to write a small Python scraper bot that got the events and added them to an account/calendar in my app via it's API. But then they redesigned the site and lost the schema.org markup! I actually know the dev team on this site so I kept asking them to put the schema.org markup back but they never did. It went on their backlog and I guess just never became important enough.
There are some other event apps working on the same kinda thing as me and I support any of them that have open data feeds - anything to show people there is value to providing open data feeds is good.
> Written in old PHP and there is work underway to do a complete rewrite in Golang
I will never understand "the big rewrite" philosophy, no matter how many times I hear it.
Are some languages better than others in some aspects? Yes, but:
1. if you think that changing language is the only way to make a codebase secure, then there is something wrong with your security practices.
2. if you think that rewriting in another language is the only way to improve code quality, then there is something wrong with your software development practices.
3. chasing "the hot new thing" is a never ending cycle.
Choosing something like a calendar client based on what language it's written in, instead of its merits as a client, is such a ludicrous concept.
I wish them luck with the rewrite, but those sorts of rewrites are usually just replications of Apple's Copland. I suspect these sorts of rewrites are attempts at capturing the zeitgeist of younger developers.
OP is going to be in for a world of hurt trying to find a solution, there's a reason why all these libraries are in 'old PHP'. Most of the big companies have 'Appified' their APIs with calendars, and the old .ical etc formats are there for legacy support. So you need to create an app, delegate it permissions and then you've got a REST API to play with. If you've got the skill to do this, you'll have the skill to write a syncing script.
For most languages I would agree with you. But I worked on a project that migrated away from PHP, and it was definitely worth it. Before the migration, a pretty big portion of bugs were because of weird unexpected things PHP did, afterwards, not so much. All languages have quirks, but PHP is on a different level than most popular languages.
And perhaps more importantly, a lot of developers hated working in PHP, and switching languages increased developer satisfaction.
Yes, it is possible to make secure, quality software in PHP, but it is more difficult than in many other languages. If making your app secure and higher quality requires substantial refactoring, or the marginal cost of maintaining security and quality in a PHP app is sufficiently high, switching to a different language could very well be worth it.
I'm going out on a limb and guess that either it wasn't a particularly large codebase and/or it didn't have many dependencies and/or you had more than enough resources so you could do the rewrite while at the same time providing support for the current version.
In the case of Nextcloud, my educated guess is that none of the above conditions is true.
It was a pretty large codebase, but we did have enough resources to do the rewrite while maintaining the current version. Sort of. It was migrated incrementally, and basically whenever we needed to fix a bug or add a feature to something that was still in the PHP part, we would migrate that specific functionality over to the new language. It did take several years, but since it was done incrementally, we got value from it along the way.
That's good that you could do it in phases, with some legacy monolithic codebases sometimes different pieces of functionality are tightly coupled so that's not always an option.
Lots of legacy gotchas that aren’t as secure as you would expect because fixing the implementation to make them secure would break someone’s production code.
how long do you expect the underlying older PHP basis to be supported as a module in apache, or run viably through whatever nginx does? what guarantees of backporting CVE security issues is there?
This wasn't just hatred of PHP (its a C like syntax. low barrier to entry) -It was about OLD php. Depending, formally (it may work on new PHP but it isn't clear. it might use deprecated language features or side-effects which dont work that way any more in newer language platform) on the old language spec can be a nightmare.
Plus, if its in a language you don't "like" then local mods are harder.
Would you e.g. run a Rust binary, if every other dependency you had was in GO? Or, APL, if nothing else you ran was in APL? Some choices about language make sense, if you consider the full ecology of running a service on a host.
Except it's not old PHP? Nextcloud stable officially runs on PHP7.4 and that is still officially supported for a little while yet. I personally run it on PHP8 with no issues
> how long do you expect the underlying older PHP basis to be supported
You can keep software up to date without rewriting in another language, which is what Nextcloud did by the way, as it runs perfectly on my box with PHP 7.3.
Yes, I get the specific instance isn't a good example. I'm working in a space with code which was written to very old Perl with CPAN, and we've emerged into a state where the CPAN dependencies actually can't be made exactly the same, and the old perl is not workable on the new platform.
You're arguing the specific, I'm arguing the generic: it is possible to wind up in a place where your old code won't re-compile, or run.
This is ridiculous. The guy just goes around bashing everything that's not Rust as "old". He even claims Java & C "is not very suitable for cross-platform world". So obviously his conclusion is "I'll have to write something in Rust!".
Huge world of "groupware" software around. Think Zimbra. Owncloud is hardly the only choice here...
Author here, let me nuance a little bit what I mean with "cross-platform world".
It's 2021 and there are 3 major desktop and 2 major mobile platforms, plus some smaller ones on each side. And then there is the Web, which is both mobile and desktop focused.
If you're going to write a new library that you want to use on all of these platforms, you need a programming language that works on all of these. For iOS Java is a non starter because as far as I know there is no proper JVM that can be used in App Store apps. C can target all these platforms (including the web using WebAssembly) but it is a major pain to setup the tooling for every platform, especially if your library needs complex dependencies for things like SSL.
I am not a Rust zealot that advocates rewriting everything in Rust. I only mentioned Rust once in the whole article so your "obviously" comment doesn't really hold. The reason I mentioned Rust as a language for my project is because it is one of the modern languages that have cross-platform building and dependency management builtin from the start. It is a lot less work to write an SSL-enabled library in Rust that can be used on all these platforms than it is to write one in C.
> For iOS Java is a non starter because as far as I know there is no proper JVM that can be used in App Store apps.
I am assuming the only ways are without a JVM, like what Scala does.
> C can target all these platforms (including the web using WebAssembly) but it is a major pain to setup the tooling for every platform, especially if your library needs complex dependencies for things like SSL.
You mean dependencies for things like "a specific SSL implementation in this language" which happens not to be in the platforms where you want to ship. If you use the system SSL implementations, then you don't have this problem.
> I only mentioned Rust once in the whole article so your "obviously" comment doesn't really hold.
"Old language" and/or "unmaintained" are basically in the Cons section for every server package, even when they've had releases within the last year! And then the conclusion goes to mention the need to do something "modern" (I hate "modern" used generically like that) and goes on to only mention Rust...
> The reason I mentioned Rust as a language for my project is because it is one of the modern languages that have cross-platform building and dependency management builtin from the start
"dependency management" here probably means bundling an SSL implementation with your package, of course. Not only you are doing a disservice to everyone except for yourself by doing that (since now your binaries have an effective expiration date, they don't respect the system's certificate stores, etc.), but it is also against the advice of the 2 mentioned mobile platforms themselves, which recommend using their native SSL rather than bundling (e.g. NSStreams for iOS, and Android ... well, Android's official API is still Java...).
And the problem is, if you were comparing these languages and said "oh, it's more complicated to use than the preferred languages in iOS and/or Android", I might agree. But comparing it to Rust, however "incredible" tooling it may have...
I did not succeed yet and iOS was indeed holding me back to use Java (or Kotlin, my preferred JVM language). Since a few weeks I've ditched my iPhone because of to the upcoming CSAM scanning changes and I'm back on Android.
By dropping iOS as a requirement, Kotlin/JVM is feasable again for all my personal target platforms and I've decided to use that as the main language for my system.
Codename One has support for an iOS target, from what I can see. Even if it wasn't supported on one platform, it hardly would make Java a legacy language.
I'm using Nextcloud for calendar and tasks, and I keep notes in plain markdown files that are also synced with Nextcloud. On Android I use Nextcloud Notes, Nextcloud Tasks and https://github.com/Etar-Group/Etar-Calendar
These are by far the best note and calendar apps I've used. Far better than Google's options. Apple's reminders are a bit better than Nextcloud Tasks, but the only feature I'm sorely lacking there is repeating tasks. Google doesn't support this either, which leads me to believe that it's a shortcoming of the CalDav spec for tasks.
If you're on Android, I suggest tasks.org, it supports repeating tasks even if the server doesn't. Of course that means you have to use it when completing a repeating task.
I also find this to be true of email clients. GMail reigns supreme, but there is pretty much no email client out there that is:
- A good UI/UX
- Doesn't store your data in their cloud
- Is cross-platform (even just iOS/OSX, but certainly not iOS/OSX/Windows/Android).
Thunderbird is one of the only contenders here, and I find the UX of Thunderbird to be abysmal. I've started to kickoff a project to fill this space, but admittedly it's a big project and doomed for the shelf :/
Outlook is the obvious (paid) contender not mentioned.
Great UI, you can connect to pretty much any email address (although works best with Exchange, but you don't have to host your mail on 365) and has native Windows, OSX, Android and iOS clients, all bundled in for about $6 per month. Plus if the company you work for has 365 you can usually use those licences for home too (5 device licence is standard per seat).
Plus, for that $6 a month you also get Word, Excel, Powerpoint, OneNote and 1TB of OneDrive space. I don't want to sound like a Microsoft shill, but 365 is a steal considering what you get for the cost. But it's not free.
This is very subjective; I hate it ;). I consider Apple's Mail.app/Calendar.app/etc much better UI-wise.
> Android
Note that Outlook for Android (not sure about iOS version) is rebranded Acompli client, which sucked all your email into the cloud. This was instant no-go when it originally came out, so I ended up with Nine (https://play.google.com/store/apps/details?id=com.ninefolder...), which has an additional advantage, that the device admin rules enforced by Exchange can be applied to app only, not to the entire device.
> This is very subjective; I hate it ;). I consider Apple's Mail.app/Calendar.app/etc much better UI-wise.
Agree it is completely subjective - and I actually think that the Apple apps look better and are simpler to use, but personally I spend a lot of time in emails and arranging meetings, and I can get what I need to get done faster in Outlook (although I have tried to get along with Mail/Calendar in OSX, it's just slower for me).
For instance, let's say someone writes an email to me with 10 people on copy and says that we need to organise a teams/zoom call (which is a pretty common thing), the workflow for this in Outlook would be 5 clicks and can be done entirely within the application (including creating the Teams/Zoom call link). In Mail.app/Calendar.app it's way more involved and you get lots less control.
But if you just want a casual email client, then Mail.app probably does what lots of people need it to do. So when I talk about good-UI for me personally, I'm not necessarily talking about it being beautiful, but I think Outlook is more functional specifically for a power-user.
I'm a big fan of outlook as well, but it should be noted that it doesn't have write access to google calendars which can be frustrating. As a mail client, it is great.
Since you mentioned this could you please give some hints on how to enable external forwarding at all? Spent hours on the issue last month before finally giving up deciphering the maze of the legacy UI. Thanks in advance.
Totally opposite for me, outlook desktop is so slow, regularly crashes and has horrible patchwork of UI and the web client has been great, super fast and feels like a streamlined and unified evolution. Adding ics events is bizarre and annoying but other than that, i'll never go back.
The problem with a lot of these applications today is that they work with the kind of information you want might want immediate access to from many devices. That means cloud-hosted options have a compelling advantage in convenience, which for many users will inevitably outweigh any security and privacy concerns.
I would love for the FOSS community to come up with a simple, SOHO-friendly server/appliance to act as the central repository for information like messages and calendars and be accessible to all devices on the local network (or via VPN from outside). Then we could have some competition for favourable UIs without every application having to reinvent the wheel for all the back end protocols and formats. Sadly the experience of applications like Thunderbird suggests there isn't currently a critical mass of interest in working that way and most of the market is willing to tolerate the downsides of the cloud applications in exchange for better UIs and more convenience.
Hypothetically, aggregating your email to a specific client hosted on your server then using JMAP (not IMAP!) would be what we are all waiting for. However, interest in JMAP isn't really there.
The search 2 filter thing is useful in some circumstance, like when you’re not sure exactly what keywords you’re looking for. You use the main, fast search as a broad phase and then rapidly try a few filters to narrow it down. Of course, if there was a way to just reuse your search window instead of opening a new one that would also work…
What really gets my goat is that there’s no way to make search go directly to the ‘show as email list’ view. I used to have an add on to do it but it’s no longer compatible.
IIUC, Mailspring (Nylas?) inserted their own cloud layer in between your device and a cloud email provider, to store email and provide "value added" features; so it's not cloud-free and requires trusting one more entity.
Apparently half the issue is that IMAP sucks so much that any email client is bogged down in dealing with an ancient and bad API that they waste resources before getting to making it good. All the proprietary clients use a custom API which doesn't have to deal with legacy garbage.
I remember when Chandler was supposed to be the last word in calendars. Even Mitch Kapoor of Lotus123 fame got involved (https://www.chandlerproject.org/).
There's something very Bermuda-triangly about Calendar applications. Why is it that in the year 2021 no one has truly cracked the problem yet?
I was wondering if someone would mention Chandler and indeed - two mentions. Interesting chapter (blind-alley?) of history, with a lesson in there somewhere.
The Calendar bits of Chandler were just fine, it seemed to me (but I would say that, I wrote a chunk of it).
We just didn’t figure out what we wanted to do with Chandler until it was too late. The actual final release had the bones of a pretty great organizational system, albeit mixed with the carcass of half a dozen other things we’d tried.
Because calendars are a social rather than technical problem. Apart from the very basics like sending and accepting invites (which existing protocols have already solved), there is no way any large enough group of people will agree on a single process for such complex social interactions. This is the same reason why email hasn't been able to evolve in any substantial way in the last 30+ years.
I've had good success with Baikal, a sabre/dav-based project, on PHP 8.0. It still is only CalDAV and CardDAV though, no WebDAV for file/note sharing.
Installation can be janky and there's no clear documentation on dependencies -- and it'll fail silently if you're missing any. On FreeBSD I install the following PHP packages and then it works splendidly:
Synchronizing events beetween calendar systems is hard. iCal may be a serialization format, but it doesn't handle things like: sync event from system A to system B, update in System B, how do we tell System A? For simple events with no attendees that is easy. But once you deal with recurring events, and everyone's varying implementations, it quickly falls apart.
Internally all the major Calendar services (GCal and Outlook), store events differently when it comes to events with multiple attendees and recurring events, and it takes understanding the varying nuances to perform good synchronization. Even the difference between a timed event and an all day event will vary from system to system. And that barely touches the timezone issues that arise when scheduling.
Add to all that : the calendaring hosting providers will block your API access to their customers so unless you have a business relationship with them, or the technical solution means that they can't block you, it's a crappy business proposition.
The iCalendar RFC doesn’t specify this, but the CalDAV specs work just fine.
It’s not trivial, but it’s also not especially difficult to implement. There sure are a lot of productive implementations of clients and servers out there!
Admittedly scheduling is hard, and frankly the iTIP model is just not that well suited to most people’s lives.
Can anyone here recommend a slick open-source GUI calendar app for Linux with support for iCal, WebCal, recurring events and notifications? I've been following GNOME Calendar[0] for a while but judging by the website it's still mostly WIP.
I've been using Thunderbird's Lightning add-on for a lack of alternatives but it's mostly been a PITA.
I love the one that comes with elementary OS[0]. Looking at those screenshots, it seems to be a fork of Gnome's calendar?
I've connected it to both Google Calendar and Nextcloud's calendar, and it works perfectly well, provides notifications, recurring events, and I can quickly access today's events just by clicking on the clock on the bar. No complaints what so ever.
elementary's tasks app, on the other hand, is still WIP.
I've been using KOrganizer[1] for longer than I can remember. For better and/or worse, it's pretty tightly integrated with the Plasma desktop. For now at least, I use it with Google Calendar as its backend. Every once in a long while, it gives me some scary-sounding error message about failing to sync — but so far as I can tell the sync works just fine, albeit sometimes with a bit of lag.
I recently also started using it with my work-mandated Office 365 calendar. According to some docs somewhere that I can't find right now, there were quite a few hoops to jump through to make that read/write so I settled for read-only.
Have a look at davmail. It's essentially a exchange to IMAP/calDAV... translator. I used it before with our work exchange server. It worked flawlessly (better than the imap support in exchange IMO)
1. There is a CalDav/CardDav bridge which lets you use apps that don't implement the ETE protocol which is good because...
2. The iOS app is nigh unusable. It is painfully slow, requires manual syncing, and if your screen turns off in the middle of a sync, it may get killed by iOS forcing you to start the whole thing over again. Just set up the DAV bridge and use iOS's native DAV syncing.
Seconded. It was a bit more awkward to set up compared to Nextcloud or Radicale (which both support standard DAV) but the Etesync Android client and desktop bridge work very reliably in my experience, and the added bonus is end-to-end encryption. I now have my contacts and calendars on Etesync and haven't needed to touch it, easily configuring it on new client devices as needed.
And JMAP, which makes an excellent foundation for client development, web and otherwise. Cyrus implements the calendaring and contacts drafts, counterparts to CalDAV and CardDAV. (See https://datatracker.ietf.org/doc/active/#jmap for the active drafts. JMAP working group minutes from IETF-111 last month say of jmap-calendars, “hopefully finalise by end of the year” <https://tools.ietf.org/wg/jmap/minutes>. JSCalendar, which it also depends on, was published last month as RFC 8984.)
Fastmail’s web app—mail, calendar, contacts and everything else—is built on JMAP, though it doesn’t yet support offline synchronisation which JMAP is well designed to support. (Fundamentally, JMAP is an object synchronisation protocol, not an email protocol or anything like that.)
See also Standard Notes[1], pretty much a drop-in replacement for Apple's iOS Notes app. Decent web interface with (paid) plugins, great desktop and mobile apps, backend can be self-hosted as well. It's really good and its OSS[2].
Yes, it's not a drop-in replacement. How do we get a drop-in replacement?
My take: as customers we have to pay for incomplete solutions and then be vocal customers. Take my money! This is the way. Otherwise "free" and "open source" solutions will just never reach the level of quality needed to take off.
I've been using Standard Notes for 2 weeks and it's solid. I like the fairly minimal UI, ability to self-host, and ability to just pay them to run it. Syncs fast.
Standard Notes won't be a competitor in my eyes until they add extentions/theming support to the free tier as well. It's an absurd and zero-margin holdout that makes zero sense and only drives me away from their service.
No, because that's also another sweeping statement. There is plenty of FOSS that simply just works, has objectively excellent UX/UI, and meets a user's needs.
Well said, appreciate you taking the time to get me up to speed. See some of my other comments where I'm grappling with frustrations around FOSS and a desire to pay to make things smoother.
I don't want my knowledge and information to be gated behind a subscription fee. I'd rather just host it all myself, maximize redundancy and then forget about it. The system has worked fine for the past 2 years, and I have a hard time believing that anyone here is selling my private journal.
I don't think about it much, because I can't install extensions or themes to it. Meanwhile, Obsidian Notes has no problem letting me do anything I want for free, which makes it a better self-hosted notes client for my use-case.
Circling back I had not realized SN disables themes and extensions on the self-hosted version. I could see them providing some proprietary themes/extensions if they want but self hosting just seems so hard just let people do what they want and let people like me pay for it.
This is a problem with all of these tasks having similar, overlapping use cases and similar, overlapping technology implementations. There are also remarkably few standards for the things around calendars, so most clients kludge something up with structured data sent over e-mail. Which leads to every implementation having its own, non-compatible spec.
Even something as simple as forwarding calendar invites can have dramatically different functionality between two systems. I was at a company that ran split-brain between Google and Lotus Notes and it was an absolute nightmare that effectively broke calendaring for 2 years because you could only forward events one way, and acceptances wouldn’t flow back up the chain because some of the clients used a different mechanism for signaling acceptance.
This has all been a problem for decades. The business world solved this by just forming a consensus on Outlook / Exchange in the mid-2000s; if you use any other combination you have to accept that there will be dropped communications with those who use the standard stack.
Missing from almost every calendar hosting thing I've used is the ability to publish free/busy information to allow others to schedule me into meetings without needing to be on the same system.
I'm pretty sure vCalendar supports this, just no one has implemented it.
If I could host a lightweight javascript app that let you browse the information until your client supports it properly that'd be cool.
Lotus Notes had that. Administrative staff could look at your calendar and sign you up for things..
Of course all Notes Mail and Calendar are just Notes Applications built upon its nosql database and lotus script. Its why they were kinda awkward. But I worked briefly at IBM making custom business Apps with Notes, which was a decent/ fairly easy way of making custom applications for businesses last century.
I'm in the process of doing a similar task, and I'm using my Synology DS418play for all of it.
I wanted to roll my own server solution, but I just don't have time anymore. The simplicity of Synology is baffling, and it has been one of my most favorite purchases, ever. I was able to set up an SSL cert for my domain, a reverse proxy on the Synology NAS in a matter of minutes.
This past month I've migrated my Evernote's to Synology Notes and lastpass to a bitwarden docker container running on the NAS. I'm planning on switching from Google Calendar to Synology Calendar in the next few weeks.
I haven't looked in to it, so I wouldn't be surprised if Synology has rolled their own protocols for most of these applications. But they are well supported across Desktop (Mac/Linux/Windows) and their Phone applications work great.
Again, might not be the solution you are looking for, but the ease and compatibility across various platforms might be worth the tradeoff.
I think the whole area (rightly) suffers from "Bikeshed" syndrome - this is something everybody can have an opinion on, and 90% of the time their opinions are right for them. At work you know someone who schedules appointments with themselves just to block out some time, or schedules meeting with you because emails don't get a response and ...
The solution is not more protocols, or opinionated software.
The solution is that every individual should have the skills (software literacy) and the infrastructure (some combination of a diary server with an API in fifty languages) and tools (come on iPhone, really whatever you are doing it's a total mess)
At some point with Mailbox any coder will have built an sub-AI agent from 200 regexes - and that's probably what will smoosh out across the world - oh yes I let my Virtual AI / PA handle that, it was coded by my brother in law and I made a few config changes.
I'm asking as coordinator of Moonshot Collective, where our mission is to build coordination tools. We have builders standing by for exactly this - please give me ideas so I can give them to my teams to build.
What are your ideals for these solutions?
What are the best solutions you've seen?
Wow, Horde has really come a long way since I last glanced in its direction. Looks like the "groupware" distribution ticks every box from tFA except for notes being sharable over WebDAV...
I built two webmail solutions on Horde back in the early 2000s, and it was amazing at the time, but hasn’t aged well. I’d rather use plain IMAP and Radicale…
Keep an archive of notes
Keep a daily or weekly journal
Take notes during meetings or lectures
Organize task lists
Draft blog entries and emails
Do brainstorming"
Zim itself is a good desktop application and Markor is a good mobile client for it. Sync can be done via nextcloud, dropbox etc. I'm not 100% on the state of the windows support, but I use it daily and it is great. It coexists nicely with version control, too.
They are very old and have accrued quite a bit of legacy
By release 2.0 of any project, some amount of "legacy" will have been achieved. "Quite a bit of legacy" can be seen as an indicator of platform success. Is the legacy acting as an impediment to future growth or feature development? Is the legacy due to supporting a user base that is neglected by other "modern" projects? The amount of users that get disenfranchised by someones idea of new and modern can be disheartening.
There are libraries for languages like PHP, Java and C but these implementations are typically unmaintained and because of the nature of these languages they are not very suitable for the modern cross-platform world.
This is a most surprising quote. I am not a PHP expert, but C and Java are quite excellent for use in multi-platform projects. WASM makes C even more relevant for browser hosted code. The author later states that he has implemented a prototype in JavaFX. So much for legacy platforms.
There is a lack of libraries implementing these protocols, ... but these implementations are typically unmaintained
And now we can begin to understand why. I do not want to make value judgements on the motivation of people desiring to start new projects. It can be fun and liberating. Having the ability to persist and endure while bringing a library or application from prototype, to alpha, beta, 1.0 and beyond is a rare and hard earned skill. And yet, this is exactly the type of skill needed to tackle a problem in the calendar, task and note space.
After writing 2 calendar programs, I came to conclusion nothing beats pen and paper for keeping todos and personal tasks. I bought a large wirebound sketchbook, and fine tip pen. Plan my day, then take a photo of my day's or weeks tasks. Very fast to do, plus all the freedom and sensory experience of drawing on paper. Works for me.
I guess its a hybrid of manual and digital.
To me, paper doesn't work for calendaring and to-do because it simply has no way to beep at you to tell you to get off your backside and get a piece of work done. I'm happy it works for others, but I simply need a digital solution for this.
Baikal is pretty nice as a cal-dav/card-dav server with a UI. I can sync it with gnome evolution, thunderbird, an iphone, and android (but required an app).
I haven’t tried it yet, but I’m curious about caldavzap. A web calendar UI that syncs with caldav.
There’s a neat tool called vdirsyncer that keeps a local offline copy of your contacts/calendars that works with it as well.
I'm surprised I haven't heard of a "Twilio of Calendars" that just makes this all dirt simple and easy to integrate into any 3rd party application quickly and comes with user configurable UI libraries for mobile and desktop etc. If this does exist please let me know because I've been looking and would pay for it.
I own a company that did/does this. It's not attractive from a business perspective. Huge amount of detailed work required to get/keep working; hosting providers shaft you (see post above); nobody wants to pay because "gcal is free".
I'm using the built in calendar application on windows. It's hidden under a hacky workaround, but it has caldav support. You have to add an icloud account, and then edit the server address in the settings afterwards.
Has worked flawlessly after that, and I like the integration with other parts of windows.
Radicale on the server, Thunderbird Calendar, Tasks & Cardbook on any desktop OS, Android contacts & calendar through DAVx5, tasks too... Simpler than this article makes it appear and has been working without as much as a hiccup for a very long time.
I think the primary point of the article is true: the open source space for these tools, is a giant mess. It depends on archaic (in internet-dog years) spec, on old platforms, on inter-platform mashups, it has standards-interpretation differences, the big players are doing things which become lockin, nobody is thinking about how to do this well enough you'd commit to it, cross-platform, without inheriting decisions for the future in terms of maintenance.
Its not how we want it to be. The problem is, this is a big problem space and has a lot of complexity underneath.
Not the least being that "timezones, are in so many ways, a complete mess"
I worked on a project sometime ago where we needed to create a special event handling calendar with a Todo list for a large organization. It's crazy to deal with Google / Microsoft emails & calendars and on top of all that you need to handle iOS, Android devices & Outlook as well. We ran to bunch of issues with background sync and enormous attachments. At the end we just ended up using slack bot and a internal blogging tool to handle the whole thing. Calendar and notes are vitally important but with all customization / fragmented ecosystem thing become challenging.
I've been looking for an iCal server to serve as a database for events. I agree with the author, this space is rather empty. Most of the projects out there have aged quite a bit and could use feature enhancements. (I.e. annoymous RSVPs, flexible notification perefences on a per user basis)
I was looking at bedework, however it doesn't deploy very easily. Now I'm looking at Radicale. It does have a docker container, but it's not well documented.
I found the Radicale documentation [1] sufficient for setup, and it really hasn't needed much in the way of maintenance. I also enabled the awesome Git integration so that every client-side contact/vCard change becomes a server-side git commit to my contacts repo. Now my birthday greeting script can just "git pull" to get the latest contact data.
Does anyone have any suggestions for how to sync multiple Google calendars (as in, across multiple google/gsuite accounts)? I have about 4 between work and school and consulting, and I'd like to see them all in one place rather than having to manually add events from the other calendars to a single master calendar. I figure this must be a solved problem, but I haven't found much about it.
Most calendar apps can display many calendars at once, overlaid on top of each other.
But often a problem is that people in one organization can really only check the free/busy time for one of your calendars (the primary calendar associated with that org), and thus end up booking you when you're busy on one of those other calendars.
I'm guessing this is the root problem you're getting at with your comment.
Until the platforms themselves (ie: Office and Google) offer up a native way to indicate that multiple calendars represent your busy time, you're kinda stuck with this problem without employing a third party service.
The good news is there is a solution to this problem -- my own startup[1] has a feature[2] that watches source calendars and creates blocks of time on a target calendar. It offers several different privacy options, such as making the block simply say "Personal Commitment" or "busy" or having it carry through all the event details (but not attendees because that would create a mess).
Fantastical (iOS/macOS) solves this use-case for me. It supports configuring different views (personal, work, etc...). Moving an event from one calendar to another calendar is also well-supported.
Just share your calendars with each other. I can't exactly remember the process but it works well, and you can choose to limit how much detail you share per cal
I am using Nextcloud and Obsidian for my company. My collegues (with no background in IT) use Obsidian to work with projects, the knowledge base and personal note taking. They sync the Obsidian vault with Nextcloud.
I use Nextcloud calendar to subscribe to many calendars (.ics). On my phone I've setup the CalDav connection to Nextcloud and all calenders even the subscribed are available. That is just amazing!
Yes. Obsidian stores everything in plain text file and its config in the .obsidian folder.
You can sync this folder to anywhere. Only problem that occurs occasionally is when two people work on the same file. This will result in sync conflict. Exception is if you work in the Nextcloud UI collaboratively, but Nextcloud does not support wiki links [[ ]] and uses its own linking format (appens file id to any link).
I also git commit my personal vault and use working copy to sync with my phone. On my phone the Obsidian repo is synced with the local Obsidian app folder. This is more complicated to setup. But it works. Moreover my personal vault also contains git submodules. So I can stitch many Obsidian vaults into one (and make a big mess).
Isn't the authors conclusion about the fragmented landscape symptomatic for almost all FOSS solutions which try to tackle a specific user need? I think this is a positive development. The diversity and rapid development of technologies requires users to deal with them holistically and, in the best case, to support or develop a new, better solution.
> requires users to deal with them holistically and, in the best case, to support or develop a new, better solution
If you only ever want to serve the 1% that are capable of supporting or developing a new solution, then yes - I suppose this’d be a good thing. In practice though, such exclusionary mindsets never lead to good outcomes - software or otherwise.
‘support’ can take the form of financial support, in which case anyone who would be able to pay for SaaSS subscriptions or proprietary software would only have to do something very similar here. The biggest problem there is that the social infrastructure and coordination points don't seem to exist, and that's a place where the fragmentation probably does hit badly, where consolidating users' needs more would let development be much more efficient and coordinated in such a way that crowd financial support would become more economically plausible at least. Of course, there's the free-rider game-theoretic issue, among other things…
While there's a lot of issues between “where are are now” and “broadly end-user-friendly libre software support models being common enough to be recognizable and repeatable”, “sure, so long as you can code” isn't meant to be the first answer. It's just become a cultural laughing-point because a lot of people do ignore the issues, and “you can choose whom you ask to handle the code” requires more work on the environment to be practical. IME, “exclusionary mindset” usually has little to do with it.
The “VCs have conditioned people to never pay for software, so you may have to have massive scale and run on surveillance capitalism to survive” and “user model of technology being vertically integrated service by default” are of course a whole other environmental game which may crush attempts to make this work.
In the notes field: Notable, Joplin, and recently been looking a lot at Dendron which has tight integration with vscode. Notable/Jopline are standalone apps.
The promise of Geary never really materialized. I think they tried to get funding a while back but couldn't hit their, arguably lofty, goals. It's still great, but limited, software.
Likewise, I expected kolab to appear in TFA's list of evaluated options, as I knew it has been around for a while and covered most (all?) of the author's requirements. IIRC it was a key element in Munich's initial 'let's move to GNU/Linux' project, so I imagined it had received a LOT of updates for those few years.
The repo [0] looks like it's still getting lots of love. The commercial entity doing much of the free software development runs a hosted version [1], which is also encouraging.
I personally soured on Kolab after the whole roundcubenext debacle. Also I ended up having some serious issues because files are stored in IMAP on Kolab
If I have a Google Business account for my company, jim@mycompany.com - and an external client of mine, tom@myclient.com, wants to see my availability, if he adds my external email address as an attendee, will he see my availability?
I switched to Joplin a while back when Evernote decided to implode itself, and stopped iterating on their product. Now I send auto-donations to Joplin devs via Github Sponsorship. Love it. Syncs to my DropBox and I haven't had any issues.
im so bummed on evernote. Ive used them forever. I just needed a note taking app in the cloud. They've evolved into a bloated piece of software thats like a crappy version of google docs. I'll checkout this Joplin app
I've used the whole citadel stack. It's fun. And i really enjoyed using it in text only cli bbs mode. In the end, since it was src install at the time, couldnt get the others (tm) to support. So, we went for sogo.
> Written in old PHP and there is work underway to do a complete rewrite in Golang
Wow [1], how cool would that be. I love that NextCloud exists and I plan to use it and call me biased but god I hate to be running some PHP. I used to maintain a vulnerability database and I don't think I can ever trust a PHP project again at this point. Maybe things have changed but you'd find it very difficult to convince me.
Disclaimer: I work for Nextcloud but opinion is my own and not the one from my employer.
There is no work underway to port Nextcloud to golang. That would be a bit crazy since all the plugins and apps wouldn't work anymore (and there are tons of them) and even just rewriting the core would take years.
Owncloud is trying to rewrite their core since two years and it is still only a tech demo and many features are lost compared to their php based product. (They are also doing weird thing like taking nosql to seriously and not using at all a sql database just files, that probably doesn't help...)
I wrote my own Notes app, for much of the same reason: I want to control the data, and keep it local on the device (not synced to a cloud service).
The major feature that was lacking with the built-in Notes app is a folder hierarchy. When I have ideas about software I want to code, hardware I want to build, or a shopping list, or a band I want to check out - I don't want these to all be stored in one long "Notes (723)" news feed where I'll forget it if I don't handle it immediately.
Back in the days of the iPod (call me old), it was easy to have a folder hierarchy for Notes (though I admit that they weren't editable). There were third-party apps like Check Off that would sync a to-do list automatically, but only as a single file. When the iPhone arrived, iTunes gained the ability to sync Notes, but only as a flat folder structure. It's true that SQL doesn't have folder hierarchy so it's harder to code, but I'd rather categorise ideas like they come in my mind!
Apple removed the feature of local Notes sync in Mac OS 10.9 Mavericks. Calendars stuck around a little longer, but I moved to BusyCal when the GUI was redesigned in 10.10. Currently I'm using Mac OS Server 5.6 on Mac OS 10.13 to host a local calendar and email server.
Apple removed Calendars and Contacts from Mac OS Server in Mac OS 10.14 Mojave. The recommended replacement is CalendarServer, Copyright (c) 2005-2017 with a note that says "The developers ... have each moved on to other projects". Apple recommended this in December 18, 2019 according to the "Published date".
Apple removed syncing Apps with iTunes 12.7. The message is clear: Apple are not interested in letting you manage your digital life - you must use iCloud and store it on their own servers.
I miss the Digital Hub strategy where there is a Source of Truth that isn't owned by Apple or Google. The cloud is just someone else's computer, and if/when Apple/Google/Spotify/Facebook decided to lock me out of my account, I don't want to lose my photos, notes, music, contacts, bookmarks, calendars.
* I wouldn't call Nextcloud codebase old. It's a PHP 7.3 codebase with sure quite a lot of legacy stuff but a lot of thing has been improved and refactored with the time. It's maintained, there is an active community and an healthy enterprise behind the project. IHMO this is that matters more than the programming language used.
* SabreDAV supports WebDAV and this is that we are using at Nextcloud for our webdav/caldav and carddav support.
* KOrganizer does run on Windows but it require to be built from source. I have been told that a better Windows support is being worked on for the entire PIM suite and I hope that at some point exe can be distributed. Technically there is nothing that makes it impossible to use on macOS, we just need more helping hands to help with fixing the platform specific issues. There is also a modern alternative to Korganizer being worked on called Kalendar. More on it can be learned on https://claudiocambra.com/ (Disclaimer: I was the mentor of this GSoC project).