How to Draw a 3D Closet Frame Using 2×4 Objects in SketchUp

Let’s say you want to make a closet in your garage and you want to create the frame using 2×4 lumber. It’s helpful to draw this in 3D to visualize the design. This post will show you how to do it using the free web version of SketchUp.

Set length units and precision

First, under Model Info, we set the length format and precision. Since a 2×4 piece of wood is actually 1.5″ x 3.5″, let’s set the length and precision to 1/2″.

Create 2×4 objects that represent stock lumber

To simplify creating the closet frame out of 2x4s in 3D, we’ll first create 2×4 objects that are any length, e.g. 12 inches long, along each axis (x, y, and z). To do this, we’ll first create a 2×4 rectangle as follows:

Choose the rectangle tool.

Click and drag anywhere until you see a rectangle.

Before clicking a second time, type “1.5,3.5” (without quotes) to manually specify the dimensions and then hit Enter. What you type will show up in the Dimensions field in the bottom right corner.

You will see the rectangle as shown below.

Now, we want to pull the rectangle to create a 12-inch long object representing a piece of wood. Click the Push / Pull tool.

Zoom in, if necessary. Then, click on the face of the rectangle and drag up. Do not click as doing so will set the length. Instead, type “12” (without quotes) to specify the length in inches to pull the rectangle to create a 12″ long 2×4. Then, hit Enter.

Now that we have one piece of 2×4 in one direction. Let’s copy and paste it twice to create two more pieces in the other two directions. Click the “Select” tool.

Drag a rectangle around the entire object you just created to select all of it. The object will turn blue as shown below.

Click Copy / Ctrl+C and then Paste / Ctrl+V to paste a clone of that object. Do this twice.

Now, select the 2nd object and then click the Rotate tool.

Click somewhere on the object and then click again to start rotating the object. Don’t click a third time since doing so would set the rotation angle. Instead, type “90” (without quotes) to rotate the object by 90 degrees.

Do the same with the 3rd copy of the object but rotate it in a different direction.

Come to think of it, we should make 3 more copies of the object and rotate them so we can have 2x4s in all 6 perpendicular directions. If you’re having a hard time selecting one entire object using the “Select” tool because it’s too close to another object, try using the “Lasso” selection tool.

Now we’ve got our 2×4 building blocks which we can move to the side and clone to create the closet frame. I’ll select all 6 objects and move them as shown below.

Now, we’ll create a closet frame by first cloning one of the building blocks, moving the clone, and pulling it to change its length. I’ll start with the back left corner of the closet frame. When I copied and pasted one of the 2×4 objects, I clicked on the origin to position the object there.

Let’s say we want our closet frame to be 80 inches tall. I’ll switch to the Push / Pull tool, click on the face of the object that I want to pull, drag up, and then type 80 to set the length to 80 inches.

Since we want all corners to be 80 inches tall, we can clone the first 80-inch tall object three more times and position them as far as we want from each other. When you paste a copy of an object, you will see tooltips that help you align the object relative to the axes and to other objects.

Above, we see a copy of the 80-inch tall 2×4 but we don’t know how far it is from the first 80-inch 2×4. Click the Dimensions tool.

Then, click on each of the two endpoints of the distance you want to measure. In this example, the distance is 2′ 8.5″.

Let’s select the 2nd object and then click the Move tool so we can move the object to be 2 feet away from the other object.

Click on one corner / endpoint and then drag such that the distance becomes 2 feet.

When dragging, you’ll see tips such as “On Red Axis” which will help you stay on the same plane and only move in one direction. Below, we now see the distance between both objects is 2 feet.

Repeat the above steps for the remaining parts.

To learn more, including how to move and align objects relatively and absolutely, read my other SketchUp article.

How to Build Muscle

There are 3 main things that affect muscle growth:

  1. food
  2. strength / resistance training
  3. rest

To grow muscle, you need to

  • do strength training to break down muscle
  • have a moderate calorie surplus
  • have sufficient protein consumption (1 gram of protein per pound of body weight)
  • rest to build muscle

If you have a calorie deficit, your body will expend more energy resulting in weight loss in the form of BOTH fat and muscle loss.

If you have an excessive calorie surplus, you will GAIN weight, and grow some muscle but also gain a lot of fat.

You build muscle when the amount of protein synthesized into muscle during rest is greater than the amount of muscle protein breakdown during strength training. Without sufficient protein, you will just gain fat and little muscle.

Food

Both creatine and whey protein powder have been shown to increase muscle mass when taken in combination with resistance exercise.

Creatine increases exercise capacity during high-intensity exercise. This leads to improved recovery and adaptations such as increased muscle mass.

Meanwhile, ingesting whey protein in combination with exercise provides your body with a high-quality source of protein, enhancing muscle protein synthesis and leading to increased muscle gains over time.

While both creatine and whey protein promote muscle gain, they differ in the ways they work. Creatine increases strength and muscle mass by increasing exercise capacity, whereas whey protein does so by stimulating increased muscle protein synthesis.

Source

Protein

Muscles are made out of protein, among other things. So, you’re going to need to consume enough protein to build muscle. You should target 1 gram of protein per pound of body weight. For example, I currently weigh 178 lbs, so I should consume 178 grams of protein. Here are some protein-rich foods.

