2023-04-27 05:00:54 MrMobius: Often -Os is faster, the compiler can't guess what will be faster (nor me) 2023-04-27 05:01:23 It's all theory until it's actually tried in practice 2023-04-27 05:02:20 You might not leave static const off, but I actually get told off for putting it there in reviews 2023-04-27 05:02:26 Because to some people it's confusing 2023-04-27 05:02:28 Also embedded 2023-04-27 05:05:43 And I don't really consider it an edge case, I write code like that all the time, that uses an initialised array to provide some data 2023-04-27 05:06:01 That's why I am even aware of the issue or complaining about it 2023-04-27 06:14:20 Guessing what is faster is the compiler's job 2023-04-27 06:15:38 I'm sure Os is faster than no optimizing but do you mean it's faster than O2 or O3 as well? 2023-04-27 06:29:10 It's faster than O3 sometimes. Sometimes O2 is faster than O3 2023-04-27 06:29:35 The compiler often makes bad decisions, especially when it comes to inlining/unrolling 2023-04-27 06:29:39 Often it makes the right decisions 2023-04-27 06:29:46 Only profiling can tell 2023-04-27 06:30:11 Sometimes O2 is smaller than Os (I think I've seen such a thing) 2023-04-27 09:14:49 Ok, I see - so certain optimizations that you'd expect if the array is constant aren't implemented the way we'd like? 2023-04-27 09:17:03 I think those things are the programmer's job too. The compiler has to handle any code tossed at it - only the programmer himself/herself is totally familiar with the precise situation in play. 2023-04-27 09:18:37 veltas: Reviews like that would annoy the hell out of me. "It helps it be faster" should be all the defense you need. 2023-04-27 09:19:36 I could go either way on it, but yeah reviews are kind of annoying lol 2023-04-27 09:19:44 Even though I'm guilty of being annoying too in review 2023-04-27 09:20:16 We're human. 2023-04-27 09:22:53 Ultimately code in companies is written for a purpose but also for other humans 2023-04-27 09:23:13 So I suppose there is going to be some really human stuff involved in reviewing 2023-04-27 09:24:53 Yeah, and that has always been a hard one for me. I've generally not done any "team coding." I do understand the importance of each person's code being "grokable" to the rest of the team, but damn it, it just flies in the face of my cowboy side. 2023-04-27 09:30:13 I wonder where the term 'cowboy' comes from to mean an unprofessional person 2023-04-27 09:31:06 Oh, that's an American idiom, I guess. In the old West, "cowboys" had a reputation for being severely individualistic and devil-may-care. 2023-04-27 09:31:46 Doesn't "necessarily" mean "can't produce"; work could be fairly amazing and still be "cowboy." 2023-04-27 09:32:16 I think it has more to do with "not adhering to a group process" than anything else. 2023-04-27 09:32:24 Not "conforming." 2023-04-27 09:34:25 Back in 2007-2008 or so I worked for a seismic company, on the development of an ocean bottom seismic array. I was a team lead at the time. This was after I'd left the job market and done consulting for a few years, and I had to "work my way back up the ladder." Anyway, we did a joint project with a team from Norway, and I had a really hard time with the absolutely "process dominant" style of those Norway 2023-04-27 09:34:27 guys. 2023-04-27 09:34:45 They definitely regarded me as a cowboy, though they probably wouldn't have used the word. 2023-04-27 09:35:27 My wife, who has a lot more exposure to colleagues from other parts of the world than I do, says that's to some extent just a national culture in Norway. She says they're very "group oriented." 2023-04-27 09:37:32 Just "telling them" that something was a fact - because I damn well knew it was - wasn't anywhere near enough for them. It didn't count as a fact until we'd had a meeting and worked through some process that had a formal name and produced a paper output from that process that arrived at the same conclusion. 2023-04-27 09:37:37 That piece of paper HAD to exist. 2023-04-27 09:39:07 There was another American guy on the team who I got along with extremely well. He felt the same way about it all. We both had beards at the time, and at one point for some reason I can't now recall we decided that in protest we would each shave off our beard on one side of our face. 2023-04-27 09:39:16 So we both showed up the next day with half beards. :-) 2023-04-27 09:39:35 Incredibly juvenile, and I don't even see how it said anything now, but it seemed to make sense at the time. 2023-04-27 09:39:56 It was more us venting for our own benefit than anything else, I guess. 2023-04-27 09:42:16 Part of it for me was that I just didn't see the point of spending extra money to hire people with extensive experience if you weren't then going to trust their professional judgement. 2023-04-27 09:43:05 I had a good bit of experience at that point, and the other fellow, who was considerably older than I was, had AMAZING experience. He was an analog guy, and he was well known in the seismic profession as kind of an analog wizard. But his word wasn't good enough for them either. 2023-04-27 09:43:48 Later after I left there and went to another seismic company as their engineering VP I hired that guy away from the place we'd worked together. 2023-04-27 09:47:16 Yeah sounds frustrating 2023-04-27 09:47:30 We say 'cowboy' in the UK to mean unprofessional or bad or even criminal work 2023-04-27 09:47:34 That was one of the best moves I made at that place - the politics there were really bad, and that guy came in on my side, and at THAT company his name carried a lot of weight, all the way up to the board of directors. 2023-04-27 09:47:46 It's got a very negative connotation in the UK, I don't know where it comes from though 2023-04-27 09:48:06 Here it wouldn't imply criminal, but otherwise it's a similar thing. 2023-04-27 09:48:25 Well maybe not criminal 2023-04-27 09:48:49 Well, "little regard for customary behaviors." 2023-04-27 09:50:08 In some circles it might be taken as a compliment, but in a company environment almost certainly not. Unless it's a very small company that is kind of maverick itself. 2023-04-27 09:50:55 Now that I think about it, "maverick" is a similar term with similar origins. 2023-04-27 09:51:15 In Top Gun, Tom Cruise's "flyboy handle" was Maverick exactly because he was that kind of guy. 2023-04-27 09:52:27 I think what a maverick actually IS is a particularly high-spirited and rowdy horse. 2023-04-27 09:52:33 So, also out of the old West. 2023-04-27 10:09:52 Lonesome D Coder 2023-04-27 10:14:31 To the extent I've participated in group programming, I would generally write some isolated embedded part of a system's code, and I was the boss, so no one gave me any guff about my coding style. Those were generally parts of the system that the other guys didn't really understand anyway. 2023-04-27 10:15:19 I just gave them an API to those parts of the hardware. 2023-04-27 10:16:30 Other than that "Lonesome D Coder" is exactly what I've been - coding tools for my own use and so on. 2023-04-27 10:18:31 There's reasonable teamwork stuff and then there's "you forgot to fill out your TPS report" 2023-04-27 10:38:14 Yes. 2023-04-27 10:39:42 That guy - the TPS report guy - he got cast on an episode of Supernatural as a movie producer. Right down to the "suit." And they were totally playing off of his reputation from that movie. And they had him killed off by a ghost, and it was kind of satisfying. 2023-04-27 10:40:39 "Revenge at last" kind of thing. 2023-04-27 11:36:19 Some aspects of the agile process feel like they "get treated" like TPS reports to me. Not that the basic practices are bad, or anything, but the near-religious fervor with which they get pursued amuses me. 2023-04-27 11:39:14 I think what bugs me the most about it is that the agile paradigm itself doesn't formally include the "up front planning" - the architectural planning - that I regard as an imperative. Only after that are you really ready to start cranking the rigorously scheduled stuff associated with agile. Of course you can still do it, just before you begin the agile process, but some guys seem to just forget about it. 2023-04-27 11:39:31 You need to be READY to run agile on a project. 2023-04-27 11:40:27 But I think that up-front level of planning doesn't usually need the whole team involved in it. Usually you've got a small handful of "master architects," and they should do that first planning on their own, and roll the results into the starting documents. 2023-04-27 11:40:32 Then you gather the team. 2023-04-27 11:41:10 Then you've got some idea of what you're actually "sprinting" TOWARD. 2023-04-27 11:42:36 I guess there are projects that don't need that. If a product already exists and you're just implementing some set of fairly obvious changes, you can likely do without it. 2023-04-27 11:42:43 But if it's a serious new product, you can't. 2023-04-27 12:00:41 Yeah I do agree, and I remember us discussing this before. That the up-front design work is extremely important 2023-04-27 12:01:05 I think the iterative process is the best approach, but you want to start with a good idea of what you're doing if you can, I mean why not 2023-04-27 12:01:54 UNIX was clearly developed very iteratively, but benefitted from $millions of development and design work poured into a failed prior project 2023-04-27 12:02:01 They squeezed those lemons 2023-04-27 12:02:09 Yeah. Once you have something clearly in mind, I agree - iterating toward the goal is a good strategy. 2023-04-27 12:02:23 And it has the benefit of keeping things clearly visible. 2023-04-27 12:02:53 If at each step of the way you deliver real value and have a viable product of some form then you are removing a lot of risk, uncertainty, and allow for the flexibility to correct design mistakes 2023-04-27 12:03:01 And customer requirement mistakes 2023-04-27 12:03:25 Yes - with other approaches you can wait months for an important part and have it just "not materialize." Then your back's against the wall. 2023-04-27 12:03:44 Like at work I have an intern working on an internal tool. I sent them down totally the wrong track! Didn't notice until they showed me what they had. 2023-04-27 12:04:03 A good manager would still be keeping tabs on progress, even in other approaches, but agile makes that part totally explicit. 2023-04-27 12:04:06 But the extra work it created was only a day or so, and they can reuse most of it anyway, and we have caught it now before making it any worse 2023-04-27 12:05:07 project xanadu had a run-in with autodesk, speaking of projects