Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy

Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy

For web developers stuck on Windows, Linux tools could make their lives easier. Also: Bash on Windows. The post Why Microsoft Making Linux Apps Run on Windows Isn’t Crazy appeared first on WIRED.



Original URL: http://feeds.wired.com/c/35185/f/661370/s/4e9d7bd2/sc/15/l/0L0Swired0N0C20A160C0A30Cmicrosoft0Emaking0Elinux0Eapps0Erun0Ewindows0Eisnt0Ecrazy0C/story01.htm

Original article

Microsoft is bringing the Bash shell to Windows 10

Here is an announcement from Microsoft Build you probably didn’t see coming: Microsoft today announced that it is bringing the GNU project’s Bash shell to Windows. Bash (Bourne Again SHell) has long been a standard on OS X and many Linux distribution systems, while the default terminal for developers on Windows is Microsoft’s own PowerShell.

More importantly than bringing the shell over to Windows, developers will now be able to write their .sh Bash scripts on Windows, as well (or use emacs to edit their code). Microsoft noted that this will work through a new Linux subsystem in Windows 10 that Microsoft worked on with Canonical.

O92A2876

The idea here is clearly to position Windows as a better operating system for developers who want to target other platforms besides Microsoft’s own. Under its new CEO Satya Nadella, the company has quickly embraced the idea that it wants to target all developers and platforms — not just its own. While seeing Microsoft doing anything even remotely associated with a rival operating system like Linux was unthinkable only a few years ago, the company now offers support for Linux on Azure, has open sourced numerous of its technologies and even plans to bring its flagship database product SQL Server to Linux in the near future.

Bash will arrive as part of the Windows 10 Anniversary Update this summer, but it’ll be available to Windows Insiders before that. And looking ahead, Microsoft says it may bring other shells to Windows over time, too.

O92A2871


Original URL: http://feedproxy.google.com/~r/feedsapi/BwPx/~3/3RGwfM3eBTA/

Original article

Ubuntu on Windows

See also Scott Hanselman’s blog here

I’m in San Francisco this week, attending Microsoft’s Build developer conference, as a sponsored guest of Microsoft.

That’s perhaps a bit odd for me, as I hadn’t used Windows in nearly 16 years.  But that changed a few months ago, as I embarked on a super secret (and totally mind boggling!) project between Microsoft and Canonical, as unveiled today in a demo during Kevin Gallo‘s opening keynote of the Build conference….

An Ubuntu user space and bash shell, running natively in a Windows 10 cmd.exe console!

Did you get that?!?  Don’t worry, it took me a few laps around that track, before I fully comprehended it when I first heard such crazy talk a few months ago 🙂

Here’s let’s break it down slowly…

  1. Windows 10 users
  2. Can open the Windows Start menu
  3. And type “bash” [enter]
  4. Which opens a cmd.exe console
  5. Running Ubuntu’s /bin/bash
  6. With full access to all of Ubuntu user space
  7. Yes, that means apt, ssh, rsync, find, grep, awk, sed, sortxargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch
  8. And most of the tens of thousands binary packages available in the Ubuntu archives!
“Right, so just Ubuntu running in a virtual machine?”  Nope!  This isn’t a virtual machine at all.  There’s no Linux kernel booting in a VM under a hypervisor.  It’s just the Ubuntu user space.
“Ah, okay, so this is Ubuntu in a container then?”  Nope!  This isn’t a container either.  It’s native Ubuntu binaries running directly in Windows.
“Hum, well it’s like cygwin perhaps?”  Nope!  Cygwin includes open source utilities are recompiled from source to run natively in Windows.  Here, we’re talking about bit-for-bit, checksum-for-checksum Ubuntu ELF binaries running directly in Windows.
[long pause]
“So maybe something like a Linux emulator?”  Now you’re getting warmer!  A team of sharp developers at Microsoft has been hard at work adapting some Microsoft research technology to basically perform real time translation of Linux syscalls into Windows OS syscalls.  Linux geeks can think of it sort of the inverse of “wine” — Ubuntu binaries running natively in Windows.  Microsoft calls it their “Windows Subsystem for Linux”.  (No, it’s not open source at this time.)
Oh, and it’s totally shit hot!  The sysbench utility is showing nearly equivalent cpu, memory, and io performance.
So as part of the engineering work, I needed to wrap the stock Ubuntu root filesystem into a Windows application package (.appx) file for suitable upload to the Windows Store.  That required me to use Microsoft Visual Studio to clone a sample application, edit a few dozen XML files, create a bunch of icon .png’s of various sizes, and so on.
Not being Windows developer, I struggled and fought with Visual Studio on this Windows desktop for a few hours, until I was about ready to smash my coffee mug through the damn screen!
Instead, I pressed the Windows key, typed “bash“, hit enter.  Then I found the sample application directory in /mnt/c/Users/Kirkland/Downloads, and copied it using “cp -a“.  I used find | xargs | rename to update a bunch of filenames.  And a quick grep | xargs | sed to comprehensively search and replace s/SampleApp/UbuntuOnWindows/. And Ubuntu’s convert utility quickly resized a bunch of icons.   Then I let Visual Studio do its thing, compiling the package and uploading to the Windows Store.  Voila!