FoodQuantityProtein (g)CaloriesProtein / Calorie Ratio
Eggs1 large67811%
Egg White1 large41822%
Almonds1 ounce61643.6%
Chicken Breast1 roasted w/o skin5328418%
Oats1 cup113073.5%
Cottage Cheese1 cup2816317%
Greek Yogurt6 ounces1710017%
Regular Milk1 cup814916%
Soy Milk1 cup6.31056%
Broccoli1 cup chopped3319.6%
Lean Beef3 ounces2518613%
Tuna1 can (142 grams)2712821%
Quinoa1 cup cooked82223.6%
Whey protein concentrate supplement1 scoop (33 g)2513019%
Whey protein isolate supplement1 scoop (33 g)3013023%
Lentils1 cup boiled182308%
Ezekiel Bread1 slice4 805%
Pumpkin Seeds1 ounce91585.6%
Turkey Breast3 ounces2612520%
Shrimp3 ounces208424%
Brussel Sprouts1/2 cup2287%
Peanuts1 ounce71614.3%
Source

Other protein-rich foods

Pistachios, cashews, parmesan cheese, swiss cheese, mozzarella cheese, cheddar cheese, regular full-fat yogurt, kefir, soybeans, kidney beans, chickpeas, flax seeds, sunflower seeds, chia seeds.

Consuming a lot of protein without supplements can be difficult because you might feel full before you’ve reached your target daily intake. Also, it can be expensive. For that reason, most bodybuilders take protein supplements. When choosing a protein supplement, it’s important to stay away from ones with a lot of added sugar. The most popular protein supplement is whey protein. To be safe, opt for pure whey protein. I personally get the unflavored Nutricost Whey Protein Concentrate. It contains only one ingredient: Whey protein concentrate. 1 scoop contains 25 g of protein and 130 calories.

You can also buy whey protein isolate, which has 90 – 95% protein compared to whey protein concentrate, which has 60 – 80% protein. Source

Creatine

Creatine monohydrate is the best-studied and most effective form of this supplement. There are 2 dosing regimens:

Option 1

  1. Loading phase: Take 20-25 grams split into 4 or 5 equal doses over 5-7 days.
  2. Maintenance phase: Then, take 3-5 grams per day to maintain your muscle stores of the compound.

Option 2

Skip the loading phase and start the maintenance phase.

Both options are effective. The first option will allow you to experience the benefits 4x faster. Source

I personally take unflavored Nutricost Creatine Monohydrate.

Other Foods

Now, don’t go consuming nothing but protein shakes. They are meant to be supplements and not food substitutes. You can eat whatever else you want, but generally, you should avoid processed foods and foods with lots of added sugar. I have personally found the Keto diet (very low-carb diet) to be one of the best, if not the best, diets. I was able to lose 20 lbs following the Keto diet. It’s not just good for losing weight, but it’s also good for overall healthy eating.

Calories

While you can build muscle in a calorie deficit (losing weight), it will be quicker to build muscle by having a moderate calorie surplus. In order to determine how many calories is “moderate”, you first need to know your maintenance calories – the number of calories to consume each day to neither lose nor gain weight.

Maintenance Calories

Your maintenance calories is the number of calories you consume and burn each day to neither lose nor gain weight. Use the calorie calculator from the Mayo Clinic to determine your maintenance calories. It uses the Mifflin-St. Jeor equation, which pros consider the gold standard.

Slight Calorie Deficit to Lose Weight Without Losing Muscle

On days you don’t lift weights, you want to lose fat. You can do this by counting calories consumed and, if you are doing cardio exercises (treadmill, etc), subtracting calories burned such that your net calorie deficit is 5-10% of your maintenance calories. In my case, that would be 2200 – 10% = 1980 calories. You don’t want a huge calorie deficit because then you’ll lose fat and muscle.

Moderate Calorie Surplus Gain Muscle

On days that you lift weights to build muscle, depending on how much muscle you want to put on and how quickly you want to gain it, add 5% to 15% to your maintenance calories. In my case, that would be 2200 + 15% = 2530 calories.

Example Weekly Schedule

DAYACTIVITYCALORIES
MondayRestCalorie Deficit
TuesdayStrength TrainingCalorie Surplus, Extra Protein
WednesdayCardioCalorie Deficit
ThursdayRestCalorie Deficit
FridayStrength TrainingCalorie Surplus, Extra Protein
SaturdayCardioCalorie Deficit
SundayStrength TrainingCalorie Surplus, Extra Protein

On calorie-surplus days, your body needs the extra calories above your maintenance calories to build new muscle while you sleep.

Example Meal Plan

Here’s my daily meal plan.

Breakfast

  • 4 eggs in a bowl microwaved for 2 minutes
  • 1 cup of espresso coffee with frothed milk, 1/4 teaspoon of Truvia sugar substitute (erithrytol + Stevia extra), and cinnamon

Lunch

Protein shake containing

Dinner

5 air-fried skinless chicken legs (60 g protein, 380 calories) with one Anaheim pepper

Post-Dinner Drink

Another protein smoothie, but substitute the Acai with 3 or 4 frozen strawberries

Post-Workout Drink

Chocolate-flavored Premier 30g Protein Drink (30 g protein, 160 calories)

Total Daily Protein and Calorie Consumption

FoodQuantityProtein (gr)Calories
Eggs424300
Protein shake148544
Chicken drumsticks560380
Protein shake148544
Protein drink130160
Snacks (nuts)?
Total2101928

Without eating snacks, my total daily calorie intake is 1928.

Strength / Resistance Training

Muscle size increases when a person continually challenges the muscles to deal with higher levels of resistance or weight. This process is known as muscle hypertrophy.

