TheMuffinMan
@TheMuffinMan@piefed.world
- Comment on They just made the winning bid 4 hours ago:
However, triggering multiple cameras at once at the exact same time was a similar experiences with additional trigger lines and multiple discussions with the manufacturers application engineers.
100% this; synchronisation challenges are the bane of my existence. There are also a lot of cases when it would have been really helpful if data output from a device were timestamped (even with something incomplete like “number of milliseconds past the minute"), rather than having to timestamp it on receipt and make some iffy assumptions about latency.
Depending on the command the byte order also had to be swapped which was not documented at all and I had to find it by trial and error.
“Determining endianness is left as an exercise for the reader” type logic, honestly lol.
So I’m not sure if it’s the military grade that makes it such an experience. Industrial grade seems like a similar experience.
It’s quite plausible (and disappointing to hear) that it’s a broader issue with industrial grade hardware; my own experience is limited to products specifically aimed for military/defence applications.
I guess a lot of consumer devices also do shit like that under the hood but hide it in firmware and drivers.
Yep, but I think there’s also a broader point about work that is niche or “cutting edge” versus industry standard. The example that comes to mind is the quality of code written in academia versus in industry, the former often being significantly worse. I think part of it is that code quality is far less emphasised compared to the higher level technical concept it’s used to demonstrate. I honestly believe that a sizeable chunk of the professors and lecturers from my university would struggle to produce work that is “up to standard” in a regular software eng role, at least initially.
- Comment on They just made the winning bid 1 day ago:
Allow me to explain with a practical example: you have a camera on the network, and you want automate taking snapshots in response to some arbitrary trigger (e.g. every minute, or whenever a separate motion sensor is activated). There are standards and conventions for type of integration, but military grade hardware often wants you to do things from first principles.
Typical consumer/IP camera: the camera has a REST API for its command set, so you can formulate a HTTP request like
GET http://my-camera-ip/command/snap?stream=0and the server will respond with image data. You can knock this out in maybe < 30 mins and < 100 lines of code. If you’re a bit crafty, you can add support for multiple different camera models, which may vary in URI formation and authentication.On the other hand, trying to do this with a military grade camera, the experience is usually something like this: The camera comes with proprietary client software that is closed source. In UI you can click a ‘snap’ button to take an image, but no viable route for automation. You try to reverse engineer it with Wireshark, but it appears to be a WebSocket connection with constant data transfer, which makes dissecting the ‘snap’ command difficult.
You check the manual, and the only mention of how to directly command the camera is via a serial line. That’s the first problem: you don’t want to run a long cable from the server running your automation, to the camera itself. So you buy a small serial device server, and run a serial cable between it and the camera. It will forward any byte sequence that is sent to it over your LAN, to the camera’s serial input.
The manual references a separate document that explains the communication protocol, which should explain what byte sequence to send to ‘snap’ an image. You hunt down this document, and. Uh-oh. It’s 344 pages long. Ctrl+F, you look for “snap” and find it’s in section 17. It references some earlier sections about sync bites, message headers, and checksums. You finally work out that the full byte sequence you need to send to trigger a snapshot is
00 7E 11 3D 01 00 0E 0D 0A. You write code that sends that sequence over TCP to the serial device server. But there’s a problem: you’re not receiving any bytes back. Where is the resultant image?You go back to the manual and it mentions that “snapshots and recordings are stored on the internal SD card” and “SD card contents are available via FTP”. It doesn’t give a spec, or even a filesystem, for the SD card. After trying a bunch of different ones, the camera finally detects your SDXC card formatted as exFAT: the magic combo.
There is no explanation of the FTP functionality in the manual, so you try the default FTP port, and make some educated guesses for the right username/password combo. None of them work, so you contact the manufacturers for help. 2 weeks later, they respond with the credentials. Finally, you’re in, and you’re seeing new image files showing up whenever you send the byte sequence. Success! Now, your code does something like this:
- Send
00 7E 11 3D 01 00 0E 0D 0Avia TCP to serial device server - Wait a moment
- Connect to camera FTP server and download image file from SD card
A week later, your boss walks in and says that a new competitor, manufacturer B, has cameras with much more impressive IR sensors for nighttime surveillance. The existing cameras will be replaced starting next week. None of what you have built is reusable for manufacturer B cameras; it’s time for a new adventure.
It’s mind-boggling. It’s like the manufacturers’ engineers have not spoken to anyone who has written any software in the last 20 years.
- Send
- Comment on They just made the winning bid 3 days ago:
As someone who works in defence & surveillance as a systems engineer (so by every measure a civilian), I’m still the one on the right… military grade hardware is a fucking nightmare to integrate into larger systems.
- Comment on I will kill you 1 week ago:
You are totally right of course. Vaping weed is the way to go. I misplaced my dry herb vape when I moved houses several months ago and it hasn’t cropped up yet, which is why I’m back on spliffs for the time being. (Dry herb vapes are spenny as you probably know)
The only other slight quirk is that vaping weed uses it up pretty fast and it hits fast too. I’m an enjoyer of the process itself rather than just being high (which is why things like pipes and bongs never appealed to me either); the way spliffs let me pad/space out the intake matters to me more than I’d like it to.
I will switch back once I find my vape, but in the meantime I’ve found using activated charcoal filters instead of roaches does cut out a lot of the nastiness of tobacco. It does weaken the effect of the weed a bit too, but that’s nbd.
- Comment on I will kill you 1 week ago:
Not once in my life I heard a smoker say “my first one was awereesomeeeee! I love this!”.
Real lmao.
Ex-smoker, picked it up at uni, and the first handful of times I’d tried it, it was vile. The first time it felt OK or possibly good was probably when withdrawal started to kick in. Really should have stopped before that, but I was stubborn and had to learn from experience.
I do still use it in spliffs, but begrudgingly (can’t find anything else that isn’t too harsh to smoke, nor do I like pure joints).
- Comment on My typical response is just "good" 2 weeks ago:
OK, that gave me a good chuckle haha
As someone who does shave his bush by choice, I can’t imagine going completely smooth. It takes forever and the burns and ingrowns can’t possibly be worth it, let alone demanding that of someone else? If someone wants to remove the hair down there, I really don’t get why the default assumption is to shave so close to the skin rather than trim (so it’s a bit like elongated stubble.) It also looks better than totally clean IMHO.
- Comment on My typical response is just "good" 2 weeks ago:
Struggled to read this - lots of words and not enough Subway Surfers.
- Comment on Interesting looking chocolate bar 3 weeks ago:
You’ve heard of the Snickers bar dick vein, now get ready for…
- Comment on Dunno where else to post a gripe 3 weeks ago:
Behind every decision to replace staff with yet another LLM is endless frustration for customers and clients.
I had an urgent leak to deal with earlier this week, and when I called my rental agency they told me they couldn’t do anything until I’d logged it in their online system. I logged it in detail with photos, then it took me to an LLM. When I told the LLM I wasn’t interested in further chatter and just needed a plumber sent over ASAP, I got a text saying my request wouldn’t be dealt with because I “did not complete the conversation with their agent.” All the while my light bulbs were dripping… I felt like I was taking crazy pills.