Did you catch that bit about /mnt/c…  That’s pretty cool…  All of your Windows drives, like C: are mounted read/write directly under /mnt.  And, vice versa, you can see all of your Ubuntu filesystem from Windows Explorer in C:UsersKirklandAppDataLocalLxssrootfs

Meanwhile, I also needed to ssh over to some of my other Ubuntu systems to get some work done.  No need for Putty!  Just ssh directly from within the Ubuntu shell.

Of course apt install and upgrade as expected.

Is everything working exactly as expected?  No, not quite.  Not yet, at least.  The vast majority of the LTP passes and works well.  But there are some imperfections still, especially around tty’s an the vt100.  My beloved byobu, screen, and tmux don’t quite work yet, but they’re getting close!

And while the current image is Ubuntu 14.04 LTS, we’re expecting to see Ubuntu 16.04 LTS replacing Ubuntu 14.04 in the Windows Store very, very soon.

Finally, I imagine some of you — long time Windows and Ubuntu users alike — are still wondering, perhaps, “Why?!?”  Having dedicated most of the past two decades of my career to free and open source software, this is an almost surreal endorsement by Microsoft on the importance of open source to developers.  Indeed, what a fantastic opportunity to bridge the world of free and open source technology directly into any Windows 10 desktop on the planet.  And what a wonderful vector into learning and using more Ubuntu and Linux in public clouds like Azure.  From Microsoft’s perspective, a variety of surveys and user studies have pointed to bash and Linux tools — very specifically, Ubuntu — be available in Windows, and without resource-heavy full virtualization.

So if you’re a Windows Insider and have access to the early beta of this technology, we certainly hope you’ll try it out!  Let us know what you think!

If you want to hear more, hopefully you’ll tune into the Channel 9 Panel discussion at 16:30 PDT on March 30, 2016.

Cheers,
Dustin


Original URL: http://feedproxy.google.com/~r/feedsapi/BwPx/~3/VFgdIT2jbVQ/ubuntu-on-windows.html

Original article

Microsoft now lets you turn any Xbox One into a development kit

O92A2929 The Xbox One is about to become a far more interesting (and accessible) platform for indie game developers — and regular users will soon be able to use their console to chat with Microsoft’s Cortana personal assistant, too. Ever since Microsoft launched its Xbox One console, the company promised it would allow any developer to develop apps for it — but until now, you… Read More


Original URL: http://feedproxy.google.com/~r/Techcrunch/~3/M6P7WJxOFH8/

Original article

Protected Branches Improvements on GitHub

Over 100,000 people push to protected branches nearly 300,000 times every week. We’ve been listening to how we can make protected branches even better and we’re happy to introduce two workflow improvements.

Merging out-of-date pull requests

Required status checks currently provide a strong guarantee of compatibility between a pull request’s base and head branches. Not only must the status checks be passing, the head branch must also be up to date with the protected base branch in order to be merged. This catches hard-to-spot incompatible changes that don’t cause merge conflicts but result in broken code nonetheless.

The extra status check runs required by this policy can be a burden for teams where many changes are being made to a protected branch. To make this easier for those teams, we’ve added a setting which will still enforce required status checks but will no longer require a pull request to be up to date before merging.

Toggle whether a branch has to be up to date with a protected branch

User and team restrictions

Sometimes merges to a protected branch are best left to a release manager or a team of people responsible for the stability of that particular branch. Organizations can now specify which members and teams are able to push to a protected branch. Note that organization and repository administrators are always able to push.

Choose which users and teams can push to a protected branch

Protected branches help you keep your codebase safe from force pushes and buggy code. These changes give you better control over whom can push to your protected branches and make the experience for very active repositories much smoother. Check out the documentation for more information or get in touch with any questions or feedback.


Original URL: http://feedproxy.google.com/~r/feedsapi/BwPx/~3/qW7LMZFye3w/2137-protected-branches-improvements

Original article

Simplenote’s Syncing Plain Text Editor Is Now Available for Windows and Linux

Windows/Linux: We’ve long been fans of Simplenote , but Windows and Linux users have had to use third-party editors to access their notes . Now, Simplenote’s native app is finally available for Windows and Linux.

Read more…



Original URL: http://feeds.gawker.com/~r/lifehacker/full/~3/7KAVwbH0Di0/simplenotes-syncing-plain-text-editor-is-now-available-1767986060

