Code Monkey home page Code Monkey logo

Comments (57)

vadikom avatar vadikom commented on May 26, 2024 15

Guys, as far as I understand, drag and drop over the application icons is not possible for now (due to other required Gnome changes) so what about the following implementation:

  1. User grabs anything and drags it over any application icon in the dock without dropping (when it's hovered while dragging something over it the application icon changes appearance so it's clearer what happens).
  2. User waits some time while still holding the item - e.g. 500-1000 ms and:
    a) if the application has any opened windows, the top most is raised so the user can drop to it.
    b) if the application has no open windows, it is launched and the user can drop to the newly opened application window.

I believe this is a good starting point (no fancy window previews, application overviews, etc.) and should be quite simple to implement (although I must admit I am not familiar with the extension code and have close to zero experience with Gnome/GTK development).

I had some time last week and looked at this. First of all, many thanks to @david-campos whose initial code at david-campos@7685acb I used as a starting point. His approach to implementing drag and drop seems to be very close to what I thought of and suggested above and I am really happy I found his work (via this recent issue #1328) since I had difficulties figuring out how/where to start.

Anyway, here is a demo of how it works for me (YouTube video) - I must say I am totally used to it already and can't imagine going forward without it:

IMAGE ALT TEXT HERE

If you would like to quickly test it out:

  1. Find and backup the following file:

~/.local/share/gnome-shell/extensions/[email protected]/dash.js

and replace it with the following:

https://raw.githubusercontent.com/vadikom/dash-to-dock/master/dash.js

  1. Hit Alt + F2, type r and hit Enter to reload Gnome shell.

I am on Pop!_OS 20.04 / X11 and it works very well here. I have no idea whether it would work on Wayland though.

Source code

https://github.com/vadikom/dash-to-dock

Known issues

  • doesn't seem to work correctly with any custom display scaling (other than 100%) - fractional scaling or even 200%. I guess some of the following props/methods get broken but am not able to spend more time testing/fixing this for now:
    dragEvt.x
    dragEvt.y
    target.transform_stage_point(dragEvt.x, dragEvt.y)
    target.get_allocation_box().contains(x, y)
  • when you drag some foreign objects over the dock the drag monitor doesn't seem to be able to detect the dragging and I guess there is nothing we could do about it at this level. For example, if you load a web page in Chrome/Chromium/Opera and grab a link to drag over the Firefox icon, the dragging is not detected. While if you do the opposite and drag over a link from Firefox to Chrome/Chromium/Opera it all works fine so I guess it depends on the way the different apps implement drag and drop in general.

Final thoughts

IMHO, this solution is good enough for production (I don't mean my exact code, it surely needs some input by someone with much more experience). Not knowing what exactly is dragged is not a big issue if you ask me since users will normally tend to drag stuff over apps that they know will be able to handle it. I mean, for example, nothing would prevent a user from dragging a text file over the Settings app but who would really do it? On the other hand, I tested the Plank dock and it tries to figure out what is dragged and which apps can handle it so that it only enables their icons - however, it doesn't get it right in many cases - e.g.:

  • dragging a text file will not enable any browser icon
  • dragging an image file will not enable all browser icons
  • dragging any file enables the Settings app icon
  • ...

You get the idea.

from dash-to-dock.

ElectricPrism avatar ElectricPrism commented on May 26, 2024 5

I use Dash to Dock on a Wacom MobileStudio Pro 16, a device with no keyboard, so I see the importance of being able to drag a PNG into Krita via the Dock.

I will poke around the upstream bug report, hopefully they can get it sorted and mainlined sometime soon as it improves Touch devices.

from dash-to-dock.

corebots avatar corebots commented on May 26, 2024 4

still hoping this will be implemented one day. d&d is so handy when working with a stylus. dash to dock is getting better though, thanks for the work.

from dash-to-dock.

hyuri avatar hyuri commented on May 26, 2024 4

Oh, this feature would be great

from dash-to-dock.

fxdave avatar fxdave commented on May 26, 2024 3

I think I could implement it but this code is salat (sorry). Any chance to refactor the code into a well structured, well-documented one?

from dash-to-dock.

vccortez avatar vccortez commented on May 26, 2024 3

so the problem is that upstream doesn't tell you anything about what you drop ?
could you still catch the hover event when dragging, though ? because then we could at least open the window of the hovered application if there's one opened.

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024 2

Many would be really grateful if somebody with skills can work on the upstream support! Thanks in advance!

from dash-to-dock.

micheleg avatar micheleg commented on May 26, 2024 2

I think the sistuation hasn't changed upstram yet: I think we are able to catch the drop but not get information about what you drop. Ideally someone would need to contribute upstream: they have no need for this functionality so it's totally fair for them to not implement this.

from dash-to-dock.

micheleg avatar micheleg commented on May 26, 2024 2

@vekat, @fxdave yes, we could open the window of the application (similarly to what hapen if you drag something into the overview and on top of a window ther).

from dash-to-dock.

fxdave avatar fxdave commented on May 26, 2024 2

Nice!
I would be happy, if you explain your code to me. I will make it then.
Write me if you want me to make it : [email protected]

from dash-to-dock.

fcole90 avatar fcole90 commented on May 26, 2024 2

Yes. I just checked and it works, tough a bit slowly, it used to be more reactive. I don't know why it's taking some seconds before triggering the overview 🤔

from dash-to-dock.

v-marinkov avatar v-marinkov commented on May 26, 2024 2

This would be a dream come true for the GNOME desktop!

from dash-to-dock.

vadikom avatar vadikom commented on May 26, 2024 2

Guys, as far as I understand, drag and drop over the application icons is not possible for now (due to other required Gnome changes) so what about the following implementation:

  1. User grabs anything and drags it over any application icon in the dock without dropping (when it's hovered while dragging something over it the application icon changes appearance so it's clearer what happens).
  2. User waits some time while still holding the item - e.g. 500-1000 ms and:
    a) if the application has any opened windows, the top most is raised so the user can drop to it.
    b) if the application has no open windows, it is launched and the user can drop to the newly opened application window.

