Hacker Newsnew | past | comments | ask | show | jobs | submit | adsweedler's commentslogin

Scarcity of resources … what if maybe the disease made less “resources” available to these chimpanzees?


Sometimes they do it in their own species, but much more commonly they do it across species. Eucalyptus will kill all but eucalyptus. Redwood trees will form networks and help each other; even an albino redwood tree (no chlorophyll https://education.nationalgeographic.org/resource/white-wond...) can survive.

A plant that killed all offshoots of itself would not survive. But plants much more often make perfect genetic copies than animals do, so the selfish gene can explain this behavior


Murder is a synonym for kill but you can differentiate between them to make a point that one particular instance of such a caused-death is worse. Is more reprehensible.

The semantics of the word are as fluid as the opinions of those who you are trying to explain the situation to, using such distinctions.

If you think the death was wrong, it is a murder. If you think the death was right, it was a murder, killing, assassination, or any such word. Language is obviously not as black and white as the example I gave, but the point stands.

I agree with your definition but think it’s too narrow, and thus missing the point of the original argument. I don’t agree with lo_zamoysk‘s original point. I think lions CAN murder. I think when they commit cannibalism it’s only when they murder other lions. All other deaths lions cause, lion or other animal, are killings (maybe murder maybe not). But when Lion A kills and eats Lion B, Lion A would have much preferred to get food another way. It’s a lot more likely Lion A is motivated by something other than hunger, like so many of Lion A’s - or even any Lion’s - kills are.

Motivations are required for murder. The word “murder” ascribes motivation to a killing.


Murder is a hyponym of kill, not a synonym. The inverse is that kill is a hypernym of murder.

PS I think I got that right, it could be the reverse.


Wow. I just read that whole wikipedia article and had a fantastic time. Thank you very much for sharing

But to comment on your point: species DO pay for it in the long term when members murder or teratorialism.

Lions are not cannibals. Some lions are cannibals. A successful group of lions cannibals existing (and what a brutal and awesome-in-the-biblical-sense story it is!) does not mean that it pays for the lion species as a whole to have groups of cannibals existing.

In fact, I could only see the “proliferation of groups like this committing atrocities” reach a tipping point for a species - not murdering when this murdering happens will make you cease to exist. So if the species doesn’t have a reason to reach the extreme where this NEVER happens, then it will quickly reach the point where this ALWAYS happens


If you could snap your fingers and have your type hints update to match your code, it wouldn’t get in the way of your work.

Hyperbolically: You have to be able to edit code at the speed of thought - whatever it takes - or else programming languages cease to be a more useful tool than just thinking.

If you type slower than you think, or can’t do the type-hint-based textual translation as quickly as you think, then… yeah - it’s not good for you.

The advice I’d wanna hear for myself is: just get better. But the advice I’d give to my coworkers is: have explicit domains where you’re able to do whatever is most efficient and effective, and then when you hand off data to the next subsystem - obey a contract. A schema. Be that type hints or a .proto file or a database schema or an API. Doesn’t matter.


> On the other hand, when speaking with anti-interrupt people, I often get so bored it's hard to pay attention

The post didn't ever explicitly say this, but part of the power of wait culture is that fact that it forces you to listen. Even when you think someone is wrong.

Of course, if what the other person is saying is not worth your time, then there's no reason to be a good listener.

As for an objective look at the mechanics of interrupt culture that you described, it works perfectly if everyone can agree on the relative importances. But if someone never lets you interrupt or ALWAYS interrupts, then... it just breaks down. It's almost like you're taking an economist's stance of "all humans are rational actors". If that's the case, then your arguments for interrupt culture are an nice proof detailing how - in any situation, the person that needs to talk more has the ability and permission to immediately gain the floor without listening to the other person waste time explaining an irrelevant detail or counterargument to a misunderstood point.

I like the way you're thinking, and I know that you would act in good faith under this system you see and have explained so well. Together, I would converse with you like that. And just hope that one of us doesn't get frustrated that the other person keeps interrupting with boring stuff.


It being boring to me would be a rude/invalid reason to interrupt, I mean the case specifically where someone is telling/explaining/describing something to you because they think you don’t know about it. The interruption is just to let them know that you do already know about it, not to change the subject. I would find it embarrassing if someone let me going on telling them something they already know just because they thought I didn’t want to be interrupted.

But thank you more generally and I’m sure we’d have a good conversation!


Sometimes I let people explain something I already know because they either explain it better or add more detail. Even a well described reminder is useful and interesting if told well.

Sometimes though it's not useful and it's them explaining poorly or, even worse, pointless simplification. They'll get interrupted fast if either of those is the case.


> Of course, if what the other person is saying is not worth your time, then there's no reason to be a good listener.

Sometimes you listen just as a gesture, though. To show respect and appreciation. Or you could listen so that you can ensure that the OTHER person will listen to you after.

It all depends on the context.


> That's only doable with a text-centric website

Yeah if you're trying to fit the WHOLE web page into 14kb.

But you can get ALL the text there and have the images load in after. The first time I used a the static site generator Gatsby I was super weirded out by the blurry image that showed up upon first load of an Img. It will quickly resolve into a full quality image, ofc, but the point is a relevant metric is also time to first contentful paint.

Also the JS will load the rest of your pages while you're idling on the first page, so that's nice. It's not just good enough to have lazy-loading content, your strategy will have to change depending on how users use your site. Let's say 99% of people scroll to the right in a circular gallery of pictures. You should only really load pictures to the right.


Awesome app. Do you plan on using it for anything in particular? Or are you just creating it as a passion project. It's totally cool.

***

Learning about https://treenotation.org/ (linking this for other people, not for you, Breck :P), and I like what I see. My first impression was: "tree notation is like lisp, but with python indenting".

But then looking at it more and I see it's much more like YAML or CSV or whatever. But then I read:

> We no longer need to store our data in error prone CSV, XML, or JSON. Tree Notation gives us a simpler, more powerful encoding for data with lots of new advanced features

And I didn't understand! Tree notation seems equivalent to these. Like at a certain level, it's all just data. Now, the major benefit is that you're supposed to think differently about what you're doing when using tree notation. Would love to hear your opinion about this conjecture.

***

Not getting into the beautiful and amazing work that's been done WITH tree notation (yet), that's a whole other conversation!


> Do you plan on using it for anything in particular?

It's hard to believe, but I use that thing everyday, haha. To me every problem is a nail solvable with my DSL hammer.

> are you just creating it as a passion project.

I want other people to use it, but it took a while for me to be truly confident that it will work and the underlying math is sound (that 2-d languages are better than 1-d langs). So just in the past week formed a corporation (https://publicdomaincompany.com/) and growing the team and are actually going to try and make a good user experience and help people use these technologies to solve their problems.

> Would love to hear your opinion about this conjecture.

I always think of code now in 2 and 3 dimensions. To me after many years this is just second nature but it's not an obvious thing and not sure I've ever met anyone else that does this. I gave an early talk about it in 2017 (https://www.youtube.com/watch?v=ldVtDlbOUMA) at ForwardJS (there should be an actual recording out there on the web somewhere but I can't find it).

Traditionally all programming languages are 1-D, read by a single read head that moves linearly from start to finish (with some backtracking, but always just along 1 axis in order), building up an AST and then going from there. There's no reason it has to be that way, it's just the way things developed with our 1-D register machines.

Human beings do not process language this way at all. Not even close. If you have a physical newspaper by you, pick it up and pay attention to the way your eyes parse things. You'll likely notice a random access pattern, with your eyes moving constantly across both the x and y axis, and you parsing the semantics by things like position, font size, layout, etc. To me it's so obvious that this is the way computer languages should work. Their shouldn't be lots of physical transformations of the code, using cryptic syntax characters like ( and " and [ and { as hacks to provide instructions to the parser. Code should be written in accordance with a strict grammar, yes, but it should also be written in way pleasing to the human eye and the way human brains work.

We should make human languages that machines can understand instead of making machine languages that humans can understand.

Anyway, I'm rambling on and on, but this is the bigger idea than simply the tree notation implementation, which is really just a subset of a whole new world of possibilities in 2d and 3d languages. (here's another recent one showcasing the new possibilities: https://www.youtube.com/watch?t=145&v=vn2aJA5ANUc&feature=yo... — when I write Tree Code I see spreadsheets and vice versa)

Also, when I play with legos now I see code, and when I write code I see legos. That's a hard thing to communicate and an early tool I wrote called Ohayo shows it off a bit, but need to write a single function that takes a tree program and spits out a lego vis (something like LDraw), and maybe that will help explain the idea https://github.com/treenotation/research/issues/33


"Work securely offline"

Is... is that a problem with GitHub that stops you from doing that?


The design of GitHub means that your canonical upstream is only accessible through the internet, and so are your issues, PRs etc. If you're offline, you can't access it, and if GitHub is down, same story.

Radicle, on the other hand, keeps all of this replicated locally, so push/pull works offline, and the code/social artifacts are replicated asynchronously, when you are online, but you don't need to be online to work with your project(s).


GitHub has a pretty extensive API; it's not hard to write a simple script to clone all that data if you want to, or publish it somewhere else. I'd be surprised if there aren't already a dozen of those scripts floating around already.


That’s not the same. You’re talking about copying the data locally, but this still doesn’t let you create issues for eg. offline.


Why not? You can create issues with the GitHub API (and the CLI); it's not hard to imagine a tool which would "sync" issues from a local database or some such. The reason it doesn't exist is probably because there's not a lot of demand for it.

Come to think of it, it wouldn't even be that difficult to sync this database to someone else, too. Although to be honest this doesn't seem all that useful to me.


How does push/pull work off line? That sounds impossible. Just scheduling a push doesn’t actually push anything. That’s like commuting to my local GitHub repo and having a scheduled push/pull every 10 minutes then?


The reason you can push/pull works offline is that the database of radicle lives on your machine. Once you are online it will gossip with other peers to exchange updates of projects. This means that your workflow stays the same no matter connectivity and eventual the network convergences to communicate all relevant data. If you are interested in the details check out the docs: https://docs.radicle.xyz/docs/understanding-radicle/why-radi...


Well, reading issues is something you cannot when you are offline from github. Unless you downloaded them beforehand of course.


You need internet for pull and push. I think(hoping) that they meant within a LAN it could work without internet.


No, the full feature-set is available offline. You can browse your repos and any other repo you replicated, and push/pull. What offline means is simply that your changes won't immediately be replicated to peers. But the full app experience (Read and write) works offline.


(I'm not shooting the messenger here) If so, that would mean pushing/pulling within the LAN only... which Git supports already


If Github is unreachable, you don’t have a bugtracker, wiki etc. - you are working “blind”.


You can't push within LAN and then have that automatically available when online to the wider network, unless you have some form of continuous replication to some public-facing host. This is what Radicle does for you.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: