From:
[email protected]
Date: 2017-03-05
Subject: Setting up twtxt
Twtxt[1] is a distributed alternative to Twitter or other mi-
croblogging services. It's a lot like micoblogging with RSS[2],
just without the RSS part. In addition to having romantic feelings
for command-line interfaces, I've been interested in distributed
web ideas like Solid[3].
Like many others, I've been feeling disenchanted with Facebook and
Twitter -- there's just so much noise. Ads are part of that noise
component, but it's also very easy to share content without adding
to the conversation. Maybe it's too easy. Shares, retweets, helpful
suggestions from the platform -- all of these things are added to
your feed with the best of intentions, but they have the side ef-
fect of obscuring the content you are really after. With twtxt,
your activity is not subject to someone else's terms, and you can
be sure that your words will only be seen by those willing to do a
relatively extraordinary amount of work to do so. Let's dive in!
Other interesting uses for this include:
* A Twitter alternative for closed working groups.
* A microblogging tool that is machine-friendly. Use it for event
logs!
* Use as a journal in combination with other productivity tools.
I'm installing this on OSX. You might have an easier time in-
stalling on Linux or a relatively normal BSD variant. If you're
running Windows, you are likely already familiar with the hoops
that you will need to jump through. Technically, you don't need a
client at all. You could write your twtxt.txt file by hand, but you
will need to memorize how to write a RFC 3339 date-time string. You
can also view other users' publicly-accessible twtxt.txt files
without a heavy client, but a client will assemble a chronological
timeline for you.
Install twtxt
On OSX, I used pip3 to install twtxt, just like it says in the in-
structions.
`$pip3 install twtxt`
I also had to set the following:
`
$export LC_ALL=en_US.UTF-8
$export LANG=en_US.UTF-8
`
I also added these lines to my .bash_profile.
Then I ran `$twtxt quickstart` to initialize my configuration.
Later, I ended up making some updates to my config. On OSX, the de-
fault config lives in '~/Library/Application Support/twtxt/config'.
With twtxt installed, I was able to update my twtxt.txt file, and
follow other users. You can find a directory of other users at
twtxt-dir[4]. Now you just need to make the file publicly accessi-
ble.
Install s3cmd
I host my twtxt.txt file (and my website) in an AWS S3 bucket. I
assume you already have an S3 bucket set up and a domain name reg-
istered and the concomitant DNS configuration, um, configured.
s3cmd[5] is a command-line interface that lets you manipulate ob-
jects within your S3 buckets. AWS also publishes their own CLI
tool, but I couldn't get it to install on OSX. s3cmd is a little
more focused on S3 and possibly easier to configure.
As part of configuring s3cmd, you will need to get an AWS applica-
tion key[6]. This basically involves:
1. Creating a user group that has access to your S3 buckets.
2. Creating a user that can be added to this group.
3. Getting the access key and secret for the user you created and
providing them to s3cmd through `$s3cmd --configure`
The configuration process for s3cmd is a little inscrutable, but I
took the defaults in most cases and I turned out fine in the end.
To upload your twtxt file to S3, your command will look like this:
`$s3cmd put twtxt.txt s3://(bucketname)`
Now that you can upload your file to S3, set up post_tweet_hook in
your twtxt config to execute this command. This will allow twtxt to
automatically upload your twtxt.txt file automatically after you
update your twtxt file.
Add your URL to a registry
Optionally, you can add your username and URL to a registry. There
may be more of these as time goes on and more communities form
around twtxt but, for now, the biggest one I've found is at
http://twtxt.reednj.com[7]. See also we-are-twtxt[8]. In the spirit
of decentralization, however, part of the fun will be evangelizing
twtxt to your associates and following their feeds. One of the
benefits of centralized services is easy discoverability. On the
other hand, maybe being easily discovered is something you would
prefer to avoid.
A word on OSX and txtnish
txtnish[9] is another popular client for twtxt. It has many of the
same basic features of the twtxt client, but aims to be more porta-
ble. It's a breeze to install and set up, but it didn't work for me
right away. It turns out that OSX (and the BSDs) use a different
version of awk than what is common in most Linux environments, BWK
awk from System V. The txtnish client uses awk to parse the raw
feeds when assembling the timeline. If awk doesn't behave as ex-
pected, things will go awry.
To fix this, we install GNU awk or gawk:
`$brew install gawk`
Then create an alias to it:
`alias awk='/usr/local/bin/awk'`
Also add this to your .bash_profile.
As I write this, it's still not perfect, but using GNU awk goes a
long way.
[1]:
http://twtxt.readthedocs.io/en/latest/index.html
[2]:
https://thoughtstreams.io/joeld/microblogging-with-rss/
[3]:
http://solid.mit.edu
[4]:
http://twtxt.reednj.com/
[5]:
https://github.com/s3tools/s3cmd
[6]:
https://aws.amazon.com/developers/access-keys/
[7]:
http://twtxt.reednj.com/
[8]:
https://github.com/mdom/we-are-twtxt
[9]:
https://github.com/mdom/txtnish