I believe this is a good starting point (no fancy window previews, application overviews, etc.) and should be quite simple to implement (although I must admit I am not familiar with the extension code and have close to zero experience with Gnome/GTK development).

from dash-to-dock.

 avatar commented on May 26, 2024 2

Ah this is a very much missing feature for me as well . I understand that gnome by default doesn't need it as it doesn't have a dock that appear when windows are used . But this would be very much useful if gnome could provide functionality for this .

from dash-to-dock.

Nirzak avatar Nirzak commented on May 26, 2024 2

Vadikom's suggestion still works for me, could this be added to dash-to-dock main code?

Almost a year later, I am still happy to get an answer see_no_evil. And maybe the code needs some changes in order for it to work in 21.10.

Yeah But I have seen that an extension dash to panel has this feature. Using that extension we can just hover the mouse on an open application and it will show the application windows overview to drag and drop files. Can someone who is skilled enough can use this extension to get that feature also on dash to dock?

from dash-to-dock.

vadikom avatar vadikom commented on May 26, 2024 2

Vadikom's suggestion still works for me, could this be added to dash-to-dock main code?

Almost a year later, I am still happy to get an answer see_no_evil. And maybe the code needs some changes in order for it to work in 21.10.

I guess it will need some changes for Gnome 40+ but I am still on 3.38 and haven't had the need to do it yet (not sure how the Dash to Dock Gnome 40 support is progressing either). But I will probably need to look at it soon when Pop!_OS 21.10 is released and I upgrade as I am too used to the feature now...

from dash-to-dock.

psokol avatar psokol commented on May 26, 2024 1

This is the feature I miss most. All desktops I have used has it: Windows XP, GNOME 2, XFCE. It's so sad that GNOME 3 creators forgot to add this.

from dash-to-dock.

corebots avatar corebots commented on May 26, 2024 1

