Git Product home page Git Product logo

samba-documents-provider's Introduction

Samba Documents Provider

Overview

This is an Android app that extends the built in File Manager to support connecting to SMB file shares.

This app is built on top of Samba 4.5.1.

Setup

Prerequisite

Android SDK and NDK r15b or above are required to build this app. Android Studio is highly recommended.

This build guide is only tested on Ubuntu. Changes to make it build on other platforms are welcome.

Build Steps

  1. Download and unarchive Samba 4.5.1 source code.
  2. Change directory to the root of Samba source code.
  3. Create a git repository.
  4. Run git apply <path_to_samba_documents_provider_source>/sambapatch.diff.
  5. Modify configure.sh to change $NDK to point to your NDK folder.
  6. Uncomment corresponding flags in configure.sh to compile for different architecture. Uncomment flags for ARMv7 in addition to 32-bit ARM to compile it for ARMv7.
  7. Run configure.sh to configure Samba project.
  8. Run compile.sh to compile libsmbclient.so.
  9. Run install.sh <path_to_samba_documents_provider_source>/app/src/main/jniLibs/<ABI>.
  10. Change directory to SambaDocumentsProvider source code.
  11. Run mv app/src/main/jniLibs/<ABI>/includes app/src/main/cpp/samba_includes.
  12. Change directory to the root of Samba source code and run make distclean.
  13. Repeat step 6-12 for all desired ABI's.
  14. Make sure to change app's build.gradle to include only ABI's that Samba was built for in previous steps.
  15. Compile SambaDocumentsProvider.

Discussion

Please go to our Google group to discuss any issues.

samba-documents-provider's People

Contributors

rthakohov avatar ttanxu avatar voltagex 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  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

samba-documents-provider's Issues

Can not compile Samba 4.5.1 with __USE_FILE_OFFSET_BITS64

I faced with the problem, lib can not download file that have size bigger than 2GB on armv7a platform. For example, if file has size 2.3GB, lib will download exactly 2GB with no errors - simply EOF (300MB at the end of file is missing). That's why I'm trying to build library with __USE_FILE_OFFSET_BITS64 flag to workaround this problem on armv7, but no matter what flags I add (or not add) to configure.sh: there is alwayas an error on configure step - Samba requires large file support support, but not available on this platform: sizeof(off_t) < 8

What I did:

  1. Downloded Samba 4.5.1
  2. Applied sambapatch.diff from v1.1 (tag commit)
  3. Uncommented lines for armv7a, commented lines for armv8a
  4. Ran configure.sh
  5. Error occurred (Samba requires large file support support, but not available on this platform: sizeof(off_t) < 8)

NDK version used: 16b
Library version: 1.1

P.S. On 64-bit system there is no such error.
P.S.2 If i try to copy toolchain with --unified-headers option, it throws an error that this is unknown option

Access file shares via VPN

Hello,
Need a little help on this one:
I have an openvpn connection to my router (asus rt ac87u), which has connected a hdd via usb.
In solid explorer i can see the smb share, navigate, edit it, etc. with this app i cannot mount it no matter what.
Tried both smb://192.168.87.1/hdd and \\192.168.87.1\hdd and user&password. nothing works.

Is there anything i can to help you find/fix this issue?

Thanks.

can‘t compile with ndk19

build success with ndk15c but failed when using ndk19. too many errors are occurred. two years have passed since last update, please update it

Share path is incorrectly formatted

Provide users with some context as to how the app is expecting the share to be formatted in the text field. E.g. set placeholder to smb://10.2.1.31/path

Tune ProxyFileDescriptorCallback's performance

May be related to Android system.

We probably need to add a layer of buffer because the length of data the callback reads is ~128KB, but it's still slower than old 128KB buffer (which is not so optimized to current network settings).

Need to restructure current architecture so that we can parallel network I/O and fuse I/O.

macOS - wscript:223: error: could not configure a c compiler!

Hi all,

I am trying to build this Android project in my macOS laptop.

However, when doing Step 7 (Run configure.sh to configure Samba project), it have following errors:

macusers-MacBook:samba-4.5.1 HighSierra$ ./configure.sh
Creating standalone toolchain...
./configure.sh: line 50: /ndk-bundle/build/tools/make_standalone_toolchain.py: No such file or directory
Configuring Samba...
Checking for program gcc or cc           : ['/Users/HighSierra/Desktop/samba-4.5.1/cc_shim.py', '/Users/HighSierra/Desktop/samba-4.5.1/bin/ndk/toolchain/bin/clang'] 
/Users/HighSierra/Desktop/samba-4.5.1/lib/replace/../../buildtools/wafsamba/wscript:223: error: could not configure a c compiler!

