GithubHelp home page GithubHelp logo

stmicroelectronics / stblesensor_android Goto Github PK

View Code? Open in Web Editor NEW
111.0 30.0 57.0 31.28 MB

"ST BLE Sensor" Android application source code.

Home Page: https://www.st.com/en/embedded-software/stblesensor.html

License: Other

Kotlin 97.63% Shell 0.40% Java 1.77% HTML 0.14% GLSL 0.06%
stm32 stm32ode bluetooth-low-energy ble android bluestsdk

stblesensor_android's Introduction

Android_App_STBLESensors

Application ST BLE Sensors

Compilation

Code compiled using gradle 8.2.1 and JDK 17.0.7

set on Gradle properties the Github Login name and SSO authentication Example:

GPR_USER=PezzoniL
GPR_API_KEY=XXXXXXXXXXXXXXXXXXXXXXXX

For using this application is necessary to downlaod the Android BlueST-SDK from: https://github.com/STMicroelectronics/BlueSTSDK_Android

tag BlueST-SDK_V1.1.3

and follow the instruction for compiling and publish on local maven repository the 2 libraries necessary for this application:

  • st-blue-sdk
  • st-opus

brew install gnu-sed

Set the PATH (first on Intel, second on Apple Silicon) PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"

PATH="/opt/homebrew/opt/gnu-sed/libexec/gnubin:$PATH"  

cd extra

Run the command (first on Intel, second on Apple Silicon)

/usr/local/bin/bash ./createStDemoModule.sh binary_content xml "Binary Content"

/opt/homebrew/bin/bash ./createStDemoModule.sh binary_content xml "Binary Content"

License

Copyright (c) 2017 STMicroelectronics โ€“ All rights reserved The STMicroelectronics corporate logo is a trademark of STMicroelectronics

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  • Neither the name nor trademarks of STMicroelectronics International N.V. nor any other STMicroelectronics company nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

  • All of the icons, pictures, logos and other images that are provided with the source code in a directory whose title begins with st_images may only be used for internal purposes and shall not be redistributed to any third party or modified in any way.

  • Any redistributions in binary form shall not include the capability to display any of the icons, pictures, logos and other images that are provided with the source code in a directory whose title begins with st_images.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

stblesensor_android's People

Contributors

giovannivisentinist avatar nikapov-st avatar pezzonil 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

stblesensor_android's Issues

Speech to text encoding

Hi, it is me again.

Hi, there, I am working in NeuronicWorks, Toronto, as a mobile developer.

Now I am using your development kit for your blue tooth (chip) device.

private final Feature.FeatureListener mAudioListener = (f, sample) -> {
short[] audioSample = FeatureAudioADPCM.getAudio(sample);
};

In above method, the "audioSample" is Linear PCM encoded data (also decompressed), is it right?

As I need to use Google stream speech API, so how do I transform this short[] format to byte[]?

Best regards,

Boqian

Version 4.6.4

Hello,

We have downloaded on the app store the BLE Sensor 4.6.4. However the source code on Github is 4.6.1.

Is it possible to access to the latest source code?
For our project we would need to access to the BLE toolbox that we found only in the new version

Thank you and best regards

Compile errors

Hi, ST

Two main issues here:

  1. You can find dir "STBlueMS_Android/BlueMS/src/main/java/com/st/BlueMS/demos/Cloud/" in the code structure. But in code, the path are referred by "com.st.BlueMS.demos.cloud.something". But it doesn't exist.

  2. In "STBlueMS_Android/BlueMS/src/test/java/com/st/BlueMS/demos/Cloud/MqttFeatureListenerQuickStartTest", there is
    import com.st.BlueMS.demos.cloud.IBMWatsonQuickStartFactory.MqttFeatureListenerQuickStart;
    But anyway IBMWatsonQuickStartFactory doesn't exist.

BlueVoiceFullBand Not Working

Hi,

I'm trying to use the BlueVoiceFullBand demo with a bluecoin, but It doesn't seem to work.
For which kind of STM32 device this demo was created? Are there some particularities we must know to make it work?