Hello I'm really looking forward to this feature. When working with a graphic tablet, being able to grab anything and choose which application will open it, with dropping it to the right icon...it speeds up things a lot.

My suggestion would be to show the dock automatically when the user is dragging a file (and preferably highlighting the associated app launchers) to give the user a hint of where the file could/should go.

I understand if this is blocked by current gnome limitations but still hope for a quick fix! And thank you for all the work on this top extension!

from dash-to-dock.

micheleg avatar micheleg commented on May 26, 2024 1

@fxdave @Filbuntu yes the code is messy... extensions are dirty hacks by nature, and the projects has accumulated some dust in 6 years evolving following continuous upstream changes. Could it be better? For sure, but I do not have the resources to do a full refactor :). Pragmatically, the extension is a relatively small pieace of code, and most of the complexity comes from having to effectively live-patch the usptream code anyway. But help is wellcome!

If you are serious about considering working on this (and it would be very appreciated), you would need to look into how the extension interacts with upstream codebase and understand how to hook into it to achieve the desired functionality (which one by the way? How would you inplement this, given the dnd limitations?).

I can provide some guidance.

from dash-to-dock.

fxdave avatar fxdave commented on May 26, 2024 1

@micheleg I can help with refactoring the upstream code if you want to.
I don't know what the dnd limitation is, but there is on-drag event in gtk3 so I think it is possible.

EDIT: sorry I didn't read the comments above. So can't we catch on-drag?
At least, it is enough without the target, just open the application then it will handle the target.

from dash-to-dock.

fxdave avatar fxdave commented on May 26, 2024 1

I just imagine this like I drag my photo to the icon to change the window but don't drop in it. It is enough.
So drop event is not required. As I think, we can add an event handler to the application icons that will fire if we drag something on top of the icon, so we can start the application or just showup the app window.

from dash-to-dock.

gjvnq avatar gjvnq commented on May 26, 2024 1

Any update on this? I desperately wait for this so I can upgrade our second computer to Ubuntu 18.04 (or later) as the rest of the family can not cope with the "alt+tab" workaround and need the drag&drop function. Thanks in advance for all attention and work!

This hack worked for me: gsettings set org.gnome.nautilus.preferences use-experimental-views false

Source: https://askubuntu.com/a/1090010

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024 1

@fcole90 Thanks for taking the workaround further. It is an good option if you have a keyboard and mouse working and if you know about it. But most users won't figure it out. Therefore we desperately need a real D&D. Hopefully somebody can work on this soon.

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024 1

Any update on this? Real Drag & Drop is dearly missed!

from dash-to-dock.

ZLTM avatar ZLTM commented on May 26, 2024 1

Gonna be the issue 7 birthday soon, any update?

from dash-to-dock.

david-campos avatar david-campos commented on May 26, 2024 1

I am working on this, but I am newbie... I asked for help in #1328, in case somebody has more experience with the drag&drop signals... I have the way to make it work for applications with only one window already (only in vertical, but adding horizontal later should be the really-easy part, I just want to get all the process to work on my setup first and then I will add the variants and so).

What really made me get stuck now is that I can't really make the preview windows detect the drag signals when dragging over them. I was expecting to show the previews and by hovering one of them to show the corresponding window. However, no matter what I try I seem to get no drag&drop signals outside the box of the dock (the previews render as a drop menu outside it).

from dash-to-dock.

Rabotyahoff avatar Rabotyahoff commented on May 26, 2024 1

@vadikom Works fine on 4k monitor with scaling 200%
I hope it will be in upstream.

from dash-to-dock.

vanvugt avatar vanvugt commented on May 26, 2024 1

Downstream Ubuntu bug: https://launchpad.net/bugs/1727321

from dash-to-dock.

micheleg avatar micheleg commented on May 26, 2024

Hi,

