Live data from Hacker News

I failed moving my Google calendar to Proton

shilin.ca

71–80 of 80 posts

Re: I failed moving my Google calendar to Proton

#71
post #63

Earlier quoted context omitted.

It’s not just that. Manual entry is still a thing happening too often. Yes, some apps allow to put your booking in a calendar, but that doesn’t cover all use cases. You call, make an appointment — getting an ical via SMS after the call would be great. You open a website, then check there the opening hours or schedule, taking that information to your calendar app would be great. Etc etc.

do you need that clutter on your calendar though, when a voice query to perplexity (or siri et al when they catch up) will answer your question about opening hours when you need the information?

A quick Google tells me Perplexity doesn't support my language, so no a voice query to Perplexity won't work.

"Perplexity is now available in Korean (한국어), Japanese (日本語), German (Deutsch), French (Français), and Spanish (Español)"

It's missing 3 of the top 5 languages spoken in the world today. It only has 3 of the top 10 most spoken languages in the world.

Also everyone in my country drives scooters and I don't see how voice commands are supposed to work with that kind of setup.

Re: I failed moving my Google calendar to Proton

#72
post #63

Earlier quoted context omitted.

It’s not just that. Manual entry is still a thing happening too often. Yes, some apps allow to put your booking in a calendar, but that doesn’t cover all use cases. You call, make an appointment — getting an ical via SMS after the call would be great. You open a website, then check there the opening hours or schedule, taking that information to your calendar app would be great. Etc etc.

do you need that clutter on your calendar though, when a voice query to perplexity (or siri et al when they catch up) will answer your question about opening hours when you need the information?

That's a filtering issue. For any case less trivial than checking if something is open right now, calendar view is superior. If you want to plan something, calendar view spanning multiple days, combining the thing with your existing plans and events, is pretty much a must.

Re: I failed moving my Google calendar to Proton

#73
post #32

Earlier quoted context omitted.

It’s difficult to maintain basic features in a popular calendar, at least according to the ms exchange team blog: > calendaring is particularly tricky. Why’s that? Well, consider time zones for a start – a meeting you set up isn’t necessarily in the same time as it is for me, and then you also invited people, from a whole bunch of other time zones (did you know some time zones are 30 mins off, not a full hour?) (…) h…

I don't buy it. I do think the problems are not trivial but it's not like there aren't trivial problems within the larger problem. Let's take a trivial problem: holidays. Every account you have comes with a holiday calendar. So if you got a Microsoft, Google, and Apple account you'll have entries in triplicate. These are all day events with identical names. There's a lot of hints to tell you that these are identical…

> and then hide the event

Speaking of - hiding events is one of the features of Sectograph[0] I most frequently use. I think local event modifications on shared calendars are another big feature missing almost everywhere. In my case, hiding events lets me just sync the shared family calendar synced directly to my watch, and just hide the events I don't care about, as to not clutter the display, without deleting or otherwise affecting what my wife sees on her devices.

> So the thing I don't buy is that we can't do more. A programmer's job isn't easy. But it involves problem solving. I think there's not enough grumpy yet motivated people who will voice up such things because management usually says that it's not important. But these non important things add up. Life is complex so the little things actually matter a lot.

In Admiral Adama's voice: So say we all.

--

[0] - https://sectograph.com/ - may seem like a bit weird gadget, looking at the app screenshots, but it's true value comes from the same circular view being available as a watch face, giving you always-available view of the next 12 hours on your wrist. This is why I started adding bus/tram departures and event buffer times to my calendars - they become useful for quick checks on the go. IMHO, it's the only actually useful watchface on the Android smartwatch market.

Which is exactly why Google had to fuck it up with their Watch Face Format idea, aka. Manifest V3 For Smartwatches, aka. removing "smart" from "smartwatch". Fortunately, I'm not forced into it until my current watch dies.

Re: I failed moving my Google calendar to Proton

#74
post #30

