Design (output of designers) and copy (output of copywriters) are subject to the same copyright law as code (output of programmers). Programmers are not the only people whose intellectual property is protected.
HN user
nlitened
https://www.latypoff.com/
That’s kinda my point. We don’t have usage caps not because they are technically hard or impossible to implement (they’re not). It’s because the leadership thinks (likely correctly) that implementing them would just hurt company’s bottom line.
I am very sure what you’re saying is not true. It’s a viable-looking technical excuse, but you can easily understand that it’s false.
Let’s make a thought experiment.
CEO of Cloudflare introduces hard billing caps at a _business_ (not technical) level. Your organization will never be billed more than the level you set. Your app may stop, or may continue running, but above the monthly cap it’s free for you, it becomes Cloudflare’s expense if they didn’t pause the services.
I guarantee you that in this case, all technical issues you’re talking about would be solved in three weeks, and your service would go down within 3 seconds after hitting the cap.
If CEO decision were that any over-usage above the cap is deducted from employee bonuses from the specific product division that didn’t stop spending in time — all technical challenges would be solved in 48 hours.
Currently, there are literally zero organizational incentives for CloudFlare to develop any usage caps
About three weeks ago I was seduced by people singing praise to OpenClaw, and also by the fact that OpenClaw team burns millions of dollars of tokens per month on developing it — surely it must be good.
It turned out to be probably the crappiest, glitchiest piece of software I’ve used in the past few years. Its basic onboarding workflow was completely broken, GUI was a hallucinated mess.
Also it turned out that not a single person I know who dedicated time to configuring it, ever achieved anything remotely interesting as a result.
They don't force anybody though. People who think that the renting is too expensive and is not worth paying, are free to either 1) move to a place that has cheaper rent, or 2) build a new house from scratch since it's cheaper than renting.
Price of rent increasing in desirable locations is not due to greed or collusion of bad actors (as long as government prevents monopolies), it's due to more people competing to live in a place that can house only a limited number. Of course everybody wants to live in big cities in the US. But rent is very cheap in dying small towns in the middle of nowhere.
I'd really love to understand why you see it that way. In what way do investors force anybody to do anything?
people like AOC who are working in the interest of society
People like AOC just pander to uneducated populace who'd prefer to use force to take free stuff of other people who work instead of working themselves.
Very easy to keep electing such politicians — just continue giving out more free stuff, so that people think it's the norm, and working is not required, just always taking is fine. People will vote accordingly
Instead of doing that, the effort should go into making all companies act that way.
That's because creating a business is a lot of hard work and risk, and surely you'd instead better virtue signal in your free time to look better to other people who are also lazy.
But then again you're very young.
A more equitable distribution of company profits does not imply the company loses money. It does not imply useless make-work jobs.
I fully agree, and remind you it's completely legal and simple for you to go and start a company that does equitable distribution of company profits. More people should do it instead of complaining that few people do.
Because labor gets exploited to make the owners richer
Only a person who never tried to organize labor into a company could ever have such a couch-sitter opinion
I think "non-sequitur" is an incorrect phrasing here, it means "does not follow logically from the conversation that preceded it".
Square brackets’ use is very consistent and rather logical in how they are used in Clojure’s syntax.
When round brackets are used, the first element in the list defines how the rest of the list is interpreted, for example:
(func a b c) — run a function with its parameters
(macro x y z) — expand a macro with its parameters
([p q r] …) — “bare” function body that starts with a vector of parameters, and executable forms follow.
Square brackets are used where elements are the same “kind”, and the first one is not special, e.g.:
(defn f [a b c] …) — a collection of same-kind parameters, the first parameter is not special
(let [a 1 b 2] …) — a collection of bindings, the first binding is not special
The only exception that comes to mind is grouping multiple matching elements in `case`, but it for ergonomics.
Once I got the logic, when which is used, I changed my mind, and ever since I’ve felt it’s beautiful.
As I understand, earlier forms of life used RNAs as building blocks (instead of proteins encoded in DNA->RNA), so protein-based life _was_ a completely different form of life.
Some of the oldest replication machinery in our cells still uses the good old rusty RNA building blocks at its core (however nowadays they're propped up with proteins), and the newer machinery is almost entirely "high tech" proteins.
So you could say that in the billions of years, entirely new life forms were created, and they just completely displaced the older, less effecient ones. Probably pure-RNA life forms were not even the first ones, and they completely displaced even more primitive prior biotechnology when they appeared.
Did you think it rejects bots by using some kind of magic?
I feel like people who program in JavaScript or whose projects pull megabytes of dependencies, don’t get a moral right to complain about this. You guys just sit and calm down this time, you already said what you could.
Your app takes 20 seconds to load, pulling 50 megabytes of minified JS. Your backend is a mess of 20 Rust microservices, 300 megabytes docker image each.
Nobody has actually been reading and understanding code in your org for the past 15 years. And nobody has ever been responsible, everybody has just been job hopping for a 15% total comp bump.
Now the secret is out.
Yeah US is 64th lol. Totally unbiased
as a child I went several years just eating plain Cheerios.
You mean your parents were letting you eat just plain Cheerios? Otherwise I don’t understand what you mean at all.
Now we’re the forum for captcha-evading scrapers, boys
Thousand people cost 60m USD of quarterly _profit_ though (not even revenue)
I think screenshots also don't help with stacked views and lazy loading outside the viewport
The way I see it, Clojure was created to address most of the philosophical problems highlighted in the article, and its ecosystem has developed under the influence of such ideas.
It embraces the dynamic nature of things. Every program that must do I/O is dynamically typed at the edges - so statically-typed languages must have both the facilities for dealing with dynamic types and static types, and use those differently for "inner" and "outer" parts of the program. The Clojure ecosystem makes it more approachable to work with dynamic data, and as a result, program's parts (modules, even functions) use the same machinery as the program as a whole. What helps, off the top of my head:
1. Immutability of values, persistent data structures, explicit state management - it turns out most of the "problems" with dynamic types are not due to the fact that types are unknown, but the fact that they may change over time. Most of concurrency problems also become irrelevant with immutable values.
2. Powerful data specs/schemas allowing to express full business requirements and constraints on expressible values (not possible with static typing anyway) — making invalid states unrepresentable and actually meaning it.
3. Concise unified model for working with different logical data structures, also nested data structures.
4. Simple asynchronous communication mechanisms and patterns between independent modules of a programs.
5. Rich extensible aggregates of data with namespaced keys as the object model.
6. An ethos of extreme backward compatibility (and tools for achieving and maintaining it) through accretion of novel values/parameters/features, enabling reloadable workflows, which makes it easy not only to redefine functions in code while program is running, but also updating individual programs while interconnected system is running, without breaking things.
The downside is that tools that reduce complexity are not very easy to use for people with less experience, so they cannot be too popular. People tend to overcomplicate, and to be quick to dismiss well-thought-out solutions.
You end up rebuilding semantics over and over again (validation, mapping, enrichment), and a lot of failures only show up at runtime.
I think die-hard fans of static typing mostly fail to acknowledge this objective reality and its implications. Every time they encounter this problem again and again, they approach it as if nobody thought of this before, and didn’t develop reliable abstractions to productively work in these environments.
Yep, that’s the irony, that’s why I’m being tongue in cheek about Marxists’ “seize the means of production”, because people who produce capital also work very hard
It’s about time we shaft the gatekeepers of talent, and redistribute and socialize the means of art production.
In these situations, the non-technical people don’t understand the costs, the technical people don’t understand the benefits. The communication from both sides is needed to find a good cost-to-benefit tradeoff
What you say: I don’t want to take responsibility.
What management hears: I want someone else to take responsibility for me.
"count" is an incomplete type, the same as "array" is an incomplete type. "count of fruit" would be a complete type, compare to "Array of int64".
Javascript has arrays of unspecified types, and count of items of such arrays. I don’t think your analogy holds
Ever seen entire countries of people locked up in their homes within a week — for months?
So Instagram and TikTok?
No, rewriting in any language is bad by itself. What Fil-C gives you is that you don’t need to rewrite old programs. You spend zero effort, and immediately your battle-tested program is memory safe and free of any potential future vulnerabilities. With Rust you spend man-years on a rewrite, and as a result you have a new untested program full of subtle bugs, which you need to spend another 10 years of real-world use to uncover.