this is definitely a good feature to implement. I'm not sure if it is easy to do it in a proper way, but I'm confident it's feasible. Unfortunately, Gnome Shell "API" documentation is not so good. The easy way to understand how Gnome Shell works is by reading it's source code. It's mainly javascript. Have a look at http://mathematicalcoffee.blogspot.it/2012/09/gnome-shell-javascript-source.html that gives a brief overview of the different source files. Some library like the Shell Toolkit are well documented instead (http://developer.gnome.org/st/stable/).

Thank you for your interest in helping with the implementation of this feature. I don't have a lot of time to spend doing it, but I can give you some help and advice. I've just had a look at the source code, and it seems that the first step is to capture the drag event on the app icon. This can be done by adding an handleDragHover method for example to the myAppWellIcon class (in the extension file myDash.js). The ActivitiesButton class (it's inside panel.js) does something similar handling the drag of a file over the activities button. Then I'm sure it's possible to launch the correct application making it open the dropped file, though I don't know exactly how at the moment.

Thanks again for you interest in contributing. Let me know if you try to write some code, I'll try to help you as much as I can.

from dash-to-dock.

mreq avatar mreq commented on May 26, 2024

I'll definitely try that in about a week, once I pass the finals. I am interested in gnome-shell and have some extension ideas. This might be a good start.

from dash-to-dock.

ElectricPrism avatar ElectricPrism commented on May 26, 2024

I really need this feature to keep using Dash to Dock as I throw files around via Filezilla, GIMP, etc... all day long.

Your hard work is appreciated @micheleg :)

from dash-to-dock.

micheleg avatar micheleg commented on May 26, 2024

There is one mayor stopping thing: https://bugzilla.gnome.org/show_bug.cgi?id=696321. Support has to be provided upstream first. I did try patching gnome-shell with the patch attached to that bug and got a proof of concept, but can't go on without upstream support.

I have investigated the option of showing the application windows on drag and drop, so that at least you can release the item on an already opened windows. This is technically possible - right now in gnome-shell this can be done going throw the activities button but it's not very handy.

from dash-to-dock.

ElectricPrism avatar ElectricPrism commented on May 26, 2024

Thanks for looking up the status of the XDnD implementation, again your hard work is much appreciated bro, keep it up :)

from dash-to-dock.

IzhakJakov avatar IzhakJakov commented on May 26, 2024

+1

from dash-to-dock.

fcole90 avatar fcole90 commented on May 26, 2024

I think a good compromise would be to at least show the overview, like dock to panel does. Do you think it would be possible and easier?

from dash-to-dock.

fxdave avatar fxdave commented on May 26, 2024

