> Something wonderful happened on the road leading to 3.0: Offpunk became a true cooperative effort. Offpunk 3.0 is probably the first release that contains code I didn’t review line-by-line.
I felt true dread reading a sentence like this. I had to reread to make sure the author means there are other trusted contributors now.
As it is often the case these days, some projects are quite proud of announcing that no human has written or reviewed their code.
OP here: Didn’t even come to my mind while writing this. This would be totally against the philosophy of the projects.
Don’t worry: I wanted to celebrate humans cooperating over good old emails to write code in their editor without any help ;-)
Thank you for confirming, and congrats for shipping!
I didn't really get what "a command-line Web, Gemini, and Gopher browser that allows you to work offline" meant, like how is it offline? So I think this is the bit of info I was missing:
Every content you visit is cached and can be visited later while offline. If you try to visit a content not available in your cache, it will be marked to be downloaded later. Offpunk allows you to synchronise you computer once every hour, day or week and work offline without being interrupted.
So its kindof designed to be offline with occasional sync. Interesting.
This looks interesting! I wanted to find more info about the Gemini protocol, and it's annoying how un-searchable it is now due to Google Gemini.
Try "gemini protocol", it helps a lot.
But, trully, there’s no much to search. The beauty of Gemini is how small it is: all technical informations should be there : https://geminiprotocol.net/
To be fair, "Gemini" is one of those overused words for projects and it was unsearchable before Google. It's in the same category as Atlas, Nexus and Styx.
It's as if someone took a look at Gopher and tried to do it in 21st century.
It's not bad, but the (intentional) lack of user-input takes the whole experiment back. The only user input is a small search query. It's intentionally set up against building any kind of BBS/Forum. So you need a different way to write and upload, which - in my opinion - kills the whole project. YMMV.
Lagrange - the most used browser - used to have something called "Titan" as user upload but that was never specified and nobody used it and I think it's removed from Lagrange now.
edit: ah it still supports it (Titan). It just seems there is no server in the world that uses it.
I wonder when contemporary developers will (re)invent Emacs/Gnus: the unified inbox for email, feeds, and news, because what really matters are text messages + eventual multimedia content, personal and private scoring to manage them, and a consistent local UI that allows for personal archiving and resharing.
I've looked at the Fediverse, objectively with little hope and many design issues, I'm watching Nostr with interest even though it seems more like a rough sketch lacking the ideas to move forward, but that concept of Gnus and Usenet, so simple in itself, still hasn't managed to resurface.
OP here and Vim/UNIX fan.
I get the idea behind "reinventing Emacs".
But there are main differences:
- offpunk is an offline content browser/reader. Main component is fetching/caching/displaying ressources
- offpunk is developed as a set of components that can be used separately (openk, ansicat, netcache)
- offpunk delegates as much as possible to other UNIX tools (less for browsing/reading, chafa for images, grep to find in a page, $EDITOR for editing needs )
- offpunk is pure CLI tool. You type commands, results is displayed in your terminal or in less. There’s no "keyboard shortcuts" or "environment". It is a prompt on which you type commands
- There’s no "configuration" in offpunk. The only (but powerful) way on configuring is having offpunk launch commands at starts (commands listed in offpunkrc). So no "configuration language" or syntax or plugins or whatever.
- last but not least: basic use of Offpunk is simple. You are not required to learn much and you use only what you want. Lot of Offpunks users don’t use the Web/HTTP part and use it as a straight Gemini browser (for the record, Offpunk is a fork of AV-98, the very first Gemini browser)
As a long time Emacs user, I never even tried Gnus, or used it as a calendar (except for some time tracking in org-mode). How would calendar invites work there? How well does it support shared calendars to determine busy/free information of others?
Gnus it's dog slow, be with email or with usenet. I say this as an ex-Emacs user where I even plugged slrn's cache in order to speed up things, but over 100k messages that was unusable in my netbook, even under 64 bit machines and native compilation. Slrn did it better. On RSS, I use sfeed which is more Unix like and I just plumb lynx/links or whatever I like as a reader. And fast, much fast than GNUs, Elfeed or the core RSS reader in Emacs.
OTOH, Emacs it's the only libre Usenet reader for Android. Go figure, and that being a dead simple protocol. Despite of that, lots of Thunderbird forks in FDroid didn't adapt the Usenet part yet.
Offpunk it's slow but adding multiprocessing with flock (for python3 maybe) would be a piece of cake in order to allow parallel downloads while syncinc.
offpunk’s slowness has two main sources (while offline):
- loading modules at startup (will be solved in 3.1 with lazy loading, patch is pending)
- parsing HTML with lot of pictures (because we wait for chafa for each picture)
I’m not sure how multiprocessing could really help that much but I would be interested.
While online, sure, the blocking http calls are something that will be parallelized in the future
syncing URL lists should be done in parallel. Something like xargs+flock but under Python.
Contributions are welcome. I even believe that this whole code should be migrated from python-requests to curl.
There should ve a variable to choose your inline image reader, between chafa, timg, some wrapper around w3mimgdisplay...
Harcoding it it's bad.
each tool needs very specific set of options so we can’t just let the user input any command. And offpunk has been built for use with chafa since the start. Timg is just an historical workaround were Chafa had some bugs.
But there are currently some discussions about that on the mailing-list.
> Something wonderful happened on the road leading to 3.0: Offpunk became a true cooperative effort. Offpunk 3.0 is probably the first release that contains code I didn’t review line-by-line.
I felt true dread reading a sentence like this. I had to reread to make sure the author means there are other trusted contributors now.
As it is often the case these days, some projects are quite proud of announcing that no human has written or reviewed their code.
OP here: Didn’t even come to my mind while writing this. This would be totally against the philosophy of the projects.
Don’t worry: I wanted to celebrate humans cooperating over good old emails to write code in their editor without any help ;-)
Thank you for confirming, and congrats for shipping!
I didn't really get what "a command-line Web, Gemini, and Gopher browser that allows you to work offline" meant, like how is it offline? So I think this is the bit of info I was missing:
Every content you visit is cached and can be visited later while offline. If you try to visit a content not available in your cache, it will be marked to be downloaded later. Offpunk allows you to synchronise you computer once every hour, day or week and work offline without being interrupted.
(from: https://offpunk.net/whatisoffpunk.html)
So its kindof designed to be offline with occasional sync. Interesting.
This looks interesting! I wanted to find more info about the Gemini protocol, and it's annoying how un-searchable it is now due to Google Gemini.
Try "gemini protocol", it helps a lot.
But, trully, there’s no much to search. The beauty of Gemini is how small it is: all technical informations should be there : https://geminiprotocol.net/
To be fair, "Gemini" is one of those overused words for projects and it was unsearchable before Google. It's in the same category as Atlas, Nexus and Styx.
It's as if someone took a look at Gopher and tried to do it in 21st century.
It's not bad, but the (intentional) lack of user-input takes the whole experiment back. The only user input is a small search query. It's intentionally set up against building any kind of BBS/Forum. So you need a different way to write and upload, which - in my opinion - kills the whole project. YMMV.
Lagrange - the most used browser - used to have something called "Titan" as user upload but that was never specified and nobody used it and I think it's removed from Lagrange now.
edit: ah it still supports it (Titan). It just seems there is no server in the world that uses it.
I wonder when contemporary developers will (re)invent Emacs/Gnus: the unified inbox for email, feeds, and news, because what really matters are text messages + eventual multimedia content, personal and private scoring to manage them, and a consistent local UI that allows for personal archiving and resharing.
I've looked at the Fediverse, objectively with little hope and many design issues, I'm watching Nostr with interest even though it seems more like a rough sketch lacking the ideas to move forward, but that concept of Gnus and Usenet, so simple in itself, still hasn't managed to resurface.
OP here and Vim/UNIX fan.
I get the idea behind "reinventing Emacs".
But there are main differences:
- offpunk is an offline content browser/reader. Main component is fetching/caching/displaying ressources
- offpunk is developed as a set of components that can be used separately (openk, ansicat, netcache)
- offpunk delegates as much as possible to other UNIX tools (less for browsing/reading, chafa for images, grep to find in a page, $EDITOR for editing needs )
- offpunk is pure CLI tool. You type commands, results is displayed in your terminal or in less. There’s no "keyboard shortcuts" or "environment". It is a prompt on which you type commands
- There’s no "configuration" in offpunk. The only (but powerful) way on configuring is having offpunk launch commands at starts (commands listed in offpunkrc). So no "configuration language" or syntax or plugins or whatever.
- last but not least: basic use of Offpunk is simple. You are not required to learn much and you use only what you want. Lot of Offpunks users don’t use the Web/HTTP part and use it as a straight Gemini browser (for the record, Offpunk is a fork of AV-98, the very first Gemini browser)
As a long time Emacs user, I never even tried Gnus, or used it as a calendar (except for some time tracking in org-mode). How would calendar invites work there? How well does it support shared calendars to determine busy/free information of others?
Gnus it's dog slow, be with email or with usenet. I say this as an ex-Emacs user where I even plugged slrn's cache in order to speed up things, but over 100k messages that was unusable in my netbook, even under 64 bit machines and native compilation. Slrn did it better. On RSS, I use sfeed which is more Unix like and I just plumb lynx/links or whatever I like as a reader. And fast, much fast than GNUs, Elfeed or the core RSS reader in Emacs.
OTOH, Emacs it's the only libre Usenet reader for Android. Go figure, and that being a dead simple protocol. Despite of that, lots of Thunderbird forks in FDroid didn't adapt the Usenet part yet.
Offpunk it's slow but adding multiprocessing with flock (for python3 maybe) would be a piece of cake in order to allow parallel downloads while syncinc.
offpunk’s slowness has two main sources (while offline):
- loading modules at startup (will be solved in 3.1 with lazy loading, patch is pending)
- parsing HTML with lot of pictures (because we wait for chafa for each picture)
I’m not sure how multiprocessing could really help that much but I would be interested.
While online, sure, the blocking http calls are something that will be parallelized in the future
syncing URL lists should be done in parallel. Something like xargs+flock but under Python.
Contributions are welcome. I even believe that this whole code should be migrated from python-requests to curl.
There should ve a variable to choose your inline image reader, between chafa, timg, some wrapper around w3mimgdisplay...
Harcoding it it's bad.
each tool needs very specific set of options so we can’t just let the user input any command. And offpunk has been built for use with chafa since the start. Timg is just an historical workaround were Chafa had some bugs.
But there are currently some discussions about that on the mailing-list.