My experience is, for businesses who pay attention to open-source licenses, they will avoid GPL libraries like the plague (GPL applications are usually fine, though there's sometimes some skepticism).
But not all businesses pay close attention to open-source licenses.
I have to assume that scale has something to do with it. Huge companies usually take that pretty seriously. Tiny companies... eh, they might not even be aware.
Concur on this about avoidance. From my own experience at a startup years ago, the corporate counsel was pretty much hostile to any GPL libraries being used in the companies product, and was especially hostile to the AGPL, categorically refusing to support use of anything using the latter.
If you just need "switch using keyboard", not necessarily "switch using shell", some KVM switches allow input switching using keypresses. For mine, it's <SROLLLOCK> <SCROLLOCK> <1-4> <ENTER>, though I think that can be customized.
Well, what I actually want to do is switch via my DIY macropad. My keyboard switch goes through that, without relying on any of the main computers. I had a cheap HDMI switch that worked the same way, but it just stopped working reliably after a month.
I sometimes want independent control of the keyboard switch and the monitor switch, so I'm not sure if a KVM is the best option for me.
I dunno, even in C codebases, it's not uncommon to have data structures containing function pointers. Polymorphism isn't inherently bad and trying to achieve it using, say, enums and big switch statements isn't particularly maintainable.
It's unclear whether Valve is playing the long game or simply hedging their bets. My recollection is that their investment in Linux was expressly stated to be a hedge against a future where Microsoft put Windows in a walled garden, like iOS.
On the other hand, I know that a bunch of people are unhappy that the Steam Controller has been discontinued. Secondhand prices are through the roof.
I'd argue this to be a pretty dated take on Valve's strategy, personally. Gabe stated it was a hedge over 10 years ago, in response to the risk of Windows 8 moving to mandatory Microsoft Store:
Obviously none of that came to pass, we are two more Windows releases on and much has changed since. It is serendipitous the tech built is so great for delivering a portable experience - I think Valve's actions and words demonstrate it to be far more committed to the Deck than prior efforts, I don't see this as hedging bets. And why wouldn't they? At this stage they appear to have a hit product on their hands.
In 2022, Microsoft and Valve have strategic partnerships too, which certainly wasn't the case in 2012:
Yes, I should have been clearer. I meant that their Linux investment started out as a hedge, but over time they were able to pivot it to something else.
I'm not sure what the impetus was for the Steam Deck. I could see it as a hedge against anticipated future, dwindling laptop sales. I could also see it as an attempt to expand into the same space that the Switch occupies. After all, with the exodus of Sony from portable gaming, Nintendo's only competition is cell phones.
The impetus is it’s an obvious vehicle to sell more games via Steam? I don’t think it is any more complex than this.
AMD finally delivered a chip that can make the dream of desktop-ish performance in a handheld work. That simply wasn’t all that possible until very recently.
It depends on who is buying the Steam Deck. If it's people who don't already have a PC, then sure, Valve is broadening their market. But if it's people who already have a gaming PC, then it probably won't lead to a lot of additional software sales.
After having a Steam Deck for a bit I really really hope either Valve or some other decent controller company like 8bitdo makes a controller with the same style of setup. The dual haptic trackpads+paddle buttons combined with the customizability is incredible. To me it is easily the biggest leap in controller tech since the analog stick with the N64.
I've never used the original Steam Controller and I still think the dual analog stick setup is better for some games but having the trackpads is good for many others.
The Atari 2600 had a digital joystick. The Atari 5200 was completely analog. If you tear the controller down, there's a complex mechanism that links the stick to two rotational potentiometers. It's similar in outcome to modern analog thumbsticks, but the mechanism is completely different (and is MUCH bigger).
The 5200 joystick didn't self-center, though. The only centering force was from the rubber boot. This ended up being advantageous in a game like missile command, but is widely seen as the Achilles heel of the controller.
I might have overstated that. Looking at eBay "sold" prices, they seem to go for anywhere from 30 USD (controller only, no accessories) to over 100 USD (used, but in box with accessories) or 200 USD (sealed in box). But even then, there's a lot of price variation - there are sealed controllers for as low as 130 USD.
I can't speak about Haskell, but Clojure's lazy sequences also generate a lot of intermediate allocs.
For example, here's Clojure's implementation of `map`[1]. It internally uses `cons` to build a cell[2] and `map` to recursively walk the collection (but all wrapped up in `lazy-seq` to delay evaluation).
Transducers[3] do help with this if you are applying a stack of collection transformations. But, and this is just my opinion as a very occasional Clojure user, transducers are harder for me to grok and so I generally avoid using them. If I was doing performance critical work, I might try to build up a better mental model.
My biggest complaint about the Java streams API is that it makes it hard to write your own stream transformation functions. Or rather, you can, but then calling them is awkward. You generally transform a Stream by calling instance methods - e.g. `myStream.map(::f)`. But since Java doesn't have extension functions, there's no way for you to make a custom function callable in the same way as the built-in functions. I ended up writing a small shim to build a stream pipeline without using member functions. You would use it something like this:
> God forbid you try to change the audio device from speakers to headphones in the middle of a call.
I've been using it for a couple of years, and I have never had this issue. I can switch between my built-in soundcard and my USB headset without any problems. On Windows FWIW.
The EULA is giving you permission to e.g. copy and modify the font with certain restrictions (e.g. include the license text if you distribute it). In that regard, it's not terribly dissimilar in spirit from an open source software license.
It's probably not as impressive as Miniaturwunderland, but if you're in the US, and specifically near northern New Jersey, there's a neat place called Northlandz [1]. It's much older than Miniaturwunderland and I'm sure it doesn't have the level of computer control. But it's huge. Even going as an adult, I was still surprised at how large the display room was. It's been maybe 6 years since I last visited.
There was another, much smaller one that was closer to home - Roadside America [2] - but it sadly closed permanently during the pandemic. I remember going there several times as a child and really enjoying every trip.