Could we also consider just not connecting critical systems to the internet at large? No reason, for example, for the Jaguar assembly line to depend on an internet connection.
> Also a 19,000 line C++ program(this is tiny) does not take 45 minutes unless something is seriously broken
Agreed, 45 minutes is insane. In my experience, and this does depend on a lot of variables, 1 million lines of C++ ends up taking about 20 minutes. If we assume this scales linearly (I don't think it does, but let's imagine), 19k lines should take about 20 seconds. Maybe a little more with overhead, or a little less because of less burden on the linker.
There's a lot of assumptions in that back-of-the-envelope math, but if they're in the right ballpark it does mean that Jai has an order of magnitude faster builds.
I'm sure the big win is having a legit module system instead of plaintext header #include
> The net effect of this is that the software you’re running on your computer is effectively wiping out the last 10-20 years of hardware evolution; in some extreme cases, more like 30 years.
As an industry we need to worry about this more. I get that in business, if you can be less efficient in order to put out more features faster, your dps[0] is higher. But as both a programmer and an end user, I care deeply about efficiency. Bad enough when just one application is sucking up resources unnecessarily, but now it's nearly every application, up to and including the OS itself if you are lucky enough to be a Microsoft customer.
The hardware I have sitting on my desk is vastly more powerful that what I was rocking 10-20 years ago, but the user experience seems about the same. No new features have really revolutionized how I use the computer, so from my perspective all we have done is make everything slower in lockstep with hardware advances.
I don't know much about Jungle music, but I do know a lot about video games, and I want to shout out the Neo Geo game Shock Troopers. One of the best top down run and gun games ever made, and I'm told it has a Jungle/DnB soundtrack.
Also, what else are standups even for? Everything I've read or seen IRL is some bullshit about using them for teams to "align" or "sync up" or "share progress" or nine other euphemisms for status updates. Let's call a spade a spade.
> I've noticed an uptick recently of large brands to start referring to themselves as "The [Brand] Community"
I don't think I've ever seen that. What I have seen is non-sponsored people referring to "the [brand] community" or "the [product] community" as a shorthand way of saying they discuss brand or product with other people with that shared interest on a dedicated Discord server or forum. The Sega community, the Final Fantasy community, etc.
R1 non-ivy engineering-focused university. I was teaching undergraduate math. Non-tenure track. I taught a lot during grad school[0], and then taught some more as an adjunct professor while I was looking for tenure track jobs. I taught everything from pre-calculus algebra and trigonometry up through undergraduate linear algebra. I taught a couple of 100+ student sections, but the majority of my classes were 20-30 people.
This was a decade ago, so my memory is a little fuzzy, but talking about students this way was pretty common at my university. So much so that a committee was formed to investigate the underlying problems. The committee found a few.
1. The math placement exam was trivially easy to cheat.
2. Students were encouraged to cheat on the math placement exam because the college of engineering only accepted students who placed into calculus or higher in their first semester.
3. The university as a whole scored freakishly high on student entitlement metrics. E.g. lots of kids with wealthy parents who assumed paying for college (as opposed to scholarships or loans) implies they deserve to pass classes with minimal effort.
To address the first two problems we switched to in-person math placement exams with ID checks and negotiated with the college of engineering to see to what degree they could budge on their policies. I suspect the third issue remains a problem.
[0] My university was a bit unusual in that grad students actually taught classes, not just TA'd. Helped keep class sizes down when you had dozens of extra lecturers who worked for peanuts.
> If I get stuck on something, I typically just keep trying until I understand it, instead of stopping, remembering what I don't understand and asking it in office hours 2-3 days later, and then potentially getting stuck on something else later on in the proof/example.
Good! This is what you should be doing! Understanding comes from within, and teachers can only guide you to it. You are your own best teacher, and you will learn the material on a deeper level if you figure it out yourself. Sometimes you do need a little guidance, though, and that's ok.
> Typically what I lack is is a more general understanding of the entire proof/example/algorithm instead of small individual details, and I really need to sit down with it and go through it instead of another quick re-explanation by a TA where I have to say "yeah, makes sense" before I've had enough time to think about it.
First of all, get face time with the actual professor if you can, not the TA. TAs can be great, but they're likely someone with limited pedagogical experience.
Second, you need to learn to ask questions to get to the heart of the matter. Don't walk in saying, "I don't understand this proof/example/algorithm". That gives them nothing to work with. All they can offer you in return is a quick explanation. Tell them what you just told us. "I feel like I've got a good handle on all the small details and steps in this proof/example/algorithm, but I'm having trouble understanding it as a whole." Maybe try, "can I see some more examples?" or "can I see a motivating example?" or even "what historical context led to the creation of this algorithm?"
Context can be everything. It can be difficult to understand material when it's presented to you in its modern form, and you don't see how something so logical and perfect crystalized out of the aether. If you can see a couple of steps in its historical derivation it can make a lot more sense.
Not saying this is the case for you, but I have also seen a lot of students who think they have a good handle on the small details, but it turns out they only understand gist of the details instead of the details of the details. Hell, I do that myself. If you go through every little detail and ask yourself "why?" or "where did that come from?" or "what could have motivated this?" you might discover you have more gaps in your knowledge than you realize.
Best of luck with the rest of your program! Don't be too hard on your teachers. As I explained in another comment, I spent years really trying to improve as a teacher, but it is an extremely unrewarding experience for a variety of reasons. These people are not getting rewarded for any extra effort they put into helping students, and if they're doing it anyway they deserve kudos.
For me, day one used to be handing out the syllabus and getting right into whatever the first topic of the course was. I taught a lot of calculus 1, so usually I'd open with a motivating example for the concept of a limit.
After a couple of years, I decided to instead spend day one on the most common egregious gaps in knowledge, so day one was how to add, subtract, multiply, and divide fractions, and then a little practice solving simple rational equations of a single variable.
I actually deliberately varied my teaching style during office hours to account for just this. I got great feedback from the few students who actually came. But by the end, I just felt all the extra effort I was putting in to be a good teacher wasn't worth the psychic damage I took from bad students.
All this to say, being a good teacher, or trying to be a good teacher, in a university setting is extremely unrewarding. Your department chair and peers just want you to publish, and the good students just don't make up for the hoards of unappreciative and entitled students who have all the tools in the world to make your life hell.
> Help resources become inefficient - because so much material is restricted, and so much time is spent on delivering live lectures, there’d often be 40 students competing for help from 2 TAs in a 2-hour Office Hours
I had the exact opposite problem when I was both a TA and later a professor. I would beg and plead for my students to come to office hours. "It's free one on one tutoring from the guy who writes the test! It doesn't get any better than that! If these times don't work for you, I can accommodate your schedule!" And yet very few people would come. And then I'd get feedback at the end of the semester that I "was never available to help." By the end, before I made a career change, I became pretty jaded.
So in my experience the problem does not lie with the teaching staff, but perhaps this varies from university to university.
> Use it when it makes sense, but make sure you never, ever, depend on it.
> They will do everything in their power so you do.
It seems utterly insane to me that we put up with this. VSCode is a pretty simple tool. A recent iteration of a tool that we've had since the 60s. But they do their damndest to hook you and then keep you hooked.
It's like if a tool company put out a hammer with a comfortable handle and everyone bought one. Then to make sure sales stayed high, they started selling them with the handles secretly coated in cocaine to keep people buying.
Refactors of course come down to a tradeoff. I've always see it come down to, "do you want it on the deadline you set, or do you want it maintainable after?"
"By the deadline" is always chosen, and then management gets to complain about the incompetent developers who are just trying to deal with the hackathon-quality code they've been forced to write.
I recommend Yoku's Island Express, which is a blend of metroidvania and pinball. There is "combat", but like most of the other microchallenges, it's actually just pinball.
> Even though incl is a single instruction, it's not guaranteed to be atomic. Internally, incl is implemented as a load followed by an add followed by an store.
I've heard the joke that RISC won because modern CISC processors are just complex interfaces on top of RISC cores, but there really is some truth to that, isn't there?