Something I've realized after using chatGPT since the preview released is that I am still responsible for knowing what the possibility space is for what I want to do.
This helps in two ways. First, it helps me formulate my requests of ChatGPT. Second, it helps me discover incorrect output which I can then either fix myself or make a subsequent request of chatGPT.
I consider ChatGPT an extremely eager junior dev who makes mistakes by moving too quick in this slice of time. (Im sure it'll get much better very, very soon).
So... what advise is there for technology comfortable people who want to mitigate the effects of data leaks like these? It seems like data provided is will be exposed eventually and company size doesn't seem correlate with data safety.
For example should people be advised to rotate phone numbers every N amount of time?
Full disclosure: I'm just a hobbyist game dev with experience with arduino, and volunteering at my local robotics competition.
I would recommend getting into arduino. It's fun to buy little components, build little circuits, and see how your ability to program can have a physical manifestation.
As for programming concepts -- yes kinematics and inverse kinematics will allow you to move robotic limbs to certain points in real space.
And you'll find yourself wanting a larger conceptual framework to put those technical bits. That's where things like finite state machines, hierarchical finite state machines, behavior trees, and/or goal oriented action planners may come in handy. This grouping of concepts is often called "ai programming" but whatever you decide to call it, they're algorithms to decide what to do at any given slice of time.
Obviously follow your own path in this subject; follow the bits that resonate with you.
For me, it was "Behavior Trees in Robotics and AI: an introduction"
What conceptually helped me out was the idea that behavior trees (BTs) are hierarchical finite state machines (HFSMs). I read that and thought "woah!"
I've been fascinated by behavior trees ever since I learned that they were a big thing in Halo. It's charming to me to think that video games are able to help out in robotics, as the book pontificates on briefly.
I was thinking about getting a part time job at a coffee bar for the weekends (mostly for fun). I'm a little glad I didn't pursue this because I'd hate to lose my primary job as an engineer just because I wanted to sling some espresso again. I doubt that would happen because...
It's a much different scenario than what is usually talked about with these stories (2x full time vs full time + part time). Still, I wonder if there is (or soon will be) someone who has a part time job and will get fired for it?
Again, I doubt it because I don't think people looking into the scenario would think that's the right outcome. But you never really know I suppose!
Any advice for others going through this phase of their life? I have a terrible feeling this will be me; when I think of having a child I do think about it as if I will only be living for someone else (which is fine) but I have ambitions I want to materialize.
How has living a post child life given you more insight into your pre child thoughts?
That's good; you get more of a frame budget that way. I saw 90 and even 144 as target frames to avoid VR sickness. It's good to know 72 frames can work too.
As a hobbyist game dev one thing I've (recently) learned is that optimizing performance is paramount in video games. Running at 60 FPS you have a budget of 16 ms per frame (VR requires 90 FPS minimum else risk VR sickness; ~11ms per frame). Any scripts and anything you want on screen needs to fit in that amount of time. It's a big exercise in smoke and mirrors.
I'd love to know what optimization techniques are used so that those precious CPU/GPU cycles can go to those good looking things.
Side note: being absolutely forced to optimize the heck out of games as an essential practice gives me a much greater sense of performance characteristics in my "real" job and also in leetcode.
The unnerving thing about this post is just how I could very realistically find myself in similar shoes. I do many things and bet on my ability to learn as I go. Sometimes it does take some extra hours. Time is finite.
Why bravery to say "I don't know; I could probably find out but I cannot."
Writing automated tests for video games. Why is it interesting to me?
I started to teach myself unity in December 2021. I've personally experienced benefits to writing automated tests and using CICD; therefore, I thought it would be fun to learn about writing tests for a 3D based software. It will be different from the web/CLI based stuff I usually write.
So, it turns out that the video game community (or at least the online circles I frequent) are extremely against the idea of writing automated testing for various reasons. This translates into there effectively being a non-existent pedagogy around teaching how to write tests for 3D based software. Content is scarce, and the content you do find is produced by people who obviously don't write automated tests. So, for me I've hit the books to arbitrage & translate techniques and philosophies into this "untapped" domain.
It's interesting because I've figured out tips & tricks that I'd consider low hanging fruit... For example, if you place a "test" camera in the test case, you can actually see what's going on in the test when it's executed. Or how important it is to clean up every created game object in your test after each test; if done right, you can keep your SUT at origin (0,0,0). Or the importance of "test prefabs" who are effectively mocks of other "real" prefabs...
One innovation that I would like to use/build that I truly consider (((revolutionary))) is this: I want the test cases I write to also automatically (or when tagged with a certain C# attribute) generate the same game objects in a "exploratory(manual) test scene." I think this innovation is the "killer app" that will completely and totally sell the value proposition of automated tests to those opposed. If you decide to build this, please also publish it on openupm and reach out to me.
I have plenty of other thoughts and ideas on this space. I love talking about automated testing; it feels like a very futuristic programmer practice. I hope this post demonstrates why this work and space is so interesting.
My therapist says it's important to accept my personal story of how I came to be here. Sometimes that means grieving all the missed opportunities from the past. It's important to integrate the past into the present so you can confidently move into the future. Just make sure that you are a friend to yourself as you take stock of your past. YMMV.
Assuming you successfully did the hard work above, or have opted to skip it... Let's think about the future. Try to imagine where you want to be in 5 or 10 years. What does that look like? Is it an accomplishment? A style of living? A feeling? Freedom? Think however makes sense to you as we all have different sense of what we want. That's your end point that you'll try to target. Try to think of what would have to happen each year, each month, each week to get there. How can you do that sustainably? This is a type of thinking that may be helpful to you.
In my opinion it's good that you're auditing yourself like this. Maybe you don't really want to be doomscrolling your life away. But the hard question to answer is where do you want to turn your attention? What is important to you?
I think the author is good with naming symptoms and I think they miss the true culprit. It's not typescript that is causing this pain, no it's the pain of getting correct abstractions laid down in code. It's truly the pain of code design activity. Typescript and library programming is just forcing that pain to the surface instead of hiding it away.
I know this because I struggle against these "pain during code design" & "get abstractions right" forces when I program.
Declaring types is really declaring what domain objects your program cares about and function signatures are really just describing interactions that can happen. So what 'domain objects' should meaningfully exist in my program and how do they interact? A bad abstraction can burn up a lot of time, so make sure you check your abstraction. I typically check mine describing stories to my friends (or rubber duck) and ensuring I'm using plain English and the other person doesn't get lost. YMMV
When you're doing web client programming you're typically using a library to accomplish work, and much of that work is reacting to user input and rendering data. I would argue that because so much of the linguistic heavy lifting has been done for web client programming, practicing the abstraction exercise is done less than in other programming domains. Doesn't mean it couldn't, just trying to highlight a difference in programmer domains. This is why the pain is more apparent in library programming than web client programming.
I imagine that advanced individuals in code design understand more of the connection between math and programming and are capable of describing systems of interesting work in few simple statements. I hope to reach those heights someday.
My fear is if the unity app somehow loses focus, perhaps due to some annoying OS pop up. I'd love to learn more so I can be confident that it could run in production without too much concern.
This helps in two ways. First, it helps me formulate my requests of ChatGPT. Second, it helps me discover incorrect output which I can then either fix myself or make a subsequent request of chatGPT.
I consider ChatGPT an extremely eager junior dev who makes mistakes by moving too quick in this slice of time. (Im sure it'll get much better very, very soon).