Google Calendar supports CalDAV, but only behind OAuth, which many clients do not support. I've created https://github.com/bjesus/oauth-hopper to solve that - it takes care of the OAuth steps and provides a clean CalDAV endpoint that you can use to read and write to your calendar from almost any calendar application. In reality OAuth Hopper can be used to abstract OAuth away from any endpoint - it isn't CalDAV specif…

> In reality OAuth Hopper can be used to abstract OAuth away from any endpoint - it isn't CalDAV specific in anyway.

You're doing Lord's work here. Thank you. OAuth2 has been the bane of my existence; it's basically the One Weird Trick to Prevent Automated Use of a Service.

Re: I failed moving my Google calendar to Proton

#75
post #32

A bit off topic but why are calendars so hard? I recently moved from android to apple and I'm just really impressed no one does a dedupe operation on calendars. Seriously, who works on these things? I'll write you the regex if you really really need it but damn, if you're going to push fancy AI on me to make my life easier at least take care of all the annoying trivial bullshit that makes my life harder.

It’s difficult to maintain basic features in a popular calendar, at least according to the ms exchange team blog: > calendaring is particularly tricky. Why’s that? Well, consider time zones for a start – a meeting you set up isn’t necessarily in the same time as it is for me, and then you also invited people, from a whole bunch of other time zones (did you know some time zones are 30 mins off, not a full hour?) (…) h…

> It’s difficult to maintain basic features in a popular calendar, at least according to the ms exchange team blog:

There's a large amount of things that regular people do with calendars every day, that could be automated or managed through better interaction paradigms, and to which those issues don't apply. That's a lot of low hanging fruits, that everyone's leaving to rot.

Like:

> meeting you set up isn’t necessarily in the same time as it is for me, and then you also invited people, from a whole bunch of other time zones (did you know some time zones are 30 mins off, not a full hour?)

99% of my calendar use involves events happening within days or weeks, and concerning me alone, me and my wife, me and my acquaintances, or me and some random local company. I don't care about timezones for those - they all happen in the same one, with the same DST shift.

(The remaining 1%? Timezone shenanigans happen at few distinct points in a year, and everyone knows to be careful around those and communicate out-of-band if needed. So again, not an issue in practice for users like me.)

Microsoft is thinking about calendars as tools for employees of multinational corporations. But calendars aren't only useful for managers frequently flying intercontinental; there's a lot of regular folks using them for affairs much more localized in time, space, and social graph.

Re: I failed moving my Google calendar to Proton

#76
post #63

Earlier quoted context omitted.

do you need that clutter on your calendar though, when a voice query to perplexity (or siri et al when they catch up) will answer your question about opening hours when you need the information?

A quick Google tells me Perplexity doesn't support my language, so no a voice query to Perplexity won't work. "Perplexity is now available in Korean (한국어), Japanese (日本語), German (Deutsch), French (Français), and Spanish (Español)" It's missing 3 of the top 5 languages spoken in the world today. It only has 3 of the top 10 most spoken languages in the world. Also everyone in my country drives scooters and I don't see…

  > Perplexity is now available in Korean (한국어)
Wow, usually Korea takes awhile to get things.

  > Also everyone in my country drives scooters and I don't see how voice commands are supposed to work with that kind of setup.
Even if they were supported I would suspect that you would have some issues. My partner is Korean (I'm not) and when she goes back to Korea and we video chat while she's on the subway then her airpods' "voice isolation" systems actually amplify background noise rather, drowning her out, rather than doing the opposite (its intended usage).

Being an ML researcher... I have some suspicions as to what is the root cause. I can't tell you exactly without having access, but I can tell you that it is VERY common for models to be trained without sufficient augmentation, let alone without sufficient diversity in data. So it is fairly common for the system to not be useful in certain environments. Worse, when you hyper focus on maximizing test data results you are extremely likely to perform data leakage (this is quite common and at this point I'd say you should assume it exists) and not enough evaluation on completely held out sets. Especially data which is significantly dissimilar to what you trained on (even when it is "in distribution"[0])

[0] This term can be a lot of things... so it must be interpreted in context.

Re: I failed moving my Google calendar to Proton

