Major Linux Problems on the Desktop, 2016 Edition - <AUTHOR> http://linuxfonts.narod.ru/why.linux.is.not.ready.for.the.desktop.current.html <comment><USER4> He's right.

Many of the driver problems come from the fact that Linux finally worked on the desktop about the time desktop machines were replaced by laptops. Desktops with slots tended to have relatively well-defined hardware, and plugging in third party hardware was normal. This is much less true for laptops. OS development for laptops requires that laptop. It needs a Q/A organization which has one of everything you support. Linux lacks that.

Microsoft got drivers under control with the Static Driver Verifier, which uses automatic formal proofs of correctness to determine whether a driver can crash the kernel. (The driver may not control the device correctly, but at least it won't blither over kernel memory or make a kernel API call with bogus parameters. So driver bugs just mean a device doesn't work, and you know which device and driver.) All signed Windows drivers since Windows 7 have passed that. This has eliminated most system crashes caused by drivers. Before that, more than half of Windows crashes were driver related. Linux has no comparable technology.

The monolithic Linux kernel is just too big. What is it now, 20,000,000 lines? There's no hope of debugging that. It shows.

<comment><USER5> > The monolithic Linux kernel is just too big. What is it now, 20,000,000 > lines? There's no hope of debugging that. It shows.

The Linux kernel is about 20MSLOC. The Windows kernel is about 50MSLOC. IIRC, OS X used to be ~80KSLOC.

Problems with debugging are endemic to any monolithic kernel. Neither Windows nor OS X is easier to debug _technologically_ , but Microsoft and Apple both have many employees and lots of money invested compared to Linux.

(Also, Apple solved the problem by making their OS specific to their computers, so they had the whole thing under their control.)

<comment> vezzy-fnord Kernel debuggers exist. Of course, we're all aware of Linus' opinion on the matter.

<comment><USER6> Not all debug tools are single step debuggers. There are memory verifiers, formal proof techniques and self testing frameworks that Linux uses that are very, very useful

<comment><USER7> What are those tools?

