Web Excursions 2021-11-25
生日歌的节拍(3/4)确实是一个和很多其他歌曲不一样的基础律动——
二拍子三拍子是两种重要且基础的单拍子,
其他的四拍子(4/4)六拍子(6/8),或者是什么奇怪的五拍子(5/4 = 3/4+2/4)、七拍子(7/8=4/8+3/8),都是由单拍律动组合叠加出来的复拍子。
把单拍子的律动掌握好了,才能更好地掌握其他复杂的律动。
我们最熟悉的抒情歌曲的节奏型,以4/4居多,也就是两层二拍子复合叠加出的复拍子。
这种拍子的律动,和走起路来的左右左右,或者走队列喊口号「一二三四」的节奏型是完全一样的,
所以掌握起来比较简单。
但三拍子是一个「强弱弱」的组合,相比二拍子,它听起来的感觉也会明显更优雅、悠扬、婉转一些。
但为什么很多人会把这种律动给抓错呢?
三拍子就和我们的左右手、左右脚的这种对称结构是不匹配的,和我们走起路的感觉也不一样。
如果你看过人跳华尔兹(Waltz,圆舞曲)就会发现,他们的步法是:「迈左脚、迈右脚,停(有时候还转体)」,是一个「走走停」的状态,走两步停一步,这就和三拍子的律动感天然重合的。
有的时候我们就会用转圈的方式让小朋友们体会这种三拍子的感觉(达尔克罗兹教学法)。
那么,这样一首悠扬的三拍子歌曲,在唱歌的时候竟然用二拍子的律动拍手,就好像一定要把四方形的木棍塞进圆形的孔内,错位且粗暴。
演唱者非但无法感受到这首歌的优美之处,同时也会对悠扬的三拍子律动变得麻木甚至是误判,
长此以往,他们对其他律动节奏型的感知也会变得迟钝、错位,甚至是混乱。
Overengineering Can Kill Your Product - Mind the Product
The best way to prevent over-engineering from my point of view is to turn your engineers into true product engineers
We can achieve it by involving them in the day-to-day business,
explaining the why after each initiative, and
linking it with the metrics that matter for the organization and its vision.
We need to bring them closer to our users, inviting them to interviews and discovery sessions with them.
Don’t expect your engineering team to be motivated to avoid complexity
if you treat them as mere production chain resources whose sole task is to implement user stories from a backlog.
They need to understand the why behind each decision.
define the problem well to reduce ambiguity.
Your engineers need to know the why, but they also need to know what to expect.
The more you can narrow down the problem, the less reason they will have to protect themselves from overengineering a solution.
An Engineer's Hype-Free Observations on Web3 (and its Possibilities)
First, the web is delightfully weird again (yay!)
Web3’s culture is young and vibrant. It’s reminiscent of the earliest days of the web and of many of the things that made the 90s internet fun: small communities, weird new technology, lots of blue-sky experimentation, a sense of cultural motion, the excitement of discovery, and new ways to express oneself.
Design is adventurous again. It’s technotronic; it’s blinged out; it’s brutalist; it’s Space Jam circa 2021.
Money is at the center of it all, yet it’s far from templatized, corporate, or sterile. It’s a hip bar in a club that a cooler friend had to tell you about.
Web3 is inseparable from blockchains and cryptocurrencies
Blockchains flip the script on Internet protocol development
The history of the Internet is, in part, the history of the birth, adoption, and stewardship of distributed protocols by the broader community.
Blockchains follow in this tradition, but also break radically from it: they are the first protocols to arrive with an asset class attached.
Protocols like SMTP (1981; email), TCP (1983; reliable packet transmission), HTTP (1991; web), and XMPP (1999; chat) all created immense value
while capturing little for their inventors.
Blockchains upend this, allowing inventors to capture considerable value for themselves.
Blockchains are not equal; programmable blockchains are rich and strange
Ethereum is a different beast entirely: rather than maintaining a simple ledger, Ethereum’s blockchain is used to maintain the state of a virtual machine —
a single fully programmable computer shared by everyone on the Internet.
By writing and deploying “smart contracts” — code intended to run on the Ethereum Virtual Machine (EVM) — developers can guide the future evolution of the system.
This has given rise to new digital constructs like NFTs and DAOs.
Solan is one of several programmable chains that followed in Ethereum’s wake.
Solana’s focus is on enabling high-throughput low-cost transactions, two crippling weaknesses with the current Ethereum network.
Several innovations in distributed consensus design make Solana’s performance possible.
Very few categories of data belong on-chain
A good rule of thumb: unless (1) you need to shout to the world that action A took place at time T, and (2) the world cares enough to pay attention, you don’t need a blockchain*.
Updates to financial ledgers are a perfect example;
despite a decade of optimism from enthusiasts, few others have been found that have achieved broad adoption.
Ledgers, coins, and tokens are the abstractions upon which all crypto is built
The “who” is an account. In the case of programmable blockchains, that’s either a person holding a private key, or it’s a smart contract.
The “what” is either a coin or a token. The distinction has somewhat fuzzy boundaries but, roughly speaking, a coin is a blockchain’s intrinsic currency, like Ether, Bitcoin, Sol, or Dogecoin.
A token is an asset defined on top of a programmable blockchain, like Shiba Inus or CryptoPunk #1772. (A naming exception is made for “stablecoins,” which are closer to tokens in implementation.)
Blockchains allow anyone to assert the existence of new digital assets
simply waving crypto’s “magic wand” doesn’t create value.
It’s everything that’s wrapped around the tokens that matters.
Early on, the community experimented by attaching pictures of punks and apes to its tokens.
Later, it tried stapling complex structured metadata to them, for example for NFT game characters.
Today, we’re starting to see sophisticated code wrapped around tokens
Today’s smart contract programming models are deeply flawed
Smart contracts can’t reference the “real-world”.
They can only reference the blockchain itself.
This is known as the “oracle problem” and it makes blockchains a necessarily closed system.
blockchain storage is wildly expensive; storage of real-world data, particularly data that needs regular updates, is prohibitive
To use data provided by oracles, you must trust it.
The question of trust in the Web3 world strikes us as equal parts technical and philosophical.
Smart contracts can’t be upgraded.
Smart contracts are deployed once and run forever; their code cannot be changed.
Smart contracts require complex distributed systems to run, effectively, forever.
Not only do the blockchain networks need to be maintained in perpetuity,
but the smart contracts of today will need to run without alteration to their behavior indefinitely into the future.
Distributed consensus technology could change radically in the next decade
We should expect to live in a multiple-blockchain world, with all its complexities
There are several instances of connection today.
Take for example the Solana-to-Ethereum wormhole, which allows tokens to be created on the Ethereum blockchain that represent assets on the Solana chain, and vice versa.
It is a technically sophisticated construction:
the smart contract deployed at one side of the wormhole needs to “own” the assets transported to the other side;
the smart contract on the other needs to mint new “wrapped” tokens that act like remote proxies for the real things.
Blockchains are regularly credited with powers they do not, in fact, have
One way to think of tokens is as pure abstractions of potential rights
a reasonable future framing of (non-fungible) tokens might be that they are pure digital abstractions to which a bundle of property rights can be attached.
Of course, to arrive at this very theoretical future, we’d need public/private partnerships to bridge the world of crypto with the normal legal and regulatory world.
“You don’t need a blockchain to do X,” even when true, might miss the bigger picture
crypto’s current prices are… big numbers
The lack of standardization on how to derive valuation, coupled with the Wild West of new mechanics, creates the perfect conditions for crypto’s crazy high valuations to seemingly emerge overnight.
Onboarding to crypto is easy; going deep is walking on fire
The typical user’s first foray into the crypto ecosystem is through fiat on-ramps like Coinbase.
To wade deeper into the web3 world, users need to install noncustodial wallets like MetaMask: software tools that are functionally “1Password but for your crypto private keys”.
Unlike 1Password, however, MetaMask is a user experience disaster
Beyond wallets and browsers: the typical user-facing Web3 service is built for those “in the know”.
Visit OpenSea and you won’t see much by way of explanation about what’s going on;
visit Mirror.xyz and you’ll see even less.
And yet these are interesting, deep services for those who know what they do and how to use them.
There are two roughly equivalent ways to describe Decentralized Autonomous Organizations.
they’re smart contracts that interact with and coordinate people at some level.
they’re groups of people in crypto-land working towards a common goal, whose actions are partially (or fully) mediated by code.
Nearly all DAOs share two things in common:
a governance token, which grants voting rights to its holders, and
a system for proposing actions and voting them up or down.
Beyond this, however, the “goals of groups of people” covers an impressively wide range.
Some DAOs have multiple token classes; some only one.
Some DAOs tie their votes directly to action via smart contract code; most don’t.
There’s a huge taxonomy of DAOs emerging in the wild, all different
In a telegram thread in August 2018, “DeFi” was coined.
It quickly became the umbrella term for a rapidly-emerging set of peer-to-peer financial services on public blockchains.
DeFi enthusiasts will take anything that a centralized bank can do — lend, borrow, trade assets, trade derivatives, etc. —
and enable the same sort of interactions in a peer-to-peer system with no single point of failure.
Ethereum, with its fully programmable underpinnings, proved to be the blockchain in the perfect place at the perfect time for early DeFi projects to flourish.
This led to a flywheel effect: Ethereum enabled the proliferation of early DeFi services, and DeFi massively increased the usage, market cap, and (unfortunately!) gas fees of the Ethereum network.
Over time, Ethereum has proven to be sub-optimal for the incredible demand DeFi services have seen.
The network has diseconomies of scale and, given its low throughput capability,
gas fees (the cost of executing a transaction on the Ethereum network) have recently been over $150.
Blockchains are the kinds of databases that frustrate developers
Blockchains are databases, yes, but they’re not databases designed for traditional online analytics processing: they’re not designed to be easily queryable.
An entire cottage industry has emerged around building blockchain ETL systems: specialized code extracts relevant information from the target blockchain, and then loads it into either a SQL database, or into a data warehouse that offers some kind of rapid query functionality.
A number of open source tools exist, including the young but still-quite-useful ethereumetl project.
Extracting usable data from blockchains is hard.
It’s hard because there’s a lot of data;
extracting the data rapidly, at-scale, and at-cost is by itself a nontrivial challenge.
It’s hard because there’s always new data:
a great blockchain data system will need to both batch and stream data.
But more than that: it’s hard because the data on programmable blockchains, in particular, requires interpretation based on the actual smart contracts deployed, and on the ecosystem surrounding those smart contracts.