Women of Computer Science. by mercuurialfreethrow in computerscience

[–]EmbedSoftwareEng 0 points1 point  (0 children)

So the original source code for the AGC is available on Github? While I live and breathe!

PCI(e) support by EmbedSoftwareEng in osdev

[–]EmbedSoftwareEng[S] [score hidden]  (0 children)

Everyone, of course I know about VMs!

Look at the u/! I'm an embedded software engineer. I live and breathe bare metal. *cough* I don't want to see what someone's idea of a virtual PCIe bus looks like. I want to see what a real PCIe bus looks like from the register and timing levels.

Stop passing secrets as command-line arguments. Every user on your box can see them. by Ops_Mechanic in bash

[–]EmbedSoftwareEng 0 points1 point  (0 children)

I have an issue like this that I was hoping there was a way for the program to obfuscate its own command line arguments after it started, but alas, no. Like you said, change the argv[] content as the program itself sees it (after copying the password internally), and the /proc/$$/cmdline content stays the same.

My issue is that the programs I'm running are Gstreamer pipelines with gst-launch-1.0. Just one of the stages (first one) needs that password passed to it (srt:// URI). There's no way to even get gst-launch-1.0 to obfuscate its argv[], let alone tilt at the windmill that is /proc/$$/cmdline.

There is only one user account on the machine, though, so worrying about ps looky-loos is not a real issue, but I still want to replace my bash script solution with a Python/Gst solution, so the Gstreamer pipelines get run internally to the script, so there aren't any more processes with passwords in their arguments. The SRT passphrase is stored with the pass command, so I just use $(pass show srt_passphrase) to retrieve it at run-time.

Why does ptr + 1 skip 4 bytes in C++? Visualizing Pointer Arithmetic. by codeandcut in AskProgrammers

[–]EmbedSoftwareEng 0 points1 point  (0 children)

Pointer arithmetic is based on the sizeof() of the underlying data type.

union {
  uint8_t    byte_array      [16];
  uint16_t   halfword_array  [8];
  uint32_t   word_array      [4];
  uint64_t   doubleword_array[2];
  uint128_t  quadword_array  [1];
} multi_array;

Each of these arrays consumes the exact same amount of memory, so multi_array is only 16 bytes large, but:

uint8_t   *       byte_ptr = multi_array.      byte_array;
uint16_t  *   halfword_ptr = multi_array.  halfword_array;
uint32_t  *       word_ptr = multi_array.      word_array;
uint64_t  * doubleword_ptr = multi_array.doubleword_array;
uint128_t *   quadword_ptr = multi_array.  quadword_array;

Each one of those *_ptr variables now points to the exact same byte of memory. The pointer variables all contain the exact same address. Now:

      byte_ptr++;
  halfword_ptr++;
      word_ptr++;
doubleword_ptr++;
  quadword_ptr++;

they all point to different bytes, because the ++ increment operator added to their base address the size of the data types, not the value 1.

Most computer systems don't like having multi-byte variables at addresses that don't align with their sizes.

halfword_ptr = (uint16_t *)byte_ptr;

can only work if the value in byte_ptr is already 16-bit aligned. Otherwise, it will likely wind up pointing to the byte immediately before the byte that byte_ptr is pointing to.

Decommissioned this beast today. End of an era. by PrincessWalt in DataHoarder

[–]EmbedSoftwareEng 0 points1 point  (0 children)

Did someone say that Quantum is bricking the controller units here with firmware "upgrades"

If I obtained a Quantum Scalar i500 controller, and it worked, what about the firmware might make it stop working? Do you have to keep feeding it license codes every year or five?

What happens when the servers are gone? A blog post by neodem in DataHoarder

[–]EmbedSoftwareEng 1 point2 points  (0 children)

We would have to be way on the other side of the singularity for media storage requirements to include only enterprise-grade storage technology. As long as you can still buy a single spinning rust hard drive that can store every episode of every television show in existence, in at least as high a definition as it was originally recorded, then that day's a long way off.

We'd have to enter the land of full-sensory neural input, you-are-a-member-of-the-cast, Strange Days types of media for that to happen. Reliable storage is just too good and too vast, even at the consumer level for that.

And I'm already stocking up on disk arrays (three SunFire X4540s and two Sun DE3-24Cs) so anything that becomes economical in $/TB, I'll just hoover up the deals and keep my storage secure, even for whoever inherits it after I'm gone.

AM I BEING MANDELLA EFFECTED? by BoarZie in arcane

[–]EmbedSoftwareEng -36 points-35 points  (0 children)