Original article

Examples of how to make Drupal outside-in

Republished from buytaert.net

The authoring experience improvements we made in Drupal 8 appear to be well-received, but that doesn’t mean we are done. With semantic versioning in Drupal 8, we can now make more UX changes in follow-up releases of Drupal 8. So now is a good time to start moving Drupal’s user experience forward.

The goal of this post is to advance the conversation we started over a month ago in a blog post talking about the concept of turning Drupal outside-in. In today’s blog post, we’ll show concrete examples of how we could make site building in Drupal easier by embracing the concept of outside-in. We hope to provide inspiration to designers, core contributors and module maintainers for how we can improve the user experience of Drupal 8.2 and beyond.

What is outside-in?

In Drupal you often have to build things from the ground up. If you want to make a list of events you need to wade through 20 different menu options to a user interface with configuration options like “boolean” and “float”, build a content type, content, and then a view. Essentially you need to understand everything before you can build anything.

In an “outside-in” experience – or what Kevin OLeary (Director of Design on my team at Acquia) calls Literal UI – you can click anything on the page, edit its configuration in-place, and watch it take effect immediately.

Over the past few years Drupal has adopted a more outside-in approach, the most obvious example being Drupal 8’s in-place editing. It enables you to edit what you see with an uninterrupted workflow, faster preview, and removes the need to visit the administration backend before you can start editing.

To evaluate how outside-in can be applied more broadly in order to make Drupal easier to use, Kevin created a few animated gifs.

Example #1: editing menu items

The current inside-out experience

Editing menu options in Drupal has already become more outside-in with contextual links. The contextual links take away some of the guesswork of finding the proper administration UI, but once you arrive at the configuration page there is still a lot of stuff to take in, only some of which is relevant to this task.

The current inside-out experience for editing a menu item in Drupal

The current inside-out experience for editing a menu item: adding a menu link and changing its position involves 2 separate administration pages, 4 page refreshes and more than 400 words of text on the UI.

Anyone familiar with Drupal will recognize the pattern above; you go to an administration UI, make some changes, than you go back to the page to see if it worked. This context switching creates what UX people call “cognitive load”. On an administration page you need to remember what was on the site page and vice-versa.

To complete this task you need to:

  1. Find the contextual link for the menu (not simple since it’s on the far side of the page)
  2. Choose the correct option “edit menu”
  3. Find and click the “add link” button
  4. Type the menu link name
  5. Type the menu link path beginning with a forward slash
  6. Understand that this change needs to be saved
  7. Scroll to the bottom of the page
  8. Save the link
  9. Find the link in the list of links
  10. Understand that dragging up/down in this abstraction is equivalent to moving right/left in that actual page
  11. Scroll to the bottom of the page
  12. Save the menu

The problem is not just that there are too many pages, clicks, or words, it’s that each step away from the actual page introduces new opportunities for confusion, error and repetition. In user testing, we have seen users who were unable to find the contextual link, or to understand which option to choose, or to find the “add link” button, or to add a path, or drag-drop links, or to save before leaving the UI. When these things happen in context feedback about whether you are “doing it right” is immediate.

The proposed outside-in experience

The proposed outside-in experience for editing a menu item in Drupal

The proposed outside-in experience for editing a menu item. Rather than moving out-of-context to an administration page to get the job done, configuration happens right on the page where you see the effect of each action. You start adding a menu item simply by selecting the menu on the page. Both the menu item and the item’s path are in focus to reinforce the connection. As you type a path is proposed from the link text.

Now all you need to do is:

  1. Click the menu on the page
  2. Find and click the “add link” button
  3. Type the name of the menu item
  4. Revise the menu item’s path if needed
  5. Drag the link to its new location
  6. Close the drawer

One important aspect of this approach is that all actions that produce a visible change have bi-directional control and bi-directional feedback. In other words, if you can drag something in the configuration drawer you should also be able to drag it on the page, and the changes should happen simultaneously.

Example #2: adding a block to a page

The current inside-out experience

The process of adding a block can be difficult. Once you discover where to go to add a block, which is in itself a challenge, the experience requires a lot of reading and learning, as well as trial and error.

The current inside-out experience for adding a block

The current inside-out experience for adding a block. Not all steps are shown.

To complete this task you need to:

  1. Figure out where to go to place a block
  2. Go to /block-layout
  3. Go to /display-regions to find out where the region is on the page
  4. Go back to /block-layout
  5. Find the region and click “add block”
  6. Find the block you want to place and click “place block”
  7. Configure the block
  8. Read about how blocks can appear on multiple pages and for different content types and roles
  9. Read what content types are
  10. Read what roles are
  11. Read what a “path” is
  12. Read how to find the path for a page
  13. Go back to the page and get its path
  14. Go back to /block-layout and add the path to the visibility settings
  15. Drag your block to the position where you want it
  16. If your blocks are arranged horizontally, learn that “up and down” in the block layout UI will mean “left and right” on the actual page
  17. Find the”back to site” link
  18. Go back to the page to see if you did it right

