Skip Navigation
Explaining software development methods by flying to Mars
  • Quick google shows that Kanban is a method. Mainlu around picking up things as the come, but also limiting how much can happen at once.

    The project I'm has a team that uses Kanban for the "Maintenance" tasks/development, take what is at the top of the board and do it. Adapt if higher priority things comes around, such as prod bugs. Our developments teams are trying to implement Scrum, where interruptions are to be avoided if possible during sprints. You plan a sprint, try to do that work, and can present it, and iterate when users inevitably changes criteria.

    In the meme, kanban does somewhat make sense, since getting armrests is never going to get a high priority as part of building a rocket. Scrum isn't exactly right, but I can see where it's coming from. They are all agile methods though.

  • I Will Fucking Piledrive You If You Mention AI Again
  • I kinda get where he is coming for though. AI is being crammed into everything, and especially in things where they are not currently suited to be.

    After learning about Machine learning, you kind realize that unlike "regular programs" that ML gives you "roughly what you want" answers. Approximations really. This is all fine and good for generating images for example, because minor details being off of what you wanted probably isn't too bad. A chat bot itself isn't wrong here, because there are many ways to say the same thing. The important thing is that there is a definite step after that where you evaluate the result. In simpler ML you can even figure out the specifics of the process, but for the most part we evaluate what the LLM said or if the image is accurate to our expectations. But we can't control or constrain the output to exactly our needs, because our restrictions largely are just input in a almost finished approximation engine.

    The problem is, that companies take these approximation engines, put them in their product and consider their output fact. Like Ai chatbots doing customer support, and make up facts like the user that was told about rules that didn't exist for an airline, or the search engines that parrot jokes or harmful advice. Sure you and I might realize that these things come from a machine that doesn't actually think about it's answers, but others don't. And throwing a "*this might be wrong because its AI" on it is not an acceptable waiver of accountability.

    Despite this, I use chatgpt and gemini a lot to help me program, they get a lot of things wrong but also do great. It's a great tool, exactly because I step in after the approximation step, review and decide. I'm aware of the limits. But putting these things in front of "users" without a review step means you are advertising that you are either unaware of this flaw, or just see the cost-benefit analysis and see that if noting else it'll generate interest during the hype.

    There is a huge potential, but throwing AI into a situation where facts are needed when it's only making rough guesses, is the wrong way about it.

  • What are you working on this week? (June. 23, 2024)
  • Working on a blog(entirely for fun), found out the server backend, actix-web, does not handle early termination of a stream well. Wanted to stop an upload if the file size turned out to be too large, but you have to consume the entire upload before returning an error. If not the client will never see the connection close. I guess there is a way to check the size beforehand, but sucks that you can't stop a stream in progress.

    Apparently a long standing issue.

  • Why Americans aren’t buying more EVs
  • It is not a defense of the manufacturers, but EVs are still damn expensive to make. And they are completely at fault for that too, because everyone except Tesla dragged their feet about making the EV transition.

  • Japan forces Apple and Google to open their mobile platforms • The Register
  • I use phone every day at office so I don't need to get the wallet out of my jacket when going to the canteen to buy lunch. It's literally the reason I started using my phone to pay. Too many times I forgot my card...

  • Do you have any smell you like/dislike even though most people don't?
  • New car smell, it's awful. Sort of stale plastic if I were to describe it.

    Amplified by long trips on bad roads as kid. Guaranteed to make you feel like vomiting on some sections. Now when I anticipate/pack for a trip I tend to smell that again even though I'm not even in a car.

  • What do you call application modules that are responsible for business logic?
  • It's not that universal, but we have named a few things "Engines", for example Balancing Engine. We also use services, but they are actually independent programs that performs jobs. Engine are used in other places, such as the ViewModels, or in the services.

    We put them in the DomainModel project which most things reference though. That's were most basic functionality and shared resources end up if they are used across Client/Service/Backend projects. So Domain / DomainModel might be a thing to use as well, if you want a specific namespace for that kind of use.

  • Can I refuse MS Authenticator?
  • It's worth adding I greatly prefer MS Auth style authentication, since I don't have to find the right entry to read the Auth code and then write it on the other computer. Instead MS pops a notification and you either type or select the right number, verify with fingerprint and done. Much more convenient.

    It often tells you what you login into and where you are attempt to log in from, so it's a few extra layers of security for those that have that awareness to check those details.

  • Have you ever bough an external hardrive only to take the disk out of it?
  • A lot of external drives are just internal devices with another controller and casing around. I had a 4TB I used with my laptop, and tore apart the casing and just plugged it into my desktop when I built one. Unless you start hammering the external case around, the drive will be fine.

  • Syncthing saved my ass
  • The simplicity of Google Photos has me still rolling with that.

    But for all my music, syncthing is the best. In my case it's synced to my phone though, and also backuped up from that to the cloud.

  • Twitter/x.com is now forcing you to disable Firefox's Enhance Tracking Protection.
  • I disabled my adblock for Twitter to see a update about game server maintenance. It showed me random posts, nothing from this year. Literally unusable site when you can't even see the latest tweets. Had to have other people tell me maintenance was extended...

  • Pros and Cons of using Rider over Visual Studio
  • Faster is 90% of the reason for me. It's just so much more smoother, i can find things faster and do things faster. ButI also use a lot of the developing features, creating/converting properties, functions and such. Probably also in VS but i'm not that used to them. I'm also used to quickly jumping around in the code by going to definitions. Rider is nicer here, because VS is clunky and feel like there is two system competing to do that in VS with Resharper. Not to mention the stutters and slow program.

    I like the git integration better in Rider. I think VS solved it, but selecting a remote branch wasn't actually getting you that branch before you pulled the changes manually. To the point where i pushed a brand new branch, someone else selected that in VS, and when they ran the build it didn't work at all because it didn't have all the changes?? It also did not auto-fetch, so it showed you were up to date with the remote despite not being... Apart from that, it makes swapping branches a lot easier. VS gets angry with uncommited changes. And while i wasn't a huge fan of the new diff view, diffs without newline changes and such is a killer feature, especially for someone that got a new editorconfig but not the entire codebase refactored... (because, too busy to do such a large change)

    The biggest downside to Rider is hot-reloading of XAML. Rider does not support that for .NET at least. It's a bit of a bummer since VS allows some very rapid iteration solving layouting issues.

    Just the last week, I have had memory issues where Rider eats up to 10 GB of ram and then starts stuttering after being open for more than a day. I just installed the latest update that hoepfully fixed that. Rider also sometimes just decides not to run one or more programs in a multi-launch config, particularly the first time after starting. That's a bit annyoing.

    I do not really like the database integration, but we also have a stupid oracle database and the way to handle that is a whole other story.

  • Possibly stupid question: is automated testing actually a common practice?
  • Our main motivator was, and is, that manual testing is very time consuming and uninteresting for devs. Spending upwards of a week before a release because the teams has to setup, pick and perform all featue tests again on the release candidate, is both time and money. And we saw things slip through now and then.

    Our application is time critical, legacy code of about 30 years, spread between C# and database code, running in different variations with different requirements. So a single page may show differently depending on where it's running. Changing one thing can often affect others, so for us it is sometimes very tiresome to verify even the smalles changes since they may affect different variants. Since there is no automated tests, especially for GUI (which we also do not unit test much, because that is complicated and prone to breaking), we have to not only test changes, but often check for regression by comparing by hand to the old version.

    We have a complicated system with a few intergrations, setting up all test scenarios not only takes time during testing, but also time for the dev to prepare the instructions for. And I mentioned calculations, going through all motions to verify that a calculated result is the same between two version is a awfully boring experience when that is exaclty something automated tests can just completely take over for you.

    As our application is projected to grow, so does all of this manual testing required for a single change. So putting all that effort into manual testing and preparation can intsead often just be put on making tests that check requirements. And once our coverage is good enough, we can only manuall test interfaces, and leave a lot of the complicated edge cases and calculcation tests to automated tests. It's a bit idealistic to say automated tests can do everything, but they can certainly remove the most boring parts.

  • New to Rust: How does Rust handle dynamic libraries

    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....

    13
    InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)BE
    BehindTheBarrier @programming.dev
    Posts 1
    Comments 104