Could anyone assist on solving this issue?

Similar issue: #55

Thanks.

filenames that end with a "." get mangled

I've got a folder on a samba share named "letlive." (smbd Version 4.2.14-Debian). When I look at it with LinageOS Files App over a Android Samba Client share, the foldername is displayed as "LIULVZ~G".

Not sure what's going on here. Other Samba Clients display (Gnome's nautlis) display the name correctly. I also checked whether LinageOS Files App can display folders with this exact name and that works perfectly fine for folders on my sd card.

I'm using Android Samba Cliente 1.1 from F-Droid.

Failed to mount share.

I am getting the above error message, which is very useful.

The share itself is working on another device (a printer) !!!
I am using Win 10.

here is the logcat output:

01-28 04:13:39.418 19625 19736 W Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE 01-28 04:13:39.484 19625 19736 D vndksupport: Loading /vendor/lib/hw/gralloc.msm8960.so from current namespace instead of sphal namespace. 01-28 04:13:40.522 19625 19694 D NativeSambaClient: Reading dir at smb://192.168.178.10/NetzwerkFreigabe. 01-28 04:13:40.522 19625 19694 V NativeSambaClient: Requesting authentication data for server: 192.168.178.10 and share: NetzwerkFreigabe. 01-28 04:13:40.544 19625 19736 W Adreno-EGL: <qeglDrvAPI_eglGetConfigAttrib:607>: EGL_BAD_ATTRIBUTE 01-28 04:13:40.562 19625 19736 D vndksupport: Loading /vendor/lib/hw/gralloc.msm8960.so from current namespace instead of sphal namespace. 01-28 04:13:45.539 19625 19694 E NativeSambaClient: Failed to open dir at smb://192.168.178.10/NetzwerkFreigabe. Errno: 6e 01-28 04:13:45.540 19625 29947 E DocumentMetadata: Failed to load children. 01-28 04:13:45.540 19625 29947 E DocumentMetadata: java.io.IOException: Failed to read directory smb://192.168.178.10/NetzwerkFreigabe 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(NativeSambaFacade.java:63) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.SambaFacadeClient$SambaServiceHandler.processMessage(SambaFacadeClient.java:167) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.BaseClient$BaseHandler.handleMessage(BaseClient.java:51) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at android.os.Handler.dispatchMessage(Handler.java:106) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at android.os.Looper.loop(Looper.java:164) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper.prepare(SambaMessageLooper.java:73) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper.access$000(SambaMessageLooper.java:23) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper$1.run(SambaMessageLooper.java:28) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at java.lang.Thread.run(Thread.java:764) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: Caused by: android.system.ErrnoException: readDir failed: ETIMEDOUT (Connection timed out) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(Native Method) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(NativeSambaFacade.java:61) 01-28 04:13:45.540 19625 29947 E DocumentMetadata: ... 8 more 01-28 04:13:45.541 19625 29947 I ShareManager: Failed to mount server. 01-28 04:13:45.541 19625 29947 I ShareManager: java.io.IOException: Failed to read directory smb://192.168.178.10/NetzwerkFreigabe 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(NativeSambaFacade.java:63) 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.SambaFacadeClient$SambaServiceHandler.processMessage(SambaFacadeClient.java:167) 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.BaseClient$BaseHandler.handleMessage(BaseClient.java:51) 01-28 04:13:45.541 19625 29947 I ShareManager: at android.os.Handler.dispatchMessage(Handler.java:106) 01-28 04:13:45.541 19625 29947 I ShareManager: at android.os.Looper.loop(Looper.java:164) 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper.prepare(SambaMessageLooper.java:73) 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper.access$000(SambaMessageLooper.java:23) 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper$1.run(SambaMessageLooper.java:28) 01-28 04:13:45.541 19625 29947 I ShareManager: at java.lang.Thread.run(Thread.java:764) 01-28 04:13:45.541 19625 29947 I ShareManager: Caused by: android.system.ErrnoException: readDir failed: ETIMEDOUT (Connection timed out) 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(Native Method) 01-28 04:13:45.541 19625 29947 I ShareManager: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(NativeSambaFacade.java:61) 01-28 04:13:45.541 19625 29947 I ShareManager: ... 8 more 01-28 04:13:45.544 19625 19625 E MountServerTask: Failed to mount share. 01-28 04:13:45.544 19625 19625 E MountServerTask: java.io.IOException: Failed to read directory smb://192.168.178.10/NetzwerkFreigabe 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(NativeSambaFacade.java:63) 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.SambaFacadeClient$SambaServiceHandler.processMessage(SambaFacadeClient.java:167) 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.BaseClient$BaseHandler.handleMessage(BaseClient.java:51) 01-28 04:13:45.544 19625 19625 E MountServerTask: at android.os.Handler.dispatchMessage(Handler.java:106) 01-28 04:13:45.544 19625 19625 E MountServerTask: at android.os.Looper.loop(Looper.java:164) 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper.prepare(SambaMessageLooper.java:73) 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper.access$000(SambaMessageLooper.java:23) 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.SambaMessageLooper$1.run(SambaMessageLooper.java:28) 01-28 04:13:45.544 19625 19625 E MountServerTask: at java.lang.Thread.run(Thread.java:764) 01-28 04:13:45.544 19625 19625 E MountServerTask: Caused by: android.system.ErrnoException: readDir failed: ETIMEDOUT (Connection timed out) 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(Native Method) 01-28 04:13:45.544 19625 19625 E MountServerTask: at com.google.android.sambadocumentsprovider.nativefacade.NativeSambaFacade.readDir(NativeSambaFacade.java:61) 01-28 04:13:45.544 19625 19625 E MountServerTask: ... 8 more

