Giter VIP home page Giter VIP logo

nyrna's Introduction

Buy Me A Coffee

Nyrna

Suspend games and applications.

Promo Image

Similar to the incredibly useful sleep/suspend function found in consoles like the Nintendo Switch and Sony PlayStation; suspend your game (and its resource usage) at any time, and resume whenever you wish - at the push of a button.

Suspend Games

  • Pause cutscenes to read the subtitles, examine the scene, answer the door, etc.
  • Pause games that can't normally be paused (single-player games like Dark Souls, Elden Ring, etc)
  • Suspend games whose pause screens keep the system running hot or playing unwanted music
  • Suspend inbetween checkpoints (example: Hollow Knight)

Suspend Applications

Nyrna can be used to suspend normal, non-game applications as well. For example:

  • 3D renders
  • video encoding
  • software compilation

The CPU and GPU resources are being used by said task - maybe for hours - when you would like to use the system for something else. With Nyrna you can suspend that program, freeing up the resources (excluding RAM) until the process is resumed, without losing where you were - like the middle of a long job, or a gaming session between save points.


Nyrna works on Linux with X11 and Microsoft Windows.

Nyrna Website

Disclaimer

Modifying running applications comes with the possibility that the application will crash.

While this is rare, it is a known possibility that Nyrna can do nothing about.

Please make sure to save your data or game before attempting to use Nyrna.

Install

View install options on the website.

FAQ

Can I suspend to disk so that I can restore after reboot / free up RAM usage / etc?

Unfortunately no. CRIU looks very promising to allow us to do this (on Linux), however it does not currently support suspending GUI applications.

Troubleshooting

If you use Microsoft Windows, issues are often resolved by running Nyrna as an administrator.

Building

See BUILDING

nyrna's People

Contributors

albanobattistella avatar bluemancz avatar dependabot[bot] avatar merrit avatar starz0r avatar thebigdalt 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  avatar

nyrna's Issues

[BUG] High RAM comsuption while idle - Windows 10

Describe the bug
The app is using a lot of RAM (5GB as of writing this) doing nothing, since I started it I haven't suspended any application.

To Reproduce
Steps to reproduce the behavior:

  1. Start the app.
  2. Do nothing for several hours.

Expected behavior
Not to use so much RAM.

Screenshots
ProcessHacker_2021-03-18_09-38-10
ProcessHacker_2021-03-18_09-37-55

Software (please complete the following information):

  • OS: Windows 10

Error resuming Slack on Linux

I am using Ubuntu 20.04. Nyrna can suspend Slack, but it pops up a window saying that there is an error when I try to resume it. Screenshot:
image

[BUG] Doesn't suspend Kdenlive rendering

Describe the bug
Nyrna fails to suspend Kdenlive rendering activity, although it does minimize the associated windows.

To Reproduce
Steps to reproduce the behavior:
1: Open system monitor
2: Open a project in Kdenlive
3: Observe CPU activity/processes while using nyrna to suspend Kdenlive activity (both the rendering window and the app)
4: Note that the process "melt" which is the Kdenlive rendering is still active and consuming CPU resources.

Expected behavior
Kdenlive would pause rendering and CPU usage would be dramatically reduced

Screenshots
Attached
Screenshot_20210824_082405
Screenshot_20210824_082543

Software (please complete the following information):

  • OS: Kubuntu 21.04
  • Destop Environment KDE Plasma

[BUG] GetProperty: No such property

Describe the bug
I tried running nyrna and it's not working. I get the following result:

2020/07/20 17:55:11 Hotkey was pressed:  Pause
2020/07/20 17:55:11 No saved process details found
2020/07/20 17:55:11 Window ID: 117440514
2020/07/20 17:55:11 GetProperty: No such property '_NET_WM_PID' on window 7000002.
2020/07/20 17:55:11 PID: 0
2020/07/20 17:55:11 GetProperty: No such property '_NET_WM_NAME' on window 7000002.
2020/07/20 17:55:11 Window name:
2020/07/20 17:55:11 Not a Wine process
2020/07/20 17:55:11 invalid pid 0
2020/07/20 17:55:11 open /proc/0/status: no such file or directory
2020/07/20 17:55:11 Checking process - name:  PID: 0 status: Running
2020/07/20 17:55:11 Suspending

To Reproduce

  1. run glxgears
  2. Press "Pause" key

Expected behavior
It should work

Software:

  • nyrna: v1.1, downloaded binary release from GitHub
  • OS: openSUSE Tumbleweed (snapshot 20200716)
  • Destop Environment: i3wm 4.18.1
  • Python version: 3.8.3 (is it relevant?)

