skysight-inc/HackerNews huggingface dataset:
Before a couple of years ago, I had never written a Makefile in my life.

I ended up using Make after experiencing web project builder merry-go-round du jour of Grunt, Gulp, npm/yarn scripts, WebPack, etc.

Of course I had read all of the Make FUD… but like almost all things in computing (Vim vs. Emacs, tabs vs. spaces, Mac vs. Windows) you can't take it too seriously.

For me, similarly to when I went through several editors before I discovered Vim, Make has been around long enough and people have used it to address the hairiest build/dependency issues that many of the new tools have yet to address.

Let me address a few common issues.

IMHO the syntax isn't that bad. Like almost any programming language, you can write a clean, well-documented Makefile following best practices or you can slap something together with no planning and have an indecipherable page of junk.

And like many languages, many folks never learn to write Makefiles properly. I get it—most Makefiles in the wild are close to unreadable and are mostly undocumented.

And because Make has been around since the '70s, there's lots of hard-earned wisdom in blog posts and forums readily available going back decades.

O’Reilly's book "Managing Projects with GNU Make" (3rd edition) does a great job at getting someone up and running with Make. And the online documentation [1] is also quite good.

But the most important thing is I'm much more productive using Make instead of messing around with the various JavaScript build tools and their plugins. It's easy to integrate JavaScript, command line, Ruby, etc. tools with Make to get my projects built, linted, tested, packaged and deployed.

And having native support for Make in Vim/Neovim [2] is just the cherry on top. And it's still under active development [3] with bug fixes and new features.

Perhaps the best thing about Make: there's no dependency graph/build web project issue it can't handle. Writing clean, readable and well-documented may take a little more effort but it's worth it IMHO.

[1]: https://www.gnu.org/software/make/

[2]: https://vimways.org/2018/runtime-hackery/

[3]: https://lwn.net/Articles/913253/
If what was deployed was foo version x and bar version y, it's a lot easier to debug by checking out tag x in the foo repo and tag y in the bar repo than achieving the same thing in a monorepo.
starblabs look great. Great specs, coreboot, support for many linux distros....but I'm still waiting on my starbook mk VI since about last sping. It's frustrating, but I know they've had problems in the supply chain.

I'm happy to support a company like that obviously, but it's still frustrating.
https://graphite.dev is also aiming to provide a FB-like workflow including stacks.
Reading all the reasoning, both for and against, reminds me that ever since I heard about confirmation bias I see it everywhere. :-)
> Build new dedicated corridors for fast passenger services

If only, one of the best investments for NA would be an actual HSR network outside freight. California is trying and there are so many people who are doing everything they can to stop it. Including musk inventing an impossible alternative he never invented to build[1], hyperloop, as HSR would compete with tesla and hurt his sales.

[1] https://www.fresnobee.com/opinion/editorials/article26445107...
Huh, why would you want to do that?

If you have the resources to spare, you can do much better than replicating James Webb style telescopes. See eg https://en.wikipedia.org/wiki/Solar_gravitational_lens
That theorem is not valid constructively, so no way to make a computer program out of it. I.e., there is no program that given types A, B and injections (f : A -> B) and (g : B -> A) produces a bijection A -> B.
No, but a CEO can slash his own pay to reflect the current situation. For example, when the WiiU was a flop, Nintendo's CEO personally decided to take a paycut of about 50%[0]

I believe this should be the standard for any CEO who wants to say they take accountability.

[0] https://www.bbc.com/news/business-25941070
Free markets have vaulted more people out of poverty, by far, than any other system yet devised. The historical record on that is pretty clear.

I've run into a couple Afghans who I got to talk with (at different times). Both had escaped and arrived here with nothing but their skin when the US pulled out. Both had founded businesses and were thriving.

A third had arrived some years ago, and had become a deca-millionaire.

Isn't freedom great?
This.

