Local .vimrc for neovim settings and differences

For directory-specific vim settings, you can use .vimrc but when using neovim, you’ll need to use .nvimrc instead.

To get it all working, add the following to your init.nvim file:

set exrc
set secure

Using set secure will disable/disallow using autocmd settings

In the directory with vim settings, add an .nvimrc file.

I was struggling with this b/c I was using .vimrc for neovim which didn’t work for me.

Running a local docker instance for WordPress theme development

I wanted to update the Leaf theme (the one I’m currently using) and I haven’t had wordpress on my computer in a long time.

Instead of going through the whole set up again, I decided to use docker for this.

I wanted to keep the setup to a minimal and also make it portable for future use, below are the steps you’ll need to get it running.

  1. Install Docker (I’m on mac, so I just have the docker app).
  2. Make a directory that you can call something like wordpress-docker, this is where the docker-compose.yml file will live.
  3. Add the following to the docker-compose.yml file:
version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html
      - ../leaf:/var/www/html/wp-content/themes/leaf # --- this assumes we have leaf one dir up


  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: password
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:

4. Start up the docker instances by running docker-compose up (from within wordpress-docker)

5. Go to localhost:8080, you should see the wordpress instance.

6. After the setup is complete, go to localhost:8080/wp-admin/themes.php and you should see the theme for development too.

TIL: tempfile in ruby, use it for easy garbage collection afterwards

Today, I was working on a script at work where I ultimately needed to export a 2MB file and although this isn’t a large file, I know I will forget about getting rid of it so while searching around, I came across tempfile.

Tempfile simply will be garbage collected at some time because the file is stored in /tmp and you can make your own copy if you need it. Here’s an example from the ruby docs:

require 'tempfile'

file = Tempfile.new('foo')
file.path      # => A unique filename in the OS's temp directory,
               #    e.g.: "/tmp/foo.24722.0"
               #    This filename contains 'foo' in its basename.
file.write("hello world")
file.rewind
file.read      # => "hello world"
file.close
file.unlink    # deletes the temp file

Make sure to run file.unlink if you want it to be deleted right away.

Using Numi app for calculations

I’ve used the Calculator app on the iPhone for as long as I’ve had a smartphone and I think on the computer, it’s a weird thing that’s been missing for a long time. Recently, Apple brought the Calculator app to Mac but I don’t think it’s as useful as I want it to be so I recently discovered an app called Numi.

https://numi.app/

It’s a super simple app that just works and the best part about it is that it supports setting variables and making conversions between many units extremely easy.

Here’s an example of a time difference comparsion:

Using the correct divisors is amazing in this app. So on mac you can use / or alt + / to type out ÷, Numi handles both of these the same way.

Some more examples:

TIL: using my own blog as a knowledge DB with Google as the search engine

Today, I saw Simon Willison’s “One year of TILs” post on HN (which itself was inspired by Josh Branchaud’s collection) where he mentions writing blog posts that come from small tidbits of knowledge. For a long time, I’ve dabbled in keeping notes in Notion, text files edited with vim, and a bunch of native mac apps but the problem I run into over and over is the inability to deeply search for things. Notion has been improving in this regard but still feels really slow. This is a surprise since it has all of data that I want to search.

Well, I realized that if I wanted to just search through my blog posts and pages on my blog (where I keep most of my public notes), I can just use google with the site:usmanity.com specifier.

Why not DuckDuckGo?

I use DDG for 99% of my searching on my phone and computers so when I tried the site:usmanity.com or even the one where it was specifically my blog (site:blog.usmanity.com), DDG fails to find any of the specific pages/posts. So I went with Google on this one.

How it works

To speed up the whole process, I’ve made a custom search for Alfred, this is the key to making this trick work.


In the above image, the “b” stands for “search on my blog” and the rest is what gets passed to Google. It works like a charm. I get a few search results and the more specific I make the search, the less results I get which is perfect for my use case!

This might be my first TIL post as well 😀

Realforce R2 vs Epomaker’s Niz Plum x87

About two weeks ago, I made a reservation for the [GMMK Pro] keyboard from Glorious. At first glance, I liked the keyboard and then watching reviews of it online, I really started to like the way it was put together. My favorite keyboard layout is the simple 80% or TKL, which is a normal layout keyboard with the numpad removed. The GMMK Pro is a 75% board since it lacks the full navigation cluster and the arrow keys are shifted to the left a bit. It also doesn’t have F13-15 (or Print screen, num lock, and Pause). Instead, it has a knob located in that spot, which was sort of a bonus for me.