Best regards,

A.

res missing

Hello,
It seems that main_flow_button_compat drawable ressource is missing.
Thx.

How to compile this project on Android Studio?

I have Android Studio 3.5.3 and tried several things to run this project, but always got failure. Do you have any description how to compile it ? It can be description for other version of android studio, but then tell me which i should use, please.

Error while building app on android

Hi, I am trying to build and install this source code on android but getting below error.

The minCompileSdk (31) specified in a
dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
is greater than this module's compileSdkVersion (android-29).

If I change compileSdkVersion to 31, then getting kotlin version mismatch errro

/.gradle/caches/transforms-3/0453560b92b97629cdc21df2bfebd566/transformed/jetified-core-ktx-1.9.0-alpha02-api.jar!/META-INF/core-ktx_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.1.16.

and if I change ext.kotlin_version = '1.6.0' getting this error

/STBlueMS_Android/BlueMS/src/main/java/com/st/BlueMS/demos/HighSpeedDataLog/tagging/HSDTaggingViewModel.kt: (167, 45): Unresolved reference: maxBy
/STBlueMS_Android/BlueMS/src/main/java/com/st/BlueMS/demos/HighSpeedDataLog/tagging/HSDTaggingViewModel.kt: (167, 53): Unresolved reference: it

Cannot find symbol method getDefaultCloudDeviceName(Node)

Giovanni,

Not working with Android Studio 3.0:

C:\lightner\Bluetooth\BLE\STBlueMS_Android\BlueMS\src\androidTest\java\com\st\BlueMS\demos\TestCloudLogFragment.java
Error:(121, 33) error: cannot find symbol method getDefaultCloudDeviceName(Node)
Error:(122, 27) error: cannot find symbol variable deviceId
Error:Execution failed for task ':BlueMS:compileDebugAndroidTestJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED in 42s

This is the offending code:

    @Test
    public void defaultDeviceIdIsNodeTag(){
        String deviceIdName =
                CloudLogFragment.getDefaultCloudDeviceName(mActivityRule.getActivity().getNode());
        onView(withId(R.id.deviceId)).check(matches(withText(deviceIdName)));
    }    

If I comment out the logic inside defaultDeviceIdIsNodeTag() the app immediately stops after connecting to my SensorTile. The "stock" .apk from the Play Store works just fine.

HELP!

Unable to load project (Android Studio 2.3)

I downloaded the source zip from github
Extracted the contents
Attempted to open the master directory with Android studio and receive the following error:

Gradle sync failed: Could not find method google() for arguments [] on repository container.

OTA Update Taking Too much time compare to play store application.

Hey... Everyone

Hope all are doing well,

Right now, I'm using ST BLE SDK from here, to communicate with my custom made hardware-based out on STM32WB chipset

Everything is working seamlessly except the OTA update!
My issue is, the size of the .bin file that I'm using for the OTA update is around 200KB. Now the app which I'm generating from this SDK is taking 200 sec to update the whole file, while the default ST-BLE app which I downloaded from the app store takes only 20 sec.

Is there any way by which, I can overcome the OTA update time?

I would appreciate all comments and suggestions :)
Thanks

MQTT problem with ST BLE Sensor App on Android

Hello everybody,

I am studying electronic engineering in Toulon, France, and I need to use the ST BLE Sensor App for a project using Activity Recognition, for which I have to send data to a MQTT broker.
My problem concerns the connection to the MQTT broker with the Android version of the app. The URL of the broker I use is not recognized by the app, so that I cannot establish the connection with the broker (see screenshots).
Capture_MQTT_1
Capture_MQTT_2

I precise that I have not this problem with the iOS version of the app, everything works well.

Does somebody have a solution to use the Android version of the app for my project?

Thank you very much in advance for your help.

Best Regards,
Antoine

Android 10 Compatibility

Hello,

I am running the ST BLE Sensor app V 4.7.1 on a Motorola Moto g7 Power that runs Android 10 (API 29). I am using the BVBNRG board.

