KaithemAutomation VS osxphotos

Compare KaithemAutomation vs osxphotos and see what are their differences.

KaithemAutomation

Pure Python, GUI-focused home automation/consumer grade SCADA (by EternityForest)

osxphotos

Python app to work with pictures and associated metadata from Apple Photos on macOS. Also includes a package to provide programmatic access to the Photos library, pictures, and metadata. (by RhetTbull)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
KaithemAutomation osxphotos
17 96
45 1,738
- -
9.8 9.4
7 days ago 1 day ago
Python Python
GNU General Public License v3.0 only MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

KaithemAutomation

Posts with mentions or reviews of KaithemAutomation. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-29.
  • Pi Reliability: Reduce writes to your SD card
    1 project | news.ycombinator.com | 2 Apr 2024
    My SD protection script, a few months old and may need some updates since a lot seems to have changed in Pi OS:

    https://github.com/EternityForest/KaithemAutomation/blob/mas...

    Current version doesn't disable swap, that's in a separate optional file, but the next version will.

    It can't be done in a one size fits all script unless you're launching chromium the same way, but do something like:

  • Running a Raspberry Pi with a read-only root filesystem
    3 projects | news.ycombinator.com | 29 Mar 2024
    I don't usually do full read only, what I'll do is run a script that turns off stuff that does not need to be writing to the disk all the time.

    Unfortunately, some software is database-oriented and likes to write to disk for every tiny thing, so the approach doesn't work with stuff like Home Assistant unless you carefully configure logging.

    The basic simple stuff doesn't really cause any user-level noticable changes:

    https://github.com/EternityForest/KaithemAutomation/blob/mas...

    After that, I disable and mask apt-daily (The Debian auto updater), and purge dphys-swapfile.

    My full set of assorted tweaks can be found here, some might not be relevant for you:

    https://github.com/EternityForest/KaithemAutomation/blob/mas...

    Next, I often run Chromium as a kiosk, and Chromium likes to hammer the SD card, so I set the XDG folder environment variables to make it put it's stuff in RAM. My embedded chrome stuff can be found here:

    https://github.com/EternityForest/KaithemAutomation/blob/mas...

  • The Chandler Visual Programming Model
    1 project | news.ycombinator.com | 28 Mar 2024
  • KaithemAutomation v0.7: the SD Friendly automation server that powered my Halloween stuff this year, cleaned up!
    1 project | /r/RASPBERRY_PI_PROJECTS | 10 Nov 2023
  • Raspberry Pi availability is visibly improving after years of shortages
    1 project | news.ycombinator.com | 2 Aug 2023
    Things like that are easy enough to set up on Raspbian with a script. You also need a bunch of tmpfs mounts, including some in crazy places(Regular Pi has a log file under ~/.cache that can fill disks and crash servers, and if you don't fix it Chromium writes seemingly useless crap constantly. There's auto updates on some systems, which is terrible if you're on a private WiFi, not doing internet stuff.

    I'm not using zram at the moment, just getting rid of swap, but my current script to get a Pi ready for embedded projects is here: https://github.com/EternityForest/KaithemAutomation/blob/mas...

  • Ask HN: What have you created that deserves a second chance on HN?
    44 projects | news.ycombinator.com | 26 Jan 2023
    The only FOSS thing I've done that I think is really worth telling people about is KaithemAutomation, a home automation server in pure Python with a bit easier setup than Home Assistant, and some features aimed at commercial installs like room escape control, and some pretty decent network video recorder features.

    https://github.com/EternityForest/KaithemAutomation

    I put 6 years or so into it, and have used it on plenty of contract projects, but so far I don't think anyone else is interested.

    Possibly because it's largely UI and CRUD over existing functionality, and there's not much particularly exciting to the hacker community, few interesting algorithms, it's not minimalist at all, etc.

    Plus it has a lot of dependencies that might or might not exist outside of Debian, I've never looked into how it would run on the more DIY distros since I've never used them.

  • Building surveillance system with WebRTC and YOLO
    2 projects | news.ycombinator.com | 4 Jan 2023
    Then after that I square every pixel and square root the mean of the whole image.

    I forgot how complicated this was and how many tweaks I added!

    Code here: https://github.com/EternityForest/KaithemAutomation/blob/mas...

    And for the motion detector specifically:

    https://github.com/EternityForest/KaithemAutomation/blob/9db...

  • Show HN: KaithemAutomation, the home automation system for coders and artists
    1 project | news.ycombinator.com | 27 Sep 2022
  • Ask HN: Practical examples of runtime modified software
    1 project | news.ycombinator.com | 25 Apr 2022
    pure Python and heavily built around runtime modification(https://github.com/EternityForest/KaithemAutomation), and is designed to run for months, although it's not meant to be modified literally while running production(Not that that stops us from making last minute fixes...).

    The big problem with it in Python is state. If you have a reference to something, and that something changes, and you have a reference to the old one, that should be a singleton, you are probably in an unhappy position.

    The only way it can work in real life(In Python at least) is if you carefully design for it, and don't pass around objects and callbacks and stuff.

    I have gone through several iterations of abstractions trying to make updatable objects and such to hide this from you, and none were very good.

    I eventually settled on a message bus, and a data structure I'm calling a Tag Point adapted from the SCADA industry, which is like a variable, but you can subscribe to it, and spy on the value from the web UI, it stays around as long as there is a reference to it, and it's guaranteed that any tags with the same name are the same object, and a bunch of other stuff.

    Files of code are essentially meant to be used like stateless microservices if you expect to update one, and if you want to access shared stuff, you make sure to not hold a reference to it.

    A lot was(and some still is) based on weak references, and those can trouble and should probably not be relied on for correctness if possible.

    They aren't the worst things though. I have code to run a few GC sweeps when a file is deleted, and it is extremely rare that anything stays around when it shouldn't.

    Good enough for development, good enough for emergency fixes, not the best for regular updates to running systems, although it's 99.9% fine, and I can't say I really worry about it(But future versions should be more deterministic and more suited for live edits as a regular practice).

    Erlang seems to like its functional-ness and I imagine that's a huge asset. Language level support is definitely a good thing.

    Random unstructured code doesn't seem to work well with live updates.

    If you are working in a general language like Python you really want to have your engine always know exactly what's going on, what subscriptions come from what module and which function is replacing what, etc.

    You want to deterministically always be able to list any changes that a module made to anything else(Like subscribing to a function), and undo them.

    But... weak refs work well enough.

    The classic solution to tech problems is to reboot, live updates are kind of the opposite of that. Your new code has to perfectly pick up with what you keep from the old state, and if the old state is invalid somehow you have to deal with that too.

    I've never heard of smalltalk as a live update language(In the Erlang telephone exchange sense), just that you can do interactive development in it, which is a lot easier.

    I think if I intended to seriously to true live updates(Like phone exchanges not dropping active calls), I would really appreciate tools made for that.

    Kaithem also does have a module with a visual script explicitly meant for changes in production. It's very limited and opinionated, essentially a state machine with event triggered actions attached to states, and variables at the state machine level.

    That kind of transition rule system for simple tasks is very easy to live update. State is well separated from rules, and rules are simple and easy to parse programmatically, to do things like clean up after yourself if an event listener needs resources.

    But just about any interpreted language works for interactive development.

    A lot of people like FORTH for that, which I don't have any interest in learning but some love it.

  • KaithemAutomation v0.68.28: Log in with your Linux user account credentials!
    1 project | /r/homeautomation | 9 Apr 2022

osxphotos

Posts with mentions or reviews of osxphotos. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-05.
  • Cleaning up my 200GB iCloud with some JavaScript
    8 projects | news.ycombinator.com | 5 Jan 2024
    > Any method that I've found to clean them up (exporting the originals, deleting them from the library, and then re-importing the JPEGs only seems easiest) will lose all of the years of metadata that I've built up in the library.

    The open source tool osxphotos (https://github.com/RhetTbull/osxphotos) can help with this. You can export the JPEG images while preserving metadata using the thrid-party exiftool utility:

    `osxphotos export /path/to/export --has-raw --skip-raw --exiftool`

    This exports all images that have a raw pair but skips the raw component then uses exiftool (https://exiftool.org/) to write the metadata (keywords, etc.) to the exported JPEG files. You can then re-import these into photos either by dragging them or by running `osxphotos import /path/to/export/*`

    Both the export and import commands have many other options for controlling export directory, etc. `osxphotos help export` or `osxphotos docs` to open docs in browser. (Disclaimer: I'm the author of osxphotos)

  • pipx install osxphotos fails
    1 project | /r/osxphotos | 10 Dec 2023
    See the issue tracker if you want to follow along. Hopefully this is an easy fix and I can push a patch today.
  • Delete empty albums
    1 project | /r/osxphotos | 7 Dec 2023
    In response to a question on the osxphotos GitHub Discussions page, I wrote a quick script to do prune empty albums and folders from Photos that can be run with osxphotos (version 0.65.0 and later). You can run the script directly from GitHub without downloading it first via:
  • Library backup
    1 project | /r/ApplePhotos | 5 Dec 2023
    You could try opening the library with PowerPhotos, a commercial app that can manage multiple Photos libraries, to see if it can read it. You could also try my free open source command line tool, osxphotos. Install it then run this command in the Terminal: osxphotos info --library /path/to/the/library This should print out a list of information about the library: number of photos, number of albums, keywords in the library, etc. If that works, then osxphotos can read the library and can likely export the photos for you so you could re-import into a new library.
  • Exploring EXIF
    5 projects | news.ycombinator.com | 6 Sep 2023
    I'm the author of the osxphotos[0] tool mentioned in the article. For photos in an Apple Photos library, osxphotos gives you access to a rich set of metadata beyond what's in the actual EXIF/IPTC/XMP of the image. Apple performs object classification and other AI techniques on your images but generally doesn't expose this to the user. For example, photos are categorized as to object in them (dog, cat, breed of dog, etc.), rich reverse geolocation info (neighborhood, landmarks, etc.) and an interesting set of scores such as "overall aesthetic", "pleasant camera tilt", "harmonious colors", etc. These can be queried using osxphotos, either from the command line, or in your own python code. (Ref API docs[1])

    For example, to find your "best" photos based on overall aesthetic score and add them to the album "Best Photos" you could run:

    osxphotos query --query-eval "photo.score.overall > 0.8" --add-to-album "Best Photos"

    To find good photos with trees in them you could try something like:

    osxphotos query --query-eval "photo.score.overall > 0.5" --label Tree --add-to-album "Good Tree Photos"

    There's quite a bit of other interesting data in Photos that you can explore with osxphotos. Run `osxphotos inspect` and it will show you all the metadata for whichever photo is currently selected in the Photos app.

    [0] https://github.com/RhetTbull/osxphotos

  • Third Party Apps that work with Apple Photos Library
    1 project | /r/ApplePhotos | 27 Aug 2023
    osxphotos is my own tool for power users to interact with Photos from the command line: export, batch edit, sync metadata, import, etc.
  • Alpha support for macOS Sonoma
    1 project | /r/osxphotos | 19 Jul 2023
    osxphotos v0.60.8 adds initial alpha support for macOS Sonoma (macOS 14.0.0 / Photos 9.0). Everything seems to be working but if you are beta testing Sonoma and use osxphotos I'd welcome any feedback you have!
  • How can I export my iCloud photo library to Amazon Photos on Mac OS?
    1 project | /r/DataHoarder | 5 Jun 2023
  • Shared Library: Albums Aren’t Shared
    1 project | /r/ApplePhotos | 16 May 2023
    I'm the author of the free/open source tool osxphotos which provides several utilities fo working with Photos and exporting your photos. You can use the batch-edit feature to automatically add the album name as a keyword and I believe keywords are shared across users. (I don't use shared libraries so can't confirm this). I am working on a feature to then automatically re-create the albums from the keywords on the target library. For now the keywords is a partial work around.
  • any program for MACOS or for Ubuntu that is free that allows you to edit the meta tags of photos en masse. Thanks!
    2 projects | /r/MacOS | 8 May 2023
    If you want to edit batch metadata of photos that are in the Apple Photos app on a Mac, I'm the author of a free tool, osxphotos that includes a batch-edit command that will edit the metadata in the Photos library.

What are some alternatives?

When comparing KaithemAutomation and osxphotos you can also consider the following projects:

Zoneminder - ZoneMinder is a free, open source Closed-circuit television software application developed for Linux which supports IP, USB and Analog cameras.

exiftool - ExifTool meta information reader/writer

splink - Fast, accurate and scalable probabilistic data linkage with support for multiple SQL backends

icloud-drive-docker - Dockerized iCloud Client - make a local copy of your iCloud documents and photos, and keep it automatically up-to-date.

rosettaboy - A gameboy emulator in several different languages

photos_time_warp - Batch adjust the date, time, or timezone of photos in Apple Photos from the Mac command line.

go-astits - Demux and mux MPEG Transport Streams (.ts) natively in GO

icloud_photos_downloader - A command-line tool to download photos from iCloud

scheme-for-max - Max/MSP external for scripting and live coding Max with s7 Scheme Lisp

ipyflow - A reactive Python kernel for Jupyter notebooks.

hckrweb - Hcker News mobile web app

Home Assistant - :house_with_garden: Open source home automation that puts local control and privacy first.