Don’t you want your new keyboard to be nice and shiny and have a great “thock, thock” sound? Want to be that cool engineer that is noticeably hard at work in the office? Why buy an already built keyboard from amazon or one of those top gaming companies when you can have a totally custom and unique mini project? This is your primer to the world of custom keyboards.

What are my qualifications?

I did a quick deep dive for a few nights, read a bunch of articles, and watched a bunch of youtube of sounds. This is my first custom keyboard. 💀

There are 3 primary choices that need to be made and we’ll go through them in a simplified fashion. I’ll highlight my own personal choice in green and put the full build list near the bottom.

Case

Here is where you set the foundation for your keyboard. In this guide, we’ll talk through one of the more popular keyboard kits, there are definitely ranging options with different brands and costs, but for simplicity sake, we’ll be going over the QwertyKeys keyboard kits, which is considered above average.

Choosing the size

There are many sizes to choose from, from 60% to full size. the % usually refers to the approximate size of the keyboard compared to a full-sized layout

Size Description Number of Switches
60% only includes alphanumerics keys, most common used punctuation, and a few essentials 61
65% essential keys omits number pad and function row 67-68
70% alphanumerics, some function keys, omits number pad 75-80
75% adds more functionality, a function row and more navigation keys 83-87
80% excludes number pad 87-88
Full includes alphanumeric, function keys, navigation keys, and numeric keypad 104-108

🛂 https://www.qwertykeys.com/products/neo75cu [QwertyKeys neo75cu]

Case material

This choice is mainly for looks and weight

Top case options

Anodized Silver Anodized Black Anodized Grey Anodized Navy
Anodized Purple Anodized Burgundy Anodized Green Anodized Grey-gold
Anodized Cornflower Spray-coated Retro White Spray-coated White Spray-coated Cream

🛂 Click through the site and choose a color combination that looks good [Anodized Silver]

Bottom case options

Option Description
Brass
Copper slightly denser than brass, will have more weight

🛂 Can’t go wrong with some density [Copper]

Accent badge look

Silver Orbit Badge Golden Orbit Badge Black Orbit Badge
Silver Nova Badge Golden Nova Badge Black Nova Badge
Silver Vortex Badge Golden Vortex Badge Black Vortex Badge

🛂 Choose something that will match your aesthetic [Silver Orbit Badge]

Printed circuit board (PCB)

Option Description
Solder PCB includes 2 foam fillers for the battery compartment. less likely to break
Wired Hotswap PCB includes 2 stainless steel fillers for the battery compartment to add weight
Tri-mode Hotswap PCB includes 2x 2200mAh batteries, allows for cable, wireless, and bluetooth

🛂 The most durable option will be the solder PCB, but wont allow for wireless connectivity [Tri-mode Hotswap PCB]

Plate

This is a plate that helps to sandwich your switches to the circuit board. It is located between the switch and the PCB, supporting and fixing the switch, reducing the shaking of the switch during use, and protects both the switch and the circuit board. The dense materials provide a stiffer typing experience with basically no flex, have a harsher bottom out, resonate a lot and provide a higher pitch sound profile

Material Description Flexibility Sound
Steel high hardness, heavy feeling, solid sound. common in cheap mechanical keyboards Hard+++ High+++
Copper hardness equivalent to steel, louder sound Hard++ High++
CF (Carbon Fiber) high hardness and light weight, crisp sound Hard+ High+
Brass firm typing feel, balanced responsiveness. deep and resonant sound Hard High
Aluminum high hardness, light weight, dull sound Medium Medium
FR4 (Flame Retardant-4) medium hardness, full toughness, thocky sound. same material as PCB Soft Low
POM (Polyoxymethylene) low hardness, easy to deform, thocky sound. widely used due to popularity Soft+ Low+
PC (Polycarbonate) low hardness, easy to deform, thocky sound. extremely soft feel Soft++ Low++
PP (Polypropylene) soft and bouncy feel. soft and muted sound Soft+++ Low+++

🛂 Balance the “thock” with some crisp sounds [Carbon Fiber]

Switches