And more generally: I think a lot that’s wrong with this world stems from the fact that humans are risk averse. This served us well in evolutionary times, when failure often meant death. But in modern societies it causes a lot of problems.
I don't disagree with this sentiment. However, my counter point would be:

"What takes 30 seconds to say takes 5 hours to reverse engineer and another 10 hours to document."

There's power in recording words, especially if you consider the fact that you may not work at the same place forever and people need to come behind you with concrete context to build upon what you created. This is a difficult task without recorded history.

I think this point gets lost in these discussions in favor of the immediate meaning.
> I think op meant organizationally you still have logical components.

Yes, my impression was that all of these monorepo tools have a first-class notion of the subrepos/projects/workspaces/whatever that make up the monorepo. If you don’t have that, then I guess I don’t really know what you mean when you say you have a monorepo.
If it flies it spies:
https://birdsarentreal.com/
1. All payments have to be routed across channels of arbitrary size across an arbitrary network. It's a small travelling salesman problem that only gets worse as the network increases in size.

2. It requires a transaction to L1 to open/close a channel. If 1B+ people used it the Bitcoin network itself couldn't cope with that. At 7tps it can handle a max of 220M transactions per year.

3. You need enough liquidity in all channels to your destination to send a payment. This is fine for micro transactions but it can't handle $1k+ transactions well at all.

4. You have to re-balance channels or they stop working.

5. You need some sort of watchtower / guardian node to prevent the other person from being able to steal your funds.

ZK-Rollups completely obsolete the lightning network. If Bitcoin did a hard fork to make them possible every single person would migrate to them. Lightning is not a long term solution, it's mostly a meme to throw back at people who say Bitcoin doesn't scale.
He replied to 2 of my comments <1 min when I made some additions 2-3min after (and I didnt change my arguments just expanded). I'm not on HN to win fast paced arguments. But I do understand that some people are.

In the future I will take this into consideration re: using "Edit:" for people who reply before you even notice.
As I understand these IVAS headsets bear very little relation to the commercial hololens devices. I'm not saying Microsoft aren't doing this for a healthy profit, but there's a significant amount of engineering work for relatively small production numbers, and most of it would not be transferable to the consumer and business segment hololens gear. At least initially probably blocked for sale to other friendly militaries as well.

Even simple things like repackaging and ruggedising COTS hardware to pass shock/vibration standards, weatherproofing it for a range of adverse conditions, etc. is a reasonable cause to add "military grade" markup.
cycling, going vegan, renewables
> No. This whole "aging is the result of loss of something" idea is outdated. The sooner we forget it, the better.

This oversimplifies the research. There is strong evidence for programmed death. That doesn't mean there isn't also damage accumulation.
> I would say Vim is an imperative editor.

It’s interesting you say this, since I’ve always thought of it in precisely the opposite way! A traditional editor is thoroughly imperative: all editing operations are built up by sequencing basic commands, almost exclusively ‘insert/delete a character’, ‘move to this line/column’, and ‘select from line/column position X to position Y’. By contrast, Vim gives me an entire declarative language to work with text: if I want to ‘delete a word’, or ‘change the next 10 lines’, or ‘move to the previous occurrence of the identifier under the cursor’, I can just do that, without having to mentally break it up into sequences of smaller editing operations.

I suppose this all goes to reinforce a point I’ve made several times before, which is that ‘declarativity’ is more of a continuum rather than a state. Calling something ‘declarative’ without context isn’t very helpful, but it’s entirely valid to say that most text editors are less declarative than Vim, and Vim is in turn less declarative than the refactoring operations in a full-featured IDE.
Not the parent poster, but… the size of the codebase is for sure a criterion, but also code I have to continuously maintain or add to, or code written by a team where I have to read others’ code and vice versa.
The three biggest contributors on Github [1] are

https://github.com/Ms2ger - at Igalia in Spain https://en.wikipedia.org/wiki/Igalia

https://github.com/emilio - still at Mozilla?

