Block distracting websites with DNS66

The best way I found to block websites on my phone is to use DNS66. You can download it from the F-Droid app store (it is not on Google Play). It creates a VPN that will block any website on the blacklist.

Its original goal is blocking ads and trackers. It comes ready with multiple ad and tracker lists. New lists can be added, which is how I am blocking distracting websites.

It is better than similar products on the Google Play Store because:

  1. It is open source, free, and has no ads.
  2. It does not proxy web traffic. Blocking is all local.
  3. It does not require root.
  4. It is not going to try to steal your data.

To use it, you will create a text file and redirect websites you don’t want to Or you could be funny and redirect to a good websites like I prefer to host my file online (like and download it. Below is the file format.
Posted in Android, How-To | Tagged , , , , , , | Leave a comment

What to do when forwarding Gmail

I am in a situation where I use another email provider ( but cannot get rid of Gmail. Too many friends, family, and recruiters use my Gmail for me to actually delete it. I could use two email clients, but having one source for all my emails is just better. These are the tips I suggest for this situation.

Add a “special” Forwarding Address: Forward all new emails from Gmail to your new email address. For example, let’s say your new email is I suggest putting a +gmail after user ( Your new email client can label and filter this specific email address now, letting you gradually update services with your new email address. Bonus suggestion is to select “delete Gmail’s copy” so you are not duplicating emails.

Settings > All Settings > Forwarding and POP/IMAP > Forwarding:

Turn off Gmail’s SPAM filter: All emails should be forwarded to your new email provider, but Gmail will not forward SPAM emails. Having double SPAM protection increases false positives. I recommend turning off Gmail’s SPAM filter so everything will get forwarded. There is no SPAM toggle in Gmail, so you need to make a fancy filter. You select all messages by doing a “does not match” a random GUID (or another log and unlikely text) and picking the action of “Never send it to Spam”.

Settings > All Settings > Filters and Blocked Addresses

Suggested by

Label big emails: Eventually you will want to export your emails to your new email provider. Gmail has a generous amount of email storage, probably more than your other provider. To avoid using up all your storage, filter out big emails so you can manually export them, delete them, or ignore them in IMAP. Creating a filter is straight forward.

Posted in How-To | Tagged , , , , , , , | Leave a comment

RSS Feeds from websites without RSS Feeds

RSS Feeds are great. You can follow all the online content you care about in one place. Emails of comic updates will not get buried and you can occasionally get updates from infrequent blogs, like this one. I personally use

But some websites limit the RSS Feeds available and do not get specific.

For example, I enjoy reading Wall Street Journal (WSJ) Sports because they discuss larger trends in sports, rather than game highlights. WSJ only offers 6 RSS Feeds, with Sports sometimes being part of the Lifestyle feed. I want to get all updates for WSJ Sports.

There are multiple different solutions and all have limiting free versions. Some monitor a webpage and detect differences (like an image or text difference) and others require more user input. Some are RSS readers themselves and others just generate RSS feeds.

The best solution for WSJ Sports has been to generate a RSS feed using They will monitor 5 feeds (others do 2) and check daily (plenty enough for WSJ Sports). They only keep a 5 article history (not good for active websites) but NewsBlur does the article saving. If you want faster updates (up to the minute), all services will charge for that.

FetchRss uses CSS Selectors that the user needs to identify to generate the RSS feed. In a few months, the selectors on WSJ Sports has not changed, but this method is prone to breakages. The visual guide is good at picking out selectors without looking at code and will work mostly. Avoid using the selectors of articles in the Featured or the Top sections of websites, since then you will not get all the articles a website publishes (not the goal of a RSS Feed).

These are the selectors I am using for my feed and this is my WSJ Sports feed.

News item
#latest-stories > article.WSJTheme--story--XB4V2mLz




Posted in How-To | Tagged , , , , , | Leave a comment


When I tasted chai, wow, my life was changed. I have been adapting my chai recipe as I have learned from “chai experts” and experimented myself. The primary credits go to my mother-in-law Manju Agrawal.

Chai is very customized for the individual and the region of India. I have included the default options along with bonus options.chai in pot

Serving Size

  • 1 large cup for 1 person
  • 2 small cups for 2 people


  • Pot, Mug, Small Spoon


  • Required Ingredients
    • Water: 3/4 cup (adjust ratio with milk to your taste)
    • Chai: 2 scoops
    • Chai Masala: 1/2 scoop
    • Shredded Ginger: 1 scoop
  • Bonus ingredients (adjust per taste)
    • Black Pepper: 1/4 scoop
    • Clove: 1/5 scoop
    • Cardamon: 1/3 scoop
    • Mint: 1 scoop
    • Cinnamon: 1/2 stick
  • Phase 2 ingredients
    • Milk: 1/3 cup (adjust ratio with water to your taste)
    • Sugar: 2 scoops (adjust per taste)


  • Phase 1
    • Add water to the pot and turn on heat. Add in the required ingredients and your choice of bonus ingredients. Wait for the water to boil.
    • Bonus: wait for the water to rise
  • Phase 2
    • Add milk and sugar. Keep a close eye because the chai will rise.
    • Bonus: Wait for it to rise 3 times.
    • Hint: Put a spoon across the top of your pot to avoid boiling over.
Posted in How-To, Recipes | Tagged , | Leave a comment

Make an old laptop into a “Chromebook”

My father-in-law needed to use a web browser on an old laptop. He liked using Chrome, but Edge would open and not close. Random apps popped up and took up the screen. Windows 10 on an HP laptop was hogging memory with McAcfee and Windows Store games. He just wanted a browser and could not get that after a fresh Windows 10 install.

The “Chromebook” solution has been the right call. The computer boots up quickly and is always responsive. He gets his browser without the extra nonsense.

Chromebooks are maintained by Google, but the open source operating system is repackaged by Neverware into CloudReady. They have different versions, but the free version is the Home Edition.

To install, if you have a Windows computer

  1. Plug in a USB stick
  2. Download the installer and run it (~20 minutes to download the OS image)
  3. Move the USB stick into the destination “Chromebook”
  4. Boot into the USB stick.
  5. Play around with your “Chromebook” and then install by selecting on the bottom right of the Desktop, then “Install OS”.

If you do not have a Windows laptop, you need to manually do steps 1 and 2 on your own, but their website has instructions. It is similar to any Linux bootable USB stick.

Posted in Linux, Reviews | Tagged , , , | 1 Comment

Case positions for Overhead CodeDodger wireless keypad

When trying to set up a new Overhead CodeDodger wireless keypad (with buttons for “SET” and “PRGM”), it is very important to understand what the instructions mean by an “open” case. This is best seen at night when the buttons light up.

In the three pictures below, the case goes from closed, to open, to off. The huge difference is “open” versus “off”. Looking at “off”, there is a button on the top left of the wireless keypad. This needs to be pressed in, and it is pressed in by the case cover. You can see a nub on the case cover that will press that button in. When in position “open”, that nub will push in that top left button, and at night, you will see the keypad light up. Credit for RTKNJ for this amazing advice.

With this knowledge, you can follow the instructions found elsewhere, like here and here.

Last note, if you see the backlight on your wireless keypad, you do not need a new battery.

CodeDodger case closed

Case closed

CodeDodger case open

Case open

CodeDodger case off

Case off

Posted in Hardware, House, How-To | Tagged , , | Leave a comment

UHD 4K @ 60Hz Checklist to Get Your Monitor Working to Its Fullest

A 4K monitor that is running at 30Hz is choppy and jumpy. Everyone wants the full 60Hz for the smooth mouse scrolling. But 4K 60Hz is so much data that needs to be transferred so quickly that every hardware and its configuration from the monitor to the laptop needs to support 4K 60Hz. One weak chain will result in 4K 30Hz.

Follow this guided checklist and be ready to read your hardware’s manual!


Look at the website where you bought the monitor. Does it explicitly say it runs 4K 60Hz?

Monitor ports

Which ports support 4K 60Hz? Are there configurations you need to set? Read the monitor’s manual.

For example, for my Samsung LU28E85KRS/GO, HDMI #1 does not support 4K 60Hz but HDMI #2 does. The DisplayPort port supports 40K 60Hz, but only after setting the DisplayPort Versions  to 1.2 in the monitor’s menu.


Use the cables that came in the monitor box. If the monitor was advertised with 4K 60Hz, these cables will support it. Otherwise:

HDMI – Need 2.0 or greater. These will say “High Speed” on the cable near the ends. HDMI High Speed cable

Display Port – Need 1.2 or greater.

USB C – Need 3.0 or greater

Cable adapters

Read the specifications! Cheap alternatives could overheat and not deliver on their promises.

USB C Adapter from Apple’s website USB C Adapter

3840×2160 at 60Hz on:

iPad Pro 11-inch, iPad Pro 12.9-inch (3rd Generation), MacBook Pro (15-inch, 2017 and later), iMac (Retina 5K, 27-inch, 2017 and later), iMac (Retina 4K, 21.5-inch, 2017 and later), and iMac Pro (2018)

1080p at 60Hz or UHD (3840 by 2160) at 30Hz on:

MacBook Air (2018), MacBook Pro (13-inch, 2016 and later), MacBook Pro (15-inch, 2016), iMac (non-Retina, 21.5‑inch, 2017), and Mac mini (2018)

Computer Graphics

Duckduckgo/Google your computer’s graphics card and “4K 60Hz”. Modern computers should support this. For Macs, support varies on device and year, but the cable adapter quote above is a good reference. Just be sure to verify your Macbook type, size, and year.

Computer ports

Read your computer’s manual! You cannot tell what version a port is by looking at it.

On my LG Gram 15Z975, there is an HDMI port and a USB C port. The HDMI port is version 1 and does not work, but the USB C is 3.0 and does support 4K 60Hz.

Windows – Display Settings

Windows lets you select the resolution and refresh rate in a deep menu. In that menu, you can verify what refresh rate your monitor is running at, and increase or decrease it. Additionally, you can pick the highest resolution that supports 60Hz. 

Open Display settings from the Control Panel. Scroll and select “Advanced display settings”.

display menu

Some additional monitor information is displayed. Select the Display # from the dropdown menu and then click “Display adapter properties for Display #”.

advanced display settings

This could be different depending on your Graphics adapter, but the next step is click “List All Modes”. Pick your preferred resolution and refresh rate. 

graphics card and list modes

Mac – Display Settings

Macs do a cool little thing for their retina displays, which they extend for high resolution monitors. They scale smaller displays up to a monitor’s full resolution. This means they send the full resolution to the monitor but the computer has smoothed all of the text edges. This avoids the monitor pixelating the text. 

But this cool trick makes it difficult to verify if you are running at 60Hz or 30Hz! If you are stuck at not being able to run 4K 60hz, you can also pick a lower resolution that supports 60Hz while you wait for new cables to arrive in the mail. 

Macs simplify the amount of resolutions shown in their Displays menu, but by Option clicking on “Scaled” and then selecting “Show low resolution modes”, all the display modes are visible. 

mac display menu default

Now it is trial and error. Pick a low resolution mode, check the possible refresh rates, and if not 60Hz, keep going down. For me, 2560×1440 worked for me!

mac displays with low resolutions


Posted in Hardware, How-To | Tagged , , , , , , , , , , , , | Leave a comment

Move Google Contacts to Nextcloud Contacts

The process is easy. Go to the Google Contacts website:

Expand “More” and select “Export”.

Export all or some of your contacts, but select vCard format and save to your Desktop.

Go to your Nextcloud website’s Contacts app: https://<your-nextcloud-website&gt;.com/index.php/apps/contacts.

Expand “Settings” and click “Import Into”. In the file dialog, select your downloaded vCard.

Wait for the import to finish.

Now if you are using Google Contacts on your phone, you will want to disable that sync so you do not get duplicated contacts. You can sync your contacts with CalDAV/CardDAV Android app.

You can also delete all of your Google Contacts as well, but I will not include those instructions in case people are just looking at pictures.

Posted in How-To, Nextcloud/OwnCloud | Tagged , , , , , , , | Leave a comment

Add Nextcloud calendar to Google Calendar

Below is how to see (read-only) your Nextcloud calendars in Google Calendar. I do not believe Google supports writing to Nextcloud calendars from Google Calendar. This example is for my Calendar “Example Calendar”.

From the calendar app page:

Under your list of calendars on the left

  • Click the share button
  • Select “Share Link”
  • The click the second share button

Your browser will open to a new Nextcloud Calendar page that is for public viewing.

On the top right, click on the Subscribe button.

Your browser will either ask you how to handle this type of link, or will redirect you directly to Google Calendar, where you can add your calendar in this format.


Posted in How-To, Nextcloud/OwnCloud | Tagged , , , , | 3 Comments