Synchronizing events beetween calendar systems is hard. iCal may be a serialization format, but it doesn't handle things like: sync event from system A to system B, update in System B, how do we tell System A? For simple events with no attendees that is easy. But once you deal with recurring events, and everyone's varying implementations, it quickly falls apart.
Internally all the major Calendar services (GCal and Outlook), store events differently when it comes to events with multiple attendees and recurring events, and it takes understanding the varying nuances to perform good synchronization. Even the difference between a timed event and an all day event will vary from system to system. And that barely touches the timezone issues that arise when scheduling.
Add to all that : the calendaring hosting providers will block your API access to their customers so unless you have a business relationship with them, or the technical solution means that they can't block you, it's a crappy business proposition.
The iCalendar RFC doesn’t specify this, but the CalDAV specs work just fine.
It’s not trivial, but it’s also not especially difficult to implement. There sure are a lot of productive implementations of clients and servers out there!
Admittedly scheduling is hard, and frankly the iTIP model is just not that well suited to most people’s lives.
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:
Isn't the authors conclusion about the fragmented landscape symptomatic for almost all FOSS solutions which try to tackle a specific user need? I think this is a positive development. The diversity and rapid development of technologies requires users to deal with them holistically and, in the best case, to support or develop a new, better solution.
> requires users to deal with them holistically and, in the best case, to support or develop a new, better solution
If you only ever want to serve the 1% that are capable of supporting or developing a new solution, then yes - I suppose this’d be a good thing. In practice though, such exclusionary mindsets never lead to good outcomes - software or otherwise.
‘support’ can take the form of financial support, in which case anyone who would be able to pay for SaaSS subscriptions or proprietary software would only have to do something very similar here. The biggest problem there is that the social infrastructure and coordination points don't seem to exist, and that's a place where the fragmentation probably does hit badly, where consolidating users' needs more would let development be much more efficient and coordinated in such a way that crowd financial support would become more economically plausible at least. Of course, there's the free-rider game-theoretic issue, among other things…
While there's a lot of issues between “where are are now” and “broadly end-user-friendly libre software support models being common enough to be recognizable and repeatable”, “sure, so long as you can code” isn't meant to be the first answer. It's just become a cultural laughing-point because a lot of people do ignore the issues, and “you can choose whom you ask to handle the code” requires more work on the environment to be practical. IME, “exclusionary mindset” usually has little to do with it.
The “VCs have conditioned people to never pay for software, so you may have to have massive scale and run on surveillance capitalism to survive” and “user model of technology being vertically integrated service by default” are of course a whole other environmental game which may crush attempts to make this work.
See also Standard Notes[1], pretty much a drop-in replacement for Apple's iOS Notes app. Decent web interface with (paid) plugins, great desktop and mobile apps, backend can be self-hosted as well. It's really good and its OSS[2].
Yes, it's not a drop-in replacement. How do we get a drop-in replacement?
My take: as customers we have to pay for incomplete solutions and then be vocal customers. Take my money! This is the way. Otherwise "free" and "open source" solutions will just never reach the level of quality needed to take off.
Standard Notes won't be a competitor in my eyes until they add extentions/theming support to the free tier as well. It's an absurd and zero-margin holdout that makes zero sense and only drives me away from their service.
No, because that's also another sweeping statement. There is plenty of FOSS that simply just works, has objectively excellent UX/UI, and meets a user's needs.
Well said, appreciate you taking the time to get me up to speed. See some of my other comments where I'm grappling with frustrations around FOSS and a desire to pay to make things smoother.
I don't want my knowledge and information to be gated behind a subscription fee. I'd rather just host it all myself, maximize redundancy and then forget about it. The system has worked fine for the past 2 years, and I have a hard time believing that anyone here is selling my private journal.
I don't think about it much, because I can't install extensions or themes to it. Meanwhile, Obsidian Notes has no problem letting me do anything I want for free, which makes it a better self-hosted notes client for my use-case.
Circling back I had not realized SN disables themes and extensions on the self-hosted version. I could see them providing some proprietary themes/extensions if they want but self hosting just seems so hard just let people do what they want and let people like me pay for it.
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.
I built two webmail solutions on Horde back in the early 2000s, and it was amazing at the time, but hasn’t aged well. I’d rather use plain IMAP and Radicale…
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...
Can anyone here recommend a slick open-source GUI calendar app for Linux with support for iCal, WebCal, recurring events and notifications? I've been following GNOME Calendar[0] for a while but judging by the website it's still mostly WIP.
I've been using Thunderbird's Lightning add-on for a lack of alternatives but it's mostly been a PITA.
I love the one that comes with elementary OS[0]. Looking at those screenshots, it seems to be a fork of Gnome's calendar?
I've connected it to both Google Calendar and Nextcloud's calendar, and it works perfectly well, provides notifications, recurring events, and I can quickly access today's events just by clicking on the clock on the bar. No complaints what so ever.
elementary's tasks app, on the other hand, is still WIP.
I've been using KOrganizer[1] for longer than I can remember. For better and/or worse, it's pretty tightly integrated with the Plasma desktop. For now at least, I use it with Google Calendar as its backend. Every once in a long while, it gives me some scary-sounding error message about failing to sync — but so far as I can tell the sync works just fine, albeit sometimes with a bit of lag.
I recently also started using it with my work-mandated Office 365 calendar. According to some docs somewhere that I can't find right now, there were quite a few hoops to jump through to make that read/write so I settled for read-only.
Have a look at davmail. It's essentially a exchange to IMAP/calDAV... translator. I used it before with our work exchange server. It worked flawlessly (better than the imap support in exchange IMO)
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.
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.
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.
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.
Have you noticed if any of the calendar protocols allow for recording an appointment without specifying a date?
Consider a haircut that will take 45 minutes & will invite two people (me & the barber), but the day/time is still undecided. Perhaps that sort of appointment can park at a placeholder date with infinite capacity until the real date is scheduled?
There's a draft that's been floating around and renewed multiple times over the years called VPOLL which is supposed to do basically this, but it's very tricky to get the edge cases sensible, so it's still not totally done. Generally one party offers appointment times and the other party books one, which simplifies it considerably.
It's a good write-up on a topic I've studied on and off as well.
Currently I'd consider hassling with a switchover because of Apple's hideously defective calendar, which insists on changing the times of your appointments when you cross time zones. If you go on a trip to the east, you're going to miss your flight home because Apple has changed the time of it in your calendar to LATER.
Monumental stupidity, and there's no way to prevent it. Apple gives you no way to simply set up an appointment and say, "When the clock on this phone says 3:30 p.m., no matter where I am in the world, alert me."
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.
MS Exchange server for tasks and calendar, OneNote for notes, SharePoint to sync these notes.
Closed source, expensive, designed to be supported by professionals, you might need more than 1 server/VM to run them all, requires AMD64 processors.
Well tested (used by millions of people every day), relatively secure, not terribly hard to setup (follow installation guide / best practices documents carefully, and you should be fine).
OneNote is worth it by itself, it's so good. It also works on mobile really well, the search is awesome,I just wish the sync was slightly less opaque for large notebooks with multiple authors.
Viewing tagged notes has been in OneNote since 2010, not sure what you mean. ToDos are a built-in tag type, but you can also create arbitrary other ones and filter based off of those.
I understood you, that's what this does. See the quote below extracted from the link I previously posted. Note that the page it autogenerates is post-filtering and works the same way for any tag (built-in or user created). The summary screen is usually enough for me, but the full note page is nice sometimes because you can annotate it just like any other page.
"If you want to view the tag search results as a notes page, click the Create Summary Page button at the bottom of the Tags Summary task pan."
Huh, interesting. Doesn't seem to be an option on the Mac version, and I don't think there was this option the last time I tried to do it in Windows, but I'll admit that was a while ago.
love OneNote, easy and quick for collaborative documentation around implemented systems. It does seem to process the text from images so it can search on them. However, searching IP addresses is not very good
Actually my business email is currently setup like this. I have a business o365 account and use Outlook on Windows/MacOS/android/iphone and Thunderbird on Linux.
But I want to move away from it because I want to 1) gain control over my data and 2) extend the system with automations.
Thats why I started researching open source and self hosted alternatives.
I worked on a project sometime ago where we needed to create a special event handling calendar with a Todo list for a large organization. It's crazy to deal with Google / Microsoft emails & calendars and on top of all that you need to handle iOS, Android devices & Outlook as well. We ran to bunch of issues with background sync and enormous attachments. At the end we just ended up using slack bot and a internal blogging tool to handle the whole thing. Calendar and notes are vitally important but with all customization / fragmented ecosystem thing become challenging.
I 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 :/
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.
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.
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.
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.
This is very subjective; I hate it ;). I consider Apple's Mail.app/Calendar.app/etc much better UI-wise.
> Android
Note that Outlook for Android (not sure about iOS version) is rebranded Acompli client, which sucked all your email into the cloud. This was instant no-go when it originally came out, so I ended up with Nine (https://play.google.com/store/apps/details?id=com.ninefolder...), which has an additional advantage, that the device admin rules enforced by Exchange can be applied to app only, not to the entire device.
> This is very subjective; I hate it ;). I consider Apple's Mail.app/Calendar.app/etc much better UI-wise.
Agree it is completely subjective - and I actually think that the Apple apps look better and are simpler to use, but personally I spend a lot of time in emails and arranging meetings, and I can get what I need to get done faster in Outlook (although I have tried to get along with Mail/Calendar in OSX, it's just slower for me).
For instance, let's say someone writes an email to me with 10 people on copy and says that we need to organise a teams/zoom call (which is a pretty common thing), the workflow for this in Outlook would be 5 clicks and can be done entirely within the application (including creating the Teams/Zoom call link). In Mail.app/Calendar.app it's way more involved and you get lots less control.
But if you just want a casual email client, then Mail.app probably does what lots of people need it to do. So when I talk about good-UI for me personally, I'm not necessarily talking about it being beautiful, but I think Outlook is more functional specifically for a power-user.
I'm a big fan of outlook as well, but it should be noted that it doesn't have write access to google calendars which can be frustrating. As a mail client, it is great.
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.
The problem with a lot of these applications today is that they work with the kind of information you want might want immediate access to from many devices. That means cloud-hosted options have a compelling advantage in convenience, which for many users will inevitably outweigh any security and privacy concerns.
I would love for the FOSS community to come up with a simple, SOHO-friendly server/appliance to act as the central repository for information like messages and calendars and be accessible to all devices on the local network (or via VPN from outside). Then we could have some competition for favourable UIs without every application having to reinvent the wheel for all the back end protocols and formats. Sadly the experience of applications like Thunderbird suggests there isn't currently a critical mass of interest in working that way and most of the market is willing to tolerate the downsides of the cloud applications in exchange for better UIs and more convenience.
Hypothetically, aggregating your email to a specific client hosted on your server then using JMAP (not IMAP!) would be what we are all waiting for. However, interest in JMAP isn't really there.
Apparently half the issue is that IMAP sucks so much that any email client is bogged down in dealing with an ancient and bad API that they waste resources before getting to making it good. All the proprietary clients use a custom API which doesn't have to deal with legacy garbage.
I’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).
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).
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.
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.
Our local MLS team had a feature to add the game schedule to your calendar. I was excited, but it turned out that for Google Calendar you had to grant a third party app read and write access to all of the data connected to your Google account, including your emails. Surprisingly, Google did a good job of explaining the possible consequences of that, including all your data being irretrievably deleted.
So I added all the games by hand, and a few weeks later, the entire second half of the season was rejiggered.
I route my remote calendars through Cloudflare workers for a modicum of privacy. It's as simple as running a basic open source relay and prepending the worker URL: https://github.com/Zibri/cloudflare-cors-anywhere
Yes, unfortunately even when there is a calendar integration offered, it’s often through a “heavyweight” oauth-style API that requires all sorts of crazy permissions…
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.
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.
I run a free hand-curated concert calendar in NYC[0] with a friend. It's all operated manually and we still end up with 15-20 great shows every night. If this were automated or scraped, you'd have 250 events on your calendar per day.
Sure it might work if you just pick one venue, or a handful of artists. But it's not particularly helpful since you'll either be overwhelmed by spam (venue shows you're not interested in) or you'll inevitably be missing out on a lot of great events (since you're filtering on very specific parameters).
On our app, you can swipe on any show to add it to your phone's calendar instantly. 60 seconds daily or a few minutes each week and you can build your own subset calendar from our already curated calendar. It's honestly very efficient and low-tech.
I do subscribe to some remote calendars like my favorite sports team (NBA provides per-team calendar URLs). If you're in a smaller town with just a few venues, I bet you could do that too. For the privacy-conscious among us, you can always route them through Cloudflare Workers pretty easily.
Although I am nowhere New York, I want you to know that I think your hobby project of curating a concert calendar is bitchin'.
When viewing the website on my desktop computer(mac OS, Firefox), the "add to calendar" functionality that you mention being in the phone app is not, so far as I can tell, available. Perhaps I missed the button?
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.
Sometimes they try to be clever and detect my calendar provider and do it wrong. Sometimes they request oauth-style API permission to my calendar. Sometimes they link to a .ics file that isn’t handled.
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!
> Why can’t I just click a button and follow all the local events for my favorite artist/venue/team/theater/charity? Why do I still have to manually create events and copy and paste details? Why are there so few “add to calendar” and why do they often fail?
It's because of advertising.
Artists, venues, teams, theaters, charities and other performers may themselves not care - they make money on you being there. But everyone else between you and the event, they make money on your attention. They explicitly don't want you to streamline or automate event discovery and attendance scheduling. They want you to visit their pages, and be exposed to ads (whether it's regular ads where they get paid per click, or ads for different events with which they make money on you deciding to attend).
The "attention economy" is, by definition, built on making everything inefficient and full of hassle. To monetize attention, you have to make the users pay it first.
This may be an tired point, but I feel it bears repeating. The problem isn't one of technology - the tech for what you want exists, and actually worked much better in the past. The problem is businesses: they actively don't want you to use the Internet in this way.
I agree there are market forces fighting this. That’s why I’d like to see better event detection and handling built into user tools. It’d be great if I could, say, right click on a date and “add to calendar”, with details auto-populated via ML or site-specific algorithms. Or maybe I could paste a URL directly into my calendar app and it would scrape the details for me. Seems like it could be doable.
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.
> 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.
Missing from almost every calendar hosting thing I've used is the ability to publish free/busy information to allow others to schedule me into meetings without needing to be on the same system.
I'm pretty sure vCalendar supports this, just no one has implemented it.
If I could host a lightweight javascript app that let you browse the information until your client supports it properly that'd be cool.
Lotus Notes had that. Administrative staff could look at your calendar and sign you up for things..
Of course all Notes Mail and Calendar are just Notes Applications built upon its nosql database and lotus script. Its why they were kinda awkward. But I worked briefly at IBM making custom business Apps with Notes, which was a decent/ fairly easy way of making custom applications for businesses last century.
I'm surprised I haven't heard of a "Twilio of Calendars" that just makes this all dirt simple and easy to integrate into any 3rd party application quickly and comes with user configurable UI libraries for mobile and desktop etc. If this does exist please let me know because I've been looking and would pay for it.
I own a company that did/does this. It's not attractive from a business perspective. Huge amount of detailed work required to get/keep working; hosting providers shaft you (see post above); nobody wants to pay because "gcal is free".
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.
> Written in old PHP and there is work underway to do a complete rewrite in Golang
Wow [1], how cool would that be. I love that NextCloud exists and I plan to use it and call me biased but god I hate to be running some PHP. I used to maintain a vulnerability database and I don't think I can ever trust a PHP project again at this point. Maybe things have changed but you'd find it very difficult to convince me.
Disclaimer: I work for Nextcloud but opinion is my own and not the one from my employer.
There is no work underway to port Nextcloud to golang. That would be a bit crazy since all the plugins and apps wouldn't work anymore (and there are tons of them) and even just rewriting the core would take years.
Owncloud is trying to rewrite their core since two years and it is still only a tech demo and many features are lost compared to their php based product. (They are also doing weird thing like taking nosql to seriously and not using at all a sql database just files, that probably doesn't help...)
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
- org-agenda is slow and completely unusable if you have hundreds of org files.
- despite multiple half-baked efforts there is still no easy-to-use parser and pretty printer for the lanuguage. I'm not even asking for 100% of the syntax, 20% capability of t he built-in org-element API with good documentatiom will accomplish 80% of the requirements.
- no easy way to integrate calendars and org-agenda with something like a calDav server.
> no easy way to integrate calendars and org-agenda with something like a calDav server.
It would be great to have something like this.
I have a system which can at least handle invitations to events by means of a python script that convert iCal files to Org-style headers. It is triggered automatically via inotify so that every time a new iCal file appears into a specific folder it is appended automatically to an Org file. Now I simply save the .ics that comes attached to event invitation emails to have the time slot booked in my Org agenda automatically.
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
By the way, when ls isn’t printing to a terminal it defaults to one file name a line, so 'ls -a' would work fine here (and arguably be a bit more correct).
I love org mode and use it all the time, but I still occasionally blow up my file with inadvertent vim commands! Yes I know I am a weirdo for using eVil mode :)
The most common mistake I make is having caps lock on and hitting J a bunch which merges all the lines together.
Yes, using evil mode in emacs puts you in the weird position of being scoffed at by both vim users and emacs users ;)
> The most common mistake I make is having caps lock on and hitting J a bunch which merges all the lines together.
Oh that happened to me as well one day, it was catastrophic! I did not realize I hit J on a folded header (which joined all lines in that section) before saving and quitting at the end of the day. I only realized the mess on the next day.
I wrote a blog post [1] on how I solved it, if it sounds interesting.
I found <https://github.com/hlissner/doom-emacs> doom-emacs to be very pleasant to use. Loading times are so much better than spacemacs. And using an external binary for updating etc. really helps.
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.
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.
~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.
We're working on a formal grammar and a test suite that can be used to specify expected behavior. See the linked mailing list thread [0] for pointers to some of the interested parties.
I just wanted to chime in and mention that the folks who wrote organice[0] also came up with an EBNF grammar[1] for org-mode. Also of tangential interest is that work is actively being done on creating a tree-sitter version[2] of the grammar, although that work is not public (yet).
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'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 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.
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).
While it may be a higher initial investment, emacs doesn't enforce any key bindings, just sets defaults and many people rebind them. Nothing prevents you from creating or finding bindings of your suiting
Key bindings are just one problem. Fundamentally, I don't want to put in the work just to drag Emacs out of the 1980s/1970s and into the modern day, or learn Emacs-specific concepts, when my existing tools already are ready to use from install time and already require no adjustment to my mindset because they use modern terminology etc.
It IS a MASSIVE investment in time and effort to learn something that will appear as an obstacle MONTHS before it becomes second nature. Plus you spend the rest of you natural life fussing with your .emacs file.
I thought that would be the case too, but after a few years and after adopting Doom Emacs, I've reached a stable flow. I don't fuss with it anymore. I just write new commands occasionally.
Great about Doom Emacs:
- has sensible VIM keybindings, no need to learn the Emacs ones
- has batteries included, no need to tweak the config more than "yes, I'd like to activate Magit"
makes it possible to actually be productive with org-mode within an hour.
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.
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.
"Confusing terminology and lack of conformance with CUA" (aka. being older than both CUA and modern terminology) is perhaps a stumbling block for some, but arguably not that big once a wannabe-user decides to extend their attention span beyond 30 seconds.
If the Emacs keybindings and terminology could be mastered in not much more than 30 seconds, they wouldn't pose a problem in the first place.
There is value in standardisation, and it's unlikely that the current starter Emacs layout provides any unique value other than letting 40+ year old industry veterans keep their muscle memory, while alienating basically everyone born after the age of the monochrome glass TTY.
While I understand that using or not using Emacs is not a competition, it almost appears that Emacs tries to be different for the sake of being different. Just like Mac OS uses the Ctrl+PgDn/Up/Arrow shortcuts in a way that contradicts what virtually every other platform does (including Windows and Linux).
Edit: do not misunderstand my point, I am not saying that Emacs is trying to be different for the sake of being different. I am saying that remaining the way it is, on purpose, when the majority of the world expressed a preference for a different convention that comes with no clear downsides, makes it look as if that were the case. Or makes Emacs look recalcitrant, if you prefer.
> it almost appears that Emacs tries to be different for the sake of being different.
Emacs conventions existed long before CUA became the standard and to adapt to CUA would require Emacs to change some very basic and critical conventions. There were plenty of word processors like Word Star that also featured its own conventions, just Word Star has mostly become an esoteric word processor while Emacs and Vim remain prevalent to this day (I mean... they're still esoteric but not that esoteric).
MacOS also has its own conventions that don't comply with the "standard" which of course, again, came after MacOS established its own standards and of which are superior to Windows, anyway, since it doesn't break compatibility with the unix terminal.
Maybe the real issue is Windows and Linux that decided to adopt the inferior conventions of the dominant OS?
Just because a control convention existed before other implementations, it doesn't automatically make it good. Plenty of older shooter games have a control scheme that besides being unfamiliar, is simply not ergonomic enough. E. g. Wolfenstein's control scheme that uses the mouse to rotate the camera, but also to move the player forwards and backwards.
> Just because a control convention existed before other implementations, it doesn't automatically make it good.
Conversely, just because CUA became the de facto standard in Windows and Linux doesn't make it good, either. They became standardized as a consequence of Windows becoming the most popular operating system and the only reason you're advocating for it is because it's what you are comfortable with, not because it has any meaningful advantages over other keyboard shortcut paradigms.
Yes. My point is, Emacs convention and CUA are basically equivalent. In which case there is little excuse to go with the less popular one if you want to attract young blood without creating an obstacle course they must pass first. If you don't have young blood coming in occasionally, your editor will remain stagnant after a while.
I agree it wouldn't hurt to redesign for CUA, but I'm not sure how much young blood it would actually invite. Hotkeys are just the first thing on a long list of things to learn, and if that first thing puts them off, maybe they wouldn't have stuck with it anyway.
If you use something like which-key* you will see all available key combos as you hit them, I first saw this in spacemacs. This means even when I am unfamiliar with the key commands I have a very low friction way of seeing what's available, under thirty seconds.
> If the Emacs keybindings and terminology could be mastered in not much more than 30 seconds, they wouldn't pose a problem in the first place.
Try 5 minutes then :). No, I'm not joking with this, nor am I trying to be snarky. I've just seen the way people approach new tools, and I also know myself. Most of the time, people can barely give 30 second of serious effort before judging something as "okay" or "too complicated" - at least as long as they view the new thing as something they already know. "It's a text editor, I know text editors, I shouldn't need to learn anything new here".
Once you drop the assumption that you already know Emacs because you know the product category it's purportedly in, it turns out the conventions and keybindings aren't really that hard. The manual and the tutorial do a good job explaining them, and there's always CUA mode to be used as training wheels :).
(For me, the biggest hurdle I faced when learning Emacs was to unlearn using arrow keys for navigation - which really has nothing to do with Emacs per se; you need to do that for any editor in order to use it efficiently.)
As a point of comparison, imagine approaching Emacs like you'd approach Blender or 3DS Max. In my experience, there's less complaints about weird conventions there, because newcomers to 3D graphics don't assume they know the whole tooling space just because they tinkered in Sketchup in the past.
(And that's not to say Emacs isn't full of legacy cruft. It's just that the legacy cruft that's really holding it down is not the things newcomers complain about.)
Emacs takes serious, concerted, and prolonged effort to make headway in. Nothing a new user knows about other software is helpful in working in emacs, so yeah, it's a really daunting and offputting barrier in 2021 when the overwhelming RULE is that tools honor conventions and work similarly.
This is why emacs is a niche application in a niche world, and is likely to remain so.
It's crazy powerful, and I have made OrgMode my organizational home for a long time, but I don't pretend it's a good fit for people who aren't already very nerdy. (Honestly, at this point, if a person with no development background expresses curiosity, I send them to Obsidian.)
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.
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).
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.
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.
> - Consistent interface: using emacs might be tough on mobile
> - Custom logic: via emacs scripts
> - Standard protocols: custom scripting does anything.
Huh?!
What kind of fantasy world are emacs devotees living in? No "normal" or even half-normal user is going to spend hours on "scripting" just to see their calendar, nor are they going to put up with mobile as anything other than a first class platform. For a lot of people, mobile is their only platform.
I don't think blackbear_ is a average user of emacs, remember we're on the same hacker news where a user famously asked "why even build Dropbox when ssh/scp does the trick?" so it's very biased towards "I can hack this together myself so why couldn't others".
If I recall correctly, that user was giving examples of questions that could be expected to be asked by other people. They were not actually tivializing Dropbox.
You don't recall correctly, the users only question is about making money while the rest are statements on how Dropbox don't seem to solve any of the "real" problems and won't even replace FTP (I recalled ssh/sft incorrectly here too).
Interesting. I think those need to be taken in their own context though - at least the second is responding to somebody who is indeed being an 'internet-jerk'. Usually when I see it it's used either in a humbling reminder that the future isn't known sense, or a suggestion not to underestimate the value in simplifying, de-nerd-ifying existing things that work.
I referred to it myself yesterday (https://news.ycombinator.com/item?id=28359928) in the latter sense, and I hope nobody would read that as me being a jerk or attacking BrandonM or anything. I just see it as an 'historical' example of something we can learn from; in the same way as you could learn from some great statesman or general's mistake or whatever, without it tainting your image of the person or being an attack on them.
I suppose most of the jerkier ones get flagged away, meaning I mostly don't see them and dang mostly does.
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.
Disclaimer: Involved in both KDE (including kde pim and kalendar) and Nextcloud. See bio.
* I wouldn't call Nextcloud codebase old. It's a PHP 7.3 codebase with sure quite a lot of legacy stuff but a lot of thing has been improved and refactored with the time. It's maintained, there is an active community and an healthy enterprise behind the project. IHMO this is that matters more than the programming language used.
* SabreDAV supports WebDAV and this is that we are using at Nextcloud for our webdav/caldav and carddav support.
* KOrganizer does run on Windows but it require to be built from source. I have been told that a better Windows support is being worked on for the entire PIM suite and I hope that at some point exe can be distributed. Technically there is nothing that makes it impossible to use on macOS, we just need more helping hands to help with fixing the platform specific issues. There is also a modern alternative to Korganizer being worked on called Kalendar. More on it can be learned on https://claudiocambra.com/ (Disclaimer: I was the mentor of this GSoC project).
I have been using Nextcloud as my family's calendaring solution for years now. It works great and that's high praise coming from me because 95% of the software I have to use on a daily basis is terrible. The fact that the blog author's main complaint about it was that it was "old PHP" makes me wonder if he's even interested in a time-tested solution with a large active community.
The calendar is really the main reason I use Nextcloud at all. The web UI _was_ the best calendar UI I had used but the recent rewrite set it back quite a bit. I've been following the bugs related to it but the UI designers seem to think that pretty is better than functional.
Nextcloud calendar does work great as a source of truth. I share calendars to Android devices (via Davx5), iPhones, and calendar clients like Thunderbird. It all just works great.
>The UI _was_ the best UI I had used but the recent rewrite set it back quite a bit. The UI designers seem to think that pretty is better than functional.
This applies to 95% of all modern software. Optimise UI for looking (subjectively) pretty in screenshots.
The "dribbilization of design" (in reference to Dribble.com) seems to have gotten especially bad in the last decade or so.
I used to teach Human-Computer Interaction, and it was exciting to me when many companies started hiring UX designers. But ultimately it was disappointing because especially in consumer products it seems like product managers prioritized hiring folks with strong aesthetics even at the expense of fundamentals like usability and research.
Another issue here is that UX/Product tend to focus on two or three privileged use cases at the expense of any concept of flexibility/extensibility: I’ve worked on several projects now that could have enabled some really fantastic third-party extension feature but, because these only appeal to a small fraction of the users, they’re never prioritized or thought about: the ethos embodies in a lot of the old Unix programs (emacs/vim) or even something like Excel is largely underserved.
I think your comment has me thinking that instead of everyone having a vim/emacs holy war mixed with battling the Excel wizards, we should all band together because we are infighting at this point.
We were on top of the world, now the world is built on top of us.
Flexible products cost more to design, implement, and support than simple ones. Outside of expensive tools for professionals (and web browsers oddly enough) the market seems to have spoken that not enough consumers are willing to pay for that flexibility.
(Personally I like designing expressive/extensible products, so that constrains me to working on tools for professionals.)
I think there’s a chicken and egg problem here, though: if all the apps/websites an average user uses aren’t designed to make “power users” possible, fewer people will have the opportunity cross the line from user to power user. (In the extreme, I had a former coworker who started as an accountant, discovered he really liked automating excel Workflows with VBA and eventually made the career jump to Software Engineer)
Agreed. Excel is an interesting case. Most of the power and expressiveness was added to support professional use cases but because it's bundled with MS Office it's available to novices as well.
At least in my experience, making products for non-professional power users presents a few challenges. First off, you can't charge much for a product that isn't a professional tool. At the same time, power users are (initially) a niche segment so in order to support a development team you probably need something that will appeal to a broad audience. But designing a product that works well for a broad audience and for power users is harder (=more expensive) than focusing on one or the other. It doesn't help that power users can be more demanding in terms of support and feature requests than average users.
My experience is that power-user features often get nixed not because any one stakeholder doesn't like them -- often internal folks are themselves power users and think it would be pretty cool -- but because it's often harder to make a good ROI argument for building and supporting power-user features compared to features for the average user.
I think what this misses is the disproportionate influence of power users: they're a small fraction of the user base, but they tend to be concentrated among the people that are in a position to recommend your product.
It's a slightly different case, but I remember noticing that, when Google retired Google Reader, the perception of Google in media and on tech sites seemed to go bad nearly overnight.
I felt the same way about Google Reader -- I stopped relying on new Google products after it was sunsetted. But Reader has also come up in discussion as a cautionary tale. Because if we do build niche but well-loved capabilities and later determine that we can't afford to maintain them then we run the risk of the kind of backlash that Google got for Reader.
Besides the argument that power users can become evangelists, the other argument I've used in feature prioritization meetings is that power users can provide significant utility to the whole user ecosystem by sharing the customizations and extensions they've developed with average users.
Having said that, these kinds of features rarely make the cut, and even when they do they're often not as obviously successful as I would have hoped. With respect to the benefit of power-user "evangelism" that's hard to measure. It's hard to measure whether $400k for a few power-user features or $400k in average-user features ends up resulting in more paying users.
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.
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.
> Many modern user interfaces have a lot of functionality hidden behind catchall elements [...] it makes it very difficult to find what functionality is available unless you go exploring.
Users still have to explore, even more so, in complex interfaces where a lot of options are presented. They don't know what each option does and there's so many of them.
And even the classic desktop apps have a lot of functionality hidden under the File/Edit/View/Insert/Tools menu bar. If they are not designed carefully, they are just hamburger menus with confusing labels. I'm looking at one right now. Why is "Find" under "Edit"? I don't want to edit anything, I just want to look for something. Is this action destructive? I took a risk and I pressed it, but luckily it is indeed just a search.
It's also a problem in physical interfaces like a computer keyboard. There's dozens of buttons and yet there are many hidden interactions between them. What does "Home" button do? Will it take me to my home screen? My home page? Let's press it. Oh, it just scrolls up.
Unless the options are severely limited or the users are trained, exploring can't be avoided - and it's not a bad thing.
> More and more designs target smartphone displays, which used to be very small and require big targets to ensure they could be mashed with normal human fingers. However, this gets reused on tablets, modern gigantic smartphones, and even desktop, where none of this makes sense.
It does make sense on the gigantic smartphones and tablets. The size of the viewport doesn't matter. The size and the precision of the pointer device does - and my finger didn't shrink.
> Clickable items often have simplified, highly abstracted icons with thin-line monochrome content, frequently implemented as fonts, which is less distracting from the visuals of the design but is also hard to understand what it's supposed to represent.
Here's a screenshot of LibreOffice Calc with a classic skeuomorphic icon set: https://i.imgur.com/TO7mHEg.png Let's ignore the poor contrast caused by the dark background for now. Can you tell me which icon is responsible for Search?
It should be the one between the printer and the scissors - it has a magnifying glass after all. Turns out, it's Toggle Print Review. Search is actually in the middle of the row between Redo and Spelling, labeled as Find and Replace. It looks more like a microphone to me.
> Less modality. Many modern designs will have modal interface elements that prevent access to the rest of the user interface until interacted with and/or dismissed.
There's a time and place for this, especially if it's something important. For example Exit Without Saving confirmation modal in BIOS, which is several decades old.
I agree with your other points. Chat apps are getting worse. Discord has even shrunk the text area where you type your message.
Turns out bad design isn't new. I agree with almost everything you've said - there's bad design examples from every period. There's plenty of UI design resources from the early 2000s and they all contain examples of bad UI. But that doesn't mean there's no difference between now and then. Having options split among labeled menus improves recall, even when it doesn't improve discovery (and it often does improve discovery because the labels aren't entirely arbitrary). So I definitely see this getting worse with hamburger-and-gear interfaces. Skeuomorphic colorful icons are usually easier to tell apart than font-based monochrome abstract line art, and they're much easier to remember, for non-colorblind users. Doesn't mean they can't be bad or misleading.
As for the size of clickable items, I consistently see interface elements that span the full width of the screen (except some padding) on modern giant-screen smartphones and tablets. It seems the screens grow and the UI elements grow with them, rather than remaining fingertip-sized. And of course none of this has any place on desktop, but it gets reused there anyway.
Lately I'm a big fan of omni-search bars that search not only across the files, but also options and menus. Like the one in Sublime Text on Jetbrains products.
> 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.
My personal favourite “wtf” is a recent pattern I’ve noticed across a growing number of random websites I’ve come across where they implement a flat/pseudo-Material style design and they have the nice big square coloured areas for buttons (often without any visual cue it’s a button like a drop shadow) and instead of being a clickable button where the entire coloured “button area” is clickable, only the text is clickable.
I just can’t comprehend why anyone thinks it’s a good idea to imply an area is a button and then not make it act like a button. It’s not even like they don’t have multiple ways to make whatever element they use to contain/apply the colour clickable, it’s just bad design!
In my experience, "dribbble designers" sometimes take a "cargo cult" approach to design that apes the appearance of good design without understanding what actually makes a design good in the first place.
I agree with most of what people have written, but I think the two biggest gaps are:
First, understanding the target users and their goals, tasks, skills, context of use, performance, etc. When interviewing designers I'm regularly surprised how many of them have been working in the field for years and have a beautiful portfolio and yet when I drill into their process they seem to have spent surprisingly little effort understanding of the human on one side of the interaction.
Second, usability tests with a representative sample of the target audience. (Along with an organization that has the humility to accept when a redesign is unsuccessful.) If you do nothing else, do this. Even the best design groups I've worked with produced nearly the same number of beautiful-but-bad designs as the worst ones. The difference was that the former had the humility to accept that the design missed the mark and continued to iterate whereas the latter was often willing to ship anyway due to misplaced confidence, strict deadlines, or a CEO with a Steve Jobs complex.
With respect to things like whitespace, information density, hit-target/button size, modals, adherence to platform standards, up-front complexity vs hidden actions, icons vs words, customizability, etc those can be good or bad depending on user and context. The real problem occurs when a designer attempts to substitute their own gut instinct to compensate for a lack of understanding of their target audience. The mantra often repeated at the design program where I worked was: "The user is not like me."
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.
Every time I see that happening to some software I use I wonder if the designer is a passerby tasked with making it look pretty or somebody that actually use that software daily.
Examples in different categories as I don't use Nextcloud:
Do Firefox designers for Android use Firefox on their phones as their only browser or they use Chrome and don't understand how their new UX added too many extra taps and/or complications?
On the other side, the designer of new K9 is the original developer and I'm pretty sure he uses K9 daily. I and many other people just happen to use the app in a very different way than him and many others. The new app optimizes one workflow and inadvertently destroys the other. At least I understand that even if I had to go back to the old version (no security bugs there at least.)
I find the new UI of Firefox on android much better than the old and miles better than chrome, so these things are quite subjective.
Also, the complains about how design and UIs are getting worse, remind me a lot of the "the youth of today" complaints that can be dated back to Plato. There was plenty of absolutely horrendous UIs around at every time. Also, just because it looks good, doesn't make it bad UI (plenty of people seem to judge like that).
>>The UI _was_ the best UI I had used but the recent rewrite set it back quite a bit. The UI designers seem to think that pretty is better than functional.
>This applies to 95% of all modern software. Optimise UI for looking (subjectively) pretty in screenshots.
Hard to blame them - most people make the decision to evaluate/not evaluate software based purely on how it looks.
I wrote an interactive GUI app in Lazarus that had almost instant (less than 20ms) responses to any user action (click, enter, typing, chart-rendering, etc). My manager complained that it looked dated and asked why a WebApp couldn't be done instead :-/
I do some minor customization with the UI via the custom css app https://apps.nextcloud.com/apps/theming_customcss to make it a bit more functional. Thankfully they have keept the css classes and don't look to ever be getting rid of them.
I 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.
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)
Thank you for your work. I've used KDE for quite a while and I recall the 4.0 shenanigans and stayed with it. I absolutely love the mad amount of customisation that is available and the breadth and sheer depth of the project.
If you could get Kmail/Kalendar to speak Exchange EWS or the like easily then you might unlock a lot of "enterprise" users. I use (Gnome) Evolution EWS on my KDE desktop.
Been using Nextcloud since it was called Owncloud and I make (happy) heavy use of its files, calendar and notes capabilities.
Updates always go well and the android apps are good.
I doubt the general experience would have been as smooth had it not been a PHP "app".
356 comments
[ 3.5 ms ] story [ 363 ms ] threadInternally all the major Calendar services (GCal and Outlook), store events differently when it comes to events with multiple attendees and recurring events, and it takes understanding the varying nuances to perform good synchronization. Even the difference between a timed event and an all day event will vary from system to system. And that barely touches the timezone issues that arise when scheduling.
Add to all that : the calendaring hosting providers will block your API access to their customers so unless you have a business relationship with them, or the technical solution means that they can't block you, it's a crappy business proposition.
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.
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
This is the image I have created few years ago (likely newer ones exist): https://hub.docker.com/r/lucianofiandesio/baikal
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.
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.
[1] https://standardnotes.com
[2] https://github.com/standardnotes
Old but gold.
> https://www.horde.org
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 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 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/
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/
I don't think I will leave Firefox for it but I might just use it just for the calendar.
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 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.
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.
Isn't that what WebDAV is?
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?
Currently I'd consider hassling with a switchover because of Apple's hideously defective calendar, which insists on changing the times of your appointments when you cross time zones. If you go on a trip to the east, you're going to miss your flight home because Apple has changed the time of it in your calendar to LATER.
Monumental stupidity, and there's no way to prevent it. Apple gives you no way to simply set up an appointment and say, "When the clock on this phone says 3:30 p.m., no matter where I am in the world, alert me."
NOPE! says Apple.
> 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?
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).
AS is, I've never found it super useful. j
https://support.microsoft.com/en-us/office/search-for-tagged...
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.
"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."
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.
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 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 :/
But it's desktop only
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.
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.
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!
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.
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.
https://docs.microsoft.com/en-us/outlook/troubleshoot/calend...
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.
Pretty much the problem with anything Mozilla.
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.
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).
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).
So I added all the games by hand, and a few weeks later, the entire second half of the season was rejiggered.
I route my remote calendars through Cloudflare workers for a modicum of privacy. It's as simple as running a basic open source relay and prepending the worker URL: https://github.com/Zibri/cloudflare-cors-anywhere
What's "via"?
I have done event feeds in both, but never together.
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.
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.
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
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?
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.
In my experience (using iOS + macOS) they're pretty common and always work. What kinds of failures do you see?
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!
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 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.
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.
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.
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.
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.
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
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...)
- 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
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.
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.
(https://github.com/alphapapa/org-ql)
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.
https://logseq.com/
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.
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
I fly into a panic because "U" doesn't do anything and Spacemacs binds "K" to some sort of manual lookup
Deeply stressful experience
1. https://beorg.app/
This is frustrating enough that I'm always kinda low-key evaluating other systems, like Obsidian, that have a better story for mobile.
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.
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.
0. https://orgmode.org/list/CA+G3_POBAB1QX1Zv8q9sjFh4KHUHVmaNXp...
[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...
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.
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.
Do you guys not see the problem? :-)
makes it possible to actually be productive with org-mode within an hour.
I feel like of all the tools I've learnt to use, Emacs has had the greatest return on investment.
"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.
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.
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?
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.
* https://elpa.gnu.org/packages/which-key.html
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.)
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's worth it.
[0]: https://www.youtube.com/watch?v=0g9BcZvQbXU
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.
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.
> - 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.
You can check out history in the making yourself here: https://news.ycombinator.com/item?id=8863
I think this is what I was remembering.
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'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 wouldn't call Nextcloud codebase old. It's a PHP 7.3 codebase with sure quite a lot of legacy stuff but a lot of thing has been improved and refactored with the time. It's maintained, there is an active community and an healthy enterprise behind the project. IHMO this is that matters more than the programming language used.
* SabreDAV supports WebDAV and this is that we are using at Nextcloud for our webdav/caldav and carddav support.
* KOrganizer does run on Windows but it require to be built from source. I have been told that a better Windows support is being worked on for the entire PIM suite and I hope that at some point exe can be distributed. Technically there is nothing that makes it impossible to use on macOS, we just need more helping hands to help with fixing the platform specific issues. There is also a modern alternative to Korganizer being worked on called Kalendar. More on it can be learned on https://claudiocambra.com/ (Disclaimer: I was the mentor of this GSoC project).
I'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).
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.
This applies to 95% of all modern software. Optimise UI for looking (subjectively) pretty in screenshots.
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 wasn't familiar, but this site fits the comment better, so I assume that's what was meant.
We were on top of the world, now the world is built on top of us.
(Personally I like designing expressive/extensible products, so that constrains me to working on tools for professionals.)
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.
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.
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.
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.
- 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.
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.
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.
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.
Just give me a big button with a goddamn gear icon every time.
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.
> 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.
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 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."
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
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.)
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).
That's another thing, material design interfaces are also ugly as sin x)
>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 :-/
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.
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)
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.
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.
It pointed out I don't need a password because I'm already connected to the domain via Kerberos - nice.
I doubt the general experience would have been as smooth had it not been a PHP "app".
Top notch software! Highly recommended.