HN user

memling

405 karma
Posts3
Comments329
View on HN

If PB broke backwards-compat once then to me that's a very serious problem -- details?

Proto2 and Proto3 differ in how they handle default and required elements. Regarding these differences, I found a few references online:

    https://softwareengineering.stackexchange.com/questions/350443/why-protobuf-3-made-all-fields-on-the-messages-optional    

    https://groups.google.com/g/protobuf/c/Pezwn5UYZss

    https://www.hackingnote.com/en/versus/proto2-vs-proto3/
I don't use protobuf regularly, and they claim that the wire formats are bidirectionally compatible. When I last evaluated them with another developer years ago, I don't recall this being the case. (It was not merely a difference between their syntaxes.) I'm not sure the semantics are preserved between the two versions, either (e.g., did I provide a default value? was this element optional and missing? etc.).

They have lately (this is news to me) moved to protobuf editions: https://protobuf.dev/editions/overview/. This provides some flexibility in the code generation and may require some maintenance on the part of the user to ensure that codec behavior remains consistent. Google, for their part, are trying to minimize these disruptions:

When the subsequent editions are released, default behaviors for features may change. You can have Prototiller do a no-op transformation of your .proto file or you can choose to accept some or all of the new behaviors. Editions are planned to be released roughly once a year.

When has ASN.1 ever broken backwards compatibility? I've never heard of an ASN.1 backwards incompatibility. Maybe, if you stretch an interpretation of ASN.1 in 1984 to allow new fields to be added to `SEQUENCE { }` then the later addition of extensibility markers could count as a very weak backwards-incompatible change -- weak in that existing specs that use ASN.1 had to add those markers to `SEQUENCE { }`s that were actually intended to be extensible, but no running code was actually broken. I would be shocked if the ITU-T broke backwards compat for running code.

Good question. I was thinking of the transitions in the '80s, although my experience with standards written during that time is very limited.

But yes, one of the reasons people use ASN.1 is because of its hard and fast commitments to backwards compatibility.

Does one pay for an SLA for every piece of hardware, firmware, and software? The codecs are the least likely cause of downtime.

I don't recall saying that—just that I have had clients for whom the support was sufficiently important (because of their own reliability concerns) that they went commercial instead of open source. (They required, among other things, 24x7 support and dedicated resources to fix bugs when found; they also sought guarantees on turn-around time.)

Why would you need a support SLA for ASN.1 and not for PB/FB? That makes no sense. And there's plenty of open source ASN.1 tooling now -- just look around this thread!

If your business depends on five nines plus of reliability in your 5g communications stack, you might be willing to fork over the price for it. Or if you need a bug fix made in a timely fashion to the compiker or runtime, likewise. As I've noted above, a client of mine moved to a commercial suite of tools for this reason.

Protobuf and flatbuffers have different use cases in my experience, although that's somewhat limited. Protobuf at least also introduced breaking changes between versions 2 and 3. ASN.1 isn't perfect in this regard, but these days incompatibikities have to go through ISO or ITU, etc.

Your experience may be different of course. I'm just pointing out that there are reasons people will opt for a commercial product.

Meh. After all, if you're not using ASN.1 you're using something like ProtocolBuffers or FlatBuffers or whatever and all open source tooling.

Oh sure--there are plenty of alternatives to ASN.1. My guess is that most people who have the choice don't use ASN.1 precisely because open-source alternatives exist and can feasibly work for most use cases.

But if you happen to have one of the use cases that require ASN.1, open sourced tooling can be problematic precisely because of the need for a robust SLA.

In the ASN.1 space everyone hopes that someone can dethrone OSS Nokalva's proprietary solutions