GMMK Pro from Glorious in white

Well, while I’ve been impatiently waiting for the board, I’ve been tempted by other boards, including a lot of switch options. I ordered a set of Gateron Red switches with the GMMK Pro, the switches are made by Glorious as well (I think). And they feel a bit too linear and straight forward for me but I might try them out when the board gets to me (whenever that maybe).

Loud switches annoy me

The loud clicky switches like Cherry MX’s blue and green switches annoy me since a lot of the time, I’m typing with music playing in the background and the clicking and clacking isn’t very satisfying to listen to and some times it even distracts me. This is at home so it’s not like I’m bothering anyone else, just myself but I still consider that to be too much.
I’ve recently put away my WASD board which I was using as my only board for 2020 while WFH and I’ve been using my Ergodox which has less noisy MX brown switches but the typing experience on it is not very satisfying.

Alternative options

So while I wait, I wanted to try a board I have been interested in for awhile. The RealForce boards are made in Japan with Topre switches which are not exactly mechanical switches but do have very good build quality and are raved about online. The switches are some of the few switches available now that are patented and only made by RealForce and other Fujitsu brands. I believe because of this proprietary switch, their keyboards are inherently more expensive than pre-built mechanical keyboard options. Well, I still wanted to try it and make sure I wasn’t leaving a stone unturned before I buy what might be my endgame keyboard (GMMK Pro).
So when I ordered the RealForace R2 from Amazon, I also ordered the supposed dupe of it which is the Epomaker Niz Plum.

Comparing both boards

Before I jot down my thoughts, I want to point to a youtube video you can watch that compares these two boards as well:

The typing experience, for the first few minutes, on each keyboard feels the same. But as I spent more time typing, even while typing this blog post, the differences started to become clear.

Realforce R2 on top, Niz Plum x87 on bottom

Realforce R2

It definitely feels and types like a well built and solid board. Doesn’t have the cheap feel at all. This board is listed on Amazon for about $255 (USD). That means it’s one of the most expensive keyboards I’ve bought. This is expensive in general because you can get a wireless, type-c, and RGB enabled keyboard from Keychron for about $70.
This keyboard just looks old, the ivory color that I got has the vintage IBM era colors and it might look cool from far away but comparing this with all the various options available out there, I don’t like the looks of it.
The keycaps were hard for me to pull out so I didn’t want to mess with them after I couldn’t pull them with a keycap puller. This board uses electro-capacitive switches which is what the Topre switch is. The board doesn’t have general MX style + type switches so you can’t replace the keycaps. This is a big negative in my book since I am definitely considering buying some custom keycap layouts.
The layout of this keyboard uses a mixed weight for the actuation force and this actually is really cool. I have typed for about half an hour on it so I can’t say if it’s great for long term use but right off the bat, it did feel good for my weaker fingers like the ring and pinky finger.
A weird performance issue is happening on my Mac which is sort of making me nervous about this board, it skips every 20-25 keystrokes, I am not a perfect typist but I know I’m pressing some keys perfectly and it just doesn’t pick them up. I’m wondering if this is due to not getting any feedback or because it’s not registering some keystrokes.

Niz Plum x87

So Epomaker has been a hit or miss in my opinion for me, I’ve tried another board from them and it felt very weak as a board for about $100. The Niz Plum board is listed for $155 on Amazon. Almost a full hundred less than the RealForce. This keyboard also uses electro-capacitive which is primarily the reason for me to try this board. It has the same layout as the R2 and looks very similar except the color scheme and case are a brighter white and less gray than the R2.
The keycaps are MX compatible on this so easily replaceable.
This keyboard is listed as having switches with a 35g actuation force, which to me feels a bit too light. Some times, I’ll just be resting my fingers on the home row and the keys will be pressed in. Just like the R2, this keyboard doesn’t have much feedback when the key is actuated which seems like an odd experience for me.
Unlike the R2 that uses a fixed cable, the Niz Plum uses a type-C port. The board definitely is a modern take on the R2 in my opinion. Its typing experience is on par with the R2 for $100 less and for a better UX.
No keystrokes were skipped with this one which is a great thing to have on a board 😀

Which one would I consider keeping? I think the Niz Plum over the RealForce but I am going to spend about a week with each and see how things go.

Tracy – Mogwai

This song has stuck with me for awhile and this morning I really liked listening to it so I wanted to share it:

Mogwai has a good post rock sound and I love some other songs by them too.

The intro of this song really interests me.

And the name of the song is a nice reminder for me of my hometown of Tracy, CA.