Of those that completed a public listing through a SPAC merger in 2020, about 50% missed their revenue forecasts and 42% saw their revenue decline in their first year as a public company,
Among 44 technology startups that completed a SPAC deal from the start of 2020 through this past April, share prices have on average fallen 12.6%
Enthusiasm for SPACs waned after the U.S. Securities and Exchange Commission announced new accounting mandates last month and stepped up scrutiny of other SPAC practices
Another deterrent for startups is mounting litigation from stock traders against SPACs, alleging conflicts of board members, breaches of fiduciary responsibilities and misleading statements, among other things.
The cooling demand is set against formidable supply: There are more than 400 SPACs searching for startups to merge with
SPACs generally have two years to complete their deal,
although startups tend to shy away from those that haven’t found a partner after about six months
CEOs said they are inundated with SPAC mail that they just delete or ignore.
Some are thoughtful in their overtures, but with many of them “it’s almost to the point where your company is irrelevant—they just want a deal.”
At the height of the frenzy, many startups skipped traditional private financing rounds in favor of a SPAC deal, but CEOs now say they are more inclined to tap the abundant venture-capital or private-equity options.
The various “mom,” “pop,” and “dad” words are all probably derived from the “ma,” “pa,” and “da” sounds
that babbling infants utter and that parents mistakenly think are references to mother and father.
The parents then respond with baby talk that gives reduplicative, or doubled, sounds like “mama,” “papa,” and “dada” a maternal or paternal sense.
this process begins while babies are nursing:
“Often the sucking activities of a child are accompanied by a slight nasal murmur,
the only phonation which can be produced when the lips are pressed to mother’s breast or to the feeding bottle and the mouth full.”
“the nasal murmur may be supplied with an oral, particularly labial release; it may also obtain an optional vocalic support.”
(The “nasal murmur” is an m-m-m sound; the “labial release” and “vocalic support” produce an a-a-h sound.)
Since the mother is the source of a baby’s nourishment
“most of the infant’s longings are addressed to her,
and children, being prompted and instigated by the extant nursery words, gradually turn the nursery interjection [“mama”] into a parental term,
and adapt its expressive make-up to their regular phonemic patter.”
“a” is the easiest vowel for a babbling baby to produce.
All you have to do is open your mouth and make a noise.
Two of the easiest consonant sounds are “m” and “p.”
All you have to do is put your lips together—no tongue or teeth required.
That’s why they’re called labials.
The letter “d” is a bit harder since you have to put the tip of your tongue against the upper gum or upper teeth
The “f” and “th” sounds in “father” and “mother” are much harder to make, and even a toddler may have trouble with them.
Something I always want to see in a tool which does anything non-trivial is a --dry-run mode.
To be able to know what you’re about to do, before you do it, is a great and wondrous thing, helpful to the novice and the experienced user alike.
But in many languages (such as F#, the language I use most and the language this post is written in), we have a simpler and more lightweight way to machine-check things: we have the type system.
We can use the type system to keep our --dry-run and our “execute” flow in sync, by artificially introducing an API boundary down the middle of our tool: a boundary which the compiler can check.
The --dry-run mode produces a strongly-typed output which is essentially a declaration of what actions we want to carry out.
The “execute” mode consumes the --dry-run output as its own input.
an extra architectural benefit: it really pushes you to make your tool’s functionality into a library.
If you’ve got a function which works out what to do, and a function which does it, then you’ve got two ready-made units of compilation to pull out into the library;
additionally (in a statically-typed language) you’ve got some ready-made types (the ProgramInstructions) which serve as places from which to hang docstrings.
amirkdv: You still need safety nets for when someone is doing dangerous operations without dry-run.
Pointing and calling is a great trick for this.
For example, say your tool is about to delete X, Y, and Z. Instead of a simple "Yes" confirmation which the user would quickly end up doing on auto-pilot, you could have a more involved confirmation like "Enter the number of resources listed above to proceed" and then only proceed to delete if the user enters "3".