Muscle hypertrophy occurs when the fibers of the muscles sustain damage or injury. The body repairs damaged fibers by fusing them, which increases the mass and size of the muscles. This increase, however, does not happen while you actually lift the weights. Instead, it occurs while you rest.

You need to be consistent and lift progressively heavier weights. To do this, you should keep track of your efforts. Personally, I log my workouts using the free version of the FitNotes app.

Sets and reps

A standard way of exercising each muscle is by grouping each exercise into 3 sets of 8 to 12 reps (repetitions). For example, if you bench press, you can choose a weight such that for the first set, you lift X lbs until you reach failure (can no longer lift / perform a complete cycle) after the 12th rep. Then, for the 2nd set, you do the same until your failure is maybe at the 10th rep. And for the 3rd set, you fail maybe at 8 reps.

SetWeightReps
1100 lbs12
2100 lbs10
3100 lbs8

Note that more important than the number of reps is the effort to lift until failure. If, after a while, you feel that you can do more than 12 reps at X lbs for the first set, then you need to increase the weight and continue to lift until failure, regardless of the exact number of reps you can do. This is called “progressive overloading.”

Let me repeat that. Train until failure such that you can barely complete your last rep with proper form. The last 2 to 3 reps before failure are the ones that count towards building muscle.

Breathing

You might be tempted to hold your breath while you’re lifting weights. Don’t hold your breath. Instead, breathe out as you lift the weight and breathe in as you lower the weight. Lowering weights requires less exertion, which makes it an ideal time to inhale. By breathing correctly, you’ll be able to lift more and limit fainting and injury.

Muscles

Here’s a diagram of some of the more obvious muscles that you’ll want to target when lifting weights.

Exercises

There are many types of strength training exercises you can do among free weights and machines. I personally prefer using machines as they are more comfortable and help you perform exercises using proper form and reduce the chance of injury. However, some exercises produce better results when using free weights, e.g. dumbbell or barbell chest press instead of a chest press machine. Here are some of the upper body exercises I prefer.

Exercise Database

Fatigue

When you start a workout, your muscles will have rested and you will be able to lift the most weight for any given exercise. As you progress through your workout, you will have less strength when performing other exercises. For that reason, it’s good to be selective in the order of the exercises you perform. For example, I would do 10 or so different exercises in the following order:

OrderExerciseMuscles Targeted
1V-Bar Tricep PushdownTriceps (Tris)
2Dumbbell chest press (flat)Chest
3Dumbbell chest press (30° incline)Upper chest
4Hammer Strength MTS Shoulder PressShoulders
5Biceps Curl MachineBiceps (Bis)
6Plank exerciseAbs, Core
7Lat PulldownBiceps and Latissimus Dorsi (Lats)
8Triceps PressShoulders and Triceps
9Lat RowLats, Delts and Back
10V-Bar Tricep PushdownTriceps (Tris)
11Row MachineLats, Delts and Back
12Biceps Curl MachineBiceps (Bis)

Each exercise, except the plank, is done with 3 sets. This sequence takes about 1.5 hours and I burn on average 500 calories.

Muscles by Volume

Many men generally want a bigger upper body. Oftentimes, they’ll focus exercises on 2 muscles: chest and biceps. However, to have a larger upper body, they may be better off targeting larger muscles. Following is a list of the 10 largest muscles in the body.

MuscleLocationVolume
Quadriceps femorisLower thigh1,420 cm3
Gluteus maximusBack of pelvis760 cm3
DeltoidShoulder380 cm3
Triceps BrachiiBack upper arm370 cm3
IliopsoasHips350 cm3
Pectoralis majorChest290 cm3
Biceps femorisTop of the thigh269 cm3
Latissimus DorsiMid back262 cm3
Biceps BrachiiFront upper arm143 cm3
SartoriusUpper and inner thigh126 cm3
Source

Muscle Gain By Weight

The longer you lift weights, the harder it becomes to grow more muscle. Following are average muscle weight gains for men and women at different stages of resistance training.

StageMenWomen
Newbie1.5 lbs / month0.5 lbs / month
Intermediate0.5 lbs / month 0.3 – 0.4 lbs / month
Advanced0.25 lbs / month 0.1 – 0.2 lbs / month
Source
Year of Proper TrainingPotential Rate of Muscle Gain Per Year
120-25 lbs (2 lbs / month)
210-12 lbs (1 lb / month)
35-6 lbs (0.5 lbs / month)
4+2-3 lbs (not worth calculating)
Source

You may have heard that muscle weighs more than fat. However, according to science, a pound of muscle and a pound of fat weigh the same. The difference between the two is density.

Rest

In order for your muscles to grow, you need to have sufficient rest. Make sure to sleep enough, e.g. 8 hours a day. Contrary to popular belief, you don’t actually build muscle while you’re lifting weights. You do need to lift weights to add mass, but training actually causes muscle breakdown.

