pushwoosh / pushwoosh-inbox-ui-android-sdk Goto Github PK
View Code? Open in Web Editor NEWInbox for Android
License: MIT License
Inbox for Android
License: MIT License
Fatal Exception: java.lang.IllegalArgumentException: Incorrect state.
at com.pushwoosh.inbox.internal.b.a(b.java:36)
at com.pushwoosh.inbox.PushwooshInbox.loadMessages(PushwooshInbox.java)
at com.wenor.uia.checking.fragment.inboxNotification.model.repository.InboxRepository.loadInbox(InboxRepository.java:87)
at com.wenor.uia.checking.fragment.inboxNotification.presentation.presenter.InboxPresenter.onCreate(InboxPresenter.java:71)
at com.wenor.uia.checking.fragment.inboxNotification.presentation.view.fragment.BaseFragment.onCreate(BaseFragment.java:48)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2528)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:843)
at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1196)
at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1079)
at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:118)
at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1858)
at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1816)
at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1723)
at androidx.fragment.app.FragmentManagerImpl$1.run(FragmentManagerImpl.java:146)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Hi, can someone help to fix this issue? i don't understand why it's happening
Hi all,
I need to update PushWoosh version to 5.14.3 in order to resolve Zip Path Traversal Vulnerability problem, but the Inbox crashes at opening with this error:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/pushwoosh/PushwooshPlatform;
at com.pushwoosh.inbox.d.a.<init>(Unknown Source:21)
at com.pushwoosh.inbox.internal.b.a(Unknown Source:27)
at com.pushwoosh.inbox.PushwooshInbox.loadMessages(Unknown Source:0)
at com.pushwoosh.inbox.ui.model.repository.InboxRepository.loadInbox(InboxRepository.kt:82)
at com.pushwoosh.inbox.ui.presentation.presenter.InboxPresenter.onCreate(InboxPresenter.kt:69)
at com.pushwoosh.inbox.ui.presentation.view.fragment.BaseFragment.onCreate(BaseFragment.kt:48)
at android.support.v4.app.Fragment.performCreate(Fragment.java:2331)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1386)
at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1188)
at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:1071)
at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:115)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2380)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1392)
at android.app.Activity.performStart(Activity.java:7157)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2949)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1818)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.pushwoosh.PushwooshPlatform" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/base.apk", zip file "/data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/split_lib_resources_apk.apk", zip file "/data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/split_lib_slice_0_apk.apk"],nativeLibraryDirectories=[/data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/lib/arm64, /data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/base.apk!/lib/arm64-v8a, /data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/split_lib_resources_apk.apk!/lib/arm64-v8a, /data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.pushwoosh.inbox.d.a.<init>(Unknown Source:21)
at com.pushwoosh.inbox.internal.b.a(Unknown Source:27)
at com.pushwoosh.inbox.PushwooshInbox.loadMessages(Unknown Source:0)
at com.pushwoosh.inbox.ui.model.repository.InboxRepository.loadInbox(InboxRepository.kt:82)
at com.pushwoosh.inbox.ui.presentation.presenter.InboxPresenter.onCreate(InboxPresenter.kt:69)
at com.pushwoosh.inbox.ui.presentation.view.fragment.BaseFragment.onCreate(BaseFragment.kt:48)
at android.support.v4.app.Fragment.performCreate(Fragment.java:2331)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1386)
at android.support.v4.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1188)
at android.support.v4.app.FragmentTransition.calculateFragments(FragmentTransition.java:1071)
at android.support.v4.app.FragmentTransition.startTransitions(FragmentTransition.java:115)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2380)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2245)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3248)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3200)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:195)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:597)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1392)
at android.app.Activity.performStart(Activity.java:7157)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:2949)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:180)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:165)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:142)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1818)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.my.app-LAxwlv90GLcs5_cf1e8H9Q==/split_lib_resources_apk.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:354)
at dalvik.system.DexFile.<init>(DexFile.java:101)
at dalvik.system.DexFile.<init>(DexFile.java:75)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
at dalvik.system.DexPathList.<init>(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:74)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:718)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:801)
at android.app.LoadedApk.getResources(LoadedApk.java:1023)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2345)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5780)
at android.app.ActivityThread.access$1100(ActivityThread.java:200)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1660)
... 6 more
Thank you for support
Till 03.02.2022 there are lot of crashes in android app calling by pushwoosh.
Can you help?
versions i guess 6.4.1
Fatal Exception: java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$4.done(AsyncTask.java:415)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Iterator java.util.ArrayList.iterator()' on a null object reference
at com.pushwoosh.repository.y.a(:27)
at com.pushwoosh.repository.RepositoryModule$a.a(:12)
at com.pushwoosh.repository.RepositoryModule$a.doInBackground(:2)
at android.os.AsyncTask$3.call(AsyncTask.java:394)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:305)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Th
readPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
Following up on #3 (made by @rudchenkos who is on holiday) we have some new crashes on the latest release:
The biggest one caused over 1000 crashes in 3 days:
at android.os.AsyncTask$3.done(AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalArgumentException: cant parse value by key:inbox_params value:{rt=1560504060}
at com.pushwoosh.internal.utils.JsonUtils.mapToBundle(Unknown Source:173)
at com.pushwoosh.internal.utils.JsonUtils.jsonStringToBundle(Unknown Source:9)
at com.pushwoosh.inbox.d.a.a(Unknown Source:44)
at com.pushwoosh.inbox.d.a.a(Unknown Source:70)
at com.pushwoosh.inbox.d.g.run(Unknown Source:6)
at com.pushwoosh.PushwooshService.onHandleWork(Unknown Source:47)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
The smaller one caused 49 crashes in the same timeframe:
at android.os.AsyncTask$3.done(AsyncTask.java:355)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/pushwoosh/notification/PushBundleDataProvider;
at com.pushwoosh.inbox.d.a.a(Unknown Source:0)
at com.pushwoosh.inbox.d.a.a(Unknown Source:48)
at com.pushwoosh.inbox.d.a.a(Unknown Source:43)
at com.pushwoosh.inbox.d.a.a(Unknown Source:58)
at com.pushwoosh.inbox.d.h.run(Unknown Source:4)
at com.pushwoosh.PushwooshService.onHandleWork(Unknown Source:47)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383)
at android.os.AsyncTask$2.call(AsyncTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.pushwoosh.notification.PushBundleDataProvider" on path: DexPathList[[zip file "/data/app/nl.albumprinter.smartphone.editor-sP_quF5h0ByGa8CKyVWG1A==/base.apk"],nativeLibraryDirectories=[/data/app/nl.albumprinter.smartphone.editor-sP_quF5h0ByGa8CKyVWG1A==/lib/arm64, /data/app/nl.albumprinter.smartphone.editor-sP_quF5h0ByGa8CKyVWG1A==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 13 more
This has happened on android 8, 8.1 and 9 according to our crash reporting.
Any help would be greatly appreciated!
According to our crash reporting, inbox crashes on some user devices (Android 8, 8.1 and 9) of various vendors (SAMSUNG, Huawei, Sony):
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:354)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.ArrayList
at com.pushwoosh.internal.command.b.a(Unknown Source:4)
at com.pushwoosh.internal.command.CommandApplayer.applyCommand(Unknown Source:36)
at com.pushwoosh.inbox.d.a.a(Unknown Source:11)
at com.pushwoosh.inbox.d.a.a(Unknown Source:44)
at com.pushwoosh.inbox.d.a.a(Unknown Source:43)
at com.pushwoosh.inbox.d.a.a(Unknown Source:58)
at com.pushwoosh.inbox.d.h.run(Unknown Source:4)
at com.pushwoosh.PushwooshService.onHandleWork(Unknown Source:47)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392)
at android.support.v4.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 3 more
We cannot reproduce it ourselves, but the volume of the crashes on user devices is significant. This may have something to do with the recent update of the google-services plugin from 3.2.1
to 4.0.2
.
Our current build settings:
classpath 'com.android.tools.build:gradle:3.4.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.31"
// Do not upgrade to 4.1.0: https://stackoverflow.com/a/52925989/498067
// With 4.2.0 build fails with java.lang.ArrayIndexOutOfBoundsException
classpath 'com.google.gms:google-services:4.0.2'
...
compileSdkVersion 'android-28'
targetSdkVersion 28
...
// On 5.14.2+ Inbox fails with ClassNotFound for PushwooshPlatform
implementation "com.pushwoosh:pushwoosh:5.14.1"
implementation "com.pushwoosh:pushwoosh-inbox-ui:5.14.1"
implementation "com.google.firebase:firebase-core:11.8.0"
implementation "com.google.firebase:firebase-messaging:11.8.0"
Please upgrade glide gradle to latest version
Hello dev and community,
we want to add Android10 Support for our application.
Also we want to activate link SDK-Assemblys in the Android project.
After setting this option we receive the following error message on build.
Maybe someone can help me to find a solution for this.
Excluding "Pushwoosh.Inbox.Droid.Bindings" in project linking settings doesnt help.
Xamarin.Android.Common.targets(1881, 5): [XALNK7000] Mono.Linker.MarkException: Error processing method: 'Kotlin.Jvm.Functions.IFunction2 Com.Pushwoosh.Inbox.UI.Presentation.View.Adapter.BaseRecyclerAdapter::get_MOnItemClickListener()' in assembly: 'Pushwoosh.Inbox.Droid.Bindings.dll' ---> Mono.Cecil.ResolutionException: Failed to resolve Kotlin.Jvm.Functions.IFunction2
at Mono.Linker.Steps.MarkStep.HandleUnresolvedType (Mono.Cecil.TypeReference reference) [0x00013] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Steps.MarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x0002c] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at MonoDroid.Tuner.MonoDroidMarkStep.MarkType (Mono.Cecil.TypeReference reference) [0x00000] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Steps.MarkStep.ProcessMethod (Mono.Cecil.MethodDefinition method) [0x0016c] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x0001b] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
--- End of inner exception stack trace ---
at Mono.Linker.Steps.MarkStep.ProcessQueue () [0x00047] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Steps.MarkStep.ProcessPrimaryQueue () [0x0000a] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Steps.MarkStep.Process () [0x000f6] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Steps.MarkStep.Process (Mono.Linker.LinkContext context) [0x0000d] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at MonoDroid.Tuner.MonoDroidMarkStep.Process (Mono.Linker.LinkContext context) [0x0000b] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Pipeline.ProcessStep (Mono.Linker.LinkContext context, Mono.Linker.Steps.IStep step) [0x0000d] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Mono.Linker.Pipeline.Process (Mono.Linker.LinkContext context) [0x0000f] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at MonoDroid.Tuner.Linker.Run (Mono.Linker.Pipeline pipeline, Mono.Linker.LinkContext context) [0x00000] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at MonoDroid.Tuner.Linker.Process (MonoDroid.Tuner.LinkerOptions options, Mono.Linker.ILogger logger, Mono.Linker.LinkContext& context) [0x00071] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Xamarin.Android.Tasks.LinkAssemblies.Execute (Java.Interop.Tools.Cecil.DirectoryAssemblyResolver res) [0x001dd] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Xamarin.Android.Tasks.LinkAssemblies.RunTask () [0x0001b] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
at Xamarin.Android.Tasks.AndroidTask.Execute () [0x00000] in <4f0a19c9d0ec417f9e44b588fd30d062>:0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.