3,114 karma · joined October 20, 2007
The difference can also be seen from a customer service perspective. One is a feature that lets you sort according to which friends you were with. The other is a feature that puts you in jail. No thanks. Not gonna pay money for that.
First of all, you have to be able to read it to do the comparison that can increment the counter to 30. So regardless of whether it is or is not encrypted there, they're accessing the unencrypted plaintext to calculate the hash.
And yes, on my device is definitively more private than on someone else's server--just like in my bedside drawer is more private than in an office I rent in a co-working space.
This is the difference between putting CSAM on a sign in your front yard (maybe not quite front yard but I can't come up with quite the same physical equivalent to a cloud provider) and keeping it in a password protected vault in your basement. One of those things is protected in the U.S. by laws against unlawful search and seizure. Cloud and on your device are two very different things and consumers are right to be alarmed.
I'll say it again, if you are concerned with this privacy violation, sell your Apple stock and categorically refuse to purchase Apple devices. Also go to https://www.nospyphone.com/ and make your voice heard there.
> For productivity I haven't been able to find any large-scale studies that compare functional vs imperative/OOP languages
I'm having trouble reconciling these two statements of yours.
If BTC loses 10 percent of its value overnight, the people who lose are the people who sold at the lower prices. When we say "the price of BTC is X", what we really mean is that a trade happened at that price. That means that someone thought selling at that price was the right thing for them to do and someone else thought that buying at that price was the right thing to do.
If I was the Fed I would seriously consider creating my own TheRealUSD stablecoin. Create a token that you have mint/burn control over, and create a portal that allows people to exchange USD for the stablecoin and the stablecoin for USD. No doubt a number of the crypto-libertarians out there will not trust that thing and might object to using it. But from the other perspective which would you trust more? A USD stablecoin run by some random collection of tech people? Or a USD stablecoin run by the Fed?
Imagine you're a restaurant (or any other business) and you want to allow your customers to pay with digital transactions on a blockchain. If your customers pay you in Bitcoin, you are taking on a huge amount of risk due to Bitcoin's price fluctuations. I just looked up the price of Bitcoin and it has dropped 6% in the last 24 hours. If you sell a $100 steak dinner for Bitcoin in the morning and it drops 6% by the time you're converting it to dollars at the end of the day, you've just lost 6%. You have to pay your expenses (labor, food, etc) in USD no matter what but you're holding a currency that is now worth 6% fewer dollars than what the customer paid. The reason I picked the restaurant business for my example is because restaurants have really thin margins. A 6% loss due to currency fluctuation is a huge problem for a restaurant.
That is why people have created stablecoins that are constructed in a way such that their value is pegged to some kind of external asset (like the USD). This allows business to accept payment via a blockchain without being exposed to the price risk of volatile cryptocurrencies.
purity is to functions
as
immutability is to data
Immutability is definitely a valuable technique that can help make software faster (sometimes), more reliable, and easier to maintain. I would take it one step further and argue that we can get a similar boost by extending the idea to functions, not just data. And the way you do that is by writing pure functions (i.e. no side effects...or controlling/limiting them in some way) and using languages that can enforce that your functions are pure.
https://web.archive.org/web/20161223143702/http://higherorde... https://news.ycombinator.com/item?id=8777237
From the post:
> Call options are a better model than debt for cruddy code (without tests) because they capture the unpredictability of what we do. If I slap in an a feature without cleaning up then I get the benefit immediately, I collect the premium. If I never see that code again, then I’m ahead and, in retrospect, it would have been foolish to have spent time cleaning it up.
> On the other hand, if a radical new feature comes in that I have to do, all those quick fixes suddenly become very expensive to work with. Examples I’ve seen are a big new client that requires a port to a different platform, or a new regulatory requirement that needs a new report. I get equivalent problems if there’s a failure I have to interpret and fix just before a deadline, or the team members turn over completely and no-one remembers the tacit knowledge that helps the code make sense. The market has moved away from where I thought it was going to be and my option has been called.
That being said, I will definitely agree with you that the word "blockchain" is very overused and underspecified these days. Just because a term is often misused doesn't mean it has no definition. I think most of that is just laziness on the part of whoever is using it and not actual lack of...consensus...on a fairly clear definition.
If you happen to do design work and are looking for a job, I'd love to chat and see if there are any possibilities for collaboration. If you're interested, feel free to drop me a line at my username at google's mail service.
The thing the author doesn't seem to realize / acknowledge is that UI/UX design is about balancing enormous numbers of competing constraints and concerns. It's a human problem, and like most problems of this genre there is no "best" answer, only different sets of weights for different, often competing, concerns. Simplicity and ease of use are good things, but they are almost always at odds with flexibility and power...also good things. Do you make things bigger with more space so they're easier to see, or do you make them smaller so you can fit more things on the page? Do you use color so you can communicate more and catch the eye more quickly, or do you avoid that so that your app is friendly to colorblind users? (Yes, I know there are color schemes that can achieve both to a decent degree.)
These kinds of tradeoffs are lurking almost everywhere you look in UI/UX design, but this kind of nuance seems to be lost on the author. He only seems to see his set of priorities for a UI. Yes, there are plenty of cases where one thing is pretty objectively worse than another, but usually it's more subtle than that. I'm way more impressed with someone who can talk intelligently about the tradeoffs than I am with someone who fixates on something that very well might have been traded off and rant about it.
Map ByteString ByteString
This can represent any heterogeneous map that any other language can represent. Sum types can allow us to add another layer of structure to this if we want. For example, take the classic example of JSON.
Map ByteString JValue
...where
data JValue
= JObject (Map Text JValue)
| JArray Array
| JString Text
| JNumber Scientific
| JBool Bool
| JNull
This is just one example of a way you could structure things. Sum types are super powerful for this kind of thing. And no matter what structure you come up with, you can always escape hatch that structure by adding a catch-all constructor like this: data MyValue
= MyThingA A
| MyThingB B
| ... more things
| Unexpected ByteString
That's actual valid code btw, and it even reads really nicely!https://github.com/reflex-frp/reflex-vty#reflex-vty
One thing neither of these libraries appear to have done yet that I would really like is create a more compact window rendering. Currently each window gets a 1-character border. What I would like is something that saves space by collapsing adjacent windows' borders into a single character instead of having two redundant borders next to each other. Of course I get why they do it the way they do, but terminals are often more constrained for space and with complex UIs you can lose a fair amount due to these unnecessary borders. That would be the next thing I'd hack on to improve these kinds of libraries. But alas...too many fun projects to hack on and not enough hours in the day.
And it's useless until you spend more energy to move it to where people want it.
> It's disingenuous to pretend (without any sourcing) that bitcoin is only mined using electricity that would otherwise have been wasted.
It doesn't have to be only mined that way. You're being absolutist. Competition has resulted in bitcoin mining being very sensitive to energy costs. It stands to reason that miners--especially the ones operating at large scale--will move to places where there is cheap energy.
https://www.publish0x.com/muchograph/top-5-biggest-bitcoin-m...
Several of the big mining operations mentioned there are located in places known for cheap electricity. Genesis mining relocated to Canada and Iceland specifically for cheaper power. Gigawatt is located in Washington State which has some of the cheapest electricity in the U.S. (part of the reason Google chose The Dalles, OR for one of their data centers).
Excellent point. I completely agree. I'll have to keep that in mind in the future.
> There are plenty of other good uses for electricity besides bitcoin or powering a city directly.
The argument "uses lots of energy = bad" is a fallacy. You have to take into account what the alternatives are. You know what uses a lot of energy? Public transit systems. But nobody is arguing that public transit systems are bad because the alternatives are a lot worse.