HNHacker News
TopNewBestAskShowJobs

andrewallbright

260 karma · joined March 14, 2022

submissionscomments
andrewallbright··on AI breakthrough ChatGPT raises alarm over student cheating
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).

andrewallbright··on Show HN: Whole Git repo was made with ChatGPT
ChatGPT is now helping me learn terraform ^^;;

What a time to be alive.

andrewallbright··on WhatsApp data leak: 500M user records for sale
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?

andrewallbright··on Act: Run your GitHub Actions locally
Good tip -- engineers are like Jurassic Park because they always find a way.

Will you evaluate this tool to see if it affords a nicer workflow for you?

andrewallbright··on Ask HN: How do I get into robotics?
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.

andrewallbright··on Ask HN: Any pain points worth building an MVP for?
Something I've wanted was a way of setting up any computer I touch to have what I want/expect it to have so I can start working in a dev environment.

I dev on windows, osx, and Ubuntu.

So far I've written a go CLI that is able to bootstrap some stuff for a fresh computer, and tell me what I'm missing.

andrewallbright··on Ask HN: Do you recall any book or course that made a topic finally click?
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.

andrewallbright··on Multiple assertions are fine in a unit test
I've spent some time testing and thinking about testing. I think the universal guidance that should be followed is this...

Do whatever you need/want to that makes your software successful. The rules are meant to be broken if it means you shipping.

andrewallbright··on Tech CEO fired two engineers for having second full-time jobs
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!

andrewallbright··on Getting Out of a Rut
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?

andrewallbright··on Amsterdam looks incredibly realistic in the new Call of Duty
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.
andrewallbright··on Amsterdam looks incredibly realistic in the new Call of Duty
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.

andrewallbright··on Mastodon.technology Shutdown
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."

andrewallbright··on Ask HN: What interesting problems are you working on?
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.

andrewallbright··on Automated testing in Bevy
Writing automated tests for video games is some of the most fun programming I do.
andrewallbright··on Ask HN: How can I come to peace with the years I wasted on pointless things?
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?

Hope some of this helps.

andrewallbright··on TypeScript is terrible for library developers
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.

andrewallbright··on Man who built ISP instead of paying Comcast $50K expands to hundreds of homes
...And they say 10x engineers are a myth.
andrewallbright··on Tesla remotely converts battery pack, cutting 1/3 of range
This situation certainly feels like it should be in a Dilbert comic.
andrewallbright··on Ask HN: Anyone making software for kiosks, infotainments or similar?
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.
andrewallbright··on VRchat bans mods, embraces EAC
This is a real shame. I met many interesting people on VR chat. Some were exploring identities that only a virtual world would allow them to. Mods enabled these people to lose themselves in the fantasy of their identity. I heard sad stories about how VRchat was where they could be themselves.

They're going to lose that opportunity now. For what? Tighter control so VRchat can engineer their own knock off mods? Greedy. Sad.

andrewallbright··on Code doesn’t have to be a mess
As a journeyman programmer, I have found a few tools to help me reduce complexity.

Abstract interfacing techniques like base classes, abstract classes, and (my favorite) interfaces allow me to model interesting things.

Thinking about relationships between things in my systems versus categorizing things helps me avoid the "if you want to do something in OOP you must first define the universe" type problems.

DDD and conceptualizing how 'infrastructure' components interact with my main system is a nice guide for me.

Trying to write good tests is how I'm able to bounce around a few projects without having to read source code to reload context.

These are things that work for me. As I continue my practice I may find that I'm wrong or misinformed about some things. I should hope that I'll be able to incorporate a higher understanding as I gain more experience.

andrewallbright··on Ask HN: Anyone making software for kiosks, infotainments or similar?
Not as a main gig, but I frequent an arcade bar very often. I've started light research into how I might put together an arcade cabinet running a unity app using a raspberry pi. I was looking into how to automagically start the app in full screen using Linux. Something that I think may be accomplished using systemctl? The idea is to have it be plug and play; arcade bar staff should just turn it off and back on for it to restore video game service.

Any tips are welcome and appreciated. If not, I'll do heavier research when I am ready to hack this idea into life.

andrewallbright··on Your job was probably outsourced for the reason you suspected
Outsourcing stories are interesting to me for a couple reasons.