I didn't get support, so I had to find another method. Now I'm not using dock. I am just dragging the file with mouse, while I can switch window by pressing alt+tab. It was hard to get used to, but actually the basic gnome concept is good. Without dock we can achieve more space. I use dash only for launching favorite applications with a plugin named "Appkeys". Whit Appkeys, I can launch them by pressing super+ app number in dash. (It's not a negative comment, just a temporary workaround)

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

Any update on this? I desperately wait for this so I can upgrade our second computer to Ubuntu 18.04 (or later) as the rest of the family can not cope with the "alt+tab" workaround and need the drag&drop function. Thanks in advance for all attention and work!

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

@gjvnq Thank you for your comment! It still does not work for me on Ubuntu 18.04. I tried it with Nautilus and Nemo, also after restarting.
With the hack, can you drag a file from Nautilus/Nemo on to the icon of the dock bar and the windows of the corresponding program/app (e.g. email client with email window) open and you can drop the file into the email which would then attach the file to the email?

from dash-to-dock.

fcole90 avatar fcole90 commented on May 26, 2024

Dash to Panel in the same situation enables the overview (so like when doing Alt + Tab). A user can then move the cursor over the appropriate window and finally release the file there. I think it's a good workaround until the shell allows for true D&D.

What do you think about it?

from dash-to-dock.

fcole90 avatar fcole90 commented on May 26, 2024

I think I didn't explain it correctly, as it doesn't require the keyboard. Just the mouse or touchpad or whatever you use to move your cursor. You drag the element to the bar, this triggers the overview window, you then drag the item to the window you want, then the window get focus, finally release your item.

It is clearly not as good as D&D, but I think it's as closer as you can get with current APIs, and a good workaround while waiting for them.
Also, please, try it for some time, as the way I describe it sounds much more cumbersome then it actually is.

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

@fcole90 Thanks for the clarification, it sounds a good step into the right direction and much better than nothing!
Does this work in Ubuntu 18.04? I tried it but it did not work. I tried with the GNOME extension "Dash to Dock" disabled and enabled. If it works in 18.04, what could be the culprit?

from dash-to-dock.

fcole90 avatar fcole90 commented on May 26, 2024

I don't really know, but if I discover it I'll comment back 😉

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

@fcole90 Thanks! Does this work in Ubuntu 18.04?

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

@mreq Hi Petr! As you closed this issue, do you have news about the implementation of this feature request? Hopefully!

from dash-to-dock.

mreq avatar mreq commented on May 26, 2024

@Filbuntu No, sorry. I'm closing legacy issues to clean up my issues list. This issue is almost 8 years old and not likely to be resolved. I haven't been using gnome shell for years either.

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

@mreq Thank you for the response, albeit not the one I hoped for 😉.
As this is a crucial feature and dearly missed by many, I wonder how to proceed from here: File a new feature request here or at a different place? Any other suggestion?

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

@mreq Would it be ok if I open a new feature request?
This feature is dearly missed, not only by @v-marinkov who wrote: "This would be a dream come true for the GNOME desktop!"
The Ask Ubuntu question and the answer to its question "How to Drag and Drop files to open application?" is well followed and user hope there will be an easier way to drag & drop if possible.

from dash-to-dock.

mreq avatar mreq commented on May 26, 2024

@Filbuntu Feel free to do so. In the meantime, i'll reopen this one.

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

@mreq Thank you for reopening this issue. As this one is open again, a new feature request is not needed form my perspective.
Hopefully there is someone who can work on this!

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

Thanks a lot @vadikom for your work, video and instructions!
It also works on my system (Ubuntu 20.04, Dash To Dock v. 69). If I have several windows of the same app open (e.g. Evolution Email client), it would choose the last active window.

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

Vadikom's suggestion still works for me, could this be added to dash-to-dock main code?

from dash-to-dock.

Libric0 avatar Libric0 commented on May 26, 2024

@vadikom I love your implementation! The display scaling issue is probably problematic for adding it into the main code, but the chrome-issue is just not something that can be fixed and is probably an issue that would not come up (i never knew you could drag and drop a link). Still it works for any of my use cases and fixes a big issue I had with the gnome-desktop! Thank you

from dash-to-dock.

Nirzak avatar Nirzak commented on May 26, 2024

Guys, as far as I understand, drag and drop over the application icons is not possible for now (due to other required Gnome changes) so what about the following implementation:

  1. User grabs anything and drags it over any application icon in the dock without dropping (when it's hovered while dragging something over it the application icon changes appearance so it's clearer what happens).
  2. User waits some time while still holding the item - e.g. 500-1000 ms and:
    a) if the application has any opened windows, the top most is raised so the user can drop to it.
    b) if the application has no open windows, it is launched and the user can drop to the newly opened application window.

I believe this is a good starting point (no fancy window previews, application overviews, etc.) and should be quite simple to implement (although I must admit I am not familiar with the extension code and have close to zero experience with Gnome/GTK development).

