Hacker Newsnew | past | comments | ask | show | jobs | submit | Karliss's commentslogin

From what I understand the whole point is avoiding the need to stomp pedals or otherwise touch them during live performance.

Some pedals have a bunch of knobs which are a pain to adjust during live performance between the songs. So some pedals support changing the settings using MIDI interface. This device has builtin library of control codes fur such pedals. That way you can program presets for your MIDI controlled pedals in the storm summoner and during live performance quickly switch between presets with a click of single button as opposed to remember which of the half dozen pedals need to be stomped on/off for each song or worse adjusting the knobs.


Oh, ok thanks for the explanation, I can see the utility of it there. I thought it was more like "hey here's a stompbox but you can't stomp it and we switched those pesky knobs with a touch-senstive surface like cars did and everyone hates".

All without a DAW too I'm guessing? I use an FCB-1010 for a lot of things but yeah it's obviously pretty useless without a DAW.


People bring this up to every RISC-V discussion but the same could be said for ARM or x86. For which ARM instruction set is built? Does this ARM cpu support integer division instructions, does support arm and thumb instruction encoding, only arm, only thumb, does it have a floating point unit, does it have neon, does it have MMU. Those are still relevant questions for ARM cores. On x86 situation is even crazier https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html . Some of the more recent CPUs list ~60 optional features. Even if you look just at generic common profiles you have i386, i486, i586, i686, x86-64, x86-64-v2, x86-64-v3, x86-64-v4. Just a single family of vector instructions has 6 different versions for example: SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2. I am not even going to try counting all the variations and optional instructions of AVX512.

On one hand this is an important topic, especially in contexts like which X86-64 profile are the software in Linux distro official repositories targeting.

At the same time no one is bothered by 20 cent ARM mcu not having instructions for atomic memory access, supervisor, SIMD or even floating point.

So if anything RISC-V instruction set optional feature sets are probably better structured and less fragmented (for now) than the current situation with ARM and x86.


For AP cores where Python actually runs it’s just “arm8” and pick your incremental version on top.


If you'd limit yourself to cores implementing the Application profile of ARM (Armv8-A etc), you'd do the same and limit yourself to cores implementing the Application profile of RISC-V (RVA23 etc). In that case, you can assume vector instructions and everything else.

If you don't, you get the exact same kind of question with ARM as with RISC-V. Do you use NEON or with SVE? Or do you conservatively compile without vector instructions at all even though it could possibly result in speed-ups for some loops?


I don't think you're giving ARM credit for the ever growing pile of features which are always optional or optional only on some versions of the ISA.

For example, can you use FEAT_CSSC to improve code size and performance? Well, if the target is <v8.7, the answer is no. If it's v8.7 or v8.8, well, then it depends on whether your specific implementation has it. Only after v8.9 is it mandatory.

Targeting armv8a is the moral equivalent of targeting RV64GC insofar as it will run on any application class core. Targeting that, however, leaves a fair bit of useful ISA enhancements on the table, and so you tend not to want to do that if you can get away with it.


Micropython runs on tons of stuff and while it isnt capital-P Python, its close enough for doing a wide variety of embedded work without learning a new language/libraries/etc.


For RISC-V that would functionally be RV64GC then. And you go incrementally from there as required.


Matching decompilation is a verifiable target that ensures feature parity but it says nothing about being reasonable non slop decompilation.

Disassembler output can relatively easily match original binary, I doubt anyone would consider it decompilation.

Let's say you add requirement of being higher abstraction language than assembly. You can translate the assembly code 1:1 with simple string substitions to C code which would provably replicate the behavior of program perfectly. I would consider that more of hard coded emulation, opposite of JIT like ahead of time code translation. Just because the intermediate langauge is higher level language than assembly doesn't automatically mean that the program text operates at higher level of abstraction than assembly.

I have seen plenty of decompilation projects where you start reading the code many functions contain nonsensical variable reuse (and name that match the register names), address calculations and memory casts and array calculations, arrays of function pointers, offsets within structures which strongly mirrors the assembly code.

The problem is that you can't draw a hard line how good do the variable/function names need to be so that it can be considered decompilation instead of hard coded emulation. It's hard to draw a line for how much of higher level language features you need to use to be considered decompilation. It's hard to define how logical the control flow needs to be. The line becomes blurrier by system programmers approaching it from the other side. Sometimes an extensively optimized code can contain a lot more manual memory mangling, index and offset calculations, manual unrolling than the language requires. So many C programs with homebrew systems of emulating virtual functions using structs of pointers. In such situations it's hard to tell if decompilation is incomplete or whether program was written that way from start.

Another possibility of junk decompilation (which perfectly compiles to byte identical copy of original executable) is program which depends on exact program layout in memory or undefined aspects of programming language. It would perfectly replicate original behavior on original hardware/compiler, but provide 0 insights in intended program behavior and fail miserably when attempting to modify the code or port it to different hardware/compiler. For example the "decompiled" code might intentionally peform out of bounds array access thus touching completely different variable or depend on fallthrough between functions lacking return statement.

Taking it to the extreme would be something like:

```

char data[] = {0x10, 0x12, 0xab, 0xcf, ...}; // bytes corresponding to majority of original program.

int main(){ ((void*())data)(); // cast the array to function pointer and execute it

} ```

It might behave exactly like original program, but that's junk decompilation.

You could add additional restriction that C program isn't allowed to exploit any undefined or machine specific behavior, but then there is very high chance that even original program wouldn't satisfy it.

Original program might also contain parts of it written in assembly for performance reasons or because that was only way to access certain hardware features. What does it mean for decompilation? Is decompiled code not allowed to use the same techniques. If decompiled code is allowed to have some pieces of assembly what stops it from using it for everything. There is no way of knowing precisely how much assembly the original program used.


There are two bad properties in terms of interactivity (and for other uses). In some configurations hyperbezier explodes towards infinity or at least way outside the bounds of control points. Cubic beziers don't do that, if control points are bounded the curve will be as well. This is direct result of how cubic bezier can be calculated with series of linear interpolations. Other issue was that there were discontinuities while moving through parameter space or at least very sudden jumps, small changes of control points caused curve flip to completely different shape.


Even if you ignore the nonavoidable copies which happen during normal usage of digital files there is no way they don't dozens of different real copies of their training dataset across many different servers accessible by many people.


> They really need to find a better name

They seem to be happy with extra engagement from people who hate the name. https://blog.ploopy.co/yall-need-a-new-name-48


It's a blog of a niche computer peripheral company not a store listing. And it's not their first product either, only blog is having problems rest of website is still wotking and in the store you can get a pretty good picture of what their typical kits look like. Most likely only sensor, the only through hole component needs soldering. They also ofer fully assembled versions, although initial preorer batch might be kits only .


ws2812 family is a mess. The pin 1 is not the pin which has the corner mark and pinout varies between specific packages and variations.


What an awful set of things to do!


All LEDs are like this. It's horrible. The only good thing about it is that every professional in the entire industry has come to expect that if it's an LED, something somewhere will be wrong with it.


By all LEDs do you mean addressable and other multipin LEDs? Never seen anything weird with classic 5mm/3mm. The flat side+leg length is quite reliable. 0805/1206 smd LEDs also seem mostly fine.


No, I mean all LEDs.

The cathode marks are basically randomly assigned. This is because each company more or less designs one leadframe/package structure per size or type of LED. Sounds reasonable, right? But LED dice aren't made of silicon. They're made of weirdo high-bandgap materials, and every color is different in its own way. From physics alone, some of the colors end up with cathodes on top of the dice and some of the colors end up with anodes on top. They all get bonded in to the package the same way. So... that marking built in to the package? That's always the "top of die" wire next to it. But "top of die" might be cathode, or it might be anode. Flip a freaking coin!

If you want to see this clearly, find a datasheet that covers an entire series of LEDs. Vishay often does this, here's one: https://www.vishay.com/docs/82437/vlmo1300.pdf . They'll tell you the marking locations for each color individually. Notice how they're all completely different? Yeah.

Could the manufacturers do better? Yes. Yes, they could. We all wish they would do better. But they do not. So LEDs are the stuff of nightmares for people who assemble boards.

Through-hole parts are somewhat better (but there are certainly rogues!), but this is 2026: the volume's in surface mount.

Multipin LEDs are no better. The SMD no-lead versions are again fairly randomly marked. The PLCC-4 types are usually "cutoff corner near pin 1", but I've seen it as pin 4... or pin 2... constant vigilance is the only solution. Constant vigilance!


Generic GPS transponder (containing GPS receiver + some kind of data connection) will have limited battery life.

Systems like Tile, AirTag can last much longer with smaller battery and overall dimensions by offloading GPS and long data transmission to other devices. Strength(and dangers) of devices like this is in the size of tracking network not necessarily the hardware itself. Even better if you don't have to plant the tracker onto victim, because victim bought it and is intentionally carrying with themselves.


Some of the not quite 90 slopes seem to be due to arrows representing more of topological structure not necessarily accurate geometric representation. Could be elevators with doors on both sides, connect doors on opposite sides and you will get a bit of slope. Some of them might spiral stairways. The vertical spacing between floors is likely also exaggerated for clarity. Underground there might be larger gaps since the train tunnels need to go over each other under the rivers and what not, but there is no way 3 above ground floors (4f-2f) have empty gap 5x the ceiling height of individual floor.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: