ChanServ changed the topic of #mlpack to: "mlpack: a fast, flexible machine learning library :: We don't always respond instantly, but we will respond; please be patient :: Logs at http://www.mlpack.org/irc/
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< rcurtin[m]> zoq which one, zax? I hooked that up a few weeks ago---it's my old desktop, so I figured maybe it could continue to be useful somehow :)
< zoq> rcurtin[m]: Ahh, first time I noticed :)
< rcurtin[m]> :)
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< Aakash-kaushikAa> Hey, we were talking about changing the description of the models repo but that just got left behind, can i have your views on that ?
< Aakash-kaushikAa> If we should change it and what can it be ?
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
ImQ009 has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
yashwants19[m] has joined #mlpack
yashwants19[m] has left #mlpack []
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< shrit[m]> <zoq "shrit: On Windows, the auto-down"> It should not compile openblas on windows
< shrit[m]> It will only download packages if we are using windows
< shrit[m]> We do not know if the environment is set up correctly in order to be able to compile therefore you need to download, compile and install openblas manually
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< jonpsy[m]> say4n hi , would you mind reviewing the ZDT PR? Marcus is reviewing it, but extra eyes are never harmful :)
< say4n> Sure, I’ll try to go over it this coming week (probably later in the week).
< jonpsy[m]> It might be merged before the next week 🀭
< say4n> Haha, in that case I don’t think I will have the time to go through it before. :)
< jonpsy[m]> Okie
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< zoq> shrit[m]: But armadillo comes with an openblas package, why not use that? Currently the cmake step runs through, so as a user I would think okay I have everything, I can start bulding. But then I end-up with a bunch of errors.
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< Aakash-kaushikAa> Btw @zoq were you able to find out anything about that windows build failure ?
< zoq> Aakash-kaushikAa: Not yet, I wanted to see if I can "fix" the mlpack windows build first.
< zoq> Aakash-kaushikAa: I'll work on it today.
< rcurtin[m]> zoq: do you mean the windows CI build is failing on azure pipelines?
< rcurtin[m]> one of the tricky things about an Armadillo autodownloader is that we need to have LAPACK or BLAS available, or lots of mlpack techniques will not work
< rcurtin[m]> we handle this for the embedded case by autodownloading and compiling OpenBLAS, but on more typical systems it would be better to prefer that the user installs OpenBLAS (and even Armadillo) from the package manager
< zoq> No, I mean I I just installed MS Visual Studio to get the C++ compiler and cmake, downloaded mlpack and just hit cmake ..
< rcurtin[m]> ah, ok
< zoq> which runs without any errors since it downloads everything
< zoq> so from a user perspective I would think okay, my system is ready to build mlpack
< zoq> which is not true
< rcurtin[m]> agreed
< rcurtin[m]> in fact, what I think our configuration really needs to do is run Armadillo's CMake scripts, so that `armadillo_bits/config.hpp` gets properly configured; that will set `ARMA_USE_LAPACK`, `ARMA_USE_BLAS`, etc.
< rcurtin[m]> most likely, it would be tricky to use CMake to actually compile the Armadillo library, so we would then need to modify `config.hpp` such that `ARMA_USE_WRAPPER` was *not* set
< zoq> Right, or if we already know we can't do this on windows at least print an error.
< zoq> So a user is aware that the system is not ready.
< rcurtin[m]> exactly, I would say that if we can't find Armadillo, we should first check for OpenBLAS, and if that is not found, we should issue a configuration error (since we are not going to compile OpenBLAS by hand)
< rcurtin[m]> if OpenBLAS is found, but Armadillo is not, we can autodownload it, but we will need to take the steps I described above for configuration. also, we will need to ensure that the Armadillo sources actually get installed with an `install()` command, like we do for STB
< rcurtin[m]> (tagging shritin case he doesn't see the discussion above πŸ˜ƒ)
< zoq> Right, I'm not sure we run into a simlair issue on Linux, I guess if we can't build OpenBLAS we return an error as well instead of returning a corrupt cmake configuration.
< shrit[m]> So, the idea here is to print an error if we can find neither Armadillo or OpenBLAS right?
< shrit[m]> According to this, we want to add another check for OpenBLAS, just before downloading Armadillo in CMakeLists.txt
< shrit[m]> ?
< rcurtin[m]> yes, we need to ensure that BLAS or LAPACK (not necessarily OpenBLAS) is present on the system before trying to use the autodownloader for Armadillo
< rcurtin[m]> and once we use the autodownloader for Armadillo, we must configure it properly, and then also ensure that it installs properly
< rcurtin[m]> this is the danger of autodownloaders and why I originally really did not like them; they make it so that we have to solve the packaging problem ourselves, instead of relying on the user or the system to do it
< rcurtin[m]> but as we found over the years, users often are unable to set up a working development environment, so it almost seems like an autodownloader for dependencies is a requirement
< shrit[m]> I got the point
< shrit[m]> For installing armadillo, we can directly call the cmake from inside armadillo right?
< shrit[m]> but is it necessary?
< shrit[m]> if we can find BLAS or LAPACK, then we can link against them, and since Armadillo is only a wrapper there is no need to link againt it, do we need to install it on the user system?
< rcurtin[m]> yes, it is necessary, the Armadillo `CMakeLists.txt` is used to find dependencies and configure the `include/armadillo_bits/config.hpp` file; without that file being properly configured, various dependencies of Armadillo may not be used or may be used incorrectly
< Aakash-kaushikAa> Hey @zoq thanks for taking out time to look into it, i would also dig in more and if i am able to solve it i would post a message on the PR and here too so your time isn't wasted.
< rcurtin[m]> we need to install all dependencies on the user's system; otherwise if the user installs mlpack and tries to compile a program with `#include <mlpack/core.hpp>`, this will in turn try to include `<armadillo>`, and thus the sources must be installed on the system
mindlifter has quit [Remote host closed the connection]
< shrit[m]> I got the point, We need to add a generic installer in this case
< shrit[m]> I believe all of them have the same installation process, only boost might be different
< shrit[m]> However, boost is going to be removed, therefore, no issue then
mindlifter has joined #mlpack
< shrit[m]> I will try about a generic installer and open a pull request for it, in the meanwhile, I will add a check for BLAS before armadillo
< shrit[m]> * I will try to think about a generic installer and open a pull request for it, in the meanwhile, I will add a check for BLAS before armadillo
< rcurtin[m]> I think in general it's preferable to avoid using the autodownloader unless we are sure that it can work for the user (and it's ok to abort... we can just tell them to go install Armadillo using their package manager or something)
< shrit[m]> Otherwise, let us turn the autdownloader off by defaukt
< shrit[m]> *default
< shrit[m]> * Otherwise, let us turn the autdownloader off by default
< rcurtin[m]> but I'm not sure that is a good idea either, since STB isn't widely available
< rcurtin[m]> I'd be ok disabling the autodownloader, but we should update the documentation to ensure we have easy commands for users to type to install dependencies
< rcurtin[m]> and we should expect an increase in the number of users who were unable to figure out how to get CMake to configure correctly :)
< zoq> Aakash-kaushikAa: About the description, we can keep it simple e.g. "Models built with mlpack"?
< shrit[m]> Hmm, we do not have a best option in this case
< shrit[m]> We have several scenarios related to different users cases,
< shrit[m]> each one is easier if you belong to a specific case
< shrit[m]> it would be better to integrate STB, also if in the future we integreate xtensor, then there will be no need for STB
< shrit[m]> I mean integrate STB inside the source code directly as we do with catch.
< rcurtin[m]> that is a really bad idea actually
< rcurtin[m]> integrating other libraries that we depend on can give you awful conflicts
< rcurtin[m]> imagine we had some STB version in our codebase but the user had a different STB version installed on the system
< rcurtin[m]> then, if the code `#include <stb/stb_image_write.h>` appears somewhere... which one does it include?
< rcurtin[m]> it could include the wrong versions
< shrit[m]> I see the version issue, however I am not sure how many version have changed in STB and if they have a fast development
< rcurtin[m]> worse, if a user includes the version on their system, this may define some inclusion macro like `STB_IMAGE_WRITE_H`, and then when we went to include it in mlpack's code, the file may not actually include because the inclusoon macro is already set
< rcurtin[m]> thus the wrong version of STB may be available and this is kind of a disaster to debug this type of problem
< rcurtin[m]> for catch, we don't actually even distribute/install the catch sources---they are only ever used to build the tests; so the same problem cannot happen there
< rcurtin[m]> * worse, if a user includes the version on their system, this may define some inclusion macro like `STB_IMAGE_WRITE_H`, and then when we went to include it in mlpack's code, the file may not actually include because the inclusion macro is already set
< shrit[m]> Hmm,
< shrit[m]> Xtensor ? and remove STB?
mindlifter has quit [Remote host closed the connection]
< rcurtin[m]> well I mean you will hit the exact same issues with xtensor in exactly the same way if you have an autodownloader or try to incorporate the sources directly
< shrit[m]> I agree. let us turn off by default the autdownloader, I can not see any other solution
< rcurtin[m]> dependency management is a really difficult problem, and it's hard to get it right. I think our autodownloader does okay, but I would generally recommend to users that they try to just set their system up correctly so the autodownloader is not needed
< rcurtin[m]> yeah, perhaps turning it off is best---if dependencies aren't found, we can issue a nice error messsge to the user telling them how to install the dependencies, or how to turn the autodownloader on
mindlifter has joined #mlpack
< rcurtin[m]> zoq any thoughts? (not sure if I tagged the right user, there are four zoqs πŸ˜ƒ)
< shrit[m]> However, this will not resolve the installation problem if the user `used`the autodownloader
< shrit[m]> right?
< shrit[m]> it is not used then everything is fine
< rcurtin[m]> yes, if the user does use the autodownloader, we need to ensure the sources of that dependency get installed with `install()`. I am not sure if the code currently does this... I know it used to for STB
< zoq> The autodownloader is nice, but I think turning it off by default is a good idea, at the end of the cmake step we could list some solutions how to install the nessary packages and also point out possible issues.
< shrit[m]> Also, if we have to install, then we need to pay attention at the destination, especially if we are cross compiling, in this case, we need to install the deps in the sysroot file system rather than the root filessytem
< rcurtin[m]> that's up to the user---they have to set CMAKE_INSTALL_PREFIX correctly
< rcurtin[m]> we can just install all dependencies in the exact same way we install mlpack
< zoq> I guess as long as we provide enough information to the user it's fine.
< shrit[m]> Agreed, we need to update docs about the installation process
< shrit[m]> The current code does not use `install()` for any dependency
< rcurtin[m]> sorry that I missed that during review; I should have noticed
< rcurtin[m]> this was the old STB installation code that you can adapt:
< shrit[m]> I see, was the `CMAKE_INSTALL_INCLUDEDIR` equal to the `CMAKE_INSTALL_PREFIX`?
< rcurtin[m]> that's an auxiliary variable that is set automatically by CMake using the value of `CMAKE_INSTALL_PREFIX`
< shrit[m]> πŸ‘οΈ
< shrit[m]> I will open a pull request for this either this night or tomorrow
< rcurtin[m]> sounds good, and thanks for looking into it... dependencies are hard :(
< rcurtin[m]> (which is a compelling reason to get rid of them! πŸ˜ƒ)
< shrit[m]> 1) update the check before armadillo with BLAS,
< shrit[m]> 2) Turn off the auto downloader
< shrit[m]> 3) add the install step for each library
< shrit[m]> taking notes
< shrit[m]> I will add the install step inside the autdownloader, I think it is fine there unless if you have any other location
< Aakash-kaushikAa> @zoq that seems right, we can write "Models built with mlpack" we can vote on it and if you have permissions can you change it ?
< rcurtin[m]> shrit: that should be a fine place to put the `install()` step; you may want to use the variant of `install()` that installs a directory, and maybe add an extra parameter to the autodownloader function that specifies the name of the directory that should be installed
< rcurtin[m]> with Armadillo we need to install `include/armadillo_bits/`; with Boost I think the `boost/` directory right inside the root of the tarball is all the header files (which is what we need)
mindlifter has quit [Remote host closed the connection]
< rcurtin[m]> ok, got the hard drive replaced in pretzel... very happy that at some point I decided RAID was a good idea everywhere :)
< shrit[m]> I was once thinking about whether the usage of RAID in day to day work is a good idea or not, but never went further in trying to have RAID or anything similar.
mindlifter has joined #mlpack
< rcurtin[m]> personally I tend to build computers using whatever hard drives I happen to have sitting around, and then I run them for years, so it is completely inevitable that drives start failing left and right :)
< rcurtin[m]> I have three failed drives on my desk from the last couple months πŸ˜ƒ
< zoq> Aakash-kaushikAa: I like the idea, do you like to open an issue to vote on it?
< rcurtin[m]> manufacturing dates for those are between 2009 and 2012... I guess they lived a good life :)
< zoq> Aakash-kaushikAa: Easy to change afterwards.
< shrit[m]> Well, a decent life for a harddrive,
< shrit[m]> Hope that we do will not have any recent shortage in harddrive as the way with graphic cards
< rcurtin[m]> if we do it's ok! I have a whole box of 100GB-500GB hard drives from the early 2000s πŸ˜‚
< rcurtin[m]> just need to dig out some IDE controllers...
< zoq> I only use RAID for some systems, in some cases like for some jenkins build nodes, it's not a docker so there is no data that is lost in case of a drive failure.
< shrit[m]> Where did you find the box? I do not think we have bought them one by one
< zoq> *it's a docker so
< rcurtin[m]> oh, I just mean I have a box in storage of drives I've collected from various systems over the years. most likely half of them are dead :)
< rcurtin[m]> zoq: yeah, in that case it's overkill; very easy to set up a jenkins build node again if it goes down
< Aakash-kaushikAa> Yup i will open a PR
< Aakash-kaushikAa> Issue i mean.
< zoq> Aakash-kaushikAa: Great, thanks!
< shrit[m]> Yeah, agreed, but do you use a RAID on your work machine?
< shrit[m]> I mean if my harddrive fails, it will be a pure catastrophe
< zoq> Personally I do and have a backup of my home folder as well.
< shrit[m]> I used to do backups manually using `rsync`, but you need to keep it updated, which is very hard
< rcurtin[m]> same; actually everything on mlpack.org in `/home` is synced to pretzel (the system I just fixed) nightly via a cron job with rsync... I agree, very hard to keep things up to date otherwise
< rcurtin[m]> I generally use RAID on systems I work on, but also I make sure that any code I am working on is in git and pushed to other places too
< shrit[m]> In the past, It was impossible to use a corn job, since the workstation was inside the lab and the backup machine was in my home. it was `rsync` over ssh with a strange tunneling and need to type 3 time the password to start sync
mindlifter has quit [Remote host closed the connection]
< shrit[m]> now everything is here, but I am too lazy to plug everything around
< zoq> hehe, that's why I use ssh-keys for basically everything
< shrit[m]> yeah but the keys are protected with passwords,
mindlifter has joined #mlpack
< zoq> shrit[m]: Ahh, okay
< rcurtin[m]> exactly, actually the situation is kind of the same here... if I remember right I used ssh keys with no passphrase, but the rsync is run as a user who has extremely limited permissions
< rcurtin[m]> ok let's see if this works... I've never posted a video to matrix before
< rcurtin[m]> thinking of failing hard drives, listen to this one that clicks on startup... it's been doing that for years and somehow it still boots πŸ˜ƒ
< rcurtin[m]> at this point I'm interested to see how long it will last like this
< shrit[m]> oh, I can hear the clicks
< shrit[m]> but it would not clicks later
< shrit[m]> only at the boot
< rcurtin[m]> yeah, only at boot... I figure I'll just wait until one day it doesn't boot anymore, and then figure it out :)
< shrit[m]> interesting, but how much time do you need to turn on the machine, I mean, I never turn off this machine, and if the power cuts for any reason, it will boot automatically and goes back to the original state
< shrit[m]> * interesting, but how much time do you need to turn on the machine, I mean, I never turn off my machine, and if the power cuts for any reason, it will boot automatically and goes back to the original state
< shrit[m]> if it boots twice a year, it might lives as long as possible
< rcurtin[m]> yeah, exactly, I think twice a year is about right :)
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< rcurtin[m]> I got some gopro footage of the racing yesterday: https://www.youtube.com/channel/UC5dgXbNizGXnDzXlffy1j2A
< zoq> Did you check anything here - https://youtu.be/vyDYihZbwIY?t=277 ?
< NippunSharmaNipp> wow!! that looks like fun
< rcurtin[m]> that is getting my head out of the way to reduce drag... I'm not clear if it makes any real difference but hey, why not, maybe it helps...
< NippunSharmaNipp> i have never seen or driven a kart before but they are going pretty fast.
< NippunSharmaNipp> what's the top speed that you can hit in one of these?
< rcurtin[m]> those ones are maybe 50-55mph? there are also more powerful karts, like shifter karts, which go way faster, up to even 120mph or so: https://www.youtube.com/watch?v=4hap48zdDKs
< zoq> Hm, so in the last video you never finished it, it was just over because of another red flag?
< rcurtin[m]> yeah, they just had us pull off and that was it. I would like to hope normally there is not that much carnage in these races... I'll find out next month I guess
< zoq> Looked really close to me until the mistake, especially since you started as 22nd.
mindlifter has quit [Remote host closed the connection]
< rcurtin[m]> yeah, my error, probably could have been 5th otherwise
mindlifter has joined #mlpack
< shrit[m]> Yeah, what happened at 9:00?
< shrit[m]> in the first video
< shrit[m]> your kart seem like it does not have a gear
ImQ009 has quit [Quit: Leaving]
mindlifter1 has joined #mlpack
mindlifter has quit [Ping timeout: 260 seconds]
< jonpsy[m]> <rcurtin[m] "I got some gopro footage of the "> Looks super fun! Although some of your drifts gave me a mini heart attack. Are accidents common in this game?
mindlifter1 has quit [Remote host closed the connection]
mindlifter has joined #mlpack
heisenbuugGopiMT has joined #mlpack
< heisenbuugGopiMT> Wow, that was amazing
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< Aakash-kaushikAa> Damn @rcurtin this is so cool, I mean that feeling to overtake them, haha.
< Aakash-kaushikAa> Hey everyone, so this is like a simple [https://github.com/mlpack/models/issues/58](issue) to decide the description for the models repo, it will be great if you can give your suggestions there.
< Aakash-kaushikAa> * Hey everyone, so this is like a simple [issue](https://github.com/mlpack/models/issues/58) to decide the description for the models repo, it will be great if you can give your suggestions there.
< Aakash-kaushikAa> * Hey everyone, so this is like a simple issue:(https://github.com/mlpack/models/issues/58) to decide the description for the models repo, it will be great if you can give your suggestions there.
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
mindlifter has quit [Remote host closed the connection]
mindlifter has joined #mlpack
< rcurtin[m]> jonpsy: yesterday there were a lot of accidents... usually people are a little less aggressive. luckily, safety gear is pretty good
< rcurtin[m]> Aakash-kaushik (Aakash kaushik): thanks for opening that issue! πŸ‘οΈ