BehindTheBarrier

joined 1 year ago
[–] BehindTheBarrier 8 points 4 hours ago* (last edited 4 hours ago) (2 children)

I largely agree with this nodding along to many of the pitfalls presented. Except numbers 2s good refactor. I hope I won't sound too harsh/picky for an example that perhaps skipped renaming for clarity on the other parts, but I wanted to mention it.

While I don't use javascript and may be missing some of the norms and context of the lanugage, creating lamda functions (i don't know the js term) and then hardcoding them into a function is barely an improvement. It's fine because they work well with map and filter, but it didn't address the vague naming. Renaming is refactoring too!

isAdult is a simple function with a clear name, but formatUser and processUsers are surprisingly vague. formatUser gives only adult FormattedUsers, and that should probably be highlighted in the name of formatUser now that it is a resuable function. To me, it seems ripe for mistaken use given that it is the filter that at a glance handles removing non-adult users before the formatting, while formatUser doesn't appear to exepct only adult users from it's naming or even use! Ideally, formatUser should have checked the age on it's own and set isAdult true/false accordingly, instead of assuming it will be used only on adult Users.

Likewise, the main function is called processUsers but could easily have been something more descriptive like GetAdultFormattedUsers or something similar depending on naming standards in js and the context it is used in. It may make more sense in the actual context, but in the example a FormattedUser doesn't have to be an adult, so a function processing users should clarify that it only actually creates adult formatted users since there is a case where a FormattedUser is not an adult.

[–] BehindTheBarrier 2 points 16 hours ago

He may have used the wrong word, but maintaining the same function signature across two files (while made easier by IDE tools) sucks ass to do. It was one of the major pain points for me doing a C++ course (along with the abyssmal compilation error messages). Not that I have tried Zig, but I do not see a reason to involve header files in my life if I can avoid it.

[–] BehindTheBarrier 11 points 1 day ago

It's not the fart (speed) that kills you it's the smell (crash). A Norwegian English joke.

[–] BehindTheBarrier 2 points 2 days ago (1 children)

Looks very Norwegian, and there seems to be a crossing on the road used to prevent sheep from leaving the area (while cars still can drive over it) which is also something we have in Norway.

[–] BehindTheBarrier 3 points 3 days ago (1 children)

I'm red green colorblind but ended up at 177, which is fairly close to the (as I see at least) middle while line dividing green and blue.

Which is surprising because I bought blue chopsticks in Japan, and my mother say they are mainly green, much to my frustration.

[–] BehindTheBarrier 0 points 1 week ago

