Git Product home page Git Product logo

kwsl's People

Contributors

crramirez avatar desktopecho avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

kwsl's Issues

Error loop when running install script

When I run the install script, I get to the "[22:20:43] Git clone and update repositories (~1m15s)" section and the script gets stuck in an error loop in the apt-get update part. Unfortunately, the window closes before I can see what the full error is. Any ideas what could be happeneing?

Possibility to run single linux apps with native titlebars?

Is it possible to run single apps with linux titlebars instead of a full desktop when using RDP ? Something like how winapps has implemented...

Only some/few of the apps (eg: nautilus & gedit) have their own titlebars and most of them have their titlebar drawn/inherited from the OS

Cannot Disable Screen Lock

So with the latest and greatest version i cannot seem to find any place in the settings where i can disable the Screen Lock.

If i am running kWSL in an RDP session and then switch over to Windows for a period of time (seems like 10 minutes) the screen locks in KDE and i have to login again. Any idea where/how to change that? I did not see any settings for Power or for Lock in the available settings

Blue Screen under Windows 11

both kWSL and xWSL consistently trigger BSODs (MEMORY_MANAGEMENT) when attempting to run under Windows 11.

Installation succeeds, but very shortly after starting up and executing a few simple screen actions the BSOD is triggered. Have repeated this multiple times now

New version xRDP & GCC error

Installed the new version, but its more unstable than the last version. the crashes still happen, but over that even gcc is not accessible? Error is get is: /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o: in function _start': (.text+0x24): undefined reference to main

Looking for a way around that, adding it to path variables etc. Will try reinstalling as well.

The bigger issue is that xRDP has stops with both the versions after a specific number of logins. The error it gives is:

connecting to sesman ip ... port ...
sesman connect ok
sending login info, please wait
login failed for display 0

it is similar to this here, and some other problems, but none of the solutions worked. Purging and reinstalling doesn't work either. Any clue how to fix the login error?

Not able to point the RDP file to new WSL2 instance

After a successfull installation of kWSL, I swtiched the default version of WSL to 2. Conversion was successful as well and so was the restart of Kwsl. But now I am not able to point the RDP file to the new WSL2 instance. Assume my laptop's name (in My PC properties) is LAPTOPXYZ, my username D, and my kWSL instance name is NeonWSL.

  • I have tried editing the settings of the RDP file and put LAPTOPXYZ-NeonWSL.local:3399 as the host address. Does not connect.
  • I have tried typing LAPTOPXYZ-NeonWSL.local:3399 as a command in cmd and powershell and the kWSL console as well (elevated) with no results (which was a long shot but I tried it anyways).

What am I supposed to do to point to the new WSL2 instance?

Plasmashell won't start after kwsl reinstall

So, I installed the new kWSL for 6.0 and everything worked perfectly fine.
Then I wanted to delete my old WSL but removed the new kWSL by accident ;-;

So I went to just install it again and... It doesn't work anymore.
The cursor style loads but I am met with a black screen. I can fire up the GUI terminal using CTRL + ALT + T
and I can even start GUI applications like seamonkey from the terminal. But no taskbar, no background or anything.
So I tried starting it myself

$ pkill plasmashell
$ plasmashell &

kde.plasmashell: Aborting shell load: The activity manager daemon (kactivitymanagerd) is not running.
kde.plasmashell: If this Plasma has been installed into a custom prefix, verify that its D-Bus services dir is known to the system for the daemon to be activatable.

Doing $ kactivitymanagerd yields kactivitymanagerd: command not found
BUT doing sudo apt install kactivitymanagerd says kactivitymanagerd is already the newest version (6.6.2-0xwsl1).

I am pretty sure I didn't change anything between the initial install and the reinstall. I also wiped the folder, unregistered the wsl instance and everything.

I tried the reinstall multiple times over last last couple of days. Always the same problem.
Do you have any clue what could have went wrong?

xRDP Problem: Missing text, wrong window size

After running kWSL.cmd without any errors and starting the RDP connection from my Windows 11 Pro (23H2 Build: 22631.3374) client I get the following Plasma 6 experience:

kWSL1

Also tried to connect via Chrome Remote Desktop. There I get the following prompt and after selecting: Plasma (X11) Plasma by KDE I only get a black screen.

kWSL2

Fresh install error and stuck on "Select Runlevel and hit Enter" -loop

First of all, very promising script, thank you for hard work.

I got error during installation while jumping on RDP and I was forced to jump on shell and do ,,apt fix-broken´´ . After that I got infinite loop with screen:

