Kotlin passing string to Web Assembly

Submitted by Dickens A S on Thu, 04/30/2020 - 14:09

From JavaScript as of now we cannot pass string to WebAssembly, therefore the string will be converted to an array of bytes and kept in browser's memory object of the kotlin web assembly framework object kotlinObject

From WebAssembly by calling the JavaScript method for each character, transfer the numeric value

Then convert the numeric value to character and combine to a string in kotlin

This is achieved using below code

JavaScript: string to UTF array utlity

Kickstart Kotlin Web Assembly HTML DOM with Spring Boot

Submitted by Dickens A S on Wed, 04/29/2020 - 08:43

Easily create Kotlin Web Assembly project from these multiplatform boilerplate Gradle DSL

This code involves Custom JavaScript - to - Kotlin - to - JavaScript stub

Kotlin Code

Call Kotlin from Python using shared DLL

Submitted by Dickens A S on Mon, 04/20/2020 - 11:44

Kotlin Shared DLL and Python Extension

Compile and Execute from MSYS2 or Cygwin with python development C header files

Demo Output

Python Output

Python Code which calls the module

import myModule
myModule.helloworld()

setup.py - extension definition

Kickstart Kotlin : Jython with Spring Boot

Submitted by Dickens A S on Fri, 03/20/2020 - 07:02

Easily create Kotlin based Jython project from these multiplatform boilerplate Gradle DSL

Run gradle command

  gradle assemble

Run gradle command

  gradle run

Browse http://localhost:8080/index.html

On the screen you will see response from Jython via AJAX

JavaScript libraries are maintained using "webjars"

Spring Boot REST code

Web Jars

Submitted by Dickens A S on Mon, 03/16/2020 - 10:49

Web Jars is a dependency management technique which reduces the leraning curve of the developer to use single dependency management system to manage the versions of JavaScript libraries or other non-maven-standard libraries which has other then java code

For Example: i you want to add jQuery into your spring boot project, in the past you need to put that in the static folder manually of you need to use tools like bower to download it inside the static folder

but now you don't have to do that, you can use same pom.xml or build.gradle and specify the webjar dependency

Kickstart Kotlin Web Socket with Spring Boot

Submitted by Dickens A S on Mon, 03/16/2020 - 10:39

Easily create Kotlin Web Socket project from these multiplatform boilerplate Gradle DSL

Run gradle command

  gradle assemble

Run gradle command

  gradle run

Browse http://localhost:8080/index.html

On the screen you will see connection status

JavaScript libraries are maintained using "webjars",

Source Code

End Of Article

Kotlin JUnit5

Submitted by Dickens A S on Sun, 12/15/2019 - 05:10

A simple JUnit 5 project with Gradle 6

package junit5

import org.junit.jupiter.api.Assertions.*
import org.junit.jupiter.api.Test

class AppTest {
    @Test fun `test greeting`() {
        val classUnderTest = App()
        assertNotNull(classUnderTest.greeting, "app should have a greeting")
    }
}

Note: a fresh gradle project always generates code for JUnit 4, for JUnit 5 you need to change the dependencies accordingly to jupiter package

 

C Wrapper for GLM library

Submitted by Dickens A S on Fri, 12/13/2019 - 14:46

GLM is one the GL library used for 2d 3d operation 

But it is written in C++ 

This project wraps the functions using C struct and function pointers

Example C code

GSL Library usage Kotlin Native

Submitted by Dickens A S on Wed, 12/11/2019 - 13:52

GSL library can be used for advanced math operations and vector, stats, sort, permute, fitting, matrix, fourier transform, blas integration

This code demonstration a simple matrix addition and diagonal addition in kotlin using GSL

Kotlin OSMesa offscreen rendering

Submitted by Dickens A S on Tue, 12/10/2019 - 17:31

A simple example of OSMesa driver offscreen rendering to a buffer binary array

This explains OpenGL functions can be used to indirectly manipulate a numeric array

Kotlin Code