1x64: Windows Subsystem for Podcasts

There weren’t any restrictions as to what to run inside those machines. I did briefly consider using Cygwin, but having an identical stack to the one in production outweighed any convenience factors Cygwin could provide. Setting up anything more complex within Cygwin also seemed like an unnecessary chore to me (you’ll eventually end up installing and configuring a bunch of binaries within Windows in any case). And frankly, we were pressed on time, so I just generally felt more at ease when all the work could be done within a familiar environment, reducing the role of Windows in the project to a glorified text editor / browser host. At which task, it performed admirably. :slight_smile:

Has anyone been able to get Linuxbrew working on Bash on Windows? If true, that opens a much larger, and relevant set of tools that a developer can use. All without having to deal with shared folders, networking and lower performance.

Big corporations used to have a Windows only policy for desktops and laptops before 2013. Since then, that’s no longer the case and many allow at least OS X and even Linux desktops and laptops (mainly for SysAdmins, DevOps, and Developers).

I had to use a Windows laptop for many years. PuTTY and Cygwin where always sufficient because I only needed an ssh client to connect to a Linux server where I could write and test my code. This new subsystem, will probably be useful to do the same: ssh to a Linux server.
Otherwise you will still have to deal with the fact that Windows does not have a concept of files/directories ownership and rights, it’s not case-sensitive and it adds those annoying control-M special characters to your code.
I have used OS X since 2012 and none of the above is an issue.

Of course, there is no better experience than just having a Linux laptop and desktop, which is what I use for my personal projects.

I think the main target of the Linux subsystem for Win is not developers but datacenters.

oh, if only 'twere so. Maybe some places have loosened that requirement. Many, many have not.

You think? I personally can’t imagine any sysadmins deciding to deploy a Linux app on Windows+WSL rather than on actual Linux, in the same way that I can’t imagine any sysadmins deploying a Windows app in the datacentre on Linux+Wine rather than Windows, but I’d be happy to hear argument otherwise.

1 Like

You’re right it would be an awful idea to put a productive Linux app onto a Win Server.

But in modern hybrid datacenters where everything is automated and the target is to have unified deployment, backup, etc. processes, you still have to do everything twice, once for Win and once for Unix systems. The possibility of using the same tools for these kind of tasks on both platforms helps sysadmins simplifying the infrastructure.

1 Like

Aha, I see! Yes, I can imagine that being useful, although I don’t know how useful; as I understand it, stuff inside the WSL can’t do all that much to affect the hosting Windows environment? So you can’t tweak networking or machine setup stuff. Obviously you can write files (C: is mounted on /mnt/c) but that may not be enough… but equally I may have misunderstood here!

Yes, that’s what I meant. I should have explained better in the first place.
You’re right there are many limitations. We’ll see how useful it is in the different areas.

Agreed. This feels like a big public beta of “Windows Container Services for Linux”, which will undoubtedly show up in the next Windows Server, supporting Enterprise Linux distros.

After all, “a distro without the kernel” is a very simple definition of what Linux containers provide :wink:

Thank you @sil for actually getting the dates in there, since @bryanlunduke doesn’t have a damn clue. :smiley:

2 Likes

Agreed. Especially when developing for multiple types of production environments, virtualization is preferrable. Especially in Web/SaaS space, stuff like Docker and Vagrant are really nice. Which still begs the question, what is so unique about Bash on Windows? It feels like MS is just grasping at straws at this point. First it was mobile, then tablets, as stupid table and now this? Wow…

No matter how automated and “open sourcey” Windows becomes, I would still not trust it over a Linux infrastructure.

1 Like

With regards to distro packaging I have spent a lot of time working with Ubuntu’s server packaging people to get NGINX packaged correctly. The problem being that our “stable” release (as in non-breaking changes) is typically released a few weeks after Ubuntu’s LTS releases. So Ubuntu has an NGINX release that is at least 1 year out of date upon release, missing many features.

I think (hope) we have come up with a good solution for 16.04 but I can imagine that many other upstream projects have similar problems. I really wanted 16.04 to have NGINX 1.10 because we have added things like HTTP/2 and TCP/UDP load balancing. I’d rather Ubuntu LTS users who use Ubuntu’s own packages not wait 2 years for these things when they are available now.

We do have our own Ubuntu packages and of course docker images, but some people just seem to prefer the distro’s own packaging.

Not in this big organisation it’s not. You can use a Mac or whatever if you want. Which is a surprisingly permissive policy considering where I work, take my word for it. But then you only get access to the Internet. That’s useful for posting on Bad Voltage, but less useful for interacting with all the Linux servers deployed on the corporate network. The only way the IT department are going to give you access to the network is if you run Windows, and moreover Windows managed by them.

A lot of the discussion about this issue seems pretty idealistic, rather than realistic. In reality there’re an awful lot of places where if you don’t run Windows you don’t get to play. In a technically ideal world perhaps things would be different. But Microsoft have made a lot of money over the years dealing in business reality rather than ideal technical solutions :wink:

