I like that it's open source, but, last release Oct 29, 2024.
I like that it's open source, but, last release Oct 29, 2024.
But if it works, why update it?I like that it's open source, but, last release Oct 29, 2024.
SoundSource 6 is out now. $25 to upgrade if you own the previous version. One of my major apps so paid up straight away.
weblog.rogueamoeba.com
tablepro.app
Just found this. Looks good.
MySQL, PostgreSQL and SQLite database tool. Free and open source.
![]()
TablePro - Native database client for Mac and iPhone
Native database client for Mac and iPhone. MySQL, PostgreSQL, SQLite, MongoDB, Redis, and 15+ more. Free and open-source.tablepro.app
Edit: Not open source. They seem to be using a funky custom license.
Heh, they changed that four hours ago. Look at the last modified time for the LICENSE file in the Github repo.Is it not open source? Their pages and GitHub seems to say so, seems to be AGPL3.
Will keep an eye on this as it looks to be a handy app to have to help with MacOS littering.Just found this. Open source alternative to CleanMyMac.
![]()
GitHub - momenbasel/PureMac: Free, open-source macOS cleaner. CleanMyMac alternative with zero telemetry. Native SwiftUI, scheduled auto-cleaning, Xcode/Homebrew/system cache cleanup. MIT licensed.
Free, open-source macOS cleaner. CleanMyMac alternative with zero telemetry. Native SwiftUI, scheduled auto-cleaning, Xcode/Homebrew/system cache cleanup. MIT licensed. - momenbasel/PureMacgithub.com
Nothing really. Perhaps the occasional orphaned preference file, but that doesn't matter. It's just lost disk space.Whats MacOS littering?
Originally Mac apps were self containing, which is great. But apps now have a tendency to dump associated resources and data to userspace (~/Library) and systemspace which get orphaned when removing or "uninstalling" through the usual method, ie - dragging the app to your bin, not so great.Whats MacOS littering?
So the two that I'm aware of, though I've not personally used as my money strategy is to just spend it within seconds of getting it, are Banktivity & Moneydance...I believe both are Apple Silicon native and are also available via the App StoreHey guys... I'm looking for an personal accounting application to replace quicken 2017.
macOS is going to drop rosetta support in the next macOS and it's the only x86 application that I still use and need a replacement.
Application needs to be quick and easy to use; I've just tried manger io and it was a PITA.
local base, no cloud
and be able to handle mulitple accounts including investment accounts.
TIA...

You could try GNU Cash. It is free and open source.Hey guys... I'm looking for an personal accounting application to replace quicken 2017.
macOS is going to drop rosetta support in the next macOS and it's the only x86 application that I still use and need a replacement.
Application needs to be quick and easy to use; I've just tried manger io and it was a PITA.
local base, no cloud
and be able to handle mulitple accounts including investment accounts.
TIA...
Originally Mac apps were self containing, which is great. But apps now have a tendency to dump associated resources and data to userspace (~/Library) and systemspace which get orphaned when removing or "uninstalling" through the usual method, ie - dragging the app to your bin, not so great.
It's in the same vein to Microsoft Windows in that you'll find random registry entries or profile files for an application you uninstalled months or years beforehand.
Sometimes this can be a few kilobytes, like preference files as Feek mentions, other times it can be an app like XCode that dumps a few gigabytes in your ~/Library.
As always, it's each to their own and up to you to determine if it's worth doing but in the 15/16 years of using apps like AppCleaner (https://freemacsoft.net/appcleaner/), i can't say i've had any issue removing orphaned app data.
#!/usr/bin/perl
# convert UNIX seconds to UTC ISO date, either command line args or first col of stdin.
# value also be sum eg 1688865975+414251
use strict;
use warnings;
if (@ARGV == 0) {
while(<>) {
my @f = split;
&prUNIX($f[0]) if (@f > 0);
}
} elsif ($ARGV[0] =~ m/^-/) {
&usage();
} else {
foreach my $us (@ARGV) {
&prUNIX($us);
}
}
exit 0;
sub usage
{
$0 =~ s:.*/::;
print STDERR "Purpose: convert UNIX seconds to UTC date YYYY-MM-DDTHH:MM:SS\n";
print STDERR "Usage: $0 [secs ...] [secs+more ...]\n";
print STDERR "Convert args else first col of stdin\n";
exit 1
}
sub prUNIX
{
my $us = shift;
if (index($us,'+') > 0) {
my @f = split ('\+', $us);
die "bad + usage: $us\n" unless (@f == 2);
$us = $f[0] + $f[1];
}
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime($us);
printf "%4d-%02d-%02dT%02d:%02d:%02d\n", $year+=1900, $mon+1, $mday, $hour, $min, $sec;
}
#!/usr/bin/perl
# convert ISO date to UNIX seconds, from args else stdin
use strict;
use warnings;
use POSIX qw(mktime);
$ENV{TZ}="UTC0";
# convert args else stdin
if (@ARGV > 0) {
&usage() if ($ARGV[0] =~ m/^-/);
while (@ARGV > 0) {
&convert (shift);
}
} else {
while(<>) {
&convert ($_);
}
}
sub convert
{
my $date = shift;
my ($yr, $mo, $dy, $hr, $mn, $sc) =
($date =~ m/^(\d{4})[\/-](\d{2})[\/-](\d{2})T?(\d{2})?:?(\d{2})?:?(\d{2})?$/);
die "$date bad format\n" unless (defined($dy));
$hr = $hr // 0;
$mn = $mn // 0;
$sc = $sc // 0;
printf "%d\n", mktime ($sc, $mn, $hr, $dy, $mo-1, $yr-1900, -1, -1, -1);
}
sub usage
{
$0 =~ s:.*/::;
print STDERR "Purpose: convert UTC ISO date to UNIX seconds from args else stdin\n";
print STDERR "Usage: $0 [YYYY-MM-DD[THH:MM:SS] ... ]\n";
exit 1
}
feek@shackbookairm2 ~ % us2date 959468542
2000-05-27T23:02:22
feek@shackbookairm2 ~ % date2us 2026-05-04T04:14:20
1777868060
feek@shackbookairm2 ~ %