Biggest issue with this language. But... fairly trivial to implement codegen with gleam/glance[0]. No good libraries do this well right now (e.g. support for discriminated unions).
HN user
ocean_moist
https://rohan.ga rohanganapa [at] gmail [dot] com or rganapav [at] purdue [dot] edu
I am actually the author.
You're right that mathematically, a function with constant (or no) growth is O(n)and also O(n^2), and O(anything_that_grows_faster).
My use of "O(n) startup" and "O(n^2) startup" is intended to classify the type of business based on its *inherent best-case growth potential or ceiling*.
An O(n) startup in my framework is one whose fundamental business model, market, or structure means its growth, even in its best-case scenario, is capped at roughly linear. It cannot achieve sustained super-linear growth; its upper bound is linear.
An O(n^2) startup is one whose model (e.g., strong network effects) has the potential for super-linear (which I've simplified to n^2) growth as its best-case scenario. It might be underperforming (even flat, and thus also technically O(n) in that moment), but its design allows for a fundamentally different, higher growth ceiling. The whole point is illustrate potential withholding implications or conclusions from its current growth rate, which is necessary at a companies inception.
So, yes, a flat-lining "O(n^2) type" startup would currently show growth that is O(c) (and thus also O(n)). But the point of my labels is to say that an "O(n) type" startup, by its very nature, cannot achieve the n^2 best-case that the other type can, even if both are struggling.
The labels describe the class they have, dictating their asymptotic best-case limit, not just any loose upper bound on current, possibly sub-optimal, performance. The separation I'm arguing for is based on that fundamental difference in their potential trajectory’s ceiling.
If I used Omega this would imply the actual growth rate of the startup would have to strictly be better n or n^2.
Addressed in the footnotes:
[2] Perhaps choosing a better two functions could more closely explain the growth dynamics of network effects, which could be more exponential. I think the analogy diminishes in value if you try to directly numerically match it to some growth metric.
I actually passed my discrete math class and final a few days ago and got the big O vs Theta vs Omega question right.
The reality is that companies often underperform their best case possible growth rate. O(n) and O(n^2) are meant to represent the best possible growth rate which may be practically be underperformed.
You may be thinking about algorithmic analysis where the term "worst case" is used for the upper bound, but here, the upper bound represents the best case. Sort of counter-intuitive but the underlying mathematical notation is properly defined.
Only in algorithmic analysis. Big-O generally is used to describe and classify any arbitrary function.
I think any prospecting founder should be able to answer the question "will it always take a fixed amount of work to get each new customer?".
Generally if you have some sort of idea of what you want to do, you'll be more successful at it.
Yeah sigmoid is good. I kind of hint at this when I mention "saturate their TAM at some rate".
You can think about it like we are looking at the concave up portion of the sigmoid only. The early growth phase.
Experience != talent. Perhaps a better way to phrase it is that they hire the minimum needing to succeed in a well defined role. Startups aren't afforded this comfort as the roles are not well defined.
Sure makes sense.
I use business, startup, and company interchangeably. Generally I tried to use business for O(n), startup for O(n^2), but I guess I wasn't strict with my usage...
Perhaps they are harder to start, but they are also vastly more likely to succeed to their O(n^2), and this is not only due to the increased barrier to entry.
That's what I mean when I say, founders are more likely to succeed at O(n) companies.
Title just sounds better that way.
The best part about Purdue is that I can use “top CS school” and “random state school” depending on which sounds better.
Better word is “bay area”.
Will keep this in mind for the future.
Yeah, almost necessary at a high level (and online), however I play against fish most of the time. I am also 18 and lack connections/capital/time to enter high level games.
I would say markets are approx. zero-sum on small time-scales. And low-beta alpha is better sourced from treating the market as zero-sum. Short-term price movements are primarily driven by the redistribution of wealth between market participants rather than by the creation of new fundamental value, making strategic positioning against other traders more effective for generating uncorrelated returns.
At least they seeded!
Fun fact: Professional gamers (esport players) have reaction times around 150ms to 170ms. 100ms is more or less impossible.
Maybe I just don’t understand the article but I really have 0 clue how they go about making their conclusions and really don’t understand what they are saying.
I think the 5 issues they provide under “Cognitive Architectures” are severely underspecified to the point where they really don’t _mean_ anything. Because the issues are so underspeficifed I don’t know how their proposed solution solves their proposed problems. If I understand it correctly, they just want agents (Assistants/Agents) with user profiles (Sims) on an app store? I’m pretty sure this already exists on the ChatGPT store. (sims==memories/user profiles, agents==tools/plugins, assistants==chat interface)
This whole thing is so broad and full of academic (pejorative) platitudes that it’s practically meaningless to me. And of course although completely unrelated they through a reference into symbolic systems. Academic theater.
Yeah training data is the major issue. You can try programmatically brute-forcing/generating random well-formed (compilable) data and training on that. Then heuristically pick exogenous programs from the output of the trained model to train a new "generation". The issue is in the possibility of the algorithm generating "exogenous" program and "heuristically" picking them out.
This is actually a common pattern called "model distilling".[0]
The github social media features are so weird I get around 10 follow requests per week from random people who follow >2k people something off happening there.
I mean I think there is a philosophical divide. Go is very minimalist in terms of external dependencies. Those that are their are very good in my experience. The builtins are just the right amount of opinionated imo. I concede that that statement was grounded in my preference for Go's take on external dependencies.
I also generally am writing REST APIs and doing simple "enterprisey" stuff.
I wish I could do this… best part of building for devs is being able to provide simple, good UX with minimal UI.
BQN[1] (an APL variant). There is something really beautiful/elegant to me about composing higher order functions in a purely point free way. Array programming is a nice application of this, and this one has the best ergonomics.
I took a (turned into multiple) philosophy classes that forced me to explain hard concepts and my opinions on them to other people and then understand their perspective. I think this applies to many hard, deeply technical, subjects, but discussion is immensely popular in the pedagogy of philosophy.
The harder and more valuable part was putting those discussions into focused, clear, essays. I am a much better writer and thinker because of it.
The best way to learn how to think is to think. The way in which the quality of your thinking is best judged is in relation to other people. So just try a take your thoughts and try and put them in other people’s minds.
Interesting how this relates to LLMs scaling laws.
This results in a significant storage footprint, often exceeding 12GB.
12GB being considered significant makes me feel good, a return to simplicity. The other day I couldn't provision a VM with less than 512GB of storage...
I can't even play my favorite games without giving up >150GBs...
I did LFS after I started dailying gentoo with a custom kernel (~2017), it was actually fairly easy, if not time consuming. People on IRC are extremely helpful. These days I write code more than infra, but I still think it was valuable.
That combined with my general interest in Linux probably saved me thousands in cloud costs. Linux is a dying art among young software engineers, but alive among young nerds. Even among infra/devops people, maybe if they learned more about linux they wouldn't reach for k8s to solve the simplest problems.
Sort of an obvious move to open source it--they're selling shovels and just showed everyone where the mines are.
This new release will generate more hype/competition around AI, with data and training increasingly becoming the moat (rather than model level innovations), which will lead to more people needing Nvidia GPUs.
Nonetheless, I really like how competitive OSS is in LLMs compared to other major innovations.
Yeah, although I am not doing much hardware stuff anymore, I'm thoroughly disappointed in the lack of component stores that just had stuff for makers.
My dad went to Sim Lim Square (in Singapore) back in the 90s and he wanted to take me back when we visited a few years ago. There was a bunch of gaming stuff and they got the 4090 early than the US so I was happy, but he was miffed and disappointed at the lack of components and cheap electronics.
Some of my earliest memories are at a Radio Shack trying to convince my dad to buy me an RC car. Eventually we switched to Fry's (where I bought and built my first computer) but that died too... Now there's a big hole in the bay area and I am probably one of the last people to have that sort of childhood staple. Although, Microcenter might be a worthy replacement once it's done.