Punch Planet sometimes displays an error but resumes successfully

I'm on Xubuntu 22.04, running Punch Planet (using Proton) through Steam. Suspending & resuming Punch Planet usually works fine. Occasionally, though, I get this error.

image

Note that it doesn't actually name Punch Planet in the error message. To my knowledge, also, Punch Planet does not use Easy Anti-Cheat.

Pitch Black Theme

Hi Merrit

Fantastic app, put through donation. Not a bug, but rather a feature request or directions on how I could make changes myself if possible? Would like to create a pitch black Background with just the writing visible for the app, as I use it with an OLED TV on a pitch black background, and have the app permanently sitting open on my desktop.

Thanks
Tony Birt

Games of game pass isn't listed [BUG]

Describe the bug
I tried to open games like Forza motorsport 7 and Forza Horizon 4, and it didn't appear in the list, I started it as administrator and it didn't work either, I closed everything, and then I opened nyrna, then I opened the game and it didn't work either, but mortal kombat 11 which is a pirate game from gamestorrent if it appeared--pd.I used the google translator, I'm from Mexico xd

To Reproduce
Steps to reproduce the behavior:

  1. open nyrna as admin or not
  2. open games of xbox app (game pass)
  3. games don't listed

Expected behavior
I do not know if the problem is that the games of the xbox application of the game pass do not work in nyrna.

Screenshots
image

Software (please complete the following information):

  • OS: windows 10
    nyrna 2.2.0

Some programs have "PID: 0"; suspending them freezes desktop

