Announcing OFFLFIRSOCH 2024
---------------------------

It's the first of March, my smol friends!  Do you know that that
means?  It means that the announcement for this year's Remote Outdoor
Off-Grid Phlogging Challenge, aka ROOPHLOCH, is six months from now.
Further, it means that the announcement for last year's ROOPHLOCH
is six months behind us.  Today, right now, is the furthest point
on the calendar from ROOPHLOCH.  Which means if somebody wanted to
start, gasp, a *second* annual smol community challenge, and wanted
to make sure people could participate in both it *and* ROOPHLOCH
every year with the absolute minimum possible risk of burning out
on self-imposed computing obligations, today would be exactly the
correct date on which to start that second challenge!  Hmm...

On an extremely related note, I am delighted to announce that
today marks the beginning of the inaugural OFFLine-FIRst SOftware
CHallenge, or OFFLFIRSOCH.  That's right, I managed to come up with
an *even worse* name!  This may not even be my final form.  In my
head OFFLFIRSOCH is pronounced "Awful Fur Sock" (perhaps it's made
of KangaROO PHur?).  Yep, that's gross, but be grateful I didn't
choose the obvious alternative involving discarded internal organs...

How do you participate in OFFLFIRSOCH?  It's simple.  During the
month of March, you need to develop and share some piece of software
which is offline-first.  By this I mean it either makes no use
of the internet whatsoever and happily functions entirely offline
without even being aware that anything "unusual" is happening, or
else it does make use of the internet but is fundamentally designed
around the assumption that the internet is not always available
and maintains 90% or more of its functionality when used offline,
and will continue to do so no matter whether it gets internet
access once per week, once per month, once per year or even longer.
You can release your software however it pleases you and make a
post in your phlog and/or your gemlog announcing its existence
and pointing people at it.  Send me a link to your post, and I'll
compile a list at the end of the month, ROOPHLOCH style.  That's it.

Now, just like ROOPHLOCH, the qualifying bar is deliberately placed
very low.  You can qualify for having participated in ROOPHLOCH by
taking your laptop into your backyard and using your home WiFi, and
plenty of people do in fact do that, and that's fine because it is
supposed to be easy and fun and inclusive, the more the merrier.
But the "spirit of the thing" is to aim for something a little
more than that.  The more remote the better, the less reliance
on permanent infrastructure the better, etc.  The same is true
of OFFLFIRSOCH.  Sure, technically speaking, you could write an
implementation of "Fizz Buzz" which was offline-first, but that's not
exactly fun or interesting or useful or inspiring because, well, all
"Fizz Buzz" implementations are offline-first and that's entirely
unremarkable and nobody expects anything else (please don't email
me to let me know of some "Fizz Buzz as a Service" implementation
you may be aware of, my head is *happily* in the sand on this).

The spirit of OFFLFIRSOCH is to identify those tasks which you
routinely use some online service for, not because the task is in
any fundamental way one which needs to be done online, but just
because that is the path of least resistance.  It's a symbolic push
back against the absurdity and perversity of the present state
of affairs where, for example, the default expectation is if you
want to use a computer to convert a temperature from Celsius to
Fahrenheit, you won't ask *your* computer to do that calculation
for you (heaven forbid!), but you will use your computer to ask some
other computer, possibly on the literal other side of the world, to
do the calculation on your behalf and then forward you the answer.
It's not just unit conversions, but all kinds of things.  Search
engines, even the non-Google ones, have gotten tremendously good
at allowing you to type in all kinds of questions in relatively
natural language and get answers.  Sometimes those questions
are time-sensitive and reaching out to the internet makes sense.
Sometimes they are the result of a trivial calculation which would
not unduly tax a 25 year old computer and require as input only
constant or relatively constant information which would occupy
less than one percent of one percent of the smallest hard drive
likely to be found on a modern computer.  In those cases you *can*
solve the the problem by reaching out to the internet, but doing
so is an offence before God, it is degrading to the computer and
it is corrosive to the user's soul.

