Remix.run Logo
beligum 14 hours ago

I wanted to use my new Sony DSLR (a6700) in the same way as I use my server: by ssh'ing into it.

This is a one day hackaway helper built on Sony’s official Camera Remote SDK. It sort of mimics an ssh session by connecting to my Sony over Wi-Fi, listens for new photos or specific events... and runs scripts on them.

Thank you Sony, for not forgetting the Linux fan base. And thank you ChatGPT for freshening up my c++ skills!

SAI_Peregrinus 11 hours ago | parent | next [-]

Nitpick: that's a DSLM, or just "mirrorless" camera. There's no reflex mirror, so it's not a DSLR.

delta_p_delta_x 6 minutes ago | parent | next [-]

The more common initialism/abbreviation is MILC, or mirrorless interchangeable-lens camera.

simondotau an hour ago | parent | prev [-]

Wrong words are commonplace in English, perhaps my favourite being “modern art” referring to art from 100 years ago. Long story short: don’t worry about it.

JdeBP 7 hours ago | parent | prev | next [-]

I wouldn't thank ChatGPT too enthusiastically. As always for LLMs, it has given you code that is rife with common pitfalls (because, after all, they massively plagiarize sources where people post poor code).

For examples: It does not follow the Linux rules for pathname separators, but mixes in Windows-isms. It doesn't properly check whether std::atomic<bool> is actually signal safe on the target architecture. Its unique filename generation has an all-too-common failure mode. It passes by reference only to then make local value copies anyway. It does not correctly follow the XDG Base Directory Specification.

beligum 3 hours ago | parent [-]

Last time I hand started a c++ project was 10+ years ago so let's say it got the ball moving ;) Feel free to help cleanup a bit of my mess if you want, would love to work on this project together with others!

pjmlp 3 hours ago | parent | prev [-]

Some stuff that could be improved with modern C++,

Instead of

    static bool file_exists(const std::string &p) {
        struct stat st{}; return ::stat(p.c_str(), &st) == 0;
    }
      
Use the filesystem API,

    std::filesystem::exists(path);
-- https://en.cppreference.com/w/cpp/filesystem.html
beligum 3 hours ago | parent [-]

ty!