Thomas changed the topic of #kspmodding to: Welcome to #kspmodding - the channel for discussing, and learning about, modding Kerbal Space Program. Code of Conduct: https://git.io/vSQh6 | Always provide logs (do !support for help). | *** PSA: https://kerbalspaceprogram.com/api/index.html | <Red5> Guy was asked for a log file, he gave this link: http://pastebin.com/wfVarZPf
<Virindi> because of the place the helmet is clipping
<Virindi> I see.
<taniwha> inside-out navball makes the math easy
<Virindi> makes sense
<taniwha> [LOG 09:12:55.032] [GuiTest] onLevelWasLoadedGUIReady MAINMENU
<taniwha> [LOG 09:12:55.042] ApplicationLauncher
<taniwha> [LOG 09:12:55.042] p:renderMode = ScreenSpaceCamera
<Virindi> oh?
<xShadowx|2> <3 iva mods, i only play iva :)
<Virindi> I am on a quest to fix all the iva
<xShadowx|2> including making iva?
<Virindi> yes but I am not the greatest artist.
Olympic1 has quit [Quit: Bye - Quit]
<xShadowx|2> i got a few notes i ran into while installing mods, for a wants/bugs list if you want em lol
<Virindi> sure
<xShadowx|2> atm im debating stabbing rpm and making an rpm screen with vertical bars, fill% = tankfull%
<Virindi> the "size 2" kerbal standard parts need rpm ivas :(
<xShadowx|2> cuz i wanna see tank % inside iva
<Virindi> what do you mean tank
<Virindi> you mean per tank?
<Virindi> resource transfer would be nice.
<Virindi> my goal is to make an rpm monitor software that does everything you would want to do, but in iva form
<xShadowx|2> ya, like say im in a jet, i have 4 tanks, i wanna see 4 vertical bars on a screen, alwys show border, but then fill vertically the same % as each tank
<Virindi> usually that isn't an issue in a jet now?
<Virindi> I mean now that engines drain evenly
<xShadowx|2> not the point, was an example
<Virindi> I see
<xShadowx|2> for all you know it could be RCS ;p
<Virindi> one thing I was thinking about was basically
<Virindi> a "parts data" section
<Virindi> so you could view all your solar panels and their status, all your tanks and their status, etc
<taniwha> Virindi: draining evenly will not save many designs
<xShadowx|2> and if one wants to get fancy, split each bar for tanks with multiple fuels in the tank, so |__| |__| |__| |_|_| <- that 4th tank has LF+O, other 3 are just LF
<Virindi> "per engine display" was one of the first things I wanted
<Virindi> so I could see if one engine was low on intake
<xShadowx|2> RF also has engine ignitions, engine ignitor mod died i think, RF basicly built the ignition bits in but didnt get the RPM screen for it heh
<Virindi> there's a whole page there for engine igniter, that's broken?
* xShadowx|2 hasnt checked it in like a year
<xShadowx|2> :)
<xShadowx|2> still, point of it being, RF page in RPM lol
<Virindi> meh my kerbals throw liquidfuel into lv-n engines like god intended
<xShadowx|2> or your engine data page, if RF installed, include ignitin info
<Virindi> could yeah
<Virindi> eventually that might be plugins
<Virindi> for now I am just messing around
<xShadowx|2> RPM pages are all plugins
<Virindi> no I mean plugins for my monitor software
<Virindi> to provide data for specific mods
<xShadowx|2> ya thats how RPM works, see vesselviewer and engine ignitor, etc, they each make their own tiny plugin, extend an RPM class, add display code, RPM sees it and loads
<Virindi> yes I know :)
<xShadowx|2> know whats sad? RPM and mods use like 5-10% of what RPM can do
<taniwha> Virindi: for your plugins: return AssemblyLoader.GetModulesImplementingInterface<T> (param_types);
<Virindi> what do you mean shadow, what stuff is missing
<xShadowx|2> moardv kept adding function / variables that could be used by the config files, nobody used :|
<Virindi> cool :)
<Virindi> aset uses a lot of them.
<xShadowx|2> and so many more not :| heh
<Virindi> I just added 3 in my pr for probecontrolroom+rpm
* xShadowx|2 replaces taniwha with var
<Virindi> I read through the huge variable list 3 times looking to see if I could find commnet
<Virindi> I could not find it
<taniwha> var is good, when used appropriately
<xShadowx|2> i avoid it, hurts readability and i see no value in it heh :|
<Virindi> yes var is for lazy people :D
<taniwha> which means xShadowx|2 should embrace var
<xShadowx|2> yes im lazy, but i have my dignity :P
<Virindi> I would like it if the editor ui automatically changed "var" to the correct type
<taniwha> for one thing: 95% of the time, you do not need to know the type
<taniwha> (the compiler does, but the compiler already knows, otherwise var would not work)
<xShadowx|2> also the egyptian braces......
* xShadowx|2 stabs
<taniwha> One True Brace Style :P
<Virindi> 100% of the time when I am reading code if I see someplace that says "var" I go "what type is that???" and I have to hover the expression and figure out the type.
<xShadowx|2> DIE EGYPTIAN BRACES!
<Virindi> "var" adds an extra step for me in reading code
<taniwha> Virindi: why do you even care what the type is?
<xShadowx|2> ya hense my comment on hurts readability heh
<Virindi> because if you don't know the type you don't know what it is doing!!
<taniwha> not true
<soundnfury> Virindi: clearly the right answer is to use C and shove OO and CLR where the sun don't shine
<Virindi> when reading code I build a mental map from the ground up of everything that is going on during execution
<taniwha> ah, yes, because in any OO language, you usually do /not/ know the type :)
<Virindi> yes, you DO.
<taniwha> not with inheritance
<Virindi> you know the DECLARED type
<Virindi> which MATTERS
<taniwha> usually not
<Virindi> because not all methods are virtual
<taniwha> but then, I guess that's 34 years of programming experience talking
<soundnfury> besides, good type-names are a form of documentation
<Virindi> argument from authority, nice :P
<taniwha> Virindi: reread that
<taniwha> particularly the first 4 words
<Virindi> huh
<taniwha> it's actually the opposite of argument from authority
<Virindi> you were not arguing the merits of var, instead you shifted to saying that your position was correct because of an external factor.
<taniwha> no, it's admitting that YMMV
<xShadowx|2> dostuff() { var k = kerbal.group; k. <backspace> <backspace> //find out what type group is }
<Virindi> anyway I personally do not operate in a "guess it works" fashion with code, it just bugs me and I can't stand it if I don't know exactly what is going on
<taniwha> also, I will admit that it is not clear that modules is an array of ConstructorInfo
<Virindi> that's why I hate magic features like linq.
<taniwha> er, actually, a list
<xShadowx|2> linq is cancer :P
<taniwha> linq is horrid
<taniwha> cancer is better than linq (many forms can be cured)
<Virindi> it took me a long time to get over hating the concept of a gc
<Virindi> and basically reading every article on the internet about the CLR
<xShadowx|2> you're right......i shouldnt insult cancer ;/
<taniwha> Virindi: what's CLR?
<Virindi> the .net CLR, common language runtime
<taniwha> oh, that
<Virindi> that is the name MS gives for the .net runtime engine.
<xShadowx|2> taniwha: to be fair.....linq can be cured too.....deleting thwe github repo....i done it once, boss got pissed :P
<taniwha> anyway, as I said: var is good if used appropraitely
<taniwha> particularly something like var foo = new SomeClass();
* xShadowx|2 burns var with fire
<taniwha> (do you /really/ need SomeClass to be in the same line twice?)
<Virindi> whenever something is magically handled for you and "don't worry noob we'll handle this" you get problems because inevitably you try to do something that isn't exactly what was anticipated, and the problems tend to be subtle and hard to find
<Virindi> yes why not :P
<taniwha> because it's hard to find the real info
<taniwha> and takes up too much horizontal space
<xShadowx|2> the only time id consider accually using var, is to save from using refs / using with reflection o.o
<Virindi> why not just write SomeClass foo = new SomeClass();
<Virindi> too much space..............
<taniwha> (especially when SomeClass is something like Dictionary<string, some.really.obnoxious.type.name>
<xShadowx|2> whatd be nice is SomeClass foo = new()
<taniwha> or two lots of really.obnoxious.type.name :P
<xShadowx|2> auto assume from new() means new SomeClass()
<Virindi> that is a much bigger problem in cpp with crazyshit template stuff in the standard libraries
<taniwha> Virindi: C++ at least has a usable typedef
<Virindi> in c# class names don't usually get ridiculous
<Virindi> sure, sometimes they do but not as often
<taniwha> (using shortname = something.obnoxious; does not quite work as expected in C#)
<taniwha> Virindi: try some of KSP's GameEvents :)
<Virindi> it's not like every dictionary is dictionary<<<<stuff>><<___aaa><________c><def><__foo><<....
<Virindi> like cpp
<Thomas> xShadowx|2: If you want to cure linq, delete that https://github.com/dotnet/corefx/tree/master/src/System.Linq *whistle*
<taniwha> Virindi: as I said, c++ has a good typedef
<xShadowx|2> Thomas: :)
<Virindi> c# could have used a real preprocessor, but I do understand why they didn't
<taniwha> Virindi: and cpp is the c preprocessor :P
<Virindi> define in cpp is the devil
<taniwha> nah, but again, used appropriately
<taniwha> (many have misused it)
<Virindi> more often misused than not :)
<xShadowx|2> Thomas: i wonder if theyd laugh if a PR were made to delete the file, comment "fixing a cancerous bug"
<Thomas> I once saw someone that hacked cpp onto C# with msbuild magic
<Thomas> xShadowx|2: Like the linux kernel pr that replaced the GPL with the microsoft eula? :P
<Virindi> most people seem to love linq, and use it whenever possible.
<xShadowx|2> >:)
<Virindi> like rather than doing a simple foreach they use linq
<Virindi> bugs me.
<taniwha> sed -e "s/@FULL_VERSION@/$full_version/" -e "s/@VERSION@/$version/" assembly/AssemblyInfo.in > assembly/AssemblyInfo.cs-
<taniwha> cmp -s assembly/AssemblyInfo.cs assembly/AssemblyInfo.cs- || mv assembly/AssemblyInfo.cs- assembly/AssemblyInfo.cs
<taniwha> rm -f assembly/*.cs-
<taniwha> Thomas: ^
<taniwha> (not cpp, but similar idea:)
<Thomas> ^^
<taniwha> I use similar in all my mods
<Thomas> Or roslyn powered code rewriting
<taniwha> full_version=`./tools/git-version-gen --prefix v .tarball-version`
<taniwha> [assembly: AssemblyVersion("5.7.1.6")]
<taniwha> [assembly: AssemblyInformationalVersionAttribute("5.7.1.6-4c6e-dirty")]
<Virindi> on a lot of my stuff I used to have a rule "must compile on vs2005 .net2", that cut out all the bogus crap :D
<Virindi> no linq, no extension methods (oh god whyyyy MS)
<taniwha> GMCSFLAGS := -optimize -warnaserror -debug
<Virindi> no var...
<taniwha> extension methods are handy
<Virindi> extension methods also violate the "I need to know what is happening just by reading it" principle.
<taniwha> living violates that principle
<Virindi> when extension methods are used I end up jumping back and forth all the time just to see what module things are defined in, it is terrible
<Virindi> if you are building something, the more knowledge you have about how it works, the less likely you are to make errors.
egg is now known as egg|zzz|egg
<taniwha> you need to just dig a little harder
<Virindi> code should not be only diggable by using intellisense
<Virindi> :P
<taniwha> anyway, on the readability argument, I prefer to read code, not type declarations
<xShadowx|2> or only readable by the creator :P
<taniwha> (one of the things I like about python :)
<Virindi> I want code to be as self-contained as possible. Disliking var and extension methods are both examples of that philosophy: I want the code to tell me everything it reasonably can about what it is doing
<Virindi> without making such a mess you can't read it at all
<xShadowx|2> too much to backread, at top - using newname = SomeClassIDontKnowHowToMakeNamesShorterThanFiftyCharacters;
<Virindi> which is a problem I do not personally have with type declarations
<xShadowx|2> alias :)
<Virindi> so if my choices are:
<Virindi> string x = abc;
<Virindi> StringHelpers.Foo(x); //hey, we actually know what is being called here!
<Virindi> x.Foo(); //extension, maybe?
<Virindi> the latter is way better for me
<xShadowx|2> ^ same
<xShadowx|2> it just comes down to code style
<xShadowx|2> me / Virindi like info
<Virindi> several times I have been reading code and been like wtf is that method, I guess MS added that recently? so I go google it, no hits, then go back to the code and click jump to def
<Virindi> and it is an extension
<Virindi> that is a terrible process that is easily avoided.
<taniwha> try doing it the other way :P
<xShadowx|2> extensions can add to a class after class is made though
<Virindi> huh
<taniwha> ie, assume it's a local extension
<xShadowx|2> like if i want to add a method to Part class
<Virindi> either way you must GUESS
<Virindi> that is my point
<Virindi> you need to hunt around JUST TO FIND THE SOURCE :)
<xShadowx|2> whatd be nice is cros assembly partial classes :P
<Virindi> and if you aren't using an IDE good luck, that will take you so much effort your source-reading concentration is fubar
<taniwha> find and grep are your friends
<taniwha> (and part of my source-reading concentration)
<Virindi> switching to another term and grepping for something is suboptimal
<Virindi> anywho yes it is style :)
<Virindi> and most people seem to share your philosophy not mine, I'm not sure exactly how to describe it in a way that doesn't sound bad for one side or the other, something like "precision" (me) vs. "general read" (you)
<Virindi> it's just a different way of understanding code
<Virindi> if I see a method call I have never seen before, I cannot continue until I have looked it up
<Virindi> that has advantages and disadvantages.
<taniwha> if you can't make at least a vague guess from the function name, then things are very wrong
<Virindi> I do not like making a "vague guess" because a "vague guess" leaves room for error.
<Virindi> vague guesses are where bugs happen
<taniwha> no, vague guesses are starting points for reading the code when you find it
<Virindi> well obviously you have to start somewhere, but I wouldn't consider code to be understood until I had gone to all the things referenced by a module I was trying to understand
<Virindi> var and extensions make it more difficult for this process
<Virindi> complex magic features like linq or gc also make the process more difficult.
<Virindi> it's kinda a vi-vs-emacs type argument :)
<taniwha> sounds like 1) you don't understand linq (not saying I do), 2) you're going too far if you're worrying about gc
<xShadowx|2> obviously you 2 ladies wont be changing your views XD so....coding styles!
<taniwha> (unless you're dealing with gc specific code)
<Virindi> I have encountered gc related issues NUMEROUS times in the past :)
<Virindi> hell I have a package that I was supporting for years that causes every version of mono which uses sgen, to segfault.....after a week
<taniwha> great, lost the new G-string (ukulele)
<Virindi> boehm, ran for literally multiple years without restart
<Virindi> MS .net, same
<Virindi> rock solid
<Virindi> but mono-sgen, segfault
<Virindi> it did not use any unsafe code either
<Virindi> the segfault was purely in the gc
<taniwha> bug in mono
<Virindi> yep
<taniwha> if your VM segfaults, the bug is in the VM, not the code it's running
<Virindi> not necessarily! :D
<taniwha> (may be an error in the code, but the bug is in the VM)
<Virindi> you could easily cause your vm to segfault with unsafe code, or by calling a native library which messes with the wrong memory
<taniwha> because the point of the VM is to /not/ crash when there's an error in the code
<taniwha> philosophy.
<taniwha> there's an exception to every rule
<taniwha> and one could argue that allowing such code in the first place is a bug :)
<Virindi> almost all the c# projects I have worked on have done what you would probably consider to be "unusual stuff", I don't do websites, it's all stuff like code injection, server daemons with 1000 threads, stuff like that
<Virindi> if people are just writing asp.net websites they will never have issues with the gc
<Virindi> I grant you that
<Virindi> and the vm is unlikely to segfault :)
<Virindi> I'm surprised unity is as stable as it is though.
<xShadowx|2> unity? stable? oh look a unicorn just farted :D
<Virindi> and what, you'd ban pinvoke? that would cut like 50% of possible projects from .net :P
<Virindi> not to mention com interop, the deep hell of .net
<xShadowx|2> deeper than writing classes in IL?:|
<Virindi> dunno, unity doesn't seem to randomly segfault all the time during play
<Virindi> yes because it is magic, duh :D
stratochief has quit [Ping timeout: 180 seconds]
<Virindi> magic with a million hidden gotchas is way worse than writing it yourself in a low level language
* xShadowx|2 has written classes in IL
<Virindi> what was your purpose for that?
<xShadowx|2> dynamic generated classes for a ksp mod :P
<Virindi> for what?
<xShadowx|2> the LS mod i been makin
<Virindi> so is it like, emit a couple opcodes then the rest is prewritten
<Virindi> I'm curious about why you needed to do it in particular :)
<taniwha> my understanding is ContractConfigurator does (or did) do that
<xShadowx|2> prewritten baseclass, dynamically extend,add fields, write new constructor, write a couple of methods, build it
<Virindi> taniwha: is that like, text.regularexpressions.regex style
<Virindi> like how it generates an IL method to implement your regex
<Virindi> with "compiled"
<taniwha> no idea
<taniwha> I haven't looked at CC's code, I just know that it caused grief for the KSP mod community last year
<taniwha> mind you, mostly because the mod community was doing things not-quite-right
<Virindi> oh?
<taniwha> yeah, the way CC did things caused calls to GetExportedTypes (iirc) to throw a not-implemented exception
<Virindi> ew
<xShadowx|2> Virindi: the why - needed to add kspfield dynamically at runtime to a partmodule, with names/values listed in a cfg, but kspfield has to be a part of the same object as the basefieldlist loading em :| so dynamic class, can cast to baseclass to do everything mod-extending wise so nobody has to worry of the dynamic class
<taniwha> the fix was to use GetTypes or somesuch
<taniwha> (don't remember now)
<Virindi> yes gettypes is like
<Virindi> I have encountered something like that with gettypes
<Virindi> like if it encounters a type it cannot read because it depends on a not-present assembly
<Virindi> gettypes throws but the exception contains a list of all the types it DID load
<Virindi> non-present assembly causing the jit to die unexpectedly was a huge source of noob errors in the last game I was modding
<Virindi> noobs would just use types from other plugins assuming the user had them
<Virindi> the jit would die in an unexpected place
<Virindi> and user complaints flooded in
<xShadowx|2> fun
<JPLRepo> The problem was using Reflection.Emit
<xShadowx|2> what game?
<Virindi> asheron's call
<Virindi> sometimes it took awhile to even figure out that the user was running plugin x but not plugin y
<JPLRepo> Using Reflection.Emit to create dynamic assemblies causes GetExportedTypes() to generate an exception.
<Virindi> well that sucks.
<Virindi> that doesn't sound like it should be.
<xShadowx|2> heh for my mod its all standalone, and any classes that another mod may extend, are basic classes, not derived, so wont run into that with this mod :P
<xShadowx|2> well....standalone > only unity + ksp, but i mean, you try using my mod without those 2 you got bigger issues o.O
<JPLRepo> as I recall it's a .NET 3.5 thing... I think. but stretching the memory now without going back and looking at it.
<Virindi> we dealt with non-present plugins by having wrapper functions which tested for the presence of the other plugin before calling into the real logic
<Virindi> like by scanning loaded assemblies (cached)
<xShadowx|2> just try/catch, log the exception, continue :P
<Virindi> hah no
<xShadowx|2> bugs later? "you shouldve used it with mod x"
<Virindi> nope nope :)
<xShadowx|2> dooo et
<Virindi> when the jit hit a type that could not be loaded
<Virindi> it simply silently stopped execution
<xShadowx|2> ah right
<Virindi> (because of how we were injected into the process through com)
<Virindi> the only way to deal with it would have been a global handler
<Virindi> but that was a different system
<Virindi> individual plugins can't EACH catch assembly load errors in place
<Virindi> so basically what you had was your code would work up to some point then just stop
<Virindi> with no exception
<Virindi> no idea why MS designed it to work that way
<xShadowx|2> unity closes randomly with no expection sometimes :|
<Virindi> in the official MS documentation they state "referenced assemblies must always be loadable"
<Virindi> it's like thanks...
<xShadowx|2> oh
<Virindi> I've had older versions of ksp segfault in native code
* xShadowx|2 has idea and runs away
<Virindi> when I googled it it was a general unity problem and nobody cared because it only happened in linux
* xShadowx|2 doesnt care about linux :)
<Virindi> of course the windows one is more stable :(
<Virindi> what is the deal with unity threading anyway
<xShadowx|2> all the cross platform crap is just shifting more bugs and effort onto a developer
<Virindi> I have heard it supposedly threads stuff but, code doesn't have to lock........so I guess all USER code is in the main thread, but that seems super useless then
<taniwha> xShadowx|2: that's ok, because Linux doesn't care about you :P
<xShadowx|2> vast majority of playerbase for even a crossplatform game has always been windows - sure linux/mac might expand to more people, up to you as a dev to consider if said playerbase count is worth the extra effort, i for onee dont :P
<taniwha> actually, now, Linux does have the lion's share, disguised as Android
<Virindi> but the small percentage of potential linux users represent a much bigger percentage of potential modders waiting to add value to your game for free
<taniwha> percentage of windows users that can code: tiny. percentage of linux users that can code: significant
<Virindi> yes :)
<Virindi> if you want a vibrant mod community it seems like linux is a good thing
<taniwha> a game supporting linux (at this stage) is an indirect investment
<taniwha> assuming your game is moddable
<Virindi> also the relatively small number of games available for linux means less competition for those users
<Virindi> but you'd better have a drm-free download option :D
<xShadowx|2> and how many mods in ksp are made by people on linux? and if said linux people werent around, you claiming none of those mods would get made? if the idea exists itll get made :P mitght come slower without that 2nd 1/4 of the modders (if that) but itll come
<xShadowx|2> visual studio is windows only isnt it? o.O
<taniwha> interesting. usb-3 treats flash drives differently to how usb-2 treats them
<Virindi> fewer modders, fewer mods.
<Virindi> monodevelop is usable on most mod builds
<Virindi> why would you need vs
<taniwha> usb-3: [311270.636733] scsi 6:0:0:0: Direct-Access SMI USB MEMORY BAR 1000 PQ: 0 ANSI: 5
<taniwha> usb-2: [311371.961677] scsi 6:0:0:0: Direct-Access SMI USB DISK 1100 PQ: 0 ANSI: 6
<xShadowx|2> most ksp mods i see have vsproj file, thats visual studio used to make the mod isnt it?
<taniwha> xShadowx|2: apparently vs is available for linux (don't know details)
<taniwha> xShadowx|2: and monodevelop uses vsproj
<Virindi> taniwha: what does that mean? something like the controller doing dma sometimes but not other times?
<taniwha> and the higher level one, too
<taniwha> Virindi: wish I knew
<xShadowx|2> i was gonna say i got source for >300 mods on my computer, i couldve scanned for vsproj count XD
<xShadowx|2> that wouldve been funny :|
<taniwha> Virindi: oddest thing: the extension cable is plugged into a usb-3 port on my pc
<taniwha> may be something odd in the usb hub
<taniwha> (some ports 2.0, some 3.0)
<taniwha> ah, .sln (just remembered)
<xShadowx|2> ?
<taniwha> .sln files and .csproj files are both used by monodevelop
<taniwha> and even xbuild
<taniwha> I just /prefer/ to use vim+make
<Virindi> sln files are funny
<xShadowx|2> so still cant differentiate who used what :|
<taniwha> xShadowx|2: that's right :)
<taniwha> well, you could check for Makefile
<xShadowx|2> k sec
<taniwha> xShadowx|2: oh, also, many mods do not include project files
<Virindi> visual studio cares about the "comment" at the top of the sln file that says "Visual Studio version xyz", it doesn't care about the top, the top is for the version selector
* taniwha returns to canvas hacking
<xShadowx|2> 309 mod solution folders, 343 projects, 337 csproj files, 4 makefile
<taniwha> let me guess: MFT, EL, KS, ST :)
<Virindi> why so many
<xShadowx|2> dont have kerbalstats :| whats ST?
<taniwha> survey transponder
<Virindi> I thought principia also had a make based build
<xShadowx|2> RF not MFT, EL, dont have KS/ST :|
<taniwha> wonder what the other two are, then
<taniwha> (but RF = MFT)
<xShadowx|2> yaya
<Virindi> what are they :)
<taniwha> oh, Kethane has Makefile, too
<xShadowx|2> i dont have principia source
<xShadowx|2> egg math scares me
<taniwha> s/math //
<Qboid> taniwha meant to say: inside-out navball makes the easy
<Virindi> principia source is scary. :P
<Virindi> that's EXACTLY what he meant to say.
<taniwha> I broke Qboid :)
<xShadowx|2> taniwha no you have to ping it to me
<taniwha> just realized that
<Virindi> that was just the last thing YOU said with "math" in it
<taniwha> xShadowx|2: s/math //
<Qboid> taniwha thinks xShadowx|2 meant to say: egg scares me
<xShadowx|2> taniwha: s/Qboid/my brain
<Qboid> xShadowx|2 thinks taniwha meant to say: I broke my brain :)
<taniwha> no, my brain has been broken for a very long time
<xShadowx|2> but thats true too, egg is scary
<Virindi> dangit, spent all evening in irc not writing code
<taniwha> Virindi: haha
<taniwha> I feel that way about the morning
<taniwha> (ie, same here)
<xShadowx|2> Virindi: s/not.*/doing important discussions about why var sucks
<Qboid> xShadowx|2 thinks Virindi meant to say: dangit, spent all evening in irc doing important discussions about why var sucks
<xShadowx|2> :)
<Virindi> critical discussions
<taniwha> yareyare
<Virindi> now that the biggest problems facing the world are worked out, we can proceed
<xShadowx|2> i propose a new law, every man must have access to bacon
<Virindi> but who keeps the pigs.
<taniwha> hopefully not kevin
<taniwha> or is it keven?
<xShadowx|2> o.O?
<taniwha> keven bacon
* xShadowx|2 is confused
<taniwha> actor
<taniwha> and it was in response to your proposed law
<Virindi> somebody has to keep the pigs. or, is this a stimulus plan for the pig farm industry
<xShadowx|2> theres 2 actors, kevin bacon and steven bacon
<xShadowx|2> o.O
<Virindi> creating jobs in pig raising
<xShadowx|2> china can keep the pigs, they already own majority of the US anyways
<taniwha> GuiTest.cs(29,17): error CS0019: Operator `*' cannot be applied to operands of type `string' and `int'
<taniwha> :(
<taniwha> string foo = " " * level;
<taniwha> come on, that works in python!
* taniwha grumbles
<Virindi> huhh why would you ever WANT that to work :P
<xShadowx|2> string foo = string.padleft(stuff)
<xShadowx|2> :P
<taniwha> Virindi: why would you not?
<Virindi> let us commence the type autoconversion holy wars!!!!!!
<Virindi> CHARGEEEEEEEEEEEEEEEEE
<taniwha> it's not type autoconversion
<taniwha> it's list math
<Virindi> ah
<taniwha> (and tuple math)
<Virindi> yeah I don't python.
* xShadowx|2 converts Virindi into a pigeon
<VanDisaster> I read that as a pointer dereference
<Virindi> I figured " " was converted to zero
<Virindi> or something.
<taniwha> it would produce a string of level * 2 spaces
<Virindi> or the number was converted to a string
<taniwha> (since it's two spaces in the quotes)
<xShadowx|2> string.pad :P
<taniwha> >>> " " * 2
<taniwha> ' '
<xShadowx|2> (for c#)
<taniwha> xShadowx|2: thanks
<taniwha> I'll look into it (didn't know where to start)
<xShadowx|2> there might also be something with string format but im bad at them :|
<taniwha> likely, ditto
<taniwha> G17 is about the extent of it
<taniwha> and then, that's for ToString :/
<Virindi> new String(' ', x);
<xShadowx|2> google suggests string foo = new string(" ", level)
<xShadowx|2> XD
<xShadowx|2> taniwha: and nah can do string foo = string.format(lala)
<taniwha> what's wrong with a little math? :P
<taniwha> >>> "ab" * 2
<taniwha> 'abab'
<Virindi> " " * z isn't math, it's gibberish :D
<taniwha> (a string is a tuple of chars)
<taniwha> Virindi: no different to "ab" + "cd" :P
<taniwha> or "ab" + "ab"
<Virindi> what is "ab" * 1.1
<Virindi> :D
<taniwha> division is not defined for all math entities
* Virindi chops the 'a' into tiny pieces
<taniwha> eg, quaternions
<xShadowx|2> string TabToSpaces(int tabs) { return new string(" ", tabs * 4); }
<Virindi> or you could just say the string,number operator is only defined for integer numbers.
<Virindi> :)
<taniwha> Virindi: there's a difference?
<Virindi> yes because there is not necessarily any division involved
<Virindi> "ab" * pi is also undefined
<Virindi> but that's nitpicky...
<Virindi> but you said "math" :P
<xShadowx|2> "ab" ^ 2 = "abcd"
<xShadowx|2> XD
<taniwha> WC
<taniwha> Virindi: it is math, though. set math
<taniwha> the math involving 2 * 3 = 6 is at a different level
<Virindi> yes I am familiar :)
<Virindi> and I don't consider it distinctly math anyway
<Virindi> it's just "an operation"
<Virindi> :)
<Virindi> any operation could be math
<taniwha> remember, computers don't do anything but math
<Virindi> all that saying "it is math" really means is "people in this other field have found this particular operation useful"
<taniwha> math is a language :P
<taniwha> minor spam, but... (it's quiet, for one):
<taniwha> [LOG 12:02:01.306] -+-Canvas
<taniwha> [LOG 12:02:01.306] | -+-anchorLB
<taniwha> [LOG 12:02:01.306] | ---Text
<taniwha> [LOG 12:02:01.306] | -+-ButtonUnitTests
<taniwha> [LOG 12:02:01.306] -+-anchorRB
<taniwha> [LOG 12:02:01.306] | ---TextVersionNumber
<taniwha> [LOG 12:02:01.306] -+-TextCopyright
<taniwha> [LOG 12:02:01.306] ---TMP SubMeshUI [Dotty SDF Material + ARIAL SDF Atlas]
<Virindi> personally I prefer concepts to linguistic expressions of them :)
<Virindi> language is just the medium of conversation about the concept, it is mostly irrelevant except as a communication channel
<Virindi> so saying math is a language is not very nice to math
<Virindi> the language part is the part that doesn't actually matter! the logic part, the part that is not dependent on language, is what matters
<taniwha> hehe, actually... there's a pretty cool vid that disproves that
<Virindi> there are many fields of study which have arguments against that.
<Virindi> from philosophy to psychology
<xShadowx|2> a has static foo, b and c both inherit a, foo is still 1 instance not 3 right?;3
<taniwha> humans can't agree on how to count
<xShadowx|2> 1 2 3 there i count
<taniwha> yeah, there is only one foo
<taniwha> oh, bloody hell
<Virindi> at its base, the nature of language is really a question of the nature of knowledge itself
<kmath> YouTube - 58 and other Confusing Numbers - Numberphile
<taniwha> Virindi: oh, here's a good one: https://www.youtube.com/watch?v=rT1sIVqonE8
<kmath> YouTube - Matt meets Jordan Ellenberg: 0.999999... = ?
<Virindi> the proper field is ontology :)
<Virindi> whether they know it or not, pop "math geeks" are really making philosophical arguments
<xShadowx|2> what to call a number is not universal, but 1 2 3 exising is, hydrogen = 1, helium = 2, helium + helium = 3 false, hydrogen + helium = 3 true, you just learned what english calls true and false ;p
<taniwha> except those arguing against π. they're just dumb arguments
<Virindi> how do you argue "against" a number
<Virindi> I don't understand
<xShadowx|2> 2+2=22
<taniwha> xShadowx|2: helium is not 2
<taniwha> Virindi: they think τ is where it's at
<Virindi> pi is not defined as a series of digits but as a property of a circle
<xShadowx|2> !wa atomic weight of helium
<Qboid> xShadowx|2: helium | atomic mass: 4.002602 u (unified atomic mass units)
<xShadowx|2> o.O
<Virindi> pi is axiomatic, there is nothing to argue against
<taniwha> (they don't like C=2πr)
<xShadowx|2> !wa atomic number of helium
<Qboid> xShadowx|2: helium | atomic number: 2
<Virindi> but that is the definition of pi...
<xShadowx|2> there we go 2 :P
<taniwha> my response will be "you can have your pie rim, I'll have the whole pie :)"
<xShadowx|2> !wa atomic number of hydrogen
<Qboid> xShadowx|2: hydrogen | atomic number: 1
<Virindi> that's like arguing that blue is not blue
<taniwha> (C=τd vs A=πr^2)
<Virindi> ...ok?
<taniwha> (rim = that little crinkly bit of crust around the edge:)
<Virindi> who cares what constants you jam in there
<taniwha> er, C=τr
<Virindi> this is all pointless language selection
<Virindi> I am going to define the virindi constant, such that for any circle, C=v*r*83
<taniwha> anyway, that 0.999... one is good
<Virindi> if that is "proof that 0.99999999999 = 1" then my teacher told us that one in 6th grade ;)
<Virindi> and now that I have told you what the virindi constant is, you can calculate it
<Virindi> and if I do proofs and reference the virindi constant
<Virindi> you can follow them
<Virindi> because I told you what it is.
<taniwha> Virindi: actually, it's proof that 0.999... is what we want it to be
<taniwha> it both is and is not 1
<taniwha> (it's 1 when we want the algebra to work, it's not 1 when we use infinitesimals)
<taniwha> (or when we want one representation for one value)
<Virindi> in school it was supposed to be a lead-in to the concept of a limit I think
<taniwha> Virindi: the vid starts with Jordan saying "the question is not what it is"
<taniwha> limits were a direct rejection of infinitesimals
<Virindi> to be honest, youtube amateur philosophers do not interest me
<taniwha> (Newton created calculus using infinitesimals, others didn't like them and came up with limits)
<taniwha> you've never watched standupmaths, have you?
<Virindi> not my cup of tea
<taniwha> not an amateur philosopher
<Virindi> I do not enjoy being subjected to arguments over definition
<Virindi> which is what this sounds like.
<taniwha> it's not an argument
<Virindi> discussion of definition then? :D
<taniwha> just watch it
<Virindi> but I spent all the time I could have spent watching it, instead arguing against watching it, and now that time has elapsed!
Ezriilc has quit [Quit: Going offline, see ya! (www.Kerbaltek.com)]
blowfish has joined #kspmodding
oeuf has joined #kspmodding
egg|zzz|egg has quit [Ping timeout: 186 seconds]
blowfish has quit [Quit: Leaving]
ehs has quit [Ping timeout: 383 seconds]
ehs has joined #kspmodding
Olympic1 has joined #kspmodding
Olympic1 has quit [Read error: Connection reset by peer]
Olympic1 has joined #kspmodding
<soundnfury> taniwha: let ε < 0
<Thomas> xShadowx|2: RE: your linux talk: For those who hate monodevelop (*cough* me *cough*), JetBrains Rider looks promising :D
<taniwha> soundnfury: 0 < ε < {R}
<taniwha> ε * ε = 0
<soundnfury> ooh, non-standard analysis!
* soundnfury gives taniwha a hyperinteger H
<taniwha> btw, ε is used in animation :)
<taniwha> (dual quaternions)
<taniwha> (specifically, in skinning)
<soundnfury> what does a Dutchman say when surprised by a quaternion? "ijk!"
<taniwha> (a + εb)(c + εd) = ac + ε(ad + bc)
<taniwha> heh
<soundnfury> taniwha: I don't think that's specific to quaternions / animation... https://en.wikipedia.org/wiki/Dual_number
oeuf is now known as egg
<taniwha> soundnfury: it's not
<taniwha> just saying that it's used pretty close to "home"
<soundnfury> I see
<taniwha> (was a preemptive response to "yeah, but nobody ever uses that")
<taniwha> (not necessarily from you)
<soundnfury> taniwha: why don't quaternions live in the suburbs?
<soundnfury> ... because they don't commute.
<taniwha> :)
<egg> o/ soundnfury taniwha
<taniwha> hi, tamago
<taniwha> (egg)
<egg> :D
<egg> /nick 卵
<egg> !u 卵
<Qboid> U+5375 CJK IDEOGRAPH-5375 (卵)
<taniwha> bah, doesn't work :P
<taniwha> (had to try)
<egg> /nick 蛋
<egg> /nick ?
<taniwha> that one didn't work here
<egg> !u ?
<Qboid> U+13187 EGYPTIAN HIEROGLYPH H008 (?)
<taniwha> ah
<taniwha> no egyptian fonts installed
<egg> taniwha: also, ?
<egg> !u ?
<Qboid> U+20A21 CJK IDEOGRAPH EXTENSION B-20A21 (?)
<taniwha> don't have that either
<taniwha> bah, no non-font version
ferram4_ has quit [Ping timeout: 200 seconds]
egg is now known as egg|afk|egg
SirKeplan is now known as SirKeplan|AFK
Olympic1 has quit [Ping timeout: 180 seconds]
smoke_fumus has joined #kspmodding
Olympic1 has joined #kspmodding
egg|afk|egg is now known as egg
<aeTIos> i have too many channels on irc
<aeTIos> good afternoon, by the way
Ezriilc has joined #kspmodding
<aeTIos> taniwha: the links in the EPL release thread to KIS and KAS are obsolete
<Ezriilc> Anyone else notice that Netkan stopped checking mods 6 days ago?
<Ezriilc> I was worried that my site was borked, but it seems that Netkan is.
SirKeplan|AFK is now known as SirKeplan
<xShadowx|2> Ezriilc: thats somethin for #ckan
<Ezriilc> Yep, thanks.
Innsewerants has joined #kspmodding
Olympic1 is now known as Olympic1|NOMZ
blowfish has joined #kspmodding
Thomas is now known as Thomas|AWAY
Olympic1|NOMZ is now known as Olympic1
ferram4_ has joined #kspmodding
SirKeplan is now known as SirKeplan|AFK
Olympic1 has quit [Ping timeout: 190 seconds]
Rodentman87 has joined #kspmodding
<Rodentman87> Hello
<xShadowx|2> o.o
Ezriilc_ has joined #kspmodding
Ezriilc has quit [Ping timeout: 200 seconds]
Ezriilc_ is now known as Ezriilc
Olympic1 has joined #kspmodding
<xShadowx|2> Rodentman87: needing anything?:)
blowfish has quit [Quit: Leaving]
Rodentman87 has quit [Quit: http://www.mibbit.com ajax IRC Client]
smoke_fumus has quit [Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/]
Olympic1 has quit [Ping timeout: 190 seconds]
SirKeplan|AFK is now known as SirKeplan
Olympic1 has joined #kspmodding
Olympic1 has quit [Quit: Bye - Quit]
<taniwha> aeTIos: thanks
<Virindi> finally back to writing a little code today: https://www.youtube.com/watch?v=JAHevljmktY
<kmath> YouTube - Jeb mode
<xShadowx|2> hmm....finding the file path to where another app (not current running app) is installed 1) manually scan folder>folder>file 2) ask registery 3) any other great ideas?;p
<xShadowx|2> im leaning at 2
<taniwha> look in /usr/bin and /usr/local/bin
<taniwha> :P
<xShadowx|2> trying to make my computer open vlc by voice command :D and sure i could just point it to vlc, but never learned how to find installation paths automagically, so giving it a stab :D
<Virindi> huh
<xShadowx|2> huh what
<Virindi> your configuration page should let you choose the particular exe to launch
<Virindi> sorry taniwha, I mean, uh
<Virindi> your conf file in /etc should list the binary to launch
<Virindi> :P
<taniwha> :)
<taniwha> actually, I'd scan $PATH
<taniwha> I really do wonder why devs make it hard for themselves by developing for windows
<xShadowx|2> getting from registry isnt hard, its 1 line of code
<xShadowx|2> just i always try to avoid touching registry b/c scary XD
<taniwha> getenv("PATH");
<taniwha> :)
<xShadowx|2> no not really, just always taught to not touch it / sloppy method of doing it
<taniwha> (ok, walking the string isn't so fun)
<xShadowx|2> RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\App Paths\" + name); name being exe name
<xShadowx|2> :D
<taniwha> xShadowx|2: that woun't work
<xShadowx|2> o.O?
<taniwha> \
<taniwha> needs to be \\
<xShadowx|2> why?
<taniwha> er, unless @ kills \ as an escape char
<xShadowx|2> b/c string esc?
<xShadowx|2> yep
<xShadowx|2> heh
<xShadowx|2> @ makes literal :)
<Virindi> why is the registry "scary"
<taniwha> just use / and be done with it
<taniwha> though dunno if it works for the registry (does for the filesystem)
<xShadowx|2> true but so much effort saved by copy/paste instead of typing paths
<xShadowx|2> good point
* xShadowx|2 tests
<xShadowx|2> not workin ;\
<taniwha> fair enough
<taniwha> still, \ is ugly
<taniwha> (always thought so, even when I used DOS)
<taniwha> by the time I was using Windows (3.11 and 95), I was using / exclusively
egg is now known as egg|zzz|egg
<xShadowx|2> same, plus mixes with escape and symbol characters
<taniwha> yeah
<xShadowx|2> winblows uses both though, so doesnt gbother me
<xShadowx|2> bother*
<taniwha> except for the registry, but that's to be avoided at all costs anyway
<xShadowx|2> yep, but still gotta decide the nice way to get the loc of vlc.exe :P
<taniwha> ask :P
<taniwha> via file dialog box
<xShadowx|2> nu
<xShadowx|2> automagically :D
<taniwha> already told you, look in /usr/bin :)
<xShadowx|2> wait
<xShadowx|2> why am i getting the exe loc for vlc
<xShadowx|2> i should be asking for exe loc to open <file extension>
<xShadowx|2> silly me o.O
* xShadowx|2 forgot he uses winamp for music and this could control both
<Virindi> winamp, welcome to 1998
<xShadowx|2> know whats sad? i never found anything nicer, without bein flooded by ads
<Virindi> llama ass whipping like it's 1998
<Virindi> vlc? :P
<xShadowx|2> vlc is nice, but doesnt have all the library sorting etc stuff of winamp
<taniwha> ads? what are these "ads" of which you speak?
<soundnfury> taniwha: why not just run 'which'?
<Virindi> yeah I always hear people talking about ads
<Virindi> it's weird
<taniwha> soundnfury: would in a shell script
<xShadowx|2> oh.....thats why reg didnt work with /
<xShadowx|2> i didnt /install/ vlc, just unzipped
<xShadowx|2> hahaha
<xShadowx|2> so downside to registry, only fully installed stuff shows
<xShadowx|2> hmm so that leaves option 1
<Virindi> just have a config screen with a "browse" for exe :P
<xShadowx|2> but i want automagic damnit! :P
<taniwha> Bill Gates says "No no no." to that :P
<taniwha> (well, I guess Balmer now)
<xShadowx|2> string path = Directory.GetFiles("D:/", "vlc.exe", SearchOption.AllDirectories)[0];
<xShadowx|2> inefficient but weorks ;p
<taniwha> be sure to set an audible alarm for when it's done :P
* Virindi connects to xShadowx|2's computer and copies an evil exe named vlc.exe to d:\
<taniwha> lol, that too
<xShadowx|2> nah its still fast and only fires once
<taniwha> it only fires? doesn't do anything else?
<taniwha> perhaps you mean "it fires only once"
* xShadowx|2 forgets this channel likes to pick at wording
<taniwha> learn to pick at your own wording so we don't have to do it for you :P
<Virindi> when speaking with engineers always be prepared for nitpicks
<taniwha> if you don't want nitpicks, go hang out in Mos Aisley ;)
* xShadowx|2 wonders how much this line will slow down on a drive with over 200k files
<taniwha> is that all?
<xShadowx|2> ......oh wow 12 seconds to check 204,958 files
<taniwha> 1.1Mfiles
<xShadowx|2> its all that i have in my NAS which was highest file count drive i have
<taniwha> taking a little while to go through my older system (5 HDDs)
<taniwha> 3.4Mfiles
<taniwha> find / | wc -l
<xShadowx|2> thats a lot of nudy pics
Ezriilc_ has joined #kspmodding
<xShadowx|2> current pc is just a 512gb ssd, moved about 1/3 of old pc to an 8tb NAS (slowly sorting, 8 years of files going everywhere)
<xShadowx|2> about 2tb of old pc left to go
<taniwha> 8 years... so short
<Virindi> yeah wow
Ezriilc__ has joined #kspmodding
<Virindi> I have files back to like when I was 13 years old
<taniwha> (which I find scary)
<xShadowx|2> 8 years since last sort :P
<taniwha> oh, I have files from when I was 19-20
<xShadowx|2> i have files back from early 90s
<taniwha> maybe earlier, but I've lost a lot over the years
<Virindi> I have folders called like "backup crap sept 1999"
<Virindi> mostly filled with installers for jenky windows programs
<xShadowx|2> ive only lost my 1 external hdd over the years, and it wasnt anything important (yep no porn)
Ezriilc has quit [Ping timeout: 204 seconds]
Ezriilc_ has quit [Ping timeout: 186 seconds]
Ezriilc__ is now known as Ezriilc
<xShadowx|2> i dont really sort anything by date, just videos/music/pictures/documents/software/resources/projects, then their subfolders to sort a bit