How to Tell if You’re Gaining Muscle

  1. You’re Gaining Weight
    Track your weight at the same time each day and plot it on a chart to see your long-term progress. 
  2. Your Clothes Fit Differently
    Getting jacked will often mean your clothes start to fit differently – usually in a good way. If you’re noticing your shirts are fitting a bit tighter around your shoulders, chest, and biceps, or your pants are getting snug in the thigh and hip area, these tend to be good signs you’re gaining healthy weight. 
  3. You’re Building Strength
    If you can lift heavier weights, then you are probably building muscle. Track your strength using a log and practice progressive overloading. 
  4. Your Muscles Are Looking “Swole”
    Feeling puffier or bigger is normal and likely a good sign you’re growing your muscle fibers. Lifting weights increases fluids to your muscle, giving you that post-weight training pump, especially when you are just getting started with strength training. Over time, some of the water retention may diminish, but you should continue to feel bulkier. 
  5. Daily or Weekly Progress Photos
    Stand in front of a mirror and take a full-body photo. Repeat and assess your visual transformation regularly.
  6. Your Body Composition Has Changed
    Ultimately, the most efficient way to measure your muscle gain progress is to assess your body composition at the beginning and end of your bulk. You can opt for an affordable and convenient at-home scale, or schedule a DXA/DEXA scan that estimates your body fat percentage within a 1.6% margin of error. 

The best way to know you are gaining muscle is if you are progressively able to lift heavier weights because the only way you can lift heavier weights if you have bigger muscles.

Tracking Progress

If you use an app to keep track of your progress, you can periodically calculate your percent gains and improvements over time. Here’s an example of my actual gains.

ExerciseDec 26, 2021March 12, 2022% increaseTarget area
lbslbs
V-bar pushdown5072.545%Triceps
Chest press machine7012071%Chest
Lat pulldown machine9013044%Back
Shoulder press machine407075%Shoulders
Tricep pushdown machine11517047%Triceps
Bicep curl machine6511069%Biceps

Gadgets and Accessories

To support your strength training goals, I have found the following gadgets useful.

Wi-fi body scale

I have the Withings smart wi-fi body scale. It automatically records my weight, and in the app, I can see my weight change over time.

Smartwatch

I have the Fossil Men’s Gen 6 Touchscreen Smartwatch. It’s got a ton of features.

Whenever I enter the gym, I start tracking my heart rate and calories burned. When I’m done, I stop tracking. I can see a history of my calories burned and workout duration over time.

Bluetooth Headphones / Earphones

I have the Sony Wireless Behind-Neck Headset (WI-C400). Many people like to wear Beats headphones. I prefer the behind-the-neck style headset because it’s lightweight and doesn’t move around as I exercise, including when I do sit-ups.

Compression T-Shirt

I have the Under Armour Men’s HeatGear Compression Short-Sleeve T-Shirt. It allows you to see your body shape so you can see how you’re progressing. I find it motivating to see physical progress.

Weight Training Workout Gloves

Repeatedly lifting weights can result in calluses (thickened skin that forms as a response to repeated friction or pressure). Workout gloves tend to have a cushion to protect your skin. I find it much more comfortable to lift with gloves on.

Summary

  • Stay in a positive protein balance by hitting your protein consistently.
  • Get your protein from high-quality sources like meat, eggs, dairy, and soy.
  • Your body needs energy to grow, so you need to be in a moderate calorie surplus.
  • Make sleep a priority — both quantity and quality.
  • Hit the weights consistently, and train harder by adding volume (in weight, reps, and sets) over time – progressive overloading.

Various Ways of Working With Lots of Text and Files

Table of contents

  • Find and replace text in a single text file
  • Find and replace text in multiple files
  • Find and replace multiple regexes in all files in a folder recursively
  • Sort a list of text
  • Get unique / remove duplicate lines in a list of text
  • Select a column of text
  • Find text in a single file and copy all matches to the clipboard
  • Add text to the beginning of each line of text
  • Copy differences (diff) between two files
  • Rename multiple filenames in multiple folders

The instructions below use Visual Studio Code unless stated otherwise.

Find and replace text in a single text file

  1. Open the text file in Visual Studio Code
  2. Click Edit > Find or Edit > Replace
  3. Enter your search term and replace term
  4. Use optional options like
    • case senstive match
    • match whole word
    • regular expression
    • preserve case
    • replace first match
    • replace all matches at once
    • find in selection

Find and replace text in multiple files

  1. In Visual Studio Code, right click on a folder and click “Find in Folder…”
  1. Enter your search term and replace term
  2. Use optional options like
    1. case senstive match
    2. match whole word
    3. regular expression
    4. preserve case
  3. In the search results, you will see a preview of the text change.

If you click on a preview in search results, you can can the a side-by-side view of the change in each file.

Find and replace multiple regexes in all files in a folder recursively

Modify this JavaScript and run using NodeJS.

Sort a list of text

  1. Select all the text to sort
  2. Right click on the selection and click “Sort lines”

Get unique / remove duplicate lines in a list of text

  1. Select the list of text
  2. Click View > Command Paletter
  3. Click one of the unique sort options

Select a column of text

  1. Put the cursor at one corner of the column of text you want to select
  2. On Windows, click and hold “Shift” + “Alt” keys and drag the cursor to the opposite corner of the column of text you want to select
  1. You can then start typing to replace the text or copy the text to the clipboard

Find text in a single file and copy all matches to the clipboard

  1. Open the text in Visual Studio Code
  2. Click Edit > Find
  3. Enter a search term
  4. Click Selection > Select All Occurrences
    All matches will be highlighted. Notice the different highlight color in the two screenshots below.
  1. Right click on the highlighted text and click “Copy”
  1. You could then paste the copied text in a new file

Add text to the beginning of each line of text

  1. Click Edit > Replace
  2. Use the following regex search

Copy differences (diff) between two files

Let’s say you have two files and you want to get only the differences between the two. Visual Studio Code will show you a diff between two files as follows:

  1. Open both files
  2. Select both files in the OPEN EDITORS section
  3. Right click and click “Compare Selected”

You will then see a nice diff between the two files.

But, you won’t be able to copy only the changed lines or export the diff. On Windows, you can use a tool called DiffMerge by SourceGear. If you open both files, you’ll see a similar view.

You can then click Export > File Diffs > Traditional > In Text > To Clipboard to copy the diff to your clipboard.

You can then paste the diff in a text editor like Visual Studio Code and extract only the text you are interested in.

Rename multiple filenames in multiple folders

Let’s say you have many files and you want to rename the filenames all at once. For this, I find it easy to use a tool like Rename Expert. For example, in the screenshot below, I did the following:

  1. Added all files the filenames of which I want to rename
  2. Under “Actions”, chose the actions I want done. In this case, I did 2 actions:
    1. Replace (to replace the first character of each filename with an underscore)
    2. Edit file extension (to change the file extension from php to jpg)
  3. Previewed the changes and resolve any conflicts
  4. Clicked the Apply button to run the batch renaming of files.

Choosing Keywords to Improve Search Engine Ranking

If you have a website or are publishing an article online, you can increase your chances of people finding it by carefully choosing keywords to use both in the domain, folder path, and page content. One tool to help with this is Google Adword’s Keyword Planner. As a trivial example, let’s say you are building a dictionary website. You could buy a domain name that has the word “dictionary” in it or you could use the word “dictionary” in your page content. Or, you could use a synonym like “lexicon”. If you enter both words in the Keyword Planner, you’ll see the average monthly search volume for those words. In addition, Google will offer keyword ideas. As you can see in the screenshot below, many more people search using the term “dictionary” than they do the term “lexicon”. You can also see the competition level in the Competition column. However, that’s for if you want to pay Google to place your link at the top of search results. In the example below, the competition is low for both keywords.

Now, since “dictionary” is a popular term, you can expect more competition with respect to organic (not paid) search results. As you can see below, there are 4.32 billion results for the term “dictionary” and 3.05 billion for “lexicon”.

Of course, you’re not going to just write “dictionary” in your website content. You’ll probably write something like “Chinese – English dictionary” or “Spanish – English dictionary” which will have different average monthly searches and search results.

Animal vs Plant Protein

Amino Acids

Proteins consist of units called amino acids. There are 20 amino acids. The body synthesizes some of them from components within the body, but it cannot synthesize 9 of the amino acids—called essential amino acids. They must be consumed in the diet. The amount and type of each amino acid vary based on the protein source.

Animal proteins such as eggs, milk and steak are complete because they contain all of the essential amino acids that your body needs to function effectively.

Plant proteins, such as beans, lentils and nuts are considered to be incomplete, as they lack one or more of the essential amino acids that your body needs.

Protein Quality Score

Due to the important role proteins play in our nutrition, it’s vital that we have a standard measure to determine protein quality.

PDCAAS (Protein Digestibility-Corrected Amino Acid Score)

In 1993, the Food and Agricultural Organization (FAO) and the US FDA made PDCAAS the official standard for comparing protein quality.

DIAAS (Digestible Indispensable Amino Acid Score)

In 2013, FAO proposed using a new evaluation method resulting in different scores called DIAAS. According to DIAAS, protein quality can be categorized as follows:

  • No protein quality claim – Score of <75%
  • Good protein quality – Score ranging from 75% to 99%
  • Excellent or High protein quality – Score of 100% or more

As you can see in the table below, all animal-based proteins are of high quality whereas plant-based proteins are either just good or poor in quality.

DIAASaPDCAASb
Animal-derived foods
 Whey protein isolatee1.000.99
 Whey protein concentratee1.071.00 (1.07)
 Milk protein concentratee1.201.00 (1.21)
 Skimmed milk proteine1.051.00 (1.12)
 Whole milk powdere1.161.00 (1.16)
 Caseine, f1.091.00 (1.20)
 Cow milke1.16 
 Sheep milke1.09 
 Goat milke1.24 
 Whole egg, boilede1.131.00 (1.05)
 Beefe1.121.00 (1.14)
 Porke1.141.00
 Chicken breaste1.081.00 (1.01)
 Tilapia (fish)d1.00 
Non-animal-derived foods
 Soya protein isolatee0.840.93
 Soya floure0.890.98
 Wheate0.450.50
 Pea protein concentratee0.620.75
 Cooked peasf0.580.60
 Oat protein concentratee0.670.69
 Cooked rolled oatsf0.540.67
 Rice protein concentratef0.370.42
 Cooked ricef0.600.62
 Ryee0.480.59
 Barleye0.470.59
 Pease0.650.79
 Sorghume,f0.290.29
 Cooked kidney beansf0.590.65
 Roasted peanutsf0.430.51
 Corn based breakfast cerealf0.010.08
Source
  1. Only values that used the scoring patterns for children older than 3 years, adolescents, and adults were selected
  2. aValues for DIAAS were calculated from the ileal digestibility of amino acids
  3. bValues for PDCAAS were calculated from the total tract digestibility of crude protein
  4. cAll values for DIAAS and PDCAAS were selected in humans, if available, growing pigs, or in growing rats in that order
  5. dMeasured in humans
  6. eMeasured in pigs
  7. fMeasured in rats

Essential Amino Acid Comparison Between Steak and Broccoli

Since essential amino acids are essential, it’s important and interesting to compare how much of them you get when you compare the same amount of an animal protein to a plant protein. The following table compares 1 oz of steak to 1 oz of broccoli.

