If it takes 1+ hours of work to remove a feature flag branch in an area of code, I wouldn’t trust the correctness of anything the AI writes and would be super skeptical about anything the humans had written.
If it takes 1+ hours of work to remove a feature flag branch in an area of code, I wouldn’t trust the correctness of anything the AI writes and would be super skeptical about anything the humans had written.
The synchronization problem (flakiness and all the waits) is tricky to get right. Browsers are concurrent systems, and programming around one is specialized enough that many devs don’t do it well, e.g. IMO if you’re adding ad-hoc waits or nesting timeouts, you’ve already lost.
It refers to a male cousin that is NOT in the same paternal line, so maybe not too uncommon?
Good code is code that’s easy to delete.
I’m not a game dev, but it’s got a reputation for being more of a software engineering shit show than other software industries, which your story only reinforces.
Fine for prototyping, but adds a scaling tech debt “time bomb” for a live system. Those associations had better be really sparse.
So… a polymorphic many-to-many join table?
If talking about a closed source app, their whole goal is to move off of hosting closed source systems.
Article says the decision follows a successful pilot project, so they’re willing to absorb the short term costs. Optimistically in the long run, the symbiotic benefits of having a government entity using and supporting a full FOSS system will be huge.
One of the best use cases is implementing abstract data types and hiding the memory management and other potentially unsafe optimization tricks behind a clean and high level abstraction.
Also since it’s a logical/mathematical construct and not attempting to model the real world (like business logic), it’s one case where inheritance hierarchies will remain stable.
I feel a lot of advice here is trying to push the learning envelope without considering fun & the learning experience. This is for an 8 yr old, and I’m seeing suggestions that would seriously challenge high schoolers, college students, and even some software engineers in industry I’ve encountered.
For the software aspects of programming, I would suggest looking at programming(-esque) games and web browser programming environments. Here’s a solid short list, vaguely sorted from “proramming-esque” to “actual programming”:
Suggestions to go physical tinkering with electronics is good, but I’m unable to make good suggestions there.
A real computer and coding environment/shell could be good for system admin skills, but the learning curve is steep. You’ll also have to be okay with letting him accidentally brick the computer (best way to learn!).
Disagree with Docker and git at this stage of learning. This is an 8yr old playing with scratch, Minecraft, and early levels of CodeAcademy.
The answer to “not dealing with environment” isn’t Docker, it’s a programming(-esque) game or an in-browser environment.
IMO okay advice for specific types of issues, but way too prescriptive to work well generally.
Steps 3-4-5 are good, and breaking it down like that could be helpful to readers, but in my mind, it should be so well practiced and executed so naturally that it feels like a single step. I also think there ought to have been a mention of the fast iterative experimentation where 3-4-5 is repeated.
Break the build (and block other devs)? Is this a 1-team company?
Write a test first? Maybe, if you’ve already got a well isolated, somewhat understood problem whose solution won’t require deeper restructuring.
Immediately “Brainstorm as many hypotheses … as you can think of”? Inefficient if you already have a good idea of what’s wrong (wasting time guessing), and also inefficient if you have absolutely no idea what’s wrong (wasting time with uneducated guesses).
Ooh yeah PR as patches, persistent despite rebases, would be nice.
Many git operations fundamentally have three SHAs as parameters (tree operations after all), and GitHub’s model simplifies it down to two.
Unfortunately it’s uncommon now that GitHub’s PR workflow dominates, so people think in terms of (often squashed) PRs and talk about “stacking PRs”. At least GitHub supports viewing PRs commit by commit.
If PRs are just how it’s going to be, I wish GitHub could auto cut stacked PRs from a linear branch of commits.
Oh, interesting
Hell of a frame budget to work by, but I don’t know much about game programming
You can, once you find a game that runs at 1k fps
If you were reviewing a “non-trivial” PR from me, I’d recommend not squashing because I would’ve broken it up into readable atomic commits.
Not surprising that PDF comments were being used as a task list/tracker. In the same manner, Google Docs supports “@-mentions”, “assign to”, and “resolved” functionality for comments.
All you can do is send feedback to Adobe somehow and hope they add that feature back in. In the meantime, best to find an alternative workflow.
avoiding merge conflicts
No, not like that – you misunderstand. I’m not talking about actively avoiding conflicts. Coordinating to avoid merge conflicts is the same work as resolving a merge conflict anyway, just at a different time.
I’m talking about creating practices and environments where they’re less likely to happen in the first place, never incurring the coordination cost at all.
One example at the individual level is similar to what you mentioned, but there’s more to it. E.g. atomically renaming and moving in separate commits, so git’s engine better understands how the code has changed over time and can better resolve merges without conflict.
But there’re other levels to it, too. A higher-order example could be a hot module where conflicts frequently occur. Sure, atomic commits and all that can help “recover” from conflict more easily, but perhaps if the hot module were re-designed so that interface boundaries aligned with the domains of changes that keep conflicting, future changes would simply not conflict anymore.
IMO the latter has an actual productivity benefit for teams/orgs. Some portion of devs just aren’t going to be that git proficient, and in this case, good high level organization is saving them from losing hours to incorrect conflict resolutions that can cause lost work, unintended logical conflicts (even though not lexical conflict), etc. Plus, it implies abstraction boundaries better match the changes demanded by the domain, so the code is likely easier to understand, too.
It’s kind of difficult to explain in the same way git is difficult to grok on the first try.
Perhaps it’s convincing enough to just say:
I.e. whether a conflict will happen is not some totally unpredictable random event. It’s possible to engineer a project’s code & repo so that conflicts are less common.
I’ve heard of publishing software to design photo albums/scrapbooks/cards etc. Is there a photo collection manager for archiving, sorting and filtering?
Given access to a large set of personal photos, say tens of thousands, it should be able to group, categorize, tag, and sort along a myriad of dimensions.
Example dimensions would be time, people and places. It would need some facial recognition/image classifier/similarity scoring capability.
There definitely are some cloud offerings today that do similar things, but I’d want it to work locally for privacy and practical reasons.