https://github.com/jdm - works at CashApp https://en.wikipedia.org/wiki/Cash_App

[1] https://github.com/servo/servo/graphs/contributors
You generally can’t do that either.
> Wouldn't that just be due to the low coefficient of friction?

You mean, its slipperiness?
they're charging more, but I always assumed that's because they're a smaller company based in the US paying US wages. Also a while back they mentioned that they wanted to build everything here in the US. They also support linux, coreboot, etc. I think there are people out there willing to spend money to support something they care about.
This is cooler than ChatGPT and image generation as far as I'm concerned. If they're able to bring out the emotional connectivity and purposefulness of the human voice, it will be revolutionary...
I briefly worked with the guy. Knowing him, I expect he loved it.
DCS[0] in multiplayer. Horribly single-threaded at the moment, no CPU on the planet is good enough for a really busy map, running a bunch of detailed flight and systems models. They’re working on it, but they’ve been working on it for years. Typical small market development constraints.

[0] https://www.digitalcombatsimulator.com/
How Semiconductors Ruined East Germany
This assumption also seems un warranted. The history of legal thought in China dates back thousands of years: https://en.wikipedia.org/wiki/Mencius

China strikes me as a somewhat oppressive society, whose norms and mores I would prefer not to live under. However, I do not have the impression that it is ruled by fiat. They have harsh laws against corruption, though my impression is that enforcement is uneven and many choose to gamble, on either not getting caught or being able to bribe their way out of trouble.

Isn't it possible that you're just defaulting to assuming business operators are generally innocent and public authorities generally dictatorial?
Still complex for me, even after reading the author's tutorial and suggestions.

Between hjkl, w, l, d, dd, esc, :command, and more modes I feel like I'll never grok vim.

After how many years do I throw in the towel and just stick with VS Code? Been at it since 2008 in some form or another :(
https://mappinggenerator.net , it's great
What graph db the cool kids use today to start dabbling in the art?
Airbus is testing out autonomous taxiing, takeoff and landing
Oh yeah. Dry towns. Havens for hypocrites who would just drive down the road across the county line to the liquor store and stock up for the week. Pathetic people. The first task any surveyor had on our crews was to locate the nearest liquor and beer so that everyone on the crews would know which way to go after work. The ideal situation would have us in a motel in a town with good beer joints or clubs but we definitely had no problems taking control of any local private clubs in dry counties where you had to pay a small "membership" fee to buy beer.

Scumbagger. I know the one.

EDIT: I don't know when you were there but I was MWD for Analdril. Biggest collection of liars, maggots, self-interested pricks, and thieves in the industry. If you worked there you would understand and have a personal perspective on why the O&G industry's poor public reputation is something that they have obviously earned and cultivated.
I’m not getting into the pros and cons. All I know is that I dragged my feet for a few years and regret doing that. It’s been incredible. I now see javascript as a compile target.
I didn't say it was. Arguing with what I didn't say is pointless.
I use vim in VS Code - best of both worlds :)
If you're not too fussy about results it might not be "that hard" to load a previous layout into dot, and optionally mark the nodes and edges that are allowed to be moved (or preferred not to be moved), and run the algorithms on that. It "just" needs someone to work on it, or pay for developers to do it. We wrote a paper about this in the mid 90s and Gordon Woodhull even got a successor of that to work, see dynagaph.org
> You could say that about someone exposed to massive amounts of nuclear radiation - they move slow, they hurt all over, their skin sluffs, etc.

Sure. But that's only half of it. What's promising is when, afterwards, you give that person a gene therapy which reverses the aging-adjacent damage.
Reddit has rotten my brain because this is the first thing I thought about when reading this title.

Although, as much as I enjoy the silliness of it, I hope there aren't people that are taking it seriously, the similar "flat earth" joke already backfired.
Yeah, definitely don't buy cameras with those features as a possibility if you don't personally desire it. Getting regular onvif cameras is pretty easy if that's what you desire.