I am having trouble using the BlueVoice portion of the app. After a few seconds, the audio data stops streaming and the waveform graph stops plotting. If I wait a few more seconds, the Bluetooth connection between the phone and BVBNRG board disconnects and reconnects (see log below). Upon reconnection, the audio stream resumes then stops again after a few seconds.

Is the ST BLE Sensor app compatible with Android 10? If so, what changes do I need to make to allow continuous audio stream with the BlueVoice fragment?

Thanks.

09/15 15:01:00: Launching 'BlueMS' on motorola moto g(7) power.
$ adb shell am start -n "com.st.bluems.debug/com.st.BlueMS.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 22070 on device 'motorola-moto_g_7__power-ZF6523P5X4'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/st.bluems.debu: Method Landroidx/appcompat/graphics/drawable/a;.b is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.st.bluems.debug-X36GYPY5xORBt7A6HCYERw==/base.apk
W/st.bluems.debu: Method Landroidx/appcompat/graphics/drawable/a;.isStateful is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.st.bluems.debug-X36GYPY5xORBt7A6HCYERw==/base.apk
W/st.bluems.debu: Method Lio/reactivex/internal/operators/flowable/FlowableReplay$a;.m is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.st.bluems.debug-X36GYPY5xORBt7A6HCYERw==/base.apk!classes2.dex
W/st.bluems.debu: Method Lokhttp3/internal/cache/a;.a is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.st.bluems.debug-X36GYPY5xORBt7A6HCYERw==/base.apk!classes2.dex
W/st.bluems.debu: Method Lorg/bouncycastle/x509/b;.a is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.st.bluems.debug-X36GYPY5xORBt7A6HCYERw==/base.apk!classes3.dex
    Method Lorg/bouncycastle/x509/b;.b is abstract, but the declaring class is neither abstract nor an interface in dex file /data/app/com.st.bluems.debug-X36GYPY5xORBt7A6HCYERw==/base.apk!classes3.dex
I/MultiDex: VM with version 2.1.0 has multidex support
    Installing application
    VM has multidex support, MultiDex support library is disabled.
W/st.bluems.debu: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
W/st.bluems.debu: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
D/LeakCanary: LeakCanary is running and ready to detect leaks
I/AdrenoGLES: QUALCOMM build                   : 961b24f, Ib57168459a
    Build Date                       : 02/24/20
    OpenGL ES Shader Compiler Version: EV031.27.05.06
    Local Branch                     : 
    Remote Branch                    : 
    Remote Branch                    : 
    Reconstruct Branch               : 
    Build Config                     : S L 8.0.12 AArch64
