Schiit Happened: The Story of the World's Most Improbable Start-Up
Sep 25, 2022 at 2:55 PM Post #100,201 of 149,229
Losing internet means losing my music? No thank you.
When ever it goes down at our home, I have plenty of music on CD and Vinyl. It should be noted that there is a drastic difference in the Vinyl I have and in the albums collected by frAudiophiles. Those are referred to as "Whinyl". Yup. Really.

Cuz that is all those people do.:ksc75smile:

ORT The Cruel :beerchug:
 
Sep 25, 2022 at 3:44 PM Post #100,202 of 149,229
I appreciate where you're coming from, that you are honestly and truly just trying to help a fella out. I really do appreciate that!

…but you didn't pay any attention to a thing I wrote about my position on the use of non-native frameworks, did you… 🤣

Naming something "native" just does not make it so, no matter how much some corporations like Meta or Microsoft wish it to be. React Native, Xamarin, et al, are a cancer that needs to go away, and sooner rather than later.
These frameworks' sole raison d'etre is to make a coder's work a bit easier (and arguably lazier) and to save companies some money. What they do NOT do, never have done, and by definition never can do, is to create a seamless and high-quality user experience that looks and feels fully native to the platform that any given application runs on.

To make matters worse, this tired old sales pitch of "delivering a consistent experience for users across different clients" is an absolute farce. It simply doesn't mean what most people think it means. What developers think it means is that these frameworks would allow for a consistent and high level of quality across platforms. That's objectively just not true. It can never be true because "one size fits all" and "platform-specific, native look and feel" are by definition mutually exclusive. Almost nothing in life is ever truly black and white, but this one is. I am absolutely, without exception, always eager to be proven wrong, but on this front I am still waiting.
So, what does this sales pitch mean, then? It means what especially Meta has always intended for their products to be the case: That Facebook at al will always look and feel the same, regardless which platform you run them on — each platform's native look and feel be damned. They don't give two f#@%s about iOS, Android, macOS, Windows, etc., they only care about what they think a "user experience" should be like. And these frameworks' entire purpose is to enable them to do just that. That, and nothing else, is what Microsoft, Meta, and co., mean by "consistent experience across different clients/platforms."

