I'm not buying another expensive AirPods from Apple until they have their story straight w.r.t battery health and battery repair that is cost-effective. I'm done wasting money on these only to have battery issues, clicking noises etc in less than 2 years of continuous use.
Irritating thing is how Apple hides bluetooth headphones pairing 2-3 clicks deeper than AirPods pairing – on iPhones and Apple TV.
Replacing the batteries on the Maxes is actually a fairly straightforward process (no adhesive melting required, just a screwdriver and a pry bar), and spare batteries can be purchased on Amazon or Ebay for around 50 USD. It's one of the better Apple products in that regard, very unlike the in-ear models.
Did that change with the Air Pod Max USB-C, because iFixit says you have to get past adhesive to get to the batteries, after you turn the specialized screws only a quarter turn, and then use a dental pick to separate the pieces after you heat the adhesive being careful not to melt other parts?
>The next round of frustration: adhesive. That's right, releasing the locks and/or removing the screws isn't enough. Out comes the heat gun, which must be wielded very carefully to avoid melting all this plastic.
> Irritating thing is how Apple hides bluetooth headphones pairing 2-3 clicks deeper than AirPods pairing – on iPhones and Apple TV.
Can't you just create a Shortcut on the iPhone to pair with whatever you want via bluetooth in a single tap? Or just edit the control center menu itself and add the Bluetooth button directly to the control center?
4 clicks from control centre on stock settings.
Two if you add the Bluetooth widget into control centre.
Swipe down control centre > Bluetooth > hey presto
> that require legal to get involved and you do end up with documents that sound excessively broad
If you let your legal team use such broad CYA language, it is usually because you are not sure what's going on and want CYA, or you actually want to keep the door open for broader use with those broader permissive legal terms.
On the other hand, if you are sure that you will preserve user's privacy as you are stating in marketing materials, then you should put it in legal writing explicitly.
Well, you are better off using Google Photos for securely accessing your photos over Internet. It is not a matter of securing it once, but one of keeping it secure all the time.
If cheap is what you are looking for, then yes, a wireguard running on your home server is the way to go. Instead of exposing your home-server directly to Internet, I would put it behind a cloudflare zero trust network access product (costs free).
Interesting blast from the past. We built an oblivious p2p mesh network that did this in 2010. Back then, nobody cared about security as much as we thought they should. Since then, nobody still cares about security as much as they should. Devices have increased and their value has increased, and still, they are quite insecure. Truly secure endpoints with hardware root-of-trust and secure chains of trust for authn/authz and minimal temporary privileges is still hard, and network perimeter security theater is still ongoing in home networks, corp networks and even large production datacenter networks. Only reason we don't find these to be the primary root-cause for security breaches is because more easier attack chains are still easily available!
Find Zen in mundane daily repetitive tasks. Avoid all screens for first hour after you wake up (and the hour before you sleep). Stay focused in the moment – focus on your body and mind. First/last thing everyday, do these activities with mindfulness – personal hygiene, exercise, gratitude/prayer, set positive realistic intentions for the day, set intention to act, prepare, eat/pack fresh healthy food.
Then start your materialistic business end of your day. Learn to breathe and keep your mind calm and present throughout the day. Watch/catch yourself if your mind runs wild with background threads – try and disable background jobs in your mind for a few weeks.
If you have a spouse/partner, discuss these goals with them and ask for their cooperation while you are trying to change your habits. Have realistic expectations, and be generous towards others.
Coming to materialistic business hours of your day, focus on problem-solving and living in reality.
Work through your own personal Maslov's hierarchy of needs. Be strategic, be realistic, and try to build a reasonable position of confidence. Then, launch yourself further from there. Don't overextend yourself.
I appreciate how you phrased this - I struggle most with 'mundane, daily, repetitive tasks.' Approaching them with intentionality and presence of mind seems good, if not difficult.
The most common lock and key ergonomics that everyone is familiar with is the following:
1. You have a lock, you have a corresponding physical key. You can have more identical physical keys. All of them will unlock the lock. If you lose the physical key, you can call the locksmith to change the lock. Physical key is anonymous. Only you know which key unlocks which lock. If a random person finds your physical key on the street, they shouldn't be able to find their way to your lock to try and unlock it.
2. That's all well and good. Now, comes a magic key. That's your personal magic key. Any lock you are permitted to unlock, your magic key can unlock it. Any key you are not permitted to unlock, your magic key cannot unlock. Now, you can more than one magic key – where only some of the locks you are allowed to unlock can be unlocked by one magic key vs another.
And if you happen to lose your magic key, you can call your locksmith to cancel your magic key – actually, that's a keysmith than a locksmith!
3. Your magic key is still anonymous. Only you know which magic key can open which locks. A random person who finds your magic key shouldn't be able to find their way to all the locks it can unlock.
4. When you see a lock, you are prompted to insert a key. The prompt doesn't say which key. You try one of the magic keys have that you think should unlock it. If it happens to the wrong key, not a big deal. You just try another magic key you have, and if that's the correct key it will unlock it.
5. When you buy a new lock (sign-up), you decide which magic key you have that should be the one to unlock it. This pairing of the key to the lock is done simply by asking pair a key to the lock. You are not being told to use a specific vendor of magic keys. You are not being peddled only magic key vendor over another!
6. If you want to change the magic key paired to a lock, you can do so at anytime on your own as long as you are in possession of the current magic key.
7. And of course, you can have multiple magic keys paired to the lock, so that you can unlock with any of the keys.
8. When you use a key to unlock a lock, the lock can tell which paired key was used – you can give nicknames to the paired keys that the lock remembers. The lock will tell you which nicknamed keys were used to unlock it previously and when.
-----
Here's where I think passkeys went awry. They became yet another platform war. The OSes and browsers are supposed to be neutral and provide an unobtrusive prompt for user to pair a key or use a key, that's it. And the user should invoke a keyring against that prompt. If the keyring provider has features – like portability or non-portability of keys etc that's unique to each key ring provider and as long as the user is comfortable with it, everyone should be good with it. The prompt needs to be unassuming. Today it is very assuming and that's the problem!
When someone puts a significant and useful software under an open license (like BSD) and nurtures a vibrant open-source community around it, sure, everyone else can definitely take it and use it for free. But nobody serious will use it just because it is free. They will consider other intangible but critical aspects like risks to themselves w.r.t future viability of the project, ability to get custom work done to it or around it, keeping up with hardware and software ecosystem trends etc. These things have second order implications – how healthy the broader developer ecosystem is, is there a broad base of core committers we can hire, how easy it is to upstream our changes, who else is using it at similar scale, criticality, cost efficiency; is commercial support available (sometimes 3rd party commercial business support ecosystem is essential due to regulatory/compliance reasons), do hardware vendors actively participate in the open-source community and ensure it runs well on their hardware etc.
Apart from free users, even the contributors have very similar considerations for their participation.
But the starting point is the license – it has to be a clear and unambiguous open-source license that is widely well-understood – especially w.r.t the blast-radius or infection radius of the license. Does it infect the library code that is linked/loaded into it? Does it infect the independent binary/processes that scaffold around it (say, control-plane, orchestrator, proxy etc)? What are the obligations if it does?
If we have to get lawyers involved to answer these questions because it is a custom license that is vaguely written or it has never been challenged in a court or the license holder is of unknown reputation, these are huge red flags.
Another equally important consideration is the motivations of the stewards of the project. While this isn't explicitly stated, one cannot be naive about it. Contributors and users will have to consider a gamut of scenarios – best/base/worst scenarios and make their judgement. With smaller steward organizations, there are one kind of risks while with larger organizations open-sourcing there are other kinds of risks. If they are competitors in some way that's another challenge. If there is no natural alignment of use-cases functionally or non-functionally, that's another issue etc.
With recent changes in Redis, all these things have become less clear and straightforward.
Any modern software design has to meet these 3-4 key aspects:
1. Make the software scalable w.r.t machines.
2. Make the software scalable w.r.t humans.
3. Make the software maintainable over time.
4. Make the software reusable to reduce startup costs.
Motivated by these, we make a lot of choices:
1. decompose a large complex problem into smaller, isolated, modular problems that can be worked on by different small teams, and run on different servers with inter-server communication.
2. organize code along with its documentation for easy understanding, readability and modifiability over time by same developers and different developers.
3. organize reusable and independently upgradable parts of the code for ease of upgrade with stable interfaces and stable test suites.
4. maintain the build/package/deploy toolchains for ease of underlying hardware and operating systems upgrades without affecting all of the code.
5. reuse is the only way to reduce costs – both time and effort – for anything. thinking carefully and setting up for reuse of services, systems, libraries, toolchains, processes, practices etc are critical to any large successful software project.
These are general rules for normal times. But there are inflection points when it is profitable to violate these rules.
Things that distort the cost/benefit tradeoffs and make it profitable to violate these rules:
1. When tech ecosystem is rapidly evolving and toolchains and libraries ecosystem isn't mature.
2. When time to market is super critical and if successful we will have more than enough money to deal with these problems later, and if we are late even with good software we would have failed and shut shop.
3. When we can't hire talented skilled engineers and still it is worthwhile to win in the short-term.
With these rules and violations, you can get stuck in an early local optima. A culture of continuous safe refactors is a super-power that can make you immune to it. Ossification of any kind is bad.
Irritating thing is how Apple hides bluetooth headphones pairing 2-3 clicks deeper than AirPods pairing – on iPhones and Apple TV.
reply