• 0 Posts
  • 30 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle
  • Writing in ASM is not too bad provided that there’s no operating system getting in the way. If you’re on some old 8-bit microcomputer where you’re free to read directly from the input buffers and write directly to the screen framebuffer, or if you’re doing embedded where it’s all memory-mapped IO anyway, then great. Very easy, makes a lot of sense. For games, that era basically ended with DOS, and VGA-compatible cards that you could just write bits to and have them appear on screen.

    Now, you have to display things on the screen by telling the graphics driver to do it, and so a lot of your assembly is just going to be arranging all of your data according to your platform’s C calling convention and then making syscalls, plus other tedious-but-essential requirements like making sure the stack is aligned whenever you make a jump. You might as well write macros to do that since you’ll be doing it a lot, and if you’ve written macros to do it then you might as well be using C instead, since most of C’s keywords and syntax map very closely to the ASM that would be generated by macros.

    A shame - you do learn a lot by having to tell the computer exactly what you want it to do - but I couldn’t recommend it for any non-trivial task any more. Maybe a wee bit of assembly here-and-there when you’ve some very specific data alignment or timing-sensitive requirement.



  • Well; you could use that engine to produce something well-written, deep and interesting like New Vegas, but that still got dinged for being an absurdly bug-ridden release with serious performance issues. It was great despite the engine, not because.

    There’s some slightly-shonky open world engines that support some really impressive RPGs (eg. Baldur’s Gate 3 on the Divinity engine - looks great but performance is arseholes) and some very impressive open-world engines that support some lightweight RPGs (eg. Horizon Forbidden West on the Decima engine - looks great and smooth as butter). And then you’ve got the Creation engine, which looks terrible and has terrible performance, and which runs bugs and glitches in a way that combines into (usually) very shallow RPGs.



  • It’s a simple alphabet for computing because most of the early developers of computing developed using it and therefore it’s supported everywhere. If the Vikings had developed early computers then we could use the 24 futhark runes, wouldn’t have upper and lower case to worry about, and you wouldn’t need to render curves in fonts because it’s all straight lines.

    But yeah, agreed. Very widely spoken. But don’t translate programming languages automatically; VBA does that for keywords and it’s an utter nightmare.


  • If you move past the ‘brute force’ method of solving into the ‘constraints’ level, it’s fairly easy to check whether there are multiple possible valid solutions. Using a programming language with a good sets implementation (Python!) makes this easy - for each cell, generate a set of all the values that could possibly go there. If there’s only one, fill it in and remove that value from all the sets in the same row/column/block. If there’s no cells left that only take a unique value, choose the cell with the fewest possibilities and evaluate all of them, recursively. Even a fairly dumb implementation will do the whole problem space in milliseconds. This is a very easy problem to parallelize, too, but it’s hardly worth it for 9x9 sodokus - maybe if you’re generating 16x16 or 25x25 ‘alphabet’ puzzles, but you’ll quickly generate problems beyond the ability of humans to solve.

    The method in the article for generating ‘difficult’ puzzles seems mighty inefficient to me - generate a valid solution, and then randomly remove numbers until the puzzle is no longer ‘unique’. That’s a very calculation-heavy way of doing it, need to evaluate the whole puzzle at every step. It must be the case that a ‘unique’ sodoku has at least 8 unique numbers in the starting puzzle, because otherwise there will be at least two solutions, with the missing numbers swapped over. Preferring to remove numbers equal to values that you’ve already removed ought to get you to a hard puzzle faster?










  • That’s almost exactly the problem. English uses helper words exclusively for future tense, and indeed, helper words like ‘to’ to form an infinitive. ‘Will’ is the helper word to show that something is a fact, that it is definite - grammatically, it is indicative. (The sun will rise tomorrow.) ‘Would’ is the helper word to show that something is an opinion, or dependent on something else - grammatically, it is subjunctive. (If you push that, it would fall; if it was cheaper, I would buy it.)

    Spanish has both helper words for future tense (conjugations of ‘ir’, analogous to ‘going to’, often used in speech) and straight-up conjugations for future tense (doesn’t exist in English; often used in writing). It also conjugates verbs differently if they’re indicative, subjunctive, or imperative (asking or telling someone to do something). This is how Spanish manages to have fifty-odd ways to conjugate every verb, which is very confusing to English speakers who make do with three ways and helper words.

    Translating a ‘future tense sentence’ for Duolingo requires you to have psychic powers about whether something is fact or opinion, which helper words are wanted, and so on, and it usually comes down to guessing between multiple ‘correct’ answers, which Duo will reject all but one of.


  • Absolutely this. I’d have argued that ‘every day’ is a more idiomatic translation than ‘daily’, and what native speakers would say, but that’s irrelevant. English tends to emphasise the end of sentences as the most important part, so all these translations are correct depending on the nuance that you intend:

    • Daily in Hamburg, many ships arrive (as opposed to eg. cars, or few ships)
    • Daily, many ships arrive in Hamburg / Many ships arrive daily in Hamburg (as opposed to eg. Bremen)
    • Many ships arrive in Hamburg daily (as opposed to eg. weekly)

    Wouldn’t question any of those constructions as a native speaker. In fact, original responders’ example was why I gave up on Duolingo myself originally, some years ago. Translating ‘future tense’ sentences from Spanish into English or back again is always going to be a matter of opinion, since English doesn’t have the verb conjugations that Spanish does. Guessing the ‘sanctified answer’ is tedious, when a lot of the time it’s not even the most natural form of a sentence.


  • Ah, I thought that some of these were being posted with the location of the studio - thought some of our bands might have recorded in the States once they got bigger, might have been some better-equipped studios over there. But it makes sense that it just a mistake. Priest are from Birmingham and Steel was recorded in Ascot, so middle and South of England. 100% British as you like.


  • Well now. A few things, here:

    • there are not 9 × 9 × 9 × 9 × … possible ways to play. After the first move, 8 squares remain, and so on, so there’s at most 9 × 8 × 7 × … = 9! = 362880 ways that the game can be played, ignoring the fact that most of those can be eliminated as reflections and rotations, or as win positions before you fill the whole board.

    • we don’t care how we got there. Each square can either be blank, a cross, or a nought, so 3^9 combos = 19683, and most of those are illegal, as only the boards where there’s (one or zero) more crosses than noughts are good. And you don’t need to store ‘the computer’s move’, just jump directly to letting the player go again. Let’s guess we need at most a quarter of that.

    • we could have created a single web page with 5k anchor elements on it back in the HTML 1.0 days, ignoring the fact that it would have taken a while to download on our 28.8K modems. That wouldn’t have been 170 Mb of unnecessary tagging, even with the ‘lay it out with tables’ style we had at the time.

    Google do seem to have a predilection for reinventing the past, poorly. I hear that their bonuses are based on inventing ‘new’ things, though, so it’s in their interest to pass it off?


  • Exactly this. It is of course possible to fix anything, given spares, skills and time, but if you have to ask, then you probably don’t have the skills already.

    Kitchen equipment tends to be quite simple to repair - burned out heating elements generally just unscrew, motors and valves in washing machines tend to be modular, and just swap out - but if you’re not confident with a multimeter then you won’t be able to diagnose it. They tend to be high-power appliances too, which are the riskiest when things go wrong.

    If the alternative to fixing it is just to replace it, then feel free to take it to bits and see if you can decide what’s wrong. If there’s very obviously a burned-out part and it’s easy to swap out, then go for it. Otherwise, you can learn about that the parts are and how it all fits together - every day is a school day.


  • Ah - that’s happened to me before. Making banana wine, crushed and boiled my fruit selection, didn’t filter it very well before fermenting, blocked the airtrap in my demijon, first I knew about it was an almighty bang and then I had to repaint the kitchen.

    Joy of homebrewing, am afraid. Sometimes you do stupid things and they turn out amazing, and sometimes you do sensible things and just forget one tiny but essential step. I heartily recommend making snakebite-and-black homebrew, btw - lager kit, cider kit, couple of bottles of blackcurrant juice all in your fermenter; loses all its sweetness and most of its purple colour and the result is a very tasty brew.