I/AdrenoGLES: PFP: 0x005ff112, ME: 0x005ff066
W/Gralloc3: mapper 3.x is not supported
W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@18a8c
D/com.st.BlueSTSDK.gui.NodeListActivity: onDiscoveryChange true
D/BluetoothAdapter: isLeEnabled(): ON
D/BluetoothLeScanner: onScannerRegistered() - status=0 scannerId=8 mScannerId=0
D/com.st.BlueSTSDK.gui.NodeListActivity: onNodeDiscovered C0:79:46:34:55:38
D/BluetoothAdapter: isLeEnabled(): ON
D/com.st.BlueSTSDK.gui.NodeListActivity: onDiscoveryChange false
W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@7c78393
D/ConnectionService: id: 1 action:com.st.BlueSTSDK.gui.NodeConnectionService.CONNECT
D/NodeConnectionService: connect C0:79:46:34:55:38
D/NodeStateListener: BVBNRG1 Idle->Connecting
D/BluetoothGatt: connect() - device: C0:79:46:34:55:38, auto: false
D/BluetoothGatt: registerApp()
    registerApp() - UUID=c68bdebb-0bbf-4847-ba48-702f79c27b1d
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=8
D/BluetoothGattServer: registerCallback()
D/BluetoothGattServer: registerCallback() - UUID=2a3fa437-fc4a-44b9-aa9f-f4f439800be3
D/BluetoothGattServer: onServerRegistered() - status=0 serverIf=9
D/BluetoothGattServer: addService() - service: 00000000-0001-11e1-9ab4-0002a5d5c51b
D/BluetoothGattServer: connect() - device: C0:79:46:34:55:38, auto: true
W/st.bluems.debu: Accessing hidden method Landroid/bluetooth/BluetoothGatt;->refresh()Z (greylist, reflection, allowed)
D/BluetoothGatt: refresh() - device: C0:79:46:34:55:38
D/BluetoothGattServer: onServiceAdded() - handle=40 uuid=00000000-0001-11e1-9ab4-0002a5d5c51b status=0
D/com.st.BlueSTSDK.Node: Refreshing Device Cache: true
D/BluetoothGattServer: onServerConnectionState() - status=0 serverIf=9 device=C0:79:46:34:55:38
D/com.st.BlueSTSDK.NodeServer: Our gatt server connection state changed:2
D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=8 device=C0:79:46:34:55:38
D/com.st.BlueSTSDK.Node: Node: BVBNRG1 Status: 0 newState: 2 boundState:12
D/BluetoothGatt: discoverServices() - device: C0:79:46:34:55:38
D/BluetoothGatt: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=9 latency=0 timeout=400 status=0
D/BluetoothGattServer: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=9 latency=0 timeout=400 status=0
D/BluetoothGatt: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=6 latency=0 timeout=500 status=0
D/BluetoothGattServer: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=6 latency=0 timeout=500 status=0
D/BluetoothGatt: onSearchComplete() = Device=C0:79:46:34:55:38 Status=0
D/BluetoothGatt: setCharacteristicNotification() - uuid: 00002a05-0000-1000-8000-00805f9b34fb enable: true
D/BluetoothGatt: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=9 latency=0 timeout=400 status=0
D/BluetoothGattServer: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=9 latency=0 timeout=400 status=0
D/BluetoothGatt: discoverServices() - device: C0:79:46:34:55:38
D/BluetoothGatt: onSearchComplete() = Device=C0:79:46:34:55:38 Status=0
D/NodeStateListener: BVBNRG1 Connecting->Connected
W/AudioTrack: Use of stream types is deprecated for operations other than volume control
    See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