%RDI = % Recommended Daily Intake

Essential Amino Acid1 oz Broiled Sirloin
Strip Steak
1 oz BroccoliRatio
Tryptophan (mg)
(% RDI)
55
(20%)
9
(3%)
6.7x
Threonine (mg)
(% RDI)
332
(32%)
25
(2%)
16x
Isoleucine (mg)
(% RDI)
378
(27%)
22
(2%)
13.5x
Leucine (mg)
(% RDI)
661
(24%)
37
(1%)
24x
Lysine (mg)
(% RDI)
703
(33%)
38
(2%)
16.5x
Methionine (mg)
(% RDI)
217
(30%)
11
(1%)
30x
Phenylalanine (mg)
(% RDI)
329
(38%)
33
(4%)
9.5x
Valine (mg)
(% RDI)
412
(23%)
35
(2%)
11.5x
Histidine (mg)
(%RDI)
265
(38%)
17
(2%)
19x
Source

As you can see, you get WAY more essential amino acids from 1 oz of steak than you do from 1 oz of broccoli. However, from a calorie point of view,

  • 1 oz of Broiled Sirloin Strip Steak has 60 calories
  • 1 oz of Broccoli has 10 calories

1 oz of steak has 6 times as many calories as 1 oz of broccoli.

So, what if you just ate more broccoli to consume the same amount of amino acids as steak. The highest number in the ratio column is 30x. So, you’d need to eat 30 oz of broccoli to get at least the same amount of amino acids as steak. But then your calorie intake would be 10 calories x 30 = 300 calories, which is way more than 60 calories for the 1 oz of steak.

Conclusion

Don’t be a vegetarian. Include animal-based proteins such as eggs, meat and milk in your diet. If you don’t like them, then at least drink a smoothie made with whey protein powder. Here are some nutrients you can’t get from a vegetarian or vegan diet.

How the Ultrawealthy Legally Avoid Paying Taxes

It’s not uncommon to hear that some of the wealthiest Americans pay less tax than the average taxpayer or, sometimes, no tax at all. However, there hasn’t been much, if any, proof or an understanding of how they get away with it until recently. ProPublica, somehow, got IRS records of many of the wealthiest Americans and in June of 2021, published an article and video showing what these people’s effective tax rates were and how they did it.

Tax Rate

In recent years, the median American household earned about $70,000 annually and paid 14% in federal taxes. The ultrawealthy, on the other hand, paid less than 3.5% from 2014 to 2018.

Wealth GrowthTotal Income ReportedTotal Taxes PaidTrue Tax Rate
Warren Buffet$24.3B$125M$23.7M0.10%
Jeff Bezos$99.0B$4.22B$973M0.98%
Michael Bloomberg$22.5B$10.0B$292M1.30%
Elon Musk$13.9B$1.52B$455M3.27%
Source

Buy, Borrow, Die

According to ProPublica, the ultrawealthy are able to pay so little or nothing in taxes by living off of loans. Income tax is tax on any income you receive, like a paycheck. For most people, your employer withholds your taxes due so when annual taxes are due, you pay or get a return of the difference of your final taxes owed. Therefore, the less your income is, the less you pay in taxes. Wealth in the form of stocks and real estate can go up and down and is not taxable until you sell. You probably have heard of some CEOs getting a salary of only $1 a year. This might sound like they are extremely generous and humble but in reality, it’s a strategy for them to continue to live lavishly but pay very little in taxes. Since no one can live on a salary of $1 a year, they borrow money to pay for food, housing, yachts, airplanes, etc. And because they’re so rich, they can get a loan at a very low interest rate, like 3%. As an example, if a CEO gets a salary of $1M a year, then their tax rate would be 37% and their tax bill would be, assuming no deductions, $370K. However, if they borrow $1M and pay 3% interest, then they only pay $30K in interest and $0 in taxes assuming they took a salary of $1.

Steps

  1. BUY an asset (buy stock, real estate; build a company, etc).
    As long as they don’t sell, they don’t pay any taxes.
  2. BORROW against their holdings
    This is like when ordinary people do a cash-out refinance on their house. Since the ultrawealthy have good credit (and can just buy the bank they are borrowing money from), they get a super low interest rate.
  3. DIE and still not pay taxes
    Use complicated trusts and philanthropic foundations to avoid estate tax. Their heirs can inherit stocks and other assets tax-free.

A new generation starts ultrawealthy and the cycle starts all over again.

Weight Loss With Glucomannan Fiber

Consuming foods high in fiber is important for your digestion and to feed your gut bacteria. But, it can also be very effective for weight loss. Fiber can soak up water in the intestine, slowing the absorption of nutrients and increasing the feeling of fullness.

Dietary fiber is a non-digestible carbohydrate found in foods. As such, it can be subtracted from total carbs since fiber simply passes through your body. Unlike other carbs, it does not get converted to sugar or get stored as fat.

There are 2 types of fiber based on water solubility:

  1. Soluble fiber: dissolves in water and can be metabolized by the “good” bacteria in the gut
  2. Insoluble fiber: does not dissolve in water

What is Glucomannan?

Glucomannan is a natural, water-soluble dietary fiber extracted from the roots of the elephant yam, also known as konjac. It is grown in East and Southeast Asia and is a very common food in Japan and Korea.

It’s the main ingredient in Shirataki noodles and comes in powder and pill form.

How does Glucomannan support weight loss?