I had some time last week and looked at this. First of all, many thanks to @david-campos whose initial code at david-campos@7685acb I used as a starting point. His approach to implementing drag and drop seems to be very close to what I thought of and suggested above and I am really happy I found his work (via this recent issue #1328) since I had difficulties figuring out how/where to start.

Anyway, here is a demo of how it works for me (YouTube video) - I must say I am totally used to it already and can't imagine going forward without it:

IMAGE ALT TEXT HERE

If you would like to quickly test it out:

  1. Find and backup the following file:

~/.local/share/gnome-shell/extensions/[email protected]/dash.js

and replace it with the following:

https://raw.githubusercontent.com/vadikom/dash-to-dock/master/dash.js

  1. Hit Alt + F2, type r and hit Enter to reload Gnome shell.

I am on Pop!_OS 20.04 / X11 and it works very well here. I have no idea whether it would work on Wayland though.

Source code

https://github.com/vadikom/dash-to-dock

Known issues

  • doesn't seem to work correctly with any custom display scaling (other than 100%) - fractional scaling or even 200%. I guess some of the following props/methods get broken but am not able to spend more time testing/fixing this for now:
    dragEvt.x
    dragEvt.y
    target.transform_stage_point(dragEvt.x, dragEvt.y)
    target.get_allocation_box().contains(x, y)
  • when you drag some foreign objects over the dock the drag monitor doesn't seem to be able to detect the dragging and I guess there is nothing we could do about it at this level. For example, if you load a web page in Chrome/Chromium/Opera and grab a link to drag over the Firefox icon, the dragging is not detected. While if you do the opposite and drag over a link from Firefox to Chrome/Chromium/Opera it all works fine so I guess it depends on the way the different apps implement drag and drop in general.

Final thoughts

IMHO, this solution is good enough for production (I don't mean my exact code, it surely needs some input by someone with much more experience). Not knowing what exactly is dragged is not a big issue if you ask me since users will normally tend to drag stuff over apps that they know will be able to handle it. I mean, for example, nothing would prevent a user from dragging a text file over the Settings app but who would really do it? On the other hand, I tested the Plank dock and it tries to figure out what is dragged and which apps can handle it so that it only enables their icons - however, it doesn't get it right in many cases - e.g.:

  • dragging a text file will not enable any browser icon
  • dragging an image file will not enable all browser icons
  • dragging any file enables the Settings app icon
  • ...

You get the idea.

Didn't work on ubuntu 21.10 whenever try to do this the dock just got disabled after restarting gnome-shell

from dash-to-dock.

Filbuntu avatar Filbuntu commented on May 26, 2024

Vadikom's suggestion still works for me, could this be added to dash-to-dock main code?

Almost a year later, I am still happy to get an answer 🙈. And maybe the code needs some changes in order for it to work in 21.10.

from dash-to-dock.

Nirzak avatar Nirzak commented on May 26, 2024

Vadikom's suggestion still works for me, could this be added to dash-to-dock main code?

Almost a year later, I am still happy to get an answer see_no_evil. And maybe the code needs some changes in order for it to work in 21.10.

I guess it will need some changes for Gnome 40+ but I am still on 3.38 and haven't had the need to do it yet (not sure how the Dash to Dock Gnome 40 support is progressing either). But I will probably need to look at it soon when Pop!_OS 21.10 is released and I upgrade as I am too used to the feature now...

Yeah please do it quickly sir. We are eagerly waiting for this!

from dash-to-dock.

uderbashi avatar uderbashi commented on May 26, 2024

Vadikom's suggestion still works for me, could this be added to dash-to-dock main code?

Almost a year later, I am still happy to get an answer see_no_evil. And maybe the code needs some changes in order for it to work in 21.10.

I guess it will need some changes for Gnome 40+ but I am still on 3.38 and haven't had the need to do it yet (not sure how the Dash to Dock Gnome 40 support is progressing either). But I will probably need to look at it soon when Pop!_OS 21.10 is released and I upgrade as I am too used to the feature now...

@vadikom , Firstly, I love your workaround and I fond it extremely useful.
A small issue that I have is with workplaces.
When in activities and want to drag a programme into another workplace it doesn't recognise it (it doesn't move it to that workplace). Once I reverted to the old dash.js it worked normally, so I guess the script is the source of the issue.
To me, the action of your patch is more important and frequently used, thus I am sticking to it, but I think that it is a minor inconvenience that some people may have.

Love your work!!

from dash-to-dock.

the-mentor avatar the-mentor commented on May 26, 2024

+1

from dash-to-dock.

Related Issues (20)

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.