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:
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