Glucomannan is one of the most viscous dietary fibers known. It absorbs so much liquid that a small amount of glucomannan added to a glass of water turns the entire content into a gel. Chia seeds, which you may have heard of, are also high in fiber and also absorb water but it’s nothing compared to Glucomannan. Note that ground flaxseeds is another healthy fiber supplement but it doesn’t gel up nearly as much as Chia seeds.

In the picture below, you can see Glucomannan in powder form being added to water, and on the right, the Glucomannan after it absorbed all the water.

This thick gel lines the stomach and provides bulk and satiety / feeling of fullness which lowers your appetite so you eat less. In addition, Glucomannan

  • is very low in calories.
  • delays stomach emptying, contributing to increased satiety
  • like other soluble fibers, reduces the absorption of protein and fat

According to this article, reliable studies show that consuming Glucomannan as part of a weight-loss diet is very effective in supporting weight loss. Of all fiber sources you can consume, Glucomannan is the most effective in supporting weight loss.

Consuming Glucommanan

It is recommended to take 1 gram (1000 mg) of Glucomannan before a meal with two 8 oz glasses of water. The amount of time before a meal depends on how long it takes for the Glucomannan to gel up. When you get your Glucomannan, it’s a good idea to add water to it to see how long it takes to gel up. The powder form should gel up in a few minutes whereas the pill form should take about 30 minutes. In general, you can wait 15 minutes to an hour before eating.

WARNING: Glucomannan MUST be consumed with water so that it reaches the stomach before it turns into a thick gel. Consuming Glucomannan without water could cause it to gel up in the throat or esophagus causing blockage and choking. The government of Australia even banned Glucomannan because of this choking and blockage risk.

The amount of water to drink while consuming Glucomannan is important as it will affect the viscosity and effectiveness of the Glucomannan to support weight loss. For example, according to this video, the same amount of Glucomannan was added to a small and large glass. Then, different amounts of water was added to each glass. The result was the gel in the small glass was so thick that turning the glass over would not cause it to come out. The gel in the large glass, on the other hand, could spill out. The more water, the better.

Not all Glucomannan brands are the same

According to this video, the brand on the left did not coagulate as much a the one on the right. Therefore, test the Glucomannan you buy to ensure that it coagulates as expected.

Testing viscosity of Glucomannan by Nutricost

I bought a bottle of glucomannan pills by Nutricost on Amazon. To test the viscosity, I put water and glucomannan in 3 glasses as follows:

  • Left glass: Emptied powder from pill (600 mg) into 1/3 glass of water
  • Middle glass: Emptied powder from pill (600 mg) into 7/8 glass of water
  • Right glass: Put pill (600 mg) into 7/8 glass of water

I stirred the powder in the water but there was too little powder that the glucomannan hardly became coagulated.

I then added another pill (600 mg) and although the mix was more viscous, it wasn’t very thick. I then added another pill (600 mg) and blended the mix together.

Finally, the mix in the left glass became thick like a thick sauce. The middle glass was somewhat thick but due to there being more water, it was still very runny. The pill in the right glass still hadn’t melted after 6 hours.

Based on these results, I think

  • it’s better to consume glucomannan as a powder rather than a pill so the satiety effects will be quicker
  • it’s better to consume glucomannan blended with water (or in a smoothie or in food so that the glucomannan can expand before you consume it)

Buddy: Easy, Fast CI/CD

Whenever you make a change to a website, you need to deploy your changes to a production server. This can be as simple as uploading some files and as complex as having a multi-step process involving version control, building code, running custom scripts, checking links, image optimization, and then rsync-ing files to multiple production servers. To manage the build and deployment process, developers often use continuous integration (CI) and either continuous delivery or continuous deployment (CD). CI/CD bridges the gaps between development and operation activities and teams by enforcing automation in building, testing and deployment of applications. 

I’ve used Travis CI and attempted to use CircleCI but both seemed more complicated than I would like them to be. I then came across Buddy which got a lot of good reviews and looked super simple to set up. For me personally, I just wanted a simple way to commit changes to this blog’s custom WordPress theme in GitHub and have the changes SFTP’d to the production server. Though you can do that using GitHub Actions, it looked like more work and didn’t come with useful reporting and notifications like what you get with Buddy. Below is how I set up Buddy to detect whenever I commit or push to GitHub and then SFTP the changes to a server.

1. Sign up for Buddy

Buddy requires that you sign up using a work email address or to log in using your GitHub account. I wasn’t using this for work so I just logged in using my existing GitHub account.

2. Create a project

Click the “Create a new project” button. Since I logged in using my GitHub account, Buddy instantly showed me my GitHub repos. Click on a repo for this project you are working on. In my case, I chose “my-blog”.

3. Add a new pipeline

Click to add a new pipeline. You will be asked for a number of things including:

  • Name – I just called the pipeline “Commit / Push to GitHub Then SFTP to abdullahyahya.com”
  • Trigger Mode – I chose “On push” because I want to trigger the pipeline whenever I commit or push to GitHub.
  • Branch or Tag That Triggers the Pipeline – I chose “Single branch” and “main” since, well, I only have one branch (main) and no tags.
  • Target Website URL – I entered my blog’s website URL
  • Trigger Condition – there are a few options here but I chose to have the pipeline be triggered only if there were changes in the repository since last execution which is probably what most people want.
  • Set currently deployed revision on the remotes – Since I already had commits in GitHub that were in sync what production, I chose the most recently commit revision to avoid unnecessarily deploying everything from scratch.
  • Other – there are other options but I just left them at their defaults

4. Add an action

