With Proton and Steam Play, many Windows games now work on Linux - <AUTHOR> https://www.protondb.com <comment><USER3> I'm rather impressed with Proton.

I was using wine quite obsessively well over a decade ago, wine tricks, fiddling with settings for one game, change them for another. Proton removed all of that for me.

I'm not at the forefront of gaming, though i have a nice card, CPU and a heap of RAM (Perks of the job.

Skyrim is my jam lately, I'm spending an insane amount of time in game at ultra settings. Played some Batman - Arkham Asylum, also a windows game, both run well. I'm happy!

<comment><USER4> Wine was already mostly at that point a couple of years ago. It used to involve a lot of manual fiddling, but in the later days of DX9, the majority of games worked out of the box.

DX11 is where things went wrong again, and mainline Wine has been quite slow to implement DX10+ features. There have been some great projects like DXVK which have made DX11 games playable in Wine, as well as a lot of work going on in different branches and patches of Wine to improve certain functionality. Fortunately Proton brings all of these together, and has all of this configuration dealt with for you.

After a period of stagnation and not being able to play any games released in the last few years, we're back to the point where brand new AAA games can run with Wine/Proton with solid framerates - I was very surprised to see Monster Hunter World running well in Proton within a few days of release.

DRM and anti-cheat remains the biggest blocker though. Some Denuvo games run, but many don't. Anything using BattlEye or Easy Anti-Cheat won't work, or if you're lucky, the anti-cheat might let you in, but then ban you for a false positive. I hope these can be solved at some point, but the nature of Wine works and how anti-cheat identifies tampering means they'll probably never play nice together.

<comment><USER5> I heard reports of some Overwatch players getting banned for using wine/proton. Just a heads up if anyone tries to run Blizzard/Activision games with these tools.

<comment><USER6> No, it was just a mistake. Blizzard said in their own official forums that Linux (or Mac) users will not be banned for using Wine or Proton.