Running Nyrna v2.6.0 on Linux Mint 20.3, the Steam window shows up as N/A with PID 0. (Note that this is the version of Steam provided by Mint's package manager, not the Flatpak version.) Additionally, while some Steam games (such as the Linux version of Dusk and the Windows version of Alan Wake under Proton 7.0) do show non-zero PIDs and can be suspended by Nyrna, some others (such as the Linux version of Detention) are identified as PID 0 as well.

nyrna-pid-0

I should have guessed that suspending Detention wouldn't work, but I tried anyway and it froze my desktop. I avoided a hard reset by logging out with Ctrl+Alt+Backspace, but of course that closed all of my programs. The same happens if I try to suspend Steam itself (via the N/A entry).

Based on the comments in #13, I realize that programs may show up as PID 0 due to issues that cannot be fixed on Nyrna's end. However, if trying to suspend such processes is likely to cause problems, then I would say they shouldn't be clickable. Maybe the specific desktop-freezing issue I'm experiencing when I click a PID 0 entry is a quirk of Linux Mint or Cinnamon, and maybe the result would be different on another Linux distro or desktop environment, but at best I assume it would do nothing β€” that is, I assume Nyrna can't actually suspend a program if it erroneously believes the PID is 0. If my assumption is right, then making PID 0 entries unclickable (or not displaying them at all) is probably a good idea.

[BUG] -t flag in Windows works inconsistently

Windows Hotkey is not actually working (or it works... sometimes?) I tried with the method suggested of setting a hotkey in a windows shortcut and adding the -t flag. Nyrna seems to open an instance when pressing the combination and closes immediately, but the foreground application isn't suspended. In some cases I did manage to get it to suspend, but pressing the hotkey again doesn't resume the process. Also tried created an AutoHotkey script to manage the hotkey but got the exact same result. It almost feels like Nyrna suspending itself and then closing itself, some kind of timing issue, I don't know.

Tested with Notepad, Microsoft Word, Game Super Meat Boy. Same inconsistent results.

The new version of Nyrna no longer works for me

What's expected

Pressing the Pause key pauses the foreground app

What happens

Pressing the Pause key freezes Nyrna

Steps to reproduce

  • Open Nyrna
  • Switch to the app one wants to pause
  • Press the Pause key

Workarounds

I'll just keep using the previous version for the time being

System Info:

OS: Endeavour OS
Kernel: Linux-ck-zen 5.7.2
DE: GNOME 3.36.3
Python: 3.8.3
X.org: 1.20.8

The previous one-file script version of Nyrna worked beautifully when assigning the hotkey through GNOME's setting panel, however this new version with PyGUI not only does not work (it does not pause the foreground application), but even manages to freeze itself, which is kinda funny not gonna lie.

Anyway, here's the terminal output up until the point where it dies, if you need more info let me know!
What I did was open Nyrna on one terminal and on a different terminal I opened GLXGears, and tried to pause that.

alphanumeric key g pressed
'g' released
alphanumeric key l pressed
'l' released
alphanumeric key x pressed
'x' released
alphanumeric key g pressed
'g' released
alphanumeric key e pressed
alphanumeric key a pressed
'e' released
alphanumeric key r pressed
'a' released
'r' released
alphanumeric key s pressed
's' released
special key Key.enter pressed
Key.enter released
special key Key.pause pressed
Key.pause released
/usr/lib/python3.8/site-packages/gi/module.py:171: Warning: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed
  g_type = info.get_g_type()
/usr/lib/python3.8/site-packages/gi/module.py:171: Warning: g_once_init_leave: assertion 'result != 0' failed
  g_type = info.get_g_type()
/usr/lib/python3.8/site-packages/gi/module.py:205: Warning: g_type_get_qdata: assertion 'node != NULL' failed
  type_ = g_type.pytype

Version conflict

I was trying to build the new version for the AUR but got this error during flutter pub get:

Because test >=1.20.0 depends on test_api 0.4.9 and test >=1.19.4 <1.20.0 depends on test_api 0.4.8, test >=1.19.4 requires test_api 0.4.8 or 0.4.9.
And because every version of flutter_test from sdk depends on test_api 0.4.3, flutter_test from sdk is incompatible with test >=1.19.4.
So, because nyrna depends on both flutter_test from sdk and test ^1.19.5, version solving failed.
Running "flutter pub get" in nyrna...                                   
pub get failed (1; So, because nyrna depends on both flutter_test from sdk and test ^1.19.5,
version solving failed.)

I was able to compile it correctly changing the version to:

-  test: ^1.19.5
+  test: ^1.17.9

Maybe I'm missing something here so here we are πŸ˜„ Btw I'm on flutter stable branch.

Version 2.5.0 does not start hotkey automatically at system startup.

Unfortunately even with the option toggled to launch at system startup nothing happens on a fresh boot. This is also after using Revo Uninstaller to clean every part of old Nyrna builds off of the system.

Functionality is thankfully normal when the app is started manually, however.

No Icon in system tray

After executing it, nothing happens except the system monitor saying it's running. Executing it twice gives a notification error that the pause key is already bind so this means everything is good and running but I have no access to change the hotkey because I am using gnome and there is nothing like a system tray icon or gnome extension.

I can't test the pause function because I am using a laptop that doesn't have this button and I can't change the hotkeys because there is no menu or etc I can access.

OS: Pop!_OS 20.04 (Gnome3.36.3)

[Feature Request] Pause multiple applications

It would be great to allow the user to pause multiple applications at the same time. Currently, when I pause an application and then try to pause another one, the first one always gets unpaused.

Linux system integration

I was thinking, what is the best way to install the current Nyrna to the Linux system? I mean, I know I can just take a portable.zip and extract it to the /usr/share/nyrna and then create symlinks to executables in /usr/bin, but what about toggle_active_window? Shouldn't it be at least renamed to nyrna-toggle or shouldn't a launch parameter like nyrna --toggle be considered to replace this?

window doesn't display on click

It used to work but now I can't even open it. I've tried re-installing and going back to older versions. The only new thing I did was install 0&0 ShutUp10++ so idk if that has anything to do with it.

2022-10-27 11 03 14 Nyrna

Processor AMD Ryzen 5 1600 Six-Core Processor 3.20 GHz
Installed RAM 32.0 GB
System type 64-bit operating system, x64-based processor
Pen and touch No pen or touch input is available for this display

Edition Windows 11 Pro
Version 22H2
Installed on β€Ž9/β€Ž24/β€Ž2022
OS build 22621.755
Experience Windows Feature Experience Pack 1000.22636.1000.0

[Feature request] Semi-auto refresh.

Hi and thank you again for the useful tool. It would be nice for the app to refresh a sec after hotkey is used. Also on window restore from tray or taskbar.

Program in another virtual desktop does not show in Nyrna program list

Describe the bug
Programs listed in Nyrna are only in the current desktop. A program in a second virtual desktop does not show in Nyrna

To Reproduce
Steps to reproduce the behavior:

  1. Create 2nd desktop
  2. Open program in 2nd desktop or move a current program to 2nd desktop
  3. Start Nyrna
  4. Program in 2nd desktop not showing.

Expected behavior
Expected to see all programs running

Screenshots
If applicable, add screenshots to help explain your problem.

Software (please complete the following information):

  • OS: Win 10 20H2

Additional context
Add any other context about the problem here.

Resuming a game app will sometimes not work

Describe the bug
Resuming a game app will not work correctly all the time. But I cannot identify a specific pattern or cause. This only uncommonly happens (maybe once every 20 suspend/resumes?). Not sure. Only clue I have is the log.

To Reproduce
Steps to reproduce the behavior:

  1. Suspend app in Nyrna
  2. Resume app in Nyrna
  3. Status of app stays "orange" (suspended) despite several clicks. I've also tried manually refreshing by turning off auto refresh.
  4. Open Resource Monitor of Windows 10.
  5. Resume then suspend app in Resource Monitor.
  6. Go back to Nyrna and resume app.
  7. Now app is resumed correctly.

Expected behavior
Expect app to resume without using Resource Monitor.

Screenshots
If applicable, add screenshots to help explain your problem.

Software (please complete the following information):

  • OS: Windows 10 20H2, Nyrna v2.2.0

Additional context
LOG files (ALL):

2021-08-25 11:40:04.944296
WARNING
Logger: Win32Process
Error getting executable name: 6


EDIT: okay as soon as it happened again I took a look at the log:

2021-08-26 23:03:19.939150
WARNING
Logger: Win32Process
Error getting executable name: 6

I think this executable name error is causing this.

gendesk: command not found

System - Manjaro

Pamac error:
/var/tmp/pamac-build-casual/nyrna/PKGBUILD: line 15: gendesk: command not found

Nyrna binary compiled with glibc-2.32

I noticed that Nyrna binary is compiled with glibc version 2.32. When I try to run it I get error:

./nyrna: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by ./nyrna)

