I want to be a fan of Apache Avro (https://avro.apache.org/) so much for situations such as this. And while I like Avro as a standard, most of the implementations I have found (specifically in C/C++) are... lacking. I feel Avro would be a great fit for something like this close to zero overhead (assuming a pre-shared schema) but there is little to no support for pre-shared schema and the RPC part of the standard is not a great fit for telemetry. Maybe one day I'll make an Avro library I like, or contribute to an extant one.
I think AVRO is fairly well designed overall, but JSON schemas? If you need deeply nested objects just look away, it becomes unintelligible when trying to understand the schema with any real nesting. The company I was at used it fairly well as long as you keep things 1 or 2 levels nested at most, but we had a legacy schema that was 5 or 6 levels deep at some points and it was just a disaster. My anecdote anyways.
Oh yeah. Schema nesting is a problem. I think a lot of it would be solved by having a schema allow a "types" field which just has a list your named types that can be referenced later in the list and in the actual schema. But yeah, totally concur on that pain point.
This is wild.
It's perfectly logical what they're doing but I'm used to seeing this kinda thing after the trademark has lapsed (Kleenex, Xerox, etc). But to see a company release a pretty funny youtube video begging you to say their name less, well, it's just a weird thing to see.
I don't think trademarks can lapse in the US and many other countries (copyright can; which is a huge debate in an of itself: see Disney).
I actually use "tissue" and "copy", but those kinda make sense. Personally I hate it when people keep saying "I Googled..." because it reminds me of this bullshit search engine monoculture we have right now (I try to use DuckDuckGo more, but I miss the days of Yahoo, Lycos, Hotbot, Dogpile, Excite and how they all give you DIFFERENT results!)
Velcro though ... totally didn't even realize it was a brand until like just now .. and I'm still going to use it generically, because it should just be at this point. :-P
No, "velcro" is genericized. The capitalized word "Velcro" is still a trademark.
As such, you can buy "Velcro [BVBA] velcro", or you can call 3M's hook-and-loop fasteners "3M velcro". 3M, naturally, avoids using the term "velcro" in its packaging and marketing, and would never use "Velcro", because even though they could, because the term is genericized, it would still be free advertising for a competitor.
The capitalized word "Velcro" is still a trademark.
Capitalization has no bearing on word marks (in the US, at least. I can't speak for other countries). "Velcro", "VELCRO", "velcro" are all the same thing as far as the trademark office is concerned. And yes, there are still active trademarks for the word "VELCRO", but it has still been unquestionably genericized.
I think there's mismatch here between you and the parent in that, yes the "VELCRO" trademark is genericised in public use but _officially_ the trademarks are still registered and valid so in law they are not [yet] genericised.
In the UK I can go in to shops the length of the country and ask for velcro and get "hook and eye" or "fabric fastener", is a completely generic term now, just no one wants to fight it in court.
The rules of English grammar supersede those of the trademark office. If it's not a proper noun, and not the first word in a sentence, don't capitalize it.
As an example of all-caps trademark, LEGO bricks. Like velcro, LEGO is a portmanteau. Velcro is velour-crochet, and LEGO is leg-godt ("play good"). And like velcro before it, LEGO is now fighting genericization.
If they lose the struggle, kids will play with legos instead of LEGO bricks. They might be legos made by Lego then, but LEGO would be the trademark. It might not be relevant to the word mark, but the image mark is stylized in all caps.
This is nitpicky, but I am sharing some of my experience from writing software that produces brand reports for trademark lawyers. The USPTO might not be case-sensitive, but some of the lawyers are very case-oversensitive, so our software had to take that into account. I still have trouble using a trademark as a noun or verb.
You can lose your trademark protection if the term becomes genericized and you fail to police its use. It's exceedingly rare for this to happen, the law isn't clear-cut, and different courts have ruled differently in similar cases, but it is technically possible. Velcro doesn't have to rabidly attack everyone trying to genericize its brand, and so long as they are still using it themselves and making some occasional effort to legally defend it, they're fine. But if other brands started calling their products "velcro" in the generic sense, and Velcro ignored it for a decade or more, they could in fact lose the trademark entirely.
Ah, thanks for mentioning it's a funny video. With just the link posted, it just looks like a typical "say it our way so we don't lose the trademark" thing like [1]. It makes a big difference in the decision to click on it.
> If the LEGO trademark is used at all, it should always be used as an adjective, not as a noun. For example, say “MODELS BUILT OF LEGO BRICKS”. Never say “MODELS BUILT OF LEGOs”.
My current go to for this is using SQLite. It's basically made for this purpose. If that doesn't serve, I like the idea of Apache Avro, but some of it's C++ bindings are a little lacking in my opinion.
This is a fantastic first choice, particularly as it sets you up for using a more "real" database for sharing data/scaling in the future.
OTOH, you have to know when no to use it and step up (down?) to something that is text editor hack-able (XML!?) or has barn burner I/O abilities (yah actually just dumping raw buffers with regularized binary data to disk). Or for that matter is used to exchange data with other apps with other services (JSON, and the long list of other data dependent formats, although for at rest exchange I have to point at XML again).
I agree, thanks for the reminder. As an example, I was working with Mass Spectrometry data recently, and found a list of about 20-30 possible formats for that topic alone (mostly proprietary) [0]
So interesting thing that. While I was introduced to the FFT in the same manner, (an algorithm for fast polynomial multiplication in a class by the CS department) my Electrical-Engineering-backgrounded colleagues are completely unaware of this use of the FFT. They use it as a change of basis to directly observe and manipulate frequency. The EEs I work with are much more familiar with the relationship between the Fourier transform of a function and what the original function looks like.
Yep. Grade school multiplication of two large numbers is the same thing (except for the carries) as convolution of two signals in the time domain. The numbers are the signals. You already know that piecewise multiplication in the frequency domain is equivalent to (and faster than) convolution of those signals in the time domain. So that's what FFT multiplication is about.
It's only useful for VERY large numbers (thousands of digits), which is why most people never encounter it.
Note that a “signal” in this context is just a trigonometric polynomial over a periodic interval.
If you think of your periodic interval as representing angle measure, and the points in the interval as points on the unit circle in the complex plane, then your trigonometric polynomial can alternately be thought of as a Laurent polynomial in the complex plane. https://en.wikipedia.org/wiki/Laurent_polynomial
What the FFT does is convert between the values of your function at n roots of unity in the complex plane -> the coefficients of the Laurent polynomial interpolating those values.