Except the other examples used to work like Apple’s and have switched to the scroll locked implementation.
I think I prefer that mode to be honest, because it leaves you in a consistent place for up/down to take you to instead of it potentially depending where your selection is in the row.
Yeah the real pain is button pressing down / up / back in the TV UI. Definitely a fun grab bag of possible outcomes! I don’t think there’s a good solution without a militant UI person in charge of the whole shebang - some radical simplification would likely be needed.
The reality is that the click ipod was much better at scrolling media than the Apple TV is. And I own a lot of Apple TVs - I think it’s a good device. But it was far faster to scroll through media 20 years ago.
* boring and straightforward syntax and file structure: no syntax sugar, aliases, formatting freedom that humans cherish, but machines are getting confused, no context-specific syntax.
* explicitness: no hidden global state, shortcuts and UB
exactly my thought. I never made it to Vista. In 2007 I changed WinXP (always used it with the classic grey theme) for OS X Tiger on a MacBook and never went back to Windows since then.
I wonder where a decent alternative will be lurking in the next few years? Apple is losing some grip, but all others are still worse overall.
You don't have to play this game - you can always write within unsafe { ... } like in plain old C or C++. But people do choose to play this game because it helps them to write code that is also correct, where "correct" has an old-school meaning of "actually doing what it is supposed to do and not doing what it's not supposed to".
Software is built on abstractions - if all your app code is written without unsafe and you have one low level unsafe block to allow for something, you get the value of rust for all your app logic and you know the actual bug is in the unsafe code
This is like saying there’s no point having unprivileged users if you’re going to install sudo anyway.
The point is to escalate capability only when you need it, and you think carefully about it when you do. This prevents accidental mistakes having catastrophic outcomes everywhere else.
I think sudo is a great example. It's not much more secure than just logging in at root. It doesn't really protect malicious attackers in practice. And it's more of an annoyance than it protects against accidental mistakes in practice.
Unsafe isn’t a security feature per se. I think this is where a lot of the misunderstanding comes from.
It’s a speed bump that makes you pause to think, and tells reviewers to look extra closely. It also gives you a clear boundary to reason about: it must be impossible for safe callers to trigger UB in your unsafe code.
That's my point; I think after a while you instinctly repeat a command with sudo tacked on (see XKCD), and I wonder if I'm any safer from myself like that?
I'm doubtful that those boundaries that you mention really work so great. I imagine that in practice you can easily trigger faulty behaviours in unsafe code from within safe code. Practical type systems are barely powerful enough to let you inject a proof of valid-state into the unsafe-call. Making a contract at the safe/unsafe boundary statically enforceable (I'm not doubting people do manage to do it in practice but...) probably requires a mountain of unessential complexity and/or runtime checks and less than optimal algorithms & data structures.
> That's my point; I think after a while you instinctly repeat a command with sudo tacked on (see XKCD), and I wonder if I'm any safer from myself like that?
We agree that this is a dangerous / security-defeating habit to develop.
If someone realizes they're developing a pattern of such commands, it might be worth considering if there's an alternative. Some configuration or other suid binary which, being more specialized or tailor-purpouse, might be able to accomplish the same task with lower risk than a generalized sudo command.
This is often a difficult task.
Some orgs introduce additional hurdles to sudo/admin access (especially to e.g. production machines) in part to break such habits and encourage developing such alternatives.
> unsafe
There are usually safe alternatives.
If you use linters which require you to write safety documentation every time you break out an `unsafe { ... }` block, and require documentation of preconditions every time you write a new `unsafe fn`, and you have coworkers who will insist on a proper soliloquy of justification every time you touch either?
The difficult task won't be writing the safe alternative, it will be writing the unsafe one. And perhaps that difficulty will sometimes be justified, but it's not nearly so habit forming.
Because only lines marked with unsafe are suspicious, instead of every line of code.
Also the community culture matters, even though static analysis exists for C since 1979, it is still something we need to force feed many developers on C and C++ world.
Magic prefix (similar to byte-order-mark, BOM) is also killing the idea. The reason for success of any standard is the ability to establish consensus while navigating existing constraints. UTF-8 won over codepages, and UTF-16/32 by being purely ASCII-compatible. A magic prefix is killing that compatibility.
I love how people bring up deflationary spiral as a "peril" while the prerequisite for it is the universal and smashing success of Bitcoin.
The only "problem" Bitcoin poses for economies is for governments to fine-tune their local economies via currency production and related controls. In that sense, we should watch how events unfold in Turkey.
* among major "regular" economies, Turkey has the highest % of people holding crypto (≈20%). Second only to special zones UAE and Singapore (31%, 24%).
* Turkish lira is steadily inflated over the last 30-40 years, well over 10% and recently over 50%.
* Turkey does not have mandate for pricing goods in local currency: you can pay in dollars or euros, along the local lira.
* When you enter Istanbul airport, Every. Single. Gate. is marked with BTCTurk ad, inside and outside - the major crypto exchange in the country.
* Istanbul city market is full of traders who use USDT on Tron.
The experiment of social game "Bitcoin" boils down to this: will the people self-organize the functioning economy with monetary freedom, while the gov loses its grip on it; or will the economy collapse without government's regulation and protective management?
This is just a convenient way to access stable western currency. Having been to Russia and Argentina during their worst inflation years before crypto, they solved their issues by asking for US paper dollars. Crypto is just saving them currency exchange fees.
And there's no way Turkiye is behind the value of BTC. It's still driven by speculators.
It's a success today, we haven't gotten to when they stop issuing any more, and mining is funded by transaction fees. I suspect there are going to be some problems then.
> Like what? As far as I can tell, it will solidify its store of value.
Which is the bug:
> No currency should be able to buy the same basket of goods over very long timespans through hoarding. If you want to retain the purchasing power of your money, it should participate in society via investment.
That’s a “hot take” that people take as an axiom. What if it isn’t? What is the precise definition of “participating in society”? What level of earning and spending is considered morally good and who’s to decide that? (Meta questions arise when discussing conflicts of interest of the deciders.)
> Turkish lira is steadily inflated over the last 30-40 years, well over 10% and recently over 50%.
Because the authoritarian government took over the previously independent central bank and lowered interest rates. Higher inflation was predicted by mainstream economists, and they were right.
Get married, make a couple of children and a lot of life issues go away — you'll always have something to actually get done ASAP instead of just staring at a todo list and wandering around.
reply