Finding an Alternative to Mac OS X - <AUTHOR> http://bitcannon.net/post/finding-an-alternative-to-mac-os-x/ <comment><USER2> I know the OTA dismissed Windows, but when I switched from OSX to Windows a couple of years ago, I found Scott Hanselman's "Ultimate Developer and Power Users Tool List for Windows" [1] to be indispensable. I've been doing Rails work on Windows since switching, but ymmv depending on what your workflow and toolchain are.

I also found that there were a lot of workarounds/alternatives to software/tools that I _thought_ I would miss on Mac. I've managed to find pretty much everything I needed and/or realized I could easily live without the stuff I couldn't find alternatives for.

Having said all of that, if you have a dependency on something like XCode because you're maintaining an iOS app, you're kinda stuck with a Mac. My experience with Hackintoshes is that even if you buy the right hardware off the latest Hackintosh compatibility list, it's still a bit of a time suck. Alternatively, you could also run OSX in VMWare Workstation/Player, but you don't get graphics acceleration and some OSX software won't run properly in a VM.

[1] [http://www.hanselman.com/blog/ScottHanselmans2014UltimateDev...](http://www.hanselman.com/blog/ScottHanselmans2014UltimateDeveloperAndPowerUsersToolListForWindows.aspx)

<comment><USER3> I gotta say I've tried to do the VM thing. I REALLY tried. But it just isn't something that will work for any significant amount of time.

It would break with any updates, half the time xcode just wouldn't work, and it would sometimes be so slow that you'd need to wait minutes for some fancy animation to run.

And this wasn't even to get around buying a MacBook, we had one, I just wanted to compile and sign a hybrid app for iOS easier than using another physical machine.

Then we also found later that you can't sign an app on OSX while SSH'd into the machine... It just fails with a generic signing error.

So now I have a MacBook with remote-desktop software that's just permanently on in the corner of the room so I can open the GUI once a month or so and re compile and sign the latest version of our app...

<comment><USER4> I've also tried to use a Linux VM on Widnows due to issues with Node, paths in various Scala libs, and a dozen other problems.

Cygwin works for 50%, but not for everything.

I've tried Win 10 with Subsystem for Linux (Ubuntu Bash) and unfortunately it is not even close to production ready. Besides, I'm terribly disappointed with Win 10 after having been really happy with Windows 7 since its release.

Running a few Java and Javascript projects in IntelliJ on a VM is an exercise in frustration, even on a very powerful Dell Precision with an I7, SSD, and 32 GB of ram.

It works somewhat, but I'm very happy with my work provided 2015 MB Pro with only 16GB of ram. With Brew, Docker, etc. everything works great. If work hadn't paid for the Mac, I don't think I'd buy a new model due to the price and lack of upgradability, no escape key, ports, etc.

That being said, I've just installed Fedora 25 on a second m2 drive I put into my one Win 10 laptop. So far it is pretty good for dev work. It's not perfect, but it's approaching usability with a small Win VM for Office.

<comment><USER3> I have also been disappointed with the Bash-On-Ubuntu-On-Windows thing from MS. It seems like they fixed a lot of the frustrating issues recently but it's gonna take a few months for it to get to stable so it's still a non-option for me as well.

But i've had extremely good results by using the terminal and "GNU-ish tools" provided by "git for windows" which has worked fantastically. I can interop with the windows system perfectly, I get all my favorite tools like git, cat, sed, grep, awk, all the bash shell stuff, and ssh and more, and it looks a lot nicer than the default cmd.

Until the interop with the "host" windows system is better, and they push the fixes to the missing features like inotify and some others, I'm gonna stick with that.

<comment><USER5> Hey there: PM for Windows Console & Bash here:

If you're running Win10 Anniversary Update (AU), know that this was our first formal release of the Windows Subsystem for Linux (WSL) and was, as we made very clear prior to release, missing several key features and capabilities. However, we wanted to get it into users' hands ASAP so that we could asked the community for help to identify what worked and what didn't.

And the community leapt to help-out, resulting in literally hundreds of fixes to WSL and to the Windows Console.

We've continued to release improvements over the last several months through the Windows Insider builds (release notes: [https://msdn.microsoft.com/en- us/commandline/wsl/release_not...](https://msdn.microsoft.com/en- us/commandline/wsl/release_notes)), and have posted updates and highlights via our blog: [https://blogs.msdn.microsoft.com/commandline/](https://blogs.msdn.microsoft.com/commandline/).

All these improvements have resulted in Bash/WSL now being very, VERY usable as a real-world dev environment. We've a few more fixes and improvements in the pipe that'll emerge in the next few weeks, but you can feel confident that Bash/WSL is rapidly becoming a viable, highly productive, genuine, Linux compatible environment for running your favorite *NIX-first tools, platforms and technologies.

HTH.

</comment></comment></comment></comment></comment><comment><USER6> >Note that I don't currently consider Windows a viable alternative. For the work that I do (Rails) and tools I use something *nix based is the best choice for me.

For what it's worth Windows 10 now has a bash shell based on Ubuntu available.

[http://www.howtogeek.com/249966/how-to-install-and-use- the-l...](http://www.howtogeek.com/249966/how-to-install-and-use-the-linux- bash-shell-on-windows-10/)

<comment><USER7> I'm not exactly sure why this happens, but when I try to use Windows my hand (mouse hand) cramps up and I get angry and frustrated.

In my view, Windows 10 is still miles away in consistency across the entire system, compared to macOS. Windows 10 actually made it worse, because it's trying to accommodate both Windows 7 and Windows 8 design.

Currently I don't think we have alternatives to macOS. I understand that I sound like a grumpy Apple fanboy, but Windows is't ready to replace macOS. The distance between macOS and Windows have increased in the later years, and not because Apple have improved anything, it's Microsoft who have made Windows worse.

<comment><USER8> > but when I try to use Windows my hand (mouse hand) cramps up and I get angry > and frustrated

Same here! Also i start to suffer from 'update-fatigue' when using Windows. The endless updates, reboots, and god knows what it's doing in the background which consumes resources... it all just feels so clumsy. I've never experienced anything like this in OSX.

<comment><USER9> That's probably the only thing that truly irritates me about Windows these days. Everything else is just a design decision that, as a technical user, I am easily able to adapt to. But not knowing if my machine is going to decide to reboot itself at any random moment without me having the option to stop it from doing that? Unacceptable. Completely unacceptable.

I know you should save often and bad things can happen like a power outage or a glitch or something, but those things are rare. My Windows 10 machine choosing to reboot itself without telling me? At least once a week.

Imagine if you had random power outages once a week, and having a UPS plugged in couldn't stop it.

<comment> medemas-os >> But not knowing if my machine is going to decide to reboot itself at any random moment without me having the option to stop it from doing that? Unacceptable. Completely unacceptable.

First of all you can set the time interval when the Windows will be able to update [https://i.imgur.com/BZNadeE.png](https://i.imgur.com/BZNadeE.png)

And even if you are working in this time Windows ask you what do you prefer - reboot now or later.

I'am not Windows fanboy. I sue MacOS, Windows and Linux at the same time.

<comment><USER9> Yes, you can set what time it will reboot, but you can't set it to "never", or even "next week". And the pop-up to reboot does not take control of the screen, so if you're doing something full screen like a game or a Powerpoint presentation, you miss it and have to wait for the reboot. Even if you're in front of a client.

When I'm done with my work for the day on Windows and I go to bed, I'm never sure if everything will still be there when I wake up. Far too often I wake up and I'm at a login screen with all of my active windows and documents closed. That's incredibly disruptive, and there's no way to stop that.

There is no way to tell Windows 10 "don't reboot until I explicitly ask you to do so".

</comment></comment></comment></comment></comment></comment><comment><USER10> Many articles about wanting to leave the macOS ecosystem mention Sketch. Sketch is macOS only (and will be for the forseeable future), so it's understandable that people want to consider the implications of switching away from it.

Recently, however, I stumbled upon Figma, a web-based, real-time collaborative interface design app (i.e., a competitor of Sketch). After convincing my group to experiment with it for a school project, I was pleasantly surprised.

\- It's web based, so it works on Linux.

\- It imports .sketch files

\- It's real-time (you can see everyone's cursor and selection). This was great, because it meant we didn't have to walk through the snow to get to campus to have a discussion about tweaking a few elements.

I understand that some people may still need access to Sketch to work with people on their team or at their company. But for me, I'm officially striking Sketch off the list of software that's tying me down to macOS.

<comment><USER11> I've never really understood why people use Sketch. I recently worked on a project where I had asked for some basic vanilla templates of a mobile site from the designers and was sent a huge Sketch file. It was utterly useless and I had to code everything by hand myself, since the 'designers' very clearly had zero clue about HTML+CSS or any notion of responsiveness, thanks to apps like Sketch which teach nothing of the knowledge required to be a useful part of anyone's app/site building process.

<comment><USER12> If you asked for templates you should have gotten templates, not mockups and not wireframes and not a demo. In my experience there is a common misunderstanding between designers, project managers and coders about what word or phrase is used to describe those very different things. And instead of learning what they are and being specific I have been told the equivalent of "just do your thing" ie, stop bothering me. Then people complain "this isn't what I asked for" and I have to explain the whole thing again while they don't bother to listen. Sound familiar?

<comment><USER13> template is an ambiguous term, clear communication and definitions of terms would help.

</comment></comment></comment></comment><comment><USER14> > The first option I tried was an i3 based desktop. However whilst I wanted to > like tiling window managers I decided it wasn't for me.

It took me a week or so to get used to i3, but once I did I can't see myself ever going back. I've been using i3 at work and at home for about year now, and every time I get on my (Mac Book) laptop it's a frustrating experience: I feel like I spend more time trying to figure out how to get to the window I want that actually using it...

<comment><USER15> i3 is great, until you try to do something simple like change the time zone for your desktop clock or add some wallpaper. I switched from Linux to Mac because I was too well acquainted with making symlinks to /usr/share/ somewhere just to change my clock when I traveled, and then figuring out just how few processes I had to restart so it would take effect.

Unfortunately the Linux desktops were actually worse than the barebones window managers like i3: there was some sort of glibc bug that screwed up clock display on GNOME for at least a year. GNOME assumed glibc did it right, which was a reasonable assumption...but an incorrect one, but with i3 I could control this.

Now that I'm on Mac I look back in amazement at the time I spent on Linux learning ultimately useless stuff like why a bug in glibc would mess up my GNOME clock but not an i3 clock.

<comment><USER16> This. It boggles the mind how much time one can waste solving admin, busy-work type issues on Linux, specially when trying to use a GUI. I mean wifi, Bluetooth, retina class resolution issues, drivers for multiple devices not being available... unless one is using Linux to learn and understand it as a server of some type I can't fathom using it as a replacement for Mac OS.

<comment><USER17> > unless one is using Linux to learn and understand it as a server of some > type I can't fathom using it as a replacement for Mac OS.

Perhaps some of us value our freedom?

Perhaps some of us find that it helps to develop on the same platform on which we deploy?

Perhaps some of us find that we _don 't_, actually, spend all that much time on 'admin, busy-work type issues,' having decided on good, solid distros which fit our use cases (Debian works for me, others prefer RedHat)?

At the end of the day, though, it really is about freedom for me. You complain that you _must_ tweak your system; I value that I _can_ tweak mine.

</comment></comment></comment></comment><comment><USER18> I'm currently running the latest release of ElementaryOS which runs off Ubuntu 16.04 it is great. It is very minimalist, and the desktop environment is really well done. Before ElementaryOS I was using ParrotSec OS which is on par with your typical pentesting / hacking type of distros but it comes with the latest and greatest of programming language tools. They're based off of Debian with their own modifications to the kernel to harden it, and out of the box you get TOR features that I never really used, but I'm sure that may interest some. Overall it was a great Distro my only gripe was not being able to properly install and use Steam on it. ElementaryOS has a nice Desktop Environment I appreciate but it either installs or doesn't. Fortunately this laptop took ElementaryOS, where in the past I have had issues installing it. I use ElementaryOS for everything from Python back-end RESTful service development to .NET Core application development with Rider. I'm also considering using SublimeText to save on startup time, although "Scratch" isn't too bad a text editor, it suffers poor naming (try to google for Scratch and you'll find the language before you do the text editor itself).

</comment><comment><USER19> I had the same prejudice about Fedora and RedHat back when I was a debian fanboy. But if you look at what Redhat is doing with their money and their company then you soon realize that Redhat Inc. not only IS a large part of the Linux community, but also supports the open source movement in many ways.

So Fedora has been my main distro of choice for a couple years now. I still hesitate to order RHEL licenses at work, unless the client specifically has a good argument for choosing RHEL I tend to lean them towards CentOS.

And I can speak from 12 years of professional sysadmin experience in BSD and Linux that yum or dnf is a very stable package manager.

I've had more issues on Debian 6,7,8 than I've ever had on CentOS or Fedora.

<comment><USER20> I agree. My impression of RHEL and its likes is that they are "slow and outdated", but the more actual research I do, the more I feel like using them for their stability and security.

<comment><USER21> RHEL is the Warren Buffett of Linux: slow, methodical, stable, and in it for the long haul.

</comment></comment></comment><comment><USER22> _The lack of equally high standard replacements for software such as_

For me, it's Devonthink Pro ([http://www.devontechnologies.com/solutions/writers.html](http://www.devontechnologies.com/solutions/writers.html)) in particular and also Lightroom. Yes, there is progress on Dark Table, but there's too much useful software on OS X and despite Apple's faults its laptop hardware still leads the pack.

Yes, the lack of ports on the new MBP is annoying. If I had to buy a new MBP today I'd just get the last version—which is still fantastic—refurbished, and kick the hardware can down the road a couple years.

<comment><USER23> Obviously I'd avoid it for commercial editing, but I've had good success running Lightroom 5 under Wine.

</comment></comment><comment><USER24> If you're an iOS/Mac developer, there's no alternative.

If you want an alternative for graphics work (or other development), try Windows.

For other web development, in general, you'll be able to work well with Linux.

Keeping work on different machines quickly starts to become unmanageable, that's why MacOS still leads. It gives the best of most options on the best hardware.

P.S. - I tried ElementaryOS last month, for couple of hours and didn't find it an alternative in any way. It's UI is quite clunky (of course, since they are trying to copy Macs UX, but don't have the finesse). The eye candy can't make it a Mac alternative in any way; it's still Ubuntu under the hood, and less intuitive than Ubuntu.

<comment><USER25> Best hardware, really?

<comment><USER26> Not only teraflops and ram size defines "best"; MBP's touchpad is the only touchpad on any laptop that I can work with without pluging in a mouse after a minute. Screen is good. General feeling of quality is just the best.

<comment><USER27> Yeah at this point I would need a replacement for OSX and for the touchpad to be able to go away from a Mac. I can live with their other issues for the benefits of their trackpads and an operating system backed by Unix

<comment><USER28> Curious if you've tried a Surface Book? I find the touchpad feel and gesture quality to be nearly indistinguishable from a Mac.

<comment><USER27> Thanks, I will check it out. Not sure I will be happy with Windows 10 in comparison to OSX but still worth trying out.

</comment></comment></comment></comment></comment></comment><comment><USER29> I have been watching elementary from the sidelines and I am wondering how deep is the keyboard integration in Pantheon?

I moved from OSX to Linux recently too and I am generally pretty happy with multi-monitor and pseudo-tiling support in gnome3. I can do most of my window movement and application switching with few shortcuts (it requires few gnome extensions). Such as -

1\. switch application with shortcut rather than alt-tabbing (something like - Super-1 for Emacs, Super-2 for terminal etc). It requires a gnome extension.

2\. Tile the Windows with shortcuts. Currently gnome3 has limited support but it mostly works out of box.

3\. Launching or switching application with a global shortcut. Requires a gnome extension.

4\. Move Window between monitors etc.

Such things usually requires at least 2 or 3 paid apps on OSX. Divvy, Sizeup etc.

Oh and 1Password works perfectly okay via Wine, including the browser extension. So, that is one thing you should checkoff your list if that is stopping you. :-)

<comment><AUTHOR> The keyboard integration in Pantheon seems pretty comparable to GNOME.

I just finished importing my 1Password data into [https://www.enpass.io](https://www.enpass.io) looks like it might turn out to be a good option.

<comment><USER29> I use [https://extensions.gnome.org/extension/413/dash- hotkeys/](https://extensions.gnome.org/extension/413/dash-hotkeys/) thing for Unity like single shortcut Window switcher. It is absolute life saver. I used to use apptivate([http://www.apptivateapp.com/](http://www.apptivateapp.com/)) on OSX for same thing. Is there a elementary alternative? A quick google search doesn't turn up anything.

</comment></comment></comment><comment><USER30> To the point (reality) of Arch's amazing docs; I fully agree with the author. I've never experienced a more comprehensive and up-to-date doc regarding a distro. For this reason, I exclusively use Arch for both desktop and laptop. It is a freeing/empowering experience installing Arch.

<comment><USER31> I've got a Dell Developer Edition arriving on Thursday and everything I've been reading about Arch has been seriously considering installing it almost immediately.

</comment></comment><comment><USER32> Another path you can take: build your own desktop and install a Hackintosh OS!

Here's my build ([http://pcpartpicker.com/list/pYWQMp](http://pcpartpicker.com/list/pYWQMp)), which runs into some driver issues but can be fixed with Kext utility. This setup allows me to do CUDA programming + Deep Learning stuff natively in OSX, while having access to pretty Mac software. It's great, I highly recommend it!

<comment><USER33> except that Hackintosh not exactly legal :-)

<comment><USER34> Breaking a contract is not illegal, it's a matter of civil law. And depending on where you live, such EULAs might not even be enforceable.

<comment><USER35> IANAL, but I believe breaking the terms and conditions violates the CFAA [1]

[1] - [https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act](https://en.wikipedia.org/wiki/Computer_Fraud_and_Abuse_Act)

</comment></comment></comment></comment><comment><USER36> Author mentioned separately Ubuntu add Gnome, but what about Ubuntu Gnome [1]? I switched from Mac OS X to Ubuntu Gnome after release of latest Apple's MacBook "shame" Pro. It took few weeks to find new dev tools, but today I can't complain. Linux is much more mature nowadays than it was ~10 years, ago when I switched to Mac. I'm working more with terminal now and not using Git GUI anymore, but as long as you are not XCode coder, everything is similar, for half of the price.

[1] [http://ubuntugnome.org/](http://ubuntugnome.org/)

</comment><comment><USER37> I am impressed by how perfectionist some people can be. All I want from a desktop is little icons for launching programs. One of those icons should launch a command shell. That's it.

I don't have the nerve to learn all the other features anyway...

<comment><USER38> Having to jump between myriad OS/platforms within any given day (windows for work, linux for work and play, windows for spouse's laptop, etc.), I have learned to "let it all go", and keep to minimal requirements...But I could never vocalize it as good as you just did!

> All I want from a desktop is little icons for launching programs. One of > those icons should launch a command shell. That's it.

Kudos!

</comment></comment><comment><USER39> After the refresh of the Macbook Pro I decided to get a desktop replacement laptop.

Whether or not that is acceptable for your use cases depends. For me, I already have a Surface Pro 3 for ultra portable needs. Because of that, I found myself never using my Macbook Pro when I couldn't plug it in. And given how slowly cpus are gaining in performance these days, if plausible, it makes more sense to me to focus on performance over battery & weight.

</comment><comment><USER40> Not even a mention of NixOS. May I ask why not?

Edit: I'm appreciating the feedback for "why not?" and am sending it around to people in the community. :)

<comment><USER41> I've been running NixOS on a casual home desktop for about a year now.

I'm in love with some of its big ideas, like per-project dependency files that mostly eliminate my need for VMs and container management tools, and being able to read my OS configuration in a single file.

On the other hand, most of my work these days ends up as a Dockerfile and Docker images anyways, and the benefits of Nix package management could be had with Nix alone (not NixOS).

So at the end of the day I'm running a slightly buggy KDE 5 desktop that I haven't invested the time in fixing. I have a cool package manager, but I'm using it with one global nix environment. Packages are not hard to find once I know what I'm looking for, but discovering those packages and their nix- specific names can be tricky at times.

That said I'm new to desktop Linux, and it's hard to fault NixOS for most of the (relative) difficulties I've encountered.

<comment><USER40> Hrmm... if you have a bit of time to describe your bugs, I'd really appreciate it if you filed a bug on the issue tracker (github.com/nixos/nixpkgs.)

<comment><USER41> Thank you! I'm honestly not sure which bugs should go with NixOS and which should go to some application or library that I can't figure out. A typical example: since installing a different video card, videos will play in Firefox but not Chrome.

</comment></comment></comment></comment><comment><USER42> I installed Ubuntu + GNOME on my Mac a couple of years ago as a toy but a have slowly been migrating to it as my main OS.

For what I use it for (light web dev) it is the same or better than OS X.

The only thing stopping me from throwing out OS X completely are the Adobe apps (InDesign in particular) but even with that I have switched to doing most of 90% of my work on paper or in a text file then only complete layouts in OS X.

</comment><comment><USER43> Reads and feels like a sponsored post trying to get the attention of people who are using OSX, Fedora and Arch into elementary OS.

It presents a huge list of OSes but then it just says "After evaluating each I was left with a top 3." Without providing any reason as to why.

To top it there is no QubesOS and no NixOS on the list. This in 2017.

<comment><USER44> I think it's just incomplete writing (and it's the guy's blog, so no big deal). Author also doesn't elaborate on why ElementaryOS based on FreeBSD would be ideal, though FreeBSD is certainly rad.

</comment></comment><comment><USER45> <rant>People worry too much about what they use to host text editors and terminal windows...</rant>

<comment><USER46> Sure, except that OSX's iterm2+Karabiner is so much better than any terminal on Linux. Awesome full-screen switching (⌘-Enter), easy shortcuts to create subwindows, natural clipboard support, great keyboard compatibility with Emacs (after futzing with keyboard settings and Karabiner mappings). On Ubuntu, all of these have been lacking. Hell, I can't even use the terminal for a single session without accidentally triggering the App Launcher several times.

<comment><USER47> I have to absolutely agree on iterm2, I'd love to have the same on Linux... there are a few okay ones, none I've tried as good. On windows, I like ConEmu okay, still not as good, but better than default.

<comment><USER48> Honest question. I spend my development time switching between OS X, Linux and Windows and I've been using iterm2 for years. Yet I have no idea why people claim that it is so much better than anything else out there. If I where to completely give up on OS X for Linux, iterm2 wouldn't even make the list of things I'd even consider missing. What unique killer features am I not using?

<comment><USER46> What's your editor? For me it's emacs (w/o X) so I"m inside iterm2 for the entirety of my Linux work.

</comment></comment></comment></comment></comment><comment><USER49> His only whines are about hardware that is too thin/light and does not have legacy ports and OS that won't work on some junk and don't let you publish hacks in some rarely visited moderated store (just like windows, or linux)

And instead of ordering dirty cheap hackintosh with up to 4 CPU Xeons with all memory he can get and compatible wifi, that will be no thin and no light and he can run familiar terminal window to remote build his diamond code while listening to sound of coolers,

He starting to search OS with better GUI than OSX (Elementary it is) and dreaming about hardware you can run FreeBSD (like PS/2 mouse and glorious VESA 2.0 1280 _1024?)

I expect next article will be a tour to the wonderful world of 15" 1366_768 Celeron laptops that let you upgrade memory (up to 8Gb!), spacious replaceable 4200 hard drive and have USB 2.0 ports and VGA in addition to HDMI 1.4. People will know in detail how good terminal window run there on FreeBSD with Elementary OS theme (without 2D acceleration of course).

He makes alot of sense, that mate.

</comment><comment><USER50> Trying to do exactly the same thing - I still have a maxed out rMBP 2013 that works great, so setting up alternatives now before I'm forced to.

The Intel Skull Canyon NUC is what I'm using, with Elementary running on Virtualbox in Windows 10 (waiting for the Samsung 960 EVO to sell globally before setting up a native install).

The one massive problem for me that keeps me going back to the laptop is that the Mac absolutely nailed keyboard layout by separating the command and control keys. And no other OS is currently able to do so.

I use the basic emacs shortcuts for navigation in all the apps that support them (crtl a,e,n,p), and the command key to issue commands like close tab, save, new tab etc.

This is absolutely impossible to replicate on any other OS (AFAIK). I can map the command key to the control key, but that's about it - it just becomes a new way to hit control. Being able to consistently map and access the command key (as SUPER) simply can't be done.

<comment><AUTHOR> Yes I suspect the keyboard shortcuts will bother me too. One of the things I like about Elementary is that there are a bunch of things bound to Command out of the box. They also refer to it as ⌘, which has a nice familiarity about it.

<comment><USER50> The underlying Ubuntu still refers to it as the Super key, but elementary uses the clover to symbolise it when it can. Still can't get to Mac like setups, though - apparently in Linux it's the applications that intercept the Super key, so it's never going to be possible to get a consistent experience.

<comment><USER51> Window managers definitely get a first crack at keyboard input. For example, I have a bunch of super-related keyboard combos set in i3wm that always go to it. I doubt that's the problem you're referring to. More likely it's that the window manager has no consistent means to make any given window/app do anything in particular, like copy or paste. The app decides its own key combos for those. There's no universal way to do it globally short of using nothing but apps that are specifically intended to work with gnome or kde or another uberenvironment's configuration system. Basically, you could bind super-c at the WM level, but you couldn't make it always copy.

<comment><USER50> Yeah, I think you're exactly right... there's a feature request here that goes through this:

[https://bugs.launchpad.net/switchboard-plug- keyboard/+bug/16...](https://bugs.launchpad.net/switchboard-plug- keyboard/+bug/1624189)

</comment></comment></comment></comment></comment><comment><USER52> I'd Love to see someone take on GNUStep are run with it. The constant reinvention of the wheel with FOSS desktops and Window Managers is mind boggling. Too much 'not invented here' syndrome? Sadly the task is way beyond my capabilities. Still one of the best ever... Of course, YMMV!

<comment><AUTHOR> Yeah it's a shame [http://etoileos.com/](http://etoileos.com/) didn't get more momentum.

</comment></comment><comment><USER53> Where's the commentary on FreeBSD? It certainly seems like the right idea (to replace OS X), but I want to know their experience.

<comment><USER54> I've used FreeBSD as a desktop OS, briefly. I've also used a number of Linux distributions as desktop OSes since the late 1990s.

The bottom line is that Linux tends to have better hardware support, especially for laptop hardware and power management.

When you run into problems, you'll usually have a much easier time finding vendor support or online community help for a Linux distribution than for FreeBSD.

Under the hood, FreeBSD is a lot simpler than Linux, and a lot of people like it for that reason. But if you want a generic Gnome/KDE/tiling WM/etc. desktop experience, and you don't need any BSD-specific features, I think Linux is the way to go. After all, we are talking about a replacement for MacOS here, which is pretty well integrated with the hardware and does not require a lot of tinkering to get working.

<comment><USER55> > The bottom line is that Linux tends to have better hardware support, > especially for laptop hardware and power management.

I've been playing around with various BSDs over the past couple of years, and I _really_ want to like any of them enough to keep installed, but this is exactly the issue I've run into with freebsd and it's derivatives. On both my last laptop and the current one, I can get everything working to a fairly reasonable state, but there are minor but annoying hardware issues I just don't have to deal with in Linux.

In my most recent attempt (installing TrueOS on my spare SSD), some apps occasionally crash when I use the Intel video driver, so I'm forced to use scfb, which is a bit slower and doesn't render fonts as nicely. Additionally, the wifi tends to be a bit slower; I average around 4-5 MB (not Mb) down on Linux, but top out around 2 MB on TrueOS. I also have to use Firefox instead of Chromium on FreeBSD and its derivatives, as there always seem to be some bugs in the FreeBSD port; right now, it renders some bizarrely-shaped section of the window in a deep shade of yellow covering part of the URL bar and the top of the page, and signing in to Google to sync my extensions and history hasn't worked for like 10 major versions of Chromium.

I really like DragonflyBSD; it works a bit better for me out of the box than FreeBSD (I don't need to configure to not have the fan running at full blast all the time, and I've strangely had fewer issues with Chromium despite it using the same ports tree as FreeBSD with some custom patches), but I've had issues running any display manager other than Slim, and even that hasn't worked that well for me, as I've never been able to get the numlock and auto- login settings working (yes, I know, autologin is "insecure", but I always have FDE on my machines, so if someone can get past that, I don't think the login screen will stop them). Unfortunately I haven't been able to try it out lately; on my current laptop, BSDs weirdly seem to think that my screen resolution is 1024x768, and the only way I've found to fix that is by setting the GOP in EFI, which is not an option for DragonflyBSD currently. I've spent more time than I'm willing to admit trying to follow the manual EFI installation inductions I found on the DragonflyBSD mailing list; I think I got it to boot once, but apparently the snapshot I was using panicked when trying to load the specific wifi driver during startup (although I found out later it could load it fine after it was fully booted), and I've never gotten it to boot since, so I'm not convinced I wasn't mildly hallucinating or something. Every now and then the Dragonfly Digest will have some post talking about some new small step towards EFI support though, so I'm optimistic that someday soon I'll be able to boot it on my current laptop and discover a whole new set of reasons why I can't use it.

OpenBSD, on the other hand, works pretty great for me out of the box in terms of the GUI and hardware, but I'm not fond of the packaging system; I tend to like to have fairly recent versions of apps, so updates come a bit slowly compared to what I'm used to. Even worse, pkg_add is kind of horrifying to me compared to what you get on FreeBSD-based systems; for reasons I can't comprehend, it seems to query for updates individually for each package you have installed rather than first just getting a list of updated packages and then downloading the updates for the packages (if there are any). I'm unfortunately too spoiled to wait several minutes just to find out that there aren't actually any updates for my system.

I've never been able to get far into setting up NetBSD. A couple of years ago I got it installed but couldn't get Xorg to start up, and I've been unable to get the installer to boot on the most recent release; it prompts me to select the boot device from a number of options, and I've tried all of them, and none of them work. The issue seems to be fixed in the more recent snapshots, but I haven't been able to figure out how to install with FDE (I found the option to encrypt the disk, but it seems to be independent from the installation itself, and neither encrypting the disk before or after the installation seems to result in a bootable encrypted system), and I'm too stubborn to install it without.

<comment><USER56> I tried NetBSD on my Acer Aspire One netbook from like six years ago. Most things worked out of the box. One thing that did not was the keyboard did not wake after suspend, which was manual (typing apm -z). I decided that was a deal-breaker and switched to Ubuntu, which worked perfectly out of the box, including lid-shut suspend.

NetBSD also gave me a bizarre halt-the-world problem on installation the first few times ("Old BPB too big") until I skipped the first sector.

I figure this laptop is old enough if it isn't supported by now it won't ever be.

</comment></comment></comment></comment><comment><USER57> I'm kind of in the same boat, and I'm slowly, gradually, replacing my Macs with both Windows and Linux devices. As somebody with zero investment in earlier Windows versions, I quite loved Windows 8, and found Windows 10 to be a step back from that, but still a good alternative to the Mac. There are also various different Linux systems that make great desktop operating systems.

Reading the linked article, I have some observations, particularly about the requirements Wesley lists:

> One tool for each job.

This strikes me as a somewhat peculiar requirement. The Mac certainly doesn't work that way, particularly since OS X, and as long as the different tools available aren't hurting you, their availability won't be much of a problem.

> A sensible/minimal selection of pre-installed applications.

To me, a more useful requirement would be "no bloatware". Linux distros in particular often come with a ton of pre-installed applications, but they are generally good applications, and having them does not cause any harm.

If you buy a Windows computer, on the other hand, you'll likely find its installed Windows version to be borderline unusable due to all of the preinstalled manure.

> Simple, easy to use/understand interface

As somebody who has used Macs since the early 90s, I'd argue that ever since Mac OS X, the Mac hasn't _really_ offered that. It's still ahead of most Windows versions (excluding perhaps Windows 8, but clearly including Windows 10, which sadly has reintroduced much of the clutter from earlier Windows versions), but many Linux distros are now much cleaner and simpler than OS X (both Elementary and Pixel come to mind as examples of this).

So to some degrees, Wesley is requiring these operating systems to offer things that the Mac hasn't truly offered since the late 90s. This is not entirely unfair; as a Mac user, he's used to the Mac's oddities and flaws, and so it is perhaps useful to require the system he's switching to to be better than Mac OS in some respects.

Still, I think it's fair to point out that the Mac itself probably couldn't easily fulfill all of these requirements.

</comment><comment><USER58> If a Macbook sshing into your work computer is good enough, why isn't a Windows laptop sshing into your work computer?

<comment><USER59> Well a built-in x Server for connecting to your development systems would be nice - which both OSX and Windows 10 Lack.

And I do mean Server as X Windows switches the common usage of client and sever.

<comment><USER60> XQuartz works just fine

</comment></comment></comment><comment><USER61> I'm full-time OSX user/developer, but if Rails is really your sticking point, shouldn't the linux subsystem make Win10 at least viable for a trial? Or, frankly, anything that can run VMWare or Virtualbox?

<comment><USER50> I switched to Windows hoping to use the WSL - looks great for the most part, but there are still lots of blocking bugs. Ruby and Git install, but not OpenSSL, which makes Rails development difficult. Lots of niggles here and there, basically.

Should be great when it comes out of beta, though - a good terminal and we'll be all set.

<comment><USER62> If you haven't tried ConEmu [0], it's pretty awesome. I use it with the Git Bash that comes with the full windows git installer and it Just Works for most of my terminal needs. Haven't tried it with WSL but it can most likely be rigged up.

[0] [https://conemu.github.io/](https://conemu.github.io/)

<comment><USER50> I use conemu with WSL... it's the best one available for Windows, but it still pales in comparison to the default macOS terminal, and even the one that ships with Elementary. The customziation, tabs, layout, fonts all work fine but seem a bit bolted on.

<comment><USER44> I feel the need to point out that what "ships" with elementaryOS is basically meaningless. You can install what you want, easily, and the default configuration is a recommendation. Welcome to Linux-land. [https://www.distrowatch.com/](https://www.distrowatch.com/)

<comment><USER63> isn't it the same on any OS? :-/

you can install what you want on macOS and you can install what you want on Windows. Both have custom terminal apps

<comment><USER44> No, it isn't. Debian packages, Ubuntu packages, etc. are tested together as a group and you can expect that they integrate properly. The same cannot be said for third-party OSX .apps. They're more like adding another repo to your sources.list. Hell, OSX won't even let you uninstall Terminal.app.

</comment></comment></comment></comment></comment></comment></comment><comment><USER64> It is apitty FOSS project like GNU-Darwin / PureDarwin never took off and people use Hackintosh. But Apple is here to blame. They could even support the users by charging some fee.

<comment><USER60> Using only Darwin instead of Linux or FreeBSD was never really attractive. Contributing upstream is difficult to impossible, since Apple was never set up to take your contributions. The different Darwin distributions never really developed a direction or a unique feature set.

The only feature that sets Darwin apart from FreeBSD is launchd instead of init. The rest is mostly downsides like a weird file system. You can get dtrace on many other OSs today too.

</comment></comment><comment><USER65> Or the other way:

Finding an Alternative to Windows 10

That non-optional phone-home, non-optional updates, ads on startmenu, little QA (buggy like never before) - Windows up to Win7 was so nice, since Nadella everything went downhill, so sad, but true. Good that Win7 is supported until 2020, and promising alternatives are around the corner with Google Android/Fuchsia, macOS, Linux - although, the transition will be painful and but necasserry. It's a little late and all trust is gone, but maybe they fire the CEO and make a u-turn.

<comment><USER66> I see the downvotes for the parent post but no rebuttals to the phone home/privacy issues in Windows 10.

I ask this as someone who hasn't really used Windows for 10+ years, could someone who knows please discuss the state of privacy in Windows 10?

Is this a non-issue because you can turn off all the monitoring? How would one go about that?

Is it a non-issue because Windows 10 doesn't send private information back to Microsoft? What does it send back?

<comment><USER67> I use Windows 10 on my main dev box. I somewhat agree with the parent. The Windows 10 situation has been enough to push me to start experimenting with Linux.

The phone-home and forced-update-reboot are the big problems for me:

The phone-home behavior of Windows 10 is a repellent. Turning it all off is non-trivial. The easily accessible privacy settings don't disable everything. There are various lists of firewall rules, scripts, policy settings etc. I can't recommend a specific source, but I think there are some well-maintained lists/scripts on github. To be honest, I'm not sure whether anyone knows exactly what goes back to Microsoft (not being tin-foil hat about it, I just don't think it's well documented).

The no-choice-auto-update-reboot thing is also terrible (I've lost data on more than one occasion from unsaved files when Windows forces a reboot while I'm afk). This can be disabled with a lot of work and research. Some people say manual updates will re-enable it. Note that I really do want to keep my machine up to date, but ideally I don't want to have to reboot, and when I do have to reboot I want to choose exactly when. I didn't buy a UPS so my computer could reboot randomly by itself.

As for "ads on startmenu, little QA (buggy like never before)":

Running Windows 10 Pro I have not seen any advertising.

The system runs fine for me. Arguably it runs with lower memory usage than Win 7. I agree that Win 7 is very stable, and that's been my experience with Win 10 too. That said, I only started using Win10 in mid 2016, so perhaps earlier builds were worse.

Overall I would have been happy to stay with Win 7. So far I've found Linux GUI to be less polished, but maybe I'll get used to it.

</comment></comment></comment><comment><USER68> I use Albert on my Arch Linux installation as an alternative to Alfred. Not quite as good, but it works and is familiar (also extensible).

If you're looking for clipboard management, there are tons of linux solutions for that, see: [https://wiki.archlinux.org/index.php/list_of_applications#Cl...](https://wiki.archlinux.org/index.php/list_of_applications#Clipboard_managers)

As for an alternative to Karabiner, I use Xmonad and manage my keymapping through the use of Xmodmap ([https://wiki.archlinux.org/index.php/xmodmap](https://wiki.archlinux.org/index.php/xmodmap))

</comment><comment><USER69> Hi guys, can you suggest me any laptop + os that have trackpad work like apple's (multi guesture, smooth scrolling) I love to leave them but, their trackpad... are so good. I can use *nix quite ok, so os isn't a problem for my dev station.

</comment><comment><USER70> I've been using Xubuntu on my Macbook Air in a VM and it feels amazing. It gets the job done and I really like the UI.

elementaryos is perfect for a MacOS user but it feels like it's not ready yet for day to day use.

</comment><comment><USER71> I've used a Mac for work for the past 5 years, I use Windows PCs at home but most of my computing devices are Android.

I usually find if I need something specific for production use, it's in some Linux distro, and I'll either SSH into one for work, or fire up a VM with that distro in it and SSH into it. The best dev environment I've been able to conjure up is using WinSCP to act as a bridge to whatever system I'm connecting to, and just using a local great text editor in Windows (Sublime Text, etc.). When you save, WinSCP just seamlessly saves it back to the server.

I'll keep a Putty instance permanently ssh'd in and flip to that for console stuff.

On OSX I've setup a network mount to the same linux machine/VM with SSHFS and edit with pretty much the same text editors and use iterm2 that's permanently ssh'd into the same machine/VM so the experience is virtually identical (with the exception that SSFHS can be a bit fragile).

Most of the other apps I choose are cross platform because I work on a similarly mixed OS team. I think every team should be mixed OS because it forces the teams to choose cross platform tools instead of locking themselves into platform specific choices.

I don't dev _from_ my Android devices, but I do push stuff to them frequently, so they all have Servers Ultimate on them and I'll frequently setup ftp servers on them to move files or ssh servers so I can remote in and do some simple maintenance without have to do it on a small screen or fidget with an on screen keyboard.

If you aren't doing something _really_ specialized on OS X, I'm not sure I understand what the crisis is except for people building too much of their identity into what device they're carrying around.

Apple's hardware _is_ the best, by far, but at $3k a pop, I can buy 4 or 5 perfectly fine and similarly specc'd Windows Laptops, or 6 or 7 better specc'd desktops. If one breaks, just throw it away and buy whatever the newer one is and keep your hardware fresh.

If most of what you're doing is looking at a console, or editing in a text editor, it only takes an hour to get a new machine up and functional again anyways.

So much drama.

</comment><comment><USER72> Funny how we keep seeing these post from developers that aren't Mac OS/iDevice developers.

NeXT's adoption of UNIX was just a way to fulfill expectations of the newly created workstation market.

No serious NeXT application was a pure UNIX one, just like on Mac OS X.

I never saw a NeXT full of xterms and vi, rather with applications that took full advantage of the desktop frameworks, including the devtools.

<comment><USER73> I hacked about in a NeXT in a research institution and spent a long while getting X, NFS, etc. to work "right" (which it never quite did), but yeah, you're right - except for macOS/iOS devs, Mac-using developers that target web or server-side are the ones actively looking for alternatives, because the tooling and targets are just easier to use on Linux these days...

</comment></comment><comment><USER74> > Note that I don't currently consider Windows a viable alternative. For the > work that I do (Rails) and tools I use something *nix based is the best > choice for me.

For a long time, it has been my workflow to almost never develop on the host machine. I find Virtual Machines to be preferable for a lot of reasons. Am I unusual in this regard?

<comment><USER75> Perhaps you are but you shouldn't be. When I was still using a Mac, this was exactly what I did. The #1 benefit IMO, is being able to create a filesystem and OS isolation/independence layer that let's you easily switch host OSes without too much hassle or thought. One can easily switch from Linux to Windows to MacOS or even migrate their work to the cloud without too much effort.

</comment></comment><comment><USER76> @wezm You should checkout Enlightenment windows manager over Arch Linux I think it'll be right up your alley based on your preferences [https://www.enlightenment.org/](https://www.enlightenment.org/)

<comment><AUTHOR> I tried it on my Arch install. I know it's highly themeable but the default theme was not at all minimal and I wasn't a fan.

</comment></comment><comment><USER77> How about advertising for candy crush soda saga/minecraft, right on my start menu. Or the crazy invasive privacy settings on first boot. Destroy windows spying fixes most of this, but it's easier to just uninstall bill's shitty OS and use ubuntu.

<comment><USER78> > How about advertising for candy crush soda saga/minecraft, right on my start > menu.

Try Classic Shell [1]

[1] [http://classicshell.net/](http://classicshell.net/)

</comment></comment><comment><USER79> Anyone knows an alliterative to Alfred in Windows or Linux?

I really really like the ability to search apps with a few keystrokes and I really really like to be able to search clipboard history with another few keystrokes.

Nothing I've found are doing both or one as good as Alfred.

<comment><USER17> > I really really like the ability to search apps with a few keystrokes

GNOME does this out of the box. It's possible to add this to e.g. StumpWM, i3 or AwesomeWM too.

Similar functionality is available in emacs with Helm: search through all callable functions by just typing a few characters.

> I really really like to be able to search clipboard history with another few > keystrokes

Emacs does this, with yank-pop (M-y); Helm turns this into helm-show-kill- ring, which offers extremely convenient searchability.

I really can't recommend emacs highly enough: it's everything one could want in an operating environment.

<comment><USER80> dmenu from suckless-tools springs to mind as well, but, as you say the 'hit- windows-key-type-part-of-name-or-function' facility is a native part of Gnome Shell (default DE with Fedora). Whisker-menu for XFCE4 can be bound to windows key (Mod4). In KDE 4.14, you can bind a chord such as Windows-key-space or some other letter to bring up the application launcher.

</comment></comment></comment><comment><USER81> For everyday use there is Android based RemixOS worth checking out, it looks polished but is still in its infancy. [1] [http://www.jide.com/remixos](http://www.jide.com/remixos)

</comment><comment><USER82> Funny that this got written. I've looked at switching from macOS to Windows 10.

My first operating system was Windows 95. I then upgraded to 98, and later XP. I decided to go with a Mac in 2008 after Windows Vista just couldn't get itself together.

<comment><USER83> The author specifically excluded Windows because they're a Rails developer.

<comment><USER84> It's a shame, because that excuse makes no sense.

<comment><USER85> I agree; it would be great to hear from developers who've experimented with switching from macOS to Windows 10, and use Ubuntu userspace on Windows.

I switched about a month ago and, to be honest, I've been pleasantly surprised with Windows 10, with modern, top-of-the-line Windows hardware, and especially with Ubuntu on Windows.

<comment><AUTHOR> Reading Dave's ([https://daverupert.com/tag/davegoeswindows](https://daverupert.com/tag/davegoeswindows)) experience switching to Windows turned me off considering it as an option. However I've ordered an Eve V so will try it out when that comes later in the year.

</comment></comment></comment></comment></comment><comment><USER86> I've been very happy with [https://apricityos.com](https://apricityos.com) running Cinnamon desktop.

</comment><comment><USER87> Why no plasma 5.x based distribution?

<comment><AUTHOR> Last I checked KDE was still working on HiDPI support. Has that changed? What plasma based distribution would you recommend?

<comment><USER88> Fedora 25 KDE spin seems to work just fine on my 1440p monitor.

<comment><AUTHOR> Ok, looks like I need to check out KDE too.

</comment></comment></comment></comment><comment><USER89> "I has a fast Intel CPU (4Ghz i7-6700K), plenty of RAM and fast SSD storage."

<comment><AUTHOR> Thanks, fixed.

</comment></comment><comment><USER90> Windows 10 with WSL?

I prefer the mac but apple seems to be really working hard to blow it.

<comment><AUTHOR> From what I've read WSL is kind of amazing but not stable enough yet.

</comment></comment><comment><USER91> > Removing the Esc key

you can switch back to default F1... keys

> Removing all legacy ports necessitating the use of dongles for everything

Somewhere have to start the transition

> Prioritising thinness and weight over everything else

Batterylife is the same

Worst thing on the new rMBPs: No silent trackpad click option m(

I use OS X just as an client.

<comment><USER92> > Somewhere have to start the transition

By removing every single legacy port long before there's anywhere near ubiquitous USB-C? Even USB-C cables themselves are more commonly sold as USB-A to USB-C. I _love_ having usable DisplayPort/Thunderbolt, HDMI, and USB-A on my 2013 rMBP - I never need a dongle. If I went to a 2016, I'd need at least 3, every day.

> Prioritising thinness and weight over everything else

Battery life is certainly not the same, and the lack of a 16GB option or a faster processor is a well-missed loss.

<comment><USER93> > Battery life is certainly not the same, and the lack of a 16GB option or a > faster processor is a well-missed loss.

Is it certainly not the same? It seems pretty much the same to me. Lack of a 16GB option? I have a 16 GB TB mac.

The FUD is getting old.

</comment></comment></comment><comment><USER94> I don't understand the ports complaint. Or maybe it's others who don't understand their ports complaint. The USB-C connector is a physical connector, and Apple's implementation of it supports every useful protocol and function available. DisplayPort, USB3.1 and below, Thunderbolt3, charging and HDMI[0]. Just buy USB-C to whatever cables and you're done with it. USB-A to C transition complete. You don't need adapters for those protocols, they're passive cables.

What do people want? A bunch of ports that not everyone needs or wants to waste space when I could have more multipurpose USB-C ports?

Got USB-A mice and keyboards? Ok, buy a docking station or USB-C to USB-A hub and never think about it again. Got a mouse you like to carry around that isn't wireless? Pickup a small adapter[1] to get you through the transition. The only thing I can think of is ethernet but again, not everyone is going to use that. I do want ethernet, but the USB-C Thunderbolt adapter is fine. It certainly isn't the only laptop going without ethernet today. Again, why waste a port when you can have these reversible universal ports. Miss MagSafe[2]?

Either way, the complaints about the ports don't hold much water once properly researched and the change is inevitable. The reason I passed on the new MBP15 is the 24% reduction in battery capacity from 2015[3].

I needed a new machine so I bought an Acer Chromebook[4] to tide me over until Apple gets a form-fitting large capacity battery[5] in the MBPs. My configuration is $3000 and I'm just not going to spend that sort of money unless it's near-perfect. I may build a PC and remote into it as per the article until the next MBP once again matches its high price but I won't hand them 3K for a battery that's 3/4th the size of the 2015 model (66% capacity for the 13").

[0][https://youtu.be/JirCwapScUs?t=4m18s](https://youtu.be/JirCwapScUs?t=4m18s)

[1][http://a.co/4zD6Jt3](http://a.co/4zD6Jt3)

[2][http://a.co/4WDmyeT](http://a.co/4WDmyeT)

[3][http://arstechnica.com/apple/2016/12/explaining-the- battery-...](http://arstechnica.com/apple/2016/12/explaining-the-battery-life- problems-with-the-new-macbook-pros/)

[4][https://www.acer.com/ac/en/CA/content/model/NX.GJEAA.002](https://www.acer.com/ac/en/CA/content/model/NX.GJEAA.002)

[5][http://www.theverge.com/2016/12/20/14024322/macbook-pro- batt...](http://www.theverge.com/2016/12/20/14024322/macbook-pro-battery- development-failure)

<comment><USER95> There's still a huge confusion on what cables are legitimate USB 3 Type C cables, or Thunderbolt or some third option that I forget but bricking devices is a possibility with the current mix of options.

<comment><USER94> I've read a bit about that. In general, just use what comes with the USB-C device you're using. Longterm, quality issues with cabling will be sorted out. I only have one anecdote with my own equipment. I have an external SSD case[0] that came with a USB-A cable and I simply bought a micro-B to USB-C cable[1] and it worked when I tried it without issue.

What most people seem to want other than ethernet is a HDMI cable (or port) and something like this[2] will work direct from a new MBP. When I was going to buy one, I was going to grab one of those just to keep in my bag.

[0][http://a.co/51jXxNK](http://a.co/51jXxNK)

[1][http://a.co/8FGPfnM](http://a.co/8FGPfnM)

[2][http://a.co/ekyPXpD](http://a.co/ekyPXpD)

</comment></comment></comment><comment><USER96> how can the touchpad be both bigger and smaller than the previous model?

</comment><comment><USER97> Linux

</comment><comment><USER98> Why did the guy try like ten different distros? After 2-3 you know Linux is going to work for your needs, or it isn't

</comment><comment><USER84> I think most people prefer Windows or MacOS.

When I talk to normal/non-techies about this issue, they often see it as a non-issue and/or terrifying.

Why not help Windows and Mac users by writing more software for the preferred environments?

Installing a foreign operating system is like installing a different language on your PC. You must have other motivation than normal users.

<comment><USER99> Why doesn't Microsoft let people control updates or antivirus options? These questions run deep.

[http://news.softpedia.com/news/medical-equipment-crashes- dur...](http://news.softpedia.com/news/medical-equipment-crashes-during-heart- procedure-because-of-antivirus-scan-503642.shtml)

</comment></comment><comment><USER100> _> The interface is clean and refined._

Can we stop using the term "clean" to describe interfaces? Clean doesn't really mean anything in design and also is a one sided term without an opposite term that is not disparaging. Are all other interfaces that are not clean, dirty? Or unsanitary? Or cluttered? It becomes and absolute term like beautiful or professional which are all really just fluff terms for "good".

<comment><USER101> > _Clean doesn 't really mean anything in design_

It actually conveys pretty well that the interface is uncluttered and with a minimal aesthetic, with lots of space, etc.

> _Are all other interfaces that are not clean, dirty? Or unsanitary? Or > cluttered?_

Obviously cluttered.

Don't really understand the objection. "Clean" has been part of UI vocabulary, and before that, of aesthetic criticism (in fine arts, architecture, industrial design, etc) for ages. ("Clean lines", etc).

<comment><USER100> Since you feel that way, would you mind showing me an example of an interface you do not consider "clean" but is of high quality and excellent usability?</comment></comment></comment>


Desktop virtualization smackdown: VMware vs. Parallels vs. VirtualBox - <AUTHOR> http://www.itworld.com/virtualization/212245/desktop-virtualization-smackdown-parallels-vs-vmware-vs-virtualbox

<comment><USER2> Pretty pointless. Very shallow feature comparison. No benchmarks or performance commentary at all.</comment>


My Code Blog: ICFP Contest 2008 - <AUTHOR> http://sdh33b.blogspot.com/2008/07/icfp-contest-2008.html <comment><USER2> _To my knowledge, this is the first entry in the ICFP contest's history to be written almost entirely in TeX (except for a 90-line perl script to deal with the networking requirement)._

</quote> [http://groups.google.com/group/comp.text.tex/browse_thread/t...](http://groups.google.com/group/comp.text.tex/browse_thread/thread/4a33db740c9e6bad)

</comment><comment><USER3> Horrible title :(</comment>


Reducing Map: jQuery vs jQuery vs JavaScript - <AUTHOR> http://www.mrspeaker.net/2011/04/27/reducing-map/

<comment><USER2> Offtopic follows:

One thing that sucks about JS currently is the fact that you have to do Array.prototype.map.call(a, ...) instead of a.map, and even then you don't have a guarantee that the correct function will execute. I know in ECMAScript 5 you can freeze properties of an object, but unless prototypes of basic methods come frozen, it's not ideal.

<comment><USER3> Why exactly do you have to do that? Because some other unknown party could have overwritten the prototype with a new map function?

If that's the case, none of the basic objects are safe, not just Array..

<comment><USER2> Right. My point exactly. In most cases this is not a problem and sometimes can be really nice: like when you want to add some profiling code, etc. However, this is also pretty terrible when it comes to large code bases or when you see libraries out there that modify prototypes of base objects.

</comment></comment></comment><comment><USER4> The post is a bit misleading. The "native" map method is only Javascript 1.6, so it isn't universally available.

<comment><USER5> You can make it universally available with:

      if (!Array.prototype.map)
      {
    	Array.prototype.map = function(fun /*, thisp */)
    	{
    	  "use strict";

    	  if (this === void 0 || this === null)
    		throw new TypeError();

    	  var t = Object(this);
    	  var len = t.length >>> 0;
    	  if (typeof fun !== "function")
    		throw new TypeError();

    	  var res = new Array(len);
    	  var thisp = arguments[1];
    	  for (var i = 0; i < len; i++)
    	  {
    		if (i in t)
    		  res[i] = fun.call(thisp, t[i], i, t);
    	  }

    	  return res;
    	};
      }

</comment></comment><comment><USER6> I had no idea there were 3 different map options available.

Are you going to compare performance?

<comment><USER7> I personally use the map functioned defined in Underscore.js

</comment></comment><comment><USER8> Also check out the async library by caolan. Primarily designed for node.js, but also works with client-side. <https://github.com/caolan/async>

It's got the nice feature of providing synchronous and asynchronous maps, reduces, filters and everything else you'd expect.</comment>


Show HN: Baseball-Stats.net; a web reference of common baseball statistics - <AUTHOR> https://baseball-stats.net <comment><USER2> Lovely idea, especially since so many of the online resources from this domain haven't kept up with design conventions. But for a data-centric site, your layout doesn't seem all that in line with your content. Could you elaborate a bit more about your vision here?</comment>


How to write your own BitTorrent client in Java by using Bt library - <AUTHOR> https://www.smartspate.com/how-to-write-your-own-bittorrent-client-by-using-bt-library/ <comment><USER2> "How to write your own HTTP client using curl" is the vibe I get from this.

The library is the client here, the blog post is just about building an UI for it.

<comment><AUTHOR> In fact there is only one short paragraph about the UI, and the rest of the article tells about the design, API and possible use cases. Not exactly like curl(1) man page, but also definitely not like what you say.

<comment><USER2> The title is "How to write your own BitTorrent client in Java by using Bt library"

The article says nothing about building a bittorrent client, it talks about interfacing with a library which implements a bittorrent client API.

<comment><USER3> > _it talks about interfacing with a library which implements a bittorrent > client API_

Which is a valid way of building a piece of software commonly called a "bittorrent client". HTTP client isn't used in the same way, but "building a download manager using curl" would be a fair comparison.

</comment></comment></comment></comment><comment><AUTHOR> Github: [https://github.com/atomashpolskiy/bt](https://github.com/atomashpolskiy/bt)

</comment><comment><USER4> I'm personally more excited about torrent libraries that run inside webbrowsers. E.g.

[https://github.com/webtorrent/webtorrent](https://github.com/webtorrent/webtorrent)

</comment><comment><USER5> Is this possible without using any (torrent specific) library?

<comment><USER6> How do you think Bt or libbittorent was written?

<comment><USER5> I was thinking about this kind of DIY short term effort to have an example of torrent functionality. Not collaborative development of a torrent library for 10 years.

</comment></comment></comment><comment><USER7> Why would we write a special client ? I can spawn a cli tool and do it for me what I want

<comment><AUTHOR> What if your software is supposed to work on multiple platforms or be self- contained? It's not targeted for personal use (at least that case is not the priority)

</comment></comment><comment> dis-sys I did that more than 10 years ago using libtorrent. In 2018, an article on how to write a bittorrent client using an existing library is not that cool any more.

<comment><AUTHOR> It's not supposed to be cool, just normal boring software that does useful things. As the author, I'm amazed by the number of people that contact me and ask questions on integrating Bt into their Java/Scala software which some of us use daily. In 2018 Bt is the most feature-complete BitTorrent implementation that is 100% pure Java.

<comment> dis-sys What I am trying to point out is that bittorrent is a well established protocol with a long list of client implementations[1]. 17 years[2] after the release of its original client in python, a particular library implementing the exact same protocol in a specific language is not a "news" \- when this site is called "Hacker News".

In 2018, when it comes to bittorrent, I'd expect to see _real_ news/discussions, just a few examples on top of my head -

1\. recent large scale measurement results, e.g. how many concurrent users in 2018, how many are using the selfish-and-trouble-making Xunlei, mobile usage, etc.

2\. any sybil attack recently observed in its DHT? progress on sybil attack detection and prevention.

3\. frameworks for scraping contents on bittorrent

4\. recent progress on NAT traversal

[1] [https://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clien...](https://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients)

[2] [https://en.wikipedia.org/wiki/BitTorrent_(software)](https://en.wikipedia.org/wiki/BitTorrent_\(software\))

<comment><USER8> Hacker News is a bit of a misnomer. The guidelines are clear as to what's appropriate to submit:

> _" On-Topic: Anything that good hackers would find interesting. That > includes more than hacking and startups. If you had to reduce it to a > sentence, the answer might be: anything that gratifies one's intellectual > curiosity."_

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

It need not be new or news.</comment></comment></comment></comment>


Show HN: Object detection tools in web app - <AUTHOR> https://github.com/swirlingsand/theres_an_ai_for_that <comment><AUTHOR> And this explains more about it: [https://medium.com/p/theres-an-ai-for-that- rapid-prototyping...](https://medium.com/p/theres-an-ai-for-that-rapid- prototyping-object-detection-from-rockets-to-silly-walks-3bc2bea87398)</comment>


Tech Trends I've Noticed As A 16 Year Old - <AUTHOR> http://www.launchside.com/blog/tech-trends-ive-noticed-as-a-16-year-old/

<comment><USER2> I don't think this a particularly unique or noteworthy perspective, and nor does it provide any real insight into the youth demographic.

As a sidenote, I've noticed that teenagers love to declare their age when posting on the internet, as if their youth entitles them to an audience.

Now get off my lawn.

<comment><USER3> I think the crankiness will be justified when HN fills up with "I'm a 15-year old who just made this app/website/blog post", but until then it just strikes me as a bit po-faced. No offence, this might be the first time you've had this particular grumble, but someone seems to do it every time a post like this hits the front page.

Incidentally, I agree with you on the blog post. The other stuff this kid's doing - quite impressive really! Wish him the best of luck. I'd LOVE to see a better thought-out follow up post along the same lines. It makes me think back to when I was his age and completely immersed in all the new, cool technology happenings - so many things I instinctively knew were 'right' and about to go massive (and they did), so many things that weren't even products that I assumed were (and later became)... Basically, I want to consult with my teenage self and use that advice to invest time/money!

<comment><USER2> It is the first time I've had this grumble, but I migrated here from Reddit to escape the onslaught of everybody-look-at-meeeeee-I'm-a-teenager!!! Apologies if I come across as grumpy; I guess others found more value in the post than I did.

<comment><USER4> One cynical way to look at it: it's free market research from a high-spending demographic that's completely impenetrable to outsiders. I'm grateful for it, although I share your wary distaste of age-declaring youths. (Shades of those irritating, high-achieving 21 year olds who declare with no sense of irony that they've done more than people twice their age.)

</comment></comment></comment></comment><comment><USER5> That last trend of people using Facebook less and Instagram more bolsters the justification for Instagram's large purchase. I wouldn't be surprised if Zuck can see that trend from their internal data, and the community at HN hasn't noticed it yet because it's happening with the younger generation first.

<comment><USER6> I was talking to my daughter (17) about this. As others have said, Facebook is out, and Twitter, Instagram, and Tumblr are in. The one comment about Facebook that stood out: _"It's been taken over by moms."_

<comment><USER7> Do they tend to keep private profiles, use pseudonymns or just broadcast it completely publicly with twitter? I don't recall twitter having 'friend' only posts.

<comment><USER6> Anecdotally, no. IMO, Twitter is half social engagement, half narcissism. You can make your account private, but that would void the narcissistic half.

</comment></comment></comment></comment><comment><USER8> Interesting but this screams white upper class. If I went back to my middle or high school, (Madison WI, which is hardly as diverse as other areas) I don't think it would be the case that every 8th grader has an iPhone or iPod touch.

<comment><AUTHOR> That's a good point. My school is often criticized as being a white upper class school, mainly because of it's location in my city. I thought about trying to mention this in my article, and in hindsight should have.

<comment><USER9> Why is "white upper class" a "criticism"?

<comment><USER10> You're supposed to feel guilty for being rich, these days. Specially if you're white. Double that if you're a male.

<comment><USER11> Fortunately, if there's something you should feel guilty about, you can complain about a liberal conspiracy to sooth your conscience.

</comment></comment></comment></comment></comment><comment><USER12> It's a testament to the speed at which technology moves that, despite being not very much older than the author (he's 16, I'm 23), I feel separated by a significant age gap. I'm still often shocked that Youtube can afford all the bandwidth required for streaming video; he barely remembers the world where unlimited streaming video _wasn't_ the norm.

<comment><USER13> > I'm still often shocked that Youtube can afford all the bandwidth required > for streaming video; he barely remembers the world where unlimited streaming > video wasn't the norm.

You know, looking back it's silly, but when Youtube came out and started getting attention (I was still in school, so this must've been 2004 or so), I remember thinking to myself "so what?" -- the idea that it was novel just never occurred to me.

Back in 2002-2003, I ran a little startup (at 14-15) that did online music streaming. Built around a little PHP (later C++) daemon, you could set up playlists on the site and then connect to an icecast stream to play that playlist from any device you wanted. The music was ripped from CDs that my friends and I had, and we even added advertisements every X songs or N minutes. It eventually failed due to not being able to raise money to get licensing rights (my dad was running the business side and simply had no clue, but neither did I at the time), but it was just... no big deal to me. I had no idea that it was supposed to be a hard thing to do until a few years later, when I ended up working for MP3tunes trying to build the first online music locker.

I always just assumed that the trend towards storage and bandwidth being "free" was going to move fast enough that anything I could come up with would Just Work (TM).

</comment></comment><comment><USER14> Reading this brought a smile to my face. It took me back to the days of AIM chats, the silly screennames, Casio messagers that we could program to work as remotes for the school TVs to baffle teachers, et al...

I never really considered how technology was evolving during that time of my life, but it definitely was, and I'm getting nostalgic just thinking about it :)

<comment><USER10> I once hacked the office's coke machine (a tap, not a vending machine) with a Palm Pilot and a modem. Good times.

</comment></comment><comment><USER15> I'm twenty - four years older than the author. Pretty crazy to compare our experiences...

5th grade (1/2): Everyone hangs out on Neopets, lots of people are excited about the GameCube. First time I ever heard of Google.

6th grade (2/3): Neopets is still popular (but popularity is starting to wane), people hang out on AIM, some start getting cell phones. lots of students carry their CD players to school and wear their headphones whenever they can.

7th grade (3/4): iPod Mini is the "hot device", more people have cell phones. everyone hangs out in AIM chat rooms.

8th grade (4/5): iPod Mini still in, most people now have cell phones. nerdy friends start playing World of Warcraft (some never stop, stealing to support the habit). Not many people know / care what MySpace is. A few people have gmail accounts.

9th grade (5/6): Everyone has MySpace. Most people are now using gmail. A few friends have blogs / Facebook. People torrent everything.

10th grade (6/7): MySpace is the hub of all social activity. Some start using Facebook once in a while. A few people create Twitter accounts. Only one or two rich kids have iPhones - they are teased mercilessly.

<comment><USER16> > (some never stop, stealing to support the habit)

Wow. I wonder if anyone's done a study on the societal effects of WOW as compared to "real" drugs.

</comment></comment><comment><USER17> As a fellow 16 Year old I too have noticed a trend, especially in the popular iOS games. Last spring it was Temple Run then Draw Something. The game going through the school now is Bike Race. If you guys have any questions about what trends kids at my school are following feel free to ask but it's pretty much on par with the original article.

<comment><USER18> Advice from a 30 year old: Go learn to code now. At a minimum know HTML/CSS/JS. It takes 10,000 hours of practice to master something. Cut your teeth in high school and college. When you get out, you'll be incredibly hirable because you'll actually know how to get things done and launched. College doesn't (usually) teach you that.

Need help getting started? Find a small company in your town that needs help with their website. Offer to do it for $10-$20/hour. You'll build up your resume and portfolio in a single go.

Sorry for unsolicited advice - just cheering you on!

<comment><USER17> Thanks, I actually began teaching myself HTML and CSS two years ago and a few months after, I learned PHP. I created a few projects and feel PHP is currently my strongest language. I'm now learning RoR and taking a Java class in my High School but it's fairly easy because I already have some experience with C++. I'm also in an HTML class currently (not my choice) and the teacher recognized that I already know the curriculum so she lets me use her Lyna.com subscription to learn things that interest me (currently RoR). My first impressions of RoR are that it's awesome! Each video I watch I think to myself, "Wow, this simplifies some of the things I used to do in PHP immensely." Anyways thank you for the advice, I definitely plan on going to college and I've already been looking at some schools. I've also already created a few websites for some local businesses. I believe the company MediaFire is actually based in my town so I was considering possibly reaching out and asking them if I could be some sort of intern. Thanks for the comment!

</comment></comment></comment><comment><USER18> They're leaving Facebook because their parents (and parent's friends) are now on Facebook and are friending them. Sure, there's privacy settings and groups, but what teenager wants to hang out at the same place as their mom?

<comment><USER19> That may be a small part of the reason, but here are some other reasons I would like to propose:

1\. Up until a few weeks (months) ago Facebook's iPhone app was complete shit. My younger highschool brother (and all his friends) who are not techies in any sense, always complained about how it sucks. One time I even asked them why they switched to Instagram, and they told me the app works much better than the Facebook app and it's a lot more simple to just post pics/browse. That brings me to my next point.

2\. Facebook has grown to the point where it doesn't know what it wants to be. Kind of like myspace was trying to do everything, Facebook is in a similar position (except their products actually work). Instagram specializes in just photos, and makes it easy to use. There is no other crap to get in the way, you upload pics, like them, and comment on them. That's it. Twitter specializes in just short, to-the-point comments. Where does that leave Facebook?

3\. Facebook is establishing itself as a kind of social media aggregate. When I post anything to twitter, instagram, or tumblr, it automatically gets posted to my Facebook. But I rarely ever post anything directly on Facebook. From my experience, nobody is leaving Facebook, they just use it less. And as a side not, I think Facebook's strongest features are Groups and Events, I use those two features more than anything else. It is so easy to create groups and invite people, it's awesome.

4\. Instagram has cool photo filters that make it very easy to make your photos look "cool" and cover up any imperfections in the pictures. Take any shitty picture and apply a filter, all of a sudden it doesn't look too bad. Sure it looks generic, but it doesn't look like complete crap (most of the time).

Anyways, that's my take on fb/twitter/instagram.

<comment><USER20> What if I told you that people use these services in different ways?

My usage patterns are quite different from yours. Facebook is my primary service. I don't post on Twitter at all, and I rarely even check it, but sometimes I'll retweet something. I have friends that use twitter a ton, but they're actually the few power users. The majority of my friends either don't have a twitter or never post at all.

I also use Instagram very sparingly. I have an account but that was just to see what the hype was all about. I've posted a couple of pictures but a majority of my pictures and albums go on Facebook, where I can tag my friends, and have the vast amount of my friends see it in their feeds. A lot of my friend do have Instagram account but either they use it a lot or they don't use it at all, so again, it varies between those extremes. Those that post their pictures to Instagram, also post their pictures to Facebook, and since Facebook owns Instagram, I feel like it's a win-win for them (driving traffic in both places). They also recently blocked out twitter, so there's that too.

I actually think people are using Facebook more than ever from what I've seen. It's trying to do everything, but at the same time, it's doing everything well. It's powerful, and all your friends are on it.

The iOS app used to suck but it's actually one of the best apps I've seen now. It's super duper fast and they are continually adding functionality to it. Combining the FB and Messenger apps was such an awesome change and I haven't heard people complain about the iOS app ever since the redesign. I still hear complaints about the Android one though, and they definitely are working on that.

So yeah, I think different types of people use these platforms in different ways, but at the core they're all using Facebook, and also Facebook Connect, so I don't think FB is having an identity crisis at all.

EDIT: Another point I'd like to make is that above I pointed out how a lot of users use services like Instagram or Twitter in an "All or Nothing" manner. However I think we can agree that people on Facebook use it on a much wider scale. However,the important thing is, you don't have clustering at the extremes. More importantly, you don't have the clustering at the "Nothing" end. There are some people who don't have Facebook, but those that do, tend to use it in SOME manner in varying degrees which works out to FB's advantage.

</comment></comment></comment><comment><USER21> Substitute in _the internet itself_ , Nokia 3310 , ICQ , IRC and MSN messenger and that could basically describe my own late school years.

</comment><comment><USER22> As someone who only recently graduated high school, many of the trends are ones I saw as well, but many I also did not see.

At my school Google Talk ("gtalk") was as popular as Facebook chat. It is still used, but I personally prefer FB chat (for convenience). Not many people from my high school have a Twitter account, and many still don't. Even fewer use it regularly. I do see more and more friends using it though. I only use it because I'm involved in the tech scene. Quite a few people have Instagram accounts (about a third of my FB friends), and use it frequently. The only shift I see going on is that more of my friends are posting photos on Instagram than they used to on FB. But everything else gets posted on FB.

Maybe some of this truly is due to a difference in generations (only a couple of years).

<comment><USER23> I'm not sure, maybe it's a more fundamental thing.

It was 8 years ago when I was in high school, and back then everybody used AIM (AIM profiles anyone?). And before that, kids in the 80's used BBS's. I guess kids today use 'gtalk'.

It seems teenagers at a certain age just really want to be able to talk exclusively amongst friends, away from parents and prying public eyes.

<comment><USER24> Kids in the 80s used telephones. Very few people knew what a BBS was and had the means to get on a BBS. I certainly didn't know anyone that was using a modem in the 80s.

</comment></comment></comment><comment><USER25> I have been on Twitter since the beginning but I have no idea why people use it. The length restriction is totally lame, UX is rough, and it seems infested with wannabe's (followers), selfish people that live to share their lives with hashtags and pics of innane shit, Ashton, self-proclaimed "social media experts"), and hookers. Facebook has old people, and I'm one of 'em.

<comment><USER26> To me, Twitter seems more compatible with the older internet user's view that what you do on the internet should, if you want it to be, be somewhat anonymous. Or at least feel that way.

</comment></comment><comment><USER27> I've noticed that in the past few years so many different services built around sharing, liking, and commenting on images from another person have evolved (and maintained momentum). They don't seem to be doing anything special are technologically exciting, but they just keep proliferating.

</comment><comment><USER28> Let's see, YouTube, iPhone, Palm, iPod, Google Talk, gmail, Facebook, iOS, Twitter, Temple Run, FarmVille, Instagram.

What's next? Google+, The Elder Scrolls, Google Glass, Telepathic Siri. And or course Windows 8.1. It's the cat's meow.

</comment><comment><USER29> The more things change, the more they stay the same :)

</comment><comment><USER30> Very interesting, especially for me as an iOS app developer. Thanks for writing this.

</comment><comment><USER31> Thought this was going to be about Jony Ive. It isn't. Dead to me. (Sorry.)</comment>


A Better Approach To Huawei, ZTE And Chinese Cyberspying - <AUTHOR> http://www.forbes.com/sites/andygreenberg/2012/10/09/a-better-approach-to-huawei-zte-and-china-distrust-and-verify/

<comment><USER2> This is an interesting article with some good reporting, and I would like to see the title changed to the original article title on the submission kindly shared here.</comment>


Building hybrid blockchain/cloud applications - <AUTHOR> https://cloud.google.com/blog/products/data-analytics/building-hybrid-blockchain-cloud-applications-with-ethereum-and-google-cloud <comment><USER3> It's an interesting article, but also feels like peak buzzword with use-case 1 essentially being "machine learning in the cloud using blockchain and big data"

<comment><USER4> yes it's hard to read. If the goal of technology is to make things simpler and more efficient and to remove barriers, all these blockchain solutions don't do a very good job of conveying how they're doing that.

I also still don't understand one part the article jumped over:

>But none of this addresses a fundamental issue: where to get the variables with which the contract is evaluated. If the data are not derived from recently added on-chain data, a trusted source of external data is required. Such a source is called an oracle.

I and my landlord don't live on the blockchain, if he claims that I broke the door and need to pay the damages, how does the immutable blockchain help me? This sounds to me like the semantic web. When people asked "well and what if someone puts wrong data into the system?" the answer was just ¯\\_(ツ)_/¯

<comment><USER5> Yeah, it's the one question blockchain enthusiasts never have an answer for: What if I lie?

The issue was never the mutability of the record. The issue is reconciling the record with reality.

Let's say I'm ordering 5 widgets. Along the way, 3 go missing. I receive 2. The blockchain says that all 5 made it from the warehouse to the final destination.

Blockchain does nothing to prevent shitty record keeping.

<comment><USER6> That's not the problem that blockchain is designed to solve. It is, however, the problem that purveyors of centralized blockchains would like you think it solves.

The problem that blockchains solve is centralization. In other words - <USER2> cloud computing.

To revisit your example: let's say you are ordering 5 widgets.

* A lookup on the Widget Market Blockchain tells you that vendor X has completed a large number of 5-star transactions, with a verified number of clients that have all sufficient 5 star transactions with the rest of the network to be considered genuine accounts, while vendor Y has a history of shipments that are reported as not arriving. You can examine each transaction, though automated verification tools are already in place to make cheating unprofitable. You can examine the code of those tools, along with the blockchain contracts themselves, should you so choose.

Or:

* Amazon's Widget product page shows the Amazon Choice item (neither the cheapest, nor most appropriate product), followed by a list of sponsored products. Many of the reviews are clearly fake, or appear to refer to a different product, with no way to verify that an actual transaction between genuine widget trading parties took place.

<comment><USER7> Amazon does show "verified purchase" but who's to say what a genuine account is?

<comment><USER6> The accounts' transaction histories, and the transaction histories of _their_ transactants is all that anyone - even Amazon - has to go on - in both toy scenarios.

The difference here is the transparency, and the resulting web of trust that can emerge.

You may not have done business with company X, but you can observe that many users who successully transacted with companies Y, Z and W (with whom you have also successfully transacted) have all left good purchase reviews for company X.

</comment></comment></comment></comment></comment></comment><comment><USER8> It's hard to believe Google actually hop onto the blockchain bandwagon as well, given the father of the Internet and their Chief Internet Evangelist Vint Cerf[1] famously said "No" to blockchain [2].

[1]: [https://ai.google/research/people/author32412](https://ai.google/research/people/author32412)

[2]: [https://twitter.com/vgcerf/status/1019987651301081089](https://twitter.com/vgcerf/status/1019987651301081089)

<comment><USER9> "Chief Internet Evangelist" sounds like a ceremonial position. When I was working at Google, I had no idea who this person was or their position.

<comment><USER10> It is a ceremonial position, but this guy kinda deserves it. He literally invented the Internet - not in the Al Gore sense, but as in the "co-designed the initial version of TCP/IP" sense.

I don't think he actually did much at Google besides being a big hiring/advocacy/PR draw, but Google's entire market wouldn't exist without him. His tech talks were pretty fascinating too, while I was there.</comment></comment></comment>


AlaSQL.js – JavaScript SQL Database for Browser and Node.js - <AUTHOR> https://github.com/agershun/alasql <comment><USER2> This is very cool. But Github tells me that the minified version is still over 400KB.

I really wish browsers hasn't decided against WebSQL and replaced it with IndexedDB.

<comment><USER3> As much as I also wish we could have a full SQL engine in browsers, it's just too much work.

The web as a platform thrives on multiple implementations, even going so far as to require it for new standards in many areas.

All implementations of WebSQL were basically a lightly wrapped SQLite, and that meant that a bug in SQLite was a bug in all browsers, and design decisions in SQLite would impact the entire web ecosystem, and that was consitered by many involved to be a bad tradeoff.

IndexedDB is much simpler to spec out, much simpler to build multiple implementations of, and much simpler to maintain and improve over time.

In a way it's punting the problem down to userland, but userland doesn't need to abide by the same rules and restrictions as a blessed standard does, so it makes sense to push more complexity down to that level.

400kb is a lot to pay, but it just goes to show how complex an SQL engine really is. Paying for that in the form of a JS bundle download is one thing, but having that complexity in every browser means a larger attack surface, larger maintenance surface, and at the end of the day still doesn't completely remove the need for things like AlaSQL.js (which may target a different implementation than WebSQL)

<comment><USER4> I think it is too bad. Almost all browsers except for Firefox use Chromium (blink) as their browser engine. That means that a bug in Chromium is a bug in almost all browsers, and design decisions in Chromium impact the entire web ecosystem.

I agree with your above comment, and we can argue that working on a single web-engine might lead to less duplicated work for Front-End devs, and less bugs in the web overall.

Given that sqlite is the most widely deployed DB already, making it part of web browsers doesn't seem like a huge deal to me. [https://www.sqlite.org/mostdeployed.html](https://www.sqlite.org/mostdeployed.html)

<comment><USER3> But the bug aspect is only one part of it, the other is that it ties the future goals of the projects together.

What happens when the web wants to implement some special optimization or security addition but SQLite doesn't want or support being used that way? What happens when SQLite makes a breaking change in a future version that might make sense for them, but would break a large number of web apps?

Once something is in the web standards, it's VERY hard to drop support for it. SQLite might make sense now, but what about in a decade?

No matter how you slice it, WebSQL has the ability to become a massive maintence liability, one that all major browsers agreed was too significant to codify into a standard.

<comment><USER5> The user seems to be complaining more against Chromium's dominance and not about SQLite being left out of the web ecosystem.

You can replace every mention of "SQLite" in your comment with Chrome (or Google) and suddenly you're agreeing with the comment instead of expressing your opinion against it. Chrome currently dominates web standards, and other browsers must keep up or risk losing even more market share to Chrome.

<comment><USER3> But that's not exactly something that Chromium or the web standards bodies can change... (well, Chrome might be able to, but i'm not so sure it would be beneficial)

Many web standardization systems already require multiple implementations of a feature before it can become "standard", and by that nature some will have to implement it first. Chrome has Google behind it, and they have a lot of money and a good reason to spend it here (the better the web is as a platform, the better their company which is based on the web works).

But there are plenty of examples of where Chrome's "dominance" didn't allow them to just unilaterally push through APIs or platform changes. PNaCl failed and we got WebAssembly which is much better. The original version of ShadowDOM was shot down and it left Chrome behind other browsers when it came to the true implementation. HTML Imports were again something chrome implemented first and is currently being removed due to it ultimately not working out well and the platform as a whole moving in a different direction. Hell most of the WebComponents spec was changed or removed before it started getting in other browsers in a major way.

Sure, Chrome could just stop improvements altogether, but that seems like a poor solution. One thing I'd love to see from Google is for them to pull their (in)famous move of eating their own lunch. I'd love to see them pull a Servo and try to spend the time and money creating a new rendering engine from scratch to compete with their own Blink engine.

</comment></comment></comment></comment></comment></comment><comment><USER6> I am researching for a project idea I have and was actually looking up in memory SQL databases for node last night to store and sort data instead of creating a object and custom functions to filter it.

I came across [https://nanosql.io/](https://nanosql.io/) also which I am leaning more towards. Not to the point yet to play with either yet but it seemed like nanosql had better documentation and also less issues opened on Github right now.

Kinda odd how when you look up things or think of things you see signs of them... Just wow'ed to see something I was looking at last night be #4 on the HN homepage... I know people talk about positivity and the law of attraction but starting to believe more and more in it where thoughts and focus becomes reality.

<comment><USER7> If it's on the backend, why not sqlite? It's pretty great!

<comment><USER6> Just temporary data. However SQlite does have a In-Memory Database support, almost forgot about that. But probably SQlite would be a bit bloated to use for this part anyways. This being native to JS and even typescript support just seem nice... However SQlite is more battle tested, was watching a tech talk about it once and they even use it for airplane computers!

</comment></comment></comment><comment><USER8> Interesting that Mike Bostock posted this today: [https://beta.observablehq.com/@mbostock/sqlite](https://beta.observablehq.com/@mbostock/sqlite)

I'm not sure how the two compare...

</comment><comment><USER9> Persistence seems to be via files... So I suppose just as for Lovefield, all the data needs needs to be loaded before use? This also seems to make sharing between tabs tricky?

</comment><comment><USER10> Does this use web workers to access the db? Otherwise I'd worry about queries blocking the main thread, especially as the database gets larger.

</comment><comment><USER11> Maybe better for hybrid app dev.</comment>