#77

Earlier quoted context omitted.

I don't buy it. I do think the problems are not trivial but it's not like there aren't trivial problems within the larger problem. Let's take a trivial problem: holidays. Every account you have comes with a holiday calendar. So if you got a Microsoft, Google, and Apple account you'll have entries in triplicate. These are all day events with identical names. There's a lot of hints to tell you that these are identical…

Weirdly enough an all day event in Office 365 isn't an all day event on a day. E.g, I record my wife's birthday in my calendar. I create an event on April 12th, and mark it as an all day event. What actually happens is that the calendar records an event that starts at midnight, and ends 24 hours later, and is marked as an all day event. But, when you change timezones the 24 hours actually shift, which can be very wei…

Sounds like something that could be solved by a flag.

  if all_day_event:
     show_option("timezone invariant")
If it is timezone invariant, then you can make it the 24hr (or whatever because there might not be 24 hrs in a day...) period relative to the current timezone.

This isn't an unsolvable problem, it is just people not seeking solutions.

I have a theory: a lot of tech products suck today because either:

  - People are not dogfooding[0] (using their own products)
  - People are not raising concerns
  - People raise concerns but issues are de-prioritized in favor of more flashy things. 
None of these things are great and they can only happen while a company has significant marketshare and monopoly like status. In essence, it is internal rot. Someone (plural) is disconnected from the actual product. They are out of touch with what the users want.

And I mean here's the thing. I could go ahead and write a wrapper for all of this and wrap in all my calendars. But that's a ton of work, there's probably no market, but if there was a market then the realistic result is that my success would result in the big players implementing the same feature and thus devaluing my work even though I increased the value of theirs. So I can do this as an open source project, but boy are there a lot of other higher priority issues like this. The real problem is that these issues can't be resolved within these big companies.

For whatever reason that is, it is bad business.

[0] https://en.wikipedia.org/wiki/Eating_your_own_dog_food

Re: I failed moving my Google calendar to Proton

#78

Earlier quoted context omitted.

Weirdly enough an all day event in Office 365 isn't an all day event on a day. E.g, I record my wife's birthday in my calendar. I create an event on April 12th, and mark it as an all day event. What actually happens is that the calendar records an event that starts at midnight, and ends 24 hours later, and is marked as an all day event. But, when you change timezones the 24 hours actually shift, which can be very wei…

Sounds like something that could be solved by a flag. if all_day_event: show_option("timezone invariant") If it is timezone invariant, then you can make it the 24hr (or whatever because there might not be 24 hrs in a day...) period relative to the current timezone. This isn't an unsolvable problem, it is just people not seeking solutions. I have a theory: a lot of tech products suck today because either: - People are…

> make it the 24hr (...) period relative to the current timezone

What if the event gets shared - should the dates still be relative to the timezone of the creator? Or to the most popular timezone? Or should they be different for everyone? Or something else?

What if the event is recurring and the creator travels between the occurrences, should the times change? When should the times be updated? Should all events change, or only the future events, or only the closest one?

What if a participant uses multiple devices in multiple timezones at the same time?

…etc. Perhaps there are ways to solve all these and more; my point is that in the context of calendars even adding a flag can get complex fast.

Re: I failed moving my Google calendar to Proton

#79
post #78

Earlier quoted context omitted.

Sounds like something that could be solved by a flag. if all_day_event: show_option("timezone invariant") If it is timezone invariant, then you can make it the 24hr (or whatever because there might not be 24 hrs in a day...) period relative to the current timezone. This isn't an unsolvable problem, it is just people not seeking solutions. I have a theory: a lot of tech products suck today because either: - People are…

> make it the 24hr (...) period relative to the current timezone What if the event gets shared - should the dates still be relative to the timezone of the creator? Or to the most popular timezone? Or should they be different for everyone? Or something else? What if the event is recurring and the creator travels between the occurrences, should the times change? When should the times be updated? Should all events chang…

  > What if the event gets shared - should the dates still be relative to the timezone of the creator?