2 = Multi-User System
1 = Single-User System
0 = Stop services and terminate instance.

Select Runlevel and hit Enter:

I managed to capture message between loops:

"rm: cannot remove '/usr/bin/systemctl': No such file or directory", so I created one but it still keeps looping, and after first attempt same rm error appears again.

Running Win11.

Log Out on kWSL does not terminate anything

@DesktopECHO According to your last suggestion, I switched the start-sleep value to 15 first. It worked for a few days. The xrdp-sessman would terminate and so would the instance. But then it stopped working. Same happened with 30 and now 60. Now clicking on the logout does nothing except kill close the RDP window. How do I change that?

Cant install

I have tried multiple times to install it, i even completely removed all WSL garbage off my system, tried reinstalling ubuntu, etc but every single time I end up with this sort of odd error. Suggestions please?

[ the generic ubuntu wsl installs works completely fine, opening gui apps works fine too , thus i am a bit puzzled. ]

[kWSL Installer 20210701]

Enter a unique name for your kWSL distro or hit Enter to use default.                                                   Keep this name simple, no space or underscore characters [kWSL]: KDENEON                                                Port number for xRDP traffic or hit Enter to use default [3399]:                                                        Port number for SSHd traffic or hit Enter to use default [3322]:                                                        Set a custom DPI scale, or hit Enter for Windows default [1]:                                                           [Not recommended!] Type X to eXclude from Windows Defender:

Installing kWSL Distro [KDENEON] to "C:\KDENEON"
This will take a few minutes, please wait...

[19:48:53] Installing Ubuntu 20.04 LTS (~1m30s)
[ERROR] Couldn't get the value "DistributionName" of the registry key "Software\Microsoft\Windows\CurrentVersion\Lxss\AppxInstallerCache".
Reason: The system cannot find the file specified.
[19:48:54] Git clone and update repositories (~1m15s)
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
[19:48:54] Remove un-needed packages (~1m30s)
[19:48:54] Configure apt-fast Downloader (~0m45s)
[19:48:55] Remote Desktop Components (~2m45s)
[19:48:55] KDE Neon 5.22 User Edition (~11m30s)
[19:48:55] Install Web Browser and CRD (~1m30s)
[19:48:55] Final clean-up (~0m45s)
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.

Enter name of primary user for KDENEON: chris
Enter password for chris: *******
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.
There is no distribution with the supplied name.

Open Windows Firewall Ports for xRDP, SSH, mDNS...
Building RDP Connection file, Console link, Init system...
Copy-Item : Cannot find path 'C:\KDENEON\KDENEON (chris) Desktop.rdp' because it does not exist.
At line:1 char:1
+ Copy-Item 'C:\KDENEON\KDENEON (chris) Desktop.rdp' ([Environment]::Ge ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\KDENEON\KDENEON (chris) Desktop.rdp:String) [Copy-Item], ItemNotFoun
   dException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand

Building Scheduled Task...
Get-Content : Cannot find path 'C:\KDENEON\rootfs\tmp\kWSL\kWSL.xml' because it does not exist.
At line:1 char:20
+ $WAI = (whoami) ; (Get-Content .\rootfs\tmp\kWSL\kWSL.xml).replace('A ...
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\KDENEON\rootfs\tmp\kWSL\kWSL.xml:String) [Get-Content], ItemNotFound
   Exception
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

