nickwitha_k

joined 11 months ago
[–] nickwitha_k@lemmy.sdf.org 1 points 1 day ago

All good. I'm going to likely have bursts between the holiday, house guests, and other projects (ex. converting a "dumb" digital bbq thermometer into a Prometheus endpoint).

[–] nickwitha_k@lemmy.sdf.org 1 points 1 day ago (2 children)

I've got a few things that I need to get done in the next few days (hopefully mostly sorted today) but you've got me rather intrigued with this as a puzzle. I'll see if I can get some time to sketch some thoughts out and maybe some high-level implementation of some bits in Python (it's faster to POC things).

A few quick thoughts:

  • I think that an existing or novel protocol built on top of the Internet Protocol is likely the way to go. Following the OSI model, you can target Layer 4, with some simple stuff for higher layers. Client/Server (possibly the same binary) and associated automation should handle Layers 1-3 (translating between different carriers for Layers 1 and 2, and handling routing of data packets in Layer 3).

  • Message routing strategies and their impact on OpSec is worth consideration. By this I mean: broadcast-only vs targeted-only vs both vs hybrid. All three have trade-offs.

Broadcast-only: Makes it harder to know the intended destination of the message. Conversely, by being routed to either all known addresses or all approved addresses, it can be more vulnerable to interception by a compromised endpoint.

Targeted-only: May be harder to intercept as the path that a packet takes should result in it hitting fewer potential endpoints. Conversely, some form of addressing is necessary to know, at the least, the next hop in transit. This makes tracing the intended endpoint, as well as network hops much easier (ex. running a traceroute).

Both: Gains the advantages and disadvantages of both approaches, depending on the which mode the data is transmitted in. Ensuring that data is transmitted correctly becomes important and has implications on the requirement of maintaining known good versions of the client/server software to avoid unintentional or malicious improper routing.