You mean

  What if the event gets shared with someone who doesn't have a calendar that implemented this hypothetical yet super basic and highly useful feature.
Well then, it falls back to the standard 24 hr block, right? Yeah, it would be the timezone that it is currently being shared from because our flag was just telling the event to move itself with the timezone instead of being static.

Is that really that bad? This doesn't sound like a reason not to do this. Because the worst case scenario is that... we end up with the current implementation...

  > What if the event is recurring and the creator travels between the occurrences
Here's some shitty pseudocode. You could do this and store as UTC time but I think storing with timezone makes the point clearer.

  class Date(...):
      def __init__(self,
                   year   : int = 1970,
                   month  : int = 1,
                   day    : int = 1,
                   hour   : int = 0,
                   minute : int = 0,
                   second : int = 0,
                   ...
                   tmz    : str = "PST",
                   **kwargs):
          super().__init__()
          ...

      def start_of_day(self):
          self._hr, self._minute, self._second = self._sod

      def end_of_day(self):
          self._hr, self._minute, self._second = self._eod

  class Event(...):
      def __init__(self, 
                   start_time    : Date,         # date event begins
                   end_time      : Date,         # date event ends
                   all_day_event : bool = False, # is all day event 
                   tmz           : str = "PST",  # timezone
                   tmz_invar     : bool = False, # timezone invariant
                   **kwargs):
          super().__init__()
          ...
          self._begin = Date(start_time, tmz=tmz).start_of_day()
          self._end   = Date(end_time, tmz=tmz).end_of_day()
          if all_day_event:
             self._begin = self._begin.start_of_day()
             self._end   = self._end.end_of_day()
          self._ade = all_day_event
          self._tmz_invar = tmz_invar

  class Calendar(...):
      ...
      def display_events(self, ...):
         ...
          for event in self.events:
              if event.timezone_invariant:
                  self.display(event._begin._sod,
                               event._end._eod)
              else:
                  self.display(event._begin.tmz_offset(self.current_tmz),
                               event._end.tmz_offset(self.current_tmz))
All day events are marked as starting at the beginning of a day and ending at the end of a day. That being from our Date structure, which holds Month, Day of month, hour, minute, second, whatever precision, as well as special things like when the beginning of the day is and when the end of the day is. Here the function start_of_day() and end_of_day replaces whatever input values for {hour, minute, second, ...} with the appropriate values and attributes _sod and _eod are those values.

This assumed you stored events as a time with a timezone. If you stored events in UTC you'd need different logic. I mean time is messy, but either way we're moving stuff around. I mean we're just _displaying_ offsets when moving timezones, right? Because it would be wild to update all events every time we moved timezones, right? So we have to do some logic to take the date and display it relative to its time

With a timezone invariant flag all we're doing is saying

  Look at the year, month, and day. Ignore time and instead, use the day's start time and end time. 

  > What if the event is recurring and the creator travels between the occurrences, should the times change?
No, IT IS AN ALL DAY EVENT

  > When should the times be updated?
They don't, IT IS AN ALL DAY EVENT

  > What if a participant uses multiple devices in multiple timezones at the same time?
Doesn't matter, IT IS AN ALL DAY EVENT

I'll raise you a question

  What do you do if this is not an all day event and is in a specific time?
Think about that answer.

It is really not a hard problem. Because you are storing the events in some database. Moving timezones is then a conversion process. The invariant flag is just saying "keep the time relative to the day."

  > my point is that in the context of calendars even adding a flag can get complex fast.
I don't disagree, but I'm failing to see where this specific issue is an actual problem.

Re: I failed moving my Google calendar to Proton

#80
post #11

Switching from Google to Proton sounds like picking the lesser of two evils. If you really want to “degoogle” you should probably go for self-hosting or getting a managed OSS product (e.g. managed Mailcow/Sogo Hosting). Otherwise you’re just switching from one crazy billionaire to another. https://mastodon.neat.computer/@jonah/113705526672291257

That’s why I use pigeons and carve my weekly schedule into a stone with a chisel.
Post reply on HN