Restrict them from internet access and you don't have to worry about firmware updates too.
> Nah, lots of things eat viruses. It's nothing unusual at all. You
> eat viruses, I eat viruses. They are everywhere, after all.

When an engineer walks in front of an idling jet engine you don't
say the jet eats viruses.
I really like this comparison. But isn’t the case with modern physics that we are getting something like 8 of 10 things right? So that’s a lot of correct triangulation - and throwing the current understanding out would throw all of that away - and potentially rearrange things.
Devirtualizing Nike.com's Bot Protection (Part 2)
The graph drawing community extensively studied algorithms that update and "preserve the user's mental map" of various types of layouts. It's all heuristics anyway; sometimes they produce locally optimal layouts, but it's not as if extant layout systems are producing mathematically optimal layouts in general.
Less than a week ago, I said AI would upend the market for voice actors within the next couple of years: https://news.ycombinator.com/item?id=34271948
The future belongs to the Orthodox Jews and the Amish. It doesn’t take many generations of families with 8 kids to outbreed the agnostic populations on the coasts. It’s going to be wild, but none of us will likely be around to see it happen.
You get a lot of storage "for free". Some examples are house heating and hydro-electric that you would have the dams for anyway for flood control. Also, fuel based power-plants are very low capex so it's totally reasonable to have 50% demand able to be met by fossil fuels and then just keep them off whenever you have enough renewables.
Take for example the federal schedule I list of items that includes marijuana which means no medicinal value. However, several states have now passed medicinal usage for marijuana. The federally scheduled status has lots of trouble getting changed for lots of reason, but BigPharma lobbying is part of it. Either the states are full of shit with their medicinal claims, or the feds are full of shit for saying there are no medicinal uses. I think we can all agree whose in the wrong on this, but because the wrong party supersedes, it be what it be, ya'dig.

