#jogamp @ irc.freenode.net - 20160801 05:05:30 (UTC)


20160801 05:05:30 -jogamp- Previous @ http://jogamp.org/log/irc/jogamp_20160731050529.html
20160801 05:05:30 -jogamp- This channel is logged @ http://jogamp.org/log/irc/jogamp_20160801050530.html
20160801 05:35:56 * juank_prada (~juank_pra@anon) has joined #jogamp
20160801 05:40:12 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 240 seconds)
20160801 05:48:13 * juank_prada (~juank_pra@anon) has joined #jogamp
20160801 05:52:32 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 244 seconds)
20160801 07:00:33 * elect (~GBarbieri@anon) has joined #jogamp
20160801 07:02:22 <elect> hi
20160801 07:29:58 * monsieur_max (~maxime@anon) has joined #jogamp
20160801 07:30:19 * Eclesia (~husky@anon) has joined #jogamp
20160801 07:30:26 <Eclesia> hi
20160801 07:56:00 * triplepointdev (~shebaloma@anon) has joined #jogamp
20160801 08:01:30 * triplepointdev (~shebaloma@anon) Quit (Quit: Konversation terminated!)
20160801 10:14:12 * triplepointdev (~shebaloma@anon) has joined #jogamp
20160801 11:50:40 * juank_prada (~juank_pra@anon) has joined #jogamp
20160801 11:54:37 * triplepointdev (~shebaloma@anon) Quit (Quit: Konversation terminated!)
20160801 11:55:05 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 250 seconds)
20160801 13:29:39 * SHC (~quassel@anon) has joined #jogamp
20160801 13:32:09 * SHC (~quassel@anon) Quit (Read error: Connection reset by peer)
20160801 13:32:31 * SHC (~quassel@anon) has joined #jogamp
20160801 13:37:56 * SHC (~quassel@anon) Quit (Read error: Connection reset by peer)
20160801 13:38:22 * SHC (~quassel@anon) has joined #jogamp
20160801 13:38:49 * SHC (~quassel@anon) Quit (Remote host closed the connection)
20160801 13:56:57 * SHC (~quassel@anon) has joined #jogamp
20160801 14:03:43 * juank_prada (~juank_pra@anon) has joined #jogamp
20160801 14:04:31 * bigpet (uid25664@anon) Quit (Read error: Connection reset by peer)
20160801 14:05:07 * juank_ (~juank_pra@anon) has joined #jogamp
20160801 14:05:36 * juank_prada (~juank_pra@anon) Quit (Remote host closed the connection)
20160801 14:09:31 * bigpet (uid25664@anon) has joined #jogamp
20160801 14:25:57 <xranby> (22:44:11) Eclesia: \o/ http://unlicense.developpez.com/temporaire/pagemona.png <- good looking AA fontrenderer you have there
20160801 14:26:20 <Eclesia> without AA
20160801 14:27:43 <Eclesia> xranby: would you be interested in making a speech syntetizer for lojban ?
20160801 14:30:01 <xranby> i first need to learn how to speak lojban
20160801 14:30:04 <xranby> https://mw.lojban.org/papri/Lojban
20160801 14:44:33 <xranby> would a regular Enligh speech syntetizer work ok to read lojban sentencies?
20160801 14:47:00 * SHC (~quassel@anon) Quit (Ping timeout: 276 seconds)
20160801 14:56:06 * elect (~GBarbieri@anon) Quit (Ping timeout: 276 seconds)
20160801 15:04:05 <Eclesia> xranby: there is no fun to use something that already exist
20160801 15:48:20 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20160801 15:59:23 * Eclesia (~husky@anon) has left #jogamp
20160801 16:06:06 * SHC (~quassel@anon) has joined #jogamp
20160801 16:44:48 * monsieur_max (~maxime@anon) has joined #jogamp
20160801 16:50:47 * juank_ (~juank_pra@anon) Quit (Remote host closed the connection)
20160801 16:51:27 * juank_prada (~juank_pra@anon) has joined #jogamp
20160801 17:11:51 <rmk0> zubzub: had any issues with IDEA's osgi support? it seems ... broken, quite badly
20160801 18:44:58 * SHC (~quassel@anon) Quit (Remote host closed the connection)
20160801 19:04:26 * juank_prada (~juank_pra@anon) Quit (Remote host closed the connection)
20160801 19:16:33 * juank_prada (~juank_pra@anon) has joined #jogamp
20160801 19:19:10 * Eclesia (~eclesia@anon) has joined #jogamp
20160801 19:19:46 <Eclesia> rmk0: (troll) there is a solution, use netbeans
20160801 19:21:25 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 250 seconds)
20160801 19:41:50 * juank_prada (~juank_pra@anon) has joined #jogamp
20160801 19:45:23 <zubzub> rmk0: you mean the plugin?
20160801 19:45:46 <zubzub> Eclesia: no the solution is don't use osgi
20160801 19:45:53 <rmk0> zubzub: i probably mean osmorc
20160801 19:45:57 <zubzub> yeah
20160801 19:46:02 <zubzub> I never got it to work either
20160801 19:46:23 <zubzub> If you don't need dynamic code updates on running software, don't use osgi
20160801 19:46:32 <zubzub> it's not worth it
20160801 19:46:49 <zubzub> the problem is not osgi itself
20160801 19:46:53 <zubzub> but broken code
20160801 19:47:01 <zubzub> broke code everywhere
20160801 19:47:38 <zubzub> if all you need is dependency injection, use dagger 2
20160801 19:47:40 <zubzub> <3
20160801 19:48:02 <zubzub> in combination with autofactory & autovalue if you want
20160801 19:48:15 <rmk0> no, don't need any of that
20160801 19:49:15 <rmk0> for this game i'm working on, the intention has always been to support third party modding directly. the way modern games handle this is as bad as you might expect... no versioning, no dependency handling, unsafe patching of code/data, no security
20160801 19:49:25 <rmk0> every mod breaks everything else, etc
20160801 19:50:35 <rmk0> i want mods to be distributed as versioned packages with dependency information, and i want run-time loading/unloading of mods, and i want to run them with an empty set of jvm permissions
20160801 19:51:00 <rmk0> it seems like osgi does all of that, and it doesn't have any competitors
20160801 19:51:27 <rmk0> broken code isn't an issue, as i'm extremely picky about what i depend upon
20160801 19:51:36 <rmk0> broken tool support seems to be the issue, i can't seem to get anything to work properly
20160801 19:51:42 <zubzub> I guess osgi is indeed what you need then
20160801 19:51:56 <zubzub> how do you want to support osgi in your game?
20160801 19:52:02 <zubzub> start a container yourself?
20160801 19:52:08 <zubzub> or run the game inside a container?
20160801 19:52:32 <zubzub> have you looked at bnd tools?
20160801 19:52:40 <rmk0> i don't know enough to say yet, given that it's taken all day just to get a hello world to run in what feels more or less by accident. my original thought was that i'd embed a container like felix
20160801 19:52:58 <zubzub> yeah that'd be your best option
20160801 19:53:22 <rmk0> the command line tools aren't the problem, i can produce working bundles on the command line. it's more that IDEs can't seem to cope, so i'd lose the ability to run junit tests in the IDE, code coverage, debugging, etc
20160801 19:53:44 <zubzub> o_O
20160801 19:54:01 <zubzub> you can always debug it as a remote app
20160801 19:54:04 <rmk0> at the moment i feel like it must be my fault... like "there's no way all of this stuff can be this bad"
20160801 19:54:28 <zubzub> osgi is no magic
20160801 19:54:35 <zubzub> it's just a different class loader per bundle
20160801 19:54:42 <rmk0> yeah, am aware
20160801 19:54:48 <zubzub> and some bundle wiring based on import/export of packages & versions
20160801 19:55:01 <rmk0> i think it's more that IDEs seem to want to control everything
20160801 19:55:04 <zubzub> that's it (the core) basically
20160801 19:55:11 <zubzub> treat it as any other java prog
20160801 19:55:16 <zubzub> nothing special required
20160801 19:55:49 <zubzub> dynamic code loading/unloading might not work though (although jrebel clamis it does, I never got it to work on osgi)
20160801 19:56:35 <rmk0> i'm slightly overwhelmed
20160801 19:57:42 <zubzub> if you want to produce osgi bundles, use the apache felix annotations, are preferably the bnd annotations
20160801 19:57:52 <zubzub> and maven or gradle or whatever
20160801 19:57:57 <rmk0> yeah, am doing that
20160801 19:58:10 <rmk0> they've actually standardized those annotations now, so they're in org.osgi.core.something
20160801 19:58:26 <rmk0> think that's a fairly recent development
20160801 19:58:33 <zubzub> yeah about 1-2 years ago
20160801 20:00:35 <rmk0> i think the main problem right now is just... stupid things. like, i can run "mvn package" and get a working bundle. if i have the same project open in intellij and click "run", it overwrites the bundles maven produced with its own broken bundles that don't contain the necessary classes, then it forks a container and chokes on the inevitable errors
20160801 20:00:41 <rmk0> is demoralizing
20160801 20:01:51 <rmk0> i can run unit tests for code without issue, but i (presumably) also need to run those tests in a container at some point to catch any issues related to missing imports/exports/permissions, and it doesn't look like that's doable without extreme suffering
20160801 20:02:14 <zubzub> there are osgi unit test runners
20160801 20:02:16 <rmk0> i look online and no two people seem to have the same errors, and all of them are unsolved
20160801 20:02:27 <zubzub> yes
20160801 20:02:29 <zubzub> welcome to osgi
20160801 20:02:34 <zubzub> a world of pain
20160801 20:02:37 <zubzub> I know
20160801 20:02:41 <zubzub> I've been doing it for 5 years now
20160801 20:02:43 <zubzub> and I hate it :)
20160801 20:03:23 <zubzub> the maven intellij run thing is intellijs fault
20160801 20:03:46 <zubzub> but you should be able to run a maven build
20160801 20:03:56 <zubzub> and then use intellij to run your project (without clean/rebuilding everything)
20160801 20:04:13 <Eclesia> you could also try jigsaw/java9 or nbm
20160801 20:04:30 <zubzub> yeah, java9 is pretty much what osgi is at it's core
20160801 20:04:32 <rmk0> i don't doubt for a second that there are osgi test runners, but i have even less confidence that any of the IDEs are going to be able to cope with them, and i doubt i get to use intellij's nice code coverage views with them
20160801 20:05:08 <zubzub> unfortunately java9 is not yet released
20160801 20:05:36 <Eclesia> rmk0: netbeans is the only ide I know who doesn't try to override the maven commands, he just run them.
20160801 20:05:39 <zubzub> rmk0: the problem you have is not osgi related, but intellij not know if the special things maven is doing
20160801 20:05:47 <rmk0> zubzub: yep
20160801 20:05:59 <zubzub> I have the same problem with annotation processors in intellij
20160801 20:06:16 <zubzub> that's why I always go through maven (which you can invoke from inside intellij)
20160801 20:06:23 <zubzub> and then run from intellij
20160801 20:06:54 <rmk0> yeah, will give that a go. i'm having android development flashbacks
20160801 20:07:10 <rmk0> "everything is broken. don't let the IDE do *anything* or you'll regret it."
20160801 20:07:38 <zubzub> I think the test coverage shouldn't be a problem
20160801 20:08:07 <rmk0> jigsaw seems to be osgi without the classloaders (operates beneath the level of classloaders), the dynamic component, or the control over module permissions
20160801 20:08:10 <zubzub> as the junit test runner will basically setup an osgi environemnt for your test to run, as soon as your test method kicks off, intellij will measure (I think/assume/expect)
20160801 20:08:27 <rmk0> *desperately hope
20160801 20:10:28 <rmk0> is a shame about this stuff, because osgi seems wonderful. i've been reading the spec all day and liking everything i've read
20160801 20:11:48 <zubzub> it's really well thought out
20160801 20:12:01 <zubzub> it's also incredibly vast and error prone
20160801 20:12:23 <zubzub> which is not an issue if the people you work with are good programmers
20160801 20:12:37 <rmk0> i work alone :D
20160801 20:12:41 <zubzub> unfortunetely in a corporate environment tha tis never the case
20160801 20:12:57 <zubzub> yeah, but the people writing plugins maybe not ;)
20160801 20:13:29 <rmk0> \o/
20160801 20:14:10 <zubzub> an ideal solution with be some kind of multi-proces rmi thing
20160801 20:14:23 <zubzub> (maybe that's what java9 is doing?)
20160801 20:16:50 <zubzub> jni crashes wouldn't take your process down, no OOM, no excpetions bubbling to you, no blocking threads
20160801 20:17:26 <zubzub> all you need is being able to transparently call java methods with rmi underneath
20160801 20:20:06 <rmk0> i don't know enough to say, yet
20160801 20:21:05 <rmk0> i'm curious if there's anything in osgi to handle dependencies between resources. imagine a contrived example where one bundle file has an html file that somehow links to images that are held in another bundle
20160801 20:22:12 <rmk0> i developed a small "resource package" system a few years back
20160801 20:22:57 <rmk0> it registered a uri handler that knew how to resolve uris such as: "package://com.a.b/x/y/z.txt"
20160801 20:23:25 <rmk0> if a package had a dependency on com.a.b, then the resolver would return /x/y/z.txt from the package (failing if there was no declared dependency)
20160801 20:23:30 <rmk0> handled cyclic dependencies and so on
20160801 20:27:16 <rmk0> it more or less reinvented osgi but for plain files. had the same notion of building assemblies with versioning, etc
20160801 20:40:26 <zubzub> what do you mean handle dependencies between resources?
20160801 20:40:44 <zubzub> osgi bundles can expose their resources if you ask a bundle to give them the URL of their resource
20160801 20:41:11 <zubzub> ie you need to have access to a class of the bundle you want the resource from
20160801 20:41:17 <rmk0> right
20160801 20:44:08 <rmk0> i guess what i'm envisioning is that some bundles won't actually contain executable code. they might just contain things like maps, graphics, etc. it would be nice if there was a way for a resource in a bundle to refer to a resource in another bundle without anyone (except me, maybe) having to write java code that manually fetches the resource and so on
20160801 20:45:28 <rmk0> imagine that's something i'd need to implement myself... some sort of resource resolver service
20160801 20:53:42 <Eclesia> it somehow looks alike the module manager I try to build. it has URI like mod:/path/inside/jar to resolve resources, and a replacement for ServiceLoader.
20160801 20:57:19 <rmk0> yeah, along those lines
20160801 20:59:02 <zubzub> don't invent the wheel
20160801 20:59:04 <zubzub> http://stackoverflow.com/a/3539287
20160801 21:00:40 <rmk0> zubzub: that's the way to access resources in a bundle, yes, but i'm talking about something that sits slightly above that. a way to map abstract URIs to resources in specific bundles
20160801 21:02:17 <zubzub> 'abstract' URI
20160801 21:03:10 <rmk0> probably better if i explain what the original system did instead
20160801 21:03:10 <zubzub> https://osgi.org/javadoc/r4v43/core/org/osgi/framework/Bundle.html#findEntries(java.lang.String, java.lang.String, boolean)
20160801 21:04:15 <rmk0> actually ... i won't. it doesn't matter
20160801 21:11:24 * monsieur_max (~maxime@anon) Quit (Quit: Leaving.)
20160801 21:33:44 * bigpet (uid25664@anon) Quit (Quit: Connection closed for inactivity)
20160801 21:38:21 * Eclesia (~eclesia@anon) Quit (Quit: Leaving.)
20160801 22:41:03 * juank_prada (~juank_pra@anon) Quit (Ping timeout: 244 seconds)
20160802 04:33:14 * bigpet (uid25664@anon) has joined #jogamp
20160802 05:05:30 -jogamp- Continue @ http://jogamp.org/log/irc/jogamp_20160802050530.html