https://kotlinlang.org logo
Docs
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
datascience
  • d

    dalexander

    12/21/2018, 6:52 PM
    Yeah, to me it’s just interesting that things that I process without any conscious effort (language, vision) are best solved by the black box of a neural network. It’ll be interesting to see how the utilization of NNs continues to evolve since we have only had practically useful neural networks for a few years. It’s been interesting to see NNs applied to video game AI as well.
    t
    • 2
    • 5
  • a

    altavir

    12/26/2018, 7:51 AM
    Hello guys, yesterday we had a talk with @elizarov about development of scientific/mathematics libraries for kotlin and he recommended to start a discussion here since we do not have dedicated channel for that. My team is working on a bunch of scientific libraries (the application is mostly physics, but they should be universal). Currently we are working on a basic mathematics (https://github.com/altavir/kmath/tree/dev). I personally think that Kotlin has a great future as a language for science so, it would be good to create a robust scientific community around. So, speaking about math, in
    kmath
    we use rather experimental approach using unique context oriented kotlin features rather than copying details from python. I studied https://github.com/kyonifer/koma and there are a lot of good things there and a lot of work done. I think, that we need that library or something similar for people coming form Python, but sadly it does not suite more advanced mathematics use that we need. Python style is probably good for data science, but the type system is too crude do something complicated. My proposition is to devise a common mathematics interfaces and specifications for kotlin/multiplatform and then ensure that all implementations follow those interfaces. The same goes for plotting (we are currently working on plotting interfaces similar to matplotlib in functionality, but with modern declarative api).
    👍 5
    t
    v
    +3
    • 6
    • 12
  • k

    kyonifer

    12/26/2018, 6:59 PM
    i think there's a huge advantage to having something familiar to the python/matlab communities, but backend implementations are something the user hopefully doesnt interact with often
    a
    • 2
    • 1
  • a

    altavir

    12/26/2018, 7:03 PM
    As for performance of boxing, I think I found a remedy. You can look here: https://github.com/altavir/kmath/tree/dev/kmath-core/src/jvmMain/kotlin/scientifik/kmath/structures documentation is thin yet. But preliminary tests show no performance loss against non-boxing code.
    k
    • 2
    • 18
  • p

    Percha

    12/27/2018, 11:14 AM
    Hi, I would like to join the discussion on building Kotlin's mathematical libraries by showing you what I've done. I'm currently in a Signal and Image Processing Master where we are continuously assigned projects in Python and Matlab as they are the standard in the industry for quick prototyping and experimentation. Having experience with Kotlin, I see a huge opportunity to improve the existing tools to take advantage of a modern programming language and it's excellent tooling, the same way you do. I've been using @kyonifer's koma, which is very helpful and familiar to newcomers from Python and I had the same thoughts as @altavir, mimicking Python's and/or Matlab's syntax leads to the same drawbacks I was trying to avoid. I'm very interested in @altavir's kmath and his context driven approach, I think it is modelling mathematical primitives the right way. I believe the reason why Python became the first choice for data science is because of numpy. Python's data science community managed to converge on a common library for numerical primitives which, unlike Matlab or other's, it's based on ND Arrays, not matrices. ND Arrays are more natural to model problems in engineering, particularly for modern applications such as differentiable models (a.k.a "neural networks/AI") and the fact that all engineering libraries use the same numerical primitives on their interfaces make's it easy to compose and share work. This is the reason why I started my own project for NDArrays on pure Kotlin: https://github.com/TomasVolker/numeriko/tree/master/numeriko-core to see how such a library would look like. It is in a completely experimental state, far from being fully documented and tested and my intention is not to fragment even more the library ecosystem but to show to you how I envision such a library that takes advantage of Kotlin's features and uses the same conventions. Equally important, visualization is fundamental for data science and Python also has matplotlib for this. I have a basic matplotlib wrapper implemented in Kotlin that uses DSL for a declarative syntax: https://github.com/TomasVolker/numeriko/tree/master/kyplot. This should be a temporary solution for a more complete and powerful Kotlin library based on OpenGL, which I'm already experimenting with for 3D plots. There is a lot to discuss about implementation details, but what I believe is a priority is to agree on how we want a common ND Array library on which we all should build on, an idiomatic Kotlin numpy equivalent. I would like to know your views/thoughts/feedback on the next steps for building Kotlin's datascience, engineering and math libraries.
    👍 1
    t
    k
    a
    • 4
    • 13
  • b

    bjonnh

    01/01/2019, 3:58 PM
    You are going to end up implementing a Prolog-like in Kotlin @thomasnield 😄
    a
    • 2
    • 7
  • t

    thomasnield

    01/02/2019, 3:19 PM
    @altavir 🤔 okay I see where you are going with this. But what if my business problem says "we get x customers per 6 minutes" and "we process each customer in y minutes"? That is pure Poisson right there and discrete by nature
    a
    • 2
    • 2
  • t

    thomasnield

    01/02/2019, 5:45 PM
    Lets' move then
    a
    • 2
    • 1
  • t

    thomasnield

    01/04/2019, 7:03 PM
    Trying to figure out ecosystem of Kotlin-Statistics and how I will make 2.0 multiplatform, and possibly use KMath for the linear algebra stuff....
    k
    • 2
    • 4
  • t

    thomasnield

    01/05/2019, 3:36 PM
    Is there a clean way to print the matrix built in yet?
    a
    • 2
    • 1
  • t

    thomasnield

    01/05/2019, 3:42 PM
    @altavir I might be naive, but are there any thoughts regarding BigDecimal support or if it is even necessary? I know it's a JVM thing and can get marginalized by having operations delegated to Double anyway...
    a
    • 2
    • 8
  • n

    Nikky

    01/11/2019, 1:01 AM
    so given the leaps in kotlin scripting.. i think it would be possible (once a few more bugs are fixed) to make a notebook for kotlin note that i know barely anything about notebooks but the main point is to load datasets, transform them over multiple steps and easily visualize data right ?
    a
    • 2
    • 3
  • h

    hudsonb

    01/11/2019, 12:56 PM
    Interesting read on Swift for data science: https://www.fast.ai/2019/01/10/swift-numerics/
    💾 2
    👍 1
    a
    g
    • 3
    • 16
  • t

    thomasnield

    01/11/2019, 5:53 PM
    @altavir if you have a Twitter account, feel free to engage and see if you can influence Jeremy ☝️
    a
    • 2
    • 8
  • b

    breandan

    01/16/2019, 12:28 PM
    Anyone used this? https://github.com/JetBrains-Research/viktor
    a
    • 2
    • 2
  • o

    orangy

    01/21/2019, 11:17 PM
    I’m absolute zero in statistics, but I need to report couple of values (mean, error, confidence interval, etc) out of the sample dataset (DoubleArray). It is all in Kotlin Multiplatform (actually a benchmarking suite), so I can’t use any JVM library. I would also like to avoid dependencies at all if possible. Can someone point me to a minimum common Kotlin code I can steal shamelessly (Apache 2)? Or help me develop one. I’ve got this from some place (I copied it several times from a project to project, so I don’t remember where it came from originally) https://github.com/orangy/gradle-benchmarks/blob/master/runtime/nativeMain/src/org/jetbrains/gradle/benchmarks/NativeBenchmarksStatistics.kt Looking at some resources, I see TDistribution, inverseCumulativeProbability and such, but unfortunately I don’t have any idea what is it. The target goal is to generate JMH-like JSON (sample in a thread)
    ✅ 3
    a
    • 2
    • 16
  • a

    altavir

    01/22/2019, 10:10 AM
    @orangy will It be possible to create configurations for individual tests in the plugin? I really miss it in current JMH plugin.
    o
    • 2
    • 4
  • a

    altavir

    01/24/2019, 4:09 PM
    Guys, a question. What big data is big enough for you. I plan to re-implement some descriptive statistics routines for kotlin-statistics and it is important to know what data sample sizes are used. For example if data is of TB size, one should go for different algorithm (there is an ongoing discussion in commons-math email list).
    h
    t
    • 3
    • 3
  • t

    thomasnield

    01/25/2019, 2:14 PM
    https://towardsdatascience.com/sudokus-and-schedules-60f3de5dfe0d
    a
    • 2
    • 5
  • t

    thomasnield

    02/01/2019, 3:15 PM
    @hudsonb yes, as I updated my article and put it on Medium I realized we needed to apply that to bin operators. If you can put in a PR that would be awesome, and I can update the blog article.
    h
    • 2
    • 6
  • t

    Thomas Vander Wal

    02/02/2019, 4:09 AM
    Is anyone currently using spark-sql 2.4 with Kotlin? I'm running into a weird bug that I'm not sure if anyone has been able to figure out. When importing that dependency my code get's a class not found error but works fine from running it in IntelliJ. When opening the Jar I can see it in the class path so stumped on what the issue is. Even weirder is I have a file that works perfectly fine with spark-core and the RDD api, however it breaks with the same error when I import the spark-sql library. As far as I understand that library is dependent on core and should be packaging it as well.
    a
    • 2
    • 10
  • t

    thomasnield

    02/04/2019, 5:02 PM
    My last article for awhile: https://towardsdatascience.com/how-it-feels-to-learn-data-science-in-2019-6ee688498029
    😎 3
    d
    • 2
    • 11
  • t

    thomasnield

    02/05/2019, 9:42 PM
    @Nikky don't become like this guy though. https://www.forbes.com/sites/janetwburns/2016/10/13/elon-musk-and-friends-are-spending-millions-to-break-out-of-the-matrix/#42c3d345ce17
    n
    • 2
    • 1
  • o

    otakusenpai

    02/06/2019, 3:49 PM
    Hello, is there a good Machine Learning library for Kotlin besides Tensorflow? I want to implement a type of Recursive Neural Network
    m
    t
    • 3
    • 5
  • p

    Percha

    02/07/2019, 12:38 PM
    Going along with the topic of machine learning/ai/deep learning/neural networks I'll like to share some experimental projects I've been working on. As I mentioned some time ago, I've been experimenting with Tensorflow and Kotlin. Now that gradients are being ported to C++, they are available on other backends apart from Python and I see a lot of potential in Kotlin to develop complex models using DSLs. This is the motivation of Komputo (https://github.com/TomasVolker/komputo), a Kotlin wrapper around Tensorflow for Java. It is in very early stages but I was able to build and train fully connected and convolutional models all in Kotlin using GPU acceleration, you can check the MNIST examples on the repository. I was also able to load the Yolov3 object recognition model with Komputo, here is the repo: https://github.com/TomasVolker/kolo. I'm using Numeriko (https://github.com/TomasVolker/numeriko) for ndarray manipulation, I've been putting some effort on it lately to improve it's performance. It's clear that to enable this kind of applications we need an idiomatic, efficient and complete ndarray library, so I'm working on it whenever I have some free time. I see Numeriko as a lower level library than @altavir's kmath, we can eventually create contexts to make them compatible. Let me know if any of you are interested in contributing.
    👏 1
    👍 1
    🔥 1
    a
    g
    • 3
    • 19
  • n

    Nikky

    02/23/2019, 9:53 AM
    is there some kind of standard realife task that is used fow notebooks ? i am writing something very similar that can process data in multiple steps and visualite it now it would be useful to copy some sort of sample usecase from somewhere that can be done using jvm libraries
    a
    t
    +2
    • 5
    • 53
  • a

    altavir

    02/26/2019, 2:06 PM
    Well, JNI is not about build. You have to make a wrapper, then compile both parts. It is not pleasant. One can use JNA or JNR instead
    o
    • 2
    • 7
  • g

    gaetan

    02/26/2019, 2:19 PM
    Do you have a link on this? It's a subject for data2viz as we'll probably use a lot of matrix operations for the composition of transformations.
    a
    • 2
    • 11
  • t

    Thomas Legrand

    02/26/2019, 4:11 PM
    I’m considering Kotlin for production. Does someone know how CoreNLP compare against Spacy and Smile against Sklearn ? i.e are these viable options ?
    b
    • 2
    • 2
  • n

    Nikky

    02/27/2019, 8:59 AM
    i tried to use krangl.. but i guess its just a little bit out of the ordinary
    a
    • 2
    • 13
Powered by Linen
Title
n

Nikky

02/27/2019, 8:59 AM
i tried to use krangl.. but i guess its just a little bit out of the ordinary
a

altavir

02/27/2019, 3:20 PM
If you could reanimate https://github.com/jasrodis/javafx-dataviewer, it would be very helpful.
n

Nikky

02/27/2019, 3:24 PM
am i reading this right.. that they go through the effort of usigng jetty to host a webserver that then allows them to display data as html, using js for visualizations ? maybe its just me but that seems idiotic
a

altavir

02/27/2019, 3:26 PM
Sadly, all the good visualisation is on the web...
By the way, i confused krangl with kravis
n

Nikky

02/27/2019, 3:27 PM
well data2viz seems like it could become good
a

altavir

02/27/2019, 3:28 PM
Have you any experience of using it on desktop?
n

Nikky

02/27/2019, 3:29 PM
it is the same code, since it just renders to a canvas it s usable from js and jvm.. and i think someone made a swing wrapper for fun that worked too
a

altavir

02/27/2019, 3:29 PM
I also do not like javascript visualization, but sadly, it just has much better library support. I just could not find desktop charting that could be as good as plotly
If you will create a free charting library on data2viz with interactive features, I will be first to use it.
n

Nikky

02/27/2019, 3:31 PM
in this project we are trying our best to stay away from html and js, its just too much headache
i wish i had that time..
a

altavir

02/27/2019, 3:31 PM
It is OK by me, but we need convenient charting API.
We were planning to do something like this ourselves, but it seem to be just to large project to start right away. We will be working on display API for 2d and 3d visualization for scientific needs this year, but the implementation is outside of our capabilities
View count: 7