Yes, BigPharma is a bit of a derogatory term. There are definitely good players and bad players. I'm still not sure if I'm happy about what is happening with the Oxy/Sacklers/etc, as in, did it go far enough. I'm not sure it did. So that's an extreme example of the negative side of BigPharma. Now you have a diabetes drug being shopped around as a weight loss drug. These types are so hoping better living through chemistry can work that they'll push anything in the inventory for any ailment as long as they can get away with it. These are my big issues with the BigPharma players. Do all pharma companies play that way? No, I don't believe they do, but until these asshats get out of the way, they are just holding us back. (I'll jump off my soapbox now).
If there is no way for callers to reliably distinguish recoverable panics from unrecoverable panics, then this distinction doesn't really exist, does it? Panics are panics.
I'm "waiting" for the time when scammers will start calling us with similar voices.
Still sounds pretty fake to me. There’s a hurriedness to the speech and a monotonic uniformity in enunciation that is uncannily machine. Good to know that voice actors will have jobs for a while longer…
It's not necessarily about locking, it's a way to control what order joins get done in, which, at least in MS SQL, is up to the query engine to decide. By writing to a temp table you can override the query engine's plan, often with huge performance gains.

Less known is that you can get the same effect using a TOP N statement where N is a number larger than the rows you might get back. This presumably avoids the additional i/o penalty of the temp table creation, but I've never validated that. This trick likely is portable across db engines, too.

See https://bertwagner.com/posts/does-the-join-order-of-my-table... - Adam Machanic has some good videos diving deeper into this.
How is blocking funding for the government going to balance the budget? It’s like you saying you’re going to get your spending under control by stopping to pay your credit cards.

It’s just performative. Republicans had full control of all 3 branches of government in trump’s first term and all they did was increase the debt with unfunded tax cuts.

The republic is teetering because of this disfunction and hypocrisy, legislators who have no interest in actually legislating and finding compromises to solve our problems.
> There is a reason why you don't do standups asynchronously.

There are plenty of teams that do standups async. I dont need to know what everyone else is working on on a daily basis. Not to mention a 15 min recurring meeting to start the day is soul sucking, especially when you hear the words ‘I have a blocker’ and it becomes a 30 min meeting
I think we're just reducing down to "programming at scale" is hard, at some point.

Sure; that is a really big problem, and it becomes a bigger problem the bigger you are. But, as you become bigger: the monorepo is constantly changing. Google has an entire team dedicated to the infrastructure of running their monorepo. Answering the question: "For this service, in this monorepo, what is the set of recent changes" actually isn't straightforward without additional tooling. Asking "what PRs of the hundred open PRs am I responsible for reviewing" isn't straightforward without, again, additional tooling. Making the CI fast is hard, without additional tooling. Determining bounded contexts between individuals and teams is hard, without additional tooling.

The biggest reason why I am anti-monorepo is mostly that: advocates will stress "all of this is possible (with additional tooling)", but all of this is possible, today, just by using different repos. And I still haven't heard a convincing argument for what benefits monorepos carry.

Maybe you could argue "you know exactly what state the system was in when something happened", sure. But when you start getting CI pipelines that take 60 minutes to run, or failed deployments, or whathaveyou; even that isn't straightforward.

And I also question the value of that; sure you have a single view of state, but problems don't generally happen "point in time"; they happen, and then continue to happen. So if we start an investigation by saying "this shit started at 16:30 UTC", the question we first want to have answered is "what changed at 16:30 UTC". Having a unified commit log is great, but realistically: a unified CI deploy log is far more valuable, and every CI provider under the sun just Does That. It doesn't mean squat that some change was merged to master at 16:29 if it didn't hit prod until 16:42; the problem started at 16:30; the unified commit log is just adding noise.
You learn more from mistakes and being wrong no doubt about it.

I remember some billionaire saying 15% of the decisions you make each day should be mistakes otherwise your not trying and you're not learning.
Cosmic rays don't strike twice: understanding the nature of DRAM errors
If the overall "on steroid" metaphor is on how Vim will improve typing performance and give an edge over organically growing your keyboard commanding abilities but lead to early health problems...I totally agree with the title (also a good piece with good advices otherwise).

Vim was my primary editor for a bunch of years, and it's definitely fast and helps to utilize keyboard commands to the maximum extent. That's also the years I started getting RSI, changed a lot of habits, keyboards, postures etc. to come to the conclusion that the real issue was plainly doing the same movements over and over.

As a data point of n=1, optimizing workflows for maximal productivity meant doing the same optimized actions again and again, and do them fast. Which wasn't good. Reducing "productivity" and introducing more input methods that I can switch to here and there when I feel like it helped a lot. So less touch typing marathons, less shortcuts, more GUI and more variety overall.
I'd argue that using git's sparse-checkout functionality and enforcing clean commits (such as via the patch-stack workflow and maintaining a hard line approach against diff-noise) does a lot of heavy lifting for handling git monorepos.

Sparse checkouts, shallow fetches/clones, partial clones, etc allow you to work with an egregiously large repository without needing to ever actually mess with the whole thing. Most existing build tooling can be made to work with these features pretty easily however some tools are easier than others.

Enforcing clean commits avoids the issues with keeping track of individual project histories and past that the existing git tooling largely already supports filtering commits to only expose commits relevant to specific directories/pathspecs.

---

The only time I really see an organisation outgrowing a monorepo is if the org is incapable of or unwilling to maintain strict development and integration policies.

Also worth noting because I don't see it mentioned enough but not everything has to be in the same monorepo. Putting all closely related products and libraries in the same monorepo is kosher but there's little reason for unrelated parts of an org's software to all be in the same monorepo. So what might be 50-200 independent projects/repos could be 3-20 monorepos with occassional dependencies on specific projects in the other monorepos.
> this puts you in an unstable regime where you are “fighting” with the car

This and your following description sound a lot like analyses of the two 737 crashes caused by MCAS.