Skip Navigation

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/)AB
Posts
0
Comments
1,096
Joined
2 yr. ago

  • Light weight panels tend to produce less power. The best ones are opaque and have a thick glass layer on both sides of the circuitry - so they're not super light. Also the glass would need to be strong enough to handle rocks/etc as well as provide structural support in a crash (even if it's just with the initial impact and then shatters similar to a car windscreen).

    They could theoretically be light however in reality heavy panels might be a better choice.

    But yeah I agree you're on the money with protecting the car. This could make a big difference to the usable life of the battery by keeping it closer to the optimum charge level especially with a normal daily suburban to city commute.

  • Yeah sorry - that's just unnecessarily obtuse. Programming languages just don't need to be that convoluted. Hello world should look something like this:

     
        
    print("Hello, World!")
    
      

    And when you need more complexity, it can still be far simpler than Unison (or Haskel). For example this (in Swift):

     
        
    func processNumbers(_ numbers: [Int]) -> [Int] {
        return numbers.filter { $0 % 2 == 0 }.map { $0 * $0 }
    }
    
    let numbers = [1, 2, 3, 4, 5, 6]
    let processedNumbers = processNumbers(numbers)
    print(processedNumbers)
    
      
  • Recursion is a little easier to understand if you use goto instead of functions. Functions are a high level concept in the C language (and most other languages) but it gets compiled down to (essentially) the older goto style of programming.

    Most modern languages don't even have goto support, since functions are generally more reliable, however as a programmer you should be aware what's going on under the hood. Here's your code rewritten to use goto (I also generally rewrote the whole thing to be a bit easier to grok):

     
        
    int main(void)
    {
        int height = get_int("Height: ");
        int row = 1;
        int col = 0;
    
    draw:
        if (row > height)
        {
            goto end;
        }
    
        if (col < row)
        {
            printf("#");
            col++;
            goto draw;
        }
        
        // Move to the next row
        printf("\n");
        row++;
        col = 0;
        goto draw;
    
    end:
        return 0;
    }
    
    
      
  • Recursion is much easier to understand if you use goto instead of functions. Functions are a high level concept in the C language (and most other languages) but it gets compiled down to (essentially) the older goto style of programming which is much easier to understand.

    goto 42 will move execution to line 42 of the code. goto x will move to the line of code labeled x.

    Most modern languages don't even have goto support, since functions are cleaner and tend to produce more easily maintained code, however as a programmer you should be aware what's going on under the hood. Here's your code rewritten to use goto:

     
        
    int main(void)
    {
        int height = get_int("Height: ");
        int row = 1; // Starting row
        int col = 0; // Starting column
    
    draw:
        if (row > height) // Exit condition
        {
            goto end;
        }
    
        if (col < row)
        {
            printf("#");
            col++;
            goto draw; // Repeat the same row
        }
        
        // Move to the next row
        printf("\n");
        row++;
        col = 0; // Reset column for the next row
        goto draw;
    
    end:
        return 0;
    }
    
    
      

    PS: goto is also how for loops, if statements, switch blocks and others work under the hood.

  • For me the optimal conference is one where your accommodation is included in the ticket price and in the same building as the conference. Book out an entire resort or cruise ship and encourage people to socialise late at night and/or early in the morning outside of the main conference track.

    And with the actual talks, spread them out so there's plenty of time for attendees to have discussions in between talks.

  • Except it's rarely the "same car". For example a Tesla Model 3 manufactured in China has an LFP lithium-ion battery, while the US manufactured ones use an NCA lithium-ion battery. It's by far the most expensive component of the car and LFP batteries are much cheaper.

    There are often other differences too - such as optional extras being standard in one market. And warranties vary (those are not free - it costs money to fix faulty cars and they factor it into the sale price).

  • In short: The per message AES key is derived from the contacts public RSA key.

    Erm that's not how it actually works. Though in your defence, "in short" is pretty hard to achieve here.

    The real headache though isn't encrypting the messages. It's making sure that only the intended recipient has the decryption key for your message. That's where E2EE messaging gets complex and frankly Apple doesn't do the best job.

    It's theoretically possible with iMessage, especially in a nation state level attack, for a compromised device to be one of the recipients your encrypted message is sent to. Wether "theoretically" is "actually in practice" happening is hard to judge, because nation state attacks are normally hidden by court mandated disclosure suppression orders.

    The way Signal is architected, it wouldn't be possible to comply with a court order like that. Unfortunately that means some Signal based messaging services will be forced to exit the UK since laws coming into effect next year will give them no other choice. It'll be interesting to see if signal based services (like Google RCS) also walk or will they weaken their encryption in order to be able to comply.

    The fact at least one nation state is passing laws that force "encrypted" messaging services to have the vulnerability that iMessage has is a pretty strong smoke signal that attacks like that are happening....

  • Oof that's bad.

    Although it should be noted that in well designed apps this should only be metadata. The push notification should just tell the phone that "content is available", which will power up the CPU, launch the app in the background, download your actual message/etc, decrypt it, and finally put a notification on the lock screen.

    Metadata is obviously useful to law enforcement, but unless the app is really poorly written they shouldn't be getting your actual notification alerts. Those should be E2EE and therefore can't be disclosed.

    Unfortunately the notification system does allow messages to be sent without encryption. Perhaps they should remove that feature.

  • No... When you send a "blue bubble" photo on an iPhone the file size is around 1.5MB. When you send a "green bubble" photo I think they're resized down to less than 300KB.

    Any photo larger than that won't be delivered by some carriers. Also while iMessage photos default to HEIF format - the same compression algorithm as Blue Ray videos - MMS uses JPEG which doesn't have a target file size feature. All you have is the width/height in pixels and an arbitrary "quality" scale.

    To guarantee your photo will never be over 300KB you need to set the width/height/quality to a number that will often be under 100KB... and that's what Apple does.

    Android has a size setting, and you'll get a delivery failure error if you set it too high for the recipient's carrier... a lot of carriers do support larger photos... But Apple doesn't bother with that - they want it to "just work". Which means 100KB for green bubble photos.

    The reality is quality is always going to suffer - converting an image from HEIF to JPEG is a bad idea - it'll never look anywhere near as good as the original no matter what resolution or quality the compression is set to.

    Also... iPhones don't even take ordinary photos... by default every "photo" is a short video. When you send those to another iPhone, they get the video. Green bubbles either get a still image or worse a 100KB five second video.

  • https://caniuse.com/?compare=firefox+120,and_ff+119&compareCats=all

    If you scroll down past the browser version checkboxes (I've ticked the right ones for you) and list of features FireFox supports, you'll find a very long list of web features that don't work (or don't work properly) in FireFox.

    Some of them are pretty important features and there are sites that use them. Pretty sure Google Sheets uses the Filesystem stuff for example - it "works" in FireFox but not as well as in Chrome.

    What this article is about is unless FireFox's marketshare trend reverses, websites are going to stop including workarounds specifically for FireFox users. They'll just let the site be broken in that browser.

  • No, what this means is sites might start adopting features like PassKeys - a major browser feature that works in every browser except FireFox and one where you just might not be able to access the service, at all, unless your browser has support.

    (Passkeys are a replacement for passwords - essentially the idea is to take the technology commonly used for second factor authentication and use it as your "first factor" instead)

  • I don't see how government vs private makes any difference.

    A baby isn't capable of informed consent, so their DNA shouldn't be collected unless it's required for some medical reason (and then the sample should be immediately destroyed and no records kept).

    If an adult, however, wants to voluntarily give these folks a DNA sample... well that's their choice. I'm not surprised it ended poorly.

  • What would they diagnose?

    Combustion Engine? Don't have one. Transmission? Don't have one. Emission Control System? Don't have emissions. Spark Plugs? Nope. Fuel System? No. Exhaust? No. Alternator? No. Battery charger? you can see that on the dashboard. Starter motor? Nope. Battery Status? Also on the dashboard. Vehicle speed... on the dash. Engine idle... no. Air Flow Sensor? No air flow. Intake Manifold Pressure... no intake. Throttle position... only really relevant if you have a clutch or torque converter which EVs don't have (you would notice, very quickly, if the throttle position detected pressing the pedal when you're not pressing it in an EV...

    That's the list of standard ODB-II diagnostics. Some cars do more than that, but those are the ones they have to do. And none of them are relevant.

  • Yep I agree. And I expect that's what will happen... but the sensible thing isn't to just make an arbitrary decision, they need to get this right and seek advice — preferably external advice, since the department itself is dysfunctional and that's what they've done.

  • For example - Apple keyboards have an emoji button, a power button, and cryptographically secure* biometrics. All OS specific.

    (* the fingerprint scanner isn't just OS specific, it requires matching hardware on the motherboard of your computer - the keyboard just has a dumb sensor and it's your Mac that actually checks the fingerprint.. and it happens in hardware not software. Not even firmware)