IRC logs of #shogun for Friday, 2016-04-01

--- Log opened Fri Apr 01 00:00:54 2016
-!- travis-ci [~travis-ci@ec2-54-92-147-78.compute-1.amazonaws.com] has joined #shogun00:17
travis-ciit's lambday's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/11993184400:17
-!- travis-ci [~travis-ci@ec2-54-92-147-78.compute-1.amazonaws.com] has left #shogun []00:17
-!- besser82 [~besser82@fedora/besser82] has joined #shogun00:32
-!- mode/#shogun [+o besser82] by ChanServ00:32
arianepaolabesser82: ping00:58
@besser82arianepaola, yes?00:58
arianepaolahi besser82, regarding the scripts for buildbot01:00
arianepaolaAriane: besser82, as wiking said it would be great to have a look at the build scripts for fedora, so that we can build shogun for fedora 2301:00
arianepaolaAriane: besser82, on fedora 24 do you already compile shogun using gcc 6?01:00
@besser82arianepaola, which build-scripts do you mean exactly?01:11
@besser82arianepaola, yes, on fc24 gcc6 is default01:11
arianepaolabesser82: I would like to work on creating nightly binary packages for Fedora01:12
arianepaolabesser82: as buildbot is already setup for shogun, I was looking for the configuration, e.g. setting up factory builder or other buildbot scripts to get the source code and compile01:13
@besser82arianepaola, ahh… I see…01:13
arianepaolabesser82: I would like to integrate the work mentioned in #3131 into the current setup01:13
@besser82arianepaola, so you virtually just need to do some modification on my recent fedora-rpm…01:14
arianepaolabesser82: that sounds good. I just could not find shogun buildbot code anywhere.01:15
@besser82arianepaola, http://pkgs.fedoraproject.org/cgit/rpms/shogun.git/tree/01:15
@besser82arianepaola, so we just need some CMake-magic to generate some special versioning into the spec-file and build a src.rpm from that…01:17
-!- lambday [6a3384a4@gateway/web/freenode/ip.106.51.132.164] has quit [Ping timeout: 250 seconds]01:17
@besser82arianepaola, the builds itself can go on copr then…  https://copr.fedorainfracloud.org/01:17
@besser82arianepaola, copr will do the real build against the selected Fedora-releases and provide repos for them01:18
arianepaolabesser82: sounds good01:18
@besser82arianepaola, if you have any further questions feel free to ping me…  will be off in about 15 mins…  It's about 1:15 am in Germany…01:19
@besser82arianepaola, will setup a buildtree/namespace on copr for shogun tomorrow morning01:20
arianepaolabesser82: thank you for your help01:21
@besser82arianepaola, you're welcome ^^01:21
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has joined #shogun01:30
-!- mode/#shogun [+o HeikoS] by ChanServ01:30
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 250 seconds]01:38
-!- HeikoS [~heiko@host-92-0-162-192.as43234.net] has quit [Quit: Leaving.]01:40
-!- curiousguy13 [~curiousgu@120.56.225.247] has quit [Ping timeout: 248 seconds]04:08
shogun-buildbotbuild #1112 of nightly_default is complete: Failure [failed notebooks]  Build details are at http://buildbot.shogun-toolbox.org/builders/nightly_default/builds/1112  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Wu Lin <yorker.lin@gmail.com>04:10
-!- Izaya [~Eejya@103.225.100.51] has joined #shogun08:57
Izayawiking, Hi. Could you point out how to begin with https://github.com/shogun-toolbox/shogun/issues/3132 ?09:20
-!- besser82 [~besser82@fedora/besser82] has joined #shogun10:12
-!- mode/#shogun [+o besser82] by ChanServ10:12
@wikingIzaya: are you familiar with setuptools of python?10:23
IzayaI'm not familiar with them. I've been reading up about it.10:27
@wikingbecause essientially you need to create a setup.py10:34
@wikingthat'll call cmake10:34
@wiking+ make10:34
IzayaI see.10:35
@wikinglemme try to find an example10:36
IzayaThat'd be great. I've written a very basic setup.py for now http://pastebin.com/FB5g220y10:37
@wikinggood start10:37
@wikingIzaya: i've just found this blog article10:38
@wikingi reckon this is something that we would like https://bloerg.net/2012/11/10/cmake-and-distutils.html10:38
IzayaI see. I'll read up and try working on it :)10:39
@wikingalthough i'm not 100% :)10:39
@wikingmmm10:40
IzayaI was trying to figure out how cmake and make would be called using setup.py but I haven't had much luck.10:40
@wikingnoup10:40
@wikingthis is not really it10:40
@wikingyeah10:40
@wikingi mean that setuptools is a piece of shit10:41
@wikingof course10:41
@wiking:)10:41
Izaya:)10:41
@wikingit has options to compile c files10:41
@wikingbut on the other hand10:41
@wikingwe need to configure first the lib10:41
@wikinglemme try to grep some more10:41
@wikinghttps://github.com/scikit-build/scikit-build10:42
@wikingthis is something 'getting' there10:42
@wikingyep yep10:42
@wikingthis is goodie10:43
@wikingusing this10:43
@wikingyou can create a setup.py10:43
@wiking;)10:43
@wikinghave fun10:43
IzayaOh. Thank you :)10:43
@besser82wiking, setup.py for what?  I'm puzzled a bit…10:43
@wikingbesser82: pypi10:44
@wikingso that you can do pip install shogun10:44
@wikingbesser82: btw now that you are definitely here10:44
@besser82ahh…  I see…10:44
@wikinghow should we do the nightlies?10:44
@besser82yes?10:44
@besser82Ahh…10:44
@besser82I'd suggest using a generated rpm and OBS10:44
@wikingbecause if we could have nightlies10:44
@besser82And for Fedora COPR10:45
@wikingthen we could have docker nightlies10:45
@wikingthat has latest shogun binaries10:45
@wikingnow the question is should we generate it?10:45
@wikingor is there something like ppa10:45
@wiking?10:45
@besser82COPR is PPA in Fedora world…10:46
@besser82I gave arianepaola the rpm-spec, I'm using for Feodra10:46
@wikingoh cool10:46
@wikingarianepaola: are you on this now? :)10:46
@besser82So it just needs some maigic in CMake to generate Version and Release tags into it10:46
@wikingah10:46
@wikingconfig branch?10:46
@wikingi have started something in config branch10:47
@besser82no idea, where she does10:47
@wikingnono what i mean i started something already10:47
@wikingin config granch regarding this10:47
@wikingbut cool10:47
@wikingi think she is on it then10:47
arianepaolawiking: finishing the Python package10:47
@besser82Ahh…  I see… Let me have look in a few minutes10:47
@wikingbesser82: kk10:47
@besser82So we can get that started ^^10:47
@wikingbesser82: cool10:47
@wikingthnx10:47
@wikingheaps10:47
arianepaolasetup buildbot, everything working so far, found a few bugs10:48
@wikingfor?10:48
@wikingbtw we have our infra stuff10:48
@wikingfor buildbot10:48
@wikingthe problem is that i have a lot of passwords10:48
@wikinghardcoded into it10:48
@wiking:)10:48
@wikingthat's why it's a private repo10:48
@wiking:DDDDD10:48
arianepaolagot also cmake in buildbot working, so the next thing is to clone besser82 rpm package on top of the source and build it10:48
@wikingarianepaola: cool10:48
@wikingarianepaola: for those cmake hacks10:49
arianepaolawiking: I understand, but had to get it working with buildbot10:49
arianepaolaotherwise too much manual work10:49
@wikingcheck out the 'config' branch10:49
@wikingmight help you10:49
arianepaolaok thanks10:49
@wikingwoah10:50
@wikingthis is cooool10:50
@wikinghttps://www.nuand.com/blog/product/bladerf-x40/10:50
@wiking"bladeRF can be configured to operate as a custom RF modem, a GSM and LTE picocell, a GPS receiver, an ATSC transmitter, or a combination Bluetooth/WiFi client, without the need for any expansion cards"10:50
@wikingniiice10:50
@wiking(wants!(10:50
-!- HeikoS [~heiko@217.138.5.14] has joined #shogun11:10
-!- mode/#shogun [+o HeikoS] by ChanServ11:10
-!- Izaya [~Eejya@103.225.100.51] has quit [Ping timeout: 240 seconds]11:13
shogun-buildbotbuild #2832 of bsd1 - libshogun is complete: Failure [failed configure]  Build details are at http://buildbot.shogun-toolbox.org/builders/bsd1%20-%20libshogun/builds/2832  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Ariane Paola Gomes <arianepaola@users.noreply.github.com>11:38
shogun-buildbotbuild #1194 of FCRH - libshogun is complete: Failure [failed compile]  Build details are at http://buildbot.shogun-toolbox.org/builders/FCRH%20-%20libshogun/builds/1194  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Ariane Paola Gomes <arianepaola@users.noreply.github.com>11:39
@wikingHeikoS: are you like PR trigger happy? :D11:40
@HeikoSwiking: PR trigger? :)11:41
@wikinghttps://www.youtube.com/watch?v=6S71bzLtf9811:41
@wikingthat's for you today11:41
shogun-buildbotbuild #182 of FC22 - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/FC22%20-%20libshogun/builds/182  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Ariane Paola Gomes <arianepaola@users.noreply.github.com>11:42
@HeikoShaha11:42
@wikingsoon a black mark :)11:42
@HeikoSwiking: i think the eigen thing is fine11:45
@HeikoSnot temp11:45
@HeikoSjust waiting for 3.3 to become stable11:45
@wikingi'll fix it11:45
@wikinglike now11:45
@wikingok?11:45
@wiking:)11:45
@HeikoSsure11:45
@wikingleave that11:45
@wikingforget that11:45
@wiking(jedi movement)11:45
@HeikoSbut if there are macros, I prefer to exclude ;)11:45
@wiking:P11:45
@HeikoSwill do11:45
@HeikoShaha11:45
@wikinghas to be done with macros11:45
@wikingeven though it's shitty in your eyes11:45
@wikingi think macros are one of the best things in c11:46
@HeikoSwiking: but only at one place please11:46
@wikingthink about other languages11:46
@HeikoSnot everywhere in code11:46
@wikingthere's not such thing11:46
@wikingit's so fucking limiting11:46
@wiking:)))11:46
@HeikoSsure I agree, but please not duplicate code everywhere only to repsect API. Rather provide a wrapper ....11:46
@HeikoSbtw thats why we need linalg11:46
@wikingyeah yeah11:46
@wikinggottcha11:46
@wikinglinalg FTW11:46
@HeikoSthen all the macro stuff is in there and alg devs never have to bother with this library shit11:47
@HeikoSwiking: btw I talked to lambday about the discussion we had for the linalg11:49
@HeikoSwiking: think we found a nice way to avoid static backends, and at the same time not suffer from the virtual call speed11:50
@HeikoSso all good11:50
@HeikoScan switch at runtime, no additional build11:50
@wikingvirtual call speed?11:50
@HeikoSbut all linalg methods are static11:50
@HeikoSwiking: dont know how to call that11:50
@HeikoSbut we benchmarked this a while ago11:50
@wikingwhat exactly?11:50
@HeikoSvitual linalg methods for say computing dot product11:51
@HeikoSand subclasses overload with the specific library backend11:51
@HeikoSthat was slow11:51
@HeikoSslowER than statically linking the backend and not having virtual calls for the dot product11:51
@wikingokok11:51
@HeikoSbut now11:51
@HeikoSwith this factory idea11:51
@wikinglets step back a bit11:51
@wikingyou are saying11:52
@wikingthat11:52
@HeikoSjust the factory call is virtual11:52
@wikingvirtual functions11:52
@HeikoSand the dot product is static11:52
@wikingare were making significantly slower runtimes?11:52
@wikingbecause basically you are saying11:52
@wikingthat c++ = python11:52
@wiking:DDD11:52
@HeikoShaha :D11:52
@HeikoSyes that what I am saying11:52
@wikingi mean i would really like to see that benchmark11:52
@HeikoSI think we should also get rid of all the static types11:52
@HeikoSin shogun in general11:52
@wikingwhat static types?11:52
@wikingi mena are you shitting me11:53
@HeikoSthought we could maybe just have a swig wrapper to use the python dynamic typing magic in shoguns core11:53
@HeikoS:D :D :D11:53
@HeikoSgot ya11:53
@wikingis this april 1?11:53
@wiking:DDDDDD11:53
@HeikoSlambday will dig out the benchmark11:53
@HeikoSand I will help him prototype the new thing11:54
@HeikoSand then we can discuss11:54
@wikingwait wait11:54
@wikingbefore you really submerge into this11:54
@wikingplease11:54
@HeikoSI think it is good to get rid of the additional builds for each lib, you are right with that11:54
@wikinglet's make the benchmark proper11:54
@wikingbecause fuck11:54
@wikingthat's a vtable lookup11:54
@wikingit's VERY VERY fast11:54
@HeikoSwiking: yes, we were surprised as well11:54
@wikingthat should be measured in nanoseconds11:55
@wikingor less11:55
@wikingso there is soemthing else wrong11:55
@HeikoSIll dig it out11:55
@wikingthnx11:55
@HeikoSwe were really surprised ourselves11:55
@wikingi wouldn't not put too much effort into anything else11:55
@HeikoSI remember saying the same thing as you now11:55
@wikingbefore really measuring that11:55
@HeikoSsure11:55
@HeikoSbut hey11:55
@wikingsay perf11:55
@wikingetc.11:55
@wikingbecause there's something else11:55
@HeikoSwe solved it anyways, we dont want to go static11:55
@HeikoSno need11:55
@HeikoSthats the nice thing about the new idea11:55
@HeikoSwith the factory, the method can be vritual11:56
@HeikoSbut it is only called once anyways11:56
@HeikoSand then you get a typed structure11:56
@HeikoSand the type automatically chooses a static method11:56
@HeikoSbut yeah benchmark11:56
@HeikoSI agree11:56
@HeikoSwill show11:56
@HeikoSonce I found it ;)11:56
@HeikoSand once april1 is over11:56
@wikingheheh11:57
@wikingbut man11:57
@wikingyou are saying11:57
@HeikoSyeah I know11:58
@HeikoSso let's look at benchmark11:58
@HeikoS(even though it doesnt matter anymore, the decision doesnt need to be taken)11:58
@HeikoSmore important to get rid of the statically linked library build11:58
@wikingi mean look11:59
@wikinglook at our whole thing11:59
@wikingCMachine -> CKernelMachine11:59
@wikingthen CKernel -> CDotKernel11:59
@wikingif you are saying that all virtual functions has a significant timeout11:59
@wikingwe can start throwing out *everything*11:59
@wikingthat benchmark12:00
@wikinghas to be fucked up somewhere12:00
@wiking:)12:00
-!- travis-ci [~travis-ci@ec2-54-92-147-78.compute-1.amazonaws.com] has joined #shogun12:00
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12002691812:00
-!- travis-ci [~travis-ci@ec2-54-92-147-78.compute-1.amazonaws.com] has left #shogun []12:00
@HeikoSwe isolated12:00
@HeikoSit was just the linalg calls, no shogun underneath12:01
@HeikoSbut yeah, the kernel functions are there as well12:01
@HeikoSand all the rest12:01
@HeikoSall virtual12:01
@wikingyeah12:02
@wikingso fuck12:02
@wikingI CALL BULLSHIT12:02
@wikingso please12:03
@wikingsend me that benchmark12:03
@HeikoSCAPITAL LETTERS12:05
-!- travis-ci [~travis-ci@ec2-54-92-147-78.compute-1.amazonaws.com] has joined #shogun12:07
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12002446912:08
-!- travis-ci [~travis-ci@ec2-54-92-147-78.compute-1.amazonaws.com] has left #shogun []12:08
-!- curiousguy13 [~curiousgu@120.59.105.249] has joined #shogun12:20
-!- curiousguy13 [~curiousgu@120.59.105.249] has quit [Ping timeout: 244 seconds]12:25
@HeikoSwiking: just chatted more to lambday12:30
@HeikoSwiking: "if we can avoid virtual calls, why not do that?"12:31
@HeikoSwiking: so there is not really a need for digging into the benchmark code, as it is not a decision to take really12:31
@HeikoSonly with the old design, which has to be improved anyways12:31
@HeikoSand I actually agree that embedded into shogun, it doesnt make a difference12:32
@HeikoSbenchmark code is not done properly, so I think we canont infer anything from the results12:32
@HeikoSI think there might be other things going on as well, caching etc, so not a clean investigation12:33
-!- curiousguy13 [~curiousgu@120.59.103.227] has joined #shogun12:39
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has joined #shogun12:44
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12002889812:44
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has left #shogun []12:44
-!- HeikoS [~heiko@217.138.5.14] has quit [Remote host closed the connection]12:46
-!- HeikoS [~heiko@217.138.5.14] has joined #shogun12:47
-!- mode/#shogun [+o HeikoS] by ChanServ12:47
-!- HeikoS [~heiko@217.138.5.14] has quit [Quit: Leaving.]12:54
-!- curiousguy13 [~curiousgu@120.59.103.227] has quit [Ping timeout: 244 seconds]13:59
-!- curiousguy13 [~curiousgu@59.177.198.104] has joined #shogun14:11
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has joined #shogun15:29
-!- mode/#shogun [+o HeikoS] by ChanServ15:29
shogun-buildbotbuild #634 of debian wheezy - memcheck is complete: Failure [failed memory check]  Build details are at http://buildbot.shogun-toolbox.org/builders/debian%20wheezy%20-%20memcheck/builds/634  blamelist: Heiko Strathmann <heiko.strathmann@gmail.com>, Ariane Paola Gomes <arianepaola@users.noreply.github.com>15:33
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has joined #shogun15:43
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12006930015:43
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has left #shogun []15:43
-!- curiousguy13 [~curiousgu@59.177.198.104] has quit [Ping timeout: 260 seconds]15:46
-!- curiousguy13 [~curiousgu@120.59.229.225] has joined #shogun15:59
curiousguy13HeikoS, ping16:15
@HeikoScuriousguy13: hi16:15
curiousguy13hey, i wanted to discuss my PR #3101 and the implementation of LLT linear solvers in linalg16:16
curiousguy13this PR : https://github.com/shogun-toolbox/shogun/pull/310116:16
curiousguy13HeikoS, so, as I understand the idea is to implement a basic linear solver, cholesky_solve , svd_solve etc all as part of linalg16:18
@HeikoScuriousguy13: yes, not implement, but add the interface16:18
@HeikoScuriousguy13: just in a call, will get back to you16:18
curiousguy13HeikoS, yeah sure, no problem16:18
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has joined #shogun16:39
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12007005116:39
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has left #shogun []16:39
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has joined #shogun16:50
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12007592216:50
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has left #shogun []16:50
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun16:55
sanujlisitsyn: there?16:56
sanujHeikoS: there?16:56
sanujbesser82: there?16:57
@besser82sanuj, A'ight!16:57
sanujbesser82: hi :)16:57
sanuji had some doubts regarding implementing typesafe tags16:57
sanujbesser82: in context to https://github.com/shogun-toolbox/shogun/wiki/New-parameters-framework-and-plugins16:58
sanujbesser82: have time to talk about it?16:58
@besser82sanuj, yes, I do ^^17:00
sanuj:D17:00
sanujbesser82: what's the point of 'name' field in Tag class?17:00
@HeikoSwiking: https://www.google.com/url?q=https%3A%2F%2Fgist.github.com%2Flambday%2Fd31506225ce78759e1b5e5945f770bc8&sa=D&sntz=1&usg=AFQjCNHi_28zIVQOjysyE_qo8RuEu_bRsw17:01
@besser82sanuj, you're talking about this --> Tag(string name) : name_(name)  ?17:01
sanujbesser82: yeah17:01
@besser82sanuj, that's actually the name of the parameter this Tag represents17:03
sanujbesser82: yes, but what's the use-case ?17:03
@besser82sanuj, the use-case is for naming the paramters and users can set them by their name17:07
@besser82like we have a Tag<float> fancy("fancy")17:08
@besser82and the user can then do sth like CFancyThing.set("fancy", 3.14)17:09
sanujbesser82: if you look at this example from the wiki page17:10
sanujSGObject object; Tag<int> intParameter; object.set(intParameter, 3);17:10
sanujbesser82: name is not used here17:10
sanujbesser82: is it for string based parameters in high level languages like python17:11
sanujlike17:11
sanujkernel = shogun.GaussianKernel()17:12
sanujkernel.set("width", 1.0)17:12
@besser82sanuj, yes, and there the name-member of the Tag comes into play, afaik17:13
sanujbesser82: okay, one more question17:14
sanuji have the Tag class (similar to one in the wiki page)17:14
sanujnow i want to implement a setter in SGObject17:15
sanujlike17:15
sanujtemplate <typename T> void set(Tag<T> tag, T value)17:15
sanujvalue should be saved in a private member variable of SGObject17:15
sanujbut T can be anything and it depends on the tag17:16
sanujbesser82: so how to go about implementing it17:16
lisitsynmap<Tag, Any>17:17
@besser82sanuj, then it should be a member of the Tag-class, I think…17:17
@besser82lisitsyn, ^17:17
@besser82lisitsyn, a map for that is overkill…  :(17:18
lisitsyn??17:18
sanujlisitsyn: besser82: can i read about tags from some online resource?17:18
sanujto get a better understanding17:19
@besser82lisitsyn, Storing data in the map directly is freaking slow…17:19
sanuji mean do you guys know of any resource17:19
sanujbesser82: map is implemented as a bst right??17:19
sanujor is it hashing17:20
@besser82lisitsyn, ?17:21
@besser82sanuj, it's bst, yes17:21
lisitsynokay unordered_map17:21
lisitsynno matter :)17:22
sanujlisitsyn: yeah17:22
sanujbut the usage of this setter is like17:22
sanujSGObject object; Tag<int> intParameter; object.set(intParameter, 3);17:22
sanujsuppose there are 2 intParameter -> width, length17:23
sanujthen to set these parameters it should be like17:23
sanujTag<int> length; object.set(length, 3);17:24
sanujor17:24
sanujTag<int> length("length"); object.set(length, 3);17:24
sanujand respectively for width17:25
sanujTag<int> width; object.set(width, 3);17:25
sanujlisitsyn: ^^ ?17:25
sanujlisitsyn: and also how should the map look like17:27
sanujfor the above example17:27
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has joined #shogun17:30
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12008542717:30
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has left #shogun []17:30
@besser82sanuj, with using the name-string to resolve back to the Tag, we need to have an unordered_map<std::string, Any*>17:30
lisitsynTag should be hashable17:31
lisitsynit should have unique id17:31
sanujbesser82: Any* is a pointer to a member variable?17:32
@besser82sanuj, nope to Tag<T>17:33
@besser82sanuj, with the corresponding name17:33
@besser82lisitsyn, name should be unique enough, shouldn't it?17:33
@besser82sanuj, so we can then internally call set(*Tag<T>, string_value)17:34
@besser82sanuj, to preserve run-time type consistency…17:35
@besser82lisitsyn, or do we want to use traits for that?17:35
sanujbesser82: for ex: Tag<int> lengthTag("length"); object.set(lengthTag, 3);17:36
sanujmapping goes from "length" --> lengthTag ?17:36
lisitsynbesser82: no, e.g. a few kernels could have width17:36
lisitsynsanuj: yes17:37
sanujyey i finally got something right :P17:37
@besser82lisitsyn, what do you mean?17:37
lisitsynbesser82: ah17:37
@besser82lisitsyn, so we need e.g. width several times?17:37
lisitsynsorry you're right17:37
lisitsynname is enough17:37
lisitsynwe can hash it once17:37
@besser82lisitsyn, okie ^^17:38
lisitsynor use a pool of strings17:38
lisitsynwith already hashed17:38
lisitsynso when tag is created it is transformed into hash17:38
lisitsynthen access is ultrafast17:38
@besser82lisitsyn, same should be with using std::string in the map17:38
@besser82lisitsyn, since std::string is just a wrapped char*17:39
@besser82lisitsyn, not too much overhead, when storing it insinde the map17:39
lisitsynbesser82: std::string would compute hash all the time17:39
sanujlisitsyn: besser82: so the hashmap just tells what is the type of a particular member variable?17:40
lisitsynwe forget type17:40
lisitsynaka type erasure17:40
sanujlisitsyn: what ?17:41
sanuji need to read about type erasure17:41
sanujvoid *17:43
@besser82sanuj, for string-based setter, yes17:44
@besser82lisitsyn, woot?17:44
sanujbesser82: where should this hash map reside?17:45
sanujTag or SGObject?17:45
@besser82sanuj, SGObject17:45
@besser82sanuj, and I'd prefer heap-allocation17:46
sanujokay17:46
@besser82lisitsyn, so you'd propose hashing the name-string into sth. like int?17:47
@besser82lisitsyn, and do the lookup by that?17:47
lisitsynbesser82: exactly17:47
@besser82lisitsyn, mhh… so how do we want to hash then?17:48
lisitsynbesser82: on initialization17:48
lisitsynctor should hash it17:49
@besser82lisitsyn, I see…  but which hash-algo?17:49
@besser82lisitsyn, I mean we should be collsion-free, then17:49
@besser82lisitsyn, and e.g. SHA1 is more than a uint64_t… :S17:50
lisitsynbesser82: uhmmm ok we can make it collision free17:50
lisitsynwe can just have a pool of strings17:50
lisitsynof tags17:50
@besser82lisitsyn, mhh…17:51
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has joined #shogun17:52
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12009013917:52
-!- travis-ci [~travis-ci@ec2-107-22-112-205.compute-1.amazonaws.com] has left #shogun []17:52
@besser82lisitsyn, my idea behind would be more like having a container of ptr to the tags, so we don't need to alter anything manually and all…17:53
@besser82lisitsyn, like if we need a new parameter for whatever new plugin, we don't need to rebuild libshogun17:54
@besser82lisitsyn, any thoughts on this?17:54
sanujbesser82: most of the things are going over my head :P17:55
@HeikoSwiking: jojo17:56
@besser82sanuj, don't mind…  lisitsyn and me are hardcore-C++ guys.  :P17:56
sanujhaha17:57
@besser82sanuj, =)17:57
sanuji'll also become one in some time B)17:57
sanuj:D17:57
@besser82sanuj, Sure you will =)  Just to give you a feeling for my expirience:  I learned coding, when we limits like a string could not be more than 255 chars and such…  TurboPascal3 on Z80  ;)17:59
@besser822 MB of RAM these days was like having 2 TB today…  :P18:00
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has joined #shogun18:00
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12008542718:00
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has left #shogun []18:00
sanujbesser82: woooaaah18:00
sanuj:D18:00
@besser82hehe18:01
sanujbesser82: i will say that to people after 15 years when RAM goes 1 TTB :P18:01
sanujif moore's law continues18:02
@besser82sanuj, hehe, yes for sure18:02
@besser82sanuj, When I was your age floppy disk was da gangsta way for storing them files  ;)18:02
@besser82sanuj, 360 kb on double-sided 5.25 inch floppy18:03
sanujbesser82: simply outrageous18:03
sanujbesser82: i feel sort of lucky :P18:03
@besser82sanuj, hehe…  There will be such stories for you, too 20 yrs. in the future18:04
sanujbesser82: if someone solves human longevity till then, i won't complain ;)18:05
@besser82sanuj, "Hey, Kids…  When I was young our SSDs were about 2.5 inches in size and just had 2 TB…"18:05
sanujhaha18:05
sanujbesser82: so coming back to tags :P18:07
@besser82sanuj, yes =)18:07
sanuji have a hashmap in sgobject which gives me tag objects given it's name18:07
sanuji want to store the setter value in a class variable18:07
sanujall class variables will be void *?18:08
@besser82sanuj, huh?18:08
@besser82sanuj, the value should be in the Tag, too, I think…18:09
@besser82sanuj, so we definitly type-safety18:09
sanujbesser82: Tag only has one parameter i.e. its name18:10
sanujin the wiki page18:10
@besser82sanuj, mhh… I need to discuss that with lisitsyn later…  so go on using void* then  ;)18:10
@besser82sanuj, we can change that later, into a suitable way18:11
sanujlisitsyn was saying something about type erasures so i inferred void *18:11
sanujbesser82: yeah we are just prototyping for now18:11
sanujbesser82: how will i know which member variable should i store the setter value in?18:13
sanujfrom the tag name?18:13
@besser82sanuj, sth. like that…  For that reason I was like we should have that var inside Tag<T>18:14
sanujyeah18:15
sanujbesser82: i gotta run for dinner18:15
sanujwill be back in sometime18:15
sanujbesser82: thanks18:15
sanuj:)18:15
@besser82sanuj, allrighty!  me,too18:16
@besser82sanuj, will be offline later… erm… you are on tomorrow?18:16
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Ping timeout: 250 seconds]18:20
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has joined #shogun18:24
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12009596318:24
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has left #shogun []18:24
-!- curiousguy13 [~curiousgu@120.59.229.225] has quit [Remote host closed the connection]18:37
lisitsynbesser82: please no void* :)18:39
@besser82lisitsyn, was not my intention…  ;)18:48
@besser82lisitsyn, for Proof of Concept it would be ok…18:49
@besser82lisitsyn, production would be different18:49
lisitsynstruct Any { void* data; }18:52
lisitsyn:)18:52
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has joined #shogun18:52
travis-ciit's Heiko Strathmann's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: https://travis-ci.org/shogun-toolbox/shogun/builds/12010377918:52
-!- travis-ci [~travis-ci@ec2-54-198-118-249.compute-1.amazonaws.com] has left #shogun []18:52
@besser82lisitsyn, :P20:18
@besser82lisitsyn, struct Any { std::traits_type type }  avail, too?20:19
-!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 248 seconds]20:23
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has joined #shogun20:25
-!- HeikoS [~heiko@untrust-out.swc.ucl.ac.uk] has quit [Ping timeout: 264 seconds]21:01
-!- sanuj [0e8bc402@gateway/web/freenode/ip.14.139.196.2] has quit [Quit: Page closed]21:24
lisitsynwhy traits?21:48
-!- arianepaola [~ariane@unaffiliated/arianepaola] has quit [Read error: Connection reset by peer]22:11
-!- arianepaola [~ariane@unaffiliated/arianepaola] has joined #shogun22:16
-!- arianepaola [~ariane@unaffiliated/arianepaola] has quit [Excess Flood]22:20
-!- arianepaola [~ariane@unaffiliated/arianepaola] has joined #shogun22:21
-!- c4goldsw [8a33fe83@gateway/web/cgi-irc/kiwiirc.com/ip.138.51.254.131] has joined #shogun22:39
arianepaolaWhat is the process to contribute to the wiki pages? It seems that github does not support creating pull requests for wikis.22:58
c4goldswNot even after editing the Markdown?22:58
c4goldswAh, excuse me, nvm.22:59
arianepaolaDoes this sound good? clone wiki locally, push to my own github account and open an issue referencing the change.22:59
arianepaolac4goldsw: it's a contribution. can't change the wiki directly.22:59
c4goldswI'm not the person to be asking, unfortunately - most of them are probably aren't working anymore, as they're mainly based in Europe.23:00
c4goldswThat is, try again tomorrow.23:00
arianepaolathanks c4goldsw23:03
-!- c4goldsw [8a33fe83@gateway/web/cgi-irc/kiwiirc.com/ip.138.51.254.131] has quit [Quit: http://www.kiwiirc.com/ - A hand crafted IRC client]23:07
--- Log closed Sat Apr 02 00:00:56 2016

Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!