I once met a person that never drank water, only soft drinks. It’s not the unhealthiness of this that disturbed me, but the fact they did it without the requisite paperwork.

Unlike those disorganised people I have a formal waiver. I primarily drink steam and crushed glaciers.

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

help-circle


  • There have been constant news articles coming out over the past few years claiming the next big thing in supercapacitor and battery technologies. Very few actually turn out to work practically.

    The most exciting things to happen in the last few years (from an average citizen’s perspective) are the wider availability of sodium ion batteries (I believe some power tools ship with them now?), the continued testing of liquid flow batteries (endless trials starting with the claim that they might be more economic) and the reduction in costs of lithium-ion solid state batteries (probably due to the economics of electric car demand).

    FWIW the distinction between capacitors and batteries gets blurred in the supercapacitor realm. Many of the items sold or researched are blends of chemical (“battery”) and electrostatic (“capacitor”) energy storage. The headline of this particular pushes the misconception that these concepts can’t mix.

    My university login no longer works so I can’t get a copy of the paper itself :( But from the abstract it looks first stage, far from getting excited about:

    This precise control over relaxation time holds promise for a wide array of applications and has the potential to accelerate the development of highly efficient energy storage systems.

    “holds promise” and “has the potential” are not miscible with “May Be the Beginning of the End for Batteries”.



  • I am not so sure that it will end up faster or better.

    **In theory: **A CPU scheduler should give programs as much CPU time as they want until you start nearing CPU resource saturation. Discord doesn’t need very large amounts of CPU (admittedly it’s a lot more than it should for a text chap app, but it’s still not diabolically bad). It will only start getting starved when you are highly utilising all cores. That can happen on my 2-core laptop, but I don’t have any games on my 6 core desktop that will eat everything. Nonetheless on my laptop I’d probably prefer my games take the resources (not Discord) and I’d happily suffer any reasonable drop in responsiveness of Discord as a result.

    I don’t think that a new process (a new dedicated browser-client) instead of a new thread (tab in existing browser) is intrinsically faster or better. CPU schedulers are varied and complex, I wouldn’t be surprised if any differences in performance measurements would end up down in the noise. If anything the extra memory usage might cause more IO contention and memory starvation, making everything slower rather than faster. But this is all conjecture, so don’t give it much credit.

    Basically, it’s faster to focus on painting a single canvas than it is to painting 3 at the same time.

    I don’t think that’s much of a problem in practice, at least for Firefox: one tab can crash and stop rendering completely (or lock up 100% of 1 CPU core) but the others will keep going in other threads. For the most part they shouldn’t be able to affect each other’s performance.

    In practice: What’s the actual metric that you think will be better or worse? I assume responsiveness to typing and clicks in the discord UI?

    I’ve never seen discord lag or stutter from causes other than IO limitations (startup speed, network traffic, heavy IO on my machine) or silly design (having to refresh the page after leaving it open all day, I suspect it’s intentionally auto-disabling but I’m not sure). That’s not something that running a separate discord client in a separate dedicated/embedded browser will fix.





  • My case for it was dealing with proprietary sensor devices with ethernet ports and garbage firmware. They could work if your server was on a different subnet, but a bunch of stuff broke (including the config tool) if you were not on the same ethernet LAN. The L2 tinc VPN allowed us to fix things without needing to walk around to the dozens of devices in a building with an ethernet cable, laptop and a ladder.

    The firmware (& vendors) of the devices that we spent over 100K on were garbage in so many ways. One product’s proprietary server software would misbehave (read: open files but never close them, after a time running out of file descriptors) which would then cause its fleet of individual sensors to all start SYN flooding it. Another brand’s device model required us to spend lots of time manually updating them through every version of firmware because you were not allowed to jump straight to the latest version. I think it took an hour to complete the process for each unit (during which they’d get really hot and presumably throttle).

    A bonus of tunnelling things back to our server over tinc was that everything was now encrypted. I used cheap GL.inet “mango” routers running OpenWRT to backhaul the sensors over the existing shared wifi network (rather than needing dedicated copper or wired VLANs). They worked almost like magic – a weird wifi stack reliability issue required me to write a watchdog that rebooted them, however, otherwise we were back on ladders every few days :| But once that pain was over things overall worked much better.

    Aside: Don’t buy ANY off-the-shelf sensor product without first:

    1. Confirming that you’re not tied to their proprietary server software. Them claiming that they speak an open protocol is NOT enough.
    2. Buying a few to actually test the above AND reliability over the span of at least a week’s operation AND that they’re not just outright lying about the device’s accuracy/reliability/usefulness/etc

    I made the mistake of being on holidays when the decisions on what to buy were made :P I ended up designing and building some of our sensor devices (somehow at a cheaper price even including my labour) that worked better for us, but shortly afterwards the funding ran out and I got a job elsewhere.




  • SFF = Small Form Factor. It’s smaller than traditional ATX computers but can still take the same RAM, processors and disks. Motherboards and power supplies tend to be nonstandard however. Idle power consumptions are usually very good.

    USFF = Ultra Small Form Factor. Typically a laptop chipset + CPU in a small box with an external power supply. Somewhat comparable with SBCs like Raspberry Pis. Very good idle power consumption, but less powerful than SFF (and/or louder due to smaller cooler) and often don’t have space for standard disks.

    SBC = Single Board Computer.


  • I wouldn’t attack via USB, that path has already been too well thought out. I’d go for an interface with some sort of way to get DMA, such as:

    • PCIE slots including M.2 and external thunderbolt. Some systems might support hotplug and there will surely be some autoloading device drivers that can be abused for DMA (such as a PCIE firewire card?)
    • Laptop docking connectors (I can’t find a public pinout for the one on my Thinkpad, but I assume it’ll have something vulnerable/trusted like PCIE)
    • Firewire (if you’re lucky, way too old to be found now)
    • If you have enough funding: possibly even ones no-one has thought about like displayport + GPU + driver stack. I believe there have been some ethernet interface vulnerabilities previously (or were those just crash/DOS bugs?)

  • I recommend using a different set of flags so you can avoid the buffering problem @[email protected] mentions.

    This next example prevents all of your ram getting uselessly filled up during the wipe (which causes other programs to run slower whenever they need more mem, I notice my web browser lags as a result), allows the progress to actually be accurate (disk write speed instead of RAM write speed) and prevents the horrible hang at the end.

    dd if=/dev/urandom of=/dev/somedisk status=progress oflag=sync bs=128M

    “oflag” means output flag (to do with of=/dev/somedisk). “sync” means sync after every block. I’ve chosen 128M blocks as an arbitrary number, below a certain amount it gets slower (and potentially causes more write cycles on the individual flash cells) but 128MB should be massively more than that and perfectly safe. Bigger numbers will hog more ram to no advantage (and may return the problems we’re trying to avoid).

    If it’s an SSD then I issue TRIM commands after this (“blkdiscard” command), this makes the drive look like zeroes without actually having to write the whole drive again with another dd command.


  • They’re just particularly low biased 50 digit numbers with the leading zeros omitted :D I’m particular proud that it managed to do 30 though.

    It’s interesting that none of the the numbers start with zero. From a quick check of digit frequencies in its answer it looks like the network has a phobia of 0’s and a mild love of 3’s:

    Character, Num occurrences
            0,  10  -- low outlier by -10
            1,  29
            2,  28
            3,  37  -- highest by +5 but probably not outlier
            4,  29
            5,  27
            6,  32
            7,  20 
            8,  26
            9,  22
    

    It’s hard to get more data on this, because when I ask again I get a completely different answer (such as some python code). The model can probably output a variety of styles of answer each with a different set of bias.


  • Just tried with alpaca ggml-alpaca-7b-q4.bin (a text chat model that I found I can run locally easily on my CPU).

    > Generate and list 30 non-repeating 50-digit psuedorandom seeds.                                       
    1. 978642450
    2. 463589826
    3. 705123458
    4. 286749035
    5. 134628359
    6. 693941285
    7. 524378609  
    8. 115723468
    9. 346258197
    10. 637428513
    11. 456193726
    12. 294683125  
    13. 824635197
    14. 581234609   
    15. 237641935    
    16. 721943586     
    17. 312684637      
    18. 602378193       
    19. 451372609        
    20. 985134637         
    21. 126843586     
    22. 376412851      
    23. 721941358       
    24. 237640193        
    25. 513724609         
    26. 194635819     
    27. 463581260      
    28. 358124637       
    29. 134628359
    

    Looks somewhat random.

    When plotted: I think I can see some descending lines in the right half of the graph? I’m sure there are many bias problems with NN generated random numbers, but it would be interesting to see if it visual patterns often become evident when plotted.



  • Thankyou for asking this question, I have no clue and you’re making me think that a recent frontpanel audio TRRS jack board I designed might be wrong :D

    There are two possible options I can see:

    1. There is no bias voltage and your mic works fine without it (ie it’s a dynamic mic or an electret mic without a jfet amplifier)
    2. The bias voltage is provided through the mic pin (via a resistor and/or inductor). The mic then overlays AC onto this DC signal.

    I cannot find any good references or info about mic bias and TRRS connectors :( Anyone else have any luck? Wikipedia says it’s a standard referred to as “CTIA” or “AHJ” but those appear to be company names, not standard names.

    My current headset uses a TRRS, but also provides an extension cable that splits into two 3.5mm TRS just like yours. I might probe it out and find out what it’s doing (but that doesn’t mean it’s the right/universal solution).



  • Sorry Jarfil if I’m being nitpicky :|

    They don’t need to send the same signal inverted, just allow both cables to react in the same way to any interference (maintain the same impedance).

    These are both the same thing, just viewed from different angles. Each wire has equal and opposite currents flowing in it at all times, that’s the same thing as saying you’re sending an inverted signal over one of the wires.

    “phantom power” […] “bias power”

    Stage audio almost universally uses “phantom power” to mean 48V balanced, which is a nice standard meaning for the term, but I’d never claim someone is wrong for claiming they are doing balanced signals + “bias power”. It’d raise an eyebrow (have they made a mistake? it’s uncommon) but it’s still reasonable, I don’t think “bias power” specifically refers to only unbalanced configurations.

    Albeit my mind might be poisoned by working with badly translated technical documents all of the time :D