• 0 Posts
  • 51 Comments
Joined 2 years ago
cake
Cake day: June 14th, 2023

help-circle


  • At some point you have to let them fail. Remind them of it again, so that when they cause a major issue in prod you can point out that you communicated it to them multiple times. If this team keeps causing outages (and aren’t covered for by other teams) then, hopefully, management high enough will become aware of it and start to crackdown on them. I know you said elsewhere you don’t want them to lose their jobs but if they can’t do it, they shouldn’t have it. It’s not like you’re sabotaging them - you’re still helping them with advice and warnings. If despite that help they still can’t get by, then them getting terminated is the remaining best outcome.



  • festus@lemmy.catoProgramming@programming.devnew Date("wtf")
    link
    fedilink
    English
    arrow-up
    7
    ·
    2 months ago

    Yes and no. Wasm has no “standard library” so if you wanted to use Dates, your wasm would need to have its own implemation bundled for when the user visits the page. Ditto for everything else including string support! As you can imagine having to ship all this basic functionality can bloat the wasm and slow page loads.

    You also can’t fully escape JS, as the only way wasm can interact with the page & browser are through the JS functions you write and make available to your wasm. I suppose you could take advantage of this to not have to ship your own standard library & use the JS Date implementation, but at that point why not just use JS?

    Wasm has strengths but it’s not suitable for replacing JS for everyday websites.









  • I think it really strongly depends on what you’re programming - I know in some instances Julia’s performance can be nearly identical to languages like Rust. I suspect in my case it related to Julia being a garbage collected language, as my algorithm involved creating very large dynamic structures in memory before serializing them, clearing the memory, and building another one. Since Rust has no garbage collector it knew exactly when and what to drop from memory. In my case I had roughly a 10x(!!) speed-up. Funny enough an even earlier version of that algorithm was programmed in Java, and Julia was roughly 10x faster that it, so Julia isn’t the worst of the pack.


  • So at my previous employer I developed using Julia a custom ML model which ran, but the performance just wasn’t good enough for what I needed despite trying to aggressively optimize. I ended up rewriting in Rust (and calling through R) which ended up being like 10x faster. At my current job I program a mixture of Rust and Python.

    If Julia were more peformant then it could potentially be an alternative to Python/R users having to learn Rust - but if you’re looking for top performance, some of your codebase is already written in R/Python, and you’re already willing to learn another language, then learning something like Rust naturally seems the better choice over Julia.

    The one thing I did like about Julia - it took barely anytime at all to build a working prototype.



  • I started self-hosting a bit prior to when Docker took off, and getting multiple services running was much harder. Service A wants a certain version of PHP installed with certain plugins while Service B wants a different version. You’d follow a tutorial for installing Service C and desperately hope that it wouldn’t somehow break Service A or B. You installed Service D for a bit despite all the installation pain and now want to uninstall it - I hope you tracked exactly what config changes you made throughout the system so you can undo it.

    Docker fixed all of this by making each service independent through containers which made self-hosting 10x easier. I’d also add that I love how easy it is to transfer my setup to a new server - I keep all of my container volumes in a specific directory and my docker-compose files in another and that’s all I need to backup / transfer. Without Docker you’d have to specifically handle each & every configuration file and database location, and if you later upgrade to a newer version of the OS or a different distro you’d have to handle possible conflicts between your versions and what the distro expects.