Eventually you’ll use what you just learned, but Drupal makes you learn it first instead of just showing what is immediately necessary. Both the task and the learning can be simplified by bringing the configuration closer to the object you are configuring.

The proposed outside-in experience

The proposed outside-in experience for adding a block

The proposed outside-in experience for adding a block. Everything happens on the actual page rather than on an administration page. Places where things can be added appear on hover. On click they show thumbnails that you can filter with autocomplete.

Now all you need to do is:

  1. Choose where to place the block
  2. Find the block you want to place
  3. Place the block
  4. Close the drawer

The “plus” button, the drop target (blue dotted rectangle) and the autocomplete are all commonly understood patterns used by other software. The task requires no or little explanation as the interactions reveal the process. By starting with selecting the location of where to place the block, we avoid the need for drag-and-drop and the complexity of dragging a block on a page that requires scrolling.

Principles and patterns

These examples show the principle that rather than taking the site builder to a separate administration backend, the experience should begin with the actual page and show how the changes will be seen by the end-user. The patterns shown here are less important. For example the animated gifs above show two different approaches to the options panel and there are certainly others. The important thing is not yet where the panel comes from or how it looks, but that the following criteria are met:

  • An option panel is triggered by direct interaction.
  • When triggered it only shows options for what you selected.
  • It primarily shows configuration options that produce a visible change to the page. More complex options could be accessed through an ‘Advanced options’ link.

The ideas in this post are meant to provide some food for thought and become the seed of some patches for Drupal 8.2. Rather than dive right into development, we’re looking to the Drupal community to take these designs as a starting point to prototype and user-test more outside-in experiences in Drupal.

The next post in this series will cover outside-in experiences with more complex contexts and the problem of “leaky abstractions”. If you don’t want to miss the next blog post, make sure to subscribe. In the mean time, I’d love to hear what you think!

Special thanks to Kevin OLeary for advocating outside-in thinking. Thanks to Preston So, Gábor Hojtsy, Angie Byron, Bojhan Somers and Roy Scholten for their feedback.

Continue the conversation on buytaert.net

Front page news: 

Original URL: https://www.drupal.org/news/examples-of-how-to-make-drupal-outside-in

Original article

Microsoft and Canonical partner to bring Ubuntu to Windows 10

According to sources at Canonical, Ubuntu Linux’s parent company, and Microsoft, you’ll soon be able to run Ubuntu on Windows 10.

What to expect


Microsoft Build 2016

Mary Jo Foley’s watch list for Microsoft’s Build 2016 developer conference.

This will be more than just running the Bash shell on Windows 10. After all, thanks to programs such as Cygwin or MSYS utilities, hardcore Unix users have long been able to run the popular Bash command line interface (CLI) on Windows.

With this new addition, Ubuntu users will be able to run Ubuntu simultaneously with Windows. This will not be in a virtual machine, but as an integrated part of Windows 10.

The details won’t be revealed until tomorrow’s morning keynote speech at Microsoft Build. It is believed that Ubuntu will run on top of Windows 10’s recently and quietly introduced Linux subsystems in a new Windows 10 Redstone build.

Microsoft and Canonical will not, however, sources say, be integrating Linux per se into Windows. Instead, Ubuntu will primarily run on a foundation of native Windows libraries. This would indicate that while Microsoft is still hard at work on bringing containers to Windows 10 in project Barcelona, this isn’t the path Ubuntu has taken to Windows.

That said, Canonical and Microsoft have been working on bringing containers to Windows since last summer. They’ve been doing this using LXD. This is an open-source hypervisor designed specifically for use with containers instead of virtual machines (VMs). The fruits of that project are more likely to show up in Azure than Windows 10.

It also seems unlikely that Ubuntu will be bringing its Unity interface with it. Instead the focus will be on Bash and other CLI tools, such as make, gawk and grep.

Could you run a Linux desktop such as Unity, GNOME, or KDE on it? Probably, but that’s not the purpose of this partnership.

Canonical and Microsoft are doing this because Ubuntu on Windows’ target audience is developers, not desktop users. In particular, as Microsoft and Canonical continue to work more closely together on cloud projects, I expect to find tools that will make it easy for programmers to use Ubuntu to write programs for Ubuntu on the Azure cloud.

So is this MS-Linux? No. Is it a major step forward in the integration of Windows and Linux on the developer desktop? Yes, yes it is.

Related Stories:


Original URL: http://feedproxy.google.com/~r/feedsapi/BwPx/~3/Jew3Ek21G7c/

Original article

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑

%d bloggers like this: