Alles
Day 16: Backing up my Gmail
With the recent events in the USA, I’ve decided that I want to move away from having data on American servers as much as possible. The first thing I want to tackle in that area is my e-mail. Although I do have an address at seblog.nl, I still just redirect it to Gmail.
My computer is currently in the process of backing up my main Gmail. I documented how I do it on the Indieweb Wiki:
Gmvault seems to be very simple and straight forward. It's on the command line, so it's scary for some users, but it does a good job of describing what it does. I did the following on my Mac, and since I can't remember installing
pip
, I think this works out of the box:
sudo pip install --upgrade pip
sudo pip install gmvault
gmvault sync example@gmail.com
- Gmvault prompts for OAuth, with a description. Press enter to open the browser, and you have to make sure you are logged in at that browser to the Gmail account.
- Do the OAuth in de browser and copy the key. Paste it in the Terminal
- Gmvault does things! I got 6351 mails out of an old account in 16m 14s. It creates a folder called 'gmvault-db' in your home folder, with (in /db/) folders for every month. In those folders are, per e-mail, an '[id].meta' and an '[id].eml.gz'. The .meta is a JSON with info from Gmail (labels/tags, subject) and the .eml.gz is a gzipped .eml, which is just the plain-text e-mail with all the headers.
Having the data is just one step. I will need to think about how I want to manage my e-mail in the future. For now I’m on Gmail still, but I am making plans.
To make today a bit more IndieWeb-relevant (e-mail is not web), I backed Micro.blog, because today is the last day of their Kickstarter campaign.
Although I really like that the project gives Indieweb a lot of attention, it felt wrong to only give to Micro.blog. So I also backed Aaron Parecki with the same amount, for his ongoing 100daysofindieweb. I use a lot of things he made or did first.
I really like XRays way of storing things (flat, knowing which properties will be string or array, and the rels
list), and I wanted to use it with my reader. Having it as a library with #17 would be nice for that, but parsing the whole h-feed at once is also very handy.
So, allow me to brainstorm / share some h-feed stuff I learned with sebsel/lees :)
-
I agree: the feed does not have to have an author. It can be used to define the author of the posts, but the feed itself can be authorless. Example of a mixed h-feed is Twitter > HTML through Granary.
-
Different ways of presenting:
- have a
children
property with an array[]
of objects{}
that are just what you get indata
when you look at a h-entry - have a
children
property with an array[]
of urls, and put the h-entry objects inrefs
- have a
-
Some h-feeds have no
u-url
for each h-entry. This makes it impossible to do 2. in those cases. But it might not be XRays task to fix that.
(Same fordt-published
. A lot of WP sites havehentry
class with sometimes aarticle-name
class, but dropped the rest of the Mf1. Again: might not be XRays task to fix that.) -
what to do with
h-event
andh-review
within theh-feed
? -> have to detect type for each child. -
when looking at a home page (i.e. aaronparecki.com), I get a card, which is great because that's the main object on that page. But when using XRay in a /reader, I want a feed. Would be nice to have a
type=feed
parameter, to point XRay to the type of data you are looking for. - Once you go h-feed, should you go RSS/Atom?
Day 15: hacked my own site
Today I hacked my own site. I don't want to give details now, because it's late and it needs a proper write-up, but I will soon. It is fixed now. This post gets updated with a link to a more detailed article when it’s there.
When can one officially put ‘hacker’ in one’s Twitter bio? I think I’m close.
Update: I wrote the post! It's here.

Tussen het papier digitale dingen doen bij De Gids.
Day 14: XRay like-lookup
I’ve been posting likes to Seblog for a few weeks now. I like the likes, but they al looked like ‘Seb likes this’, so I was like: looks like I like to fix my likes.
Today I hooked up XRay to Seblog, so now my site can see things on URLs I link to. (I actually run a version on a ’secret’ URL, to keep things on my own server.) This way I can grab the name of the post I liked and show that, together with the author. If it has no name, but a photo, it says ‘Seb likes a photo’. It adds the author if it knows who it is. If it really doesn’t know anything about the page, it still defaults to ‘this’. I can fix those manual if I want.
XRay’s format consists of two parts: a data
part, with information about the page it looked at, and a refs
part, which is a list of URLs that are mentioned or embedded on the page. Retweets, for example, show the original tweet in the refs
. I added a refs
field to my pages, where I store the data
part under the url of the page I mentioned and the refs
part under the urls they came with.
An example, with Kirby Data and YAML:
Like-of: http://example.com/a-post
----
Refs:
"http://example.com/a-post":
name: A Post
author: Someone
repost-of: http://another-example.com/a-photo
"http://another-example.com/a-photo":
photo: http://another-example.com/a-photo/img.jpg
author: Someone Else
I can be more efficient with the moment I grab the data. For example: to send webmentions, my server already reaches out to all links in the post to find their Webmention Endpoint. If I parse the page then, I don’t need another call from XRay later on.
I also need to fiddle a bit with the things I want to display. But for now it’s okay: my server has the data for my likes. I even download pictures if a post has a photo
property. I now not only own my likes, I also have my own archive of the things I like.
Day 13: video on Seblog
Today my brother and I made a silly little movie. I used the light on my iPhone to shine through the Apple logo on his MacBook, from the back, while the brightness of his screen was all the way down. All this under a blanked. We had fun and I wanted to share it.
I made a commitment to post everything I post on Instagram or Twitter on my site first, so I used my standard ‘Foto op Seblog’ Workflow to post the video. But it turned out that just adding a video to my photo
field didn’t work.
So I did a little tweaking and my site now does support video. In honor of the late Vine I looped it with autoplay. Let’s see how long that lasts.
Experiment met lampjes en laptops. Met broer Wut.
Net een leesbril opgezet. Dat vergroot écht alle letters! Ik ga ook oud worden.
"De wereld is een beangstigende plek, maar mijn sokken zijn perfect gevouwen."
Day 12: RSVP and Events feed
Busy day today, so no big Indieweb updates. It’s not about the big updates though, it’s about useful updates.
Yesterday, I went to an event. I kind of got into the habit of just getting on my bike and cycling to events, without actually looking up any details at home. Sometimes I don’t even know the exact place I need to go, just that it’s somewhere in the city center. It’s a bad habit, but it’s a habit now.
Since I posted an RSVP to my site for yesterdays event, I was able to find the information I was looking for quickly on my phone. I have been away from Facebook for almost 3 years now and I forgot how useful this feature is.
A combined feed of my RSVPs and Events can now be found at /agenda (Dutch for ‘calendar’), so I can easily find information about where I have to go when I’m cycling and running late next time.