IRC logs of #shogun for Tuesday, 2014-10-14

--- Log opened Tue Oct 14 00:00:24 2014
-!- iglesiasg [~iglesias@524B8E0B.cm-4-4c.dynamic.ziggo.nl] has quit [Quit: Lost terminal]00:50
-!- wiking_ [~wiking@info2k1.hu] has joined #shogun02:32
-!- wiking [~wiking@huwico/staff/wiking] has quit [Read error: Connection reset by peer]02:32
-!- wiking_ [~wiking@info2k1.hu] has quit [Read error: Connection reset by peer]02:32
-!- wiking [~wiking@info2k1.hu] has joined #shogun02:37
-!- wiking [~wiking@info2k1.hu] has quit [Read error: Connection reset by peer]02:40
-!- wiking [~wiking@info2k1.hu] has joined #shogun02:42
-!- wiking [~wiking@info2k1.hu] has quit [Read error: Connection reset by peer]02:45
-!- wiking [~wiking@info2k1.hu] has joined #shogun02:47
-!- wiking [~wiking@info2k1.hu] has quit [Read error: Connection reset by peer]02:47
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun02:56
-!- mode/#shogun [+o wiking] by ChanServ02:56
-!- pickle27 [~pickle27@192-0-136-118.cpe.teksavvy.com] has quit [Remote host closed the connection]03:15
-!- wiking_ [~wiking@info2k1.hu] has joined #shogun04:46
-!- Netsplit *.net <-> *.split quits: @wiking04:54
-!- wiking_ is now known as wiking04:57
-!- wiking [~wiking@info2k1.hu] has quit [Changing host]04:57
-!- wiking [~wiking@huwico/staff/wiking] has joined #shogun04:57
-!- mode/#shogun [+o wiking] by ChanServ04:57
-!- lambday [67157e4e@gateway/web/freenode/ip.103.21.126.78] has joined #shogun10:56
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has joined #shogun10:58
-!- mlilenium_ [~mlilenium@178.251.136.142] has joined #shogun11:58
-!- mlilenium_ [~mlilenium@178.251.136.142] has left #shogun []11:59
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has quit [Quit: PirosB3]13:17
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has joined #shogun13:31
-!- lambday [67157e4e@gateway/web/freenode/ip.103.21.126.78] has quit [Ping timeout: 246 seconds]14:09
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has quit [Quit: PirosB3]14:22
-!- soumyaC [uid15286@gateway/web/irccloud.com/x-jtwbswvxtyqnmrve] has joined #shogun14:43
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun14:47
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has joined #shogun15:48
-!- ialong [9052b472@gateway/web/freenode/ip.144.82.180.114] has joined #shogun16:00
-!- HeikoS [~heiko@nat-204-182.internal.eduroam.ucl.ac.uk] has joined #shogun16:03
-!- mode/#shogun [+o HeikoS] by ChanServ16:03
-!- shogun-notifier- [~irker@7nn.de] has joined #shogun16:58
shogun-notifier-shogun: Sergey Lisitsyn :develop * 5894cdb / src/interfaces/python_static/CMakeLists.txt: https://github.com/shogun-toolbox/shogun/commit/5894cdb230387853d6593287fe4d27f77f03174616:58
shogun-notifier-shogun: Fixed python_static compilation error16:58
shogun-buildbotbuild #3212 of deb1 - libshogun is complete: Failure [failed test]  Build details are at http://buildbot.shogun-toolbox.org/builders/deb1%20-%20libshogun/builds/3212  blamelist: Sergey Lisitsyn <lisitsyn.s.o@gmail.com>17:04
-!- travis-ci [~travis-ci@ec2-174-129-79-49.compute-1.amazonaws.com] has joined #shogun17:23
travis-ciit's Sergey Lisitsyn's turn to pay the next round of drinks for the massacre he caused in shogun-toolbox/shogun: http://travis-ci.org/shogun-toolbox/shogun/builds/3794671217:23
-!- travis-ci [~travis-ci@ec2-174-129-79-49.compute-1.amazonaws.com] has left #shogun []17:23
-!- ialong [9052b472@gateway/web/freenode/ip.144.82.180.114] has quit [Ping timeout: 246 seconds]17:26
lambdayHeikoS: lisitsyn: hi17:51
@lisitsynlambday: heya17:51
lambdaylisitsyn: how's it going man?17:51
@lisitsynlambday: oh very busy but cool17:51
@lisitsynwhat about you?17:51
lambdayhaha17:51
lambdaylisitsyn: I came back to college to finish my degree..17:51
lambdayso back to Mumbai again17:52
@lisitsynlambday: hmm interesting17:52
@lisitsynwasn't it finished?17:52
lambdaylisitsyn: thesis work was incomplete.. so joined the company.. did training and worked for 3 months... now came back and finish it off17:52
@lisitsynI see17:53
@lisitsynso you escaped oracle?17:53
lambdaylisitsyn: nah.. :D took leave17:54
@lisitsynah17:54
lambdaylisitsyn: was going through aer..17:54
@lisitsynlambday: ah cool17:55
@lisitsynlet me know what you think17:55
lambdaylisitsyn: cool thing with the Any thing17:55
lambdaylisitsyn: I was also going through this tutorial on dr. dobbs... where they try to make it cross platform17:55
lambdaycurrently aer is linux only, right?17:55
@lisitsynhmm yeah17:55
@lisitsynbut shouldn't be a problem17:55
lambdayso that thing we can look into..17:55
@lisitsynit is posix now17:55
lambdaylisitsyn: I was redesigning the statistical hypothesis testing part.. I think with the help of Any we can boost things up a notch17:56
lambdayalso, so far I understood... this design fits nicely with the plugin design you have17:57
@lisitsynlambday: yeah any thing comes from boost17:57
@lisitsynas usual boost things are cool17:57
@lisitsynalthough boost's any is not cool I believe :D17:58
lambdaylol I didn't mean that boost but yeah17:58
@lisitsynI mean they just get RTTI17:58
@lisitsynfrom the type17:58
lambdayI meant power it up17:58
lambdayyeah17:58
@lisitsynand then compare strings17:58
@lisitsynthat's like super slow17:58
lambdayoh one thing I needed to discuss... if you have time17:58
@lisitsynsure18:01
lambdaylisitsyn: at one place, I need to downcast from base feature/kernel ptr type to the actual feature/kernel ptr type... currently I'm doing that inside a switch case with the help of the enums that we have18:01
@lisitsynlambday: I guess virtual function :D18:01
@lisitsynbut it would be not very nice I guess18:01
lambdayvirtual function for what? typecasting?18:02
lambdaylisitsyn: I was thinking of demangling stuff that you have in aer18:03
@lisitsynoh demangling doesn't sound reliable18:03
@lisitsyncan you explain it a bit more?18:03
lambdayok.. trying18:03
@lisitsynso you have to act according to the type of kernel?18:04
lambdaylisitsyn: so what we need is this - a set_foo(Base* ptr) function (non-templated) which calls a templated push_back(Derived* ptr) function internally with the actual type18:05
lambdayset_foo we releave to the modular interface18:05
lambdayreveal*18:05
lambdaynow this thing is easy for features and kernels since we have these enums18:05
lambdaybut what if I want this thing to work with a user defined feature class as well18:06
lambday(not a hard requirement - just a good thing to have - users defining their own feature class with whatever the hell they wanna use - they just write a few policy classes that is required by the framework and voila!18:07
lambdaylisitsyn: one idea was to make set_foo(...) method templated.. but then one cannot use this set_foo(...) inside some non-templated (probably virtual) method where the ptr thing is passes as Base* and not Derived*18:09
lambdayso while set_foo calls push_back, we need to make the cast18:09
@lisitsynlambday: I guess it is called multimethod18:10
@lisitsynquite a few ways to implement it :D18:10
lambdaylisitsyn: name a few :D18:10
@lisitsynlambday: iirc alexandrescu has some crazy stuff in his book about that18:11
@lisitsynlambday: anyway exposing templated method doesn't sound nice18:11
lambdaylisitsyn: that's what I thought..18:11
lambdayand by his book you mean modern c++ design, right18:12
@lisitsynyeah18:12
@lisitsynlambday: why do you need to call this method on derived?18:12
lambdayso that I can set some type specific policies based on the actual type18:13
lambdaywithout the wrapper having to worry about the internal18:13
lambdaylisitsyn:18:13
lambdayah wiki for multimethods uses a hashmap sort of thing - this is what I was thinking18:14
@lisitsynlambday: well yeah you can actually put a map18:15
@lisitsynbut that's slower than virtual method18:15
lambdayand what should be the appropriate key-value pair that I can use in that map? a string as key and a functor as a value :D18:16
@lisitsynlambday: what are real names for these methods?18:16
lambdayset_p(CFeatures* feats) .. set_q... set_kernel_p, set_kernel_q...18:17
@lisitsynah so you want to dispatch18:18
lambdaylisitsyn: https://github.com/lambday/flash/blob/develop/src/flash/statistics/HypothesisTest.cpp#L9218:18
@lisitsynCFeatures -> features used by kernel18:18
lambdaythis is what I have18:18
lambdayummm... no18:18
lambdayI mean yeah eventually... but that's not why I require it here18:19
@lisitsynlambday: static_cast<typename feats_traits<C_DENSE,F_DREAL>::type*>18:20
@lisitsynwhat does it return?18:20
@lisitsynwhat type?18:20
lambdayCDenseFeatures<float64_t>18:20
lambdayinside feats_traits its defined18:21
@lisitsynlambday: does your data manager work different for that?18:21
lambdayyes18:21
lambdayit does something for dense, for sparse, and for streaming dense, streamaing sparse18:21
lambdayfor strings18:21
lambdayetc18:21
@lisitsynlambday: okay I'd actually suggest you to avoid using templates here as it is called only once18:22
@lisitsynyou don't really need perfomance here I believe18:22
lambdaylisitsyn: nah just a nicer way to handle this18:22
@lisitsynlambday: I think you'd better go with some virtual methods18:22
@lisitsynand dispatch all these fetchers and permutators dynamically18:23
lambdaylisitsyn: so you're suggesting making push_back non-templated18:23
@lisitsynyeah18:23
@lisitsynlambday: if you want to dispatch it before push back18:24
@lisitsynI can suggest to create some temporary object18:24
lambdayand virtual methods have to be overridden somewhere for all the features and kernels I want to support18:24
@lisitsynwell you can delegate it to kernel18:24
@lisitsynor feature18:24
lambdaylisitsyn: could you please explain a bit on the temporary object creation part?18:26
lambdaybecause I thought of that but couldn't do it18:26
@lisitsynwell you need permutator and fetcher18:26
lambdayyep18:26
@lisitsynso you can push_back some object that stores features, permutator and fetcher18:26
@lisitsynbasically a tuple of these three18:27
lambdaybut for getting the appropriate fetcher and permutator, we need to know the actual type18:27
lambdayeven if we add another level of abstraction still it has to be handled by someone18:28
@lisitsynlambday: can you delegate fetcher to the feature?18:28
@lisitsynI mean can you let feature know of fetcher to use18:28
@lisitsynfeature->get_fetcher()18:28
lambdaylisitsyn: ah if these things are members then its super easy but this fetching and permutating thing is specific to the application.. so adding these to feature is probably not what we want18:29
@lisitsynokay then create some dispatcher18:29
@lisitsyndispatcher->get_fetcher(feature);18:30
lambdaywhat we can do is the define a internal feature class for this application and map CFeatures into that18:30
lambdaylisitsyn: dispatcher as a base class you mean?18:31
@lisitsynlambday: well just some class that creates propers objects for you18:32
lambdaylisitsyn: that's what I had with get_instance - just that its templated18:32
@lisitsynlambday: don't think you need it templated - looks like you going to suffer with this18:33
@lisitsynnot sure if these struggles worth it :)18:33
lambdaylisitsyn: well, the other way is ugly copy paste :(18:34
lambdayI thought let compiler do all that :D18:34
@lisitsynok my advice is to put all the dispatch to one place18:34
@lisitsynand then you can play with that somehow18:34
@lisitsynmaps or something virtual18:34
lambdayas in, as overloaded methods?18:35
lambdayokay18:35
@lisitsynpush_back(dispatch(features));18:35
@lisitsynlet it go to some dispatch18:35
@lisitsynthen you at least have all the horror isolated in one function or class18:36
lambdaylisitsyn: yeah that can be done - either the horror is there with the enums or dispatch18:37
@lisitsynlambday: I think some table (kind of enum map) would work quite fast18:38
@lisitsynint -> factory of permutators18:39
lambdaylisitsyn: yeah... that's a better idea18:39
@wikingbtw: https://github.com/Yelp/MOE18:39
lambdaylisitsyn: but horrifying thing is that we have two enums for features - feature type and feature class :(18:40
lambdaylisitsyn: why don't you like demangling stuffs? cause its compiler dependent?18:42
@lisitsynlambday: slow and non-portable18:43
@lisitsynokay got to go18:45
lambdaylisitsyn: alright.. thanks man18:45
lambdaybtw +1 for the naming convention :D18:45
lambdayfor shogun :D18:45
@lisitsynhaha18:46
lambdaybtw found this place in Bangalore - thought I should share - http://image6.buzzintown.com/files/venue/upload_8000/upload_original/373327-shogun-malgudi-dhaba.PNG18:49
lambdaywent to the place - nice food :)18:49
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has quit [Quit: PirosB3]19:23
-!- txomon|home [~txomon@unaffiliated/txomon] has quit [Ping timeout: 245 seconds]19:28
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 246 seconds]19:29
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has joined #shogun19:34
-!- txomon|home [~txomon@unaffiliated/txomon] has joined #shogun19:41
-!- shogun-notifier- [~irker@7nn.de] has quit [Quit: transmission timeout]19:58
-!- HeikoS [~heiko@nat-204-182.internal.eduroam.ucl.ac.uk] has quit [Quit: Leaving.]20:09
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has joined #shogun21:41
-!- PirosB3 [~pirosb3@ip-66.net-81-220-115.brest.rev.numericable.fr] has quit [Quit: PirosB3]22:20
-!- lambday [67157f4f@gateway/web/freenode/ip.103.21.127.79] has quit [Ping timeout: 246 seconds]23:33
--- Log closed Wed Oct 15 00:00:25 2014

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