<comment><USER8> _sparse_ \-- adds annotations to kernel code which can be checked by the compiler. It is a little bit like a parallel type system which provides domain-specific knowledge like "this function takes lock A and then lock B" or "this function runs in interrupt context." See [https://sparse.wiki.kernel.org/index.php/Main_Page](https://sparse.wiki.kernel.org/index.php/Main_Page)

 _kmemcheck_ \-- sort of like valgrind, but for the kernel.

 _CONFIG_FAULT_INJECTION_ \-- inject random faults at runtime (such as in memory allocation) to test infrequently encountered error paths.

 _CONFIG_DEBUG_MUTEXES_ , _CONFIG_DEBUG_SPINLOCK_ \-- run expensive mutex validation checks at runtime.

 _coccinelle_ \-- a source code matching and transformation engine. You can use it in some of the same contexts as sed or awk. Unlike those tools, it is aware of the C language so it can do smarter things like add an extra final argument to all occurrences of a call to do_foo_bar_baz(). See [http://coccinelle.lip6.fr/](http://coccinelle.lip6.fr/)

 _checkpatch.pl_ \-- Checks a patch to see if it conforms to the kernel style guide. Simple things like enforcing 80-column lines, but also more complicated things as well like variable naming, whitespace, etc.

 _smatch_ , _flawfinder_ \-- static analysis tools that are similar in principle to Coverity. Like Coverity, they are unsound, but often helpful.

<comment><USER7> Thanks for the summary.

However, what do we have on the formal proof side?

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Linux users often take the idea of 'self-examination' way too far and it turns into 'self-disparagement'.

The fact is, if you vet your hardware and use a major distro (Ubuntu, OpenSUSE, Fedora) you'll wind up with a perfectly functioning Linux desktop or laptop.

You think about it, OSX only runs on a few laptops. Linux runs perfectly on more laptops than exist for OSX. Windows run on many laptops, more often than not quite well, not always perfect though, despite being bundled together.

I've been using Ubuntu on a ThinkPad T530 for several years, it just works. Couldn't be happier. Everything works BTW, function keys, fingerprint scanner, everything.

As for the Linux eco-system - major browsers work, Steam works, there's a phenomenal ecosystem around Linux if you do any sort of programming, data science, etc... I really have nothing to complain about these days.

<comment><USER10> Exactly. A non negligible part of his rant was about proprietary graphic drivers. Free software developers can't do anything about that, and anyway what is the point? Today, if you want to game just use Windows, if you want a fine Linux laptop get one with something like an Haswell with integrated graphics (or maybe Broadwell, still wait a little for Skylakes)

And anyway if you look at what the "competition" sells while being this much critical, you can probably write something at least as long. Even last MS flagship devices running last Windows 10 versions are full of bugs now -- and likewise for major PC vendors like Dell -- so GNU/Linux distributions might as well become attractive just because Windows devices are of terrible quality today :p

<comment><USER11> I thought a similar thing when I was reading it, but regardless of who is responsible for a problem, it's still a problem that should be acknowledged in such a list. Graphics on linux is a hard problem to solve cleanly. It's not anyone in particular's fault, and it's entirely reasonable when you understand the context, but it's still a problem. In context, linux does very well given the restrictions, but it's still not as buttery as the proprietary offerings.

<comment><USER12> > It's not anyone in particular's fault

If the company producing and selling the hardware is not giving the specs to their users, then it's their fault. Perhaps that's a bit too RMS for some people, but in this case I basically agree with him. It's mine, I bought it, I want to run whatever I want to on it.

<comment><USER13> > If the company producing and selling the hardware is not giving the specs to > their users, then it's their fault.

AMD started releasing the low-level documentation for their GPUs in 2008, and although the FOSS drivers have benefitted stability-wise they're still lagging in API features and often offer less than half the performance of the proprietary counterparts. As far as I know we don't have a complete FOSS OpenCL 1.0 (ca. 2009) implementation for any ISA, nevermind newer versions or competitive performance.

Unfortunately GPUs are so complex that specs alone don't guarantee good drivers.

</comment></comment></comment></comment></comment><comment><USER14> I've been using Ubuntu Linux as my primary OS since 2006, and I can't disagree with many of the annoyances. Especially with regards to graphics drivers and the switch to the Unity desktop. I tried Linux Mint with the Cinnamon desktop and it is nicer, but couldn't commit to it I guess.

But everytime I use Windows and Macs again, I get even more annoyed. Mainly with how slow things are. Even on a new Windows 10 desktop or laptop, it's not uncommon to have to wait minutes for things to settle down after booting and logging in, or waiting while updates are installed during startup or shutdown. And on OS X, the spinning beachball was one of the main reasons why I stopped macs for the most part in 2002 or so. I figured it was just a byproduct of OS X still being early in development and computers not being fast enough or having enough RAM. But no, everytime I try a brand new mac, it still pops up, especially when trying to type in a URL or something like that. The bouncing in the dock and not knowing if an app is running or shutdown or not is annoying, too.

But as long as you keep your stuff backed up or in the cloud (like google drive, google music, etc.), and stick mostly to stuff that works cross- platform (Chrome browser, Libreoffice, cross-platform IDEs, etc.), it's very painless to switch being OS's or devices or to wipe and reinstall things. Even Microsoft Word and Excel work in the browser nowadays, though I still usually just stick with Google Docs.

<comment><USER15> > it's not uncommon to have to wait minutes for things to settle down after > booting and logging in

This is no longer my experience with Windows on an SSD. I'm always a bit shocked when I reboot and I'm back at my desktop in under 30 seconds.

On a machine without an SSD, I'm annoyed at how slow _everything_ is -- not just booting.

<comment><USER16> That's actually the reason windows is and will stay my main desktop system. Former Windows 7, now an "unfucked" Windows 10 Enterprise. It's just smoother than OSX or Linux Desktop and I always test some linux distros if I get new Hardware. Last time in novembre I upgrade to i7-6700k, Titan X, Samsung 950Pro 1TB. Of course it's necessary to have always at least one linux based server vm running I use putty to connect with. That's my ideal desktop setup i am using for years.

IMHO X11 needs to be replaced as fast as possible.

<comment><USER17> I agree, thankfully Wayland is well on its way. GDM uses it by default as of 3.16 and the Gnome DE just needs a --session=-gnome-wayland parameter.

It has actually gotten to the point where it's stable enough for daily use now.

<comment><USER18> > It has actually gotten to the point where it's stable enough for daily use > now.

Really? What about X11 compatibility?

</comment></comment></comment></comment></comment><comment><USER19> When visiting this blog post on my Android phone, the ads (or something) redirect me to a page with popups telling me my phone has a virus and encouraging me to install an app to 'clean' it, using Google branding on some dodgy domain. I seem to get a different one each time.

Reported it at [https://www.google.com/safebrowsing/report_phish/](https://www.google.com/safebrowsing/report_phish/) but mentioning here so that others don't fall victim to it.

<comment><USER20> Easy to see for yourself that this happens by using user agent spoofing in your browser's dev tools: [http://i.imgur.com/vlLV8PW.png](http://i.imgur.com/vlLV8PW.png)

Hard to track what exactly is causing this because of the ~200 requests this website makes before redirecting your browser.

The article itself links archive.org's copy of the article which I would recommend using over the original website since it appears to be free of malicious redirects:

[http://web.archive.org/web/20151230152933/http://linuxfonts....](http://web.archive.org/web/20151230152933/http://linuxfonts.narod.ru/why.linux.is.not.ready.for.the.desktop.current.html)

</comment></comment><comment><USER21> I stopped using Linux as my primary desktop OS around 2012. Until then I was an Arch user with my own desktop environment built on StumpWM and a hodge- podge of hand-selected tools. There was no Gnome or KDE in my setup. I liked it quite a bit.

I used Ubuntu on my laptops since I wanted to spend less time administering drivers and arcane configuration formats.

This is a good list.

I just got tired of the configuration formats, crappy drivers, inconsistencies, dependencies... I was irritated at how easy it was for Apple users to plug in a projector and have it just work. I was irritated by every update to some random library that would cause a sub-system to stop working. I hated having to spend any amount of time administering my desktop environment. To me it should just work and the less time I have to spend trawling forums, logs, and restarting processes to find the correct incantations of dependencies and configuration variables the better.

I've stuck with my MacPro Retina, despite my early trepidation about a GUI- driven proprietary OS, because I've spent probably less than an hour in the last 4 years administering it. It's still snappy and works as well as it did on day one (also the hardware is nothing short of amazing). The only thing that sucks at this point is that the OpenGL drivers Apple ships are woefully out of date and I'm thinking of jumping to Windows unless something changes (damnit I wants me compute shaders).

I still use Linux every single day... just in a VM, container, or on some server.

<comment><USER22> from StumpWM to OSX? ouch

<comment><USER21> I was not happy at first. :)

</comment></comment></comment><comment><USER23> As a daily user of Linux on the desktop for over 15 years, I can appreciate many of these complaints, but despite it's flaws Linux on the desktop is a pleasure to use and is better than any other options. This is a nice resource for kernel developers and OSS contributors who wish to make a difference and solve tough problems.

<comment><USER22> Same here: started using Linux in 2000. Back then hardware support was a real big issue, software was missing, graphical environments for normal people not completely ready, etc. I think things really started to change after Ubuntu, and I would say that Linux got "ready for desktop" around 2008-9. My parents for instance have been using Ubuntu for many years (they also have a windows 7 laptop that is completely owned by malware) and they are very happy with it. Things changed a lot, but yeah, Linux isn't perfect yet, and I agree with some points (for instance the dpi thing). The only way that Linux could be massively used on desktop is by having a company like Microsoft making deals with every single manufacturer in the world for decades.

<comment><USER24> This has been my experience as well. I started using Linux some time around 1993-1995. Linux was inferior to FreeBSD in many ways back then (and for the following few years). Things got better and better and by 2008 it was a lot better on the desktop, and I think Ubuntu gets a lot of credit for that. It still had some trouble with wireless drivers and that sort of thing, but all these problems started clearing up over time.

</comment></comment></comment><comment><USER25> It's not like this guy is biased. He's just thorough and I appreciate that. See more:

[http://linuxfonts.narod.ru/best-linux-distro-this- year.html](http://linuxfonts.narod.ru/best-linux-distro-this-year.html)

[http://linuxfonts.narod.ru/why- windows-10-sucks.html](http://linuxfonts.narod.ru/why-windows-10-sucks.html)

[http://linuxfonts.narod.ru/why-iphones-and-ipads- suck.html](http://linuxfonts.narod.ru/why-iphones-and-ipads-suck.html)

[http://linuxfonts.narod.ru/why-android- sucks.html](http://linuxfonts.narod.ru/why-android-sucks.html)

<comment><USER26> Gotta say I agree with the basic gist (certainly haven't read this very long, excellently-detailed article yet), and I've run linux as my primary OS on various ultrabooks for the past sereral years.

Just skimming, I found this bit on-point and amusing:

> It's worth noting that the most vocal participants of the Open Source > community are extremely bitchy and overly idealistic people peremptorily > requiring everything to be open source and free or it has no right to exist > at all in Linux.

<comment><USER25> I must not be a vocal participant of Linux, then. Adobe! Shut up and take my money, already!

</comment></comment></comment><comment><USER27> I have one more which this article doesn't mention: Bluetooth. It's an _extremely_ fragile house of cards (as far as I can figure, there are a few kernel modules, dbus, a bluetooth daemon and pulseaudio involved) and every upgrade you roll is extremely risky. Currently my BT works but after a day or so uptime it will simply stop working and nothing short of reboot helps. (More [https://bbs.archlinux.org/viewtopic.php?id=206032](https://bbs.archlinux.org/viewtopic.php?id=206032) here)

And yes, I have been running Linux since before there was 1.0. And no, I don't like it. But the alternatives are even worse IMO.

<comment><USER28> I constantly battle Bluetooth issues on every platform. It sucks and needs to die.

<comment><USER29> This is true even on my Mac with wireless Apple accessories. Pairing issues galore if I have to change the batteries.

</comment></comment></comment><comment><USER30> I don't understand - I never see a mention of the biggest annoyance to developers on linux : consistent copy paste. It is a cognitive exercise to copy from the terminal or paste to the browser...or (the horror) copy from the terminal and paste on vim.

It does not help that this works beautifully on the Mac.

Is this not an annoyance to anyone else...and more importantly, considering all distros are now using libinput,can I compile my own libinput that will universally copy paste using win+c ?

<comment><USER31> Highlight to copy, middle-click to paste. Works every time for me.

Obviously, if you want to paste into vim you have to be in insert mode.

<comment><USER32> Technically vim exposes the x11 clipboards (plural) as registers - I never use registers, but I think

      "+p

[Ed: for those not familiar with vim: " can be thought of as 'with/from/into register named:', + is the register and p is paste. Similarily "+yw is 'yank/copy current word into register named +' ]

should be paste x11 selection. I don't normally use gvim/vim as an x11 application, but looks like * (star) is typically system clipboard:

[http://vim.wikia.com/wiki/Accessing_the_system_clipboard](http://vim.wikia.com/wiki/Accessing_the_system_clipboard)

<comment><USER30> why does it work on osx then ? is there something special happening at the OS level there ?

<comment><USER32> Afaik ctrl-v works in gvim? (I think its just bound to "+p or similar).

<comment><USER33> Only with :behave ms (default on windows), else ctrl-v starts block visual mode.

</comment></comment></comment></comment></comment></comment><comment><USER34> Tried double-tapping in the article text to get it to reflow, and got one of those bogus popups claiming my phone is infected with a virus. Thanks for trying to make my new year interesting. :-(

<comment><USER19> The site is now blocked by Google Safe Browsing as a result of these complains. Author has been emailed asking that he corrects this behavior in order to be removed from the blacklist.

</comment></comment><comment><USER35> > X.org 2D acceleration technologies and APIs aren't as mature and fast as > Direct2D and DirectWrite in Windows.

This complaint is confused. X is the wrong place for that stuff (the failure of XRender to live up to expectations being a testament to this). The windowing server should be multiplexing GPU buffers and that's it.

Direct2D and DirectWrite are user mode, client side libraries on Windows. (Maybe the author has them confused with the legacy GDI, which lives in the kernel?)

What this _should_ say is that Skia-GL/Ganesh and Cairo-GL, which are the open source Direct2D competitors, are not at performance parity with Direct2D. I've heard this in the past, though I don't know how accurate it is anymore. Thanks to the work of Google, which depends on Skia-GL for Chrome and Android, it's made rapid progress lately. In fact, in my experience, Skia-GL _is_ basically at performance parity with CG::OGL (i.e. the Mac/iOS 2D rendering backend)—so if the Mac is your benchmark, Linux has caught up there, if you use the latest Skia and configure it properly. Very few Linux desktop apps use Skia-GL in practice, though, which is a separate, and unfortunate, issue.

(Finally, I should mention that Direct2D and its competitors constitute a really low bar if you compare to the actual state of the art in GPU vector graphics, which is stuff like Scaleform.)

<comment><USER35> Oh, here's another I noticed:

> Year 2015 welcomed us with 134 vulnerabilities in one package alone: > WebKitGTK+ WSA-2015-0002. More eyes, less vulnerabilities you say, right?

Glancing through the list that was linked to, most of these vulnerabilities affected Chrome on Windows/Mac and/or Safari on Mac too. It's not fair to use general vulnerabilities in widely used Web browser engines as an indictment of Linux specifically. Nor is "look at the number of vulnerabilities in Web browser engines!" a particularly good proxy for anything other than how popular, and security-critical, Web browser engines are. (Some of the other security criticisms, for example of X, seem fair though—e.g. DRI2 is really bad.)

</comment></comment><comment><USER36> The website is hard to read on mobile because it is wider than my screen. Bit unfortunate.

Regarding VA-API: Since gstreamer-vaapi 0.7.0, Totem finally works with VA- API. Before only MPV worked. IMO if you used mplayer you better just switch to mpv. It still doesn't work perfectly in VLC, though AFAIK VA-API should be built in. In my experience filing bugs was enough to get improvements. Once it works well enough distributions should install it by default. IMO it pretty reasonable to achieve "va-api installed by default" for major distributions during 2016 provided enough people put their time in. Heard that gstreamer- vaapi will be merged into gstreamer itself, so that'll help a lot as well.

Regarding laptop support: Canonical seems to do a lot in this area. Testing Ubuntu and adding (upstreaming) workarounds/quirks to e.g. the kernel.

Some problematic items I wasn't aware of (good to have this list). E.g. font anti aliasing. Stuff like that is why freedesktop.org started, to have a way to agree on such things.

At least for some of the items on this list I have the idea that I can help to improve. Some items seems impossible. Still, just a little bit of effort can help a lot. Often I spend less than 30min to get improvements (though mostly thanks to actual paid developers putting in their effort).

Edit: The site should remove the swearing. You can be explicit in your disagreement without needing to swear.

<comment><USER37> Up until fairly recently I had a number of issues with VLC and vaapi / vdpau, but now it all seems to work well. I even have working accelerated video in Chromium by removing the GPU blacklist and it works fine. The only things missing now on the video front for Linux is good encoder support, but I can get that right now with ffmpeg - its just missing in a lot of capture software.

Though we really should all converge to openmax at some point. Like, all encode / decode with openmax in the future. It just makes bloody sense.

</comment></comment><comment><USER38> To me this reads as "I can't use hardware xyz on linux". Well, that's no surprise. There's "wxy" hardware that you can't use with Windows or OS X as well.

Today Linux supports the same amount (or more) hardware that Windows does. Hardware support is not a reason to use or not use Linux. The software ecosystem is much more important - not to mention the freedom aspect...

<comment><USER39> No, there's no consumer-level desktop hardware you can't use on either Windows or OS X or both. That's false.

Hardware support is indeed a reason not to use Linux, but the question is who needs to pick up the slack. With other operating systems, manufacturers put (more or less) effort into writing device drivers that are functional. With Linux, they really do not. It's a large and moving target, and the market value of doing so is not clear to them.

<comment><USER40> Really? There's plenty of old hardware which no longer works in recent Windows versions. It's not in a manufacture's interest to update a driver to recent OS versions. In Linux drivers usually remain for a long time.

<comment><USER39> Whether there's continuing support for a product is a very different issue. At some point, _all_ consumer hardware was functional in a version of Windows or OS X, since it was released precisely with support for one or both of those OSs. Yes, updates break things, but that is a very different problem than the one facing Linux. The problem facing Linux is that manufacturers are not supporting (or not seeking with much vigor to support) any Linux distribution upon initial release of the hardware.

<comment><USER10> It is a very different issue but can be very much in favor of GNU/Linux distribution when they work on a given piece of hardware: they are far more likely to be able to get version N+1 of said distribution than Windows N+1. Now Windows 10 might bring the best of both worlds for the Windows world, but for now it does not work well that much.

</comment></comment></comment></comment></comment><comment><USER41> I don't know about this article. I bough a 3rd gen Thinkpad Carbon earlier this year and Ubuntu runs better than Windows 10 on it. Not a single crash. The only thing that doesn't work out of the box is the fingerprint reader. Not that it doesn't have some rough edges, but this is enormous progress compared to just a few years ago, and the fact that it runs better than the OS _the laptop was designed for_ is a testament to that.

<comment><USER42> Your single laptop datapoint sure makes this article invalid :)

<comment><USER41> The article is just as data free as my single data point. My experience contradicts it. I use Linux _everywhere_ these days, on the desktop, on the laptop, and on my workstation at work. It works well. It's just not Windows, which seems to be the author's main consternation.

<comment><USER43> >The article is just as data free as my single data point.

It is not. The lack of a crash does not indicate lack of bugs. But, even a single crash confirms that bugs exist. (modulo the obvious)

</comment></comment></comment></comment><comment><USER44> I don't get articles like these.

First of all this website is worse than any OS environment I've ever used. So right from that standpoint I sorta gulped a bit before reading on.

Graphics driver issues in linux are nothing new, Nvidia a few years back started officially porting drivers to linux but that doesn't solve all the problems. There's also projects like Nouveau; so if you're complaining about linux desktop from a drivers standpoint....get in line.

As for the Windows issues:

>Windows boot problems are often fatal and unsolvable unless you reinstall from scratch

Someone has never used Hirens boot disk

>no system wide update mechanism

wat

>no enforced file system and registry hierarchy

wat

>Android is not Linux (besides have you seen anyone running Android on their desktop or laptop?)

Actually yes I have, I have it running on mine now. Android-x86 Project. At first I'll agree Android was not linux, there were some major differences but these have since been changed.

I'm sorry if this is nitpicking the post but my I don't understand how these make it to the top of HN

<comment><USER42> It's a single location summary of things that still have to be done / are lacking in the project. It's thus useful for contributors to see what needs work, since it's easy to get tunnel vision when working on a project.

Don't you have such yearly reviews on your long-running projects?

<comment><USER45> It's mostly trolly though. I mean, read through some of his complaints:

> No high level, stable, sane (truly forward and backward compatible) and > standardized API for developing GUI applications

Really? He's calling Win32 _sane_ and _stable_? The API where they're constantly having to introduce terrifying new hacks to stay bug compatible with themselves _and still failing_?

Most of it's the same trolls we hear every day. A lot of it is good, well- founded bitching that the Linux community can absolutely do nothing about (we don't have access to hardware specifications we don't have, that simple. Until various trouble manufacturers, nVidia first and foremost, decide to start playing ball, their hardware is always going to suck on Linux).

<comment><USER46> Yeah. Except he doesn't mention Win32 in this context. Does Win32 have to be sane/stable before Linux should have something adopted?

</comment></comment></comment></comment><comment><USER47> This is probably one of the theory vs. practice issues. While I admit that the article is mostly correct then again, in practice, I haven't had much trouble with Linux in the 00's and 10's while using Debian based distributions exclusively.

Surely I am not immune to the shortcomings of Linux but I don't remember having had to tweak my system as part of routine maintenance for... years. This was commonplace in the 90's. Merely upgrading or changing your X setup required tweaking configuration files, setting modelines and whatnot. I don't even know where the X configuration files live anymore. While the foundation is shallow, things generally work to the extent that I don't have to do "maintenance" on my Linux computers. Even external displays seem to work mostly just fine when presenting.

I haven't missed binary compatibility once: the distros compile everything anyway when libraries update. Compared to clinging to the cruft that makes 30 year old Windows programs work in Windows 10, I feel I'm better off with Linux even if I have to kill pulseaudio a couple of times each year and there's a slight chance that one of my laptops won't resume after suspend if it's unplugged.

I'm not saying that these Linux problems aren't problems. They exist and when they hit you, it hurts like hell. But my point is that Linux is imperfect as is the real world and people just tend to work around imperfections, again, like in the real world. So, mostly things work 5x better than 10 years ago and 50x better than 20 years ago.

</comment><comment><USER48> As a full-time "linux desktop" (whatever that is) user, all of these problems pain me. But of course the truth is that no other system "just works" either, so it's not as though it's unique. (We have an office full of Macintoshes which cause people endless trouble, so don't go there...)

I do feel that the "linux desktop" has regressed slightly in the last few years however. My transition from a debian wheezy to debian jessie desktop certainly felt like going backwards. GTK3-ified applications have significant focus and scrollwheel problems. KDE4 appeared to have reached a peak of maturity around 4.7/4.8 - jessie's now has notifications that steal focus. Akonadi/kmail2 has made what used to be one of my favourite applications essentially unusable.

NetworkManager continues to baffle as ever.

Systemd/journald, well, it's mostly that I'm not particularly _used_ to them yet, and so tracking down problems requires grappling with a bunch of new concepts every time there is trouble.

It's a chore occasionally, but I still thank god every day I don't have to use macos or windows.

<comment><USER49> Use Plasma 5 (which is "KDE5" if you will). KDE4 is not even supported anymore on some distros.

It fixes most remaining annoyances of KDE4 and has been really stable for me. Even kmail 5.5 is a huge step forward compared to the buggy kmail 4.x

<comment><USER48> I'm a debian stable user. KDE5 will come to me when it does. Anyway, I'm truly sceptical of KDE's trajectory now I've been burned a bit (and I'm saying this as a sort-of former "KDE person"). It seems like a lot of focus & motivation was lost around the time of the mobile/tablet/vivaldi distraction nonsense.

My main problem with kmail2 is that it feels like POP3/local mail support & local filtering is a (very broken) afterthought, and while being able to do everything on IMAP would be lovely, some of us are stuck on POP3 mail for a little longer...

<comment><USER49> ive no experience with the POP3 support even in kmail5 (I stopped using my last POP account a decade ago at least ;-) but the IMAP support in in kmail5 has been pretty good (it used to be terrible).

That said, I still prefer Thunderbird.

By using Debian stable you choose to use 1 or 2year old technology - so you'll have what I have in 2 years. Courage, that's just 24 month to wait ;-)

</comment></comment></comment></comment><comment><USER50> So is there anything that a normal developer could do to help fix these issues? After all, isn't one of the points of OSS that we should be able to mess with it and change it to our liking?

Or, am I correct in assuming that Linux has gotten so big and complex it'd be unreasonable to expect your average developer to be able to make a meaningful contribution?

I really enjoy using Linux, but I'll admit I still barely understand anything about it after using it for several years and it isn't from a lack of interest or trying.

</comment><comment><USER51> Main problems is still apps.

After 15years with OS X I'm more or less fed up with Apple for various reasons (some bad hardware, crashing and buggy OS, ...).

But what keeps me are the apps, like Lightroom, Omnigraffle, Sketch, Scrivener, ... - without them I'd use Linux.

</comment><comment><USER52> Hmm... I use Fedora (and have been for many few years) and have experience none (or _very_ few) of these problems.

In the past (5 or more years ago) there have been problems, and I had to tweak things a lot, compile projects myself, etc. With every release I had to do less of that, and the past years or two everything just works.

Seems the article is outdated.

Video: Just works. No tearing at all, automatically uses H/W decoding. External monitors just work. Resolution is automatically adjusted.

3D/GL: just works. Both Intel and NVIDIA (use Intel most of the time and simply start games with "optirun") I do not play the latest games. For that I use a Playstation/XBox.

Sound: just works. Local speaker, bluetooth external speakers, all just works.

GUI: Despite X11 being old it works remarkably well. I use GL compositions for desktop effects. KDE works flawlessly.

Printing: Just works. When I got a new network printer KDE found it, asked me whether I wanted to use it, then downloaded the driver and asked to print a test page. That's it.

And on top of this Linux enables me to always know what's going on when needed. I can drop back to a shell at any time and everything is accessible that way.

I also have a MacBook Pro from work. I have _way_ more problems with that one. Random hangs with the (admittedly pretty) spinning color wheel. It did not recognize my network printer. I had to tell it the IP address, find a driver myself, install that, and then play around for a bit until it finally worked.

Now I do a fair bit of software engineering on my machines, and so I might not notice the non-obvious things I do anymore. I also have the full development chain easily at my fingertips completely for free.

And I might very well be biased, since Linux is what I am used to.

Edit: Spelling

</comment><comment><USER53> This is my favorite -- _"! Applications development is a major PITA. Different distros can use a) different libraries versions b) different compiler flags c) different compilers. This leads to a number of problems raised to the third power. Packaging all dependent libraries is not a solution, because in this case your application may depend on older versions of libraries which contain serious remotely exploitable vulnerabilities."_

Sometimes I explain it that Linux is roughly 65,000 different operating systems with the same name :-) It isn't as bad as that of course but the freedom to choose means that people do choose, and the challenges of selling your non-opensource software into that pool of choices is insurmountable to most companies.

</comment><comment><USER54> _> Applications (GUI toolkits) must implement their own fonts antialiasing - there's no API for setting system wide fonts rendering. What??! Most sane and advanced windowing systems work exactly this way - Windows, Android, Mac OS X. In Wayland all clients (read applications) are totally independent. _

That's interesting, I didn't know that. Is that going to be a huge mess after Wayland transition (which is likely to happen in 2016)? I'm used to fontconfig managing global fonts settings. What will happen in Wayland case?

<comment><USER55> In both Windows and OSX there are multiple choices for included font rendering libraries, so I'm not sure what the author is on about. There is no "system- level" font renderer on any of the three major OSes, and frankly such a thing doesn't make sense from an engineering standpoint.

<comment><USER56> What choices are there?

On Windows, there is Uniscribe, DirectWrite (since Windows 7) and also the legacy GDI font rendering APIs. Probably Microsoft will never remove any of these options to ensure backward compatibility.

On Mac OS X, you use CoreText - the legacy QuickDraw Text is deprecated and not even available for 64 bit applications.

There are also applications that do not use the platform font rendering, e.g. Adobe has their own font rendering code and current versions of Chromium and Gecko use Harfbuzz on all platforms.

</comment></comment></comment><comment><USER57> This is a situation that hasn't changed much since 1996 and the story of why it hasn't changed is a lot more interesting than a large enumeration of the faults.

To compare it to Windows, Windows really has evolved a lot since the bad old days. Linux beat the pants off Windows 3.1 completely. Both Win95 and WinNT were unstable -- Win2K was the first decent version of Windows.

Linux 2.6 was the one really important thing that happened to Linux in all of that time because it was the first one that worked properly on multiprocessors.

<comment><USER52> That simply isn't true.

The Kernel is just one aspect of a Linux distribution. The part that is most responsible for supporting H/W. It has evolved a lot since 1996. Whenever I try I find the range of supported H/W is larger than Windows and (obviously) Apple.

On other fronts things have changes radically: Video, Sound, 3D/GL, GUI (KDE, Gnome), printing, etc, etc.

<comment><USER57> It has all changed and it is all busted.

<comment><USER52> OK...

Care to elaborate? Are/were you using a Linux distribution yourself? Or are you just parroting what you hear elsewhere?

</comment></comment></comment></comment><comment><USER58> It feels like most commenters on this thread have not read past the first page of that list, because the discussion ends at "my hardware works" or "my hardware doesn't work". There's much more on that list and imho everybody who cares about Linux should probably read past the first page.

</comment><comment><USER59> Hopefully the author is reading this: fix your ads! I can't even read 1 sentence on an android phone before your ads do full page redirects to spam. Completely unusable.

<comment><USER60> Not to excuse the owner but a friendly tip - use adblocking (Android uses a hosts file too!). Also helps with the rest of the Internet.

<comment><USER59> I've considered it before, but I've been avoiding using it on my phone out of some sense of social obligation. After my experience with this site, I think you're right and its time for me to put on ad blocking on mobile also. Its really a shame that a few irresponsible websites have to ruin it for everyone.

</comment></comment></comment><comment><USER61> I've been using Linux on the desktop daily since about 1998. It may look a little prettier today, but I find it crashes and freezes a whole lot more these days.

<comment><USER62> In my experience the kernel and drivers are better than ever, but the desktops are awful and have grown worse. When KDE 4 came out I went to simple window managers like i3 and fvwm. These are extremely stable but things as simple as looking at photos in file manager are painful, and forgetting how to change the clock when I fly to a new timezone is frustrating.

<comment><USER63> Unity, like it or not, is quite stable.

</comment></comment></comment><comment><USER64> There's a lot right about this, but some factual inaccuracies like this make me wonder:

 _Too many layers of abstraction lead to the situation when the user cannot determine why his audio input /output doesn't work (ALSA kernel drivers1 -> ALSA library2 ( -> dmix3 ) -> PulseAudio server4 -> Alsa library5 + Pulse backend6 -> Application - in other words, six layers of audio redirection; or seven layers in case of KDE since they have their own audio subsystem called Phonon)._

That's just not true. In the case of an application that directly supports PulseAudio, there are merely 3 levels:

ALSA kernel drivers -> ALSA library -> PulseAudio Server/library -> Application

In the case of an application that doesn't directly support PA (most that don't will support ALSA), it's one level little worse:

ALSA kernel drivers -> ALSA library -> PulseAudio server/library -> ALSA library (pulse plugin) -> Application

In that case, 4 levels of indirection.

If dmix is set up in the case where PA is being used, that's a bad system misconfiguration and the distro should be slapped.

So that's 3 levels of indirection for a "modern" app, and 4 if you need the compatibility layer. How are OSes like Windows and MacOSX designed? Unless they have a sound API that goes right to the kernel (and the kernel handles mixing if the hardware doesn't support it), I don't see how you can do much better than the current state of affairs, aside from having PulseAudio directly hit the ALSA kernel interfaces, which seems unnecessary.

(Note: for the purposes of debugging & figuring out why sound isn't working, I'm considering the PA server and library [or "backend" as the OP calls it] a single layer. It's true that there's an extra "hop" involved there, but in practice that's unrelated to any possible audio issue but latency, which isn't what the OP is talking about.)

</comment><comment><USER65> oh linux, don't listen to them... there will always be people who say your desktop experience isn't good enough. the reality for most of the computing world is that linux has already won, it's just that they're using everywhere _but_ the desktop. it's in robots, servers, billions of devices, every android phone, the boxes that power our tv's, inside our tv's now too, and it keeps spreading. if it isn't already, it'll be powering cars soon enough.

so linux... don't sweat the people who still don't have a working nvidia driver. it doesn't matter. not even a little bit. you do you, linux, and just go where ever people writing code take you.

<comment><USER66> Tesla runs Ubuntu in their cars :-)

</comment></comment><comment><USER67> Interesting list.

One of the biggest issues for me personally is the split effort. There are >300 distributions actively maintained, 300 projects whose sole purpose it is to package the kernel and some userland-stuff to make a usable operating system and provide for update mechanisms. 300 projects who spend resources on creating documentation, websites, giving support to users, ...

And the simple truth is: It does not matter too much which distribution you use, far too much weight is put on that. How much of what you do is distribution-specific? The type of init-system (mostly not important for a Desktop), the update mechanism, packages available, available/supported Desktop Environments / Window Managers, anything I forgot?

Most of the time you are running a browser, editor, terminal, video player, torrent client, openssh, steam, are using some version of python, ruby, perl, php, ... it quite simply does not matter whether you do these things on Fedora, Ubuntu, openSUSE, ArchLinux, Gentoo or FreeBSD.

Linus Torvalds described it in a similar manner once (too lazy to look for the link, but basically something like "I don't care too much about what distribution I use, I mainly work on the kernel anyways")

We are users, as such we use an Operating System in order to use programs.

The fragmentation probably mostly is rooted in the fact that it is quite easy to create your own distribution, and that many out there are head-strong people who are not patient enough to work their way up a command chain (regarding distributions with a democratic structure) or to succumb to what one dictator is saying. And some projects are just boring to work on, for example GUI-stuff or the code-monster Xorg.

I would not want to bundle all 300 distributions into 1, but (and this of course boils down to my opinion) 20 or so would do. It is important to have alternatives, like non-systemd distributions, rolling releases, source-based distributions, et cetera, but 300...

And if the focus is less on having 300+ distributions and more on making 20 or so distributions great, quality would rise without a doubt, not only ease of use, but also support, documentation, et cetera.

 _btw: Visited this page from Firefox, was greeted by the following:

Reported Web Forgery!

This web page at linuxfonts.narod.ru has been reported as a web forgery and has been blocked based on your security preferences.

Web forgeries are designed to trick you into revealing personal or financial information by imitating sources you may trust.

Entering any information on this web page may result in identity theft or other fraud._

<comment><USER68> Same issue here: "Reported Web Forgery!"

It doesn't seem valid, I already took a quick look on my phone and did not see anything phishy.

</comment></comment><comment><USER69> Linux has gotten much better.

I say this as someone who booted and ran some software on desktop fedora machine from 3 years ago this year (long story, but that machine has working custom software, not rewriting this year...).

Despite all the complaints, Desktop linux still remarkably better than it was just 3 years ago. That machine was almost unusable. Setting up the network on that machine was a couple hour ordeal. All the little fiddly parts that kinda work most of the time don't make for a great desktop experience. The server experience is exceptional however (I spent enough time on Solaris and HPUX to not miss those two at all)

</comment><comment><USER70> Linux' philosophy (generally open source') is to create a paradise for hackers and it has accomplished that and it should be content at it. GUI desktop is for consumers who are opposite to hackers. Trying to meet both ends are silly ambitions. I am not saying Linux cannot meet the consumer ends, but it need adopt an opposite philosophy from what it starts with. When that happens, some may be happy but hackers would weep (or would they? Wouldn't they just start another paradise?)

EDIT: on second thought, Google's android demonstrates my point.

</comment><comment><USER71> My usage patterns is close to "Chromebook + Android Studio" The rest is occasional use of Eclipse, Libre Office, a smattering of command line utilities, mainly for internet information (e.g. dig). I'm not a gamer. So Windows holds no attraction, and I dislike the effort needed to secure it against Microsoft and evildoers getting at my critical data. I bought a dead MBP on a lark and will get it fixed to see if I like MacOS X better. But despite ubuntu developing rather slowly, I'm not so discontented as to leave.

</comment><comment><USER72> Can't remember the last time I had an issue with suspend under Linux (years ago), but on my current desktop I never managed to get suspend to work under Windoes 7. Go figure.

</comment><comment><USER49> bla bla bla.. bunch of lines and lists all of which are refutable easily. sure linux is far from perfect (and far from bad, too) and thus there are a lot of potential valid criticism, none of which this article mention.

Therefore, the author just spent time typing down a load of BS/FUD probably intended for people who don't seriously run Linux on the desktop nowadays. wow:

So many items are misleading. Some of the links even lead to resolved bugs, did the author click them? Or the "no alternative to SMB". well duh... linux users... use SMB. simple as that.

Or another funny point - I'd like to see the author play with a windows laptop using optimus (its a POS), or seriously gaming on macosx with all AAA titles (oh, they dont exist, too bad, yet people still love it as desktop...)

Then there's list that "affect every linux user".. none of them affect me, I'm such a special snowflake! Not even one. Not even the video acceleration one that seem to be his "biggest point". Firefox uses gstreamer with hw acceleration support and h264 on youtube. In fact, my laptop uses much less power playing youtube videos on linux that on windows (turns out I do have a watt meter and I did use it when I got the laptop).

So yeah.. maybe the author should inform himself a bit before typing random things.

</comment><comment><USER73> i am turned off when the criticisms towards windows, whilst valid, typify the out-of-touch-with-reality-ness of many linux fanboys. real world users do not notice, much less care about these issues, nor want them fixed, nor would their user experience be significantly improved by addressing them. along similar lines they barely notice that linux exists at all.

there are good reasons why linux dominates the backend space, and windows dominates user space. linux caters very well to the power user and is discoverable with a lot of research - the kind power users will do. windows caters acceptably to the casual user and is so well known they needn't bother advertising (but continue to do so anyway...).

the one problem that is bigger than anything listed here, imo, is that the linux development community is building something they want rather than what others want and then not selling it to anyone especially well.

there have been great strides in this area, but its still not enough. ubuntu is a joy to install and use compared to linuxes of old. (i remember well struggling with 'red hat for dummies' in the 90s).

but... its not advertised in the mainstream or known about as an alternative - why its worth using etc. and appears that it might suffer the classic problems for regular users that put them off alternative platforms - things like "doesn't have MS Word which I (think) I need for work (because I've never even heard of OpenOffice or LibreOffice etc. let alone tried such things)"

its great to see that Dell offer it as an option these days, at least. but until more people know about it and understand that it won't prevent them from doing what they want, they just aren't going to use it.

<comment><USER74> What planet are you on? Of course real world users notice these issues. It's just that real world users eventually realise Linux isn't going to change so they go back to Windows (see Linus's various "I'm doing it right; shut up" comments on security, stable driver ABIs, etc.).

<comment><USER73> Earth. you might want to come back down to it...

a minuscule proportion will complain about those things.

the vast bulk of real world users haven't even tried linux or know it exists.

</comment></comment></comment><comment><USER75> This is a good opportunity for us to be positive and to list up-to-date resources that clearly list laptops that work on Linux, or what to look for, what models are good and not-so-good, what is Free and mostly-Free, etc, etc. I am looking for a "mostly-Free", modern Gnu/Linux laptop that I can purchase either new or recently second hand but am having a terrible time trying to figure it all out.

</comment><comment><USER76> #25 is wrong:

> There are no antiviruses or similar software for Linux. Say, you want to > install new software which is not included by your distro - <USER2> > there's no way to check if it's malicious or not.

[http://www.eset.com/int/home/products/antivirus- linux/](http://www.eset.com/int/home/products/antivirus-linux/)

<comment><USER77> Considering that most Windows AV products appear to be remotely exploitable and to actively install malware-like things, I think the lack of Linux support for these tools is a good thing.

</comment></comment><comment><USER78> On Android this link seems to go to a malware site. Anyone else see that?

<comment><USER79> I had the same problem. I tried three different ways of getting into the link (copy link to chrome, googling link, and of course from here) with the same spammy popups. Ended up emailing the article to myself so I could read if from my desktop.

</comment></comment><comment><USER80> One problem specific to gaming: Adjusting mouse pointer speed and acceleration is a huge pain.

I've tried SteamOS for gaming but especially playing FPS type games is really bad with acceleration. Disabling it usually requires X.org config changes and knowledge of some semi-arcane acceleration math. It's doable, but certainly not in any way easy.

<comment><USER81> If you're just using xset, you're missing out massively.

Use xinput instead, it gives you full access to all of X's acceleration profiles and all the parameters you can tweak with them.

[http://www.x.org/wiki/Development/Documentation/PointerAccel...](http://www.x.org/wiki/Development/Documentation/PointerAcceleration/)

I cannot agree more that said xinput interface could do with a UI though. Not because I hate the commandline but because repeatedly entering long commands with numbers just kills it for me - there's no rapid feedback loop.

And so I continue to avoid using my ThinkPads' Trackpoints because I can never get them to a point where they aren't a strain to use.....

</comment></comment><comment><USER82> The HiDPI point is pretty critical - many higher end laptops these days have HiDPI screens, and HiDPI desktop monitors are getting affordable. I think with GNOME you only get integer scale factors: way too tiny or way too big on most HiDPI screens.

<comment><USER83> >I think with GNOME you only get integer scale factors: way too tiny or way too big on most HiDPI screens.

OS X has the same property (of giving only integral scale factors).

</comment></comment><comment><USER84> Anyone else having trouble viewing this page? I'm on iOS and every time I go to the link it redirects me to a page claiming I "won" a "reward" with an alert box that I can't dismiss without tapping OK.

<comment><USER85> Well that would explain why I get

         Deceptive site ahead

         Attackers on linuxfonts.narod.ru may trick you into doing something dangerous like installing software or revealing your personal information (for example, passwords, phone numbers, or credit cards).

</comment></comment><comment><USER86> As a developer I feel neither Windows nor Mac OS are ready for the desktop. Windows is almost completely useless and you need to immediately resort to Cygwin or a VM to get anything useful done. Mac OS is much more useful out of the box but lacks up-to-date packages and a good package manager. I haven't used Mac OS recently enough to comment on Homebrew, but the last time I tried it was no where near as robust as many Linux package managers are. Arch Linux has a huge amount of user-submitted packages so that even relatively unknown projects tend to be easy to install.

</comment><comment><USER87> Thanks you so much for putting a stop snowing link in. We released some christmas easer eggs without any way to turn the music off or make the snow stop and it drove everyone insane :P

<comment><USER81> I think Arc messed up: your comment is in [https://news.ycombinator.com/item?id=10812214](https://news.ycombinator.com/item?id=10812214), a thread about all OSes needing to die horrible deaths.

I'm very curious about whatever context this comment was intended for though :D

</comment></comment><comment><USER88> This "Android is not Linux" meme is pretty silly.

"Android contains the only Linux component - the kernel" can also describe any distribution/OS using Linux.

<comment><USER42> So how does classifying Android as being Linux help anyone? Who does that definition help? The most important drivers (video, camera) aren't compatible with desktop, userspace isn't either, most binaries won't work properly due to use of libbionic, etc.

So what kind of useful definition is "Android is Linux" when you can't really reuse any Android components on desktop Linux distributions?

<comment><USER88> It's just completely arbitrary. Other than "It uses a linux kernel" there's no list anywhere of what makes something "a real Linux". Everything around the kernel is a pile of reusable components that make up an operating system.

As far as I can tell there's no gatekeeper that says "Tool A in combination with the kernel is a real linux, but android components don't count." And no one could be that gatekeeper because Free Software lets people use what they want. So who draws that line?

This is a list of complaints of what happens when putting certain blocks that make an OS not work like a cohesive whole. One vendor (Android) decided to use an entirely different set a blocks (as is their right), and then people are like "Well that doesn't count." How does it not count? If you don't like the set of blocks that are out there you make your own blocks, that seems to be a fundamental point of using OSS in the first place, the right to say "I want to use different blocks". It's not any less a Linux than my Ubuntu machine or my Nest thermostat or whatever flavor is on my router.

</comment></comment></comment><comment><USER37> When you think Gnome, you probably think Fedora. Fedora and Gnome are buddy- buddy, and being basically the upstream of RHEL makes it the place to be if you are big on Gnome. KDE has Kubuntu, kind of, since its sponsored by Blue Systems, but there is a huge issue with how KDE is presented to users in that the Ubuntu release cycle has no correlation to the KDE one, and since Plasma 5 has started shipping in Kubuntu that problem has become a catastrophic deal breaker. The KDE community made a great move by breaking up the release cycles of frameworks / plasma / applications, but Ubuntu itself does not care - <USER3> lead to releases like 15.04, where 5.2 was shipped despite 5.3 coming out the same week and being significantly more stable, but Kubuntu users would never see that release until 6 months later. Now, 5.5 is out a few months after 15.10, and again a much more stable release won't see Kubuntu until April of next year.

I'm pretty high on the KDE koolaid, and contribute a lot to the project, and it is the most painful experience to know there is no actual answer to the question of what distro I should be recommending to people for a KDE experience. A sane KDE distro should be shipping these new updates after a testing period - all at once, preferably, I use Arch mainly but its release model also conflicts with KDEs since - for example - 5.5 came out developed against upstream Frameworks which eventually released weeks later as 5.17 (frameworks are released monthly), but 5.5 with 5.16 was broken as hell. Applications 15.12 came out weeks later after that, and were a seamless upgrade because they were _also_ developed against the same Frameworks version, but they were already available and thus everything went swimmingly.

Fundamentally my point is that I imagine despite Fedora and Gnomes friendliness, the problem happens there too. It doesn't hurt that software availability on Fedora is awful and it is not presented at all as a consumer desktop since its more of a test bed for RHEL. Distros today are shipping around either fixed releases - that because of the fragmentation of the ecosystem nobody is targeting upstream - or around arbitrary goals, which can be years of waiting (cough, Suse, Fedora). But on the flipside an average user almost certainly does not want a fully rolling release like Arch, because breakage in Arch often doesn't stop a package from being pushed to release (and often those bugs are missed because Arch doesn't have enough users of testing to catch everything) and the constant churn means your system only works precariously in its current configuration - trying to roll back _anything_ on Arch is insanely hard, because everything is built against the latest and greatest of everything else. Thus, there remains significant value in releasing updates at once.

What I really wish we had was Kubuntu, sponsored by Blue Systems, just with updated userspace software on a regular basis (feel free to freeze the LTS, or even have two repos at install - frozen or not) This problem is mentioned in the OP, but it can be soul crushing for a developer in this purgatory because your fixes and improvements may not see the light of day for almost a year or more.

Personally I'd love to see an Arch derivative (since it has IMO the least age rot and bloat of modern distros, cough Suse /etc/init.d after having systemd for years) that just did frozen monthly releases. You release, you wait two weeks, you freeze, you test, you release again all at once. Users get latest and greatest but you can also hold back anything broken until its unbroken. But that kind of commitment requires work, the kind of work you cannot just throw on hobbyists and hope gets done, the kind that needs salaries and business. I still wonder why there isn't any commercial presence of full stack computer vendors of Gnome / KDE - boutique vendors that ship distros running non-Ubuntu that then use their revenue to develop it.

That was a lot of typing, but just some anecdotal remarks:

Linux grsec is the greatest security project ever, and nobody supports it. Selinux / Apparmor / Tomoyo are all trash by comparison, and Arch's stock kernel doesn't even have MAC at all. It is also probably the greatest notch in Linux's belt over Windows that it _can_ be objectively secure, when you actually care about security _cough_ Wayland. There is a distro I see in my dreams that has secure packages, user repositories, and PAX enforcement to prevent malware from accessing anything but its own personal .config file and .share directory. Users can install their own packages rather than having to install them systemwide, but the package manager is smart enough to promote software installed by multiple users to a shared hierarchy rather than duplicating space usage. And the filesystem layout makes sense (/usr...).

xdg-app is supposed to be this pancea that saves the desktop from application fragmentation. It should give us sandboxing, appstream metadata dependencies so we don't need insane duplication of all the system libraries like in click packages, and a puppy. Lets see if that ever happens.

Audio will never get better. Just use pulseaudio and fix it where you can. I'm working on improving plasma-pa for KDE right now to make it more like the old Veromix widget (which was great). It already does its job of catching ALSA applications that would try to steal the soundcard, and rather than try to throw away all the work that went into it we just need to make it suck less.

<comment><AUTHOR> I found that using Eclipse on KDE lately was very problematic.

Something about SWT requiring Gnome themes, that had been recently unilaterally converted to use CSS for styling, or something...

Gah!

It took lots of fiddling to be able to open dialogs on Eclipse without crashing the whole application, and even after all that fiddling it never worked right.

Had to switch to Gnome to get it to work right, on linux, but hated that...

I know it's not KDE's fault if Gnome wants to change how it's themes work, or that SWT uses gnome, but between that and systemd making everything utterly confusing I don't use linux as a desktop os anymore, despite using it since Yaggsdril.

tl;dr: I now develop on OS X now, so I can open dialogs in Eclipse without crashing.

<comment><USER89> Add the following to your eclipse.ini:

\--launcher.GTK_version 2

Alternatively set the environment variable SWT_GTK3 to zero to launch eclipse:

export SWT_GTK3=0; /path_to_your_eclipse/eclipse

As a side benefit: GTK2 with a compact theme will also make a much better use of your screen real estate. Especially important, if you want to work on laptop with a small screen diagonal. GTK3 as it comes out of the box is just ridiculous in this regard. Eclipse is completely unusable with GTK3 on my 1200x800 12" machine because of that.

</comment></comment></comment><comment><USER90> At home: Older Thinkpad (x220) with ssd. Slackware 14.1/Microlinux desktop. Seems to work OK. Noticed no mention of xfce in the OA.

At work: Dual core atom small form factor PC. Large and bright 19" monitor (I swapped for an 1280x1024 one as I don't like letterbox format monitors). Windows 10 for Education works OK and has stable graphics drivers for the PC.

I suspect my use cases are so basic any reasonable system would cover them.

</comment><comment><USER60> Quite a few of the points only cause problems to closed source development whilst having a positive effect on open source development. I don't think it's objectively a bad thing.

</comment><comment><USER91> >You can thank me by clicking the ad at the top of the page ;-)

Not a good idea.

</comment><comment><USER92> The biggest problem is that the moment I touch the screen the page redirects to advertising and malware.

</comment><comment><USER93> I'll add:

NFS home directories don't seem to be tested by KDE developers, taking 30seconds or so to start fully everytime you move machine because they generate stuff in /tmp.

Most programs don't take quota into account when calculating free space, and fail in weird ways when it gets exceeded

Cups password authentication can't send a prompt to the user. Windows did this in XP (OSX has this problem too)

</comment><comment><USER94> FYI I just got redirect spammed to a phishing/virus site when loading the link on Android.

</comment><comment><USER95> This link has ads that are trying to execute malicious code (I'm on mobile).

</comment><comment><USER96> This sounds like it's finally going to be the year of Desktop Linux.

</comment><comment><USER97> FYI mozilla has this site flagged. Not sure if this is a joke or real.

</comment><comment><USER98> I agree with all the points here.

Despite all of this, Linux is still my preferred desktop. Why?

The power! I can literally do anything with it. Including writing my own drivers/applications. Linux is my go to for doing things with zero crap. The same can't be said for Windows nor Mac.

For me, this pro weighs very close to all of the cons I have experienced, experience daily, or will experience.

Also as a desktop Linux user since 2002, it has gotten a lot better. Xrandr and pulseaudio apt-get are good examples of this, despite their design criticisms.

Of the things he listed, the things I would like to see most:

* application-level Sandboxing

* stable and universal high level application API, like Win32/GDI32/DirectX or Cocoa. GTK2+/Xlib/Xwhatever really dropped the ball here. An API that not only assumes a file system, or additionally a graphics system, but an all-encompassing _desktop_.

* stable and universal application packaging

<comment> Const-me "same can't be said for Windows" is subjective. I can do literally anything with my Windows. Including writing my own drivers/applications. And I can't say the same about Linux. Not because that's impossible, but because I ain't a Linux developer.

</comment></comment><comment><USER99> > Windows, in some regards, is even worse than Linux and it's definitely not > ready for the desktop either.

uh huh.</comment>


Nordstrom Acquires Flash Sales Site HauteLook For $270 Million  - <AUTHOR> http://techcrunch.com/2011/02/17/nordstrom-acquires-flash-sales-site-hautelook-for-270-million/ <comment><USER3> The whole local coupon / flash sales aspect seems really easy to launch - <USER2> too much technical complexity involved etc.

However, as established retailers try to launch their own 'flash sales' site, they realize that it is not as easy (operationally) as it seems from the outside. Flash sales / local coupon sites have to fight a dual battle: one to acquire users/customers and the other to acquire great merchants / deals.

That explains why many of them will end up acquiring existing players so that they can 'hit the ground running'

<comment><USER4> There is one key difference. Physical goods.

The logistical challenges of warehousing and shipping physical goods reliably, quickly and with the added complexity of the fact that every day you are dealing with around 100 brand new SKUs that will _only_ be sold for that day... are significantly higher than delivering a virtual coupon to a customer via email. Significantly.

That is why there are many, many Groupon wannabes, and decidedly fewer Gilt wannabes.

<comment><USER3> actually, they're not that bad for gilt/hautelook etc. if you compare them with other online retailers. Most of the flash sales sites use some sort of dropshipping (brand / manufacturer ships goods to gilt/hautelook and they ship to customer after sale is over) -- contrast this with other retailers where a lot of them stock inventory before hand.

<comment><USER4> well, I do have something of an insider perspective - my startup is in this business :)

most flash sales sites will do a mix of warehousing and dropshipping depending on brand. it's faster to ship with warehousing so obviously for popular brands it's better to warehouse (your customer gets their order quicker). dropshipping has other benefits such as managing risk, but brings with it logistical problems e.g. the possibility that you could PO for stuff that doesn't exist because of a mess up earlier in the process, and then you have to explain to customers that sorry there was only 4 pairs of those shoes not 5, and you don't get yours - entirely possible when you work with a different brand (small/large companies) every day.

I can tell you that despite the lack of need for warehousing, dropshipping still brings with it many logistical problems of its own!

</comment></comment></comment></comment><comment><USER5> Here's a recent net@nite interview with Greg Bettinelli, senior VP of HauteLook, recorded Nov. 30, 2010: <http://twit.tv/natn179> (Interview starts about halfway through)

</comment><comment><USER6> High fashion sales is an interesting phenomenon. It is the equivalent of beanies babies for adults. They have high perceived value, limited quantities, and are designed to be very collectible. Brand designers can create limited editions that specifically sell through these flash sales outlet and not be worried they will cannibalise their price premium.

</comment><comment><USER7> I use Hautelook a lot (don't ask :) ). They are a pretty useful site and they have good inventory. They've also done a good job of competing with Gilt (which is the 800-pound gorilla). Good exit for them

</comment><comment><USER8> Tech Bubble? Yes, sir.

<comment><USER9> Not so fast. This is a site selling real stuff, making real income.

<comment><USER10> How are they making money? Are they taking a cut out of whatever is sold?

<comment><USER11> Yes.</comment></comment></comment></comment>


DragonflyBSD v5.0 released - <AUTHOR> http://lists.dragonflybsd.org/pipermail/commits/2017-October/626587.html <comment><USER2> It's not released; it's just tagged. Seriously, I haven't even finished building the release image yet.

<comment><USER3> Thanks! We've buried this thread so we can have one for the actual release materials.

</comment></comment><comment><USER4> I really wish Dfly had more shine (especially in the cloud space), because I would like to see how the hybrid mono/micro kernel architecture compares to todays heavy monolithic architectures in terms of raw transaction speed and stability at scale.

</comment><comment><USER5> [https://www.dragonflybsd.org/release50/](https://www.dragonflybsd.org/release50/)

> Preliminary HAMMER2 support has been released into the wild as-of the 5.0 > release.

</comment><comment><USER6> Dragonfly was certainly my favorite BSD, but not enough for me to leave Linux and OpenSUSE.

<comment><USER7> supports only x86 so deal breaker

<comment><USER8> Just to clarify, you mean there's no (official) build for ARM/MIPS/etc, right?

DragonflyBSD itself is officially supported on x86_64.

</comment></comment></comment><comment><USER9> Looks interesting! Anybody using it? Couldn't find the answer on the web.

<comment><USER4> Yes I run DragonFly 4.6 in my VMWare cluster and use it mainly as a file server.

</comment></comment><comment><USER10> Congratulations! Is there a more detailed changelog available?

<comment><USER11> [https://www.dragonflybsd.org/release50/](https://www.dragonflybsd.org/release50/)

Scroll down to "All changes since DragonFly 4.8"

Or the 3 links in the 3rd paragraph...</comment></comment>


Is there a regular expression to detect a valid regular expression? - <AUTHOR> https://stackoverflow.com/questions/172303/is-there-a-regular-expression-to-detect-a-valid-regular-expression <comment><USER3> > Is there a regular expression to detect a valid regular expression?

No, there is not. For example, parentheses in a regex must be balanced, and (famously) there is no regex to detect balanced parentheses.

<comment><USER4> It depends on the representation. If the representation is in the FSA format (state, character, state), it becomes nearly trivial.

<comment><USER5> An analogous problem for this representation would be detecting transitions to undefined states, or ambiguous (duplicate) transitions.

<comment><USER4> I didn't verify it, but my intuition says that can't be done with a CFG; it seems at least context-sensitive.

</comment></comment></comment></comment><comment><USER6> "Evaluate it in a try..catch or whatever your language provides."

"That's not very enterprisey of you"

Oooh, I'm laughing so hard it hurts. It's been a particularly 'enterprisey' week at work.

<comment><USER7> That answer feels entirely wrong to me. As pointed out, it may be an XY answer: It presumes the person posing the question wants to validate regular expressions.

But with something so blatantly self-referential, it actually feels unlikely to me that what they want to do is validate regular expressions. My guess is that they are generally curious about whether Regexen (PCRE or strict regular expressions) are powerful enough to validate Regexen (again whether PCRE or strict).

XY answers are good for avoiding a lot of unnecessary yak-shaving/accidental complexity of a bad solution. But the conversation around whether we are talking about recognizing strict Regexen or PCRE Regexen, and in turn whether we are using strict Regexen or PCRE Regexen to recognize them is not accidental complexity or yak-shaving, it is intrinsic to understanding the nature of the problem and solution spaces.

I too find the answer humorous for the "enterprisey" reference, but I think it would be a very bad answer if we are judging it strictly on the basis of its value.

</comment></comment><comment><USER8> I believe Zalgo has the answer to this, via an equivalent question. [https://stackoverflow.com/questions/1732348/regex-match- open...](https://stackoverflow.com/questions/1732348/regex-match-open-tags- except-xhtml-self-contained-tags)

<comment><USER9> Perhaps the most epic reply I have ever seen on SO.

<comment><USER10> It's a famous post on StackOverflow, but I don't find it particularly helpful.

<comment><USER11> I don't think that answer was written with the intent of being particularly helpful, I think it was written with a different goal in mind.

<comment><USER12> It _is_ helpful in that almost koan way though.

</comment></comment></comment></comment></comment><comment><USER13> We see good examples of "the problem with StackOverflow" here.

The second highest-rated answer is "Evaluate it in a try..catch or whatever your language provides." and it's justified because "Surely the real question is 'how do I validate a regular expression'."

This is a fascinating computer science question and I'm pretty sure the questioner wasn't asking "how do I validate a regular expression" because he would have asked that.

<comment><USER14> > I'm pretty sure the questioner wasn't asking "how do I validate a regular > expression" because he would have asked that.

In my experience, people sometimes ask for how to solve the more immediate detail they're working on rather than the broader problem.

<comment><USER15> This came up recently. Going to start calling it the XYZ problem

[https://news.ycombinator.com/item?id=20861806](https://news.ycombinator.com/item?id=20861806)

Edit: page refreshed and sure enough the sibling comment calls it out by name

Edit2: Called it the XYZ problem: [https://cohan.io/the-xyz- problem/](https://cohan.io/the-xyz-problem/)

</comment></comment></comment><comment> GuB-42 An interesting question would be "which regex variant can be parsed by itself, and how?".

Parsing simple regex with PCRE is cheating. If you are using PCRE, you should be parsing PCRE.

The simplest case would be DOS style globs with just * and ?, and it can parse itself: just use "*".

</comment><comment><USER16> I hate it how the accepted answer is incorrect and does not teach the fundamental property of regular expressions.

<comment><USER17> It only works in practice, not in theory.

<comment><USER18> It doesnt work in practice, PCRE does not validate all valid PCRE expressions.

</comment></comment></comment><comment><USER19> The answer is as horrifying as you'd expect, but impressive nonetheless. Recursive regex is really fun and powerful, when it works.

I once made a recursive regex for matching a full name, complete with checking for suffixes, prefixes, an undefined amount of middle names, hyphenated last names, and Scotch-Irish names (Mc-, O'-, etc). Still simpler than this monstrosity.

</comment><comment><USER20> I've always been mildly amused by the fact that while regular expressions are a context-free language, context-free grammars are a regular language.

</comment><comment><USER21> My first thought seeing this title: "Why, no. Next!"

My second thought: the voice of Linus Torvalds at DebConf 14 saying "Hum… No! Hum… that was quick." [1]

Though this is only speaking about a recursively defined regular expression language which is infinite, which strictly handles regular languages, as defined in computer science lessons in university.

And then, "Why not just try and see if it breaks the provided regex parser since you have one?", and it's actually one of the answers in the link… awesome. I wonder it is has security implications though (are forged regexes exploiting flawed regex parsers a thing?)

[1] [https://youtu.be/5PmHRSeA2c8?t=110](https://youtu.be/5PmHRSeA2c8?t=110)

<comment><USER22> > are forged regexes exploiting flawed regex parsers a thing?

Looks like yes, depending on the engine.

PCRE for instance has a long list of security vulnerabilities including some with arbitrary code execution: [https://www.cvedetails.com/vulnerability- list.php?vendor_id=...](https://www.cvedetails.com/vulnerability- list.php?vendor_id=3265&product_id=0&version_id=0&page=1&hasexp=0&opdos=1&opec=0&opov=0&opcsrf=0&opgpriv=0&opsqli=0&opxss=0&opdirt=0&opmemc=0&ophttprs=0&opbyp=0&opfileinc=0&opginf=0&cvssscoremin=0&cvssscoremax=0&year=0&cweid=0&order=1&trc=38&sha=3be670e89a2d45bd0df8736dd00d2179b59636da)

</comment></comment><comment><USER23> Basic classical regular expression syntax without grouping parentheses is trivially regular. With parentheses, the maximum nesting level must be bounded to remain regular because "regexpes can't count".

</comment><comment><USER24> Maybe I'm taking this a step too far but doesn't Gödel's Incompleteness Theorems ([https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_...](https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems)) state that a language can not define itself? You need a meta language to be able to define and specify a language in its entirety.

In other words, regex can not parse regex in its entirety. It's impossible.

<comment><USER25> Can a C program parse C source code? A Java program parse Java source code? Yes, they can, so such a general limitation couldn't be the reason regular expressions can't parse themselves.

Perhaps you had in mind the Halting Problem: [https://en.wikipedia.org/wiki/Halting_problem#G%C3%B6del's_i...](https://en.wikipedia.org/wiki/Halting_problem#G%C3%B6del's_incompleteness_theorems)

</comment></comment><comment><USER26> It may be noted that regular languages (as in compiler design) do not have such recursive constructs.

</comment><comment><USER27> No. I wrote about this awhile back ([https://reindeereffect.github.io/2018/06/24/regex/#the- limit...](https://reindeereffect.github.io/2018/06/24/regex/#the-limits-of- regular-expressions)). From that post:

[M]atching parentheses requires our recognition device to remember how many unmatched open parentheses there are. Since the only way for a DFA to remember anything is to be in one of a set of states corresponding to it, and since the unmatched open parentheses could easily outnumber the available states, we can see that the fundamental limitation of a DFA is that it can store only a finite amount of information (remember the 'F' in DFA?). This limitation applies to any string matching task that involves recursive structures or algebraic relationships between substrings. It is why "HTML and regex go together like love, marriage, and ritual infanticide."

</comment><comment><USER28> IIRC, regex can be implemented by an NFA which can't solve balanced parentheses that are part of regex syntax.

<comment><USER29> Correct, though there are multiple interpretations of what a "regex" is. In the theoretical sense you're correct, though some (most programmers, I'd say) mean "PCRE" when they say regex. And PCREs are pretty powerful, see [1] for example

[1] [https://news.ycombinator.com/item?id=9748736](https://news.ycombinator.com/item?id=9748736)

</comment></comment><comment><USER30> So, given the much discussed limitations of reg-exps and the desire to parse context-free grammars. My question is, why are we still using regular expressions. Or rather, why isn't there something as easy to use as regular expressions that _can_ processes context-free grammars?

<comment><USER31> Something like Perl6 grammars[1], or maybe Rosie Pattern Language[2]? Of course Perl6 regexes also go well beyond regular expressions, and I suspect they could be used to match context-free grammars if pressed hard enough. Both P6 grammars and RPL are based on parsing expression grammars, and there are also tools/libraries for many other languages based on PEGs. But now you are entering in the scary realm of parsers and parser generators and all that jazz, and can debate how easy to use they really are.

[1] [https://docs.perl6.org/language/grammars](https://docs.perl6.org/language/grammars)

[2] [https://developer.ibm.com/open/projects/rosie-pattern- langua...](https://developer.ibm.com/open/projects/rosie-pattern-language/)

<comment><USER25> PEGs are amazing precisely because they're as easy to use as, if not easier than, common regular expression syntax. PEGs are literally the same as regular expressions except 1) alternations are _ordered_ , 2) zero-width assertions are formalized, and 3) quantifiers match greedily. This is effectively the same behavior as the Perl-compatible regular expressions with which most people are familiar.

Many PEG engines, especially for dynamic languages, permit grammar composition using first-class variables. That might be a small barrier to people more familiar with the terseness and conceptual simplicity of regular expressions as string'ish values. But it's fairly trivial to implement the latter using PEGs. For example, LPeg provides a small auxiliary module for doing that: [http://www.inf.puc-rio.br/~roberto/lpeg/re.html](http://www.inf.puc- rio.br/~roberto/lpeg/re.html)

Also, Rosie seems amazing. I've not yet had the opportunity to make use of it, but I attended a presentation of Rosie by the author at a Lua workshop which left me very impressed.

</comment></comment></comment><comment><USER32> This is perfect example of a insight which leads to a rabbit hole of intertwined complexity of our concepts when you try to understand why regexp for validating regexp is actually much simpler than regexp for validating email address.

<comment><USER33> It depends what you mean by "validating email addresses".

A regex that tests if a string looks like a valid email address is simple. Forget the ancient RFCs, a real world email address is in the form of `mailbox@domainname`. Which is not so difficult to test for with a bit of care.

However, testing if the email address is a valid mailbox is harder and indeed impossible using regex alone. The domain name can be validated using standard domain tools but in practice the mailbox can be anything that the server will route to a valid mailbox. The only way to validate it is to send an email.

<comment><USER34> Even then, there is no way to determine if there is a 'catch-all' address configured, or some email tarpit.

I have a domain w/ a .tech TLD, and quite a few frontend JS validators do not accept my email as a valid address (government sites, some banks).

</comment></comment></comment><comment><USER35> "Regular Expression Matching Can Be Simple And Fast" [1] is worth a read (by Russ Cox of Bell Labs and Go fame).

[1]: [https://swtch.com/~rsc/regexp/regexp1.html](https://swtch.com/~rsc/regexp/regexp1.html)

</comment><comment><USER36> A regular language for writing regular language recognizers is an interesting thought exercise.

</comment><comment><USER37> Don't use a regex to do it. Most of languages have a way to catch runtime errors. Stick regex to a variable, create a dummy input and run that block with a catcher around it. If catcher throws a runtime error, you have a bad regex. If it does not, you have a valid regex.

</comment><comment><USER38> Another way to phrase the question: Are regexes self hosting?

</comment><comment><USER39> TL;DR: No. But there exist languages built _on top of_ regular expressions (notably PCRE) that can. They can't validate _themselves_ , though - <USER2> all the way down to Gödel.

<comment><USER40> Plenty of parser formalisms can define their own syntax in their own syntax. As mentioned elsewhere, C compilers can parse their own source code. Gödel has nothing to do with it.

</comment></comment><comment><USER41> it would become conscious

</comment><comment><USER33> Why would you want a regular expression to detect a valid regular expression?

<comment><USER42> Probably to check if a regular expression is valid

<comment><USER33> Yes, checking to see if a regular expression is valid is useful but that wasn't what I was asking. Why specifically would you want to use a regular expression for this job?

<comment><USER42> The simplest explanation is because you already have a lot of functionality implemented this way.

Still probably the library you are using exposes a validation function...

</comment></comment></comment></comment><comment><USER43> There isn't even a regular expression to detect a valid _email_ , bruh.

</comment><comment><USER44> I did enjoy the comment with the Xhibit/Pimp my Ride reference.</comment>


Show HN: Parrot Hunt – Not quite like Duck Hunt - <AUTHOR> http://parrothunt.nergal.se

<comment><USER2> I keep getting "[Error] connection to server lost. Please reload the page." constantly. Could be because of a traffic spike.

<comment><AUTHOR> Yes, might be, suddenly there were rather much traffic. But what browser/OS do you use?

</comment></comment><comment><AUTHOR> Works best with Google-Chrome or FireFox. Browser needs to support WebGL.</comment>


Ask HN: Is Facebooking/Twittering worth the time? - <AUTHOR>

I quit Facebook about 5 years ago.  My online influence has decreased to essentially zero and I'm wondering if I should start posting stuff on Facebook again, or tweeting stuff.  It seems online friends are necessary these days.  Any thoughts from the HN crowd? <comment><USER2> A Facebook/Twitter account is basically an opportunity to publish your 'digital ego'.

Its the reason apps like Instagram exist- they allow you to polish your images so that you can basically tell the world, "hey look how much fun I'm having, and you're missing out"

Facebook/Twitter/ in fact a lot of these publishing platforms exist to weed out the mundane parts of your life so that what is public is the most exciting, jealousy inducing 'Cliffs Notes'.

Essentially, thanks to them, when you die, people will be able to look at your profile or your tweets and mourn, "that person lived such an interesting life."

Whatever you opine upon reading this is your answer to your question (as I see it)...

</comment><comment><USER3> I don't think facebook is really worth it anymore(if it ever was).

As uniclaude said blogging is a great way to get out to an audience in your related niche. Get those people to interact with you on twitter as well and you have a good group of people.

I would stay away from most things more than that. Social media can take a very quick turn from building an online influence to wasting your time reading random things.

</comment><comment><USER4> If it's only about your online influence, I highly doubt that "Facebooking" is worth it. I'd suggest blogging on your area of expertise, and yes, being active on twitter might be worth it.

If you're a developer, a few meaningful contributions on Github will be worth all the posts you can write on Facebook.</comment>


LLVM Foundation Granted 501(c)(3) Nonprofit Status - <AUTHOR> http://blog.llvm.org/2015/08/llvm-foundation-granted-501c3-nonprofit.html

<comment><USER2> Would be interesting to read some more details about how this got through, and what the pitfalls were, along with solutions to them. As I understand it, the main tension is that things that look more like industrial consortia, developing common technology primarily for the benefit of an industry, don't qualify as charities, though they may qualify as other kinds of nonprofits. For example, the Khronos Group, steward of OpenGL, is an industry consortium and not a charity. While organizations primarily aiming to educate and serve the general public, rather than primarily to improve the technology or standards in an industry, can be charities. LLVM as a project seems—to a non- lawyer—like it could go either way, since it has elements of both types of goals.

<comment><USER3> I have an open source project that's in an early stage, and I'm trying to figure out whether structuring it as a nonprofit is a good idea. I'm quite curious to hear more about the reasoning behind this decision as well.

<comment><USER4> Creating your own foundation is a huge amount of work. I think you would benefit from doing this research, and I'm not going to tell you "don't do it" because it won't be convincing, but I predict that in the end you will not choose to start a foundation.

There's a chapter in Van Lindberg's _Intellectual Property and Open Source_ on this topic. (It ends with a discussion of umbrella foundations like Apache, Eclipse, Software Freedom Conservancy.) Check it out: [http://www.amazon.com/Intellectual-Property-Open-Source- Prot...](http://www.amazon.com/Intellectual-Property-Open-Source- Protecting/dp/0596517963)

<comment><USER3> I've never thought of a nonprofit as a foundation. Are they equivalent?

The primary appeal for me as a nonprofit is declaring unequivocally that profit is not the goal of the project, and to facilitate donations to support ongoing development. I am aware of the need to establish a board; I've been a board member on a nonprofit, and I've been involved with nonprofits in a number of other roles as well.

I think of a foundation as an umbrella organization, much different than a small nonprofit. Is there anything fundamentally off about my understanding?

<comment><USER5> "Foundation" is just a part of a name, in the US at least. There are definite connotations to using Foundation in your name, like those you described, but anyone can use it. Conversely, nonprofits can be of near any side, from a local community entity doing volunteer work, all the way up to big entities like planned parenthood. So, they're not equivalent, and do in fact have tendencies for a large amount of overlap.

</comment></comment></comment></comment></comment><comment><USER6> This foundation is the best thing to have come out of GPLv3. Cos of it Apple had to support LLVM which has made compiler research and quality increase by leaps and bounds. Thanks to the authors of GPLv3!

<comment><USER7> What is the use of better compiler technology if you are prevented from modifying your devices and limited to running "approved" applications?

I would rather have freedom over speed, especially when the standard phone today is far more powerful than the computers onboard the Apollo 11.

<comment><USER6> No license is going to fix your issue if the device vendor is unwilling. Look at the current state of Android devices. It is using gcc as the default compiler. Even if Apple used gcc they would lock their devices the same way. Compiler is not the reason for this.

<comment><USER7> Agreed but you implied the GPLv3 was useless and I felt compelled to defend it. GPLv3 does help with tivoisation. That is why corporations dislike it.

</comment></comment></comment></comment><comment><USER8> What does it take to get 501(c)(3) nonprofit status?

Do you think we can do it if we want to make the Qbix Foundation around our open-source platform?

<comment><USER9> It requires you fit into one of their accepted categories and about 8-10 months normally. If you expedite it, it may take as little as 2-4 months.

I was able to get mine done in about 3ish months.

<comment><USER8> Can you apply with a NEWLY formed organization?

</comment></comment></comment><comment><USER10> So apple can now count money they pay to work on their compiler as a tax deduction?

<comment><USER5> As can Google, Intel, the mesa project, and a lot of other donors and contributors. As much as certain people would like for you to believe otherwise, llvm is far, far bigger than any one company.

<comment><USER11> What he said. LLVM these days is huge.

<comment><USER12> It hasn't been an all Apple show for quite a while. If you look at the past meetings on [http://llvm.org](http://llvm.org), the first few mostly had speakers from Apple and academia, but for instance [http://llvm.org/devmtg/2010-11/](http://llvm.org/devmtg/2010-11/) (November 2011) already has speakers from Google, AMD, ARM, Sony Pictures and Ericsson Research.</comment></comment></comment></comment>


Ask HN: How to handle the first round of funding? - <AUTHOR>

Hi. We got rejected in YC this year, and we are motivated to move on, but we have a huge problem, we will soon run out of cash, we are now working on this project and we don't have the time for anything else right now.
Let me get to the point. We get the product up and running and we receive some funding (Seed or Series A funding whatever you would like to call it), we don't know if is appropriate to discuss with the investor a minimum salary for us (2 developers / funders) ?
If so we are thinking to ask as little as possible at start in order just to cover our expenses.
And one more thing, once we have an offer from a VC that would like to invest in our project how can we get some help from a lawyer? Keep in mind that by then we will 80% run out of cash.
We could start taking in some projects but this will result in a delay in our development and we are trying to avoid that as much as possible.
Thank you <comment><USER2> sounds like your burn rate is relatively high. If you can't get funding you need to think of other ways to make money, contracting or work part time. Any startup that is willing to give because of money, is not trying hard enough. Read Fred Wilsons post on Airbnb and how they sold boxes of cereal to keep it going.

<comment><AUTHOR> thanks for your reply, however I don't think that our burn rate is high, it's just that we did not had to many savings. But your are right about the part time we will look into that even if that means that it will delay our lunch date by a couple of weeks.</comment></comment>


Why businesses fail at machine learning (2018) - <AUTHOR> https://hackernoon.com/why-businesses-fail-at-machine-learning-fbff41c4d5db <comment><AUTHOR> I had occasion to reread this today, and it is still very, very good.

One of Cassie's strengths (that she has absolutely capitalized on) is that she is excellent at writing at the right level of abstraction for your manager. Or their manager.</comment>


Ask HN: Can I trust Zoom, the video chat app? - <AUTHOR> I wouldn't normally ask this kind of a question at HackerNews about any random app, but I've noticed that an application called Zoom has gained a tremendous amount of adoption recently; no doubt about the recent coronavirus pandemic playing a role.
I tried to install this app on my Mac today, out of necessity. I noticed two suspicious things:
a) The app is distributed as a .pkg installer, which is normally used only for stuff that requires special permissions or doesn't make sense as a runnable application, such as a user space filesystem or a kernel extension.
b) The installer warns me about the installer "inspecting whether the package can be installed on the system or not" and clicking OK, the installer doesn't run the normal steps any normal macOS installer would, it just quits. However, it does end up copying Zoom.app under /Applications.
This seems very suspicious for just a chat application. Such an application shouldn't need any of this to be distributed or installed.
1) Is there anything fishy going on with Zoom?
2) How can I be sure that even if there isn't anything fishy with the current version, the next version doesn't do anything more fishy? (= even if someone I trust says that it's OK, how should I continue trusting them?)
3) Why does it install like it does?
4) Should I boycott it? (My default stance at the moment is: yes, if I could.)
5) P.S. and TL;DR: How can I be sure that I'm not installing a piece of malware? I'm not asking about my privacy of communications while using the app, but just about the installer or the app doing malicious things in general. <comment><USER2> Nope. If you can not review/audit the code and compile it yourself you basically can not trust it.

</comment><comment><USER3> There are some simple ways to use Zoom in the browser and to avoid installing the client

This thread from Tuesday includes details of browser extensions and other strategies [https://news.ycombinator.com/item?id=22659216](https://news.ycombinator.com/item?id=22659216)

</comment><comment><USER4> No. Zoom can't be trusted. When I have to use it I assume that they are spying on me.

<comment><AUTHOR> Thanks for the reply! ...but that's not what I was actually asking. It seems obvious that I can't trust an app, that does anything opaque, to keep my secrets. I'm not using it to keep my secrets.

What I am asking, is: is there any funny business going on with the app installation on macOS? Can I be sure not to expose my system to risk, by just _installing_ this application?</comment></comment>