Widgets are essentially data classes, simple wrappers for configuration information. They need to be classes because of the way the internals of the framework works. And no one is hoping you don’t use inheritance. The recommended style is very clear. You’re free to do things however you want but you have to take responsibility for doing things in a weird way.
The canonical way of doing things in Flutter is composition NOT inheritance. This is the whole point of Widgets. Inheritance is used in ways that generally make sense and don’t result in huge complex inheritance trees.
I think the conversation around OO suffers from the same problem that any major engineering trend suffers from: namely that eventually, the concept gets conflated with the way that enterprise software and overpaid consultants completely fudge the implementation of the concepts. Consultants get paid big bucks trying to convince your company that you need to be doing microservices or OO or nosql or whatever the latest fad is and that you need them to help you implement it. It’s not based on any real technical need. It’s just institutional FOMO.
OO has it’s place in the space of possible patterns to choose from based on the kind of solution you need. I think these overarching claims of superiority are missing the point completely. I personally like a combination of function and OO concepts that can work synergistically together and play the kind of role that they excel in individually.
Yes, it took me two or three years to have any sort of valid opinion on TDD or SPA vs plain html and where each would be appropriate and in what quantity. Watching talks helped me a lot. Programmers really like giving talks.
The hardest part I think is knowing that you should ignore all of the noise around different practices paradigms, and frameworks and focus on fundamentals. The best way is to look through and try to understand some very well written open source projects.
I feel like I stumbled on doing this but for many, I think they probably just bumble along building web apps and taking much longer than necessary to understand fundamentals. You have to expose yourself to high level professional code and absorb as much as you can from it otherwise you’re in danger of plateauing.
I hear this a lot and I understand people make mistakes trying to rush but this is not accurate for me. I can absolutely will myself to think faster. Maybe this comes with experience doing some meditation but when I have a difficult problem where the solution is not immediately obvious, I can sit in my chair or take a walk and focus very intensely on the problem. I get my whole mind to just focus on this one thing and I keep my mind there without getting distracted or daydreaming. I don’t try to have any kinds of thought in particular. I just focus on the problem. After doing this for a certain amount of time I will come up with my conclusion.
I could do this over a longer period of time and create much less mental strain but when I’m in a time crunch, it’s very useful.
That said if the problem is actually beyond my reach and capabilities I won’t get much of an answer.
Touche. It’s so hard to get past the buzz in crypto because people are making way too much money on the price of tokens. It’s so distracting. I think we’ll get there eventually.
It’s happening in the tools for thought community on Twitter. It’s more about the software layer and innovations in human computer interaction design. A lot of the ideas from the 60’s and 70’s are having a resurgence like Memex, backlinks, moldable dev environments etc.
I really want something that’s strongly typed but doesn’t require code generation like protobufs do. Yaml doesn’t do it for me. The closest I can get is putting the type guarantees in the database and using GraphQL.
Exactly. This is no fundamentally different than a traditional time-stamping service. If the time-stamping service is compromised, all of the previous timestamps are invalid.
The only alternative to a blockchain is to publish the latest hash widely in a verifiable place such as in a well-known newspaper.
In case you’re interested the two bitcoin forks BCH and BSV have unlimited block size and so energy/transaction validated can scale very well. Eventually all forks will have to rely on transaction fees as the block reward has a halving schedule. If something like BSV succeeds the hash rate and thus energy consumption will be a complicated combination of transaction volume, and variable transaction fees. It will essentially be a race to the bottom to see who can provide the cheapest transactions while still being profitable. I think one should expect much higher energy efficiency than something like Visa just from pure scale and the intense competition.
It also depends on the available market for asics. In bear markets, asics are very affordable as miners go out of business but the price can go up quite a lot in bull markets which affects the profitability of buying new machines.
It has no relation to transaction volume. It is related to the price of BTC and the block reward every 10 minutes. The higher the price, the more miners compete to find a block. Transaction volume can never increase because they have capped the block size at 1mb.
They’re putting a lot of resources behind and it actually is thriving. They have a real financial interest as there’s pretty thorough firebase support. It’s also reviving their Dart language.
As someone that’s using it, it is improving very quickly. Web support is getting quite good.
Both Flutter and React will take the next UI frame and figure out what the diff is between the last frame and the next and only apply the difference. In React it’s called the shadow dom. Flutter will also only render what it needs to so you shouldn’t render the entire file at once. Just render what’s on screen and lazy load as you’re scrolling.
Yes, Flutter does this as well and they’re both very popular. When done properly, UI is a pure function of state and you have some simple mechanism for notifying the UI that state has changed.
He’s stated his reasoning many, many times. Legally speaking, keys do not prove identity. They prove access to keys which can be stolen. He’s making an intentional point to prove it in a court of law as a part of his bigger point that Bitcoin exists within existing legal frameworks and was not created to evade the law. Quite the opposite, it was created as a system to provide immutable evidentiary trails.
It has the inverse trend of a files/folders system. Roam graphs start out messy but a natural order emerges organically over time as a consequence of links. File/folder structures need regular maintenance or they become less organized over time.