You're buying more than a compiler and runtime, though: you're also getting an SLA and a stricter guarantee about interoperability and bugs and so forth. I have no idea how good their support is (maybe it's atrocious?), but these are important. I had a client who relied on the open-sourced asn1c once who complained about some of the bugs they found in it; they got pushed into buying commercial when the cost-benefit outweighed the software licensing issues.

I second this: don't go down the wrong entrance, but definitely do visit. It's a fun time with knowledgeable employees that will take you on a tour. You can also see some of the machinery used to crack Japanese codes and some historical attempts at codes and code-breaking. It's a fascinating place.

I think this plays a huge part as well. My wife and I were watching an episode of the US cop show “The Rookie” and they casually discussed paying a ticket for driving SEVENTY MILES OVER THE SPEED LIMIT. I went and checked and in LA the cost is about $500. This blew my mind.

This is mind-blowing, but it would be surprising to find this would happen without additional consequences. A friend of mine was ticketed for 20 MPH over the speed limit (not in California) and had his license suspended. Most states in the US adopt a points-based system that triggers suspension when you acquire sufficient numbers. California is no different.

Notice how even if you are an early bird and in the office by 9, you are a lazy slacker when you leave at 5? Then someone rolls in at 11 and leaves at 7 - same number of hours. HARD WORKER.

So I generally agree with your post, but is this what constitutes early riser these days? I get having kids and missing the key 7-9am time slot, but is an 11am start time a Usual Thing?

Also related to the ending, I‘ve come to realise more and more that most people reason out of belief first and arguments second on a lot of things (maybe most things?)

This is the thesis to the introduction to Jonathan Haidt's The Righteous Mind. Boiling it down, he argues that self-justification is the most fundamental human reaction. We reason after, not before, and our reasoning flows to align with our own justification.

(Luther would be proud.)

I heard Shoemaker or Levy once talk about the modem on Voyager...running at a blistering 10 bps. I keep our old 2400 bps modem around as a curio. The memories are interesting and fun for me, but I get that they may not be so much for some of the other engineers I work with.

Tao Te Ching 3 years ago

Is it an in-built preference? I think a robust monism is still a fairly radical position, especially among religious views. For example even the branches of Christianity which tack more materially tend to draw a rigid boundary between creator/created, God/the universe, etc. (and if you interrogate lay views they tend to skew even more dualistically).

Can you expand on this a bit? I have an intuition about what you're saying, but I confess that the definitions can be a little slippery.

One of the (maybe few) niceties of MS Office these days is that you can search through a list of most available commands through a simple Alt+Q and typing. This greatly improved my productivity for some common tasks, and it's the sort of discoverability that'd be helpful to make LibreOffice easier to use.

For my part, though, I'm typically authoring print documents in LyX, since I don't have to exchange documents routinely. If I do have to share Word-compatible documents, I'll sometimes use LO Writer or else convert from a text format to .docx using pandoc.

I have done pretty well with a combo of Nokia dumbphone for calls and texts, and a separate smartphone with no SIM as needed. I leave my smartphone at work or in the car when I want a break.

This is my route, too. I use a Sonim XP3 for my day-to-day communications: calling and text. I have an old Xperia flashed with SailfishOS when I want a pocket computer for calendaring (I use the calendar to record memories of my kids), light web browsing, and the occasional note.

I've bought several of these phones. My texting habits are relatively minimal, but I'm apparently pretty hard on T9-capable keyboards.

I bought a Sonim XP3 recently that is chunky, terrible for web browsing, and ideal for texting. One of its predecessors was featured on "Will it Blend?"[1] and only mostly blended (try that with an iPhone).

I've not destroyed anything on this phone, whereas the keyboards on my two Nokias died in less than a month.

[1] https://piped.mha.fi/watch?v=Wt1fNKhQdKk

If you are a long term investor, dividend growth rate is an important metric when evaluating the aristocrats. At a 7.2% growth rate, your absolute payout will double in ten years regardless of the stock value appreciation. That may or may not be a good stategy for many inestors, but may be smarter than chasing yield.

Not sure precisely why you're being downvoted for bringing some additional light to the conversation. Been busy here but appreciate the insights; this isn't my field. Are there good sources that clarify the complexities of Roman naming conventions?

Can anyone explain this?

Slave names were sometimes numbers. Naming conventions in Roman culture were apparently also fairly formal.[0] I would guess there's sufficient evidence here that a ratio of free to slave could be estimated.

In general, it seems like being a slave was not a great experience.[1]

[0] https://en.wikipedia.org/wiki/Slavery_in_ancient_Rome#Treatm...

[1]: among other stories, the one concerning the murder of Lucius Pedanius Secundus sticks in my mind: https://en.wikipedia.org/wiki/Lucius_Pedanius_Secundus

But from a working-with-other people perspective, imagine opening some code and finding random invented constructs you have to reverse engineer and step through

This feels just like working with another API to me. Macros can be arbitrarily complicated I suppose, but is the typical usage any more complex than learning an API? I don't really know, I guess, but my experience hasn't shown this to be that challenging.

I can appreciate that programming languages are ultimately codifying a particular way to think about computation, and macros express more idiosyncratic ways of thinkingabout comouting that may not be readily understandable.

I do think Racket has issues, but this isn't the first one I would cite.

I read _Stella Maris_ just after reading a bio of Gödel and history of the Vienna Circle. Serendipitous to come across it, and would recommend it.

_The Road_...I was warned, but not prepared.

If anyone here has novel ideas how to actually implement "a class that can't be cheated with AI", specifically university CS classes, I am all ears.

May not work for you, but as a CS student our department had the policy if that if you failed the final, you failed the course. The finals were usually structured that rote memorization would earn a C- (depending on course complexity and importance). They were all pencil-and-paper exams.

While cheating was policed, collab was encouraged with the proviso that lab submissions needed to be own-work, and they'd run basic comparisons to make sure that they weren't copies. As a result, the administrivia on finals was longer...but there was a little less concern about the rates of cheating.

I should mention I was a deacon when I was in my 20s, so it's not like I was raised atheist.

Interesting, thanks for the explanation. Were you a deacon before you started reading Genesis more skeptically or how did that happen for you? Feel free not to respond, of course. I'm interested in stories of de/conversion; I don't mean to probe where you'd rather not say.