Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Microsoft Linux Build

Microsoft Launches Windows Terminal 1.0, Unveils GPU Support and Linux GUI Apps in WSL (venturebeat.com) 117

At Build 2020 today, Microsoft gave developers a slew of new tools to coax them into using Windows over macOS or Linux. From a report: Windows Terminal is now out of preview for enterprises, and Windows Subsystem for Linux (WSL) 2 is getting support for GPUs, Linux GUI apps, and a simplified install experience. Microsoft even released a Windows Package Manager in preview. Windows 10 runs on 1 billion monthly active devices (PCs, Xbox One consoles, and HoloLens devices), making it a massive platform for developers to target. [...] Microsoft today released Windows Terminal 1.0, which means it is stable for enterprise use. The open source application features multiple tabs, panes, tear-away windows, shortcuts, Unicode and UTF-8 character support, emojis, ligatures, extensions, GPU-accelerated text rendering engine, and custom themes, styles, and configurations. Windows Terminal is for users of PowerShell, Cmd, WSL, and other command-line tools. Microsoft also unveiled WSL improvements today, including support for GPUs, Linux GUI apps, and a simplified install experience. WSL is a compatibility layer for running Linux binary executables natively on Windows. Microsoft first shared it was working on WSL 2 a year ago at Build 2019. WSL 2 is slated to arrive in the next major Windows 10 update coming later this month (brilliantly called the Windows 10 May 2020 Update), but it won't have these new features. In the second half of the year, WSL 2 will get support for GPU compute workflows.
This discussion has been archived. No new comments can be posted.

Microsoft Launches Windows Terminal 1.0, Unveils GPU Support and Linux GUI Apps in WSL