(1) Why do people think subpar programming from outsourcing companies will always hold true? The more business/experience these shops acquire the more likely the engineers develop better software practices. The developers writing crappy code have an opportunity to learn how and why it is bad. Over a long enough period the environment will eventually produce excellent developers I would argue.

(2) What happens to the displaced talent? If big corp decides to slash its talent and compete in the software world with the equivalent of a zerg rush (many outsourced engineers versus one onshore engineer), what if they are really sowing the seeds of their own destruction? If amazing engineer with business domain knowledge and enough to comfortably live on savings for 6-12 months is laid off, perhaps they decide to join a competitor or even start their own competing software?

andrewallbright··on I regret my website redesign
I respect the tone of this blog post. I pause to think how I would word this experience if it happened to me. Since it hasn't, I don't really know how I would react. However; having this cool composure to think through why things ended up as they did and how it could be improved in the future is something I hope to aspire to.

"We just didn't fit" is a fantastic conclusion.

The ego is one helluva thing, and a hurt ego with negative self talk can lead one down silly paths. OP is cool as a cucumber.

andrewallbright··on Ask HN: What stack for a multiplayer board game?
If it were me, and if there is a graphical component I would use this as my stack. (Note: I am a hobbyist game dev).

- Unity + mirror (multiplayer library) for the server client. The library documentation will help with a mental model of a multiplayer game. Export the binary of whatever your target OS will be. I prefer linux. - Unity for the game client. I prefer webGL export for the client so I can host the HTML/JS/WASM like a normal static site. However; you can (also) export windows, Mac desktop apps too. - nginx to host the static site and reverse proxy to the multiplayer - systemctl units for nginx, and the multiplayer binary on some linux OS. I prefer Ubuntu.

For the code; it's all about developing a mental model of what things exist in your system and what interactions those things have with each other.

It being me, there is a CICD system somewhere running tests for pretty much anything.

andrewallbright··on Playstation store will remove customer’s purchased movies
Erm... As someone who has embraced digital purchases, what?!

I need to look into if I can back up my digital movie purchases onto physical media. This maneuver is outrageous.

andrewallbright··on Why Linux Succeeded
When multiple different people and multiple different circumstances align in just the right way, I do believe it's magical. Literal magic.

My experiences as a person tell me that people and egos and circumstances constantly conspire against goals, ambition, and vision. There's always something that stymies a project. Maybe it's someone's ego. Maybe it's a problem that drains someone out completely. Maybe it's just a bad day for someone.

When networks of people are able to join together and fight entropy enough to sustain the life of a project... Wow. Just wow.

Anyone who added any type of energy into Linux that sustained it for everyone has my admiration.

andrewallbright··on Meta Accounts: A New Login for VR
It is an interesting growth play that Meta is doing (putting aside our feelings about it).

By putting out relatively cheap VR headsets and requiring a meta (Facebook) account to use it, they are getting young people signed up for meta. Those young people might not have signed up for Facebook/Meta otherwise. It's a sneaky way to reduce friction and maybe convert young people onto the social media platform.

It also reminds me of how google's social network automatically created profiles on their social media spot. That experiment failed. Will meta's growth play fail?

This is purely me trying to figure out the business angle.

andrewallbright··on A controversial shipping law is swaying the price of gas
I honestly do not understand how the mass mobilization of the US economy for war in the 1940s actually happened or operated.

Was it bottom up, with factories competing to make products (trucks, ammo) for lend lease? Basically government used tax payer money to become a big buyer of things, incentivizing companies to reorient towards making those things? And then when the US entered the war, the types of contracts offered changed.

Was it top down, with the government operating more like a command economy telling businesses what to make, and when? It wasn't a choice, it was a demand because the country is at war!

These are two guesses I have. My mental model is based mostly on the movie "War Dogs." I'm sure it's a mix of both bottom up and top down. Maybe with a mix of cocktail parties with important industry business people and important government people chatting about would is feasible sprinkled in.

I do not understand how the war time mobilization of the US economy actually happened. If anyone knows, I would appreciate a summary or a book recommendation. I think I have a topic for my next Wikipedia deep dive.

Page 1 of 2Next →