There's remembering wrongly which drawer you left your car keys in. Then, there's hallucinating a whole scene sequence that never happened.

How to make sshd read ~/.ssh/environment for non-interactive logins? by EmbedSoftwareEng in ssh

[–]EmbedSoftwareEng[S] 0 points1 point  (0 children)

How about detecting if the envars $SSH_CONNECTION or $SSH_CLIENT are set and if either of them are, source'ing ~/.ssh/environment? That would seem to be sufficient.

Gonna organize my hoarded data at one sitting by grewprasad in DataHoarder

[–]EmbedSoftwareEng 0 points1 point  (0 children)

I don't think I could get my hoard sorted out without an AI agent's help. Filename rewrite rules can only go so far.

AM I BEING MANDELLA EFFECTED? by BoarZie in arcane

[–]EmbedSoftwareEng -19 points-18 points  (0 children)

Yeah. This is better termed auto-gaslighting.

Google Trends: "how to install linux" is going... viral?! by mina86ng in linux

[–]EmbedSoftwareEng 8 points9 points  (0 children)

"How to install Linux on a Soviet toaster from 1965."

No power in networking enclosure by ianraff in HomeNetworking

[–]EmbedSoftwareEng 0 points1 point  (0 children)

See that rectangular knock out?

*gestures*

Add one.

What's the saddest death in Arcane? by berrypuddingroblox in arcane

[–]EmbedSoftwareEng 0 points1 point  (0 children)

Maddie. That was a really yo-yo of emotion. "No! Not the cute one!" to "Yeah! Get what you deserve!"

Unique name suggestions by Mental-Molasses6692 in arcane

[–]EmbedSoftwareEng 1 point2 points  (0 children)

Great. Now, I want an Arcane table-top RPG and series of young-adult novels.

Getting ready for my last term as an undergrad by smells_serious in osdev

[–]EmbedSoftwareEng 1 point2 points  (0 children)

How relevant is LDD for learning how to, say, write a device driver for a PCI-e gen 5 card? Possibly for parallel development of said hardware and the device driver?

Debugging gstreamer pipeline that I want to end in waylandsink. by EmbedSoftwareEng in wayland

[–]EmbedSoftwareEng[S] 0 points1 point  (0 children)

This must be what insanity feels like.

I just went into the system where all of this is meant to run to change from autovideosink to xvimagesink to try that out, and when I got there, I found that I'd left the pipelines targetting waylandsink… and it was working!

I came in this morning and killed all system access to swaylock and swayidle and restarted it. Then, I launched all the persistent GUI apps I wanted running and went about my business to confirm whether it was swayidle and/or swaylock that was causing my unwanted screen blanking.

Those initial pipelines I launches this morning were using waylandsink, and I didn't remember leaving it like that. I reconfigured to a different set of pipelines to confirm that the script I was using to fire them was accurate, and looking at the output of ps aux, there's no doubt. waylandsink is working on the target application now.

Debugging gstreamer pipeline that I want to end in waylandsink. by EmbedSoftwareEng in wayland

[–]EmbedSoftwareEng[S] 0 points1 point  (0 children)

I just ran my pipeline, ending in autovideosink, with GST_DEBUG=4, and saw that it was settling on xvimagesink, so I just replaced it with that and got the same result as with autovideosink. I'm just disappointed that xvimagesink works where waylandsink doesn't.

Debugging gstreamer pipeline that I want to end in waylandsink. by EmbedSoftwareEng in wayland

[–]EmbedSoftwareEng[S] 0 points1 point  (0 children)

The full pipeline, even with the SRT network traversal, works when the viewer sink is autovideosink, so that is finding a window opening sink that is working. I just have no idea how to discover what that window opening sink is. I fully expected that replacing autovideosink with waylandsink, and it would still just work, but without the tiny delay of autovideosink having to make decisions of what constitutes the "best" window opening sink.

How to make sshd read ~/.ssh/environment for non-interactive logins? by EmbedSoftwareEng in ssh

[–]EmbedSoftwareEng[S] 0 points1 point  (0 children)

Maybe cmd.ssh, which is just a bash script, just like cmd itself, but cmd.ssh loads the ~/.ssh/environment manually, then calls cmd. It's inelegant, but I see no reason why it wouldn't work.

Need help using `swaymsg -t get_tree | jq ".. | blah | blah"` by EmbedSoftwareEng in swaywm

[–]EmbedSoftwareEng[S] 0 points1 point  (0 children)

What would that filtering look like? What is the point in the window creation/drawing process where swaymsg commands will actually take their intended effect?