Hybrid: Could take many forms but the one that comes to my mind is a multilevel hub and spoke architecture (I'll draw this out). Basically, you end up having 2-3 "modes" for a client/server: hub, spoke, and endpoint. One or more client/servers operating in a hub "mode" act like traditional servers, kinda like a bulletin board, holding packets for local delivery or transmission to another hub. Client/servers in the spoke mode act as hops between hubs. Client/servers in the endpoint mode are the actual intended destination (this could be combined with the spoke mode). To protect endpoint identity, the destination could be part of the encrypted data packet allowing an endpoint to attempt to decrypt packets received from a hub locally, making it harder to know which endpoint a message is intended for. This does still require greater visibility of hub addresses for routing.

  • Encryption of packets is vital. Supporting some modularity might be of value so as to allow use of simpler cryptography for PoC but, the protocol should ensure that it is possible to break reverse compatibility (normally NOT what you want to do for networking protocols but avoiding an "it's an old code but still checks out" situation would be more important).

  • Amateur radio should be avoided both in PoC and hypothetical "production" use cases. The ban on encryption is insurmountable there and illegal use of encryption could lead to hightened visibility because the FCC, historically, does not fuck around with illegal radio signals. This means all wireless should be below 1W in the US, in bands that are legal for unlicensed use.

  • Any physical layer that supports arbitrary data transfers should be possible. The implementation to support it would be part of the client/server. So, Bluetooth, 802.11, LORA, sneakernet, and many others could be hypothetically supported. Again, though, this relies on the protocol's stack to be and to understand it, either directly, or translated by another component.

  • A web of trust may be a good approach for authentication and identity.

[–] nickwitha_k@lemmy.sdf.org 1 points 1 day ago (4 children)

Indeed. I'd really suggest going for something based upon Internet Protocol, with any software that you need at endpoints to read and/or transmit. I might poke about at some ideas on the weekend (long holiday). What languages are you thinking to use?

[–] nickwitha_k@lemmy.sdf.org 3 points 2 days ago* (last edited 2 days ago)

Good call. You might try games like Tomb Raider or the first Prince of Persia reboot for movement accuracy.

ETA: Just to be absolutely clear, the "/J" was "jerk" like the old "circlejerk" subs, not serious. You probably know that but I'd rather be sure and not assume as I don't think being dicks to eachother makes the world a better place.

[–] nickwitha_k@lemmy.sdf.org 1 points 2 days ago (3 children)

L2P n00b! /J

In seriousness though, I find the trackpads to be very useful for precision. Unfortunately, you have to build up the skill, like anything else. Work at it over time and you should get there. For practice, really depends on what you want to play. I'd suggest something that has a good system for criticals/headshots. Looks like Aim Lab might work on the deck, so maybe try that?

[–] nickwitha_k@lemmy.sdf.org 4 points 2 days ago (6 children)

Oh that's interesting. I might suggest looking at implementations of IP Over Avian Carrier (IPoAC). And I do mean that seriously. The idea started as an April Fools RFC but some people have actually implemented it. Basically, just using a different physical layer.

[–] nickwitha_k@lemmy.sdf.org 2 points 3 days ago

The Senate is the trickier one to solve. It was not intended to be a proportional body originally. In the short term, the balance could be impacted by not treating politicians as above the law and actually prosecuting crimes that they have openly committed.

State legislatures effectively are only going to be fixed with a new court or voters overcoming the gerrymandering.

[–] nickwitha_k@lemmy.sdf.org 4 points 3 days ago (2 children)

A plan to keep Republicans out of office permanently so that they can never wield this new power in retaliation (even Lincoln messed up on that one)

That one is simpler than it sounds. Restore the proportionality of the House of Representatives (broken by the Apportionment Act of 1911). The GOP is a minority party and would not have a chance if their voice wasn't amplified.

[–] nickwitha_k@lemmy.sdf.org 1 points 3 days ago (8 children)

As long as you're using TCP (what SSH uses) or a similar protocol, you should be able to deal with a situation like that. You'd mainly need to ensure that your client and server are tuned to meet your needs. With TCP, every packet is considered important and if the receiver does not acknowledge receipt, the sender will resend.

[–] nickwitha_k@lemmy.sdf.org 2 points 4 days ago

I both love and hate this so much. The performance and recording is incredible but any super tech nerdy parody just causes me immense internal cringe. I couldn't make it more than a third of the way through that and I love working with K8S.

[–] nickwitha_k@lemmy.sdf.org 8 points 4 days ago (2 children)

Absolutely the best kind of space crashloopbackoff.

[–] nickwitha_k@lemmy.sdf.org 14 points 6 days ago

... Hydrogen cyanide is literally what has been used to execute people in gas chambers and genocide during the Holocaust. The LC(Lo), the lowest recorded lethal concentration is 107ppm, resulting in death in 10 minutes. That's, objectively, far more dangerous than the respective material that firefighters were exposed to at Chernobyl. You don't want that in any appreciable quantity in the air around people that you want to continue living.

 

Hey folks! I think this request is right up this comm's alley. I'm sure that we all know bogo sort but, what other terrible/terribly inefficient algorithms, software architecture, or design choices have you been horrified/amused by?

I, sadly, lost a great page of competing terrible sorting algorithms, but I'll lead with JDSL as a terrible (and terribly inefficient) software architecture and design. The TL;DR is that a fresh CS guy got an internship at a company that based its software offering around a custom, DSL based on JSON that used a svn repo to store all functions in different commits. The poor intern had a bad time due to attempting to add comments to the code, resulting in customer data loss.

85
submitted 5 months ago* (last edited 5 months ago) by nickwitha_k@lemmy.sdf.org to c/linux@lemmy.ml
 

Hey folks! I'm getting a fresh laptop for the first time in about a decade (Framework 16) in a couple of months and am looking forward to doing some low-level tinkering both on the OS and hardware. I'm planning to convert into a "cyberdeck" with quick-release hinges for the screen since I usually use an HMD, built-in breadboard, and other hardware hacking fun.

On the OS, I'm planning to try NixOS as a baremetal hypervisor (KVM/QEMU) and run my "primary" OSes in VMs with hardware passthrough. If perf is horrible, I'll probably switch back to baremetal after a bit. But, I'm not likely going to be gaming on it so, I'm not likely to have much issue.

Once the hypervisor is working in a manner that I like, I should have an easy time backing up, rolling back, swapping out my "desktop" OS. I've been using Linux as my pretty much my only OS for over a decade (I use MacOS as a glorified SSH client for work). Most of my time has been on distros in the Debian or RHEL families (*buntu, Linux Mint, Crunchbang, CentOS, etc) and I pretty much live in the terminal these days.

With all of this said, I am coming to you folks for help. I would like you folks to share distros, desktop environments, window managers that you think I should give a try, or would like to inflict on me and what makes them noteworthy.

I can't guarantee that I'll get through suggestions, as my ADHD has been playing up lately, but I'll give it an attempt. Seriously. If you want me to try Hannah Montana Linux, I'll do it and report back on the experience.

EDIT: Thank you all for your fantastic suggestions. I'm going to start compiling them into a list this weekend.

 

Hello folks. I'm a backend guy, mostly using Python, Go, and the like. I've learned a bit of Rust and have enjoyed it for embedded.

With that background I'm curious if any mobile devs can give some feedback on the current state of cross-platform (Android, iOS, Web) for simple apps. What I currently have in mind, despite not owning a uterus, is a FOSS menstrual cycle tracker app, using encrypted local storage only (the regularity of this private information being sold by existing apps is very disturbing to me). This means that my reqs boil down to:

  • UI/UX (I suspect this would require platform-specific code)
  • Storage/DB subsystem (probably just use an encrypted sqlite)
  • Optional extras
  • Minimal third-party library usage to potential minimize data leaks as well as limiting possible vectors for ad injection

So, there's really not much to it complexity-wise. Any suggestions on framework or approaches for keeping the codebase DRY as possible (I would want to minimize required effort to update)?

 

Sometimes, it may be good for one's mental health to "take a break" from a community or user. It would be nice to be able to temporarily block posts from a user or community that one may otherwise enjoy in a 1h/6h/1d/1w or possibly arbitrary time period.

view more: next ›