I bought Aperture only shortly before they killed it off. Still seething about that. Since Photos can't seem to cope with my ~30K picture photo library (that I'm still trying to recover it after numerous attempts), can anyone suggest a viable alternative?
I use and love DigiKam[0] for organizing my ≈230k RAW & JPG media library, and both RawTherapee[1] and Darktable[2] are great for more specific editing (though I haven't settled on an ideal workflow yet). One cool thing about DigiKam is that you can have it use a remote MySQL server for its db, theoretically allowing you to work with your library from the road (I think... it's been several months since I've spent a weekend working on my photo libraries).
Adobe's Lightroom truly is a great and powerful tool like so many of their other apps, but I just can't stomach having years' worth of work locked up in a proprietary subscription-model app. And I just consider Apple Photos untrustworthy, though I do like to use it + iCloud shared photo albums to publish my edited "selects" instead of my full library.
Now if only there was a real F/LOSS contender to replace FCPX...
I got sick of fighting apps that don't scale, force me to use a specific OS or expensive hardware, feed the adtech panopticon, or don't clean up the messes left behind from all the other photo apps I've used, so I started my own company to do just that.
It's currently in closed beta. I'm letting people in first-come-first-served roughly monthly, as I release new versions. It's free while in beta, in exchange for your feedback. Here's what's coming soon:
Note that PhotoStructure doesn't have any editing tools other than fixing rotation. It does let you easily open the current image in other apps, though.
After I got royally screwed by Apple discontinuing Aperture (I mean, come on, it's not like they're google or something), I decided to a) package Aperture in a VMware virtual machine so that I don't lose access to my libraries and b) start working on my own software for long-term photo archives.
The project you are describing sounds close to my goals, with the possible exception of long-term storage: I've been planning to develop everything so that data is easily retrievable even if the software doesn't work. Metadata in text files, for example, image storage in well-known formats, folder structure that is understandable to humans, etc. This is for family archives: I'm scanning photos that are a hundred years old and I feel like an idiot when cataloging them using software that some company will obsolete in a couple of years.
Incidentally, there is another niche which is largely unaddressed: easy organizing of photos into sets with various access tags and sharing these with friends and family in a secure and easy way. It's kind-of doable today if you don't care about privacy, security, and longevity, but it's still annoyingly difficult to use, especially for less computer-literate family members. It seems that all designers of photo software only keep photos from their latest vacation, wipe their entire collection with each device upgrade, and want sharing links to be valid for at most a month or so.
One thing which could prevent me from using your software is lack of control: I got burned several times already and I'm considering my options carefully. It might be better to roll my own rather than start depending on something again.
I've made a bunch of design decisions to address long-term storage concerns (after being personally burned by more than a handful of abandoned photo apps):
File storage (if you opt for PhotoStructure doing automatic organization) is configurable (with a default of $library/yyyy/yyyy-mm-dd/$original-filename).
All metadata extracted or changed is saved in standard-format sidecars next to the original, or in the image itself. The sidecar format and whether to use sidecars for edits are both configurable.
The database is a SQLite DB with a straightforward schema (although as I add features, each version has had db migrations).
If you try PhotoStructure out, and you find or think of anything else I can do to set things up to be more friendly to long-term storage, I'd love to hear your ideas.
(Sharing is coming in a future release, both via any hierarchical tag, or by manually-selected images).
Everything you wrote is very intriguing and largely aligned with my goals. I'd like to take a closer look at what you are building.
There is still the issue of control: I am worried about the lack of a "Pricing" page, not because I do not want to pay (quite the opposite), but because I am worried about the sustainability of your business. And about what will happen when you sell it to Google, or otherwise abandon it.
FWIW I've got a bunch of both scanned images and older JPGs that I inadvertently stripped all metadata from (if you use jpegtran to losslessly rotate, make sure you use `-copy`!), so PhotoStructure infers captured-at time from filenames or enclosing folder names if it's missing from the EXIF headers, and it can extract at least a reasonable year, month, and day from the path.
This kind of comment is typical for someone who does not have to contend with business reality and has no idea how much it costs to develop and maintain native desktop applications.
My guess is that the same people, when given a native app, complain about the subscription pricing or the price tag.
Oh I understand the business reality very well and I don't blame anyone for making that call when it's the right move for them, but I'm still not going to use the software.
And I happily pay for all of the quality native software I can find. One of the most exciting things is finding a well-crafted native application with a clear business model.
I'm really hoping Serif, for example, moves into the Photo organization space. I've already purchased all of their current apps even though I don't really need them all that much; probably 70% of the reason I bought them was just to support what they're doing.
How are the photo organizing capabilities? I like to organize everything into nested folders.
One thing I like about Lightroom is that I can right-click on a folder and get a shareable, private link that people can go to to view the album. Great for sharing photos from a trip or an event without having to go to some other services.
The link opens a minimalist, unintrusive, functional album app where people can optionally download originals and even rate and comment on the photos, which is nice when you want to work together to whittle a larger set of candidates down to a smaller set.
Another Capture One user here. Capture One has 2 ways of organizing your stuff: Inside a Catalog (embedded into the library) or as a Session. In a Session, Capture One gives you a rough folder recommendation that you can use but just uses the folders from your file system. Catalogs embed the pictures and handle all the managing for you, but can also be set to not do that.
None of that sharing and cloud stuff of lightroom though. It's just a RAW/photo processor.
I’m around the same with 140,000 photos and it works fine day-to-day. I think they fixed the performance issues a few years ago. However, there are two gotchas:
I can’t open the photo library from other apps on iOS; it hangs forever. So I have to pick the photo from Photos and share into the app. Sometimes this isn’t possible like picking a profile photo, so it’s just not possible.
It takes about a month to resync my library after a fresh install of MacOS. I just installed Catalina and am waiting on this process right now. It looks like it’ll be done around April.
Edit: Clarified below, but I mean just to confirm the sync state, not redownload. I have the entire local library intact, but if you change anything locally (library ___location, OS, etc), Photos says "Uploading 140,000 items" and takes a month to confirm the library is in sync with the server.
1. Surely this is the apps' faults for not paginating queries on your Photos library correctly? (Unless it's a real Photos app bug, which I suppose is possible although unlikely)
2. Yikes, I guess with 140k photos putting your library on an external drive before wiping and then copying the library back to your Mac would also take a long time, but it shouldn't take a full month.
1. I'm not an iOS dev so I can't say for sure, but my impression is that the apps don't have that much control when they open the photo library.
2. Sorry I wasn't clear; this is what I do. The problem is that if you move the photo library at all (or even if you don't but it's a new OS installation), it doesn't trust the old sync state so it manually checks each photo. It does seem to be hashing or something since it's using very little network, but it's only processing one photo every 10 to 20 seconds. I have no idea what makes it so slow, but I've found similar reports on forums so it seems to just be the way it is.
It crashes repeatedly on launch, and the built-in repair function fails to repair it. I’m currently trying to import the photos and videos into a new Photos library, but you lose metadata (such as video dates, faces etc.) and projects, so I might as well move to something more reliable.
I'm in the same boat with Lightroom -- I've bought it 3 times and I've got a historic library in it with tens of thousands of images, but if I upgrade to Catalina my non-subscription Lightroom won't work anymore. I don't open it often, like maybe a couple of times a year, but I don't want to lose the work that's in there.
Could you run the old Lightroom in a VM? Ultimately, you might have to unless you migrate or pay up.
Lightroom is inexpensive relative to other tools and everyday expenses I have. The same goes for other closed-source photography software mentioned on threads like this, to the point that I've bought some of it to experiment moving off Lightroom.
Given the propensity of photographers to splurge huge amounts on gear, and their positions on intellectual property, I don't think I'm that unusual. Perhaps within the HN crowd the philosophy is different.
What's crazy to me is how much functionality of Aperture was apparently powered by OS features that were just there to, well, power Aperture. Pro fonts. Pro table headers and so on.
I guess that's what you get when the OS vendor also makes apps. And it shows how privileged those apps are compared to others. Only the OS makers apps can have their functionality shipped with the OS itself.
iPhoto has much better keyword handling, better support for drag and drop (which for a long time was missing entirely from Photos), and the smart albums in Photos is still not as powerful as they were in iPhoto.
Does anyone actually want iTunes? As a Spotify user, my Mac opens iTunes when I press the Play button on my keyboard if Spotify has been not playing for X minutes (power nap?). I have to immediately kill iTunes before it begins playing a CD I bought 7 years ago.
I 100% want iTunes. I like to listen to live music and Streaming services are pretty shit at archiving concerts.
Also, on my work laptop, I used to be able to connect my iphone through USB and use iTunes to play my music without having to sync or have the physical WAV on my machine
Now with the new Music app, I can't browse my music. I just recently had to upgrade to Catalina so maybe i'm missing something but i'm pretty pissed at that change
Some of us prefer to own and organize our own music rather than rely on streaming services. Sadly, Catalina Music isn't any less buggy than recent versions of iTunes.
Have you tried Swinsian? I recently switched to it after the Music.app became mandatory and I'm very happy with it. Small indie app with a straight forward non-subscription business model that has all the best parts of the old iTunes and is very customizable.
Thank you for sharing this. As a mostly lurker on HN, I appreciate such posts and reviews since they're helpful. That someone has done comparisons on the music management apps and listed those makes life easier for others. I had been disappointed with the more recent releases of iTunes, but the replacements in Catalina, from whatever I've read about them, seem far worse.
I have a (somewhat forlorn) hope that, now that Music neé iTunes is no longer a floor wax and a dessert topping, it might someday be a stable piece of software.
Recent releases from Apple don't really encourage this hope, admittedly. I wish they would formalize a tick-tock strategy for OS and core apps, pushing new features on odd years and fixing their mess on even ones.
I actually don't think that would be a good idea, because it would result in a culture of "eh, why fix the bugs in this major OS release, we have a fix-up OS release next year just for that". I don't want to end up in the same situation as that of old Windows releases, where major OS versions were nigh unusable until the Service Pack 1 release.
I totally forgot Apple doing this before, I think that's the time period where Apple actually followed this methodology you described. Snow Leopard was the fix-up release, while Leopard was the feature release. And yeah, agreed that Snow Leopard was a wonderful release.
I spent a bit of time over the past couple of months ripping some of my CDs that were missing, getting rid of mostly overlapping redundant libraries, and deleting missing music. There was various breakage that I suspect may have been partially related to Apple Match. But it seems to be in reasonable shape now as far as I can tell.
I got the sense that the author's main goal was running Aperture, and iTunes (and iPhoto/iWork/Logic) just kind of came along for the ride.
Just looking at known issues in the Github readme, it looks like those apps have quite a few issues. Whereas Aperture sounds like it's just about perfect except for videos.
--------
> As a Spotify user, my Mac opens iTunes when I press the Play button on my keyboard if Spotify has been not playing for X minutes (power nap?). I have to immediately kill iTunes before it begins playing a CD I bought 7 years ago.
For the past decade, one of the first things I do on a new Mac is run a script that includes the line `sudo rm -rf /Applications/iTunes.app`. There's probably a better way to stop iTunes from opening, but this one has been very effective.
From answers on Ask Different [2] for this question.
> The software Mac Media Key Forwarder [1] provides a user-friendly approach to prioritizing Spotify for your media keys. It runs in the background and gives you a few simple settings in the Mac menu bar. It just works.
> It can be downloaded and installed directly from the homepage, or by using e.g. Homebrew:
Apple Music, and therefore the Music.app, is still the best solution out there if you want to bring your own content and have it accessible via streaming from a number of devices. Spotify has serious limitations on bring-your-own-tracks that makes it not great for certain use cases.
There's a more fundamental question here I think. I can understand wanting to get an older, theoretically unsupported app running on Catalina, but that makes less sense re: iTunes as AFAIK no functionality was lost between Mojave and Catalina. iTunes got renamed to Music, and the syncing functionality was moved into Finder. Is the integration between those two functions _that_ critical?
If you use audiobooks then Catalina is a total disaster. You lost smart playlists, the ability edit ID3 tags, the sync to my iPod doesn’t work well anymore. Its really bad.
Keep in mind that iTunes and Audible audiobooks are DRM'd, so you can't necessarily just mark it as a different type of file. (The DRM is crackable, but then that's an extra step.)
I haven't used a Mac in years, but I'm wondering if iTunes supports FLAC yet. Until it does, it would be a non-starter for me if I'm managing my own music collection.
> The easiest way to swizzle something is just to make a category on NSObject and call method_exchangeImplementations in +load.
Don't do this, declaring a method in a category with the same name as an already existing method is undefined behavior. Use a static constructor instead.
The article isn't relying on method name conflict in the category. It's declaring a new method and swizzling in +load. If you meant the +load method itself conflicts, that's not true because +load on categories is handled specially by the Obj-C runtime. You can have 20 different categories define +load on the same class and the runtime will invoke all of them.