#jogamp @ irc.freenode.net - 20161205 08:35:59 (UTC)


20161205 08:35:59 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20161205050559.html
20161205 08:35:59 -NickServ- This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>.
20161205 08:36:05 * jogamp (~jogamp@anon) has joined #jogamp
20161205 08:36:05 * Topic is 'http://jogamp.org | Hacking 3D Graphics, Multimedia and Processing across Devices | logs: http://jogamp.org/log/irc/?C=M;O=D'
20161205 08:36:05 * Set by rmk0 on 20141110 16:19:10
20161205 08:36:05 -NickServ- You are now identified for jogamp.
20161205 08:38:12 * Eclesia (~husky@anon) has joined #jogamp
20161205 08:38:26 <Eclesia> hi
20161205 09:02:05 * elect_ (~elect@anon) has joined #jogamp
20161205 09:18:17 * jvanek (jvanek@anon) has joined #jogamp
20161205 11:16:59 <rmk0> .o.
20161205 11:47:06 * caelum19 (~Caelum@anon) has joined #jogamp
20161205 13:31:16 * elect (~elect@anon) has joined #jogamp
20161205 13:34:13 * elect_ (~elect@anon) Quit (Ping timeout: 245 seconds)
20161205 13:34:20 * elect__ (~elect@anon) has joined #jogamp
20161205 13:37:44 * elect (~elect@anon) Quit (Ping timeout: 250 seconds)
20161205 14:43:49 <rmk0> wasn't there a way to embed a GLWindow in a swing component?
20161205 14:45:19 <monsieur_max> checking my code
20161205 14:45:29 <rmk0> NewtCanvasAWT
20161205 14:46:24 <monsieur_max> I use a GLCanvas
20161205 14:46:43 <Eclesia> I don't use swing anymore
20161205 14:47:05 <monsieur_max> Eclesia: such a hipster ;)
20161205 14:47:10 <Eclesia> héhé :)
20161205 14:47:26 <monsieur_max> "i only use gluten free javaFX"
20161205 14:47:41 <bruce-> I wish I could use NEWT only
20161205 14:48:42 <monsieur_max> Eclesia: joke aside, i used swing for my editor, but if i had the time, i could do like you and rebuild it using only my ui toolkit
20161205 14:53:49 <Eclesia> I started working on a lwjgl (shame on me) frame manager too. so I'll have newt,glfw and swing in the end.
20161205 14:54:25 <Eclesia> monsieur_max: have some snapshot of your ui toolkit ?
20161205 14:56:11 <monsieur_max> Eclesia: kind of raw, not well designed, missing components, nowhere as advanced as yours ;)
20161205 14:56:34 <monsieur_max> but quite enough for simple to normal games UI
20161205 16:02:01 * SHC (~quassel@anon) has joined #jogamp
20161205 16:55:33 * elect__ (~elect@anon) Quit (Ping timeout: 248 seconds)
20161205 16:56:59 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20161205 17:04:52 * Eclesia (~husky@anon) has left #jogamp
20161205 17:29:06 * caelum191 (~Caelum@anon) has joined #jogamp
20161205 17:32:11 * caelum19 (~Caelum@anon) Quit (Ping timeout: 268 seconds)
20161205 18:02:40 * jvanek (jvanek@anon) Quit (Quit: Leaving)
20161205 18:45:45 * Eclesia (~eclesia@anon) has joined #jogamp
20161205 18:50:13 * monsieur_max (~maxime@anon) has joined #jogamp
20161205 18:53:37 * SHC (~quassel@anon) Quit (Read error: Connection reset by peer)
20161205 19:28:32 * monsieur_max (~maxime@anon) Quit (*.net *.split)
20161205 19:36:43 * monsieur_max (~maxime@anon) has joined #jogamp
20161205 19:42:45 * mattharris (51f312f4@anon) has joined #jogamp
20161205 19:50:22 * mattharris (51f312f4@anon) Quit (Quit: Page closed)
20161205 21:25:01 * caelum19 (~Caelum@anon) has joined #jogamp
20161205 21:27:31 * caelum191 (~Caelum@anon) Quit (Ping timeout: 258 seconds)
20161205 21:34:34 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20161205 21:40:42 * caelum19 (~Caelum@anon) Quit (Ping timeout: 268 seconds)
20161205 21:41:36 * caelum19 (~Caelum@anon) has joined #jogamp
20161205 21:48:52 * caelum191 (~Caelum@anon) has joined #jogamp
20161205 21:52:19 * caelum19 (~Caelum@anon) Quit (Ping timeout: 260 seconds)
20161205 23:24:15 * Eclesia (~eclesia@anon) Quit (Quit: Leaving.)
20161206 00:47:09 * caelum19 (~Caelum@anon) has joined #jogamp
20161206 00:49:16 * caelum191 (~Caelum@anon) Quit (Ping timeout: 260 seconds)
20161206 00:56:34 * caelum19 (~Caelum@anon) Quit (Quit: Leaving.)
20161206 03:23:58 * SHC (~quassel@anon) has joined #jogamp
20161206 07:56:47 * elect__ (~elect@anon) has joined #jogamp
20161206 08:16:07 * monsieur_max (~maxime@anon) has joined #jogamp
20161206 08:29:15 <monsieur_max> hello
20161206 08:40:45 <elect__> hey
20161206 08:58:47 <monsieur_max> elect__: what are you working on recently ?
20161206 08:59:59 <elect__> since a couple of days nothing
20161206 09:00:06 <elect__> parents + house stuff to do
20161206 09:00:11 <elect__> zero time
20161206 09:00:17 <zubzub> excuses
20161206 09:00:20 <zubzub> I have a wife
20161206 09:00:21 <elect__> :p
20161206 09:00:22 <zubzub> I have a kid
20161206 09:00:28 <zubzub> I have a house that still needs patching
20161206 09:00:34 <zubzub> I have a full time job
20161206 09:00:41 <zubzub> I have a social life even
20161206 09:00:42 <elect__> same except the kid
20161206 09:00:52 <elect__> we had a referendum in italy!
20161206 09:00:55 <zubzub> yeah well the kid is like 80% of all that :p
20161206 09:01:03 <elect__> yeah yeah
20161206 09:01:06 <zubzub> ;)
20161206 09:01:13 <elect__> how old is he?
20161206 09:01:25 <zubzub> she is 2 years and 9 months
20161206 09:01:32 <elect__> cute
20161206 09:01:34 <monsieur_max> * computing *
20161206 09:01:52 <elect__> however I have a big family and I had to be sure that every one would have vote *right*
20161206 09:01:56 <elect__> that kepts some time
20161206 09:02:10 <zubzub> she already know the letters Q and J, and the numbers 1, 2, 7, 8 and 9 :p
20161206 09:02:41 <elect__> do you plan to introduce her to coding sooner or later?
20161206 09:02:47 <zubzub> (well shouldn't have kept asking 'what's this'
20161206 09:02:48 <zubzub> )
20161206 09:02:50 <monsieur_max> next step is Ctrl+Space , Ctrl C and V and search on stackoverflow then she can become a java dev
20161206 09:02:57 <zubzub> elect__: yes :p
20161206 09:03:09 <zubzub> as soon as she's 8 or 9 or so I guess
20161206 09:03:13 <zubzub> maybe earlier
20161206 09:03:30 <monsieur_max> don't bother, the coding will be done by robots
20161206 09:03:32 <zubzub> probably javascript because it's easy to access and fast results
20161206 09:03:52 <elect__> use kotlin ^^
20161206 09:04:10 * monsieur_max remembers playing with basic on his atari ST to try to make demomaking
20161206 09:04:12 <elect__> the most expressive language I've ever seen
20161206 09:04:25 <elect__> expressive and literal
20161206 09:04:52 <monsieur_max> elect__ - Kotlin Evangelist
20161206 09:05:01 <elect__> follow the verb
20161206 09:05:21 <elect__> rmk0, was the real pastor
20161206 09:05:29 <elect__> I am only one of his sheeps
20161206 09:06:17 <zubzub> cobol is also very expressive
20161206 09:07:13 <monsieur_max> also starts with co/ko too
20161206 09:12:07 <monsieur_max> elect__: what website / book do you recommend to start looking into kotlin ?
20161206 09:12:25 <elect__> no-one
20161206 09:12:36 <elect__> the best is to start translating your projects
20161206 09:17:57 <elect__> because you already know them, and it's only about learning the new language
20161206 09:18:14 <elect__> but first
20161206 09:18:17 <elect__> kotlin-koans
20161206 09:18:22 <elect__> that's a first touch
20161206 09:20:03 <monsieur_max> reading this : https://hashnode.com/post/why-i-abandoned-java-in-favour-of-kotlin-ciuzhmecf09khdc530m1ghu6d
20161206 09:25:09 <zubzub> have you tried angular2 with dart?
20161206 09:25:28 <zubzub> it's almost like writing java
20161206 09:37:08 <bruce-> Kotlin <3
20161206 09:56:51 <elect__> just an example, monsieur_max
20161206 09:56:57 <elect__> java
20161206 09:59:19 <elect__> public static boolean cmp(ByteBuffer buffer, String string) {
20161206 09:59:19 <elect__> for (int index = 0; index < string.length(); index++) {
20161206 09:59:19 <elect__> if (buffer.get() != string.charAt(index)) {
20161206 09:59:19 <elect__> return false;
20161206 09:59:19 <elect__> }
20161206 09:59:20 <elect__> }
20161206 09:59:21 <elect__> return true;
20161206 09:59:23 <elect__> }
20161206 09:59:26 <elect__> kotlin
20161206 09:59:30 <elect__> fun ByteBuffer.cmp(string: String) = string.all { get() == it.b }
20161206 10:00:08 <elect__> I can type
20161206 10:00:34 <elect__> if(buffer.cmp("stl"))
20161206 10:01:17 <elect__> moreover Kotlin collection is even more complete and powerful than StreamEx for java
20161206 10:01:34 <elect__> it has: returnFirstOrNull
20161206 10:01:50 <elect__> indexOfFirst
20161206 10:01:59 <elect__> etc..
20161206 10:02:36 <elect__> I forgot, in java, you need a class for `cmp`
20161206 10:02:41 <elect__> on kotlin, you don't
20161206 10:03:03 <elect__> that's even more boilerplate code down
20161206 10:03:58 <zubzub> byte[] arr = new byte[string.length]; buffer.get(arr); new String(arr).equals(string);
20161206 10:04:15 <zubzub> :p
20161206 10:04:36 <zubzub> admitted, it's still 3 lines
20161206 10:07:30 <zubzub> you're also comparing utf16 (16bit) to bytes
20161206 10:07:43 <zubzub> but ok for the sake of the argument we'll asume ascii :p
20161206 10:10:47 <elect__> 3 lines + class
20161206 10:10:52 <elect__> yep, it was ascii
20161206 10:13:21 <elect__> anyway, I had the bytebuffer
20161206 10:13:40 <elect__> so add the bytebuffer to byte array conversion
20161206 10:23:48 <elect__> zubzub, you are gonna switch to kotlin too, we know, you can make it only easier or harder ^^
20161206 10:24:08 <zubzub> actually I'm currently learning js
20161206 10:24:15 <zubzub> typescript in the future too
20161206 10:25:15 <elect__> https://kotlinlang.org/docs/tutorials/javascript/kotlin-to-javascript/kotlin-to-javascript.html
20161206 10:25:48 <zubzub> that's nice for greenfield projects
20161206 10:26:03 <zubzub> currently the industry is using nodejs & angular(2)
20161206 11:02:36 <elect__> one last thing, I can also inline that on kotlin
20161206 11:02:43 <elect__> if(buffer cmp "stl)
20161206 11:03:01 <elect__> so much win
20161206 11:03:42 <bruce-> I'd like to try kotlin for front-end work, once
20161206 11:14:24 <zubzub> I'd like to have an extremely simple ui framework based on CSS and basic js
20161206 11:14:27 <zubzub> basically qml
20161206 11:14:35 <zubzub> but isolated small and easy to use but powerful
20161206 11:14:47 <zubzub> preferably running on the jvm
20161206 11:36:06 <bruce-> why js though?
20161206 11:36:42 <zubzub> because it's a simple widely known language
20161206 12:02:27 * SHC_ (~quassel@anon) has joined #jogamp
20161206 12:06:30 * SHC (~quassel@anon) Quit (Ping timeout: 268 seconds)
20161206 12:24:47 * caelum19 (~Caelum@anon) has joined #jogamp
20161206 12:30:46 * Eclesia (~husky@anon) has joined #jogamp
20161206 12:32:16 <Eclesia> hi
20161206 12:32:26 <zubzub> lo
20161206 12:43:38 * caelum191 (~Caelum@anon) has joined #jogamp
20161206 12:44:16 <monsieur_max> elect__: what about allocations, is it easy to know when object are created ? because well, in games you don't want that :)
20161206 12:44:54 <elect__> same as java
20161206 12:44:58 <elect__> no less no more
20161206 12:45:11 <elect__> val object = Object()
20161206 12:46:35 * caelum19 (~Caelum@anon) Quit (Ping timeout: 268 seconds)
20161206 12:47:42 <zubzub> elect__: new Object()
20161206 12:47:53 <zubzub> unless Object() is a factory method or something
20161206 12:47:56 <zubzub> ;)
20161206 12:48:31 <zubzub> or are we talking kotlin
20161206 12:48:35 <zubzub> <o>
20161206 12:49:58 <monsieur_max> elect__: i was thinking about the hidden allocation, like you know, iterators and such
20161206 13:04:17 <elect__> I don't know about this
20161206 13:04:31 <monsieur_max> :( oh no
20161206 13:05:36 <zubzub> oh no!: https://youtu.be/S2dSQOx5mKI?t=6
20161206 13:08:00 <elect__> ask directly on the kotlin slack
20161206 13:08:20 <elect__> they have also an irc channel
20161206 13:08:34 <elect__> but better on slack
20161206 13:15:33 * SHC_ is now known as SHC
20161206 13:21:39 <rmk0> i specifically and repeatedly didn't advocate for kotlin
20161206 13:22:23 <zubzub> why?
20161206 13:25:05 <rmk0> all i said was that it has (a restricted form of) algebraic data types so it's suited to writing compilers, and that it didn't have the insane complexity and compile times of scala
20161206 13:25:19 <rmk0> somehow that's become twisted into me hyping up the language and claiming everyone should use it
20161206 13:25:24 <bruce-> oh
20161206 13:26:04 <rmk0> i've used it to write a compiler for a documentation language, but i probably wouldn't bother otherwise
20161206 13:26:09 <rmk0> java 8 is fine
20161206 13:28:12 <monsieur_max> it's so fine , it blows my mind
20161206 13:28:47 <rmk0> been working with javaslang lately
20161206 13:30:55 <rmk0> to have pure functional programming work well, you need the persistent collections and other control structures (monads, applicatives, etc) that go with it
20161206 13:32:59 <rmk0> not sure how painful any of that would be to use from kotlin
20161206 13:33:24 <rmk0> lacks method references, which is annoying
20161206 13:37:41 <zubzub> rmk0: how does javaslang works?
20161206 13:37:52 <zubzub> I thought it was a java lib using a shitload of lambdas?
20161206 13:37:56 <rmk0> it's just a library
20161206 13:38:07 <rmk0> well designed persistent collections and the like
20161206 13:58:20 <rmk0> it's basically "if you need it, you'll know"
20161206 14:02:15 <elect__> rmk0, I was joking..
20161206 14:02:23 * rmk0 bursts
20161206 14:37:22 * caelum191 (~Caelum@anon) Quit (Quit: Leaving.)
20161206 14:37:56 * caelum19 (~Caelum@anon) has joined #jogamp
20161206 16:15:39 <rmk0> monsieur_max: was going to mention... kotlin effectively hides boxing, which is annoying
20161206 16:16:06 <rmk0> obviously in java, until value types exist, generics can't take primitives as type parameters. kotline hides the distinction between java's int and Integer types
20161206 16:16:21 <rmk0> you won't know you're boxing until it becomes a problem
20161206 16:17:02 <rmk0> escape analysis obviously wipes out non-escaping allocations in most cases, but it can't do anything when generics are involved
20161206 16:30:02 * SHC (~quassel@anon) Quit (Remote host closed the connection)
20161206 16:32:22 <elect__> what do you mean "hides"?
20161206 16:32:39 <elect__> val a = 0 is int
20161206 16:32:47 <elect__> IntArray is int[]
20161206 16:33:06 <elect__> Array<Integer> is an array of Integer
20161206 16:34:14 <rmk0> List<Int> is an array of Integer, even though Int != Integer
20161206 16:35:03 <rmk0> the IDE has no warning for auto-boxing in kotlin
20161206 16:35:03 <elect__> it's known to be like that
20161206 16:35:04 <elect__> http://stackoverflow.com/questions/36262305/difference-between-list-and-array-types-in-kotlin
20161206 16:35:10 <elect__> ah, that's true
20161206 16:35:46 * Eclesia jruby
20161206 16:35:46 <elect__> however, it's known that list don't have primitives implementations in comparison to Arrays
20161206 16:36:10 <elect__> but they have cool features like comparison
20161206 16:36:21 <elect__> or deep equal
20161206 16:36:30 <elect__> on arrays, you have to implement it manually
20161206 16:36:52 <elect__> the suggestion is to use lists unless becomes a bottleneck
20161206 16:37:23 <rmk0> i'm aware. i spent a lot of time staring at the generated bytecode
20161206 16:37:34 <rmk0> value types can't come soon enough
20161206 16:37:52 <monsieur_max> Eclesia: Q-Jython-99
20161206 16:38:22 <elect__> other than list do you have any other thing in mind to take care about?
20161206 16:38:48 <elect__> any other source of trouble
20161206 16:38:55 <rmk0> i did get screwed by unqualified imports once
20161206 16:39:00 <elect__> or performance issue
20161206 16:39:13 <rmk0> the standard library defines a method called "print" that's in scope whether you want it or not
20161206 16:39:22 <elect__> ah, yes
20161206 16:39:33 <rmk0> will silently call the wrong method at runtime
20161206 16:39:43 <rmk0> that's the sort of garbage i'd expect to see in python or ruby
20161206 16:40:26 <rmk0> no idea what their justification is for having anything in scope at all in a language that has actual namespacing
20161206 16:40:34 <rmk0> very poor choice
20161206 16:40:55 * caelum19 (~Caelum@anon) Quit (Ping timeout: 268 seconds)
20161206 16:41:46 <rmk0> i don't think they've made any other major fuck ups
20161206 16:42:15 <rmk0> the bytecode it generates is similar to what you'd get programming in java, and they've not added any other insane language features that i've seen
20161206 16:42:42 <rmk0> pretty much all they need to do is listen to what the android and javascript programmers want, and then do none of those things
20161206 16:43:58 <rmk0> coroutines are risky
20161206 16:44:53 <elect__> xD
20161206 16:45:02 <rmk0> i'm not convinced they'll be able to do anything that doesn't have surprising semantics, or bad performance without VM support
20161206 16:45:10 <elect__> I heard a lot about coroutines
20161206 16:45:32 <elect__> there are some stuff going on about that
20161206 16:45:46 <elect__> but I didn't had the time to dig that up
20161206 16:45:59 <rmk0> they want to do an entirely library-level implementation of continuations, essentially
20161206 16:46:12 <rmk0> noone has ever managed to do that in way that isn't horrible
20161206 16:46:27 <rmk0> the better implementations end up using bytecode weaving and the like at runtime
20161206 16:46:39 <rmk0> really needs VM support
20161206 16:47:00 <elect__> do you know some of the guys beyond kotlin, rmk0 ?
20161206 16:47:14 <rmk0> do i know them personally?
20161206 16:47:32 <elect__> personally or better professionally
20161206 16:47:37 <rmk0> neither
20161206 16:48:04 <elect__> Dmitry Jemerov is one of the most important guys behind
20161206 16:48:17 <elect__> aka yole
20161206 16:57:14 <rmk0> .o.
20161206 16:58:30 <rmk0> there's an API in JDK 9 to help with the performance of continuation implementations
20161206 16:58:52 <rmk0> http://openjdk.java.net/jeps/259
20161206 16:59:45 <rmk0> kotlin can't depend on that existing, though. they aren't even targeting JDK 8 yet
20161206 17:03:48 * caelum19 (~Caelum@anon) has joined #jogamp
20161206 17:04:49 * Eclesia (~husky@anon) has left #jogamp
20161206 17:14:41 <elect__> https://discuss.kotlinlang.org/t/jdk7-8-features-in-kotlin-1-0/1625
20161206 17:18:03 <rmk0> i think they were talking about using actual bytecode-level jdk 8 features for 1.1
20161206 17:18:16 <rmk0> that was a while back, i'm not sure which they were referring to
20161206 17:18:18 <elect__> also, https://blog.jetbrains.com/kotlin/2016/07/first-glimpse-of-kotlin-1-1-coroutines-type-aliases-and-more/
20161206 17:18:37 <rmk0> probably method handles
20161206 17:21:34 <rmk0> elect__: i've read their coroutine spec, and it looks like they're using a stackless implementation
20161206 17:22:07 <rmk0> which is what i was referring to when i said surprising semantics... local variables aren't restored when a continuation is resumed. most implementations try to hide this fact by ... not having local variables
20161206 17:22:27 <elect__> ok
20161206 17:22:42 <rmk0> given that they're explicitly avoiding any kind of compiler-level implementations... i'd expect there to be a lot of surprising edge cases
20161206 17:23:37 <rmk0> it's efficient to do things this way, at least
20161206 17:25:16 * monsieur_max1 (~maxime@anon) has joined #jogamp
20161206 18:06:07 * elect__ (~elect@anon) Quit (Ping timeout: 260 seconds)
20161206 19:32:18 * monsieur_max1 (~maxime@anon) Quit (Quit: Leaving.)
20161206 19:32:36 * monsieur_max1 (~maxime@anon) has joined #jogamp
20161206 21:49:48 * monsieur_max1 (~maxime@anon) Quit (Quit: Leaving.)
20161207 01:17:32 * caelum19 (~Caelum@anon) Quit (Quit: Leaving.)
20161207 05:05:59 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20161207050559.html