| --- Log opened Fri Sep 25 00:00:34 2015 | ||
| -!- besser82 [~besser82@fedora/besser82] has quit [Ping timeout: 246 seconds] | 02:10 | |
| -!- besser82 [~besser82@fedora/besser82] has joined #shogun | 02:11 | |
| -!- mode/#shogun [+o besser82] by ChanServ | 02:11 | |
| -!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 02:21 | |
| -!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 240 seconds] | 02:25 | |
| -!- HeikoS [~heiko@144.82.196.166] has joined #shogun | 11:49 | |
| -!- mode/#shogun [+o HeikoS] by ChanServ | 11:49 | |
| @HeikoS | lisitsyn: hi | 12:59 | 
|---|---|---|
| lisitsyn | HeikoS: hey | 12:59 | 
| @HeikoS | lisitsyn: have a question for you | 12:59 | 
| @HeikoS | problem: I have new algorithms and would like to put them online | 13:00 | 
| lisitsyn | aha | 13:00 | 
| @HeikoS | problem: shogun is too big and nobody can be asked to install it | 13:00 | 
| @HeikoS | so I cannot put it in there, no point | 13:00 | 
| @HeikoS | so I am thinking of rather writing micro libraries | 13:00 | 
| lisitsyn | hmm yeah | 13:00 | 
| @HeikoS | that are super super easy to install | 13:00 | 
| @HeikoS | and use | 13:00 | 
| @HeikoS | BUT | 13:00 | 
| lisitsyn | maybe this makes sense | 13:00 | 
| @HeikoS | I want to allow people to use them from different languages | 13:01 | 
| @HeikoS | just like shogun | 13:01 | 
| @HeikoS | since nobody uses C | 13:01 | 
| @HeikoS | or can be asked | 13:01 | 
| @HeikoS | how can I do this nicely? | 13:01 | 
| @HeikoS | what is your thoguhts on this? | 13:02 | 
| lisitsyn | what langs do you want? | 13:02 | 
| @HeikoS | same as Shogun more or less | 13:02 | 
| @HeikoS | in order: python, R, Matlab, Java | 13:02 | 
| @HeikoS | but I dont want to build the interfaces by hand | 13:02 | 
| @HeikoS | the thing is | 13:03 | 
| @HeikoS | interface does not need to be object oriented | 13:03 | 
| @HeikoS | since the mini lib is very small | 13:03 | 
| @HeikoS | just some functions with couple of parameters to be called | 13:03 | 
| @HeikoS | that can be embedded into something else | 13:03 | 
| lisitsyn | ok I see | 13:03 | 
| lisitsyn | well if you need that many langs | 13:03 | 
| lisitsyn | you'd need swig probably | 13:03 | 
| @HeikoS | lisitsyn: ok say I used swig | 13:03 | 
| lisitsyn | but if you have just a few functions | 13:03 | 
| lisitsyn | we can have something on our own | 13:04 | 
| @HeikoS | what do you mean? | 13:04 | 
| lisitsyn | well matlab C bindings, python C bindings | 13:04 | 
| @HeikoS | I see | 13:04 | 
| @HeikoS | how realistic is a mini version of a meta library that exposes simple C functions via swig? | 13:05 | 
| lisitsyn | well it sounds pretty easy | 13:05 | 
| lisitsyn | HeikoS: I would design it like that: | 13:06 | 
| lisitsyn | swig - C API - C++ code | 13:06 | 
| @HeikoS | ok | 13:07 | 
| @HeikoS | and the objects passed would just be vectors and matrices | 13:08 | 
| @HeikoS | and basic types | 13:08 | 
| @HeikoS | lisitsyn: how much sense do you think it makes to put this into a meta library for exactly that use? | 13:09 | 
| lisitsyn | I see some problem it would become shogun | 13:09 | 
| lisitsyn | :D | 13:09 | 
| lisitsyn | I am thinking how to avoid that | 13:09 | 
| @HeikoS | lisitsyn: if Shogun was modular | 13:10 | 
| @HeikoS | then I would not have to do it | 13:10 | 
| lisitsyn | modular like? | 13:10 | 
| @HeikoS | but right now it makes no sense for me to put stuff in --- to hard to use | 13:10 | 
| @HeikoS | a person quickly wants to use my algorithm | 13:10 | 
| @HeikoS | takes < 5 mins to get it running | 13:10 | 
| lisitsyn | ok I see | 13:10 | 
| @HeikoS | or another scenario | 13:12 | 
| @HeikoS | someone wants to use the code in a ML toolbox or another project | 13:12 | 
| @HeikoS | takes just a few minutes to integrate it | 13:12 | 
| @HeikoS | just like say eigen | 13:12 | 
| @HeikoS | or scikit learn | 13:12 | 
| @HeikoS | mini libraries with a particular purpose and easy to use | 13:13 | 
| lisitsyn | HeikoS: ok let me think | 13:18 | 
| lisitsyn | HeikoS: will you be here in a hour? | 13:18 | 
| @HeikoS | yes | 13:18 | 
| lisitsyn | ok I'll call you then :) | 13:19 | 
| @HeikoS | lisitsyn: cool! | 13:19 | 
| lisitsyn | I'll get to work now | 13:19 | 
| -!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 13:26 | |
| -!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 246 seconds] | 13:31 | |
| -!- uchihaitachi08 [~sameer@203.110.243.23] has joined #shogun | 13:33 | |
| @HeikoS | lisitsyn: heya | 14:39 | 
| lisitsyn | HeikoS: hey | 14:40 | 
| lisitsyn | yeah I am back :) | 14:40 | 
| lisitsyn | ok lets discuss the stuff | 14:40 | 
| @wiking | morning | 15:28 | 
| @wiking | :) | 15:28 | 
| * wiking in boston | 15:28 | |
| lisitsyn | hah | 15:38 | 
| lisitsyn | HeikoS: ping! :) | 15:38 | 
| lisitsyn | wiking: no moar kiev? | 15:38 | 
| @HeikoS | lisitsyn: yo! | 15:45 | 
| @HeikoS | wiking: morning! | 15:46 | 
| lisitsyn | HeikoS: I had other idea | 15:46 | 
| @HeikoS | shooot | 15:46 | 
| lisitsyn | do you think you gonna call these methods very often? | 15:47 | 
| lisitsyn | whatever methods you have | 15:47 | 
| lisitsyn | train? apply? | 15:47 | 
| @HeikoS | lisitsyn: not really | 15:47 | 
| @HeikoS | they are expensive | 15:47 | 
| @HeikoS | so a simple API that hides a more expensive machinery in the back | 15:47 | 
| @HeikoS | maybe some methods are called more often though | 15:47 | 
| @HeikoS | like update methods of estimators | 15:48 | 
| lisitsyn | what about data-driven api? | 15:48 | 
| @HeikoS | in fact | 15:49 | 
| @HeikoS | object oriented is best, it is for density estimation | 15:49 | 
| @HeikoS | so you learn an object and subsequently want to know its gradient many times | 15:49 | 
| @HeikoS | but explain what you ahve in mind | 15:49 | 
| lisitsyn | well say have | 15:50 | 
| lisitsyn | hmmm | 15:51 | 
| lisitsyn | let me find some example | 15:51 | 
| lisitsyn | ok nevermind | 15:51 | 
| lisitsyn | HeikoS: say you submit some json and get result | 15:51 | 
| @HeikoS | no it is much simpler | 15:52 | 
| lisitsyn | HeikoS: I mean this is supergeneral | 15:52 | 
| lisitsyn | no matter what library you have you gonna use it the same way | 15:52 | 
| lisitsyn | and change the json you submit | 15:52 | 
| lisitsyn | HeikoS: I may be unclear | 15:53 | 
| @HeikoS | lisitsyn: but I do build research software | 15:53 | 
| lisitsyn | yes | 15:54 | 
| @HeikoS | so it is more a library to be used in other code | 15:54 | 
| @HeikoS | not so much an application | 15:54 | 
| lisitsyn | yes | 15:54 | 
| lisitsyn | it is not that different | 15:54 | 
| lisitsyn | HeikoS: I don't mean you're going to do all the json/whatever stuff | 15:54 | 
| lisitsyn | I just mean we can define some api so that you pass some data | 15:55 | 
| lisitsyn | and get some data | 15:55 | 
| lisitsyn | not that you do some sequential steps | 15:55 | 
| @HeikoS | I see what you mean | 15:55 | 
| @HeikoS | but I would prefer a simple C-style or OO api to that | 15:55 | 
| @HeikoS | data driven is more interesting if developing tools that are going to be used in products | 15:56 | 
| @HeikoS | for me at least | 15:56 | 
| lisitsyn | HeikoS: well I am approaching that as the simplest thing | 15:57 | 
| lisitsyn | because this way we just need one swig method :D | 15:57 | 
| @HeikoS | lisitsyn: I see | 15:57 | 
| @HeikoS | but users need to put data into a json | 15:58 | 
| lisitsyn | HeikoS: I am thinking about other thing | 15:58 | 
| lisitsyn | like you provide how to access data | 15:58 | 
| lisitsyn | say you attach some object to existing matrix | 15:59 | 
| lisitsyn | and it has some unique id | 15:59 | 
| lisitsyn | e.g. | 15:59 | 
| lisitsyn | source = lib.source(your_feature_matrix) | 15:59 | 
| lisitsyn | lib.do(task=learn, method=your_fancy_gp, data=source) | 16:00 | 
| @HeikoS | I see | 16:01 | 
| @HeikoS | that is quite cool | 16:01 | 
| @HeikoS | lisitsyn: in fact, that would be good for Shogun | 16:01 | 
| @wiking | lisitsyn: yeah kiev is over :) | 16:02 | 
| lisitsyn | HeikoS: I am considering the case | 16:02 | 
| lisitsyn | you read remote file | 16:02 | 
| lisitsyn | or HDFS file | 16:02 | 
| @HeikoS | lisitsyn: I see | 16:05 | 
| @HeikoS | or passdata from memory? | 16:05 | 
| lisitsyn | HeikoS: yes | 16:25 | 
| lisitsyn | HeikoS: ok what about | 16:25 | 
| lisitsyn | your code is in C++ already? | 16:25 | 
| -!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has joined #shogun | 16:29 | |
| -!- shaochuan [~shaochuan@c-50-184-81-180.hsd1.ca.comcast.net] has quit [Ping timeout: 268 seconds] | 16:34 | |
| @HeikoS | yes | 18:12 | 
| -!- HeikoS [~heiko@144.82.196.166] has quit [Ping timeout: 272 seconds] | 18:49 | |
| -!- shaochuan [~shaochuan@2601:647:4603:2a70:8f8:25bb:cd3c:3875] has joined #shogun | 21:25 | |
| -!- shaochuan [~shaochuan@2601:647:4603:2a70:8f8:25bb:cd3c:3875] has quit [Ping timeout: 246 seconds] | 21:30 | |
| --- Log closed Sat Sep 26 00:00:36 2015 | ||
Generated by irclog2html.py 2.10.0 by Marius Gedminas - find it at mg.pov.lt!