99 humans out of 100 would laugh or scoff or roll their eyes
or simply fail to even comprehend at that sentiment, but if you
are reading this on Gopher or Gemini then I trust that I don't
actually need to labour this point terribly hard with you.
Outsourcing trivial functionality to the 'net in the name of
convenience makes our computing experience slower than it needs to
be, more energy and infrastructure intensive than it needs to be,
it makes us needlessly dependent upon services which could (and very
often do) vanish without warning, and because no sane person would
actually pay for a timezone conversion or a distance-between-cities
calculation or anything like that, yet it does cost money to run
a permanently online server to provide these things, it means
we are almost always sending these requests to parties with an
existential need to exploit us in any way possible for any scrap
of potential profit.  It's gross and we all know it, but we do it
anyway (me very much included) because, hey, we just wanna know
the answer, and it's three seconds away, and it would sure take
more than three seconds to do the work to give our computers the
ability to give us the answer directly.  Well, OFFLFIRSOCH month
is the month we sit down and do that work and share the results
and help each other slowly but surely snip those pointless tethers
and push our computers a little further away from being "fat thin
clients" and a little closer toward being actual genuine computers
which know things and can do things and stand on their own two feet.

I've taken aim at search engine convenience functions here because
they are an easy target, but there's nothing special about them and
your OFFLFIRSOCH project doesn't need to attempt to replace one.
Do you have an account at some web app which you use in an entirely
non-social fashion just to keep track of books you've read or want to
read, or things you've eaten, or to manage a TODO list?  You could
probably (not necessarily, not always, but often) get most of that
functionality from an offline program that worked against an SQLite
file on a local disk.  Have you ever resorted to using some sketchy
website to do a file format conversion or to break a PDF file into
multiple pages because you got fed up trying to figure out the
correct sequence of arcane switches to throw at some high-powered
Swiss army knife style that you know is supposed to be able to do it?
You or somebody else could write a simple thin wrapper around that
program to provide it with an easier, friendly, more humane interface
for the user who just wants to use it occasionally without memorising
its internal implementation details.  Do you use a website to play
sounds at some regular interval as a mindfulness aid or to implement
some kind of productivity regimen like the Pomodoro technique?
This is also entirely straightforward to do offline.

The spirit of OFFLFIRSOCH, in short, is not to write a pointlessly
offline-first program just for sake of writing one, but to
identify something which you yourself actually do online at least
semi-regularly which you know full well could be done offline, and
to make that happen.  If you can't think of such a thing this month,
then you'll at least be primed to keep an eye out through the coming
year for potential projects for next year.  If you can think of
such a thing but you do not have the programming skills to try to
fix them, write a post about it and maybe a friendly neighbourhood
hacker will take up your cause.  I'll include links to "help wanted"
posts like this at the end of this post if you let me know about 'em.

Are there requirements on software licensing?  No.  This is supposed
to be easy and fun and inclusive and I don't want to get dragged
into making decisions on what counts as "really Free software"
or as to whether putting software in the public domain is a good
idea or not.  That's a first-class one-way ticket to Nofunville.
I am taking it for granted that if you hear about OFFLFIRSOCH in
the first place and think it's a good idea you are probably going
to release your software in a way which is less awful than 95%
of other software in the world, so that's good enough for me.

Are there restrictions on programming language or target platform?
No.  But of course, one of the reasons we have ended up in the
situation where the easiest way to solve so many small, simple
problems is by going online is because "there's always a browser"
available and you don't need to install anything.  The more difficult
your program is to install anywhere somebody would like to install
it, the less effective an antidote it is against pointless onlineism.
So it's also in the spirit of OFFLFIRSOCH to prefer small dependency
graphs, to use cross-platform languages/libraries/frameworks,
to make minimal assumptions about operating system resources, etc.
If you are hip to the permacomputing concept of a "bedrock platform",
it makes a lot of sense to target one of those.

Are there requirements on completeness?  Look, obviously it would
make no sense to say that you are not allowed to fix bugs or add
features after March 31st, but the idea is the your program should
be close enough to complete by the end of the month to be genuinely
useful without further development.  We are only talking a month
here, so don't get overly ambitious.  Most online convenience tools
are not really so complicated that replacing them in a month is
unrealistic!  Pick one small, simple problem and tackle it well.
If you are finished half way through the month, that is fine.
Resist the urge to add bells and whistles just because there is time.
Solve the problem and walk away.  If you really wanna keep hacking,
start a second project.

Are there further questions?  Email me, and I will update this post.

As per ROOPHLOCH, I will make a post at the end of the month linking
to a persistent public list of all qualifying programs I have been
made aware of.

A final acknowledgement: the seed of the idea for OFFLFIRSOCH was
planted in my mind years ago when former Geminaut (and author of
the Amphora client) makeworld made a toot about how they wondered if
they were the last person on Earth who remembered that the `units`
command line utility for unit conversions existed.  Thanks for the
idea, makeworld!