There are a ton of switches out there. Each brand has their own style, build material, lots of technical details that we’ll just skip. Decide what sound profile you prefer, listen to a few sound tests and just give it a try. I think milktooth has a great channel that just powers through a lot of switches, if they don’t have the switch you heard about, just give it a quick google; someone, somewhere has done some review on it.

Type Description
Linear simplest. feel the same the moment you start pressing till bottoming out. no tactile feedback or noise when hitting the actuation point
Tactile provide tactile feedback when hitting actuation point. as you press down you will notice a small bump
Clicky provides an additional click sound when hitting actuation point. main advantage is that you dont have to push the key all the way down
Hall Effect use magnetic switches so you can press keys really fast wihtout waiting for them to fully come back up

Switch Types

After a lot of videos, there seemed to be a constant few that would keep popping up, it was overwhelming, so I just chose a popular manufacturer and went deep on them:

Name Technical Details Type Link
Everglide aqua king Actuation force: 46g
Bottom out force: 62g
Total travel: 4mm Linear https://milktooth.com/products/aqua-king
Gateron oil king Actuation force: 55g
Bottom out force: 65g
Total travel: 4mm Linear https://milktooth.com/products/oil-king
Gateron weightlessness Actuation force: 50g
Total travel: 3.4mm Tactile https://milktooth.com/products/weightlessness
Gateron baby kangaroo Actuation force: 59g
Bottom out force: 67g
Total travel: 3.4mm Tactile https://milktooth.com/products/baby-kangaroo
Gateron quinn Actuation force: 59g
Bottom out force: 67g
Total travel: 3.4mm Tactile https://milktooth.com/products/quinn
Gateron long jing Actuation force: 48g
Bottom out force: 55g
Total travel: 4mm Tactile https://milktooth.com/products/longjing
Haimu mulberry Actuation force: 47g
Bottom out force: 55g
Total travel: 3.6mm Tactile https://milktooth.com/products/mulberry
TTC venus Actuation force: 45g
Bottom out force: 52g
Total travel: 3.8mm Linear https://milktooth.com/products/venus
Wuque Studio WS morandi Actuation force: 50g
Bottom out force: 60g
Total travel: 3.5mm Linear https://milktooth.com/products/ws-morandi

https://milktooth.com/products/switches

🛂 When in doubt choose the most popular and trending ones [TTC venus, Everglide aqua king]

⚠️ One other thing to note is key switch stems. most will probably be the cherry mx stem, or mx-compatible, but if you encounter anything else, you should make sure that your switches and key caps are compatible. https://glacierpcgaming.com/blogs/news/understanding-key-switch-stems-why-they-matter-in-keycap-compatibility

You can do your own research, we’ll provide a few interesting youtube links here:

  • https://www.youtube.com/watch?v=PwSQgOugNAs – I built the thockiest keyboard
  • https://www.youtube.com/watch?v=3wAbhS73sWk – Best and worst Gateron switches
  • https://www.youtube.com/watch?v=huhEfYF-lGE – Beast and worst TTC switches

Key Caps

Again there are an overwhelming amount of choice out there; from type of printing, material used, to type of key profile. We’ll go over the main points.

Material

ABS are the cheapest, most common plastic, mass-produced from easily moldable plastic. PBT are less common but usually have higher quality, resistant to wear, providing a longer lifespan.

Pros Cons
ABS smooth surface, affordable, readily available, allow for vibrant printing, found on stock keyboards prone to wear and shine, less durable
PBT durable, resistant to wear and shine, provides premium feel, textured surface for better grip, longer lifespan limited color vibrancy, can be more expensive than ABS
POM smooth and durable, resists wear and oil build up, unique feel, premium typing experience limited availability, may not feature intricate designs
Resin highly customizable with intricate designs, handcrafted, can be translucent can be expensive, limited availability, may not be as durable
Rubber excellent grip and tactile feedback, ideal for gaming and typing, durable and resistant, reduces typing noise limited aesthetic options, not as common, may not be compatible

https://hirosarts.com/blog/different-types-of-keycaps-guide/

Type of Printing