You cannot call a method on a null-valued expression.
At line:1 char:19
+ ...  (whoami) ; (Get-Content .\rootfs\tmp\kWSL\kWSL.xml).replace('AAAA',  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Get-Content : Cannot find path 'C:\KDENEON\rootfs\tmp\kWSL\kWSL.xml' because it does not exist.
At line:1 char:20
+ $WAC = (pwd)    ; (Get-Content .\rootfs\tmp\kWSL\kWSL.xml).replace('Q ...
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\KDENEON\rootfs\tmp\kWSL\kWSL.xml:String) [Get-Content], ItemNotFound
   Exception
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetContentCommand

You cannot call a method on a null-valued expression.
At line:1 char:19
+ ...  (pwd)    ; (Get-Content .\rootfs\tmp\kWSL\kWSL.xml).replace('QQQQ',  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

ERROR: The system cannot find the path specified.

      Start: 03/11/2021 @ 19:48
        End: 03/11/2021 @ 19:48
There is no distribution with the supplied name.

  - xRDP Server listening on port 3399 and SSHd on port 3322.

  - Links for GUI and Console sessions have been placed on your desktop.

  - (Re)launch init from the Task Scheduler or by running the following command:
    schtasks /run /tn KDENEON

 KDENEON Installation Complete!  GUI will start in a few seconds...

kWSL black screen & failure to start

RDP launches but ends up in black screen.

I have done the following:

  • Uninstalled WSL Ubuntu 20.04 LTS so that it doesn't interfere
  • Reinstalled kWSL twice

Upgrading kWSL to WSL2 as-well results in kWSL no longer being able to open, even with changing RDP as the readme suggests.

Not entirely sure what information I could give to help this issue either

RDP connection : Not able to connect to rdp when converted to wsl2

Hi @DesktopECHO

I have tried the wsl 1 version and it works beautifully and I am able to rdp into it perfectly.
When I converted it to wsl 2 i got no errors anywhere but when i followed you guide of what changes to make, i tried to connect to the RDP session it showed this error,
Screenshot (134)

My laptop name is KUSHALSM-LAPTOP

Idk what to do, pls help me!!!!

WSL drive mount issue

Script throwing this message on a fresh deploy of Win11. For both xWSL and kWSL.

An error occurred mounting one of your file systems. Please run 'dmesg' for more details.

Ran on identical config last week. Today? not so much. It's repeatable (for me) on a clean install of Win11.

I can provide whatever info needed. Just don't know what's needed.

Apt update resolve problem

The installation script gets stuck in a loop because the network is not able to resolve the apt sources. This problem is the same as in the issue #25

:APTRELY
START /MIN /WAIT "Git Clone kWSL" %GO% "cd /tmp ; rm -rf kWSL ; git clone -b %BRANCH% --depth=1 https://github.com/%GITORG%/%GITPRJ%.git ; cp /tmp/kWSL/keyrings/*.gpg /etc/apt/trusted.gpg.d/"
START /MIN /WAIT "apt-get update" %GO% "apt-get update 2> /tmp/apterr"
START /MIN /WAIT "apt-get update" %GO% "add-apt-repository -y ppa:videolan/master-daily 2>> /tmp/apterr"
FOR /F %%A in ("%DISTROFULL%\rootfs\tmp\apterr") do If %%~zA NEQ 0 GOTO APTRELY
START /MIN /WAIT "apt-fast" %GO% "DEBIAN_FRONTEND=noninteractive dpkg -i /tmp/kWSL/deb/aria2*.deb /tmp/kWSL/deb/libaria2-0*.deb /tmp/kWSL/deb/libssh2-1*.deb /tmp/kWSL/deb/libc-ares2*.deb ; chmod +x /tmp/kWSL/dist/usr/local/bin/apt-fast ; cp -p /tmp/kWSL/dist/usr/local/bin/apt-fast /usr/local/bin" > NUL

There is a problem with the network connection and the apt update is not able to resolve the hostnames from the apt sources list.

Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://archive.neon.kde.org/user jammy InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:3 http://archive.neon.kde.org/user jammy InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Ign:2 http://archive.ubuntu.com/ubuntu jammy InRelease
Ign:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
Ign:3 http://archive.neon.kde.org/user jammy InRelease
Ign:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Err:2 http://archive.ubuntu.com/ubuntu jammy InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:3 http://archive.neon.kde.org/user jammy InRelease
  Temporary failure resolving 'archive.neon.kde.org'
Err:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
  Temporary failure resolving 'security.ubuntu.com'
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/jammy-security/InRelease  Temporary failure resolving 'security.ubuntu.com'
W: Failed to fetch http://archive.neon.kde.org/user/dists/jammy/InRelease  Temporary failure resolving 'archive.neon.kde.org'
W: Some index files failed to download. They have been ignored, or old ones used instead.

So, this command always jumps via APTRELY back to the top:
FOR /F %%A in ("%DISTROFULL%\rootfs\tmp\apterr") do If %%~zA NEQ 0 GOTO APTRELY

YouTube Buffering?

First let me say what a fantastic piece of work this is...I love KDE and I love WSL so this solution is/was perfect for me...

Sound quality in kWSL is also fantastic...one quetion though. It seems when i try to use something like YouTube inside kWSL i see a lot of what appears to be buffering, i.e a fairly health amount of time with the spinner going before the actual video starts. I can switch over to my main Windows desktop, fire up the same video(s) and there is no such problem...

Any ideas as to what might be causing this with kWSL?

WSL2 Version + 22.04 Rebase

I just wanted to ask if a WSL2 version is planned? I tried forking the repo but wasn't able to produce a stable result (I sadly don't know much about WSL since I'm a Linux user, just kinda forced to use windows now).
I'd really love to use this as daily driver. I just don't know how much work it would be to make a WSL2 script for the most recent KDE Neon (but I suppose a lot of WSL1 patches would be obsolete)

So would a WSL2 Version of kWSL with KDE Neon 5.26 (Ubuntu 22.04) be possible? I'd be willing to sponsor this as well

Provenance of binaries / reproducibility

Recommending that users clone the repo to have control over its content is not bad, but a security-conscious user should also care about any opaque files, such as packages or binaries. So:

Why are these files necessary?

Where do they come from?

How would one rebuild them?

Ideally we'd be able to do a reproducible build, producing byte-for-byte identical files, but setting that up is likely a lot of work.

22.04 Upgrade?

Is a 22.04 Rebase for kWSL planned?
If I try to upgrade via KDE Upgrader I first get

Please install all upgrades first

Upon upgrading the held-back packages (kactivitymanagerd kinfocenter libkf5activitiesstats1 xdg-desktop-portal) I get:

Error executing command as another user: Not authorized

Finally, do-release-upgrade throws new errors:

An unresolvable problem occurred while calculating the upgrade:
This can be caused by:
* Unofficial software packages not provided by Ubuntu


And a small question: Why is discover automatically started as root?

Recent activity

Hey 👋
I just noticed that you're planning on a rework / update which is AWESOME :D
After this project was in hiatus I decided I attempt to update it myself. It took a almost a year but it works now, there are just some minor performance problems. In case you want to take a look:

https://github.com/NullDev/kWSL/tree/echomaster

I dropped support for WSL1 with it thou but support the most recent neon now.
There are probably some unnecessary and stupid things in the code (Im by no means a WSL or Batch expert) but it works I guess

Can't install, ton of errors.

I'm on Windows 11 and I'm trying to install kWSL.
However I get a variety of different errors (in order):

Screenshot 2022-11-04 193529

Screenshot 2022-11-04 193550

Screenshot 2022-11-04 193724

Unfortunately I know more about Linux than Windows. So I have no clue what I am doing wrong :/

wsl --version

WSL version: 0.70.4.0
Kernel version: 5.15.68.1
WSLg version: 1.0.45
MSRDC version: 1.2.3575
Direct3D version: 1.606.4
DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows version: 10.0.22621.674

How to edit xrdp login screen??

@DesktopECHO
could you tell us how to edit xrdp login screen???

EDIT:-

By the way to help you, I have told people in youtube in comments section to go to you repo and try both xWSL and kWSL. Is it fine??

File dialog broken on chrome

I did something stupid.

I installed the latest kWSL and converted it to WSL2 and started installing my stuff.
Also downloaded stuff from chrome which worked fine.

Then I wanted to just install neon-all but couldn't because a lot of stuff depended on qt6-webengine which is marked as hold by kWSL.
So I thought lets just install it anway because whats the worst that could happen.

aaaaaaaaand yea. I installed neon-all and apps that depend on qt6-webengine seem to work fine. But it came at a cost.
I cant download stuff from chrome anymore because it can't open the system file dialog. When I try to download something I get

ERROR:select_file_dialog_linux_portal.cc(760)] Portal returned error: org.freedesktop.DBus.Error.AccessDenied: Portal operation not allowed: Unable to open /proc/0/root

I'm not sure if they were there before but there are a lot of other errors as well:

ERROR:browser_dm_token_storage_linux.cc(100)] Error: /etc/machine-id contains 0 characters (32 were expected).
ERROR:viz_main_impl.cc(198)] Exiting GPU process due to errors during initialization
ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KWallet.isEnabled: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
ERROR:kwallet_dbus.cc(112)] Error contacting kwalletd6 (isEnabled)
ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KLauncher.start_service_by_desktop_name: object_path= /KLauncher: org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.klauncher was not provided by any .service files
ERROR:kwallet_dbus.cc(81)] Error contacting klauncher to start kwalletd6
ERROR:object_proxy.cc(576)] Failed to call method: org.kde.KWallet.close: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying
ERROR:kwallet_dbus.cc(502)] Error contacting kwalletd6 (close)
ERROR:atom_cache.cc(229)] Add WM_CHANGE_STATE to kAtomsToCache
ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.Properties.Get: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.GetDisplayDevice: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.UPower.EnumerateDevices: object_path= /org/freedesktop/UPower: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files
ERROR:command_buffer_proxy_impl.cc(131)] ContextResult::kTransientFailure: Failed to send GpuControl.CreateCommandBuffer.
ERROR:gl_utils.cc(424)] [.WebGL-0x598004b5400]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels

Soooooo... Do I have to purge qt6-webengine along with all apps that depend on it or is there a workaround?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.