VITAS changed the topic of #spacedock to: Problems?: https://github.com/KSP-SpaceDock/SpaceDock/issues | Matrix/Riot Chat: https://im.52k.de +spacedock:52k.de Feel free to ask for help, we only bite a little bit! | If you want to help, please check https://github.com/KSP-SpaceDock/SpaceDock-Backend/issues/5 :) | <VITAS> inet users have the attentionspan of a squirrel...
<Darklight[m]> Changed the script so I don't duplicate code anymore, and now the output is actually live
<Darklight[m]> I'll eat breakfast and make it respond to PR's too
<DasSkelett[m]> I for one go to bed now and respond to nobody anymore :P
<DasSkelett[m]> #295 seems to work very well now <span class="d-mention d-user">HebaruSan</span> , but I still have to look closer at the code. I'm looking forward to see how the chart looks for some mods on production, will be quite interesting I think. Even though there are some discrepancies in the historical data, but I think all in all it evens out somewhat and won't be _that_ far off.
HebaruSan[m] has joined #spacedock
<HebaruSan[m]> 👍 Yeah I think for most mods, they're not going to have multiple different versions downloaded in any given hour
<Darklight[m]> Now I need to figure out how github does PR's (although I have you two added as remotes already, so it won't be a big deal)
<Darklight[m]> I guess I'll open up a PR from my side and see what happens
<DasSkelett[m]> `git fetch origin pull/ID/head && git checkout origin pull/ID/head` might or might not work
<Darklight[m]> I do a checkout on the commit sha so that part should be fine
<Darklight[m]> But I'll just make it bulletproof
<Darklight[m]> Although, it does run the spacedock code and you could in theory open up a malicious PR
<Darklight[m]> It's in a VM though
<HebaruSan[m]> What if we push to two different PRs at the same time, is it going to interfere with itself?
<Darklight[m]> I will add locking in a bit, in the end though the answer will be "no"
<HebaruSan[m]> Oh btw on #295, ideally the bar colors would match the legend of the previous over-time graph, but I could not find a way to make that happen with chart.js. Either all the bars are the same color, or they all share the same x-axis label. If you can figure that out. let me know.
<HebaruSan[m]> Oh btw on #295, ideally the bar colors would match the legend of the previous over-time graph, but I could not find a way to make that happen with chart.js. Either all the bars are the same color, or they all share the same x-axis label. If you can figure that out, let me know.
<Darklight[m]> After a fair bit of jiggering I am pretty confident it is all working correctly, also using ``flock`` means I can do it one at a time
DasSkelett[m] has quit [Quit: Idle timeout reached: 10800s]
HebaruSan[m] has quit [Quit: Idle timeout reached: 10800s]
Darklight[m] has quit [Quit: Idle timeout reached: 10800s]
RmiChevallier[m] has joined #spacedock
<RmiChevallier[m]> Hey! I don't really know if this question belongs to this discord... So sorry if it doesn't! I'm a french engineering student and I'm trying to use KSP for simulation purposes. I try to use it to visualize the results of various simulations of space maneuvers. I need to be able to set the roll, pitch ,yaw, speed and position of my ship. I tried to find a way to use kRPC or kOS to do so, but I didn't find any options to do so... I
<RmiChevallier[m]> want to be able to "teleport" my ship in the right position and attitude. Can anyone help me, or tell me where I can find any help about this topic? Thx!!
VITAS[m] has joined #spacedock
<VITAS[m]> discord doesnt belong :P
<RmiChevallier[m]> Shit :/
<RmiChevallier[m]> Sry
<VITAS[m]> but you do
<VITAS[m]> ;)
<VITAS[m]> you can use telemachus
<VITAS[m]> it has an http api
<VITAS[m]> to control and monitor vessels
<VITAS[m]> Bart are you here?
DasSkelett[m] has joined #spacedock
<VITAS[m]> bart might help he is from belgium and does work on satelite constructions
<DasSkelett[m]> Check out the forum threads of these mods too, that's where all the other users of them hand out. They might even have own Disord servers.
<VITAS[m]> lie real ones
<VITAS[m]> also wheres my french when i dneed it?
<VITAS[m]> 5 years and hardly any left
<RmiChevallier[m]> > https://krpc.github.io/krpc/
<RmiChevallier[m]> <span class="d-mention d-user">DasSkelett</span> I read the docs firt, but I found more the "putthe throttle at full speed" type of command than the "set the speed at 200m/s :/
Darklight[m] has joined #spacedock
<Darklight[m]> <span class="d-mention d-user">Rémi Chevallier</span> The stock game has "teleport" options in game, the debug menu
DasSkelett[m] has quit [Client Quit]
<RmiChevallier[m]> yupe, but no roll control
Darklight[m] has quit [Client Quit]
DasSkelett[m] has joined #spacedock
<DasSkelett[m]> <span class="d-mention d-user">Rémi Chevallier</span> I guess you have to write some logic to put throttle up until you reach the desired speed, then cut the engines. There even is a kOS standard lib that might have pre-built logic for this.
<RmiChevallier[m]> And I don't find how to use these options from a program, from "outside" the game
Darklight[m] has joined #spacedock
<Darklight[m]> If you've got programming experience I could give you a really simple setup that should work
<RmiChevallier[m]> I am not a senior dev, but I can use C, C++, java, caml and python
<Darklight[m]> This is C#, so similar to java that you shouldn't have too much of a problem
<VITAS[m]> https://forum.kerbalspaceprogram.com/index.php?/topic/179887-telemachus-reborn-ksp-v15x-17x/
<VITAS[m]> might work with newer versions too dont know
<Darklight[m]> It sounds like they want a network version of hyperedit thoug
<Darklight[m]> It sounds like they want a network version of hyperedit though
<Darklight[m]> Telemechus prints data to a webpage iirc, and kOS is more autopilot scripting iirc
<VITAS[m]> ok thats more your domaind Darklight
<VITAS[m]> -d
<VITAS[m]> but maybe good for getting result data
<RmiChevallier[m]> <span class="d-mention d-user">VITAS</span> telemechus seems to be some kind of data
<RmiChevallier[m]> data getter *
<Darklight[m]> It is
<RmiChevallier[m]> am I right?
<Darklight[m]> For reference I'm the darkmultiplayer guy so I'm kinda used to network messages and positioning 😛
<RmiChevallier[m]> like the DMP guy??
<Darklight[m]> ye
<VITAS[m]> Rémi Chevallier: telemachus is an http api for ksp. you can get data and also send steering commands
<VITAS[m]> dmp is Darklight multiplayer
<RmiChevallier[m]> wow
<VITAS[m]> and yes we are all the guys in here :D
<RmiChevallier[m]> amazing job guys
<VITAS[m]> Darklight is dmp, DasSkelett and HebaruSan are CKAN and i do SpaceDock
<VITAS[m]> anyways want to "cheat" a craft into position OR steer it?
<RmiChevallier[m]> Ok, so I'm doing an internship for a Nasa guy
<RmiChevallier[m]> He wants me to use KSP to visualise the results of various simulations they do on matlab
<VITAS[m]> so first position then steer?
<RmiChevallier[m]> So i'm trying to "cheat" the craft into position more than steering it
<VITAS[m]> hyperedit?
<VITAS[m]> you can enter the data in ksp manualy
<Darklight[m]> It needs to be networked
<VITAS[m]> why?
<Darklight[m]> I can probably have this mocked up in like half an hour and then it's in your hands 😛
<VITAS[m]> ah thats why
<VITAS[m]> you want to play
<Darklight[m]> In any case, reading from network or reading from file is easy enough
<VITAS[m]> :D
<VITAS[m]> maybe Rémi Chevallier can give you a sample file as input
<VITAS[m]> also greetings to that nasa dude
<RmiChevallier[m]> I don't have any yet, I have controlers designed on matlab, and I made a compiler to translate it into C
<VITAS[m]> you both work it out
<VITAS[m]> maybe cvs
<RmiChevallier[m]> And I am in the early research part of the beginning of the internship :/
<VITAS[m]> lol and you just wanted to research the posiility
<VITAS[m]> and now Darklight jumps on it and offers custom code
<VITAS[m]> :D
<RmiChevallier[m]> I'm so glad I found this discord tho xDD
<Darklight[m]> It's easy enough and I'm bored, I'm only putting like maybe half an hour into it 😛
<VITAS[m]> hes like that a nice guy
<VITAS[m]> and sometimes a grumpy farmer
<VITAS[m]> :P
<RmiChevallier[m]> thanks guys 😄
<VITAS[m]> i continue to connect two 56k modems together because i want to :D
<VITAS[m]> you two work it out :)
DasSkelett[m] has quit [Quit: Client limit exceeded: 6]
Darklight[m] has quit [Quit: Client limit exceeded: 6]
RmiChevallier[m] has quit [Quit: Client limit exceeded: 6]
Darklight[m] has joined #spacedock
<Darklight[m]> https://github.com/godarklight/RemoteHyperedit going to go to bed, but <span class="d-mention d-user">Rémi Chevallier</span> this is the general gist of it, I'm actually working tomorrow so on a time limit now 😛
<Darklight[m]> In any case TIME (numberhere) works
KineticSloth8StoneBlue[m has joined #spacedock
<Darklight[m]> Next step is to parse the ORBIT and POS commands into a VesselUpdate
<Darklight[m]> I had my fun though 😛
<Darklight[m]> Kinetic they want to go TO KSP, not FROM 😉
<VITAS[m]> i think both
<VITAS[m]> they need the results
<VITAS[m]> but as we established allready: both suggestions can control the craft but not cheat it into position like your approach can
<Darklight[m]> It's not entirely finished but it isn't too far off, it needs the string command -> VesselUpdate parsing, and the "main loop" that sequences the updates and decides when to apply them
<Darklight[m]> Also normally I'd use a binary protocol, but I figured string was more up their alley if it's coming from matlab, I've never used matlab though
KineticSloth8StoneBlue[m has quit [Quit: Client limit exceeded: 6]
RmiChevallier[m] has joined #spacedock
<RmiChevallier[m]> Thanks mates you re awesome 😍
<VITAS[m]> thats whats special about the ksp community :)
Darklight[m] has quit [Quit: Client limit exceeded: 6]
Bart[m] has joined #spacedock
<Bart[m]> Determining attitude through kRPC isn't that difficult, it's KSP's awful coordinate system that causes issues there 😛
RmiChevallier[m] has quit [Quit: Idle timeout reached: 10800s]
HebaruSan[m] has joined #spacedock
<HebaruSan[m]> > con tain er?
<HebaruSan[m]> <span class="d-mention d-user">Darklight</span> In my day, we isolated our environments with `mkdir`
<VITAS[m]> not so grandpa HebaruSan talking to little Darklight :P
Bart[m] has quit [Quit: Client limit exceeded: 6]
<HebaruSan[m]> If a mod author deletes a release and re-uploads it, how long will the cache still serve the old file?
<VITAS[m]> depends on the header flags set by spacedock and apache webserver
<VITAS[m]> i think reuploading gives the fiel a new name anyways
<HebaruSan[m]> Nope, same user, same id, same name, same friendly_version -> same file name
<HebaruSan[m]> And definitely same URL, which is probably what actually matters
<VITAS[m]> filename ins torage should change shouldnt it?
<VITAS[m]> as i said even for the same file url and everything: i cant say depends on the stuff before the cache and what it sets as header and caches itself
<HebaruSan[m]> The filename depends only on those factors I listed above
<HebaruSan[m]> None of which change
<VITAS[m]> i would say test it
<HebaruSan[m]> Why?
<VITAS[m]> and check what apache webserver is caching and setting as header
<HebaruSan[m]> Ahh
DasSkelett[m] has joined #spacedock
<DasSkelett[m]> Last time I checked the cache for the storage was set to last 30 days. The traffic server _does_ seem to recheck if the file is still up to date every now and then, however I'm unable to find out how often.
<DasSkelett[m]> It's definitely not minutes, more like hours.
<VITAS[m]> im sure i can set the recheck intervals
<HebaruSan[m]> OK, that might be our explanation then. The latest PersistentThrust version got uploaded, indexed in CKAN, deleted, and re-uploaded within 15 minutes. So the cache would not have checked for the replaced file for a while after that.
<VITAS[m]> but we have to balance the impact of more frequent rechecking vs the amount of instaces someone replaces the exact url with different content
<VITAS[m]> also remember we have double caching
<VITAS[m]> ocne by apache webserver and once by ats
<HebaruSan[m]> Right, I'm not necessarily saying anything needs to change, just trying to pin down what happened
<VITAS[m]> you can also control ats behaviour by setting header flags in apache webserver runnign on the sd hosts itself
<VITAS[m]> if delays could caus eproblems we should notify the ones affected (e.g. uploader) or change the url each tiem a file is uploaded?
<HebaruSan[m]> Changing the URL might be something worth investigating
<HebaruSan[m]> But also potentially disruptive if backwards compatibility wasn't preserved
<VITAS[m]> ^maybe but its a different file
<VITAS[m]> so its sort of logical
<HebaruSan[m]> Agreed, sort of a write-only storage system
<HebaruSan[m]> Err, write-once
<HebaruSan[m]> Like Plan 9 had
<VITAS[m]> you can delete the old file but you cant write a different fiel with the same name
<VITAS[m]> you could however allow to write the same file with the same name if that is ever the case
<HebaruSan[m]> Right, I think that's commonly done by indexing inodes according to a hash, which also achieves de-duping for free
<VITAS[m]> easy as doing somethign with md5 of the file in the name or path
<HebaruSan[m]> Well, one note on that, hashing a 1.2 GB file is very CPU intensive
<HebaruSan[m]> Or just slow in general
<VITAS[m]> right
<HebaruSan[m]> CKAN has learned this lesson the hard way
<VITAS[m]> im sure you have a solution :)
<HebaruSan[m]> Maybe put ModVersion.id somewhere, I think it's a new row every time
Darklight[m] has joined #spacedock
<Darklight[m]> When I updated DMPUpdater the change was instant, ATS did not cache it
<HebaruSan[m]> URL? I don't see it https://spacedock.info/search?query=DMP
<HebaruSan[m]> And there may be a dependency here on patterns of downloads. If there had not been a download of that version in X number of hours...
<Darklight[m]> d-mp.org/downloads
<HebaruSan[m]> Oh, it's not on SD?
<Darklight[m]> It's on the same box and still on the same ATS
<VITAS[m]> everythign i ost goes trough ats
<Darklight[m]> But the config likely doesn't have messed with tags
<VITAS[m]> remember theres apache webserver in rev proxy mode in between gunicorn and ats
<HebaruSan[m]> Yeah I would rather stick to apples-to-apples tests rather than trying to puzzle through whatever intricacies are going on with all the various servers
<Darklight[m]> In my local testing ATS slowed things down :P
<Darklight[m]> But aaanyway
<Darklight[m]> I woke up an hour before my alarm, will be my first day back at work
<VITAS[m]> congrats
<VITAS[m]> ?
<VITAS[m]> time for sugar
DasSkelett[m] has quit [Quit: Client limit exceeded: 6]
HebaruSan[m] has quit [Quit: Client limit exceeded: 6]
Darklight[m] has quit [Quit: Idle timeout reached: 10800s]