Pros Cons
Pad printing most common method, cost-efficient, variety of colors worst durability, less crisp and sharp legends, not compatible with backlit
Double-shot exceptional durability, high contrast and sharp, allows RGB backlighting limited color options, more expensive
Triple-shot latest evolution of double-shot, more unique color combos limited
Pudding vibrant RGB illumination, affordable, compatible with most often made of ABS, limited tactile or sound improvement
Laser etching precise, detailed, letters impossible to wear off, customizable not as vibrant
Dye sublimation highly resistant to wear and fading, vibrant colors, long lasting, sharp and vibrant legends only works on PBT, non-backlit, limited colors and customization
UV printing various keycap materials, customizable may wear off with extended use

Keycap Profiles

Profiles determine the overall shape and height of your keycaps, directly influencing how they feel under your fingers and how they look on your keyboard.

image.png

Description Height
Cherry angled tops, sculpted rows, balance of comfort and performance 9.4mm
OEM common on pre-built keybaords, angled tops, great for typing, gaming, everyday use 11.9mm
SA angled, concave tops and sculpted rows, not designed for speed 16.5mm
KAT slanted, indented tops and rows, streamlined version of SA 13.5mm
MT3 distinct design with unique angles and sharper corners on the concave tops 16.5mm
GMK CYL original “cherry profile”, ergonomic, cylindrical keys 9.4mm
GMK MTNU medium height spherical top keycap, new standard for spherical tops 10.0mm
DSA low-profile, speedy. concave tops and consistent row shape similar to XDA but shorter 7.6mm
KAM uniform design, all rows same shape and height 19.05mm
XDA flat tops, same height, ideal for fast typing 9.1mm

https://hirosarts.com/blog/guide-to-different-keycap-profiles/

https://hirosarts.com/blog/different-types-of-keycaps-guide/

Overview of Different Keycap Profiles

🛂 It’s always better to have many options [CYL Metropolis R2 – ABS double-shot MTNU Space Cadet – PBT double-shot]

On many forums, GMK is the gold standard of key caps. Other possibilities would be Keychron:

  • https://novelkeys.com/collections/gmk
  • https://mechanicalkeyboards.com/collections/gmk-keycaps
  • https://mechanicalkeyboards.com/collections/keychron-keycaps

Buy List

Name Description Price
CYL metropolis r2 GMK ABS double-shot keycaps – midnight base set $65.00
MTNU space cadet GMK PBT double-shot keycaps – base set $155.00
Everglide aqua king linear switch 1x (10 switches) $5.91
TTC venus linear switch 9x (90 switches) $49.76
Neo75cu anodized silver case $40.00
Neo75cu plate carbon fiber $25.00
Neo75cu PCB tri-mode hotswap PCB $55.00
Neo75cu accent badge silver orbit badge $25.00
Neo75cu bottom case copper bottom $80.00
Neo75cu extras square brass badge $10.00
Total $510.67

Programming – all the drops, mostly melodic EDM

Fantastic Adventure – lighter EDM stuff

Old Skool – best of 90’s stuff (R&B, rap)

Christmas – holidays are coming

MT playlist – curious what the rest of the company listens to?

Been writing more PHP code lately, coming from a Java background, I like having getters/setters despite PHP typically just using public variables. A while back, I found this site that helps to generate code, but it was lacking in some features; especially when I preferred the pascal/camel case on my functions when the variables were named in snakecase.

Quick background:
snakecase – words in a variable are separated by _ (e.g. my_variable)
camelcase – words are alternated by capitalized letters (e.g. myVariable)
pascalcase – similar to camel, but the first letter is capitalized also (e.g. MyVariable)
kebabcase – words are separated by – (e.g. my-variable)

The drawbacks of the previous solution: Michael Angstadt, would take private/protected variables, regardless of what type of naming convention and use a simple implementation that would just add the get/set in front of that variable to create the function.

What I wanted was to be able to transform snakecase (this is typically used in python, some api’s also seem to prefer it) to pascal case on the function names so that I wouldnt have to manually go in and change it. Also many times, I like having a constructor, which is tedious depending on how many variables are in the model. Also when outputting to excel, it’s nice to have a toArray function.

Unfortunately, it’s not a 100% code generation because PHP doesn’t really do type hinting, there is no way to really know if the variable is supposed to be a string or number or array – but most of the time, strings are good enough, so this generator outputs assuming that the variable is a string, which still requires some manual modifications, but it will handle 80% of the work.

Perhaps later in the future, I could build something to account for the different types. Other possible additions might be to generate a function to translate json into the model class.

Check it out here!
https://php.gregtam.com/

Lately I’ve been noticing that my WordPress has been getting hacked constantly (this site is run on WP). Even if I update it, there seems to be some backdoor that gets executed every month.

So recently I took a few extra moments to take a look at these attacks. On the surface these attacks are not sophisticated, they mostly target un-updated WP installations and install malicious payloads that has a signature similar to:
eval(base64decode(123413j234lk1j23adfa ...

Originally i started to write some scripts to remove signatures like this, but it seemed easier to re-use other’s code. I recently stumbled upon this:
Exploit Scanner
basically what this plugin does is it matches the current install with the vanilla version of WordPress and tells you if there are any differences – a very good way to detect modification of php code.

the hashes exist here:
Hashes

The other thing i do is that I track all my wordpress installs with git
everytime I install a plugin / update WordPress – i update my git with a commit, so if any of the WordPress installs get attacked, I can run:
git reset --hard HEAD to revert any changes made to the files and at the very least put me on a good baseline for cleanup

1&1 actually does some nice security scanning now. They detect attacks and then automatically lock the file so that it cant be executed on the web. In order to fix this – i usually do a:
chmod -R 777 * on the WordPress directory so git will have the right permissions to remove/delete files

Recently my uncle received the following email (I’ve redacted some things and highlighted some) :

this is the classic phishing email with some truths, but ultimately lots of conflicting information.

couple things to look at:

  1. Originating email – du@totas.org.cn – at first glance it seems pretty legit, but when doing a google search on it, or even attempting to go there, it goes no where
  2. Content – written in broken english, the email attempts to play good cop by telling the user that another party has been attempting to register a domain name that is similar to the current one we have. As you know, must domain registrations are unrestricted and allows for anyone to register whatever they want, so this sort of ploy is counter to what we know.
  3. Footer – in order to look more authentic the phisher decided to include a real company, or on further investigation a company that seems to do domain name registrations. couple issues with this one. so the originating email and footer have different domain names, flag 1. they use a .org to have a semblance of authenticity, but most orgs usually dont try to outright sell services. if there was some sort of governing body over domain names, i would have expected a .gov.

Sometimes the Mac will have weird internet behavior,
this usually happens after you travel and connect to other wifis or gateways

The commands to attempt to fix this are:

we assume usage of Mac OS X 10.10.x (Yosemite), if you are on an older system, the commands are different

//clear arp cache
$ sudo arp -a -d

//clear dns cache
$ sudo killall -HUP mDNSResponder

ARP (Address Resolution Protocol) handles the low-level exchanges in order to map an IP address to a link layer address on demand. Sometimes if the connection has cached bad link layer addresses, clearing the cache can help.

DNS (Domain Name System) handles the conversion of domain names to IPs. for example facebook.com translates to 69.171.230.5 and this is how a computer decides how to reach facebook. In some cases, there is an attack called dns poisoning, basically what happens is that when your computer goes to the DNS master, to resolve facebook.com, the master (in this case the attacker, most likely using a man-in-the-middle attack) will return a different IP, this basically makes it so that you are unable to goto facebook or redirected to a facebook-looking site. This attack is commonly used in China to block access to certain sites. Clearing the cache sometimes helps because it forces the system to go resolve the domain name/IP addresses mapping again.

Gatekeeper

there are times when your organization/company locks down your computer and you have to install software. Here is how to gain access to install software.

Obviously you will need to have root access. Most of the time, if you are configured as an administrator on the Mac, you will be able to gain root.

1. Open up Terminal
2. Run this command $ sudo spctl –master-disable

spctl is the Mac’s SecAssessment System Policy Security.

What we are doing is Disabling the assessment subsystem altogether. Operations that would be denied by system policy will be allowed to proceed; assessment APIs always report success. Requires root access.

see:

SC-REMOTE-RF
I bought the MustangAV SC-E106D169 (a motorized 16:9 106″ screen) a while back, and when I moved I forgot to pack my remote, So I had to buy a new one.

the model number is SC-REMOTE-RF and can be found at Newegg.com for around $35.99
http://www.newegg.com/Product/Product.aspx?Item=N82E16824992112

Once I received the product, there was no instructions on how to sync the remote, as well as calling support on the mustangav.com site usually resulted in an answering machine.

Couple things I learned:
1. MustangAV is sold by Stampede which is located in Amherst, NY (which means they work EST hours)
Stampede Headquarters
55 Woodridge Drive Amherst, NY 14228
Tel: +1 800.398.5652 (Toll free)

2. MustangAV’s support number 866-395-0370 probably gets redirected to Stampede
3. Email and voice mail messages don’t seem effective, best to get a hold of Tom (MustangAV support guy), if possible.

Syncing instructions
After many calls and emails, I was finally able to reach Tom. He was able to send me the syncing instructions, which I will include here, because I could not find them on Google either. Hopefully Google indexes this site and will pick it up.

I’ve included the text here:
1. PRESS and HOLD the upper and center buttons of the RECEIVER together simultaneously until the green LED
indicator light begins to flash.
2. When the green LED indicator light flashes, press the upper button located on the SC-REMOTE-RF (transmitter) and hold until the signal is recognized.
3. The SC-REMOTE-RF has now been reset and synchronized with the receiver. You should now be able to control the operation of the projection screen.

download SC-REMOTE-RF REMOTE MANUAL

I won’t say I’m the best player because there are definitely players that have way higher scores than me, but here are some pointers for how to achieve higher tsum tsum scores.

tsum
typical play – no boosts

fast is slow, slow is fast
sometimes you want to go fast, but going fast means that you over-think and over-analyze. let the fingers do the work and let your mind handle the calculations. don’t try to go fast, just go.

keep the end in mind
when clearing a bunch of tsums, look for the next sequence, attempt to predict where they will fall. many times the starting point of where you start the chain affects how good the chain is.

buy happiness boxes
as the happiness boxes are only 10k, you should buy them until you have filled the first 8 characters (Mickey, Minnie, Donald, Daisy, Goofy, Pluto, Chip, Dale). the reason we do this is to gain latent points. everytime you play, 5 different tsums are used, the more tsums that you own, the higher the point value, and as you play, they keep gaining levels/points even though they are not your main tsum.

buy premium boxes
once you have gotten the first 8 characters, start buying only premium boxes at 30k, try not to use the coins for anything else, other than boxes.

buy tsum level caps
always buy tsum level caps, this will ensure that when this tsum shows up, you will maximize points

attempt to always complete missions
when completing the missions it will give you 800 coins daily. which is a good way to get coins. by now these challenges should be pretty simple with < 10 plays to complete. for high scores, use “+score” and “5>4”
the +score gives an extra 10% and the 5>4 makes it so there is higher likelihood of getting some nice chains.

tsumDetail

choose high value tsums
take a look at all the tsums, in all of them under the level, they will have a score. this is their default base score. obviously the higher the level the higher the points, but the points only increase linearly. so find a tsum that has a high base value, it will make getting points faster. if their score at level 10 is less than 100, they are probably not worth playing.

choose tsums that have a predictable clear pattern
if we take one of the tips from earlier about keeping the end in mind, it is imperative that you be able to predict what the next move is, with a bunch of these characters that do random things – biggest culprit is clears a bunch of tsums at random, it is difficult to predict. some that i consider bad are (Goofy, Tigger, Scrump, Cheshire Cat, Bambi)

some others that are not that great is Maleficent. she has a high base value, but her strategy basically means that when its skill time, you will have to have lined up some nice massive chains, and even then the skill is so short that you only have enough time to pull off 1 or 2 chains.

clear your main tsum first
as you have chosen a tsum with a high base value, clear your main tsum first, as they will always be there and will be more plentiful. this will guarantee a better score, as well as get that skill in faster.