because I use glibc-2.31 which is stable in my system. It is not big deal for me, because I compile Nyrna myself from source. I just wanted to let you know that glibc-2.32 is not stable in all distributions yet.

https://packages.gentoo.org/packages/sys-libs/glibc

<whoops>

Apologies. Not sure how I ended up here. Didn't mean to open this.

2 security vendors and 1 sandbox flagged this file as malicious

Hello and Thanks for writing such a good tool. πŸ™‡
I check for all files i download for viruses by checking it at Https://www.Virustotal.com
I uploaded the windows .exe file of Nyrna 2.4.1(https://github.com/Merrit/nyrna/releases/download/v2.4.1/Nyrna-Windows-Installer.exe)
It showed 2 security vendors out of 68 and 1 sandbox flagged this file as malicious.
Can you please look into it. πŸ‘€
From what i have read, this is a fantastic tool, i just don't want it to be tagged as malicious without your notice/oversight.
Just wanted to let you know. :)

[BUG] Starts with white screen when added to Task Scheduler - Windows 10

Describe the bug
Executing shortcut runs Nyrna normally. But I need to run as administrator for my games to suspend. If I try to run the program by adding a task in Task Scheduler, Nyrna only shows a white screen within its window. I use task scheduler because I want Nyrna to run as administrator at startup.

To Reproduce
Steps to reproduce the behavior:

  1. Go to task scheduler
  2. Make a task to run Nyrna with highest privileges (I made one to run on log on)
  3. Run task manually to test
  4. White screen in Nyrna window

Expected behavior
I expect Nyrna to show the running programs as it is usually does when executing the shortcut from the start menu.

Screenshots
If applicable, add screenshots to help explain your problem.

Software (please complete the following information):

  • OS: Windows 10 20H2
  • Nyrna v2.0-beta.1

Additional context
If I copy the Nyrna shortcut to the Startup menu, it will run at startup. But I can't run it as administrator. My games won't suspend unless Nyrna is run as administrator.

Tray icon colour

I don't know, how is tray icon handled, but I would prefer a white colour to fit my theme. Is this icon hardcoded or it will adapt to icon-theme, when it finds a suitable icon?

SnΓ­mek z 2020-07-26 18-38-42

#EDIT
I guess it's hardcoded, right?

icon "github.com/Merrit/nyrna/icons"

Keyboard Shortcut?

I was told Nyrna had a keyboard shortcut for pausing the current tab, and that it was rebindable, but I do not see this in the version I downloaded. couldi t be this was an earlier function that was removed?

Add Wayland Support

First of thanks a lot for making this app available for Linux. It only supports X11/xorg. Do you have any plan to support it under wayland in future? Are their in any difficulties to support it under wayland?

Again, thanks for the app.

Add hotkey support?

Would it be possible to set this up to suspend the active window with a hotkey press? Binding it to something like alt+f3 would be really useful to suspend a running game, for instance.

Great program btw, I'm always finding it very useful as-is.

[BUG] Unhandled arguments cause program to fail on launch

Describe the bug
If you were to pass an argument that isn't currently handled by Nyrna you'll end up with a blank application window and an error in your console.

To Reproduce
Pass an argument to Nyrna and view its output. For example nyrna --help

Expected behavior
For Nyrna to exit gracefully with an error message indicating that argument is unknown

Screenshots
image

$ ./Nyrna-latest-x86_64.AppImage --help
Gtk-Message: 10:31:34.778: Failed to load module "colorreload-gtk-module"
Gtk-Message: 10:31:34.778: Failed to load module "window-decorations-gtk-module"
Gtk-Message: 10:31:34.779: Failed to load module "appmenu-gtk-module"
flutter: Unknown argument: FormatException: Could not find an option named "help".
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: NoSuchMethodError: The method 'wasParsed' was called on null.
Receiver: null
Tried calling: wasParsed()
#0      ArgumentParser._checkToggleFlag (package:nyrna/arguments/argument_parser.dart:61)
#1      ArgumentParser._parse (package:nyrna/arguments/argument_parser.dart:46)
#2      ArgumentParser.init (package:nyrna/arguments/argument_parser.dart:21)
#3      parseArgs (package:nyrna/main.dart:34)
#4      main (package:nyrna/main.dart:19)
#5      _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:140)
#6      _rootRun (dart:async/zone.dart:1354)
#7      _CustomZone.run (dart:async/zone.dart:1258)
#8      _runZoned (dart:async/zone.dart:1789)
#9      runZonedGuarded (dart:async/zone.dart:1777)
#10     _runMainZoned.<anonymous closure> (dart:ui/hooks.dart:138)
#11     _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:283)
#12     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184)

Software (please complete the following information):

  • OS: Bedrock Linux 0.7.20 Poki, Arch and Debian strata
  • Destop Environment: KDE 5.20.5

Great work on Nyrna btw! Quite a handy tool

Deathloop (epic launcher) freezes/crashes when suspending

When I try to suspend the game Deathloop, the spinner of the nyrna application freezes and the deathloop process gets suspended, but is non responsive. The green circle does not turn orange, and I cannot click the item again in nyrna. I then have to kill the deathloop process after witch nyrna app shows an error.
I'm using the Epic game launcher, and I know Deathloop uses Denuvo DRM.

Wrong detection of dwm process in Windows 10

Hi! Thanks for the tool.
I'm on Windows 10. Wrong name is given to dwm.exe process. Here's screenshot:
https://yadi.sk/i/yAtq5MhV-Mvtbw

It would be nice to filter out all processes with %WINDIR% path included.

P.S.

Your app is a good start. Give it a watchdog function with profiled idle automation and publish it in a steam store. It can be a bomb. Very useful with single player games.

[Feature Request] Ability to Rebind Nyrna Hotkey on Windows

Wanted to say first of all great job Kristen, it had been a while since I used Nyrna and I love how nice and simple the Windows UI!

Could really get a lot of use out of being able to rebind the keyboard shortcut as I'm trying to create a Steam controller profile that does everything my keyboard does. I've made awesome progress, the only problem is Steam's controller API doesn't allow use of the Pause key. And using Nyrna with a controller would be great since I find it primarily useful for gaming!

Does not work with Flatpak'd apps

The tool does not work with Flatpak'd apps. The notification is shown saying the app was suspended, but the app is not actually suspended. Pressing the hotkey again does not trigger the resumed notification. Pressing the key a third shows the suspended notification again.

I'm not sure if any process is actually being suspended. Monitoring all processes using Gnome's System Monitor does not list any process with a status of Stopped.

I haven't tried yet if games started by the Flatpak version of Steam work, since I reverted to using Steam installed on the system due to other issues.

Tested on Fedora 32 - GNOME 3.36

[Feature Request] Notifications

I am on Linux, Xfce.
In the Xfce's preferences I set the notifications timeout duration to six second, and in facts, the notifications of Nyrna respects this settings. However would be useful to have a way to increase the timeout/duration of Nyrna's notifications, to remember that an application has been paused; furthermore such notification could be also improved by display the time of when the application has been paused.

Windows build reports wrong version

This is due to Flutter not having implemented automatically propagating the version number from the pubspec: flutter/flutter#73652

This can be manually fixed by editing windows/runner/Runner.rc and updating the VERSION_AS_NUMBER and VERSION_AS_STRING lines.

#ifdef FLUTTER_BUILD_NUMBER
#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER
#else
#define VERSION_AS_NUMBER 1,1,1,2
#endif

#ifdef FLUTTER_BUILD_NAME
#define VERSION_AS_STRING #FLUTTER_BUILD_NAME
#else
#define VERSION_AS_STRING "1.1.1.2"
#endif

This could probably be automated in the build script.

Provide information when interaction fails

Currently failures provide little-to-no information.

When a suspend / resume fails, provide the user with information about why (error if possible), as well as common reasons for failure (eg Anti-Cheat, with link to check if a game uses that).

#64 (comment)

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.