Mount location

On my LG G5 (rs988) I am unable to find the folder using the stock file manager.

error configure.sh

error: could not configure a c compiler!
I got this error. I have gcc instlled.
Can you tell me what is the problem?
Thanks

Option to Unmount/Remove label

No way to unmount obsolete shares from Downloads app's sidebar. Please add option to track added shares and option to remove or edit/reconfigure.

Any alternative for accessing mount shares?

For those that have carrier branding on software and file_manager isin't able to access shares, is there any alternative file manager that is able to access it ?

I see that share is mounted via gmail application, but cannot find it anywhere else also 'download' don't see it.

Thank you Lenovo.

Thumbnail support

In some file manager, you can view images, scroll the contents of a folder, without having to enter the gallery and use the application's default system.
Can you improve the app?
Why was the app not found in playstore?
Thanks.

Store passwords encrypted

Have a look in ServerCachePref.xml and be shocked. All passwords are stored there in plain text.
Professional coding...not by Google.

Android TV share access

Hello,
I have a Sony ATV 2017 running android 7.0 and I would like to mount my smb shares into the android file system. The main reason is, that the stock video app have no smb support and all other media player apps have some video stuttering and audio issues.
I could install the google samba client on my tv and I was able to create a share successfully. Then I tried the suggested app (Shortcut maker for DocumentsUI) from an other issue. But the shortcut could not be found.
Is there any hope in the future to use the samba client on android TVs?

Enable SMB3

Need to modify the configuration file to allow SMB2 & SMB3.

For some reason libsmbclient out of the box uses maximum SMB1 protocol. They're preparing Samba 4.7.0 to make it default to SMBv3.

IOError: [Errno 2] No such file or directory: samba-4.5.1/wscript_configure

FATAL: Failed to find a statfs method

/Users/wangyancong/Downloads/samba-4.5.1/lib/util/wscript: error: Traceback (most recent call last):

File "/Users/wangyancong/Downloads/samba-4.5.1/third_party/waf/wafadmin/Utils.py", line 669, in recurse

exec(compile(txt, file_path, 'exec'), dc)

File "/Users/wangyancong/Downloads/samba-4.5.1/third_party/waf/wafadmin/Utils.py", line 639, in recurse

txt = readf(file_path, m='rU')

File "/Users/wangyancong/Downloads/samba-4.5.1/third_party/waf/wafadmin/Utils.py", line 164, in readf

f = open(fname, m)

[IOError: [Errno 2] No such file or directory: '/Users/wangyancong/Downloads/samba-4.5.1/wscript_configure']

https://groups.google.com/forum/#!topic/samba-documents-provider/BEat3wiV47U

Support NetBIOS broadcast for server browsing

Master browser doesn't work if either client or server set its lowest protocol to SMBv2 or above, but broadcast should still work as a workaround to use NetBIOS browsing.

See link for more details.

Feature: Remove Share

As far as I can tell, after registering a share, there is no way to cleanly remove/forget a share. I had to resort to deleting app data.

No way to connect a shared folder LG k8

I only have one chance to see the files and even to play videos from a shared folder. Then I close this app and now I can't figure it how to open the shared folder. If I try to mount again it drops an error.

Sorry for my English

List discovered Samba devices

I know I have a samba server on my home network, and other devices and file managers list it to connect to. I don't recall the exact format for the path, but would love to be able to choose the server from a list of some sort.

SMB Shares connected though WiFi Hotspot fail to reconnect

I can connect to my Laptop's share over USB using the builtin hotspot-over-USB functionality, but after a while the connection will time out. The app will not reconnect to the share, since I am technically on 4G currently. I can force a reconnect by clearing app data and entering my credentials.