Here’s a specific example. I’m posting this from a laptop running a corporate build of 32-bit Windows. It has to be 32-bit, because there’s some enterprisey thing somewhere that isn’t 64-bit. I do have Cygwin, but because I’m using Ansible (amongst other things) I need a proper Unix-like environment. I wasted about 2 days trying to get our tooling working properly under Cygwin. So I have a VM of the lightest usable Linux environment I can get away with. However because this POC machine is 32-bit I only have 3GB of available RAM. You can probably guess how well my VM runs by the time I have some Chrome tabs open, etc etc. And setting up networking was a pain too.

I’ve no love for Windows 10. But if someone was to offer me a machine that Just Worked on the corporate network but still gave me a proper POSIX environment I’d be all over it like sausage gravy on biscuits. So yeah, I find @sil’s analysis entirely plausible and I’m not sure what @bryanlunduke is smoking.

1 Like

Is what you are describing here the same as or similar to Snap packages? http://www.omgubuntu.co.uk/2016/04/ubuntu-16-04-lts-snap-packages

Snap packages may do the trick for Ubuntu. But I think there are really one of two ways it needs to go:

A core lightweight OS managed by something like apt/dnf/etc… and either:

  1. A good UI to manage approved repositories to get the packages you want. These repositories would contain the latest versions but are well tested and can be trusted
    or
  2. A good UI to pick the docker images (or some other container based system) for the packages you want

Option 2 may be a little overkill but probably makes potential dependency conflicts with newer versions of libs a lot easier to manage. It also lets you jail applications for some level of security.

I’m talking about making this work for desktop and server.

The implementation of AppImage sounds like it could be a good middle ground for 1 and 2 for desktop. Basically very similar to Apple’s DMG way of doing things. But there could be massive problems trying to do it for server software like NGINX. The goal appears to be to aim for platform agnostic installations. This won’t be possible for server software like NGINX because we have compile-time options that depend on what is found in the kernel.

As an example if the SO_REUSEPORT TCP/IP socket option is found in Linux then we allow users to enable it in configuration files, if you try that binary on a 3.x kernel that was released before that option was added the results are unpredictable at best (my best guess is runtime error or you will get really weird socket behaviour).

To be fair to @bryanlunduke (oh God, why?!) the fact that you get SSH is a bit “meh” IMO. I find that Cygwin (actually Babun) already does an excellent job of providing a native SSH client on Windows.

Where Cygwin falls down is the more developer-y stuff. Compiling is a chore, if it even works at all. Ansible fails in mysterious ways. IIRC there are problems/hacks for installing Ruby stuff. Probably other stuff.

If you have a 100% Ubuntu LTS userland but running on the NT kernel, I’d like to think that all these things would work in much the same way as they do on normal Ubuntu.

@bryanlunduke I’m glad you brought up the most interesting topic of this show: Supergirl!

I started watching the show some time ago and I’m in the same situation as you are (Although I don’t have a daughter). Sometimes it seems okay and watchable, but most of the time it just makes me angry. I don’t know at which episode you are, but overtime it gets better! … And then all of the sudden it’s shit again… (ep. 18).

A few things I like about this show:

  • It has a lot of nerdy stuff from the comics
  • Melissa Benoist is great as Supergirl and easy on the eyes
  • Cat grant’s wit and pop culture references are arguably the best thing on the show

Now, It’s not possible for me to sum up the things I DON’T like about this show, because these little irritations are all over the place. It all seems like bad writing.
For example: The writers think that they have to put Supergirl in physical peril every damn episode, which make her powers, very underpowered and inconsistent. Seriously, what’s up with her powers?? She has a hard time with every freaking Villain in every episode, even when they are not THAT strong. And when you take look at the details, it’s even more ridiculous:

  • Supergirl get’s stuck in quicksand… Huh?? (It’s literally the equivalent of a normal person getting stuck in a plastic bathtub filled with water!)
  • Winn bumps into Cara and she gets pushed away… Really? Bumping into Supergirl is like bumping into a concrete wall, resulting in a broken arm…

I just have the feeling that Cara is in danger and in need of saving aaaalll the time… Doesn’t sound very ‘super’ to me.
Also you get characters showing up at very convenient times at very convenient places. (I cringe a lot) Not so intriguing when you are used to high quality shows, like Game of Thrones.

My advice would be: If your daughter loves the show, then be the best Dad ever and continue watching it with her. :wink: It’s practically a kids sitcom that’s light and has some uplifting messages every episode.

for compiling applications for Windows I normally use MinGW and cross-compile from my Linux machines (and running test suites in wine). It has worked quite well for the projects I’ve used it on. But typically with those projects Windows is seen as a non-production environment and a 2nd-class citizen.

As a cross-platform desktop software developer I’m quite psyched about this Windows Subsystem for Linux. As it currently stands my development workflow is already identical between OS X, Linux and Windows. The difference, however, is in performance (git on Windows is noticeably slower than git on Linux running in VirtualBox on the same machine) and stability (bash from mingw sometimes doesn’t handle ^C and sometimes breaks the terminal). So if this WSL thing takes off and bash (or any other shell for that matter, like zsh or fish), git, vim, … would work with the same level of quality that they do on unix-y platforms, doing job on Windows would stop being a huge annoyance and might actually become enjoyable.

1 Like