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

The RFC is written by and for people who have already discussed in depth what problem they are trying to solve. But little old I can't figure it out by reading the text.

Can anyone enlighten me about what it's for? How does it fit in compared on the one hand to TLS and on the other hand to things like WireGuard.


Well, as a C++/Python/C# programmer, I see it as a combination of ways to

(a) organise procedural programs using language features that make abstract data types more powerful,

or

(b) obfuscate procedural programs using language features that make abstract data types more confusing.

If there is in fact some other, non procedural, paradigm called OOP that we can learn about, then maybe dead languages are the place to look for it.


> ... of organic-multilevel-marketing scam.

Is it a scam though? A pyramid scam is self-similar: you sell to people who then expect to sell to people who expect to sell to people etc.

I thought Avon, Tupperware etc. had a fixed length chains and multi-decade track records of sales to real consumers at the end of the chain.


It's not a recursive scam, but some of them are still situations where they convince people to buy in before they understand the demand, and then in order to recoup their costs they now have to resort to obnoxious techniques like inviting their entire Facebook contacts list to their virtual party. I think the term "scam" is removing the resellers from responsibility for their own situation, so "sham" is a better term. Others aren't scams at all, but simply business that usually involve obnoxious techniques like inviting your entire Facebook contacts list to your virtual party.


Try letters on paper?


> * AOP for logging; ...

Can you expand on how this works in practice. Or link to an explanation? (I assume AOP means "Aspect Oriented Programming").


Yes, AOP == Aspect Oriented Programming

Logging systems can usually be enabled by package/namespace, and frequently to the class level. I've used AOP to log out the trace of the code (not just the call stack), but can turn it on or off as needed. Authentication acting strange? Enable those logging aspects and browse the log to see where things are behaving strangely, and it may not be in the stack trace of the exception that gets thrown somewhere else. Logging methods and some arguments is hugely helpful; it's like automatic debugging.

A quick googling found: https://www.yegor256.com/2014/06/01/aop-aspectj-java-method-... and https://nearsoft.com/blog/aspect-oriented-programming-aop-in...


Ahh OK. So you mean fine-grained selection and routing of log messages.

I'd never thought of that as AOP, but I suppose it is. And I suppose AOP frameworks provide the machinery to do it, without the logging subsystem having to reinvent those wheels.


> * any other escape sequence MUST be interpreted as ? (question mark) character.

Isn't it better to forbid them? Presumably you are saving the space for further extensions, but this is allowing readers to interpret them as '?'

Similarly what is the rationale for interpreting control characters is '?'? Instead you can ban them, with the possible exception of treating tabs as spaces.


Postel's principle: By liberal in what you accept... It means that the tool won't crash just because there's weird input.


But as written, the definition permits generating the weird output. Which ignores the other arm of Postel's principle.

You could have the format definition forbid these characters; and then in the section about Postel's principle have "If you choose to accept forbidden characters, you MUST treat them as '?'".


Isn't it better to crash than to fail silently, possibly storing malformed data?


Known as "Fail early, fail loudly".

https://en.wikipedia.org/wiki/Fail-fast


In the Powershell model, I thought things stayed as structured objects in reality, although the UI was ready to render them as text. This seems to be about continuing to use text, but to being disciplined about formatting.

If the above characterisation is right, it is a middle-ground between Powershell and traditional methods.

Also, this is not introducing a new shell language.


And yet it is called zero cost. Not "zero cost along one particular dimension that we won't name and only sometimes matters."


We took it from C++ which has a long history with the term; take it up with Bjarne.


Sure he could. And he could take it up with anyone who copies it on a greenfields project too, right? It's a crap name. So what, computing is full of them, assembly language is full of them, C is full of them, C++ is full of them. Sometimes we make a break and don't use one and invent something better. Sometimes...

mov [memory], %register memove(dst, src, size); dst = std::move(src);

eg RAII, SFINAE these are not great names to be copied, I'd be surprised if rust did.


You can think of it as the reactor pattern. You only have one physical CPU so all you are doing is churning through callback-based event handlers.

The callbacks in this case might be the literal interrupt handlers (in which case your dispatcher "loop" is actually the hardware). Or else you make your interrupt write a little bit of state that then gets dispatched by your actual event loop.

Either way, you write responsive software by doing everything in short-running callbacks.

I find it amusing that (some) sophisticated GUI and server framework for big computers re-invent this.


One important difference is that in the MCU world interrupt handlers need to be really short and fast, because often various classes of interrupts are blocked from occurring while an interrupt handler is running. A common pattern is for the interrupt handler to just set some bits to say “this occurred” and return. The bits are then checked and handled in the main loop.


> doing everything in short-running callbacks

We call them "interrupt handlers." :)


It's amusing how you and alexhutcheson both corrected me in opposite directions.

For reasons Alex explains, interrupt handlers have to be really minimal. So you often use them to set state that makes the main loop branch off into the "real" handler.

But even then, you often don't want to wait a long time in that handler either. That too becomes a short-running event handler (though not necessarily a callback). Just not as extremely short running as it would have to be if did it in the interrupt handler.


> Interestingly, it's a 5-4 decision, with Kavanaugh writing the decision, joined by the 4 liberal justices. Probably the most unexpected alignment of the current term!

It isn't really. It's just the standard partisan split, albeit with one guy "crossing the floor". Such crossing is common but since most of the media is incapable of understanding anything but partisan point scoring, they portray the Justices as partisan hacks, which they are not.

Heck, they aren't even that good at tracking point-scores, since the most common score at SC United (states) is 9-0.

https://en.wikipedia.org/wiki/2018_term_opinions_of_the_Supr...


The "vote alignment by ideology" view on this page linked elsewhere is instructive.

https://www.scotusblog.com/2019/05/opinion-analysis-divided-...

Basically in order from left to right numbered 1-9 the majority on this case were 1-4 and 6. So it's only one step away from being a fully partisan split.

>"they portray the Justices as partisan hacks"

I leave it up to others to decide whether scoring each justice on a left-to-right continuum is any more nuanced than this.


Additionally, while Gorsuch ruled in favor of Apple, it is clear from oral arguments that Alito/Gorsuch have little respect for the Illinois Brick argument.


While I agree that much of the time they do try to rule based on law, it is clear that precedent is being looked at as mere suggestions by this new court. I wonder what the score will be when the challenges to Roe hit their bench.


That's not something unique about "this new court". The Court has never been all that respectful of precedent. From the Lochner era (reading a right to expansive freedom of contract into the constitution), to the "switch in time that saved nine" (vastly expanding the definition of 'interstate commerce' such that Congress could regulate anything), to the Warren court (which invented whole-cloth a slew of social and criminal justice rights), the Court has often gone in radical new directions and overruled previous decisions.


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

Search: