HN user

xobs

234 karma
Posts0
Comments71
View on HN
No posts found.

ModemManager. You need to set the variable ENV{ID_MM_PORT_IGNORE}=“1” I. A udev rule.

Standard usb serial ports show up as ttyACM#, whereas nonstandard ports that require a driver like ftdi show up as ttyUSB#. Modems tend to be standard usb devices, so ModemManager by default scans all serial ports as if they were modems. This involves sending some AT commands to them to try and identify them.

Software implementations of serial devices tend to follow the standard, so they show up as ttyACM#.

Rust? Only Rust?

Yes, this OS is written in Rust. However, since it has a well-defined ABI, and all services are defined to use `#[repr(C)]`, and the interface is simple primitive enums, it's designed with C-like language support in mind. The hardest part in C is getting an equivalent to `#[repr(C, align(4096))]` which, last time I checked, only let you do alignments up to 64 or so without resorting to linker tricks.

This mechanism seems ripe for squatting attacks

There are only a few services with well-known names, and they start up before things like the scheduler are running. Most things go through the nameserver service which supports things like attestation, finite-client limits, and signature checking.

Just use standard ELF.

Sure, there's a loader available that lets you run standard ELF files: https://github.com/betrusted-io/xous-core/tree/main/apps/app...

The bootloader uses the MiniELF format because we can make assertations about things like the order of sections and about merging multiple segments, while also stripping non-loadable sections. It would be possible to just bundle all the ELF images for all programs together, but if you're generating the loader image you might as well shrink the image a bit.

What?? No! sbrk() is a terrible interface.

Then you can call `MapMemory(NULL, NULL, [size], RWX)`: https://docs.rs/xous/latest/xous/syscall/fn.map_memory.html

The Rust runtime will, at a minimum, set up the stack pointer, zero out the .bss, and fill in the .data section. You're right in that a heap is optional, but Rust will get very cranky if you don't set up the .data or .bss sections.

One-way messages

Messages are either one-way (Send or Scalar), or are two-way (BlockingScalar, Lend, or MutableLend). For two-way messages, the calling process inherits the quantum of the sending process, so the only penalty is the cost of two context switches.

Interprocess communication by memory remapping instead of copying

This is true for Send, Lend, and MutableLend, but for Scalar or BlockingScalar you get 5xusize values instead, which is used for things like `msleep` or `uptime`.

You would have to stop access to other threads that might have access to the page about to be unmapped, but Rust guarantees that if you have a mutable reference, you're the only one with access to the page.

If you run pw-top, you might see errors accumulating. This is usually due to an underrun from the game requesting an audio quantum that’s too low.

The fix is:

    mkdir -p ~/.config/pipewire/pipewire.conf.d && echo "context.properties = {default.clock.min-quantum = 1024}" | tee ~/.config/pipewire/pipewire.conf.d/pipewire.conf
Basically, just force the quantum to be higher. Often it defaults to 64, which is around 1ms.

I know Altium doesn’t work, which is very important if you need to provide someone else files in Altium format. If you just want to work on designs there’s always Kicad, which is increasingly very good! But it can’t save in Altium format, and I’m not sure I’d trust it for manufacturing.

The other thing I’m missing is my 3D Gerber viewer called ZofZPCB. I’ve not gotten either it or Altium to even start.

OVH is awful for this. I’ve given up trying to use their site and always have to open a support ticket any time I want to give them money.

To clarify for the people questioning the price: it’s $74 for the version with free upgrades for one year. The “Lifetime” version with updates forever is $494.

endless scrolling feeds only

I've got a personal policy: No websites that have an infinite scroll. That means no new Reddit, mobile Reddit, Facebook, Instagram, or similar. This also means I can't use food delivery services, since those tend to be infinite as well.

If they're paginated that's fine, even if they're infinitely so. Infinite scrolling is just a very good touchstone as to the quality and addictiveness of a site, and I'll avoid anything that has it.

For this reason I get my news through RSS and like using Discord -- both have finite ends (even if there may be a lot of content in bursts.)

TV Garden 1 year ago

"KIKA" just shows an infinitely-looping 10-second clip of a sign swinging that translates to "Unfortunately, you can only watch the current video if you are in Germany."

I remember reading an article that had the theory that Thai restaurants in hotels were usually very authentic under the assumption that the parents were immigrants who wanted the child to inherit the business, but the kid wanted to run a restaurant instead. It would certainly explain why you get Thai restaurants attached to random hotels in the middle of nowhere, at least.

An example of a program that's atrocious about unreliable connectivity is `git` -- it has no way to resume downloads, and will abort all progress if it fails mid-transfer.

The only way I've found to reliably check out a git repository over an unreliable link is to check it out somewhere reliable and `rsync` the .git directory over.

Where I am, most of the noise comes from air conditioning and physical plant equipment from neighbouring buildings. Cars aren't that big of an issue.

Buses can be loud, but they're transient.

The problem with Wave was that it requires a network effect to be of any use, and Google was very stingy with invites early on. Interest had died down by the time they started allowing more people to join.