The one about ebooks:

I have a growing collection of e-books thanks to my mom getting me my first e-reading devices roughly seven years ago–since Christmas of 2009 I’ve owned an e-reader. My first, the Nook 1st Edition was easy to manage, I kept everything on one device and that was it. Today, I read e-books across devices–moving from a Kindle Paper White to my phone (Nexus 6p), to my NVIDIA Sheild, to my Surface Pro, and then maybe reading on the Desktop every once in a while.

The problem with reading across devices is two-fold, 1) how do I manage my ebooks in a central location but access them everywhere? and 2) how much can I sync that across devices?

The solution for the first problem was Calibre. With Calibre you can manage your library from across sources and add metadata to them. Calibre can also upload books to your devices locally or it can host a content server.

The content server, when paired with a Dynamic DNS, a static IP for the computer hosting the server, and some port forwarding on your home router allows you to get access to your books on any device anywhere.

Port Forwarding: 1. Go to WAN, 2. Go to Port Forwarding 3. Setup a port forward for your content server using either the default port for Calibre 8080 or some other port you choose.
Static IP Assignments: 1. Go to LAN, 2. Go to DHCP Server, 3. Scroll down to the manual assign area and then use the add button to add your HTPC/Computer to the list. You should assign it a static IP that is easy to remember.
Static IP Assignments: 1. Go to LAN, 2. Go to DHCP Server, 3. Scroll down to the manual assign area and then use the add button to add your HTPC/Computer to the list. You should assign it a static IP that is easy to remember.
Setting up DDNS: 1. Go to WAN, 2. Go to DDNS, 3. Choose Yes, Pick a server, Choose a host name. This allows you to get access to your router’s external IP address even if it changes (most internet providers will change your actual IP semi-frequently)

My ASUS Router allows me to use their asuscomm Dynamic DNS. I also setup a static IP for my HTPC that hosts the content server and picked a port (not 80 since that us HTTP) and forwarded it on the router. Calibre allows you to set up a username and password, though this is not always supported by the apps you’ll use, to protect yourself from others trying to get to your files.

From the Calibre Library Screen drop down the extra tool bar items by using the double arrow on the upper right side of the toolbar. Click on connect/share and choose “start content server.” Or click on preferences.
If you clicked preferences, choose the “Sharing over the net” option.
Customize this screen by choosing the port you forwarded on your router. Setup a username and password. Then click start server.

The second problem is maybe just one of convenience for picking up where you left off any time you switch devices. For that I upload books to Google Play Books. Google Play Books lets you upload an e-book and then read it across devices (supposing you can use the Google Play Books app or website on that device). The major benefit to this is that I usually have access to at least one of my devices with Google Play Books on it.

When you get to Google Play Books from the web (on your laptop or computer) choose the upload books option and then drag and drop or select the files you want to upload. Google Play Books will process them for you. Once they’re processed they will appear on your other devices in “My Library” for Google Play Books. Note: You can drag and drop books from Calibre to the upload box.

Once you’ve got your books in Calibre you can mange them all from the Calibre app while accessing them anywhere. Meanwhile you can upload to and (optionally) delete books from Google Play Books which will sync your reading progress across devices.