54 karma · joined August 20, 2017
If you want to announce you are compatible with service X as a feature, you should have an agreement of compatibility with service X.
PCG is cryptographically secure, though. Or at least, it is as cryptographically secure as any other PRNG in the sense that nobody actually knows how to predict it, many have tried, nobody has succeeded, but nobody has proved it impossible.
PRNGs produce numbers that seem hard to predict. CSPRNGs product numbers that actually are hard to predict, assuming P != NP (kind of).
Programmers are also not, in general, software engineers.
It's not about getting 'caught up in titles' either, IMO. It's an important distinction. Computer science programmes get flack for not teaching practical software engineering skills, which is totally unreasonable. Just as we have physics programmes, we should have proper computer science programmes.
You are allowed to do a physics degree and offer physics courses without people going 'but how do I design bridges??'. Yet every computer science lecturer will tell you they've had people ask 'but what does this have to do with making websites??'.
Being able to play music on a 'smart speaker' from my phone isn't a service, it's just a feature of the product. If you sell a product with features that require you to host some servers somewhere publicly accessible on the internet, that doesn't make that product feature a service.
Don't like that? Don't include those features in your product. Design them better so you don't have to forever maintain these servers.
This is about a blockchain, and is presented using Haskell and over-the-top Haskell pseudo-category-theory.. it just doesn't compute for me.
That's just not based in reality. In reality, almost all mainstream media is incredibly biased towards the status quo.
Nice neutral name
>software engineers
Sorry to break it to you, but software development is not engineering.
Is it engineering then? Or is it scientific? Because they're not the same thing.
But then again Americans seem to use 'liberal' to mean 'left-wing', is that right? Because that's pretty insane IMO, that's not really what it means anywhere else..
newtype BlockF a = Block (V.Vector a) deriving (Eq, Show, Foldable, Traversable, Functor, Monoid)
type Block = BlockF Transaction
type Blockchain = Cofree MerkleF Block
Does anyone really think this is how one should write software? I think that constructions like Cofree are interesting, but I don't think they're programming.