--- Log opened Fri Jun 26 00:00:23 2020 |
00:19 | <~Vornicus> | think I need a book or soething |
00:20 | <&McMartin> | Gosh, that's a hard implied question. |
00:20 | <&McMartin> | The books I'm coming up with are more about, if you will, managing specifically tricky kinds of joists or windowsills, and less about actually building a proper house. |
00:22 | <&McMartin> | If you can make some sketches of a mid- to high-level design I can talk through some of it with you, I suppose. |
00:29 | | Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code |
00:49 | | Kindamoody is now known as Kindamoody[zZz] |
01:00 | <&Reiver> | I'd be happy to help with that too, I've done a little architecturing in my time. |
01:00 | <&Reiver> | More data systems & DBs than software, but workshopping it may well help nonetheless |
01:09 | <~Vornicus> | It's ... okay let's see. |
01:27 | <~Vornicus> | At the moment it's stupid simple what I want to do, but making it so it looks like I can add stuff is harder. Right now I just have a terrain drawing thing which I'm working on adding a camera to, and then eventually buildings and trees and objects that move around and stuff. https://cdn.discordapp.com/attachments/474705430434807819/717407973055397918/Pick.gif Consider OTTD or Roller Coaster Tycoon |
01:30 | <~Vornicus> | But this is so vague as to be pointless |
01:30 | <&McMartin> | Mmm. Yeah. |
01:31 | <~Vornicus> | Which is part of why I'm struggling, really. There are questions, I know, that should be answered, but what those questions are I don't know yet. |
01:31 | <&McMartin> | You're considering operations when you should be considering policy. |
01:31 | <&McMartin> | Are you building a sim-game of your own? An interactive map engine? An editor? |
01:32 | <~Vornicus> | I'm pretty sure at the moment it's the second, if I understand your meaning of it. |
01:32 | <&McMartin> | If you want an immediate exercise to focus the mind: take the things you have written, and start conceptually drawing boxes around parts of it that are both relatively self-contained and that could be part of the grander vision. |
01:32 | <&McMartin> | And then see which direct links could be separated from there. |
01:33 | <&McMartin> | One of the boxes that isn't there right now is a fluffy "outside logic" cloud that determines whether you are playing a SimCity clone, a Command-and-Conquer clone, or chesse |
01:34 | <&McMartin> | *chess |
01:34 | <&McMartin> | Not cheese |
01:34 | <~Vornicus> | chesse sounds like fun |
01:37 | <&McMartin> | But definitely part of this involves user input events turning into events that happen on the map which turn into things that could have some kind of game effect and would need to be forwarded on to that game |
01:38 | <&McMartin> | You aren't really at a level yet where it's time to start building framework elements for them, but this is a place where having the publish/subscribe concept in your toolkit will help make things gel later |
01:38 | <&McMartin> | https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern |
01:38 | <&McMartin> | (This level of architectural detail is the kind of thing I was referring to when I said it's about joists or windowsills instead of houses) |
01:40 | <&McMartin> | But if the engine you're imagining is tightly bound to a scrollable 2D map with a notion of height, such a system would be kind of overkill for actually dispatching user events to the map interpreter; those could just be handled via direct calls into the system. |
01:41 | <&McMartin> | THEN the question becomes "what signals or messages do each of these black boxes send or receive?" |
01:41 | <&McMartin> | And then that starts turning into an API. |
01:41 | <&McMartin> | This is a very OO-centric way of discussing it, but a box that receieves a method is a module that exposes a function that others can call. |
01:48 | | catalys22 [catalyst@Nightstar-vu6bd4.dab.02.net] has joined #code |
01:50 | | catalyst_ [catalyst@Nightstar-lgnnkl.dab.02.net] has quit [Ping timeout: 121 seconds] |
01:57 | | catalyst [catalyst@Nightstar-v6lb30.cable.virginm.net] has quit [Connection closed] |
02:25 | < catalys22> | do you think that the ability to implement stl types is rare and something that would stand out? |
02:26 | < catalys22> | for some reason I'm thinking I wouldn't make an attractive hire to anyone |
02:28 | <&McMartin> | In terms of mastery of the C++ language, I consider myself to be two tiers below you, and I rate my own C++ skills quite highly. |
02:28 | <&McMartin> | And I am told that even my level is uncommon. |
02:28 | <&[R]> | I remember you talking about some weird edge cases you were dealing with, focus on those? |
02:29 | <&[R]> | Also talk about why you did it |
02:29 | <&McMartin> | My level would be something like "I am capable of understanding and making use of those aspects of the STL that are exposed in the public-facing API, and can correctly choose between when to use a movable rvalue and when to use a copied value outright" |
02:29 | <&McMartin> | The tier above that is "can read STL implementation level code with all the template metaprogramming stuff and understand what is being specified" |
02:30 | <&McMartin> | The tier above that is "can actually replicate it, which means that they can design APIs that use things like std::enable_if in their own code." |
02:30 | <&McMartin> | I saw you implement the basics of a logging framework here some months back. |
02:30 | < catalys22> | I suppose I consider myself just about competent in Rust now I've figured out how to write custom derive macros |
02:30 | <&McMartin> | I would not have designed it in that way becaus I could not. |
02:31 | < catalys22> | ah |
02:31 | <&McMartin> | I would lean into simpler wrapper classes that were not as transparent to use, simply because the necessary powers of specification would not have been to hand. |
02:31 | < catalys22> | enable_if is a horrendous language hack |
02:31 | <&McMartin> | I don't deny it |
02:31 | < catalys22> | what you're saying is that I'm am expert even from the point of view of other experts, technically speaking? |
02:31 | <&McMartin> | But it's one of the things that appears to be in your toolkit, even if (indeed, especially since it is) rarely used. |
02:32 | <&McMartin> | Yes. |
02:32 | < catalys22> | huh |
02:32 | <&McMartin> | To make this extremely concrete |
02:32 | < catalys22> | neat |
02:32 | <&McMartin> | I am the best C++ programmer I know in the flesh. |
02:32 | <&McMartin> | When I get stuck, I ask you for advice. |
02:32 | <~Vornicus> | argh I got eaten by eating so I didn't continue responding but: yes I know of publish/subscribe and yeah that kind of thing seems very common |
02:32 | < catalys22> | :D |
02:32 | < catalys22> | this explains why I find it difficult to get help on coding tasks |
02:33 | <~Vornicus> | like there's the gang of four book and game programming patterns and all that shit and it's |
02:33 | <~Vornicus> | ...okay yes these things are here but it feels like you need to use them on top of a design that ... |
02:33 | <&McMartin> | Yes |
02:33 | <~Vornicus> | yeah. now, bed |
02:33 | <&McMartin> | That's why I'm struggling to find a reference to use, and am reduced to "we need whiteboard drawings" |
02:34 | < catalys22> | patterns are a common language and a starting point, not designs in and of themselves |
02:36 | <~Vornicus> | and toymaker/engine user leads to not great habits when you suddenly find yourself in command of a thing that you need to actually do the enginey bits |
02:37 | <~Vornicus> | slep for real or I will be ded |
02:38 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
02:44 | <&Reiver> | catalys22: Bearing in mind I do not understand what you actually do as a skillset, I am familiar with your position |
02:44 | <&Reiver> | And it is one where you are getting very close indeed to no longer "Asking for help" but "Conductingt original research" any time you hit a wall you're puzzled by~ |
02:44 | < Mahal> | "but.. .I just do my job ...? it's my job...?" "yes and LITERALLY NO-ONE ELSE UNDERSTANDS WHAT YOU DO, YOU ARE AN EXPERT" |
02:45 | < Mahal> | I am not in that boat with, er, anything I look after, tbh, but I am the resident expert on several things and it took me a solid two years to accept that |
02:46 | < Mahal> | "I dunno, ask Mahal, she's the expert." "NO I'M NOT I AM JUST A PLEB" "look shut the fuck up, around here NO-ONE ELSE KNOWS ANY MORE, and can you in fact answer the question?" "... yes ..." |
02:46 | < Mahal> | "Right, that makes you the SME" |
02:46 | <&Reiver> | Mahal: Hahah |
02:46 | <&Reiver> | I have found myself intermittently in the awkward position of correcting the Enterprise Software Vendor on the behavior of their own software |
02:47 | <&Reiver> | Not in terms of bugs, oh no, that is a perfectly reasonable thing to discover |
02:47 | < Mahal> | I have done this multiple times to MS support |
02:47 | < Mahal> | except I think that's just cos they're shit |
02:48 | <&Reiver> | "Yeah, so I'm having some issues with architecting our solution to properly pull off X..." "What? Why are you doing X at all? Are you mad?" "To deal with Y?" "Y doesn't happen." "Yes it does. *proof*" "... Hang on, I'll hit up our dev team." "Sure. I'll wait." |
02:49 | <&Reiver> | "... Yeah so I took what you said to them and they have admitted they didn't know their software did that either, but now you've explained it to them they admit it turns out it totally would do that after all, they're happy to put it on the next Sprint as something to try and work out a solution to..." "Oh, cool, but FYI I already built X anyway while I was waiting." "... Oh. OK." |
02:51 | <&Reiver> | I ended up presenting my solution to their systems architect when he visited NZ. Who was awfully keen to see what we'd done... and I was very careful to emphasise it was not as a 'this is a good solution' but a 'as I go through the rube goldberg machine, hopefully you will notice just how many spinning wheels I have built as I identified the issues A, B, C...' ¬¬ |
02:52 | <&Reiver> | Ended up a conversation with "Yeah, we thought A was a good solution at the time but it's clearly not fit for purpose, having seen this we now know what fit for purpose should look like"... |
02:53 | <&Reiver> | ...and my favourite bit that was so good I wish I could put it in my CV or something: "Well, we are very impressed with what you have achieved, and we are very sorry you had to achieve it"~ |
02:54 | <&Reiver> | So |
02:54 | <&Reiver> | That happened ;) |
02:54 | <&McMartin> | Heh. |
02:55 | <&McMartin> | One of the stock interview questions is "looking back over your career, are there any projects you've done that you would have done differently in retrospect?" |
02:56 | <&Reiver> | ... I will need to think on that one, because "Does it count if the options in terms of technology stacks changed after we'd already built the thing" count as a valid qualifier? |
02:57 | <&Reiver> | Because "Shout at the vendor until they finally cave in and provide us the technology stack we'd demanded all along and they had insisted was impossible until the dude was eventually overruled by his system architect" turns out to have been a potentially valid solution, but one that only became clear in retrospect! |
02:59 | | Degi [Degi@Nightstar-bbsr42.dyn.telefonica.de] has quit [Ping timeout: 121 seconds] |
03:03 | | Degi [Degi@Nightstar-6p74l6.dyn.telefonica.de] has joined #code |
03:07 | | * Mahal giggles |
03:08 | < Mahal> | My usual answer is "... yes? I mean, all of them, because lessons-learned always show up things you should have done differently in retrospect?" |
03:08 | <&McMartin> | Well, I mean, yes, but generally they're asking to get insight into how you learned lessons and possibly which ones you learned. |
03:09 | < Mahal> | i know, I'm being an ass |
03:18 | <&Reiver> | Yeah |
03:19 | <&Reiver> | More honestly: "Yes, we should have handed the bit of custom work off to the vendor to implement themselves and to hell with whatever it cost, our custom solution allowed greater flexibility but has become an albatross around our neck in terms of continual updates ever since" |
03:19 | | Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
03:20 | <&McMartin> | My stock answer to this question is similar! |
03:20 | <&Reiver> | "... And if we're totally honest, maybe next time being allowed to decomission one set of extremely customised code before implementing the next one for precisely one single bill's worth of overlap would sure have been nice" |
03:20 | <&McMartin> | It works out to "we shouldn't have used C++ for this project, given how it was ultimately used" |
03:20 | <&McMartin> | Tempered by "the languages we *should* have used for it either did not exist or were languages I, the sole designer, did not know at the time" |
03:21 | | Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code |
03:21 | <&Reiver> | hah, quite |
03:21 | <&McMartin> | Now. Partway through I had to get a crash course *in* that language that did exist at the time in order to get it to work at all, and then glue the C++ *to* it. |
03:22 | <&McMartin> | So the prescient ideal alternative really would have been "do the crash course first, then do the whole thing in that" |
04:39 | | celticminstrel [celticminst@Nightstar-olm4vg.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:43 | | VirusJTG [VirusJTG@Nightstar-42s.jso.104.208.IP] has quit [Connection closed] |
05:43 | | VirusJTG [VirusJTG@Nightstar-42s.jso.104.208.IP] has joined #code |
05:43 | | mode/#code [+ao VirusJTG VirusJTG] by ChanServ |
07:00 | | Vorntastic [uid293981@Nightstar-h2b233.irccloud.com] has joined #code |
07:00 | | mode/#code [+qo Vorntastic Vorntastic] by ChanServ |
07:07 | <&[R]> | https://drewdevault.com/dynlib.html <-- hmm |
08:20 | | catalys22 [catalyst@Nightstar-vu6bd4.dab.02.net] has quit [Ping timeout: 121 seconds] |
08:27 | | catalyst [catalyst@Nightstar-h9jmlu.dab.02.net] has joined #code |
08:56 | | Kindamoody[zZz] is now known as Kindamoody |
08:58 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code |
09:21 | | Emmy is now known as Emmy-Werk |
10:29 | | McMartin [mcmartin@Nightstar-c25omi.ca.comcast.net] has quit [[NS] Quit: reboot] |
10:31 | | McMartin [mcmartin@Nightstar-c25omi.ca.comcast.net] has joined #code |
10:31 | | mode/#code [+ao McMartin McMartin] by ChanServ |
12:30 | <&jerith> | Reading up a bit, this seems to be a position I am in a *lot* these days. |
12:31 | <&jerith> | "None of the existing options actually do the thing we need, so we get to either modify one of them or build our own." |
12:32 | <&jerith> | Also, "what would you have done differently" is a complicated question for me. |
12:33 | <&jerith> | And the answer usually boils down to "guess the future better". |
12:35 | <&jerith> | Or "try arrange to not have certain problems until a year or two later". |
13:06 | | celticminstrel [celticminst@Nightstar-olm4vg.dsl.bell.ca] has joined #code |
13:07 | | mode/#code [+o celticminstrel] by ChanServ |
13:44 | | macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
13:44 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: WeeChat 2.8] |
13:44 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
13:44 | | mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ |
14:04 | | Kindamoody is now known as Kindamoody|afk |
14:25 | | Pinkhair [user1@Nightstar-g7hdo5.dyn.optonline.net] has joined #code |
14:27 | | Pink [user1@Nightstar-g7hdo5.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
14:29 | | macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has joined #code |
14:29 | | mode/#code [+o macdjord] by ChanServ |
14:34 | | macdjord [macdjord@Nightstar-rslo4b.mc.videotron.ca] has quit [Ping timeout: 121 seconds] |
14:48 | | catalyst_ [catalyst@Nightstar-nkuuah.dab.02.net] has joined #code |
14:50 | | catalyst [catalyst@Nightstar-h9jmlu.dab.02.net] has quit [Ping timeout: 121 seconds] |
15:03 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
15:03 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
15:49 | | Kindamoody|afk is now known as Kindamoody |
17:10 | | Vorntastic [uid293981@Nightstar-h2b233.irccloud.com] has quit [[NS] Quit: Connection closed for inactivity] |
17:20 | | Emmy-Werk is now known as Emmy |
20:20 | | Kindamoody is now known as Kindamoody|afk |
21:20 | | catalyst_ [catalyst@Nightstar-nkuuah.dab.02.net] has quit [Ping timeout: 121 seconds] |
21:23 | | catalyst [catalyst@Nightstar-rfrqc5.dab.02.net] has joined #code |
22:06 | | Kindamoody|afk is now known as Kindamoody |
22:30 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Connection closed] |
22:32 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has joined #code |
22:59 | | Emmy [Emmy@Nightstar-9p7hb1.direct-adsl.nl] has quit [Ping timeout: 121 seconds] |
--- Log closed Sat Jun 27 00:00:24 2020 |