Late here, but if you want the easy route then there is always Unity (C#) if it fits for your use case in game dev and the license isn't a problem for you.

[–] BehindTheBarrier 9 points 1 week ago

If you use it frequently, I suggest getting a GUI that have profiles or remember options so you don't have to mess with commands all the time. I wrote my own little command line wrspper which is Windows only since I don't have Linux to test on. Though it shouldn't take much effort to add support.

Makes it much more convenient when you don't have to specify things like archive (ignore duplicates), filename to be "artist - title" (where possible), download destination, etc. Just alt-tab, Ctrl-v, Enter. And the download is running. And mine also has parallel downloads and queue for when you got many slow downloads.

[–] BehindTheBarrier 26 points 4 weeks ago (1 children)

I'm not sure if many children = bad in the comic, or if it is more nuanced.

But triplets fight on average a lot more, and imagine 3 mini Everett Trues going et eachother! I'd jump out the window too.

 

Some background, I work full stack while we also man the support email from users. I'm manning the support email this week, but today I was also tech support for a fellow developer.

We use HP docks to connect everything from screens to keyboards. But today a dock would not do anything when my colleague attempted to use it.

Being the nosy kind, I went and asked the usual

  • Did you reboot?
  • Did you remove the power to the dock?
  • Try messing with the drivers?
  • lock the screen before unplugging?
  • Tried another dock?

All yes, none worked. Our IT support hadn't opened for the day yet and he was looking into updating the specific dock driver.

So I asked, did you try the other USB-C port? And what do you know, that worked. Then he just plugged right back into the first USB-C port and everything was back to normal. I don't know who made the drivers, but it's pretty danning when they can brick a specific USB port until it's forced to redo whatever config that messes it up, by using another USB port...

If anyone wonders, the docks have a magnetically joined charging and USB plug, so it's fairly natural to plug them in together side by side. It's also almost uniquely a dock issue and not a dead USB port, so it's funny that the enite thing uncloggs from just using another port for a second. But a reboot does not...

[–] BehindTheBarrier 2 points 1 month ago (2 children)

I sorta remember this happened, or something like it, try actually clearing your cookies and logging in again. That might make it stick.

[–] BehindTheBarrier 1 points 1 month ago* (last edited 1 month ago)

Ultimately, I don't see any need for users to care about ids. I'd just make a user ID column in the category table and use that for selecting categories. Rather think about a display name that is either known or made by the user.

The only problem with increasing numbers is if you don't properly limit access to creator account and a user can just edit the url bar to get others categories. It's still a problem with other unique stuff, but less easy to crack when it's not sequential.

If you really want it, just replace ID in the url with the category name, if that is a simple string without any special characters. Actually useful for users visually, avoids numbers, users only see what they care about, still no bridging table. And the query is still a simple where user_id = x and category_name = y. This actually means non-unique names, but you are always filtering on users, so you can instead use a constraint or unique composite index on user_id and category name.

Personally i would stick with IDs because they are simple, and don't change so they are not prone to renaming, special character issues, and whatever else string handing deals with. And it's probably slower.

[–] BehindTheBarrier 3 points 1 month ago* (last edited 1 month ago)

Not for the rapid update that broke everything.

See post incident report:

How Do We Prevent This From Happening Again?

Software Resiliency and Testing

  • Improve Rapid Response Content testing by using testing types such as:

  • Local developer testing

  • Content update and rollback testing

  • Stress testing, fuzzing and fault injection

  • Stability testing

  • Content interface testing

  • Add additional validation checks to the Content Validator for Rapid Response Content.

  • A new check is in process to guard against this type of problematic content from being deployed in the future.

  • Enhance existing error handling in the Content Interpreter.

 

Rapid Response Content Deployment

  • Implement a staggered deployment strategy for Rapid Response Content in which updates are gradually deployed to larger portions of the sensor base, starting with a canary deployment.

  • Improve monitoring for both sensor and system performance, collecting feedback during Rapid Response Content deployment to guide a phased rollout.

  • Provide customers with greater control over the delivery of Rapid Response Content updates by allowing granular selection of when and where these updates are deployed.

  • Provide content update details via release notes, which customers can subscribe to.

Source: https://www.crowdstrike.com/falcon-content-update-remediation-and-guidance-hub/

[–] BehindTheBarrier 5 points 1 month ago

Compute becomes cheaper and larger undertakings happen. LLMs are huge, but there is new tech moving things along. The key part in LLMs, the transformer is getting new competition that may surpass it, both for LLMs and other machine learning uses.

Otherwise, cheaper GPUs for us gamers would be great.

22
submitted 1 year ago* (last edited 1 year ago) by BehindTheBarrier to c/rust
 

I'm super new to Rust, like a day old really.

But I tried a program made in Rust on Windows, and it refuses to work.

Never prints anything. Just straight up instantly dead. Long story short, this thing relies on some linked stuff like ffmpeg in some form. So, I did my best trying to gather all the things it needs per github issues, reddit and other souces. And the end result was that it now spent 0.1 s longer before crashing, actually leaving time for some error in the Windows Event log. Nothing useful there either as far as I can see.

So I clone the repo and get the required things to compile Rust, and I managed to build it from source at least. The executable doesn't run, but the Run in VS Code works, somehow. It prints the error messages corresponding to missing input. So i try to debug it, but nothing happens. No breakpoint is hit, and nothing is printed in the terminal, unlike when using Run or cargo Run. I can also just strip out everything it does in the file the main function is in, and it will hit breakpoints. But that didn't help me find out what is missing/broken though.

So what the difference, is there a way to catch and prevent Rust from just going silent, and actually tell you what dependencies it failed to load?

My entire reason for getting it running locally is to fix that. Because no one sane wants to deal with a program that doesn't tell you why it will not run... And when debugging also does nothing... I'm out of ideas.

The program is called Av1an for reference, and it's a video encoding tool. I used a python version before they migrated to Rust, and wanted to give it a try again.

Edit: Wrote linked library, but i think the proper term is dynamic libraries. I'm really not good with compiled programs.

Update: Figured it out. Had to copy the out files from the ffmpeg compiled stuff back to the executable. Apparently Cargo Run includes that location when looing for the files, while running from the command line clearly doesn't.

But the biggest whiplash, was that I got a full windows dialog popup when i tried to in the exectuable in CMD instead of Powershell. Told me the exact file I was missing too. I know PowerShell is a bitch when piping stuff, but I'm amazed no other program or error message could hand me that vital information. Fuck me, I wish I had tried that from the start....

view more: next ›