Yeah I feel you, it's a tad frustrating. But a first world problem I guess. I just thought it was an obvious continuity feature to have as part of the Apple ecosystem.
schmurnan
We can hope, right?
Yeah I use that feature all the time; if I've been out running or for a walk listening on my iPhone, I'll often hold my phone next to my HomePod in the kitchen or bedroom and seamlessly carry on playback. And it works great. I just assumed it would be equally easy to implement it from Mac to iPhone.
That’s a shame. Seems like it’d be reasonably straightforward to implement on iOS 17 given the new stuff they’re doing with AirDrop.
I know Spotify has had this for a while and is probably one of the items highest on peoples’ wishlists. Maybe one day.
I managed to get mine for launch day, although the Apple Store didn’t come online at 13:00 UK as advertised; there was probably 4 - 5 mins delay.
I had configured my pre-order beforehand.
Pro models actually got a price decrease in the UK, unless I’m missing something.
Now I just need to decide whether to match my phone to my watch and get the natural titanium, or whether to go for the blue.
Oh, and, Pro (like usual) or Pro Max (seems a bit big!).
I didn’t know they stored local copies — had a very, VERY quick skim through their privacy policy on their website and couldn’t see any reference to that (sure it’s there but I didn’t see it).
I’m not a Spark user btw, was just following the conversation. I use plain ol’ Apple Mail.
I could be misinformed, but this isn’t just limited to Spark as I understand it, I believe a lot (maybe all?) third-party clients do the same thing. They act as an intermediary between you and the server so they can deliver push notifications.
However, as I understand it, Spark’s privacy policy outlines that they don’t read/scan the contents of your emails, and the use of app-specific passwords rather than your email password ensures they only have access to emails and nothing else.
Pretty sure others such as Canary, Airmail, Edison, etc. all do/did the same thing, but it was the lack of clarity in Spark’s privacy policy that made them the main target for scrutiny. I think they’ve since cleared that up.
I could be mistaken, though.
I see what you did there!
I replied to another comment on here saying that I'd tried this once before, via a Docker container, but just wasn't getting any results back (kept getting timeouts from all the search engines).
I've just revisited it, and still get the timeouts. Reckon you're able to help me troubleshoot it?
Below are the logs from Portainer:
File "/usr/local/searxng/searx/network/__init__.py", line 165, in get
return request('get', url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 98, in request
raise httpx.TimeoutException('Timeout', request=None) from e
httpx.TimeoutException: Timeout
2023-08-06 09:58:13,651 ERROR:searx.engines.soundcloud: Fail to initialize
Traceback (most recent call last):
File "/usr/local/searxng/searx/network/__init__.py", line 96, in request
return future.result(timeout)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 458, in result
raise TimeoutError()
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/searxng/searx/search/processors/abstract.py", line 75, in initialize
self.engine.init(get_engine_from_settings(self.engine_name))
File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
guest_client_id = get_client_id()
^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/engines/soundcloud.py", line 45, in get_client_id
response = http_get("https://soundcloud.com")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 165, in get
return request('get', url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 98, in request
raise httpx.TimeoutException('Timeout', request=None) from e
httpx.TimeoutException: Timeout
2023-08-06 09:58:13,654 ERROR:searx.engines.soundcloud: Fail to initialize
Traceback (most recent call last):
File "/usr/local/searxng/searx/network/__init__.py", line 96, in request
return future.result(timeout)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/concurrent/futures/_base.py", line 458, in result
raise TimeoutError()
TimeoutError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/searxng/searx/search/processors/abstract.py", line 75, in initialize
self.engine.init(get_engine_from_settings(self.engine_name))
File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
guest_client_id = get_client_id()
^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/engines/soundcloud.py", line 45, in get_client_id
response = http_get("https://soundcloud.com")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 165, in get
return request('get', url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/searxng/searx/network/__init__.py", line 98, in request
raise httpx.TimeoutException('Timeout', request=None) from e
httpx.TimeoutException: Timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikidata: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.duckduckgo: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.google: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.qwant: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.startpage: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikibooks: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikiquote: engine timeout
2023-08-06 10:02:05,024 ERROR:searx.engines.wikisource: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.wikipecies: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.wikiversity: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.wikivoyage: engine timeout
2023-08-06 10:02:05,025 ERROR:searx.engines.brave: engine timeout
2023-08-06 10:02:05,481 WARNING:searx.engines.wikidata: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,481 ERROR:searx.engines.wikidata: HTTP requests timeout (search duration : 6.457878380082548 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,482 WARNING:searx.engines.wikisource: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,484 ERROR:searx.engines.wikisource: HTTP requests timeout (search duration : 6.460748491808772 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,485 WARNING:searx.engines.brave: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,485 ERROR:searx.engines.brave: HTTP requests timeout (search duration : 6.461546086706221 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,487 WARNING:searx.engines.google: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,487 ERROR:searx.engines.google: HTTP requests timeout (search duration : 6.463769535068423 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,489 WARNING:searx.engines.wikiversity: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,489 ERROR:searx.engines.wikiversity: HTTP requests timeout (search duration : 6.466003180015832 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,490 WARNING:searx.engines.wikivoyage: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,490 ERROR:searx.engines.wikivoyage: HTTP requests timeout (search duration : 6.466597221791744 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,490 WARNING:searx.engines.qwant: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,490 ERROR:searx.engines.qwant: HTTP requests timeout (search duration : 6.4669976509176195 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,491 WARNING:searx.engines.wikibooks: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,491 ERROR:searx.engines.wikibooks: HTTP requests timeout (search duration : 6.4674198678694665 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,491 WARNING:searx.engines.wikiquote: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,492 WARNING:searx.engines.wikipecies: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,492 ERROR:searx.engines.wikiquote: HTTP requests timeout (search duration : 6.468321242835373 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,492 ERROR:searx.engines.wikipecies: HTTP requests timeout (search duration : 6.468797960784286 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,496 WARNING:searx.engines.duckduckgo: ErrorContext('searx/engines/duckduckgo.py', 98, 'res = get(query_url, headers=headers)', 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,497 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 6.47349306801334 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:02:05,511 WARNING:searx.engines.startpage: ErrorContext('searx/engines/startpage.py', 214, 'resp = get(get_sc_url, headers=headers)', 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:02:05,511 ERROR:searx.engines.startpage: HTTP requests timeout (search duration : 6.487425099126995 s, timeout: 6.0 s) : TimeoutException
2023-08-06 10:04:27,475 ERROR:searx.engines.duckduckgo: engine timeout
2023-08-06 10:04:27,770 WARNING:searx.engines.duckduckgo: ErrorContext('searx/search/processors/online.py', 118, "response = req(params['url'], **request_args)", 'httpx.TimeoutException', None, (None, None, None)) False
2023-08-06 10:04:27,771 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 3.2968566291965544 s, timeout: 3.0 s) : TimeoutException
2023-08-06 10:04:50,094 ERROR:searx.engines.duckduckgo: engine timeout
2023-08-06 10:04:50,187 WARNING:searx.engines.duckduckgo: ErrorContext('searx/engines/duckduckgo.py', 98, 'res = get(query_url, headers=headers)', 'httpx.ConnectTimeout', None, (None, None, 'duckduckgo.com')) False
2023-08-06 10:04:50,187 ERROR:searx.engines.duckduckgo: HTTP requests timeout (search duration : 3.0933595369569957 s, timeout: 3.0 s) : ConnectTimeout
The above is a simple search for "best privacy focused search engines 2023", followed by the same search again but using the ddg! bang in front of it.
I can post my docker-compose if it helps?
Would love to know this, and this did form part of my OP in terms of which search engines could be “hacked” into Safari.
Yeah I know they’re all based on one of three, but they are all subtly different in what they offer.
So whilst there are three main engines, there are definitely more than three choices.
Bottom of the pile for me is Chrome - I don’t use anything Google knowingly/willingly.