今日已更新 302 条资讯 | 累计 37551 条内容
关于我们

标签:#us

找到 1786 篇相关文章

AI 资讯

Should I Raise Venture Capital or Bootstrap?

The framing that causes the most damage is treating this as a financing decision. It is not. Taking venture money is choosing a category of business: one that must attempt to become very large very quickly, and produce an exit that returns a fund. Everything else follows from that. What venture capital actually requires A venture fund needs a small number of investments to return the entire fund. That structure means a company growing steadily and profitably at twenty percent a year is a failure in a venture portfolio, even though it is an excellent business by any other measure. Once you take the money, that expectation becomes your operating constraint. Decisions that would be obviously correct for a durable business, such as slowing hiring to protect margin, become hard to defend. Questions that actually decide it Can this business plausibly become very large? Not "could it grow", but could it realistically reach a scale where a meaningful ownership stake is worth a large multiple of the money invested. Most good businesses cannot, and that is not a criticism of them. Does speed determine who wins here? In some markets the first company to reach scale takes most of the value, usually where network effects or heavy switching costs exist. In those markets, refusing capital while a competitor takes it is a decision to lose. In most markets this dynamic does not apply, and speed bought with dilution buys nothing durable. Do you want to run this for a decade and then sell it? Venture capital has an implicit ending. The fund needs liquidity. If you want to own a profitable business indefinitely, you want a fundamentally different structure and should say so before, not after. Is capital genuinely your constraint? Founders often raise to solve problems money does not solve. If you have not found product market fit, capital lets you be wrong more expensively and for longer. If distribution is unproven, funding scales an unproven motion. The honest tradeoff Venture backed

2026-08-12 原文 →
AI 资讯

You Don’t Need to Be a Developer to Contribute to Open Source

The people who make open source work aren't just the ones writing code. Some of them write the words that make the code make sense. I spent years assuming open source was a closed door. Every time I opened GitHub, I felt like I'd wandered into a conversation being held in a language I hadn't studied. Pull requests, forks, issues tagged with words like "good first issue" that somehow still felt intimidating. I closed the tab more times than I can count, convinced that space belonged to people who could write functions, not people who could write sentences. It took me longer than I'd like to admit to realize how wrong that assumption was. The myth that keeps people out Open source has a branding problem, and it's an ironic one for a movement built on collaboration. The public image is almost entirely code: commits, merges, terminals, lines of syntax scrolling past on a dark screen. That image is accurate, but it's incomplete. It leaves out the writers who make a tool's documentation actually usable. It leaves out the designers who turn a clunky interface into something people want to use. It leaves out the community managers who keep a project from imploding when a disagreement gets heated. It leaves out the translators, the testers, the people who write the first draft of a README at 11pm because nobody else got around to it. If you've stayed away from open source because you don't code, you've been kept out by a myth, not a rule. What non-developers actually do in these projects Documentation is the most obvious entry point, and it's also one of the most needed. A huge number of open source projects are built by people who are excellent engineers and mediocre explainers. That's not a criticism, it's just a different skill. Someone can write brilliant code and still produce a setup guide that only makes sense to the person who wrote it. Projects need people who can sit with a piece of software as a genuine beginner would, notice where the instructions fall apart, and

2026-08-11 原文 →
AI 资讯

Why your Amazon order confirmation emails have become so unhelpful

Earlier this summer, Amazon customers began noticing that emails related to their online orders looked sparse: Order confirmation emails didn't name specific items anymore, and instead listed only item categories. "Your Beauty item is confirmed!" an email about my retainer cleaning tablets read. Shoppers have posted other iterations of the redacted emails as well: "Ordered: […]

2026-08-11 原文 →
AI 资讯

Spotify says it won’t recommend music from ‘AI Personas’

Spotify will soon label AI artists and remove their music from your recommendations. The change, which will start rolling out in mid-September, means you'll see an "AI Persona" badge on an artist's profile across the app if they do "not represent a real person." The music streaming platform will allow artists to disclose that they're […]

2026-08-11 原文 →
AI 资讯

Joby flexes military muscle with $500 million defense acquisition

Joby Aviation announced it was acquiring Dayton, Ohio-based defense firm Resonant Sciences in a $500 million deal, in a bid by the electric aircraft company to expand further into the military industrial complex. Joby says it expects to finance the deal with $450 million in cash and $50 million in equity. After the deal closes, […]

2026-08-11 原文 →
产品设计

Forms, payloads, and live inputs in Fitz LiveViews

TL;DR — Events in Fitz LiveViews carry data three ways: a click payload ( data-flv-value-* ) tags a button with the value it should send; a form submit ( data-flv-submit ) reads the form's named inputs; and a live value ( @input / @change ) delivers a control's current value in payload["value"] . All three land in the same place — a payload map your handler reads. This post builds a live name list (add / remove / count) that runs both server-rendered and as WebAssembly. (Part 3 of the FitzLiveViews series.) Parts 1 and 2 covered the pitch and the counter. A counter only reads +1 / -1 — no data flows in . Real UIs take input: text, selections, form fields. Here's how that data reaches your handlers. The payload Every event handler has a payload in scope — a Map<Str, Str> . The three mechanisms below all fill it; your handler reads it with payload["key"] (guard with payload.has("key") ): 1. Click payload — a button that carries a value Tag any element with data-flv-value-<key>="{expr}" , and when a data-flv-click on it (or an ancestor) fires, that value rides along: <button data-flv-click= "remove" data-flv-value-item= "{it}" > × </button> event remove () { if ( payload . has ( " item " )) { let target = payload [ " item " ] names = names . filter ( fn ( it ) => it != target ) } } The delete button knows which row it is because the row's value is stamped on it. No IDs threaded through a callback, no closure capture. 2. Form submit — the whole form at once data-flv-submit="handler" on a <form> reads each named input into the payload on submit; data-flv-clear resets a field afterward: <form data-flv-submit= "add" > <input name= "item" placeholder= "Add a name" data-flv-clear /> <button type= "submit" > Add </button> </form> event add () { if ( payload . has ( " item " )) { let n = payload [ " item " ] if ( n != "" ) { names . push ( n ) } } } payload["item"] is the input's value at submit time. No preventDefault , no FormData , no fetch . 3. Live value — @input / @chang

2026-08-11 原文 →