HNHacker News
TopNewBestAskShowJobs

_7jf7

1 karma · joined May 2, 2025

submissionscomments
_7jf7··on Tell HN: A Conversation Needs to Be Had over Subscription Software
> I don't see how these are user hostile.

They lock you in to continuing to pay even when you no longer derive value.

Say you stopped using Photoshop years ago but suddenly need to export one of your old documents. You’re now forced to pay rent to Adobe for at least one month to access one of your own files. And Adobe won’t make it easy to unsubscribe again, which adds to the hassle.

> The pay per update model forces the creator to release big feature updates, even if the features are just bloat, as bug fix releases and stability work will usually sell much worse. That's mostly fixed by the subscription model.

Perpetual fallback licenses[1] solve that issue without forcing users to keep paying rent.

[1]: https://github.com/vitorgalvao/perpetual-fallback-licenses

_7jf7··on My Personal Note Taking Journey
> But eventually, if they want to continue doing the task they'll end up paying for a new version.

Freehand[1] has been discontinued for almost two decades, and ten years ago I was still able to use it to great effect. Heck, if I wanted to use it today I probably could, thanks to Wine[2].

> however it's still got a lifespan that eventually requires the next payment.

Unless you wait so long that a competitor arises or you stop having the need. I never paid for Adobe Creative Cloud and Affinity[3] came along without subscriptions. One could also conceivably do without Microsoft Office updates so long that Open Office catches up to the needed features and surpasses it.

Note I do tend to pay for new versions of software I use. But I have no quarrel with stopping if they no longer provide adequate value, like 1Password moving to subscription pricing to collect rent on a done product yet somehow still managing to make it inferior (Electron).

I continue to disagree with the premise that “one-time purchases are a lie we tell ourselves”. If that were the case companies would have continued as they were. They move to subscriptions precisely because it removes the customer’s choice to upgrade—you either keep paying or can’t even access your past files. And they can jack up the price or remove features at any time (see LastPass).

Though I can get behind the hybrid model of Perpetual Fallback Licenses[4].

[1]: https://en.wikipedia.org/wiki/Adobe_FreeHand

[2]: https://appdb.winehq.org/objectManager.php?sClass=version&iI...

[3]: https://affinity.serif.com/

[4]: https://github.com/vitorgalvao/perpetual-fallback-licenses

_7jf7··on DuckDuckGo’s quest to prove online privacy is possible
This works as is but you’ll want to edit the window position numbers (at the bottom).

  function search {
    local query="${@}"

    osascript -l JavaScript -e "
      browser = Application('Google Chrome')

      google_window = browser.Window().make()
      ddg_window = browser.Window().make()

      google_window.activeTab.url = 'https://duckduckgo.com/?q=${query}'
      ddg_window.activeTab.url = 'https://www.google.com/search?q=${query}'

      google_window.bounds = { 'x': 0, 'y': 0, 'width': 600, 'height': 600 }
      ddg_window.bounds = { 'x': 600, 'y': 0, 'width': 600, 'height': 600 }
    "
  }
It could be improved in a few ways, like:

* Not opening the extra window if Chrome isn’t already running.

* URL-encoding your query.

* Auto-detecting the screen bounds (and Dock).

* Auto-detecting the active browser.

But I didn’t want to turn this comment into a full-fledged gist. As is, this works in Chromium-based browsers (replace the name in the `browser = Application('Google Chrome')` line). Adding support for all of them and Safari is simple: https://gist.github.com/vitorgalvao/5392178

_7jf7··on Change your MAC address with a shell script (2019)
At least on macOS, the script can be made more efficient with less code; no need for interaction or manually reconnecting: https://github.com/vitorgalvao/tiny-scripts/blob/master/macs...

I’ve been using it for years without a hitch. Installable with `brew install vitorgalvao/tiny-scripts/macspoof`.

_7jf7··on Ask HN: What apps did you build for yourself and why?
I’ve built Fog[1] which is an Overcast[2] wrapper for macOS. I started it because I wanted to listen to podcasts on the Desktop but also wanted to control playback via media keys. I’ve since added a few more features.

I’ve made SandwichTimer[3] because no other pomodoro timer did what I wanted — to be minimally controllable via the CLI (so I could do it from Alfred[4], without needing the mouse) and to show the remaining time just as minutes (seconds are distracting, and a pie isn’t accurate enough). Since I also frequently needed regular timers and needed to use the phone for those, I’ve baked that in as well.

PinPlus[5] because I wanted a simple app to add Pinboard[6] bookmarks that looked good and I could dismiss with ⎋.

Sacar Musak[7] not for me, but for my friends that want to download videos from Youtube and kept downloading shady apps I did not trust.

I have a ton more in the form of CLI tools, but the apps I use most frequently are the Alfred Workflows I’ve made[8].

[1]: https://github.com/vitorgalvao/fog

[2]: https://overcast.fm/

[3]: https://github.com/vitorgalvao/sandwichtimer

[4]: https://www.alfredapp.com/

[5]: https://github.com/vitorgalvao/pinplus

[6]: https://pinboard.in/

[7]: https://github.com/vitorgalvao/sacar-musak

[8]: https://github.com/vitorgalvao/alfred-workflows