Encrypt file share & credentials in storage

Right now it's stored in plain text and rely on full disk encryption & proper activity manager permission protection. Add one more layer of protection to avoid unnecessary data leak.

Chromebook

Tested on Chromebook, Android 7.1.1
Mount doesnt't work, error message: Share path is incorrectly formatted.
My format is: \nasname\share

MDNS support

Please add MDNS support for name resolution. Commonly used for home networks and works on my Mac, Linux and Windows (10) systems but not on Android. Allows use of e.g. "fileserver.local" instead of IP address.

Insecure IV generation.

Instances of java.util.Random are not cryptographically secure. Using this for cryptographic primitives is dangerous. You should use SecureRandom in this case.
proves:
https://docs.oracle.com/javase/7/docs/api/java/util/Random.html
https://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.html
https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf

import java.util.Random;
...
private static final Random RANDOM = new Random();
...
 private static byte[] generateIv() {
    byte[] iv = new byte[IV_LENGTH];

    RANDOM.nextBytes(iv);

    return iv;
  }
...

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol

1.I want to run on andorid22,so I choosed ndk toolchain like that:

./make-standalone-toolchain.sh
--arch=arm --platform=android-21

2.and then,Adaptation api and gradle like that:

compileSdkVersion 22
minSdkVersion 21
targetSdkVersion 22

3.the quesetion is that,when i run the build apk to andorid-22 has fatal as bellow. but run on andorid-23 successful. How do I deal with?


FATAL EXCEPTION: main
Process: com.google.android.sambadocumentsprovider, PID: 5022
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "state_path" referenced by "libsmbregistry-samba4.so"...
at java.lang.Runtime.loadLibrary(Runtime.java:371)
at java.lang.System.loadLibrary(System.java:988)
at com.google.android.sambadocumentsprovider.SambaConfiguration.(SambaConfiguration.java:37)
at com.google.android.sambadocumentsprovider.SambaProviderApplication.initializeSambaConf(SambaProviderApplication.java:77)
at com.google.android.sambadocumentsprovider.SambaProviderApplication.initialize(SambaProviderApplication.java:61)
at com.google.android.sambadocumentsprovider.SambaProviderApplication.init(SambaProviderApplication.java:117)
at com.google.android.sambadocumentsprovider.provider.SambaDocumentsProvider.onCreate(SambaDocumentsProvider.java:150)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1697)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1672)
at android.provider.DocumentsProvider.attachInfo(DocumentsProvider.java:171)
at android.app.ActivityThread.installProvider(ActivityThread.java:5025)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4620)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4560)
at android.app.ActivityThread.access$1500(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1380)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5280)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)

mount successful, but cannot access remote files on Nexus 5

The mount operation (smb://fritz.box/FRITZ.NAS) was told to have been successful, and the input line has been cleared. However, there is nothing to be seen, neither in app "Download" nor in app "Einstellungen/Speicher & USB/".

I have the standard of the standard devices (Nexus 5 with original 6.0.1 ROM) and standard applications.

The ASUS file manager app has no problems to access the NAS.

wscript:223: error: could not configure a c compiler!

Getting an error on running sh configure.sh on mac

Creating standalone toolchain...
usage: make_standalone_toolchain.py [-h] --arch
{arm,arm64,mips,mips64,x86,x86_64}
[--api API]
[--stl {gnustl,libc++,stlport}] [--force]
[-v]
[--package-dir PACKAGE_DIR | --install-dir INSTALL_DIR]
make_standalone_toolchain.py: error: unrecognized arguments: --unified-headers
Configuring Samba...
Checking for program gcc or cc : ['/Users/sasuke/Downloads/samba-4.5.1/cc_shim.py', '/Users/sasuke/Downloads/samba-4.5.1/bin/ndk/toolchain/bin/clang']
/Users/sasuke/Downloads/samba-4.5.1/lib/replace/../../buildtools/wafsamba/wscript:223: error: could not configure a c compiler!

Download/Files app and mounted folder path?

Hello,
I dowloaded Android Samba Client. After i set up my network options, the app launches what it seems to be a google app where i see all the directories from my pc (that's great!). This launched app is called "Downloads" but I can't find it on my S8. It just launches after i set up the smb server on android samba client and if i close it i won't be able to open it again. Why can't i find this app on my phone? But most of all, how can i find the mounted smb folder's path in the archive?
(Try to speak simple, thanks)

Assign smb:// scheme to Anroid Samba Client

I have a usecase where the user uses a qr-code scanner app which provides the path for my share (smb://host/share). I have installed Android Samba Client but my smartphone still say's it can't find any app which handle these url's. see

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.