[https://us.forums.blizzard.com/en/overwatch/t/can-we-get- ban...](https://us.forums.blizzard.com/en/overwatch/t/can-we-get-banned-for- playing-on-linux/70929/4)

[https://old.reddit.com/r/linux_gaming/comments/9g111m/blizza...](https://old.reddit.com/r/linux_gaming/comments/9g111m/blizzard_removes_bans_of_linux_overwatch_players/)

[https://www.phoronix.com/scan.php?page=news_item&px=Blizzard...](https://www.phoronix.com/scan.php?page=news_item&px=Blizzard- Banning-DXVK-Wine)

> UPDATE - 14 Sep 08:03: Blizzard is investigating and they will be looking to > overturn the bans if this is indeed the case. There appears to be at least > five reports of bans so far and does indeed seem that the most likely > explanation is a false-positive from Blizzard's anti-cheat technology having > issue with DXVK.

<comment><USER7> It's interesting because an emulation layer like that being present definitely would make cheating easier. I'd imagine a few clever modifications to DXVK itself would be all that's necessary to implement a wallhack or similar.

<comment><USER8> I am guessing that they look for cheating based on actions in addition to scanning the memory looking for known cheats. Aimbots are pretty recognizable to experienced players, and no doubt some machine learning is going on to look for those patterns. This lets them stay ahead of the curve on exploits... if it looks like an aimbot, it doesn't matter that it's some new binary they haven't yet heard of.

<comment><USER9> For some reason it never occurred to me that they'd use ML for detecting suspicious behaviour, until I read your comment.

I've never considered this but it makes perfect sense, thanks for that!

<comment><USER10> [https://www.youtube.com/watch?v=ObhK8lUfIlc](https://www.youtube.com/watch?v=ObhK8lUfIlc)

Watch this! It's about using ML to catch cheaters.

I searched youtube to show you this video; I used the search term "cs go machine learning". The first video was actually this: [https://www.youtube.com/watch?v=w88RIcTuGZQ](https://www.youtube.com/watch?v=w88RIcTuGZQ)

Looks like it's using ML to make better aimbots--lol!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I enabled it on my Fedora laptop and tried a handful of games. About half a dozen of them bombed out immediately. So, very glad to see improvement, but we're still a ways off from being able to chuck my last Windows 7 machine.

I find myself more often just biting the bullet and re-buying some old classics when they get "Enhanced" editions (ala Baldur's Gate, Planescape Torment, etc)--even though I still have the original CD's kicking around--just so I get native Linux support.

<comment><USER12> With very old games you might have problems on windows too...

<comment><USER13> I still occasionally play Malkari, a 1999 4X space game written for DirectX 5. It doesn't work on anything but Win9x, so I have a VM for it. On Win2K/XP it will just draw a half purple screen, even in compatibility mode.

Even then... Windows 98 doesn't work under VirtualBox, unless you run the VM with the Legacy paravirtualisation interface, and with the ICH AC97 audio card, which Windows 98 doesn't have drivers for ... nor does it have drivers for VirtualBox' VGA adapter.

Those problems are easily worked around, of course, but one day, either VirtualBox will drop its Legacy emulation code, or SciTech Display Doctor will stop working with VirtualBox' VGA adapter, or the sound won't work anymore, ...

I'm one glitch away from being unable to play a game I really like, and bought as a teenager...

<comment><USER14> > _Those problems are easily worked around, of course_

Ehm... I think you learned to work around these issues so gradually that you don't realize how complicated the mess that you've solved is

<comment><USER13> It's not particularly complicated, just extremely fragile.

Only the Legacy VirtualBox paravirtualisation interface provides all of the BIOS interrupts and glue code that the Windows 98 installer requires. The Sound Blaster 16 audio card will work out of the box in Windows 98, but VirtualBox itself has trouble copying the virtual audio out onto the host, playing only 3 seconds of the audio at a time and skipping a little; eventually it crashes. So, use the ICH AC97 audio card instead, but then you need to find drivers for it.

As for the VGA adapter, that used to work out of the box (once you installed the VirtualBox Guest Additions), but the additions' support for Windows 98 was dropped a long time ago, so that's no longer an option either.

Put simply, you need the Legacy interface to run the installer, SciTech Display Doctor for the VGA card (which is now free), and Realtek AC97 Win9x audio drivers (which you can find very easily).

Then it all just works... for now.

</comment></comment></comment></comment></comment><comment><USER15> We bought a Windows computer so the kids could play some old classics. Not a single game worked on Windows 10, not even in compatibility mode. But most of them worked in Linux/Wine ...

<comment><USER16> DOSBox? ScummVM? Depending one what age you're talking, those games should work fine on either OS really.

<comment><USER17> Yes, but... that's actually the product that Steam (and GOG) is selling you: The ability to just click 'launch' on a game and it knows what collection of DOSBox, Scumm, Wine, Frotz, WinUAE, _whatever_ is needed to just launch the game.

Trying to get a Windows game running under Linux is an adventure in itself. This opens up the door for people who don't like those kinds of adventure games.

</comment></comment></comment><comment><USER18> If the user has played more on Proton than on Windows in the first two weeks, it will count as a linux sale, not a Windows sale.

<comment><USER19> Do you have a source for this?

<comment><USER20> >Update #1: I spoke to Valve earlier, about how buying Windows games to play with this system counts, they said this:

>Hey Liam, the normal algorithm is in effect, so if at the end of the two weeks you have more playtime on Linux, it'll be a Linux sale. Proton counts as Linux.

[https://www.gamingonlinux.com/articles/valve-officially- conf...](https://www.gamingonlinux.com/articles/valve-officially-confirm-a- new-version-of-steam-play-which-includes-a-modified-version-of-wine.12400)

</comment></comment></comment><comment><USER21> Admittedly rather reductionist, but I'd love it if there was some single number representing how close to Windows performance each title gets. The main issue I have is that I'm not about to bother with any titles when I consistently find that titles "work" but don't really work well enough.

<comment><USER22> it's at the bottom

Current Game Rating Distribution Tier Rated Highest Report Highest Report (But Pending) Platinum 286 2356 1467 Gold 372 399 232 Silver 319 472 367 Bronze 178 195 158 Borked 245 1162 960

each game has this rating in winedb

<comment><USER23>
      ╔══════════╦═══════╦════════════════╦══════════════════════════════╗
      ║   Tier   ║ Rated ║ Highest Report ║ Highest Report (But Pending) ║
      ╠══════════╬═══════╬════════════════╬══════════════════════════════╣
      ║ Platinum ║   286 ║           2356 ║                         1467 ║
      ║ Gold     ║   372 ║            399 ║                          232 ║
      ║ Silver   ║   319 ║            472 ║                          367 ║
      ║ Bronze   ║   178 ║            195 ║                          158 ║
      ║ Borked   ║   245 ║           1162 ║                          960 ║
      ╚══════════╩═══════╩════════════════╩══════════════════════════════╝

<comment><USER24> Nice, it's been quite a while since I've seen such tidy use of ASCII in a forum message.

<comment><USER25> Nit-picky, but these are Unicode box-drawing characters which are not part of ASCII: [https://en.wikipedia.org/wiki/Box- drawing_character](https://en.wikipedia.org/wiki/Box-drawing_character)

<comment><USER26> I think they actually fall under extended ASCII:

[https://www.webopedia.com/TERM/E/extended_ASCII.html](https://www.webopedia.com/TERM/E/extended_ASCII.html)

<comment><USER27> It's… complicated.

> _The use of the term [extended ASCII] is sometimes criticized, because it > can be mistakenly interpreted to mean that the ASCII standard has been > updated to include more than 128 characters or that the term unambiguously > identifies a single encoding, neither of which is the case._

— Wikipedia[1]

I would agree w/ Wikipedia here: the term is ambiguous at best, and misleading at worst.

Hacker News delivers its pages in UTF-8, so saying they're part of the box drawing characters in Unicode is not incorrect. Nor is the statement that they're not part of ASCII: they're not.

That said, the box drawing characters exist in Unicode, I would guess, largely because the IBM PC included those characters in the numerous character sets it used. Particularly, in North America, it used the character set known today as "Code page 437"[2]; other regions had other character sets w/ similar names, and they usually had at least some (though not always all) of the box drawing characters. IDK if the PC itself included them because some predecessor had them, but it wouldn't particularly surprise me if that was the case; the Atari and the Commodore had similar characters, though not exactly the same set. And again, they might have had them b/c of a predecessor; for all I know it's turtles all the way back to the first person who drew a table on a clay tablet :-)

[1]: [https://en.wikipedia.org/wiki/Extended_ASCII](https://en.wikipedia.org/wiki/Extended_ASCII) [2]: [https://en.wikipedia.org/wiki/Code_page_437](https://en.wikipedia.org/wiki/Code_page_437)

<comment><USER28> In the BBS world we added some color and called it ANSI Art.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER29> Personal anecdote: Since SteamPlay dropped I have not rebooted into Windows once. I've been pretty impressed at its ability to handle the games in my catalog. That said I'm pretty sure I've just been lucky thus far.

The only problem I have is when a game has a broken Linux port there doesn't appear to be a way to tell Steam to use the Windows version instead. An example of this is Eador, which has horrible graphics problems and is effectively unplayable on Linux due to it being a very slipshod port. I'm willing to bet that using SteamPlay on the Windows version would work much better if Valve would give me the option.

<comment><USER30> they do give you the option to use Steam Play over native Linux client. Under the steam play menu in the preferences, select 'enable for all titles' along with 'use this tool instead of game-specific selections'.

<comment><USER29> Doesn't seem to work for Eador. Even with both of those options checked it installs the Linux version and doesn't seem to have an option for anything else. I was hoping there would be a dropdown by the install button asking which version I wanted, but it was just a regular install button and it gave me the broken Linux version.

</comment></comment></comment><comment><USER31> If steam spends some time working with the larger "anti-cheat" vendors, I think they could really bump up the list. Many of the 'borked' games use anti- cheat, like battle-eye.

<comment><USER32> I'd much rather those games just become unplayable.

I've had so much trouble with anti-cheat systems that I will now refuse to buy or play any game that uses easyanticheat or battleye. I don't care how much it costs, how many of my friends are playing it, I'm not giving another penny to any company that uses those programs.

I get that it's not an easy problem to solve, but i'm so goddamn tired of having to shut down services dedicated to controlling fan speeds in my machine, having to disable network adapters, uninstall vpn software (not just turn it off, uninstall it), and wasting hours trying to figure out why it would crash on startup only to find that it was finding a pcap.dll in a random folder in my downloads from when I was messing with some traffic sniffing stuff on this system like a year before that, and it decided to crash without any warning or error...

Cheaters suck in games, and they can ruin it for many others, but there has to be another way other than forcing your paying users to jump through this many hoops. And if there isn't, then i'm happy to be doomed to playing against/with hackers and cheaters rather than not being able to play at all.

And I know it's kind of co opting the purpose of Proton, but if they refused to accommodate these anti-cheat systems, then maybe either the game developer or the anti-cheat vendor themselves will see some of the potential paying customers they are excluding and will significantly retool their systems to work.

<comment><USER33> There is another way. Statistical analysis on game performance. No one is 3 standard deviations above the mean in terms of their skill. So ban anyone who hits that. Cutting that off leaves cheaters that are cheating just to be as good as pretty good players, but it keeps them defeatable.

<comment><USER34> > There is another way. Statistical analysis on game performance. No one is 3 > standard deviations above the mean in terms of their skill.

Assuming normal distribution, 0.1% should be; with top games reaching 1+ million active players, that'd be on the order of 1,000+ players.

And if you start banning people for being too good with no other evidence of cheating, you'll drive of the people who would likely be your most avid non- cheating players.

<comment><USER35> And I'm not sure the assumption of a normal distribution is even correct. Players will naturally get better at a game the more they play it. Most measures of skill available to a game will end up picking this up more strongly than anything else. The end result would be automatically banning anyone who has been playing the game for too long -- this would be _terrible_ for retention...

</comment></comment></comment></comment></comment><comment><USER36> Two days ago, I read an article on why kids should not interact with screens too much in their early life and I reflected on how that affected me.

I also found that I have no fun in playing games lately. It feels like a chore, a heroin-like distraction, an addiction basically.

So yesterday I decided to ditch my PC in favor of my Linux-only GPU-lacking work notebook.

And now this.

Me 0:1 Irony

<comment><USER37> I feel the same way but I can't stop. When I do other things I get bored and find myself thinking about video games. It's pretty frustrating. I feel pretty shitty about it.

<comment><USER36> Same. I just kind of reached the climax of boredom in gaming. To be fair, I mainly played CS:GO, LoL, and WoW. Basically games where I could also watch YouTube videos or do other stuff during downtimes in-game (such as death, queueing, wipes)

I am quite safe with still having a gmaing console, since they are much more immersive in a sense that distractions will actually hinder the enjoyment. If I can only either do something productive or play a game, I usually try to be productive.

What's your poison?

</comment></comment></comment><comment><USER38> I'm not using Proton, but using regular Wine+dxvk (for DX11 games).

dxvk[1] is an amazing project (it's translating D3D11 → Vulkan). With Vulkan finally landing VK_EXT_transform_feedback[2] and Wine and dxvk using it (Mesa has it in master for radv, and there are patches for anv; Nvidia blob has it in beta), games like The Witcher 3 can be played on Linux perfectly, without graphics distortions.

1\. [https://github.com/doitsujin/dxvk](https://github.com/doitsujin/dxvk)

2\. [http://jason-blog.jlekstrand.net/2018/10/transform- feedback-...](http://jason-blog.jlekstrand.net/2018/10/transform-feedback-is- terrible-so-why.html)

</comment><comment><USER39> A note for people who want to go faster than Steam/Proton certification - <USER2> Steam settings you can turn on Proton for _all_ Windows games, not just the ones that are certified by Valve. So far I haven't run into any problems running non-certified Windows games under Proton.

</comment><comment><USER40> In my quick test it seems it depends enormously on the quality of Linux support for your graphics card. If you have a graphics card that DXVK works for then you are in business. Otherwise, not so much.

<comment><AUTHOR> Right. It's important to have up to date drivers. ProtonDB receives many reports with outdated ones (those are colored in red and not counted toward the aggregate rating)

[https://github.com/ValveSoftware/Proton/wiki/Requirements](https://github.com/ValveSoftware/Proton/wiki/Requirements)

</comment></comment><comment><USER41> I've been out of the WINE scene for a long time, is Steam submitting patches to the upstream project?

<comment><USER4> Yes, for the most part. All of their work on Proton (their fork of Wine) is open source, they're working with Codeweavers (the largest contributors to Wine) closely, and contributing as much as they can back to upstream Wine.

Part of what makes SteamPlay work so well is actually outside of Wine though - a lone developer started a project called DXVK a year or so ago, which is a separate translation layer for converting DX11 to Vulkan, and runs alongside Wine. Valve hired this developer and sponsored a few similar projects, and integrated them into SteamPlay.

It also seems like Wine is slow and quite opinionated on merging in changes. For a while now, most people who used Wine for gaming would use forks and patches to improve performance. Some of it got merged into upstream Wine eventually, some things get rejected as it works differently to the usual Wine way of doing things. So Steam has used some of these patches and their own work for Proton, but some of it may not be suitable to be merged into mainline Wine.

</comment></comment><comment><USER42> Is anyone running this setup? The last time I used WINE was probably 12 or so years ago and I always got the impression it was a slow "it will do for now" experience

Has it come on leaps and bounds since then?

<comment><USER43> Why not just dual boot to Windows? It's going to be a better experience.

<comment><USER44> Hasn't the 2 decades old goal been to be able to run Linux without the need for owning Windows? Windows is still 89% of the desktop market. A free alternative is still a worthy goal.

<comment><USER43> I wouldn't choose Windows Home for Ruby on Rails development for the same reason that I wouldn't choose CentOS for gaming.

</comment></comment></comment></comment><comment><USER45> This is actually mind blowing. Because in the last six months (I think) there are more developments in this front compared to last six years. Sure, there are little warts and niggles as of now but with this development speed I think we'll have a proper linux systems which can play non-linux games with negligible performance loss.

In addition to proton and steam play one has to add Lutris as well. It makes the emulation of games in wine really easy.

</comment><comment><USER46> If you're having trouble reading this on mobile, the Chrome Simplified Reading View will help.

Visit `chrome://flags` and set Reader Mode Triggering to Always. The prompt is a minor inconvenience but I use it so much.

</comment><comment><USER47> Something interesting to me is how many people are using either Debian family or Arch family of distros.

Debian, Ubuntu, and Mint are over half, and Arch & gang are about a 1/4

<comment><AUTHOR> Some context may be helpful, but the short of it is that I wouldn't look too far into those numbers.

1\. Officially, Proton is only supported on Ubuntu. It doesn't stop you from trying though and many Arch-based OS reports are just as successful. 2\. Reports people submit includes pasting Steam system info, which for some Arch installations reports as 'Linux 4.x' unless they install additional an additional library.

If you're feeling generous, count the 'Unknown' category as Arch-based.

</comment></comment><comment><USER48> I've recently converted my primary operating system to linux and--although Proton is very good--I still find myself unable to unlatch from Windows. My solution was to install Windows 7 on a separate hard drive for those games that are still unplayable. Among those games are Final Fantasy X/X-2 Remastered and The Lord of the Rings: Battle for Middle Earth. Although I'd like to kick Windows to the curb for good, it's hard to believe that some legacy titles (like BfME) with nontrivial minimum specs will ever run on linux.

My other big concern with SteamPlay in particular is save game compatibility. It depends on the game, but a lot of the time your save games just won't be compatible across operating systems, which is quite a difficult problem to solve.

<comment> loa-in-backup I wonder what ever would make savegames incompatible between systems. Endianness? That should be handled by wine. Different path separator? I would think it's up to wine as well. So... unreported bugs in wine, or is there something fundamentally different about game state?

<comment><USER48> I'm guessing most saves--besides some really old games--are probably fine on a fundamental level. But even if a save technically works, the effort it takes to find that save in your old windows filesystem, then place it in the new location in your linux filesystem is actual quite substantial, especially when you imagine doing that for an entire catalog of games that you've played over the years. And if you're relying on steam cloud saves to keep track of it then you can expect to lose the saves for many of your games when changing OS. If you're looking to retain saves, its far from a simple migration. Which is another reason why I have trouble making the switch entirely.

<comment><USER49> That reminds me: a few years ago I got bored of playing Skyrim on my Xbox 360 and I wanted to play with mods on the PC. I didn't want to build a new character, but turns out that there are tools to extract Skyrim save games from the Xbox and are perfectly compatible with the PC version. In fact, not having a Windows installation at home I managed to play them with Skyrim on wine under linux. Everything worked pretty much flawlessly, mods included.

</comment></comment></comment></comment><comment><USER50> As soon as cs:go worked on Linux, I uninstalled windows. I never looked back.

</comment><comment><USER51> I wonder if we can get Steve Carell to do a "Goodbye Windows" song.

Been dual booting for many years now only for steam.

</comment><comment><USER52> I've been using GPU passthrough for Windows gaming on and off for a while now.

I think it's fundamentally a better solution. edit: (for desktops).

Why is it better than dual booting? Well, it's faster, and you can use whatever backing store you like (e.g. ZFS volumes for snapshots, LUKS encryption, ...), run services in the background, etc.

Why is it better than WINE? Far more compatible. Setting it up can be a hassle, but once you get it working it's (as far as I can tell) identical to a native boot. Better sandboxing (VM's aren't perfect and GPU passthrough likely introduces more holes, but that's better than running proprietary code on your main system).

That said, it's a power user thing and probably always will be. But then, isn't that the PC gaming market anyway?

<comment><USER53> > _Why is it better than dual booting? Well, it 's faster, and you can use > whatever backing store you like (e.g. ZFS volumes for snapshots, LUKS > encryption, ...), run services in the background, etc._

Any way to avoid dual-booting is also good because if you do your work on Linux, you don't lose state. After a day of work, I sometimes want to play games, and I like it when I don't have to shut down my editor and the image of the program I am working on. In fact, having to reboot is a quite effective deterrent for me.

<comment><USER23> Hibernation?

<comment><USER52> Not really viable if you want services running in the background.

Passthrough allows me to have one beefy machine that does everything. It's just another VM.

That said, I game very rarely anyway, but sometimes you just want to blow things up, y'know?

</comment></comment></comment></comment><comment><USER54> Sweet.. haven't checked the list in a while.

<comment><USER55> I see Skyrim, right at the top. And New Vegas. Wow. Any chance Valve could offer this support for Mac as well?

<comment><USER56> As soon as someone makes them a DXMT to use instead of DXVK, I suppose. Isn't there some Rust project working on that..?

<comment><USER57> There's a VKMT. So they could double up and go DXVK -> VKMT.

</comment></comment></comment></comment><comment><USER58> Microsoft can sue them in the same way Oracle sued Google, and win, right? Because you can't reimplement the Windows APIs without the reimplementation containing 'derivative work', I think.

<comment><USER18> Microsoft did the same with Linux

[https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux)

<comment><USER58> Will the court consider it? I understand that suing Valve would be hypocritical for Microsoft, but, I think, legally speaking it's a separate issue. Will the Linux Foundation file a retaliatory counter suit against Microsoft because of its attack on Valve? I doubt it.

<comment><USER38> After buying Github, it will be a pretty shortsighted move for MS to do it. Everyone remembers their position on API copyrightability in Oracle vs Google case. It's the reason many projects left Github after they bought it. If MS will attack projects like Wine based on that junk, a lot more will ditch Github for good.

<comment><USER58> The issue here is that games and commercial productivity software are the two main reasons people(power users) still use Windows. If Proton/wine begin to seriously threaten the market share of Windows (say loss of 5-10%), they'll have to do it, I think.

<comment><USER38> They'll lose gaming lock-in, that's already inevitable. Their only remaining leverage now is Xbox, and even there translation layers can undermine their API lock-in grip.

However attacking FOSS projects using such copyright trolling will backfire and very strongly. In doing that, MS will admit their hypocrisy and all this "MS has changed" will be proven completely wrong.

I'm not saying it's not possible for them to do such attack. But it will basically completely ruin the image they are trying to build now.

</comment></comment></comment></comment></comment></comment><comment><USER59> Just noticed Deus Ex: Human Revolution on that list. I'm pretty sure there's a native linux port for that one already out, I was playing it about a year ago.

(Unless that was proton and I didn't know it?)

<comment><USER60> There's a port for deus ex: mankind divided. HR has not been ported AFAIK.

</comment></comment><comment><USER61> Hmm title is confusing. Maybe changing to the original post title will be better?

That being said, I wish I can run CAD like fusion 360 on Linux. Anyone know of any way to make this happen?

<comment><USER62> I use FreeCAD. It is sometimes annoying, but much better than any alternative I've tried.

For more programmatic CAD, OpenSCAD is also good.

<comment><USER61> I use FreeCAD and OpenSCAD (especially "automated" file generation) and like what they stand for but unfortunately neither really compares to a standard CAD program. Maybe I'm too used to the big three CAD software.

</comment></comment></comment><comment><USER63> Can they make this work for the Adobe Creative Suite too?

<comment><USER6> Maybe this could work for you? [https://github.com/corbindavenport/creative- cloud-linux](https://github.com/corbindavenport/creative-cloud-linux)

I suggest making your own script instead of using PoL (abandoned, check Phoenicis).

</comment></comment><comment><USER64> I've been happy just dual-booting Windows and Linux. Windows 10 is free as long as you don't care about personalizing it, which I definitely don't, since it's just for games. I look forward to having a Linux-only machine but I'm not in any hurry.

<comment><USER65> It's not about money though, at least for me. I can afford Win 10 just fine, and would also be paying for archlinux and/or Debian if they actually cost anything. But here I am using a free-as-in-beer OS because of other factors. If all games could run in my OS things would just be more practical, regardless of their cost.

</comment></comment><comment><USER66> How does this compare with PlayOnLinux? It seems to be a very similar concept: coordinate Wine+other tools, package configurations and game-specific tweaks in a script that can be one-click ran by users, aggregate user reports on compatibility. What's new?

<comment><USER6> [https://steamcommunity.com/games/221410/announcements/detail...](https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561)

</comment></comment><comment><USER67> Maybe I'm doing something wrong, but I still can't play Windows-only HL2 mods.

<comment><USER67> Oh, I had missed a step in the configuration. I can now announce that Windows- only HL2 mods play beautifully. _Minerva_ rocks.

</comment></comment><comment><USER68> > The Linux desktop experience has improved by leaps and bounds in the last > year or two.

Does anyone know which improvements they are referring to?

<comment><USER69> Not sure what he means tbh. The Linux desktop has been improving steadily for years. It's in a good spot now, Proton makes it even more viable, but it's still not perfect. I'd say the biggest barrier is if you require Windows-only programs that don't work with Wine (of which there are a lot).

</comment></comment><comment><USER70> It's at the point now where the intro logos and stuff for games take longer than a reboot, so now I just reboot into windows.

</comment><comment><USER71> Too bad Linux still has no proper mouse support... I would be glad if even the games that are Linux native would be playable...

</comment><comment><USER72> Is this an advert for Proton? Why would you not just use windows 10, the platform that games were made to work on.

</comment><comment><USER73> PC gaming is a struggle for me as of now, I have an older rig which I would love to update but simply cant justify the cost. It is pretty frustrating when my friends xbox can run 4k games but the only GPU that is comparable is north of 500$.

The ML and crypto hysteria as well as AMD not willing to compete is not healthy for the long term PC gaming industry. It is certainly keeping me out of it.

<comment><USER74> Most PC gamers don't play in 4K and 30 frames per second, much less 60 fps. That's graphically taxing for many contemporary games, especially if other graphical quality is turned up.

The consoles also typically don't run at full resolution. In the 1080p era, I recall many games topping out at 900p. It was a great source of pc gamer smugness due to the fact most of them could easily run 1080p and 45+ fps. I suspect modern console 4K is the same.

Since the generally accepted fps for consoles is 30, and that's pretty low, it means developers can either compromise on resolution or other things like how many entities can be on screen at once, or how large open areas can be. I suspect catering to console audiences is why a lot of the last ten years some games feel either empty or constrained in scope.

<comment><USER75> > The consoles also typically don't run at full resolution. In the 1080p era, > I recall many games topping out at 900p. It was a great source of pc gamer > smugness due to the fact most of them could easily run 1080p and 45+ fps. I > suspect modern console 4K is the same.

Consoles tend to do dynamic resolution - they'll drive the display at 4K (together with UI), but the actual rendering resolution will drop and adapt to the load. It actually looks pretty good - the UI and text keeps being sharp while you generally don't notice the resolution drop that much. Unfortunately most games lose this capability on PC, so you're stuck with blurry looking text if you have a good monitor or TV :(

The other trick they do is checkerboard rendering - the console only renders approximately half the scene each frame. The partially rendered frame is then combined with the previous one with added filtering. The result is not unlike the interlaced CRT TV rendering of 80s era consoles/micros - just with better filtering. Again, this capability tends to disappear on PC versions of those games.

Lack of those two things means that in a lot of cases games on PC look/run worse on equivalent hardware than they do on the console :/

<comment><USER76> Some newer first-party Microsoft games have dynamic resolution scaling in the PC versions. I thought Battlefield One / 5 had it, but apparently not.

It works well in Forza Horizon 4. And yeah, I wouldn't mind the option for checkerboard rendering on PC. I understand purists want nothing to do with it, but hey, too many options is what PC is all about.

</comment></comment></comment></comment><comment><USER77> So does anyone have a good recommendation for a gaming laptop that is good with linux?

<comment><USER70> Consider getting a laptop with TB3 and using an eGPU. I don't know how eGPUs work with linux though.

</comment></comment><comment><USER78> Any Mac love on this?

<comment><USER6> [https://steamcommunity.com/games/221410/announcements/detail...](https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561)

Q: Any plans for macOS support?

While Wine and Proton work on macOS, there are no plans to support the new Steam Play functionality on macOS at the moment.

\</comment></comment><comment></comment><comment></comment><comment>--

[https://appleinsider.com/articles/18/06/28/why-macos- mojave-...](https://appleinsider.com/articles/18/06/28/why-macos-mojave- requires-metal----and-deprecates-opengl)

[https://github.com/KhronosGroup/MoltenVK](https://github.com/KhronosGroup/MoltenVK)

</comment><comment><USER79> So...WINE with 'fancy' UI design?

</comment><comment><USER80> Isn't this just WineHQ but for games?

</comment><comment><USER81> Can you install and run this without Steam?

I already use wine-d3d9 which is very good for WoW but as its name says it doesn't run DX11/12 games.

<comment><USER38> You don't need Proton without Steam (since it has various Steam specific stuff), but yes, you can.

See here for example: [https://www.gog.com/forum/general/adamhms_linux_wine_wrapper...](https://www.gog.com/forum/general/adamhms_linux_wine_wrappers_news_faq_discussion)

However, you can simply use upstream Wine with add-ons like dxvk[1] (which is used in Proton).

Using esync[2] (also utilized by Proton) requires special branch of Wine, since it's not going to be upstreamed and it's not as simple as installing dll overrides.

1\. [https://github.com/doitsujin/dxvk](https://github.com/doitsujin/dxvk)

2\. [https://github.com/zfigura/wine/blob/esync- rebased/README.es...](https://github.com/zfigura/wine/blob/esync- rebased/README.esync)

</comment></comment><comment><USER82> So it's just wine under the hood, so "working" is not exactly true?

<comment><USER83> Wine is a big part of it, but there's a bit more to it.

[https://github.com/ValveSoftware/Proton](https://github.com/ValveSoftware/Proton)

<comment><USER84> That is, um, incredibly not clear, _based on the link you shared._

'Proton is a tool for use with the Steam client which allows games which are exclusive to Windows to run on the Linux operating system. It uses Wine to facilitate this.'

Even reading down the article to look for more details provides information about building the product, but as far as I can see no other significant details about it's underlying technology.

There may be other articles or posts that go over this more, but your link provided no useful or helpful information that I could see in two brief read- overs.

<comment><USER85> The Github Readme says to consult the blog post for more info: [https://steamcommunity.com/games/221410/announcements/detail...](https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561)

For your question, look under "Q: What is Proton exactly? How does it differ from normal Wine? Who worked on it?"

<comment><USER84> Okay, so, in the future, it may be nice to post a link to the blog post, instead of trying to back up your point with something that requires digging to get to.

I appreciate the attempt to clarify, but it's nice to make sure the clarification actually makes things make more sense.

<comment><USER86> Yikes, that is some ridiculous condescension I think we can do without in the future as well, if the wishlist is still open.

Also, if you're factually wrong about something, nobody owes you research even though it would be nice. You're still wrong even if you can't be bothered to click a few links, so it's a weird complaint. They didn't just have a "point"; they were right.

Finally, lighten up. It's just gaming-related chit chat. Nobody here is paid to use their free time to write comments on HN or to give you better links.

</comment></comment></comment></comment></comment></comment><comment><USER84> Kinda disappointed this seems to be yet another WINE wrapper with some extra stuff piled on, though I'm not sure what else I could've expected it to be.

I long ago lost interest in PC gaming, both from the lack of cross-platform compatibility, and due to the fact that a great graphics card alone easily costs as much as a console these days.

I've never played a WINE-wrapped video game or application that did not feel like a half-baked version of it's native application. It's usually things like fonts and strange aliasing that are a complete and dead giveaway. Small aesthetic issues like that completely ruin an otherwise immersive experience for me.

I'm glad WINE exists, but I honestly sort of wish they'd just stick to supporting applications more, and pretty much just forget the gaming side. It's never going to get to an equivalent level, because Windows' gaming technology keeps moving forward.

Two people start running a race. One of them starts when the gun fires. The other one sits and waits, decides it wants to follow the first runner every step of the way, and starts several minutes (or years, in this metaphor) behind the first.

Even if this second runner (WINE) could run as fast as the first (Windows), it would never catch up. And that's assuming it could run as fast as a multi- billion-dollar company.

WINE can, simply, _never_ reach a point of compatibility that even most major console emulators have. Because, unlike consoles, Windows keeps on moving.

Let's face it. None of us are running *nix or MacOS for the sake of gaming. If you want to run a desktop OS for gaming, there is one. Yes, it's not free, but neither are games. Windows is, at this point, just part of the initial cost of PC gaming, just like a couple extra controllers might be for a console.

<comment><USER87> AFAIK the main value-add for Proton is DXVK, which gives DirectX games incredibly low-overhead access to the linux Vulkan driver. Dramatically improved performance is more than just "another WINE wrapper with some extra stuff piled on".

And Proton's not the end-game: it's a solution to the chicken-and-egg problem. Most people (like yourself) don't see Linux as a viable gaming platform largely because of the lack of games available, and therefore developers don't invest in Linux support, and thus there continue to be few games available for the platform. The promise of Proton is to make Linux good-enough for some gamers, thus increasing the Linux player-base, making Linux a viable target for 1st party titles.

> It's never going to get to an equivalent level, because Windows' gaming > technology keeps moving forward.

That's not really accurate, and hasn't been for some time. For years OpenGL has been on-par with DX in terms of what it can do for some time and the story has only gotten better with Vulkan. Just look at Doom 2016: it was a high- profile AAA game built entirely on an open-source graphics stack (OpenGL and Vulkan) and it was one of the best-looking, best-optimized titles of the year. The main "edge" Microsoft has in terms of being able to bring the best games to its platform has nothing to do with a technical advantage: it has everything to do with industry momentum and incentivizing studios and industry professionals to use their proprietary technologies.

<comment><USER84> Thank you for being explicit about what exactly they've done to significantly improve this.

I had not understood that there was access to Vulkan, that does obviously significantly affect performance.

There was another poster here who attempted to elaborate and ended up posting something that absolutely did not.

Vulkan is good, but it doesn't affect _compatibility_ , just performance. I just don't care about the performance if compatibility is not even at least close to 90%. I need to run _all_ of my applications and games, not a select few of them that run great.

<comment><USER88> > I just don't care about the performance if compatibility is not even at > least close to 90%. I need to run _all_ of my applications and games, not a > select few of them that run great.

On Linux, I can now successfully (i.e. with decent performance and no critical bugs) run about two thirds of the "active" (played at least once in the past two years) games in my library. I originally had the same opinion as you—that this doesn't matter if I still have to dual-boot Windows—but what I've found in practice is that I haven't booted into Windows in months, and have simply stopped playing games that don't run on Linux. YMMV, but I would bet that a lot of Linux users would be perfectly happy with even half their games running well on Linux, so I don't think compatibility is all-or-nothing like you're implying.</comment></comment></comment></comment>


Airbnb Is Moving Faster at Scale with GraphQL and Apollo - <AUTHOR> https://medium.com/airbnb-engineering/how-airbnb-is-moving-10x-faster-at-scale-with-graphql-and-apollo-aa4ec92d69e2 <comment><USER2> The state of the industry sometimes deeply sadden me.

Creating a stack that complex just to render Static Content... Seriously ?

I'm fairly confident that only the author of this project can do something with the codebase.

It must be an absolute mess between Zeplin , Storybook , Apollo , GraphQL , Next, Yeoman etc...

Just why ?

Can't Airbnb invest in one good CMS and tooling solution ? Don't they have a CTO that define the company tech governance and tech stack ?

Isn't building landing page for "Luxury Destination" one of their core businesses ?

Do each Airbnb engineer create their own stack for a tiny part of the website ?

It just buggers me to see something like this and remind me of their 'React Native Fiasco' where they decided to use React Native but their mobile engineers didn't like JS , so the engineers of each platform just wrote the app using binding to use Java or Objective-C.

Sometimes I really tell myself that working for a FAANGS must be awesome, but then this type of content pops up and it just remind me I should either stay at my current job or create my own business to avoid all this.

<comment><USER3> I used to work at Airbnb.

Airbnb does not, in fact, have a CTO who dictates the company tech governance and/or stack. They prefer to run things in a federated manner, with individual teams making the decisions that they feel are best for them. While they're encouraged/required to draw up design docs and have them reviewed by an architecture review group, the group's recommendations are non-binding.

This model has advantages and disadvantages. On the upside, it creates an environment where people can take risks and do things that haven't been done inside of the company before. On the other hand, it means people sometimes go out on a limb and push the company into supporting something that turns out not to be sustainable in the long term.

As a matter of personal preference, I like to have a set toolchain that a company is built around. But it would be unwise to suggest that Airbnb's strategy hasn't worked out pretty well for them overall.

<comment><USER4> FWIW, I regularly use Airbnb for my travelling lodging needs. I usually find what I'm looking for (an apartment with washer, WiFi and many good reviews in the lower price-bracket).

But I always open the site with some apprehension, since I know I'm in for a bad user experience. It's sluggish, and I can't bring myself to appreciate how the layout and even menus differ (or even disappear) depending on which area on the site I visit. It makes navigation cumbersome, and hard to remember how to navigate between visits.

I would switch to a similar service in a jiffy if it had solved these problems.

I always suspected a lack of a top-down coordination to be the reason for these issues, thanks for confirming. I've come to believe that this kind of loose federation strategy mostly suits junior devs (on which a startup might be deeply dependent by all means), hardly a serious long haul business. I expect they will change policy in due course, or perish.

<comment><USER5> I've had the exact same problems using AirBnb. I can never rely on things to be in the same place one visit to the next, if they continue to exist at all.

I don't think AirBnb is alone in this. There are many sites and apps that change UI's radically with disturbing regularity. I've begun to wonder if there is a glut of UX/UI people in tech right now, and that this endless cycle of zero-value-added change is just an attempt to justify their continued employment.

<comment><USER6> I actually think the problem isn't a glut of designers or UXers, it's an obsession with A/B testing and multi-armed bandit scenarios. I'm sure that at any one time there are dozens of A/B tests running on the site, and the inconsistency we all see is a direct result. Netflix is a similar offender in this area, I never have any idea where "continue watching" is going to be when I open up the app.

</comment></comment></comment></comment></comment><comment><USER7> I recently did a POC for my company on a mature Angular project to see what it would take to switch over to the Apollo stack. I ended up reducing LOC by 50%, adding caching, full offline support, and optimistic UI. I'm convinced if we had used the Apollo stack at the start of the project, our front end resource requirements might've been 30-40% less for the project. The things the Apollo team have done are really making a big impact on engineering teams that adopt their tools.

<comment><USER8> I recently tried Apollo for a project as well, for the most part, its almost magic, doing most of the usually tedious things for me. But I often run into unexpected blocker on the most basic functionalities that I need.

One of them that I haven't been able to really solve till now is around cache invalidation / removing deleted items from cache.

How have you been finding Apollo around that area?

<comment><USER9> I'm currently working on a full-stack app centered around GraphQL and my experience is pretty similar to yours - when it works, it's like magic. The problem is, it doesn't always work the way you expect it to. Here are some of the things I've noticed:

While the main technologies are pretty mature and well documented, gluing them together is often a lot trickier and left entirely to the user. If you need a way for Apollo to communicate with the database, you have to handle that yourself. Same thing for authentication and access control. File uploads also require a separate library.

I think the whole stack has a lot of promise, but it's going to have trouble gaining steam as long as it forces the user to think about these sort of things.

Something else I've noticed is that it shifts a lot of the work to the back- end while at the same time introducing new problems you never had with REST. With REST, you had endpoints with clearly defined inputs and outputs, which were easy to reason about and secure. This is not the case with GraphQL - because it is so expressive, it's hard to cover every possible use case, especially if you're doing the entire security and access control yourself. The other problem GraphQL has that REST does not is recursive queries - it's entirely possible to request something like this:

authors -> posts -> comments -> authors -> posts -> comments ...

Another thing I should mention - while Prisma and Apollo are pretty stable and well documented, various smaller libraries are often not. This is not an issue specific to GraphQL, but because it has a smaller ecosystem then say, React, you're a lot more likely to run into it.

Lastly - the pace of the development is bonkers. I've run into situations where an 8 month old post was already obsolete. Or major versions a year and a half apart.

<comment><USER7> I lot of the issues you mentioned really are meant to address problems faced by teams working on a project at scale. I really didn't understand the need for GraphQL until I was put on a project where we had multiple REST endpoints we needed to query data from, new people were joining every week, and communication + data requests across different teams required a significant portion of everyone's time.

The issues you mentioned are issues if you want one (or a few) framework or library to handle all of your web development needs, but rarely does one library work for web development at scale.

<comment><USER9> It sounds like your issue was with poor documentation and not some fault inherent to REST itself. I don't think that just switching to GraphQL is going to fix that problem (though Playground is a pretty nice way of getting to know the API).

I guess my main qualm was that, because GraphQL does a relatively poor job of explaining _why_ you should use it, people like me get the wrong idea about what kind of problems it solves and why you should use it instead of REST.

<comment><USER7> It's not really an issue with documentation within our team. It's an issue of having hundreds of REST endpoints (all which need to be learned by new devs), multiple local dev servers running on your machine to mimic those endpoints, and an excess of work done on the front end to merge data from across those REST endpoints once it all arrives on the client. Additionally we would get requests from other teams wanting to access data, so instead of them just writing a query to the same GQL endpoint we all share, we have to write a new endpoint for them, manage access control on that endpoint, etc. These are the issues GQL solves.

</comment></comment></comment></comment></comment></comment><comment><USER10> As primarily an Ember.js user (with an interest in Elm), just looking at how many hoops people in the React ecosystem go through _just to send a request_ just boggles the mind.

Maybe I am in the minority, but writing boilerplate code all the time just isn't something that interests me.

<comment><USER11> I also much prefer simple REST APIs, just much easier to understand among other things. (e.g. fetch("/api/users").then(...) and it's good to go)

<comment><USER12> It's certainly easier to start out that way. But there are also a lot of pitfalls, that systems like what's described in the article are designed to solve.

For example: let's say when component A or component B get rendered, they need to fetch users in order to show something about them. You only want to make the request if either of these components is actually rendered on the screen. What if they both get rendered? Is something going to know to reuse the inflight request so you don't have two identical requests? Or is it just naively going to make unnecessary requests? What if some other thing already fetched the user list earlier, are either of them still going to make the request anyway? Or use the data that's already there?

Another example: you've got your result from the users endpoint. Now you fetch some user information from the "blog author" endpoint. Information about the same user is in both responses. What's the authoritative client-side source of information about that user now? Are you now going to potentially be displaying stale/conflicting info about that user in 2+ different places?

etc.

You can always just keep things simple if you want, and people in React and GraphQL land are happy to do that, too. But a lot of people are also focused on building complex applications. This is just to give you some perspective on the "why" here.

<comment><USER13> > Is something going to know to reuse the inflight request so you don't have > two identical requests?

I really don't see what GraphQL has to do with this problem. What you're describing are issues that pop up with any external datastore. GraphQL is just a protocol. If there are clients that take care of that type of caching, that's an implementation detail. You can also have REST clients that do the same.

> Are you now going to potentially be displaying stale/conflicting info about > that user in 2+ different places?

If you knew you needed info about the user as a blog author as well, you could've included that in the users request. Isn't that what you would've done in GraphQL anyway?

I'm not trying to detract from GraphQL's usefulness, but you can accomplish the same things in REST pretty easily too, especially if you control both server and client code.

IMO, GraphQL really shines when you're implementing clients for APIs that you don't already control. In that case, the flexibility is great. But if you're building both the APIs and the clients, REST works (and has worked) pretty easily.

<comment><USER12> Indeed! I wasn't talking about REST vs. GraphQL at all, but rather the benefit that fancy _clients_ get you (notice I said "systems like what's described in the article", not GraphQL in general). I think that's what the grandparents were talking about, since the boilerplate they were discussing presumably comes from Apollo, not GraphQL. Apollo is a fancy client like you describe.

</comment></comment></comment></comment></comment><comment><USER14> I'd personally be interested in some details on how they're _generating_ the mock data for their server.

As they're using that mock data for testing, the data returned has to be deterministic, so I'm guessing they're either making up mock data manually by hard-coding that data in resolvers on the mock server implementation, or using some kind of fake-data generating library to generate that data dynamically based on graphql type in the schema, with a fixed seed so that the data doesn't change between runs.

I'm hoping to explore the latter approach a bit more as I feel it would be great for testing productivity to have mock data generated from the schema instead of having to manually write them for every new thing added.

<comment><USER15> It's actually neither. :)

We have a shared development environment with a persistent (and thus deterministic) dataset. So when one developer runs a query against that dataset, another developer could run the same query and get the same result.

The best thing about this, of course, is that if your Storybook data looks at listing 112358, you can also open that same listing in development and see the same result in the product. Very powerful.

<comment><USER14> Thank you for the quick reply!

My question was more about how that persistent dataset in your shared development environment is created though. As that dataset has to first exist for people to query against it.

Curious if that creation process is manual or automated somehow through inference on the types in the schema.

<comment><USER15> For sure. Unrelated to GraphQL in this case. Very manual (in a good way!). Sometimes it's achieved manually via the UI. Sometimes manually via scripts, etc. Imagine you're creating a new field for Business Travel, and you've added some new fields via the API. One way or another you're grabbing 1-2 listings in development, modifying those listings to reflect the desired change, and then in the dev setup, you're saying "grab listings x and y and update their data for use in Storybook and unit tests."

In my experience, if the system is working properly, there's not a lot of room for type-driven inference. We often get a design with very explicit data present, and we want to bring that data in rather than calling on Casual or

<comment><USER14> Thanks! Yeah that approach makes a lot of sense for the use cases presented in the post, and may be the most pragmatic path for enabling this workflow.

Although I feel the automated data generation approach still has value in that it can introduce some variance in the dataset to better represent real-world data, potentially uncovering issues in handling of edge cases in the design/implementation of the UI, that the original conveniently customized dataset that came with the design wouldn't. Though such an approach will likely also need to offer the ability for users to override/customize the generated data on a case by case basis in order to be useful for real world applications, so we'll probably end up with a bit of a hybrid approach at the end of the day regardless.

</comment></comment></comment></comment></comment><comment><USER16> With posts like this, I think it's important to remember that projects like this get created for one primary reason: it solves problems AirBnB has. If you're lucky, it solves problems you have too.

I work on some tech giant cyber security stuff, and it's obvious if you look at it that what my team designs solves a tech giant scale problem in the context of past engineering decisions made to solve other tech giant scale problems this company had. I probably wouldn't recommend my team's approaches to anyone who has less than ~5000 engineers.

From this experience I've adopted a heuristic: first consider the scale the system was built to address. If you are not in the ballpark of that scale, give it a long hard look before you adopted it.

</comment><comment><USER17> When looking at the network tab, I couldn't find anything related to graphql. Nor by searching overall the code. Does anyway know where exactly Airbnb use graphql?

<comment><USER18> Adam talked about server-side rendering in the video. You won't see the graphql queries in network activities.

</comment></comment><comment><USER19> It is unclear from the article how exactly Airbnb is moving "10x faster" as the title claims. Unless backed by a benchmark, this kind of hyperbole shouldn't be an engineering article.

</comment><comment><USER20> Is moving faster to evade taxes and regulations really something to encourage?</comment>


Firesheep and smartphones - <AUTHOR>

With the whole firesheep thing that was talking about yesterday, would this include smartphone traffic over wifi, or something like seesmic desktop? <comment><USER2> I just tried it with an Open WiFi and my iPhone. It did NOT capture sessions of Twitter, Facebook, AOL IM, and FourSquare. So I guess it doesn't work with iPhones... not sure about other smart phones.

</comment><comment><USER3> See <http://news.ycombinator.com/item?id=1837178></comment>


BackdoorFactory Proxy (BDFProxy) Initial Release – Patch Binaries ala MITM - <AUTHOR> https://github.com/secretsquirrel/BDFProxy

<comment><USER2> Awesomesauce! Could be fun.</comment>


Ask HN: "Freelancer" Specialties in Tech for the 2020s - <AUTHOR> Which specialties in tech do you think will rise or remain in high demand in the next years? <comment><AUTHOR> (putting this in comment, I think it's more idiomatic to HN).

I think we'll see a revival of MSPs (Managed Service Providers) with a touch of custom-devops. Teams just want to work, but selecting services among a myriad offers and possibilities, then setting it all up to operate seamlessly and flawlessly is _very_ valuable time and maintenance. Nowadays it's just companies hiring MSPs, tomorrow it might be something you integrate as a transformation of your "home" into a dual "workplace", albeit more digitally so because it's the 21st century.

Ideally you just want to be able to claim compliance to <some standard> and hand over a public key to your employer-of-the-month to patch your system to theirs (auth etc.)

Welcome to the Matrix, I guess. The nice part :)

I think ML will keep on rolling but remain mostly a business-thing for the next decade (I don't see how consumers would directly pay for ML, short of revolution in open-source social networks and big data but I don't see that happening this soon in history).</comment>


Ask HN: Would an integrated job list in an IDE be a good idea? - <AUTHOR> I was thinking as a web developer, and hopeful freelancer, it would be neat to have jobs come into the IDE. By this I mean an add-on or module. Think of email clients.
What do you think?
I use UpWork primarily to find clients.
Why would you combine an IDE (focus) with a real-time job list? <comment><USER2> I'm generally favorable of adding information into the IDE (see my website for all my research on the subject).

However, I imagine this just being messy and seems to be trying to replace too many different things. Would it benefit me to have this in the IDE rather than in the browser? I don't imagine myself switching between them that often.

Can you provide a concrete example and maybe a mockup?</comment>


Quipu – A Database Made of Hairs - <AUTHOR> https://en.wikipedia.org/wiki/Quipu <comment><USER2> I've been reading Neal Stephenson's _D.O.D.O._ , which refers to these quipu as similar to, but not quite the same as, the more subtle calculating devices used in the story to assess timeline incursions. Searching all the other words he and his co-author used to describe them yields "calculator". Did Stephenson extrapolate from the quipu or is it fundamentally different? Recording rather than analyzing?</comment>


High Tech Cowboys of the Deep Seas: The Race to Save the Cougar Ace - <AUTHOR> http://www.wired.com/science/discoveries/magazine/16-03/ff_seacowboys?currentPage=all <comment><USER2> Even though we saw this her before, it is still a terrific story.</comment>


Apple and the Gun Emoji - <AUTHOR> http://blog.emojipedia.org/apple-and-the-gun-emoji/ <comment><USER2> I think this is a ridiculous change by Apple, going completely against the idea of Unicode and consistent character displays across different devices. Author's suggestion is good, but I don't think that this was a necessary change by any means in the first place.

<comment><USER3> Unicode only says that it's a gun, and only recommends how it should look. IME's are free to make the emojis look however they want at their discretion. Note Samsung's saltines instead of chocolate chip cookies for "U+1F36A Cookie". Consistency is laudable, but we live in a world with multiple cultures, meanings, and contexts, so in the end consistency might actually be more harmful and reductionist.

<comment><USER4> The unicode code chart¹ actually says "PISTOL = handgun, revolver", and the reference glyph (with a larger version on page 4) is pretty clearly a Beretta M9.²

① [http://www.unicode.org/charts/PDF/U1F300.pdf#14](http://www.unicode.org/charts/PDF/U1F300.pdf#14)

② [http://www.beretta.com/en/m9/](http://www.beretta.com/en/m9/) and [https://en.wikipedia.org/wiki/Beretta_M9](https://en.wikipedia.org/wiki/Beretta_M9)

<comment><USER5> Apple is not alone though. On windows i get a colorful lasergun: [http://i.imgur.com/bOC6M6H.png](http://i.imgur.com/bOC6M6H.png)

[http://emojipedia.org/microsoft/windows-10/pistol/](http://emojipedia.org/microsoft/windows-10/pistol/)

Additionally, your pointing out that the example glyph looks like a beretta only has any kind of weight if you can also point to guidance that specifies to what level it should be followed.

<comment><USER6> I would operate on the condition that the standard denotes that items representing the unicode can be flavored/styled to the producers desires, but should not misrepresent the item/object being conveyed. A water gun != a pistol and a laser gun != a pistol. Both are altogether different items/objects. If Windows/Apple want unicode for those objects they should appeal to the standards board to make it happen. It would be acceptable to hide the pistol emoticon in their UI while still allowing it to display correctly when used. Masking it as something it is not is just misleading though.

<comment><USER5> That is your preference, however the question here is what the unicode consortium thinks.

<comment><USER6> Why have a standards body at all if it's just going to be up to the 3rd parties to determine what is going to be displayed then? Like I said before, they should be free to display each unicode item/object artistically how they see fit, they should however not be free to change what item/object is to be conveyed entirely.

<comment><USER5> That is your opinion and you are free to hold it but what matters here is what the Unicode Consortium thinks.

<comment><USER6> I agree, it would be nice to have the Unicode Consortium come out and address these issues.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Next up someone then sends an invitation to a pool birthday party asking people to bring some water toys. They look through list of emojis, pick what looks like a water gun. Everyone with non-Apple devices wonder why is their host asking them to bring guns to a pool party.

<comment><USER8> Or worse yet, vice versa.. waterpistol toting apple fanboi drug cartels.

</comment></comment><comment><USER4> Question for those who are fine with what Apple did: What if Apple had implemented a text filter which changes all occurences of the word "pistol" to "water pistol". Would that be fine too?

Also, what if the Unicode Consortium later adds an emoji for "WATER PISTOL"? How should it be distinguished from the "PISTOL" emoji? Or should they be identical?

<comment><USER3> A text filter is very different from the visual representation of an emoji which the unicode consortium gives a lot of leeway to IMEs to implement.

Everyone is only angry about this change because it was a normal pistol first and changed to a water pistol later. What if it was the inverse? Then we'd have people complaining the other way. My point is that people expect the emoji to represent what they've been taught it to represent, but in actuality the IME is the one who chooses how exactly it should look. Just look at the saltine cookie vs the chocolate chip cookie.

As for your last point it's quite unlikely that they would add that because it's too redundant to the pistol emoji. Though for facial expressions, the consortium gives specific recommendations on how to differentiate them and the IME would have to consider those.

Have a look at [http://www.unicode.org/charts/PDF/U1F300.pdf](http://www.unicode.org/charts/PDF/U1F300.pdf) to see how much guidance they actually give on the looks of each. For most they list synonyms for searching and related emoji. For some they go more in depth on the look such as for U+1F4DE Telephone Receiver.

<comment><USER9> > Everyone is only angry about this change because it was a normal pistol > first and changed to a water pistol later. What if it was the inverse? Then > we'd have people complaining the other way.

You say that as if it's a counter-argument, but it's really further proof that changing it is bad. Yes, it is confusing to change emojis that used to be one thing to be another thing, so it shouldn't be done, regardless of direction. Opposing all such changes is entirely consistent. If Apple wants a water pistol emoji they should _add a new one_ , not replace an existing emoji that means something else.

<comment><USER3> The difference here is the intent. And I already explained why they likely wouldn't get a specific water pistol emoji. HNers actually think that they think they changed it to a water pistol because they wanted an emoji to represent a water pistol?

</comment></comment></comment></comment><comment><USER10> I'd love to know who made this decision, apparently giving it less thought than what they were going to have for lunch. Whoever it was doesn't understand how communication works, and should probably not be in charge of decisions like this.

Interestingly, it's a giant middle finger not just to gun nuts, but to millions of people on both sides of debates about gun control, the militarization of law enforcement, etc. (Not to mention a kinda creepy form of infantilization.)

<comment><USER11> Probably came straight from the top, i.e., Tim Cook. (I say this without knowledge or evidence, but it is the kind of thing he would care about and do.)

<comment><USER12> What other constitutional protections should Apple attack next?

</comment></comment></comment><comment><USER4> This change was actually a community suggestion: [https://openradar.appspot.com/26897761](https://openradar.appspot.com/26897761)

(Source: [https://twitter.com/rjonesy/status/761223785076797442](https://twitter.com/rjonesy/status/761223785076797442))

<comment><USER5> And they're certainly not the first to do so, and in great company: [http://emojipedia.org/microsoft/windows-10/pistol/](http://emojipedia.org/microsoft/windows-10/pistol/)

<comment><USER4> That was actually Microsoft's _original_ design, but they _changed it to a realistic gun_ almost a week ago: [https://www.engadget.com/2016/08/04/microsoft-new-real- gun-e...](https://www.engadget.com/2016/08/04/microsoft-new-real-gun-emoji/)

Also, I would not call _one single vendor_ "in great company"; before Apple, Microsoft was the _only_ vendor showing anything else than a normal modern handgun (except Android, which in 4.4 had what seems to be an old blunderbuss pistol: [http://emojipedia.org/google/android-4.4/pistol/](http://emojipedia.org/google/android-4.4/pistol/) but Android changed it back to a revolver in Android 5.0).

</comment></comment></comment><comment><USER13> This makes a ton of sense. Good article. This is directly analogous to API deprecation issues.

</comment><comment><USER14> Interestingly, the bomb, sword and dagger emoji remain in their natural form.

Apple should probably also thoroughly cleanse the iTunes Store for movies showing guns, lest some unsuspecting child has his purity irrevocably tainted by the image of a firearm. Such stimulation might lead him to commit homicide, such is the simple relation between the two. Sigh.

Edit: sarcasm guys, geeeez

<comment><USER3> Can we stop with this hyperbole anytime something is changed? What do emoji have to do with the iTunes store? You're assuming an awful lot about Apple's intentions with stuff like "such stimulation might lead him to commit homicide, such is the simple relation between the two".

<comment><USER15> _Can we stop with this hyperbole anytime something is changed?_

No. Monkeying with the language and symbols we use for self-expression is defensible only if you think of _1984_ as a progressive manifesto.

<comment><USER3> Yep, changing the look of an emoji is tantamount to state-sanctioned censorship and oppression. Ridiculous statements like these only spawn more ridiculousness. Try grounding your arguments in reality rather than an Atlas- sized persecution complex and that stupid Orwellian meme. Private companies are free to do what they want, the first amendment only applies to the government.

<comment><USER16> Pick one, it's important or it's not. Anti-gun people seem to posit it's an important move to change the lexicon by removing the symbol and replacing it with a water gun as that will have an effect on the public consciousness. Someone points out that this sort of looks like newspeak from 1984 (replacing words that make people feel bad with things that are incomprehensible) and all of the sudden it's a trivial unimportant move that will have no effect.

<comment><USER15> Exactly. To the extent the change is meaningful, it's Orwellian. To the extent the change is meaningless, it's unnecessary.

</comment></comment></comment></comment></comment></comment><comment><USER17> Does anyone doubt it's a clearly political decision that is also technically worst-practice? Does anything think this is beneficial to society to remove the gun emoji? That it will prevent any violence?

</comment><comment><USER6> Is there even logic behind this kinda of change? I just do not get it. It's easy to say that's just Apple shoving PC down their users throats, but what does a representation of a gun and PC have to do with each other? A gun is a real thing, in the real world, and has real world consequences, masking it as a water gun won't change this fact. Does Apple just want to be every ones big brother and decide what is best for us by coddling everyone into a land of rainbows and unicorns?

<comment><USER18> Don't you know? If we pretend bad things don't exist, they'll simply be wished out of existence.

</comment></comment><comment><USER19> This is about the most reactionary, sarcasm and knee jerk fuelled batch of comments I've seen on HN in some time. There are a few insightful ones peppered throughout the comments here, but its easily lost in the noise.

If this thread was a recipe I'd say it needs Less 2nd amendment discussion and lots more Unicode technical discussion. :-/

</comment><comment><USER20> I wonder if they considered having the pistol pointed upward or diagonally. It does seem menacing when it's pointed straight to the left (or right). Not so much if it were pointing in a different direction.

</comment><comment><USER21> This is the most reasonabke solution to the direction apple has taken. I've been anooyed that you can totally say 'water pistol' or 'water gun' with the current pistol emoji like this: water+pistol, but you cant say firearm or gun with fire+water pistol.....that just turns into fire-water-pistol? Napalm?

But I hadnt realized the potential danger in this change until this post!

</comment><comment><USER18> Han shot first.

;-)</comment>


Ask HN: Desktop or Laptop with eGPU - <AUTHOR> I currently have a MacBook Pro, but I'm also thinking to get a Windows machine. My options are to either build a desktop or buy a laptop and a eGPU (probably Razer Core X). The benefit of the desktop is upgradability and performace; however it is not portable. If I get a laptop (probbably a ThinkPad) and an eGPU (with Radeon VII), i can also use the eGPU with my MacBook Pro. What would you reccomend? <comment><USER2> I recently listened to a podcast where they were talking about using the same eGPU with Windows, Macs, and Linux.

[https://coder.show/357](https://coder.show/357)

My gut opinion is that an eGpu wouldn't work as well with Windows as it would with Macs with Apple having tighter control over the operating system + driver and seeing that Apple has bet heavily on eGPUs. It seems to be more of a niche with Windows.

</comment><comment><USER3> A partner and I are considering launching a very small side business where we would be selling pre-built desktops for pro applications.

Out of curiosity, what are the spec requirements your work requires, and would Remote Desktop be a reasonable option for your use case?

</comment><comment><USER4> i had this dilemma last year myself, in the end i went with an X1 Carbon 6th gen and an eGPU (aorus gaming box 1070) and i havent regretted it but my reason for the eGPU was purely for gaming.

there are some slight caveats, first is the fact that thunderbolt isnt perfect, you will sometimes find yourself having to shutdown the system and power off the GPU before itll connect and thunderbolt cables are painfully expensive which means its extra stinging when you find youve managed to somehow damage it like i have with mine recently but overall it makes for a great little portable rig

<comment><AUTHOR> Are you happy with the X1 Carbon 6th gen? That is my top option. What are the main purposes you use it for?

</comment></comment><comment><USER5> What are you using the GPU for? Is it for ML, gaming, game dev?

<comment><AUTHOR> I'll be using it mostly for Creative Cloud and some gaming.

<comment><USER5> My biased opinion is that an inexpensive laptop and a desktop with an internal card would probably be much less headache.

<comment><USER2> I agree. Also if the primary use case is Creative Cloud, couldn't you do the heavy lifting on the desktop PC and use the laptop he already has for portability?</comment></comment></comment></comment>


Distributed Systems in Haskell - <AUTHOR> http://yager.io/Distributed/Distributed.html <comment> T-R Distributed Programming was one of the things flagged "Immature" in State of the Haskell Ecosystem [1]. Just out of curiosity, was that a motivation behind the project, or do you have any other thoughts on that post-project?

[1] [https://github.com/Gabriel439/post- rfc/blob/master/sotu.md#d...](https://github.com/Gabriel439/post- rfc/blob/master/sotu.md#distributed-programming)

<comment><USER2> It was definitely a factor. When we decided to use Haskell on the first project, we were mostly just curious how viable it would be for us.

If the current state of Distributed Programming in Haskell is "Immature", then I can't wait to see "Mature" :)

</comment></comment><comment><USER3> Excellent write up. One point though: watch out for WriterT and RWST leaking memory:

[http://stackoverflow.com/questions/25280852/space-leak-in- pi...](http://stackoverflow.com/questions/25280852/space-leak-in-pipes-with- rwst)

It's often better to just include the writer part you need in a larder State type (lenses make this really seamless)/

<comment><USER4> That's a good point, but it was also mentioned in the article, with a link to a useful mailing list thread[1] on the matter.

It seems to be a matter of laziness. If you're writing some small piece of state like an Int, this can be a real problem. If you're writing out a lazy data structure like a list (as happens in the article), I think the extra laziness should be fine or even desired. (I've never used Writer in practice, so take my comments with a grain of salt!)

[1]: [http://comments.gmane.org/gmane.comp.lang.haskell.libraries/...](http://comments.gmane.org/gmane.comp.lang.haskell.libraries/18980)

<comment><USER3> It was? I still can't see it...

AFAIR the problem with WriterT was the use of mappend within is always lazy, regardless of the strictness of the w in WriterT w m a.

</comment></comment></comment><comment><USER5> Did you run into any bugs or strange beahviour in Cloud Haskell? I looked into using it a while ago and came to the (possibly hasty) conclusion that it's not stable enough to build a large project on. Thanks!

<comment><USER2> None. It was rock solid; never a hiccup. It's evolving, but it seems quite well written and correct. As with many Haskell libraries in "beta", it works perfectly even though it's not finalized.

</comment></comment><comment><USER2> Author here. Glad to see this on HN! Happy to answer any questions.

<comment><USER6> Shouldn't the type of the monadic serverStep be "Message -> m ()" to match the type of the explicit "serverStep :: Config -> State -> Message -> (State, [Message])" ? Aka, serverStep isn't a monadic object, it's a Kleisli arrow.

<comment><USER2> You're right, that's a typo. I even wrote it out correctly later. I'll fix that. Thanks!

</comment></comment></comment><comment><USER7> Very interesting structure of explanation. I like your short sumarization (tl;dr) at beginning and "why?" reasoning. I think i will copy it in my next book :-)</comment>


Proctologists vs. Pediatricians: When Are Doctors Busy? - <AUTHOR> https://priceonomics.com/what-is-the-busiest-of-time-of-the-year-to-visit/ <comment><USER2> doctors are usually busy on january, march and august.</comment>