Which brings me to yet another problem with these 3rd party cross-platform frameworks: Do you really want to make your entire business to fully, entirely rely on the future good-will of some 3rd party developer, especially the likes of Meta, which has proven time and time again to give the least of schiits about literally anything but their own bottom line?
Seriously?
So, if Meta decides that they want to take another route and decide one fine morning to drop any further development of React Native, what happens then? Are you willing to rewrite your entire code base to something else?
Can you be sure that some "community" will keep it alive and reasonably well maintained? (Have you ever heard of Qt? If not, you should look into the history of that framework, what happened to it, and the true clusterf#%& that it has become today. Ironically, it's still one of the better UI frameworks for Windows. That's the state that particular platform is in today, in large parts thanks to Microsoft's undying commitment to that horrid mess that is .net.)
What if there are no alternative frameworks that provide a similar set of features, or frameworks that require you to write your own code in a different language entirely?
Do you really want to start over from scratch, and lose a year or two of time, time that you now can no longer invest into actually improving and expanding on your own products?
You are really willing to bet the entire farm on the musings of a corporation that couldn't care less about your business if they tried?

I wouldn't.
I couldn't.

Have you ever used YouTube, Netflix, Paramount+, or especially Prime Video on an Apple TV? Maya on Windows or macOS? Microsoft Teams on any platform, even on its "native" Windows? Heck, even Apple's own 1st party Catalyst apps like News, Weather, and Stocks on macOS? You can't tell me with a straight face that those would offer a quality user experience.

If you want to support multiple platforms AND you want your product to be of the highest quality AND as independent and future-proof as something as volatile as software ever can be, you simply will have to re-write much of your code for each and every platform, using each specific platform's own frameworks, coding styles, and overall best practices.

So, until the day someone proves me wrong and comes up with a framework that actually and reliably solves all the problems that these things currently (rather needlessly, but alas) create, this remains a hill that I am absolutely prepared to die on.
I don't disagree with much of you said, but your question was about what approach is taken when using a cross platform tool, and I think that the Coinbase and Spotify examples I provided give some insight.
 
Sep 25, 2022 at 3:58 PM Post #100,203 of 149,229
I don't disagree with much of you said, but your question was about what approach is taken when using a cross platform tool, and I think that the Coinbase and Spotify examples I provided give some insight.
Ah, gotcha. Thanks for the clarification. 😊

No, my request to @artur9 was actually for sources and texts on the approach he himself is taking. He stated that he dislikes cross-platform frameworks like .net et al himself, and that he tries to avoid them wherever possible. Plus, the development timeframes he stated are surprisingly short for what he described himself to be working on. Those two things put together made me very curious to learn more about his approach.

Who knows, maybe (read: almost definitely) I'm missing something crucial. Some coding paradigm that has been eluding me, for example. And I always want to learn more about stuff I don't know. 😁
 
Last edited:
Sep 25, 2022 at 5:52 PM Post #100,204 of 149,229
re: Roon 2.0 requiring active Internet connection. The ARC function requires this, but basic Roon functionality is not supposed to. The Roon developers on their forum have recognized this is a bug in the current 2.0 release and are working on a patch. They say to hang on and 'net connectivity will soon only be required for ARC, as intended.
What exactly did they say (a link would be helpful).

This is still on the Roon community forum, and Danny (Roon COO) was getting exasperated that he had to keep repeating the statement.

Active connectivity is a requirement for 2.0, regardless of whether you decide to use ARC or not.
You must stay on Roon 1.8 Legacy if you need offline Core access.
 
Sep 25, 2022 at 10:11 PM Post #100,205 of 149,229
No, my request to @artur9 was actually for sources and texts on the approach he himself is taking.
Basically, I follow these rules from BackBlaze more or less.

In particular, he mentions only a 5% cost to do cross platform using these rules (sounds about right to me but that assumes you're doing them all at once).
The benefits in paragraph 5 are nothing to sneeze at.

I prefer go these days, instead of C. go has this great feature of having files with suffixes that only compile on that platform (so foo_windows.go, foo_mac.go, foo_linux.go). That's much better than ifdef, but requires go. That addresses my needs made in Rule #4.
 
Sep 25, 2022 at 10:20 PM Post #100,206 of 149,229
Basically, I follow these rules from BackBlaze more or less.

In particular, he mentions only a 5% cost to do cross platform using these rules (sounds about right to me but that assumes you're doing them all at once).
The benefits in paragraph 5 are nothing to sneeze at.

I prefer go these days, instead of C. go has this great feature of having files with suffixes that only compile on that platform (so foo_windows.go, foo_mac.go, foo_linux.go). That's much better than ifdef, but requires go. That addresses my needs made in Rule #4.
The trick, and the one likely the hardest to implement is #10 - fire those who don't follow these rules.
 
Sep 26, 2022 at 12:27 AM Post #100,207 of 149,229
A very fair reply to all this would be:
"So, if it's so much work to write a 'Roon killer' and if it's so much legal hassle and all that, what do you complain about, then? Why not just use Roon and be happy?"

To which my reply would be:
Because I know that they could do so much better!
Maybe they could if they junked everything from their Sooloos foundations and started with a fresh architecture and code base. In particular, they seem to have committed back then to an extreme OO/write-once-run-everywhere dogma (thus .NET) that would be very expensive to retire. I also suspect that their OO metadata representation is a significant contributor to memory demands and problems in maintaining the on-disk version of the library consistent.
 
Sep 26, 2022 at 1:21 AM Post #100,208 of 149,229
Maybe they could if they junked everything from their Sooloos foundations and started with a fresh architecture and code base. In particular, they seem to have committed back then to an extreme OO/write-once-run-everywhere dogma (thus .NET) that would be very expensive to retire. I also suspect that their OO metadata representation is a significant contributor to memory demands and problems in maintaining the on-disk version of the library consistent.
Judging by the content of this thread, I’d have to guess that a disproportionate percentage of hard core headphone enthusiasts are also professional coders, or at least designers of some sort. If so, what do you listen to while coding / designing?

When I lived in a cubicle and needed to focus. I gravitated towards beat heavy pulse driving music. Now that I have privacy I prefer complete silence when working and only listen to music when I’m not working.

Forgot to add- I’m not a coder. My world is design, but physical realm.
 
Last edited:
Sep 26, 2022 at 3:13 AM Post #100,210 of 149,229
Judging by the content of this thread, I’d have to guess that a disproportionate percentage of hard core headphone enthusiasts are also professional coders, or at least designers of some sort. If so, what do you listen to while coding / designing?

When I lived in a cubicle and needed to focus. I gravitated towards beat heavy pulse driving music. Now that I have privacy I prefer complete silence when working and only listen to music when I’m not working.

Forgot to add- I’m not a coder. My world is design, but physical realm.
I teach, when marking, editing PPTs, Rubrics, or LMS updates, I like classical and slower classic jazz.
 
Sep 26, 2022 at 8:30 AM Post #100,211 of 149,229
Very nice, I will have to listen to number 5 op 47 later, I found it among my newly acquired CD stack along with number 10 as best I recall. A Gungnir will be in the mix. I am using headphones though, a little early to power up the PrimaLuna.
Both my Gungnirs are in headphone systems as well. As the rest of you have been rediscovering physical media, I've been rediscovering my speakers (after years of it being too noisy in the house to not listen with headphones), so I'll say, "It's never too early to power up the PrimaLuna".

(Yes, that's actually a German poem, NOT a Disney short… 🤪)
Hasn't it been both since 1940?
 
Sep 26, 2022 at 8:40 AM Post #100,212 of 149,229
Basically, I follow these rules from BackBlaze more or less.

In particular, he mentions only a 5% cost to do cross platform using these rules (sounds about right to me but that assumes you're doing them all at once).
The benefits in paragraph 5 are nothing to sneeze at.

I prefer go these days, instead of C. go has this great feature of having files with suffixes that only compile on that platform (so foo_windows.go, foo_mac.go, foo_linux.go). That's much better than ifdef, but requires go. That addresses my needs made in Rule #4.
That's a fascinating blog post, thank you for the link.
Funny enough, though, that post pretty much describes the approach I am taking myself. Not because I've read about it somewhere, but it's simply the most intuitive way for me to solve this problem.
Glad to know that I can trust my gut in such things.

Also thanks for the Go recommendation. The part I am the least happy about in my own approach is the constant hassle of having to deal with #ifdefs, and the resulting preprocessor hiccups that can sometimes interrupt your flow for a few seconds, happens especially often with Intellisense.
Unfortunately, Go isn't an option for me.

The trick, and the one likely the hardest to implement is #10 - fire those who don't follow these rules.
Yyyyyyep, 100%. Wouldn't be hard to follow for me, I'm pretty ruthless when it comes to these things, but it evidently seems to be very difficult for all the companies I have ever contracted for.

Maybe they could if they junked everything from their Sooloos foundations and started with a fresh architecture and code base. In particular, they seem to have committed back then to an extreme OO/write-once-run-everywhere dogma (thus .NET) that would be very expensive to retire. I also suspect that their OO metadata representation is a significant contributor to memory demands and problems in maintaining the on-disk version of the library consistent.
Could be. But maybe not.
One of the projects I am currently contracted to work on is a port of a .net application over to Qt. I'm essentially tasked to take one schiitshow and translate it over to another schiitshow. Not my choice, trust me, but it is what it is. Luckily, they don't pay very well, so that adds to my joy of late. 🙄
Purely Windows, though, no cross-platform requirements.
What honestly surprised me is that the Qt port seems to be ending up about ¼ as memory hungry and about 3x as fast as the .net version. No changes in functionality or processing, just a direct port from one horrendously bad framework, C# and GarbageCollection to an equally horrendously bad framework, C++ and manual memory management. (Plus Qt's version of automatic reference counting, which is actually seriously good. Almost rivals that of Swift and Objective-C. Kudos where kudos are due.)

So, as far as I can tell, looking in from the outside, Roon being the resource hog that it is could well be in part based in sub-optimal old data design decisions. But for a library of maybe 500 albums, for example, I would be surprised if that made up considerably more than maybe 10MB of "wasted" memory. The rest is, based on personal experience with .net, most likely just, well, .net being .net doing .net things.

Judging by the content of this thread, I’d have to guess that a disproportionate percentage of hard core headphone enthusiasts are also professional coders, or at least designers of some sort. If so, what do you listen to while coding / designing?

When I lived in a cubicle and needed to focus. I gravitated towards beat heavy pulse driving music. Now that I have privacy I prefer complete silence when working and only listen to music when I’m not working.

Forgot to add- I’m not a coder. My world is design, but physical realm.
Would make sense. Coders tend to sit at their desks, staring at a screen, trying to focus with the least possible amount of distraction on their work. Headphones and music go a long way towards that. They also tend to make a somewhat decent income. So I would say that it is only natural for a chunk of them to gravitate towards some more advanced headphone gear. If you have to wear and use these things all day, you better pick the right tools for the job.

I would say that, at least generally speaking, this applies to coders and (graphics/engineering) designers much more than to probably any other profession out there.

The music I listen to while working massively depends on my mood at any given moment, as well as the task at hand.
For some tasks, I prefer it quiet. For others, I like to create a "tunnel vision" kind of situation so that I can hyper-focus on whatever it is that I need to accomplish for as long as possible without having to take a break. Could be an hour, could be 12. Depends. In those situations, I gravitate towards electronica and specifically synthwave. Happens maybe once or twice a week. For everything else, the "in between" mundane kind of tasks, I like to go with southern rock, dirty blues, some jazz, and a bit of indy rock/pop thrown in for good measure.

For "recreational listening," I'm almost 100% classical. Mainly German/Austrian and Russian late romantics to today.
 
Last edited:
Sep 26, 2022 at 9:05 AM Post #100,214 of 149,229
Close. The Mars candy bar was named after the company which was named after its founder - Forest Mars. Now as to whether Forest was named after the planet is a mystery to me, but I suspect his son Bruno would know more about that. :p
 
Sep 26, 2022 at 9:11 AM Post #100,215 of 149,229
Close. The Mars candy bar was named after the company which was named after its founder - Forest Mars. Now as to whether Forest was named after the planet is a mystery to me, but I suspect his son Bruno would know more about that. :p
It's actually worse than that. Mars, the planet, was named after the Roman god.
That said, the planet existed first, so it wins. 🤪
 

Users who are viewing this thread

Back
Top