The open calendar, task and note space is a mess(stevenvanbael.com)
stevenvanbael.com
The open calendar, task and note space is a mess
https://stevenvanbael.com/open-calendar-task-space-is-a-mess
356 comments
I think I will use this opportunity to say thank you!
I've loved KDE since I was an almost broke student 17 or so years ago.
I also use NextCloud now to sync Joplin, and I contribute to other projects (mostly donations, some code).
I've loved KDE since I was an almost broke student 17 or so years ago.
I also use NextCloud now to sync Joplin, and I contribute to other projects (mostly donations, some code).
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 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.
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.
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.
Correcting a small typo in the above, I assume it's https://dribbble.com/ (3 b's)
I wasn't familiar, but this site fits the comment better, so I assume that's what was meant.
I wasn't familiar, but this site fits the comment better, so I assume that's what was meant.
You are correct, thank you!
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.
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!
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 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."
Not him, but my problem with modern (Web) application design is far too much white space at the expense of functionality.
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.
- 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.
Jesus, you hit the nail on every single point.
> 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.
> 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.
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.
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.
Fair points.
I guess it's easier to design once and ship everywhere. Although with tools like Tailwind there's no excuse to ignore different viewports these days.
There's also a related problem with text stretching the entire window, like on the Wikipedia.
I guess it's easier to design once and ship everywhere. Although with tools like Tailwind there's no excuse to ignore different viewports these days.
There's also a related problem with text stretching the entire window, like on the Wikipedia.
My pet peeve is finding the settings view. Is it under File > Preferences, or Edit? Under tools maybe?
Just give me a big button with a goddamn gear icon every time.
Just give me a big button with a goddamn gear icon every time.
Oh yes! It's always fun to hunt for that one.
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.
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.
Well, Dribbble itself is 11 years old so the "dribbblisation" of design as a concept couldn't be older than a decade.
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.
[1] https://duckduckgo.com/?q=dribbblization+dribbblisation
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.
[1] https://duckduckgo.com/?q=dribbblization+dribbblisation
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.
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.)
(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.
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.
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.
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.)
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).
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).
>Also, just because it looks good, doesn't make it bad UI
That's another thing, material design interfaces are also ugly as sin x)
That's another thing, material design interfaces are also ugly as sin x)
Unfortunately, people optimise for new user acquisition, not ongoing user satisfaction.
>>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 :-/
>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)
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.
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.
It's fine, however the phone app is HORRIBLE. The web app on mobile is usable but clunky. On a laptop+ it's great.
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.
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.
KMail does speak Exchange EWS, and there was a few big bugfixes merged last week: https://www.davidcbryant.net/wp/2021/08/29/july-august-in-kd... (look for the MS® Exchange Server section).
Unfortunately these were only merged in the master branch and not the bugfix branch so that they won't be available to the users before december.
Unfortunately these were only merged in the master branch and not the bugfix branch so that they won't be available to the users before december.
Gosh, so it does. It is a bit unsteady at the moment but I have choice again \o/
It pointed out I don't need a password because I'm already connected to the domain via Kerberos - nice.
It pointed out I don't need a password because I'm already connected to the domain via Kerberos - nice.
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".
Top notch software! Highly recommended.
I doubt the general experience would have been as smooth had it not been a PHP "app".
Top notch software! Highly recommended.
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
[1] https://orgmode.org/
[2] https://github.com/DanielDe/org-web
[3] https://www.orgzly.com
[4] https://orgmode.org/manual/Agenda-Views.html
- 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
[1] https://orgmode.org/
[2] https://github.com/DanielDe/org-web
[3] https://www.orgzly.com
[4] https://orgmode.org/manual/Agenda-Views.html
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.
I love 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.
I love it.
Yes. Org mode is fantastic.
However, some limitations/ drawbacks.
- 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.
However, some limitations/ drawbacks.
- 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.
Agenda slowness is killing me. I need a solution, but honestly I feel like my next band-aid is probably an upgraded computer.
I create a new org file for each client, plus a few extras, and so at this point I have (ls -al | grep org$ | wc -l) 86 such files.
I could speed it up by doing more archiving, but it's useful to have history for long-running engagements in the main file vs the _archive files.
I may decide to move moribund/closed engagement files to a subfolder for cold-storage, but then there's the out-of-sight, out-of-mind problem.
OTOH, I never ever print from Org, and I use Exchange for calendaring, so the other two points aren't a problem for me, at least.
I create a new org file for each client, plus a few extras, and so at this point I have (ls -al | grep org$ | wc -l) 86 such files.
I could speed it up by doing more archiving, but it's useful to have history for long-running engagements in the main file vs the _archive files.
I may decide to move moribund/closed engagement files to a subfolder for cold-storage, but then there's the out-of-sight, out-of-mind problem.
OTOH, I never ever print from Org, and I use Exchange for calendaring, so the other two points aren't a problem for me, at least.
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).
Good tip, but these days I'm so long removed from daily terminal incantations that I mostly take a "kitchen sink and just make it work" approach.
That last point is what gets me. I very much want my org-agenda to be linked to the calendar app on my phone. No easy way to do this, so far.
> 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.
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.
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
JFYI, there's an excellent package org-ql which works quite nice with many org files. It has org-ql-view built in, which works like org-agenda.
(https://github.com/alphapapa/org-ql)
(https://github.com/alphapapa/org-ql)
You can also use Org Mode files with Logseq (Roam-style outliner), which is the only client for it I know that doesn’t suck for my usage.
https://logseq.com/
https://logseq.com/
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.
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.
[1] https://e-dorigatti.github.io/phd/2020/08/27/lost-notes.html
> 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.
[1] https://e-dorigatti.github.io/phd/2020/08/27/lost-notes.html
Ugh I make that mistake with code constantly
I fly into a panic because "U" doesn't do anything and Spacemacs binds "K" to some sort of manual lookup
Deeply stressful experience
I fly into a panic because "U" doesn't do anything and Spacemacs binds "K" to some sort of manual lookup
Deeply stressful experience
What is K supposed to do other than a manual lookup? That’s what it does in vim and neovim.
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.
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.
1. https://beorg.app/
1. https://beorg.app/
beorg is amazing. Changed my life.
BeOrg seems to assume a sort of interaction with Org that is different than my usage, and so I've never found it very useful AT ALL.
This is frustrating enough that I'm always kinda low-key evaluating other systems, like Obsidian, that have a better story for mobile.
This is frustrating enough that I'm always kinda low-key evaluating other systems, like Obsidian, that have a better story for mobile.
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.
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.
What sort of third party tools were you after? And when did you have a go?
~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.
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.
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.
0. https://orgmode.org/list/CA+G3_POBAB1QX1Zv8q9sjFh4KHUHVmaNXp...
0. https://orgmode.org/list/CA+G3_POBAB1QX1Zv8q9sjFh4KHUHVmaNXp...
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).
[0] https://github.com/200ok-ch/organice
[1] https://github.com/200ok-ch/org-parser/blob/master/resources...
[2] https://github.com/kristijanhusak/orgmode.nvim/issues/31#iss...
[0] https://github.com/200ok-ch/organice
[1] https://github.com/200ok-ch/org-parser/blob/master/resources...
[2] https://github.com/kristijanhusak/orgmode.nvim/issues/31#iss...
That is great to hear, thanks! Hopefully it'll bring about a new wave of wider use :)
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.
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.
Yeah but then I'd have to use emacs
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
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).
FWIW, you can use Emacs just for org mode, and continue to use your usual tools for writing code.
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.
So don't :). It's not a competition.
"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.
"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.
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.
> 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.)
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.)
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.)
> 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?
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.
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.
* https://elpa.gnu.org/packages/which-key.html
* https://elpa.gnu.org/packages/which-key.html
Vanilla emacs comes with cua-mode so you can more easily feel at home
Facepalms in https://xkcd.com/378/
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.
This is certainly true. I use Emacs just for Org-Mode and magit. That’s how good both of those are.
In fact, I do precisely this.
It's worth it.
It's worth it.
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 may be a higher initial investment
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 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.
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.
> after a few years […] I've reached a stable flow
Do you guys not see the problem? :-)
Do you guys not see the problem? :-)
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.
makes it possible to actually be productive with org-mode within an hour.
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 feel like of all the tools I've learnt to use, Emacs has had the greatest return on investment.
Orgmode is praised, rightly, but the average user is never going to, or be able to use it.
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.
[0]: https://www.youtube.com/watch?v=0g9BcZvQbXU
[0]: https://www.youtube.com/watch?v=0g9BcZvQbXU
Thanks that's helpful. Looks like I dont need that extra stuff.
> using emacs might be tough on mobile
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.
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'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.
> Org-mode for Emacs [1] is just great
> - 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.
> - 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).
You can check out history in the making yourself here: https://news.ycombinator.com/item?id=8863
You can check out history in the making yourself here: https://news.ycombinator.com/item?id=8863
Perhaps you are interested in these two comments by dang:
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
I think this is what I was remembering.
I think this is what I was remembering.
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.
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.
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.
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).
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.
OneNote would appeal to me if it had the sort of "go find all my todos across this notebook" feature that OrgMode provides via the org-agenda.
AS is, I've never found it super useful. j
AS is, I've never found it super useful. j
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.
https://support.microsoft.com/en-us/office/search-for-tagged...
https://support.microsoft.com/en-us/office/search-for-tagged...
I mean individual items within a note, not entire notes.
I'd want to a collated set of all the items marked as "to do", ideally with due dates, in a "virtual" page or view of the data.
I'd want to a collated set of all the items marked as "to do", ideally with due dates, in a "virtual" page or view of the data.
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."
"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.
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.
You can run all of the above on your own server[s]. Gonna be expensive though, e.g. $500 just for the OS.
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.
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.
Will it be open source?
I'd consider helping with that. (Android/Kotlin dev with API/backend experience)
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.
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.
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.
> You always end up building some kind of CRUD/RPC thing that works via HTTP
Isn't that what WebDAV is?
Isn't that what WebDAV is?
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?
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?
I think that’s called a draft :)
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.
I really like the idea of free-floating scheduling.
Thanks for dropping in. Can you explain this comment about Radicale?
> Does not handle authentication by default, needs to be handled by the reverse proxy
My Radicale instance validates users on its own, using credentials in an htpasswd file with bcrypt hashes. Doesn't that count as authentication?
> Does not handle authentication by default, needs to be handled by the reverse proxy
My Radicale instance validates users on its own, using credentials in an htpasswd file with bcrypt hashes. Doesn't that count as authentication?
[deleted]
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.
Radicale supports WebDAV and has built-in authentication.
Also, it could be worth to add Calendso to the list. Quite new project with a bit bigger scope than Sabre/Radicale. WebUI, recently added CalDAV.
https://github.com/calendso/calendso
Also, it could be worth to add Calendso to the list. Quite new project with a bit bigger scope than Sabre/Radicale. WebUI, recently added CalDAV.
https://github.com/calendso/calendso
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).
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).
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).
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).
Didn’t Facebook used to provide a personal calendar feed at some point? I used to recall it working for me in the (distant) past.
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.
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.
So I added all the games by hand, and a few weeks later, the entire second half of the season was rejiggered.
You should be able to do this with a third party service such as https://fixtur.es/en/team/philadelphia-union
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
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…
ical via RSS is a spec used for that, isn't it?
> ical via RSS
What's "via"?
I have done event feeds in both, but never together.
What's "via"?
I have done event feeds in both, but never together.
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.
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.
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.
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.
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.
That’s true, there are actually tons of calendars publicly shared via Google Calendar but discoverability is terrible.
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.
[0] https://tappedin.live
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.
[0] https://tappedin.live
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?
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?
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.
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.
I don’t mind doing my own leg work finding events, it’s just having to manually enter them all into my calendar that is tedious.
> Why are there so few “add to calendar” and why do they often fail?
In my experience (using iOS + macOS) they're pretty common and always work. What kinds of failures do you see?
In my experience (using iOS + macOS) they're pretty common and always work. What kinds of failures do you see?
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!
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!
> 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.
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.
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.
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.
> 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.
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.
> Cons:
> 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.
> 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.
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.
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.
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.
How exactly is it more difficult to write secure and quality software in PHP compared to other languages?
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.
Any examples of these gotchas?
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.
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
https://www.php.net/supported-versions.php
Edit: Also the docker image is updated to PHP8 for NC22: https://github.com/nextcloud/docker/pull/1563
https://www.php.net/supported-versions.php
Edit: Also the docker image is updated to PHP8 for NC22: https://github.com/nextcloud/docker/pull/1563
> 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.
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.
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.
GoLang isn’t exactly a “hot new thing”. It’s battle tested. Maybe the maintainers feel that it’ll be easier to work with in the long run?
Yes I agree about GoLang. I mentioned "hot new thing" to describe a general mindset and not specific to Go.
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...
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.
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 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...
> 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.
Sure but Kotlin is used in many apps and compiles to iOS natively.
Sure but Kotlin is used in many apps and compiles to iOS natively.
Java is literally one of the native languages of Android, and runs everywhere on the desktop. It's practically the definition of cross-platform.
Does anyone ship Java on iOS? That's maybe what is holding the author back, not sure.
I would contend shipping native code on any mobile platform for a calendar app is overkill, personally.
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.
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.
Only as paid third-party thing IIRC. But that's still going to be orders of magnitude easier than shipping something in Rust for iOS.
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.
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.
I agree wholeheartedly with the author.
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 :/
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 :/
I think mailspring is decent (definitely not perfect but at least the UI is prettier than thunderbird)
But it's desktop only
But it's desktop only
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.
I think they removed this but I'm not 100% sure
The Mailspring ID was made optional at the end of March. You do still need it if you want to use Mailspring Pro features that require their server.
Nylas did, yeah. Mailspring stores all email locally. Recently the requirement to sign in with a mailspring ID was removed entirely.
Interesting! Does it support CalDAV?
Nope. It does have a plug-in api, though.
For which there is almost nothing available for at present.
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.
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.
The experience on Linux is beyond terrible, all the MS webapps are hot garbage.
Compared to the desktop version Outlook for web is pure heaven.
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.
Wait until you have to deal with the admin web apps.
To enable mail forwarding to another domain I had to install powershell and a plugin to install a plugin to allow forwarding in my org.
Then there are times when it says : „To change this setting please enable the legacy UI“
And everything of this convoluted UX hell is documented in a dizzying but highly accurate documentation. I have to give them that!
Switched to protonmail and not looking back.
To enable mail forwarding to another domain I had to install powershell and a plugin to install a plugin to allow forwarding in my org.
Then there are times when it says : „To change this setting please enable the legacy UI“
And everything of this convoluted UX hell is documented in a dizzying but highly accurate documentation. I have to give them that!
Switched to protonmail and not looking back.
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.
I also lost many hours and nerves until I figured it out. But it let me get a glimpse on the true and frightening nature of Microsoft.
Okay so step 1: you try to enable forwarding, but the UI gives you an error about some policy that has to be set
https://docs.microsoft.com/en-us/exchange/recipients-in-exch...
Step 2: you have to find the anti spam settings in a UI called „defender something“ and turn the automatic forwarding polic on.
https://docs.microsoft.com/en-us/microsoft-365/security/offi...
Again the UI doesn‘t allow this because some setting in your organisation is disabled.
Step 3: the hard part. This setting can only be disabled through powershell. Google the name of it and you will find some docs about it.
There might be other ways to achieve forwarding. At least it sounds like that in the docs, but then they must be buried deep below the legacy UIs.
Good luck!
Okay so step 1: you try to enable forwarding, but the UI gives you an error about some policy that has to be set
https://docs.microsoft.com/en-us/exchange/recipients-in-exch...
Step 2: you have to find the anti spam settings in a UI called „defender something“ and turn the automatic forwarding polic on.
https://docs.microsoft.com/en-us/microsoft-365/security/offi...
Again the UI doesn‘t allow this because some setting in your organisation is disabled.
Step 3: the hard part. This setting can only be disabled through powershell. Google the name of it and you will find some docs about it.
There might be other ways to achieve forwarding. At least it sounds like that in the docs, but then they must be buried deep below the legacy UIs.
Good luck!
> Great UI
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.
> 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.
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.
Unfortunately you can't open iCal calendars in the Outlook clients anymore.
https://docs.microsoft.com/en-us/outlook/troubleshoot/calend...
https://docs.microsoft.com/en-us/outlook/troubleshoot/calend...
That’s not what that doc says at all.
I don't find Thunderbird's UI too bad except the nonsensical search/filter dichotomy, but have you tried Evolution?
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.
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.
> I used to have an add on to do it but it’s no longer compatible.
Pretty much the problem with anything Mozilla.
Pretty much the problem with anything Mozilla.
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.
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.
I'm probably mad but i like claws mail. I also use it for caldav meeting mails and as an rss feed reader.
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.
Calendars. Many people have died on that hill.
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 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.
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.
[deleted]
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:
sudo pkg install php80 php80-dom php80-filter php80-openssl php80-pdo php80-pdo_sqlite php80-xml php80-xmlreader php80-xmlwriter
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:
sudo pkg install php80 php80-dom php80-filter php80-openssl php80-pdo php80-pdo_sqlite php80-xml php80-xmlreader php80-xmlwriter
Been running dockerized Baikal for years on my server.
This is the image I have created few years ago (likely newer ones exist): https://hub.docker.com/r/lucianofiandesio/baikal
This is the image I have created few years ago (likely newer ones exist): https://hub.docker.com/r/lucianofiandesio/baikal
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.
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.
Having spend 1/2 lifetime doing this: yes++
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.
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.
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.
I wrote up my solution to this a few years ago here [1] and it ended up giving me my first ever top of HN post [2].
Radicale + Thunderbird + OpenTasks + DAVx5 works great for me.
[1] https://partofthething.com/thoughts/host-your-own-contacts-a...
[2] https://news.ycombinator.com/item?id=14836265
Radicale + Thunderbird + OpenTasks + DAVx5 works great for me.
[1] https://partofthething.com/thoughts/host-your-own-contacts-a...
[2] https://news.ycombinator.com/item?id=14836265
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.
[0]: https://wiki.gnome.org/Apps/Calendar
I've been using Thunderbird's Lightning add-on for a lack of alternatives but it's mostly been a PITA.
[0]: https://wiki.gnome.org/Apps/Calendar
So far I've always used Evolution and I like it pretty much. It even connects to my team's O365 stuff.
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.
[0] https://github.com/elementary/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.
[0] https://github.com/elementary/calendar
Thank you so much, this is exactly what I've been looking for!
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.
[1] https://apps.kde.org/korganizer/
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.
[1] https://apps.kde.org/korganizer/
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)
I recently switched to Evolution on Gnome, and put all my notes, tasks, calendars and address books in a "radicale"[0] CalDav/CardDav server.
It's not 'slick' by 2021 app standards but it does what it needs to do pretty well. And compared to some apps, it uses almost no memory.
On my phone, I combine it with FairEmail, DAVx5 and OpenTasks.
[0] https://radicale.org/
It's not 'slick' by 2021 app standards but it does what it needs to do pretty well. And compared to some apps, it uses almost no memory.
On my phone, I combine it with FairEmail, DAVx5 and OpenTasks.
[0] https://radicale.org/
[deleted]
I’ve been using Morgen Calendar for a while. Although it isn’t open source, it works well on Linux, MacOS and Windows.
> Written in old PHP, according to the homepage it requires PHP 5.4
Just because something will run on an old version of PHP doesn't mean it won't run on new PHP.
You can write PHP that is backwards compatible but still decently modern sans typehints.
I used Sabre for a while recently on I think PHP 7.3 and it's not bad.
Just because something will run on an old version of PHP doesn't mean it won't run on new PHP.
You can write PHP that is backwards compatible but still decently modern sans typehints.
I used Sabre for a while recently on I think PHP 7.3 and it's not bad.
Consider EteSync as a solution. FOSS, can be self-hosted, available on multiple platforms, etc:
https://www.etesync.com/
https://www.etesync.com/
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.
I came here to recommend this. A few notes:
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.
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.
The Cyrus IMAP server has CalDAV, CardDAV, and WebDAV modules.[1]
[1] https://www.cyrusimap.org/imap/download/installation/manage-...
[1] https://www.cyrusimap.org/imap/download/installation/manage-...
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.)
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.)
Is there anything better than Fastmail currently in the JMAP space?
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].
[1] https://standardnotes.com
[2] https://github.com/standardnotes
[1] https://standardnotes.com
[2] https://github.com/standardnotes
Hate to be ‘that guy’, but without the ability to share and collaborate on notes, it’s not a drop-in replacement.
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.
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.
What do you have against paying? If I'm not paying, I'm the product...and I don't want my private journal to be sold.
The FOSS community will disagree with you there.
Good point. Does it change if I say that you "pay" with FOSS with your time?
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.
What do you think about Standard Notes' self-hosting options then?
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.
Ah! I had not realized the self-hosted option didn't allow extensions and themes.
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.
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.
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.
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.
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 use claws mail for this. I get invites from caldav and reply directly in my mail client. Cal views are primitive.
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 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.
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.
RFP coordination systems to solve this mess
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?
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?
Pretty sure the Sabre website is out of date. sabre/dav requires PHP 7.1+ || 8.0+ per https://packagist.org/packages/sabre/dav
Horde Project?
Old but gold.
> https://www.horde.org
Old but gold.
> https://www.horde.org
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'm a little surprised nobody has mentioned Zim:
https://zim-wiki.org/
From their site:
" Zim can be used to:
https://zim-wiki.org/
From their site:
" Zim can be used to:
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.
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.
[deleted]
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 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.
Not affiliated, but I would check out Nylas: https://www.nylas.com/products/calendar-api/
I would strongly recommend steering clear of Nylas.
Why? Hard to take a recommendation with zero context.
Read the forums. No support provided.
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.
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"
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"
[deleted]
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.
Author says PHP, Java and C are not suitable for the cross-platform world. Hmmm.
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 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.
1. https://radicale.org/3.0.html
1. https://radicale.org/3.0.html
[deleted]
Radicale is pretty stable. I’ve submitted a patch in the past and they integrated it pretty quick.
Loosely related: https://news.ycombinator.com/item?id=28353718
[deleted]
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).
[1] https://reclaim.ai/ [2] https://reclaim.ai/features/calendar-sync
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).
[1] https://reclaim.ai/ [2] https://reclaim.ai/features/calendar-sync
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
See here [1][2] for one possibility. The self-hostable community edition with z-push allows Calendar, Notes, Contacts via ActiveSync.
[1] https://kopano.io/
[2] https://www.linuxlinks.com/kopano-groupware-application-suit...
[1] https://kopano.io/
[2] https://www.linuxlinks.com/kopano-groupware-application-suit...
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!
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!
Does syncing Obsidian to Nextcloud mean you don't need a subscription to Obsidian? Haven't really dug into what they're offering.
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).
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).
Wow! Thanks so much for this thoughtful response, really appreciate it. I know what I'll be trying tonight!
I had post pending regarding the mobile sync with Working Copy. You gave me a reason to finish it up: https://janikvonrotz.ch/2021/08/31/sync-obsidian-mobile-app-...
You've made my day! This is awesome! Loving Obsidian, importing my existing notes was so easy.
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.
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.
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.
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.
Dendron looks very interesting. What's the catch?
Currently using Joplin.
Currently using Joplin.
Psssst https://calendso.com/
What's the current status of the kolab.com suite? I vaguely remember using it in late 2000s
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.
[0] https://git.kolab.org/source/kolab/
[1] https://kolabnow.com/
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.
[0] https://git.kolab.org/source/kolab/
[1] https://kolabnow.com/
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
What about Roundcube Next? - https://github.com/roundcube/roundcubemail/issues/6030
In 2018, RoundCube Next Remains Dead In The Water - https://www.phoronix.com/scan.php?page=news_item&px=RoundCub...
What about Roundcube Next? - https://github.com/roundcube/roundcubemail/issues/6030
In 2018, RoundCube Next Remains Dead In The Water - https://www.phoronix.com/scan.php?page=news_item&px=RoundCub...
Curious - for meeting availability.
If I have a Google Business account for my company, [email protected] - and an external client of mine, [email protected], wants to see my availability, if he adds my external email address as an attendee, will he see my availability?
If I have a Google Business account for my company, [email protected] - and an external client of mine, [email protected], 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
> Conclusion: The open calendar, task and notes space is very fragmented
2 paragraphs further down...
> How to fix this in the future: I myself intend to start working on a set of Rust libraries that implement these protocols
History repeats itself.
2 paragraphs further down...
> How to fix this in the future: I myself intend to start working on a set of Rust libraries that implement these protocols
History repeats itself.
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.
Cyrus has a built in card/caldav support.
Nextcloud works just fine with davx on android and evolution on linux for car/cal/tasks.
Radicale is fine for card/cal, but it's basic.
This scene used to be a lot worse.
Nextcloud works just fine with davx on android and evolution on linux for car/cal/tasks.
Radicale is fine for card/cal, but it's basic.
This scene used to be a lot worse.
> 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.
1. https://github.com/nextcloud/server/issues/16726
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.
1. https://github.com/nextcloud/server/issues/16726
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...)
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...)
Thank you for confirming that there is no "big rewrite" madness going on. I rely on Nextcloud daily and I was worried.
Did you ever check out the Chandler Project?
https://www.chandlerproject.org/
https://www.chandlerproject.org/
No updates since roughly 10 years, the homepage is full of spam, I don't think Chandler should be recommended anymore at this stage.
I habe been using radikale for 3 years now.
Works really well for calendar and contacts.
Tasks is okay aswell, but I never tried it for notes.
I came to the same conclusions, but I settled for Nextcloud. It is dogslow when ran from a nixOS VM, and I can't quite figure out why.
[deleted]
Citadel has been around forever, but I've only played with its BBS functionality. Has anyone tried it for calendaring etc.?
A Google Calendar / Google Keep combo works pretty well for me. Cross platform compatibility is decent too.
They are looking for an open platform and are privacy conscious, as per the first paragraph. Anything google doesn't meet the basic requirements.
I mean I think https://policies.google.com/privacy is pretty decent. What would you change?
I wrote a mostly-complete Go implementation of the iCal protocol last year. It was eye-opening but interesting.
...anyone still uses TheBat on Windows? I liked it a lot and it had notes, tasks, calendar included...
My takeaway is the author's complete disregard for PHP and other 'mature' languages.
As a power user, obsidian solved all of my problems and needs. It's amazing
If tackling those 3, please consider making it 4, by also tackling contacts.
Add email and contacts to the list while you're at it.
Yes well. On one hand people are angry when big tech roll out closed protocols. And on the other hand open standards get criticized for being messy…
Just 1 for sogo from the server side.
Hasn't anybody heard of vi todo.txt?
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".
https://support.apple.com/en-us/HT208312
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.
https://developer.apple.com/forums/thread/86890
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.
https://xkcd.com/908/
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".
https://support.apple.com/en-us/HT208312
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.
https://developer.apple.com/forums/thread/86890
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.
https://xkcd.com/908/
[deleted]
* 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).