Comments Filter:
  • by thejam ( 655457 ) on Tuesday May 19, 2020 @11:12AM (#60078686)

    I have been waiting for GPUs to be supported under WSL, and prayers have been answered.

    • by thejam ( 655457 ) on Tuesday May 19, 2020 @12:11PM (#60078966)

      In case this isn't obvious, GPU support in WSL will be incredibly useful for doing machine learning using PyTorch, CUDAnative in Julia, etc., where GNU/Linux is the primary target and best supported. It will allow folks on Windows to take advantage of GPUs, without bleeding developer time and energy to support ML libraries on Windows natively. So if if WSL GPU support is good, then GNU/Linux ML tool development will *improve* because the audience for those tools will dramatically increase to include the Windows developer base.

      • Of course Linux is always had that, but Windows fanbois just can't wait for their favorite platform to catch up to 10 years ago...
        • OK, calm down. It is you who is being the fanboi here.

          Windows can quite happily do GPU-accelerated machine learning. This is talking about extending that to the Windows Subsystem for Linux which allows Linux applications to run on Windows 10. That means that the Linux version of PyTorch (for example) can run on Windows and still use the GPU. That said, PyTorch has a Windows version and it also has GPU support too, but the Linux one is supposedly simpler to set up.

          • You're right. I can't wait to see what Microsoft comes up with next that will justify spending a boat-load of licensing cash on a terrible operating system that now lets incompetent admins who are afraid of non-GUI interfaces finally do what other operating systems have done for a long time. Maybe they can "invent" some sort of package management system to make managing their operating system easier or something. Derp. Too late: https://developers.slashdot.or... [slashdot.org] I just stood up a brand new "windows dom
            • Yeah, that really doesn't dispell the notion that you are a rabid fanboi.

              • Yeah, and you're not really dispelling the notion that you're an incompetent Windows admin who only got into IT because you can 'point and click' slightly better than the average monkey. Those who can, engineer. Those who can't run Windows because learning stuff is hard.
                • How can you decide what I am when I have never said anything about what I use. I am a Linux user, I'm just not a dick about it. Of the six computers that I have in my room right now, four run Linux, one is a Mac and the other runs Windows. My server runs Linux. My development system runs Linux. Even my gaming system runs Linux - and if that doesn't show dedication to the cause then I don't know what would!

                  The point is that no operating system is irredeemably bad. I can jump on any of my computers and do any

                  • > The point is that no operating system is irredeemably bad. Let me know when Windows becomes the Right Tool for the Right Job instead of the tool you have to use because shit software vendors don't know how to write cross-platform software or shit admins choose it because they've never bothered to learn the alternatives. I ran a ~2,500 device Windows network for 15 years before I finally said "screw it" and converted the network almost entirely to Linux and BSD. Routers are all BSD (actual BSD, not "
  • by denis-The-menace ( 471988 ) on Tuesday May 19, 2020 @11:14AM (#60078700)

    MS is slowly building Linux apps for their Windows users.

    I'm expecting MS to publish their own Linux distro around 2025 and kill Windows as a bare metal OS altogether.

    • by ebh ( 116526 )

      Finally, the year of Linux on the desktop!

      • Very soon, you will be able to use Windows without actually using Windows at all

        If it wasn't for systemd I would be reaching out for this ....

    • by pr0nbot ( 313417 )

      We may joke about Linux on the desktop, but Microsoft is clearly capitalising on the fact that desktop on Linux remains a mess. No doubt they've seen web developers etc flocking to Apple precisely because it offers a mature desktop environment and a UNIX environment, and are keen not to lose a certain type of developer mindshare altogether. Basing on Linux rather than some BSD offshoot will also make it a more compelling offering to most devs.

      Personally I think they should worry more about Chrome OS...

      • by Anonymous Coward

        "The desktop" on Linux is much more advanced and modern than on Windows. KDE Plasma is fucking awesome and probably the best desktop environment that has ever existed. In comparison, the Windows desktop feels really dated and limiting.

      • by gweihir ( 88907 )

        the fact that desktop on Linux remains a mess.

        Whatever gave you that idea? Certainly not observable reality. The only problems Linux has for mass-adoption is MS Office and gaming.

    • They shouldn't have gave us Power Shell, if they are trying to go in a Linux direction.

      As a Mostly Linux/Unix based command line person. I find Powershell to be overly wordy and needing a special command to do anything. Reminds me of VMS.

      The Unix approach is a set of simple commands that are meant to be piped together to create its real power, in its simplicity. With Linux, if you are going to try something different, you often have a pathway to it. With Powershell you better do stuff that Microsoft thi

      • When Powershell came out I thought "Microsoft is trying to get some of the benefits that Linux and bash have".

        No it's not exactly bash, because bash wasn't made for Windows and Windows wasn't made for bash. Windows and .Net go together like Linux and bash go together. I see Powershell as "bash for .Net devs".

    • by gweihir ( 88907 )

      MS is slowly building Linux apps for their Windows users.

      I'm expecting MS to publish their own Linux distro around 2025 and kill Windows as a bare metal OS altogether.

      Same here. Of course they will make sure to break as much as they can get away with, but on the kernel side, MS has a long string of failures.

    • Comment removed (Score:4, Interesting)

      by account_deleted ( 4530225 ) on Tuesday May 19, 2020 @08:09PM (#60080698)
      Comment removed based on user account deletion
    • One more step to my almost 20 year old sig here on slashdot coming true.
  • I don't think I would have ever tried the BSDs or the Linuxes if OS X didn't come with Terminal.app 20 years ago.

  • Today is a good day!

  • by Murdoch5 ( 1563847 ) on Tuesday May 19, 2020 @11:27AM (#60078748) Homepage
    If you're a Linux / Mac user, why would you start using Windows?

    As a long time Linux user, I can't see any reason I'd switch back to Windows, as it provides nothing of benefit and introduces some serious detriments to my workflows. Instead of trying to convert Linux / Mac users, they're better off making Windows a better operating system, or just make Windows a user land OS and leveraging the Linux Kernel.
    • by thegarbz ( 1787294 ) on Tuesday May 19, 2020 @11:41AM (#60078820)

      If you're a Linux / Mac user, why would you start using Windows?

      Because you changed jobs? Let's turn it on its head: why would a windows user start using Linux. Any reason you can think of is probably irrelevant to someone who is happy getting the job done the way they are doing it.

      • by slack_justyb ( 862874 ) on Tuesday May 19, 2020 @12:01PM (#60078914)

        Let's turn it on its head: why would a windows user start using Linux

        Right mouse click on a shortcut in Windows. Select the properties. CTRL+C the working folder. Go to Explorer and CTRL+V in the location bar. Watch as Explorer thinks you just typed in a web address and opens your web browser. All of this because in the properties, working folder is surrounded by quotes if you are using names with spaces, and literally no other program outside the terminal treats quotes as an actual path, but instead they all treat it as a web address.

        Now that alone wouldn't be a killer, but gosh it's a big paper cut.

        However, the CMD terminal vs PS terminal vs wTerm all treat their quotes differently and what's more, the GUI has different styles of doing quotes in paths as well. By the time you break out the rubric on this, you've got literally twelve different combinations of program to quote style to type of quote being used. So pretty much on Windows, there's a very specific way to work clearly. It's no wonder scripting on Win platforms is the nightmare it is and most just ditch it completely to go VBScript, Python, or something else completely.

        Again all of that isn't a killer, but it's a paper cut and having used Linux and Windows both quite a bit. Windows is this OS that you need to have a very specific way of working and never change from that. Even going from Linux to BSD, scripting and tooling feels all roughly the same. Hell, even on Mac there's a few hiccups but it's pretty straight forward. Windows is just this completely jarring thing that paper cuts you to death if you heads up about it.

        And it might be that last part that is the big draw to it. Once you know all the things to dodge and you've got a complete working process, you can be pretty damn productive in Windows. But good golly, if you're regularly working UNIX or Linux machines, going to Windows is just whole thing you just try to avoid as much as possible. It's just so damn counter-intuitive.

        • Agreed, good points!
        • Right mouse click on a shortcut in Windows. Select the properties. CTRL+C the working folder. Go to Explorer and CTRL+V in the location bar. Watch as Explorer thinks you just typed in a web address and opens your web browser. All of this because in the properties, working folder is surrounded by quotes if you are using names with spaces, and literally no other program outside the terminal treats quotes as an actual path, but instead they all treat it as a web address.

          Now that alone wouldn't be a killer, but gosh it's a big paper cut.

          Sure... Copy the path, Launch Explorer, Paste the path and hit enter... instead of clicking on "[Open File Location]."

          • Mac Os: drag and drop almost any thing any where for any reason. Windows: Preform action A on object 1 then find object 2 and hit the keyboard command and click the button on the dialog that pops up and then confirm that object 1 is the correct object unless it is a removable drive, or you are using file encryption, and in some cases certain objects or actions may not be present in which case an alternative method may or may not be possible. You have enough small simple tasks that you do on a repeated bas
        • But good golly, if you're regularly working UNIX or Linux machines, going to Windows is just whole thing you just try to avoid as much as possible. It's just so damn counter-intuitive.

          To be fair, though, it's the same going from *nix to any other unrelated operating system, e.g., VMS or z/OS. In the 80's and early 90's I was pretty proficient in VMS and found picking up Linux in the early 90's to be a significant learning curve. Then I had an employer who invested in Microsoft certifications and voila I could make Windows stand on its head and spit nickels.

          It reminds me a bit of Goethe on languages: Those who know no foreign languages know nothing of their mother tongue. Those who speci

        • Even going from Linux to BSD, scripting and tooling feels all roughly the same.

          I've never used any of the BSDs, but my understanding is that for the average user, you can't really tell them apart from each other, or from a Linux box because all of the differences are "under the hood."
      • That's a good point, a Windows user probably won't start using Linux, but if they're screwing around with the WSL, then they're trying to use Linux anyway. If you have to use WSL (which I've never used), to get something small / quick done as a one off, that's fine, but if you're using it regularly then why not just install Linux and dual boot (if you want to be a part time Windows user).
        • For me, WSL replaces the multilayer hell that is Cygwin. I can finally ssh and scp without having to install loads of other stuff (PuTTY is awesome, but native-er is nicer). Also, I much prefer how python is handled in WSL vs Windows, maybe because I got use to using it on a Linux system.. And I "have" to use Windows because it has my games and for some reason still the only halfway decent word processor other than vim.
        • but if you're using it regularly then why not just install Linux and dual boot (if you want to be a part time Windows user).

          Because you don't need to dual-boot when you can use Windows and Linux (at least the command line tools) at the same time.
          Why should I waste time shutting down one system and booting the other if I can do stuff right away?

          Also, at work I can't install Linux on my work system. But I could install WSL and now my colleagues and I are happily working with Debian do ssh to our servers and do all kinds of command line-fu.

          • If your work is restricting access to your hardware then that sucks, and usually just shows inexperience in IT or overly strict and pointless management policies.
            • My employer is a multi-national telecommunications company. If we did BYOD of if everybody would be allowed to do with they company supplied hardware as they please chaos would reign and next to no productive work would be possible.
              Do it yourself works somewhat in small companies where (almost) everyone has some idea about technology. But it doesn't scale.

          • Exactly. My company is a Windows shop.
            As a security professional, Linux is a more natural environment for me to work in often times, but I also need to interact with the Windows and AD environment regularly, so really I need both. So I have Kali installed inside of Windows, via WSL. It works quite well.

            I COULD could the same thing by rebooting every time I want to use grep or awk, but why in world would I want to reboot first when I can just use awk without rebooting?

      • Microsoft Office

      • by ras ( 84108 )

        Let's turn it on its head: why would a windows user start using Linux

        Wrong question. As the story is about Microsoft releasing a new version of WSL their must be a whole pile of people out there who have already started using Linux. A more relevant question is if you are savvy enough to be using Linux for your day job, why would you bother continuing with Windows?

        All you are arguing about is what colour the go fast strikes are. You say prefer Windows coloured ones over Linux or Apple ones, but the realit

      • by jesgar ( 570013 )
        Not everybody is a developer, which are the main users of Linux desktops, so maybe because of Microsofot Office on the desktop or another desktop software that is Windows only.
    • by mccalli ( 323026 )
      No, They want you to use Windows to develop things for Azure. They don't care if you're running a Windows Azure instance or a Linux one, and don't care if you're writing Windows-native or using WSL to write for your Linux instances. They just want to make it easy to write things that can work with their actual revenue generating product, Azure.
      • Fair enough, I've lost count how many times our company has been asked to move our application into the "Market Place" on Azure, to spite the fact it can't work in that model.
    • by Junta ( 36770 )

      This isn't about converting Linux desktop users, so much as it is about keeping Windows users using Windows even as they deal with server technology areas dominated by Linux.

      As a Linux user, they are getting into my world too. One of the best meeting experiences in Linux is Microsoft Teams (Jitsi would be my natural go-to
      ). A lot of developers have jumped on VS Code, for better or for worse. I end up using Office apps through Chrome rather than trying to wrestle with interoperability issues between LibreOff

      • I have never had a good experience with Teams, it crashes so often that I've given up on it. I've had Teams crash over trying to carry out a simple action such as changing the Mic, which it almost always picks up incorrect, as I have three different Mic inputs, to spite the fact that I have it set correctly in Gnome. I've had teams crash over trying to join an in progress meeting, and when it restarted it wouldn't show me the meeting I was going to join. When I finally joined that meeting, which was with
        • by Junta ( 36770 )

          Incidentally, I never use the app, I always use it in Chrome.
          Despite the app being basically a Chome browser bundled with web app, it does far worse than Chrome. I can't get the Linux app to do microphone or camera right, but Chrome does fine. Jitsi has an edge by working in Chromium and Firefox while Teams just throws up its hands and pretends Firefox can't do that sort of thing. Having no add-on or client app makes me like those platforms contrasted with say Zoom that says 'please run this arbitrary execu

    • These upgrades have been GREAT for my workflow. I have been using linux since 2000 and the experience on the desktop has gotten WORSE since then. I have more stability problems with X when doing GPU computing stuff then I have with windows and IO still slows down linux more than windows. I much prefer to use Windows as my desktop and then develop for linux and target linux servers.

    • >If you're a Linux / Mac user, why would you start using Windows?

      1) Games. My most powerful PC, the one with the GPU, is just for games on Steam. I know I can game on Linux, but I don't want to faff with it.

      2) Other people use windows - I provide data analysis and hardware test code to chip development teams. It runs on Linux first but some platforms are only ever provisioned with windows (think embedded UI systems with one customer) and they need to do the same testing. So my code has to run on windows too. This is a royal PITA. Visual Studio C doesn't even support getopt. Inline assembly may or may not be there depending on the details of what you are compiling to what. Windows C will mess with your binary output if you let it. 16 bit characters are a toxic cancer injecting incompatibilities you have to work around. But I have to support the tools on Linux and Windows. MacOS is easy - just recompile the Linux code and it works as long as you make your assembly clang compliant.

    • The primary reason is Supported Applications.
      There is still a Windows Version of most software out there. While Trying to get Linux to handle it, you are often making the product unsupportable, say via Wine. Or just a hassle getting the software to match your particular distribution.

      Windows 10, Is just as stable as Linux is (Finally). Its biggest problem I see, is all the people who use the OEM Version. The Lenovo/Dell... Version of windows. With so much Junk that it is useless. Vs a Fresh install of Win

    • Because software you need to use bloody well will not run on anything other than Windows and there is no viable alternative that would run on anything other than Windows? Because Windows is what your company uses and playing outside domain control is not an option you are going to get?
      • How many software packages don't have a good Linux or source alternative?
        • Tons
          • For sure. Music applications are one sore spot in particular. Open-source stuff like Ardour just isn't in the same league as Pro Tools or Ableton, *especially* when you need solid VST, Kontakt, or other plugin support instead of having to force Wine into half-assing it.

    • I have been using Windows a lot more lately. I have been almost exclusively for the last 12 years, Mac and Linux. The main Reason is Gaming; Windows is still the only game in town, Surprisingly Windows 10 is not that bad, Of source first thing I installed was cygwin.
    • I don't think this is a move to try and get Linux/Mac users to switch to Windows. It's about opening up their ecosystem to more apps; bulletproofing themselves for the future.

      Think back 20 years ago and everything was running on desktops. Mobile didn't exist. Mac OS, Windows, and Linux were very different under the hood. Cross platform compatibility was a mess.

      Then comes OS X which was *nix based.
      Then comes the iPod/iPhone which is also *nix based.
      Then Android.. *nix based.
      Chromebooks... *nix based.

      Thes

    • If you're a Linux / Mac user, why would you start using Windows?

      Because I just bought a $1300 (on sale) slim PC laptop that has better performance, especially for gaming, than the latest $2900 MacBook Pro offering?

      Because the last time I bought a $1600 ultra-portable PC laptop, it had a far better keyboard than any MacBook at the time?

      Because the last time I bought a MacBook Pro, I couldn't update the RAM, and now the computer fails to be useful because Apple really skimped on soldering a critical chip (U8900)?

  • What does this mean for gaming on Linux? Is the WSL compatibility layer capable of supporting DirectX on a Linux kernel? If so, it just might enable Linux gaming to finally take off. This would have a number of ramifications.

    • Re: (Score:3, Informative)

      Comment removed based on user account deletion
    • by Junta ( 36770 )

      I wager this is more about CUDA working for 'AI' under Linux than Vulkan/OpenGL.

    • by Kjella ( 173770 )

      What does this mean for gaming on Linux? Is the WSL compatibility layer capable of supporting DirectX on a Linux kernel? If so, it just might enable Linux gaming to finally take off. This would have a number of ramifications.

      No. This will let your Linux applications run with GPU acceleration from Windows, it won't enable any Windows technology to run on Linux. Though I suppose you could run DirectX games over WINE/WSL instead of natively, but I assume the compatibility wrappers would make that a miserable experience compared to running it directly under Windows. I guess Microsoft has decided that opening up the flood gates isn't actually going to lead to abandonment, home developers will play their Windows games and do their Li

    • Re:Interesting (Score:4, Insightful)

      by UnknownSoldier ( 67820 ) on Tuesday May 19, 2020 @12:09PM (#60078946)

      Sadly, won't change a thing. Microsoft has _zero_ intention of supporting DX / D3D on anything other then XBox and Windows. They are not going to spend any time, money, or effort to make it easier for Linux to run Windows games.

      Linux gaming has many facets:

      * Running Windows games on Linux -- Wine and Proton already fill this niche. (How "well" is a different story, but I digress.)
      * Running games on Linux mobile -- There are already over 2 Billion devices running Linux games with Android.
      * Running games natively on Linux desktop -- There are roughly 14,936 games [steampowered.com] that run on Linux according to Steam.

      The OS is NOT the problem.
      i.e. FreeBSD is already used by millions of gamers on the PS3 and PS4.

      The problem is developers just don't want to support Linux desktop gaming -- they would rather support consoles. Can't really blame them when > 90% of gamers are running Windows. It is a chicken-and-egg problem.

      Anyone writing cross platform games is already using Vulkan, Metal, OpenGL, or other proprietary APIs due to D3D being not available on them. If you want to see Linux game become serious then buy every Linux game possible. That sends a message to developers and publishers that supporting Linux gaming is worth doing.

      • The OS is NOT the problem.
        i.e. FreeBSD is already used by millions of gamers on the PS3 and PS4.

        The problem is developers just don't want to support Linux desktop gaming -- they would rather support consoles.

        Now I'm no programmer, but if a developer already has a build for the BSD based PS3 and the BSD-running PS4, wouldn't it be not that difficult to do a Linux version?

      • by iwbcman ( 603788 )

        Sadly, won't change a thing. Microsoft has _zero_ intention of supporting DX / D3D on anything other then XBox and Windows. They are not going to spend any time, money, or effort to make it easier for Linux to run Windows games.

        Linux gaming has many facets:

        * Running Windows games on Linux -- Wine and Proton already fill this niche. (How "well" is a different story, but I digress.) ...

        ***bzzzzzzzzt wrong answer***

        check this out: https://devblogs.microsoft.com... [microsoft.com]

  • by MeanE ( 469971 ) on Tuesday May 19, 2020 @11:44AM (#60078838) Homepage
    Windows Terminal is OK but ConEmu https://conemu.github.io/ [github.io] is so much better.
    • At work I am forced to use Windows but thankfully I am allowed to run Cygwin.

      Running bash in ConEmu gives all sorts of terminal issues. Especially when I ssh into some other box. The size of the window keeps de-syncing with what the software thinks it is. Therefore I start getting lines to wrap to early (or too late, overwriting the beginning of the line) and paging in "less" becomes impossible, etc etc.

      I love ConEmu and use it extensively for powershell and cmd. Its developer is doing an amazing job, but t

  • Never forget the nature of the beast of redmond. Nothing good will come from this.

    • Nothing good will come of upgrading the 25 year old windows terminal to one which supports tabs? Do you have a point or are you just busy "derp derp M$ BAD Mmmmkaaaay" ing.?

  • Unlike running Linux as a guest VM in VMware or VirtualBox, WSL2 does not provide its Linux guest VM with access to USB hardware devices such as mass storage, smart card readers, HID devices, etc.

    So even if one uses WSL2 for Linux development, if one's applications uses USB devices, then you are out of luck if you want to test within WSL2.

  • Playing Windows games via two layers of API translation, now that would be awesome.

  • No reason to have a crappy wannabe OS to run my Linux stuff on.

  • by Guspaz ( 556486 ) on Tuesday May 19, 2020 @02:01PM (#60079450)

    WSL is a compatibility layer for running Linux binary executables natively on Windows

    No, it's not. WSL 1 was a compatibility layer to do that, complete with libraries to simulate Linux kernel calls. WSL 2 is just a virtual machine running the real Linux kernel in Hyper-V.

    WSL 1 was something that was actually interesting. Native support for Linux apps, it was pretty neat. WSL 2 is just vmware with less steps.

    • I fully agree. I've always thought of WSL as "the inverse of WINE" and that it can give near-native performance for Linux applications on Windows.

      I was surprised when I first learned about WSL2 switching to a VM. I'd expect performance degradation. Apparently a lot of it had to do with Disk I/O were somehow performance was much worse than using a VM with a disk image. If I remember correctly, they switched to having a special mount and now ask you to only access Linux files directly that way, so that metada

  • by DrXym ( 126579 ) on Tuesday May 19, 2020 @02:04PM (#60079460)
    Being able to type "bash" in Windows and get a genuine, bodafide Linux environment open up is very cool. Previous efforts like "Services for Unix" were horrible and always carried the stench that they'd been sent out to die.

    As for the terminal, I've used ConEmu for a long time now and I expect this will be along similar lines. I'd probably use it with the command prompt or bash if I have a chance because I really hate powershell.

  • Microsoft gave developers a slew of new tools to coax them into using Windows over macOS or Linux

    Now all they have to do is give us a reason to want to use Windows.

  • this just gets the newbies used to some Linux so they can switch to run Linux as the base OS and virtualized the windows os for the occasional legacy apps.

    Most all the real developers I know either use a Mac or a Linux machine as the primary computer. Windows is a VM or a cheap laptop that gets used occasionally. What we really need is Microsoft to chip in and make WINE 100% compatible with all win32 apps.

To stay youthful, stay useful.

Working...