• 224 Posts
  • 2K Comments
Joined 2 years ago
cake
Cake day: April 27th, 2023

help-circle
  • Har selv haft elbil i 4 år nu, og kørt omkring 120k km i den, og gik selv efter længst mulig rækkevidde dengang. Det er virkelig sjældent jeg bruger det må jeg bare sige, så kunne sagtens have købt en billigere bil med et mindre batteri.

    Hvilken rækkevidde vil du sige at du bruger tit? Altså hvis nu din bil har 400 kms rækkevidde men du meget sjældent er under 50% på batteriet så er svaret vel cirka 200 km. Hvor vil du sige du ligger der? Jeg tror selv jeg bliver fanget i at kigge for meget på rækkevidden.



  • Hmm kan desværre ikke få VLC til at streame den. På det punkt er mpv måske bedre? Men jeg fik downloadet hele filen og kunne se slutningen du nævnte. Havde nu håbet på at nogle af dem faktisk kom i spjældet, men det kan måske nås endnu.

    Forstår ærlig talt slet ikke at den slags finder sted. At folk har så lidt situationsfornemmelse for at det er en scam. Det er meget svært for mig at sætte mig ind i det.


  • Den har jeg på min liste over mulige biler 🙂. Overvejer også Citroën ë-C4, Hyundai Kona, Nissan Leaf eller Kia e-Niro. Jeg har slet ikke forstand på biler så ved sgu ikke hvad jeg skal kigge efter. Har heller aldrig haft en bil så ved ikke hvad jeg foretrækker. Det ender nok med en masse prøveture og den bil der giver den bedste mavefornemmelse :)


  • Kan godt se at hvis man virkelig har brug for en kæmpebil, så er det svært med elbil. Men er sådan en dieselbil ikke også rimelig heftigt dyr i drift? En elbil kan jo godt koste lidt mere og så kan man vinde det tilbage igen ved besparelsen på at bruge el, især hvis man har bilen i mange år. Men ved ikke om regnestykket giver mening og nok stadig ikke for VWs Buzz.



  • Eh, alt for stor for hvad jeg har brug for og alt, alt for dyr.

    Men udover det så er jeg virkelig ikke glad for VW’s dashboard - der er virkelig ikke mange fysiske knapper eller skiver. Jeg er personligt ikke meget for at de presser al funktionaliteten ind i en touchskærm. Og det gør de faktisk ikke bare i den bil, men hele deres ID række af biler, så vidt jeg kan se.











  • Jeg foldede 3x3, altså foldede dejen 3 gange over sig selv 3 gange, så 27 lag.

    Jeg vil gætte på at det der er gået galt for dig er at dejen har været for varm? Altså at smøret er smeltet og så løbet ud. Man skal holde dejen meget kold, både for smørets skyld men også for at sikre at gæren ikke begynder at hæve dejen, for så går lagene også i stykker.

    Jeg satte dejen i fryseren i ~10 minutter mellem hvert fold for at sikre at den holdt sig kold.


  • Definitely let go. Rust has some OOP features, but it’s mostly just the OOP idea of interfaces, which Rust models with traits. You can also do dynamic dispatch, which is another OOP feature, but you should almost never use this in Rust unless you absolutely have to. Then there’s encapsulation which is hugely important in Rust too, but yea outside of that kind of thing, I don’t think OOP patterns are too useful. Honestly, if you ask me, many of these “OOP patterns” are really just solving problems that OOP causes in the first place.

    Feel free to ask any other questions.


  • Thanks for explaining further, it’s a lot clearer now what you want to do. And no, I don’t think this DAO thing is idiomatic for Rust and you probably don’t want to do it like that. I’m not familiar with the pattern though, I’m not too much into OOP myself.

    Anyways, I’ve worked a lot with axum and sqlx before so I can tell you what I’d do.

    I am writing an axum backend which (like other backends) needs to do stuff in the database. As some endpoints update the database (and sometimes over multiple sql statements) I want to pass around the transaction as this embodies the connection I am using to update the database.

    This makes sense. You just want a database connection pool (sqlx provides this) in your axum state so your handlers can get connections to the database.

    To separate the axum stuff (parameters, urls and whatnot) from the actual database logic, I’ve first pulled out all the database interactions into separate functions. Because those functions are logically groups (e.g. stuff happening with invoices, others with contacts etc), I thought it was a good idea to create a “dao” struct (and agreed: my OO brain kicked in here which might be debatable). This would group the interactions for each logical domain into a short-lived data access struct.

    Again, not sure what this DAO struct actually entails, but what I would do and have done in the past is just do exactly what you said before: “I want to pass around the transaction”. So I would make my functions take the Transaction struct from sqlx (IIRC it has some type parameters and a life time but you can use a type alias to make it less verbose) and then I would just use that transaction in the function to call SQL. If you have a function that needs access to the database but doesn’t need a transaction, you can just use a plain connection instead of a transaction.

    To prevent passing around the transaction/connection, i wanted to pass that along during construction

    I’m not sure what you mean with “pass along during construction” but in any case, why do you want to avoid passing the transaction/connection? I feel like that is exactly what you should do. That is what you need to do anyway. Rust favours explicitness and you need to pass the transaction/connection to functions for them to use it, so just pass it.