Thursday, May 15, 2014

Productivity tools for those with problematic Internet connection

3.6 Mbps here is the average for premium subscriptions that the well-off can afford.
Please take note that that is the theoretical maximum.
There is pretty much nil in the way of guaranteed minimum speeds.
We have 2 Mbps in the office. I have 0.46 Mbps in my house.

Where I live, I can't rely on the Internet connection speed to be reliable in my everyday work.

So here's some tools I compiled to help mitigate or workaround these issues. I err more on the free programs, and ones that work in Windows and Android. I provide links to alternative software for each.

Hopefully, you'll have use for them as much as I do.


A note taking program that can also save web page snippets.

  1. Can work offline, will sync to cloud when Internet connection is available
  2. Has a mobile app version
  3. Allows sharing to other people, with settings for permissions
  1. The Evernote window can hang occasionally as it does whatever housekeeping it does to its data.
  1. Bandwidth usage limit capped at 60 MB per month for free users (understandable; not really a problem, but you should be aware of it)

More than a simple note-taking program, Evernote can also save web pages. This is important as it gives me offline access to those web pages, instead of simply bookmarking them.

So why not just save the .html page on your hard drive? Evernote allows you to organize your notes/web page snippets neatly: you can organize them into "notebooks", search the text, add tags, see the original URL of the web page you saved, and most of all, they get synced in the cloud. If you get the mobile app for Evernote, all your notes also show up in your mobile device.

Found a gamedev article that you feel you're gonna need for reference later on? Clip it on Evernote. Had a sudden stroke of good ideas while on the go? Type it down on your smartphone with the Evernote app. It'll sync to your PC later on, and you can flesh out the idea more on your keyboard.

Catch: The free version allows you a limited amount of stuff to sync: 60 MB worth of data, but it resets every month.

So if you find yourself saving pages with humongous images, you're better off simply saving them the usual way. Evernote is primarily for notes anyway.


To-do list creator that's perfect for Kanban style, but also works well otherwise.

  1. Syncs to cloud, has mobile app versions
  2. Allows sharing to-do lists/boards to other people, with settings for permissions
  3. Intuitive controls, 
  4. Can have plugins. Burndown For Trello and Scrum for Trello in particular is interesting.
  1. For desktop, it's accessed only via your web browser; doesn't have offline access. If you went to the Trello website while having Internet connection, it will still continue to work when you lose connection. But it can't start if you do not have any Internet connection in the first place.
  2. As of yet, only the mobile app version has offline access
I don't personally use a strict Scrum style. For that, you can try Pivotal Tracker.

Running the mobile version of Trello on your desktop PC

While you can't have offline access to Trello on your PC, the mobile version can. And it's possible to run an Android virtual machine on your PC, then run the mobile version of Trello on top of that.

For an Android virtual machine that's easy to install, there's Bluestacks. But you need to pay a subscription to use it. If you don't want to pay, you'll be required to install some sponsored apps/games to continue using it (not a problem, really).

For something that's totally free and open-source, there's Genymotion. I haven't tried that yet however.

Some noteworthy alternatives to Trello:

  1. Written in .NET. Can work offline.
  2. If you set up your own redis database server somewhere, Personal Kanban can sync to it.

  1. Single .html page, written in HTML/Javascript. Can work offline.
  2. Can sync to Google cloud storage.


Your own wiki site, all in one html page.

There's a beta version 5, which is an overhaul of TiddlyWiki, and there's the classic version.

  1. Works offline. Upload the .html page on the web, and it also works online.
  2. If you need it to sync, just put the file in your Dropbox, Google Drive, or whichever cloud storage service you prefer.
  3. The new version 5 (currently in beta) can also be deployed as a Node.js application
  4. Numerous plugins, but take care as some of the ones found online only work in old versions.
  5. Themable skin
  1. Easy, one-click saving of changes to your TiddlyWiki is problematic, as web browsers don't normally allow this (due to security considerations). Firefox has a plugin to bypass this restriction specifically for Tiddlywiki files. Alternatively, you can just save the .html page the usual way and overwrite the old file.
  1. Has no official mobile version, but there is a 3rd party program: a web browser specifically designed to work properly with TiddlyWiki files: AndTidWiki (Put your TiddlyWiki in your Dropbox, get the Dropbox app for your phone, and use AndTidWiki to edit it. You now have a wiki that syncs to and from mobile!) Here are other mobile apps for using TiddlyWikis.

Being a wiki, TiddlyWiki has some uses that overlap with Evernote.

But for me, I use my TiddlyWiki as a knowledge-base; an encyclopedia for my game's lore.

Evernote on the other hand, is for hoarding tutorials, references, and jotting down ideas quickly.

Google Docs

Create documents, spreadsheets, presentations, etc. on the cloud.

  1. Syncs to cloud, has mobile app versions
  2. Can work offline and will simply sync when Internet connection is available
  3. Allows sharing documents to other people, with settings for permissions
  4. Allows real-time collaborative editing on documents
  5. Have plugins that allow it to create more types of documents, including a kanban board, plain text files, guitar tablatures, etc.
  6. Can import OpenOffice documents
  1. Works best in Google Chrome

LAN Messenger

Offline instant messenger (LAN only) and file transfer tool.

This is pretty self-explanatory. It's like Skype/Yahoo Messenger/etc., but you don't need to connect to a server on the Internet. However, you need to be connected to a LAN of course.

Anyone else in the LAN running the same program can see you, and you can send messages, set up chat rooms, and transfer files to each other.

It's best for communication between (trusted) members of a team.

LAN Messenger works on Windows, Mac, and Linux, so it's an easy way to transfer files, if your people use different operating systems.

It also has a portable version, which means it can be installed in your thumb drive.


Backup/Sync tool. It makes sure two sets of folders have the same files/subfolders inside.

Using USB thumb drives and external drives is common for us, so a tool that figures out stuff for us like "which of these again is the up-to-date version that I should copy??" is nice.

I have a bunch of concept art reference images for my projects and I like to do backups of them to my external drive. However, I do shuffle them around across many folders over time as the project matures. Having to make sure the folders in my external drive match up with how it is in my laptop by myself is a hassle, so I let a file sync program do this for me.

You can have it ensure the files/subfolders in the destination folder exactly match up the files/subfolders in the source folder, or you can let it work on a per-file basis to resolve situations.

The program basically tells you "they're the same filename, but the contents are different. which one of these do you want to keep?" and you have the option how to resolve it:

  1. Keep both and just have the other file be renamed.
  2. Make the program stop and ask you to inspect both, letting you choose which you want to keep.
  3. Simply always keep the one that had a later "date modified", and discard the old one.


Bandwidth monitoring tool.

How much is your PC downloading right now anyway? With a bandwidth monitor tool, it's easy to see if your Internet connection is going through that temperamental phase again.

There are a lot of programs that can do this, but what I prefer is something that I can see even if I have a maximized window, unobtrusive, and doesn't take much space. NetSpeedMonitor does the job well. It adds a bandwidth reading right beside your system tray.


Bandwidth balancer.

Taking this a step further: have you ever noticed your download speed spikes up when you browse the web? I found this usually infuriates other people in the office playing an online game or watching a streaming video.

What if you could limit your web browser to download at a set 10 kb/s? Even if it doesn't have that feature? With a bandwidth balancer you can. Any program transferring data to the Internet can be throttled.

NetBalancer is the one I've tried, and it works ok. The free version allows you to throttle only up to 3 programs at a time (you can switch which 3 programs are throttled at any time), and that's usually enough for a single person throttling his own PC. (NetBalancer has a version that can throttle for your whole network.)

The best would probably be a sophisticated software that's installed on your router (the device that connects all your PCs together, and likely also your connection to the Internet). ISP's here give you some pretty bare-bones routers that aren't of much flexibility that allows that. So a user-driven program can work pretty well in this situation.

Even without using it as a bandwidth balancer, NetBalancer is useful to check which of your programs is hogging the download bandwidth.

Catch: I've had a side-effect that my laptop's CPU usage was always about 25% even when I wasn't doing anything. It made browsing my files slow and whatnot. Seems like it was connected to the WMI Provider Host hogging the CPU problem. I'm not sure if it's related (it's also likely that it's not) but when I uninstalled NetBalancer plus tweaked a bunch of settings in my Windows, the problem went away. I use Windows 8.0 by the way, and it's also possible the issue was fixed in Windows 8.1.

Text-only mode for your browser

Text Mode for Google Chrome

Opera web browser (has this feature built-in via user mode)

Text Only, Lynx Web Browser, and Opera Mini for Android

Maybe you need to check some documentation online, maybe an interesting gamedev article came up in your Twitter feed. At that point, you're only going to care about seeing the text first. With a flaky Internet connection, it'll take longer if the images are going to be downloaded too. If there's diagrams you need to see, it can be nice to easily load them on your demand with a simple click.

I use Google Chrome and there's quite a lot of these plugins around. The one that worked ok was Text Mode, but it's a toggle that will block/unblock image downloading for all tabs in all your web browser windows. A per-tab setting at the least would have been useful.

Squid proxy server

If you're in a small office where people end up downloading the same thing over and over across different machines, you'll find yourselves eating up download bandwidth really quick.

"Hey Tim, check out this youtube vid...". who then passes it to Sally "cool, check this out", who then streams it from her laptop... and pretty soon you'd have hit your "unlimited" data cap.

A proxy server is meant to get rid of those redundant downloads.

How this works is, instead of all the PCs in the office directly downloading stuff, they now only request it from another PC, designated as the "proxy server".

The proxy server downloads whatever's requested, and saves them in the hard drive. The next time someone asks for the same thing (a video, a web page, etc.), it's not going to bother downloading it again, it will just send the already saved file to your PC.

In the case of user-sensitive data like when you access your private Facebook stuff, it's not going to cache that because it doesn't make sense to do so.

Catch: It requires you to have an additional PC running as the proxy server (likely turned on 24/7, or as long as there are people in the office).

I've had success with Squid, and it's perhaps best to run it on Linux in text-mode, to save on your electricity bill. An old Pentium computer can probably suffice for this in a small office set up. Being Linux, that's gonna require someone who knows their way around it to get it working properly. If you don't have that luxury, there's also a Windows version for Squid.

Squid is free and open-source, however, it requires some extra configuration to get it to work properly with caching Youtube videos or any streaming video.

Peer-to-peer file sharing over the Internet


BitTorrent Sync

Sync your files across many PCs or mobile devices just like the way you torrent.

Catch: This is relatively new. Even with those assurances of being secure, I would err on the side of paranoia and expect some security vulnerabilities eventually.

I'd use this only for large files that I'm willing to share to the public anyway, like demo builds of my game.

That's all. I'll add more when I think of something worth mentioning.

Feel free to suggest other apps and tools in the comments section.