D/BluetoothGatt: setCharacteristicNotification() - uuid: 40000000-0001-11e1-ac36-0002a5d5c51b enable: true
D/BluetoothGatt: setCharacteristicNotification() - uuid: 08000000-0001-11e1-ac36-0002a5d5c51b enable: true
D/LeakCanary: Watching instance of androidx.coordinatorlayout.widget.CoordinatorLayout (com.st.BlueMS.demos.Audio.SpeechToText.SpeechToTextFragment received Fragment#onDestroyView() callback (references to its views should be cleared to prevent leaks)) with key 9b6df368-13d6-43fd-887a-fa409b36b284
D/BluetoothGatt: setCharacteristicNotification() - uuid: 08000000-0001-11e1-ac36-0002a5d5c51b enable: false
D/LeakCanary: Scheduling check for retained objects because found new object retained
I/st.bluems.debu: Explicit concurrent copying GC freed 194049(7999KB) AllocSpace objects, 32(640KB) LOS objects, 49% free, 3950KB/7901KB, paused 251us total 57.550ms
D/LeakCanary: Rescheduling check for retained objects in 2000ms because found only 1 retained objects (< 5 while app visible)
W/AudioTrack: Use of stream types is deprecated for operations other than volume control
    See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
I/st.bluems.debu: Explicit concurrent copying GC freed 13847(631KB) AllocSpace objects, 27(540KB) LOS objects, 49% free, 3933KB/7867KB, paused 149us total 58.160ms
D/AudioTrack: stop(33): called with 185080 frames delivered
D/LeakCanary: Check for retained object found no objects remaining
D/BluetoothGattServer: onServerConnectionState() - status=0 serverIf=9 device=C0:79:46:34:55:38
E/com.st.BlueSTSDK.Node: onDescriptorWrite Error writing the descriptor for char: 08000000-0001-11e1-ac36-0002a5d5c51b
D/com.st.BlueSTSDK.NodeServer: Our gatt server connection state changed:0
E/com.st.BlueSTSDK.Node: Error connecting to the node:BVBNRG1
D/BluetoothGattServer: clearServices()
D/BluetoothGattServer: close()
    unregisterCallback() - mServerIf=9
D/BluetoothGatt: close()
    unregisterApp() - mClientIf=8
D/NodeStateListener: BVBNRG1 Connected->Dead
D/NodeConnectionService: re connectC0:79:46:34:55:38
D/NodeStateListener: BVBNRG1 Dead->Connecting
D/BluetoothGatt: onClientConnectionState() - status=22 clientIf=8 device=C0:79:46:34:55:38
D/BluetoothGatt: connect() - device: C0:79:46:34:55:38, auto: false
    registerApp()
    registerApp() - UUID=d617ebcd-7aa0-4fcd-83f6-df993a4face3
D/BluetoothGattServer: registerCallback()
    registerCallback() - UUID=f847a361-1631-4273-acfd-cddaa076ea12
D/BluetoothGatt: onClientRegistered() - status=0 clientIf=8
D/BluetoothGattServer: onServerRegistered() - status=0 serverIf=9
D/BluetoothGattServer: addService() - service: 00000000-0001-11e1-9ab4-0002a5d5c51b
D/BluetoothGattServer: connect() - device: C0:79:46:34:55:38, auto: true
D/BluetoothGattServer: onServiceAdded() - handle=40 uuid=00000000-0001-11e1-9ab4-0002a5d5c51b status=0
D/BluetoothGattServer: onServerConnectionState() - status=0 serverIf=9 device=C0:79:46:34:55:38
D/com.st.BlueSTSDK.NodeServer: Our gatt server connection state changed:2
D/BluetoothGatt: onClientConnectionState() - status=0 clientIf=8 device=C0:79:46:34:55:38
D/com.st.BlueSTSDK.Node: Node: BVBNRG1 Status: 0 newState: 2 boundState:12
D/BluetoothGatt: discoverServices() - device: C0:79:46:34:55:38
D/BluetoothGatt: onSearchComplete() = Device=C0:79:46:34:55:38 Status=0
D/BluetoothGatt: setCharacteristicNotification() - uuid: 00002a05-0000-1000-8000-00805f9b34fb enable: true
D/BluetoothGatt: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=9 latency=0 timeout=400 status=0
D/BluetoothGattServer: onConnectionUpdated() - Device=C0:79:46:34:55:38 interval=9 latency=0 timeout=400 status=0
D/BluetoothGatt: discoverServices() - device: C0:79:46:34:55:38
D/BluetoothGatt: onSearchComplete() = Device=C0:79:46:34:55:38 Status=0
D/NodeStateListener: BVBNRG1 Connecting->Connected
W/AudioTrack: Use of stream types is deprecated for operations other than volume control
    See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
D/BluetoothGatt: setCharacteristicNotification() - uuid: 40000000-0001-11e1-ac36-0002a5d5c51b enable: true
D/BluetoothGatt: setCharacteristicNotification() - uuid: 08000000-0001-11e1-ac36-0002a5d5c51b enable: true

Accelerometer event type not being recognized in android app (ST BLE Sensor)

In the firmware I am sending the notification regarding the accelerometer event in this way:
STORE_LE_16(NotifyAccEventCharData, 4000); //TimeStamp
NotifyAccEventCharData[2]=0x08; // Tilt event
STORE_LE_16(NotifyAccEventCharData+3 ,5000); //Steps
Custom_Acceventchar_Send_Notification();
However, in the app (ST BLE Sensor) it shows the accelerometer event type being the value 264 (0x108) instead of 8 (0x08). The TimeStamp and Steps values are displayed correctly. What can I do to fix this problem?

Thanks in advance!

Publisher topic name

I try to connect sensor to laptop with generic mqtt but i cannot figure out exactly what is publisher topic

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.