On the next step, you need to choose an action that will take place in the pipeline (when there is a change committed / pushed to GitHub). Since I just want to SFTP the changes, I chose the SFTP action. Browse all Buddy actions.

5. Set up action

Now, you need to set up your chosen action. In this case, I need to set up my source and destination file paths and SFTP login credentials.

If you click the Action tab / button, you can name your action and temporarily disable the action, among other things.

Test your action by clicking the “Test action” link. In my case, Buddy connecting to the production server of SFTP, created a test directory, deleted the test directory, testing uploading a file, and deleted the test file.

If your test fails, e.g. you get the following error, then you may need to whitelist Buddy’s IP addresses.

6. List all pipelines

When you are done, you will see your new pipeline listed along with any other pipelines you have. You can manually run the pipeline also.

7. Do a real test

To do a real test of my pipeline, I added a comment to a file directly in GitHub and committed it. Seconds later, I saw the commit message show up in Buddy. I then verified that the comment was actually added to the file on the production server.

8. Add more actions to the pipeline

If you click the Actions button / tab, you’ll see all actions in the pipeline. You can add more actions that run in certain situations. In this example, I added an action to send myself an email if the pipeline fails. You can also add actions that rsync files to a server, optimize images, perform link checking, run a custom shell script, and much more.

9. Done

So that’s it. Super easy. Intuitive. Fast. I like it!

Keto Weight Loss Food Menu

Alright, lately I’ve been obsessed with finding recipes and food for weight loss that I personally enjoy eating, especially Keto-friendly ones. To keep track of all my discoveries, I decided to just make this menu.

Microwave-Cooked Eggs

  • Eggs (I usually eat 4)
  • Shredded cheese (mozzarella or cheddar) – optional
  • Salt and pepper to taste

Microwave on high for 2 minutes (depending on microwave)

Air-Fried Chicken Drumsticks

  • Chicken drumsticks (skin removed)
  • Spices
  • 1 Anaheim pepper

Healthy Keto Protein Smoothie

  • 1 tbsp Navitas Acai powder
  • 2 frozen strawberries
  • 1 :ratio keto yoghurt (if not available, get Two Good yogurt – on 3 g of carbs)
  • 1 scoop pure protein powder
  • 1 tablespoon of Matcha green tea powder
  • Almond milk
  • 1 tablespoon Chia seeds

Keto Chicken Rice Soup

  • 2 x 8 oz packs of Shirataki Konjac rice
  • Chicken broth
  • Chicken breast (pregrilled from Costco)
  • Salt to taste

Keto Rice with Tomato Sauce

  • 2 x 8 oz packs of Shirataki Konjac rice
  • 1 8oz can of tomato sauce
  • 1 tsp of Italian seasoning
  • 1 tsp of oregano
  • 1/2 tsp of black pepper

Riced Cauliflower or Konjac Rice With Scrambled Eggs & Minced Beef

  • Riced cauliflower or Konjac rice
  • Eggs
  • Minced beef

Keto Spaghetti

  • 2 packs Healthy Noodle (from Costco) – 120 calories
  • 1 18oz can of tomato sauce (105 calories)
  • Minced beef (optional)
  • Parmesan cheese (optional)

Air Fried Tofu

  • 1 pack tofu sliced into 1 inch cubes
  • Canola oil spray
  • Sea salt

Grilled Asparagus

  • Asparagus
  • Canola oil spray
  • Salt and pepper

Celery & Hummus

  • Celery
  • Hummus

Iced Green Tea

  • Green tea with Matcha
  • Erythritol

Vegetable Stir Fry With Chicken

  • Vegetable medley (Costco)
  • Lee Kum Kee Supreme soy sauce (0 carbs)
  • Pre-grilled chicken breast (Costco)

Broccoli, Chicken & Egg Scramble

Spicy Mexican-Style Riced Cauliflower

  • Spicy Mexican-Style Riced Cauliflower (Trader Joes)
  • Pre-grilled chicken breast – optional (Costco)

Riced Cauliflower Stir Fry With Chicken Breast

  • Riced Cauliflower stir fry (Trader Joes)
  • Pre-grilled chicken breast (Costco)

Peanuts

Available at Costco and Smart n Final

Whisps Crisps

Available at Costco

Keto yoghurt

No Sugar Keto Cups

Available at Costco

Beef Jerky

Available at Costco
Available at Smart n Final

Coffee

  • Nespresso coffee
  • Frothed milk
  • 1/4 tsp Erythritol (or Stevia or Monk fruit)
  • Cinnamon

Pickles

Pickles are very low calorie and low carb.

Available at Smart n Final

Cheese Sticks

Cheese sticks are very low carb, but high in protein and calories.

Garlic Spinach With Ground Beef

  • Frozen spinach (steamable in bag)
  • Minced garlic
  • Lemon juice
  • Ground beef
  • Olive oil
  • Salt and pepper to taste

Cucumbers Slices Dipped in Salt & Distilled White Vinegar Solution

Red’s Egg’wich

$12 at Costco

Egg Whites

  • $9 at Costco
  • High protein, low fat, low carb
Egg WhiteWhole Egg
Calories1871
Protein4 grams6 grams
Fat0 grams5 grams

Extra Lean 96/4 Ground Beef

  • $10 at Smart n Final
  • 96% lean / 4% fat
  • Top it with a slice of mozzarella cheese and eat without as is (no bun or condiments)
  • 1 patty contains
    • 112 grams
    • 150 calories
    • 25 g protein